From 0ca8f7bef70b2886970a097bf67db6d10e1d76bf Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Sun, 28 Jun 2020 21:17:37 +0300 Subject: [PATCH] IfStatementSimplifyTransformer prototype WIP: refactoring #1 --- dist/index.cli.js | 15865 +++++++++++++++- dist/index.js | 15121 ++++++++++++++- .../IfStatementSimplifyTransformer.ts | 202 +- 3 files changed, 31089 insertions(+), 99 deletions(-) diff --git a/dist/index.cli.js b/dist/index.cli.js index 1187a0b3..654bb862 100644 --- a/dist/index.cli.js +++ b/dist/index.cli.js @@ -21,5 +21,15868 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -require("source-map-support").install(),module.exports=function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=270)}([function(e,t){e.exports=require("inversify")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceIdentifiers=void 0,function(e){e.Factory__ICalleeDataExtractor="Factory",e.Factory__ICodeTransformer="Factory",e.Factory__IControlFlowCustomNode="Factory",e.Factory__IControlFlowReplacer="Factory",e.Factory__ICustomCodeHelper="Factory",e.Factory__ICustomCodeHelperGroup="Factory",e.Factory__IDeadCodeInjectionCustomNode="Factory",e.Factory__IIdentifierNamesGenerator="Factory",e.Factory__IIdentifierObfuscatingReplacer="Factory",e.Factory__INodeGuard="Factory",e.Factory__INodeTransformer="Factory",e.Factory__IObfuscatedCode="Factory",e.Factory__IObfuscatingReplacer="Factory",e.Factory__IObjectExpressionKeysTransformerCustomNode="Factory",e.Factory__IObjectExpressionExtractor="Factory",e.Factory__TControlFlowStorage="Factory",e.IArrayUtils="IArrayUtils",e.ICalleeDataExtractor="ICalleeDataExtractor",e.ICallsGraphAnalyzer="ICallsGraphAnalyzer",e.ICodeTransformer="ICodeTransformer",e.ICodeTransformerNamesGroupsBuilder="ICodeTransformerNamesGroupsBuilder",e.ICodeTransformersRunner="ICodeTransformersRunner",e.ICryptUtils="ICryptUtils",e.ICustomCodeHelper="ICustomCodeHelper",e.ICustomCodeHelperGroup="ICustomCodeHelperGroup",e.IControlFlowReplacer="IControlFlowReplacer",e.ICustomCodeHelperFormatter="ICustomCodeHelperFormatter",e.ICustomCodeHelperObfuscator="ICustomCodeHelperObfuscator",e.IEscapeSequenceEncoder="IEscapeSequenceEncoder",e.IIdentifierNamesGenerator="IIdentifierNamesGenerator",e.IIdentifierObfuscatingReplacer="IIdentifierObfuscatingReplacer",e.IJavaScriptObfuscator="IJavaScriptObfuscator",e.ILevelledTopologicalSorter="ILevelledTopologicalSorter",e.ILogger="ILogger",e.INodeGuard="INodeGuard",e.INodeTransformer="INodeTransformer",e.INodeTransformerNamesGroupsBuilder="INodeTransformerNamesGroupsBuilder",e.IObfuscationEventEmitter="IObfuscationEventEmitter",e.IObfuscatedCode="IObfuscatedCode",e.IOptions="IOptions",e.IOptionsNormalizer="IOptionsNormalizer",e.IObfuscatingReplacer="IObfuscatingReplacer",e.IPrevailingKindOfVariablesAnalyzer="IPrevailingKindOfVariablesAnalyzer",e.IObjectExpressionExtractor="IObjectExpressionExtractor",e.IRandomGenerator="IRandomGenerator",e.IRenamePropertiesReplacer="IRenamePropertiesReplacer",e.IScopeIdentifiersTraverser="IScopeIdentifiersTraverser",e.ISourceCode="ISourceCode",e.IScopeAnalyzer="IScopeAnalyzer",e.IStringArrayStorage="IStringArrayStorage",e.IStringArrayStorageAnalyzer="IStringArrayStorageAnalyzer",e.INodeTransformersRunner="INodeTransformersRunner",e.Newable__ICustomNode="Newable",e.Newable__TControlFlowStorage="Newable",e.TCustomNodeGroupStorage="TCustomNodeGroupStorage",e.TInputOptions="TInputOptions"}(t.ServiceIdentifiers||(t.ServiceIdentifiers={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeGuards=void 0;const o=r(35);class n{static isArrayPatternNode(e){return e.type===o.NodeType.ArrayPattern}static isArrowFunctionExpressionNode(e){return e.type===o.NodeType.ArrowFunctionExpression}static isAssignmentExpressionNode(e){return e.type===o.NodeType.AssignmentExpression}static isAssignmentPatternNode(e){return e.type===o.NodeType.AssignmentPattern}static isAwaitExpressionNode(e){return e.type===o.NodeType.AwaitExpression}static isBigIntLiteralNode(e){return n.isLiteralNode(e)&&!!e.bigint}static isBlockStatementNode(e){return e.type===o.NodeType.BlockStatement}static isBreakStatementNode(e){return e.type===o.NodeType.BreakStatement}static isCallExpressionNode(e){return e.type===o.NodeType.CallExpression}static isClassDeclarationNode(e){return e.type===o.NodeType.ClassDeclaration&&null!==e.id}static isContinueStatementNode(e){return e.type===o.NodeType.ContinueStatement}static isDirectiveNode(e){return e.type===o.NodeType.ExpressionStatement&&"directive"in e}static isExportNamedDeclarationNode(e){return e.type===o.NodeType.ExportNamedDeclaration}static isExpressionStatementNode(e){return e.type===o.NodeType.ExpressionStatement&&!("directive"in e)}static isFunctionNode(e){return n.isFunctionDeclarationNode(e)||n.isFunctionExpressionNode(e)||n.isArrowFunctionExpressionNode(e)}static isFunctionDeclarationNode(e){return e.type===o.NodeType.FunctionDeclaration&&null!==e.id}static isFunctionExpressionNode(e){return e.type===o.NodeType.FunctionExpression}static isIdentifierNode(e){return e.type===o.NodeType.Identifier}static isIfStatementNode(e){return e.type===o.NodeType.IfStatement}static isImportDeclarationNode(e){return e.type===o.NodeType.ImportDeclaration}static isImportSpecifierNode(e){return e.type===o.NodeType.ImportSpecifier}static isLabelIdentifierNode(e,t){const r=n.isLabeledStatementNode(t)&&t.label===e,o=n.isContinueStatementNode(t)&&t.label===e,i=n.isBreakStatementNode(t)&&t.label===e;return r||o||i}static isLabeledStatementNode(e){return e.type===o.NodeType.LabeledStatement}static isLiteralNode(e){return e.type===o.NodeType.Literal}static isMemberExpressionNode(e){return e.type===o.NodeType.MemberExpression}static isMethodDefinitionNode(e){return e.type===o.NodeType.MethodDefinition}static isNode(e){return e&&void 0!==!e.type}static isNodeWithLexicalScope(e){return n.isProgramNode(e)||n.isFunctionNode(e)}static isNodeWithBlockLexicalScope(e){return n.isNodeWithLexicalScope(e)||n.isBlockStatementNode(e)}static isNodeWithLexicalScopeStatements(e,t){return n.isProgramNode(e)||n.isBlockStatementNode(e)&&n.nodesWithLexicalStatements.includes(t.type)}static isNodeWithStatements(e){return n.isProgramNode(e)||n.isBlockStatementNode(e)||n.isSwitchCaseNode(e)}static isNodeWithComments(e){return Boolean(e.leadingComments)||Boolean(e.trailingComments)}static isObjectPatternNode(e){return e.type===o.NodeType.ObjectPattern}static isObjectExpressionNode(e){return e.type===o.NodeType.ObjectExpression}static isProgramNode(e){return e.type===o.NodeType.Program}static isPropertyNode(e){return e.type===o.NodeType.Property}static isRestElementNode(e){return e.type===o.NodeType.RestElement}static isReturnStatementNode(e){return e.type===o.NodeType.ReturnStatement}static isSequenceExpressionNode(e){return e.type===o.NodeType.SequenceExpression}static isSuperNode(e){return e.type===o.NodeType.Super}static isSwitchCaseNode(e){return e.type===o.NodeType.SwitchCase}static isTaggedTemplateExpressionNode(e){return e.type===o.NodeType.TaggedTemplateExpression}static isTemplateLiteralNode(e){return e.type===o.NodeType.TemplateLiteral}static isUnaryExpressionNode(e){return e.type===o.NodeType.UnaryExpression}static isUseStrictOperator(e){return n.isDirectiveNode(e)&&"use strict"===e.directive}static isVariableDeclarationNode(e){return e.type===o.NodeType.VariableDeclaration}static isVariableDeclaratorNode(e){return e.type===o.NodeType.VariableDeclarator}static isWhileStatementNode(e){return e.type===o.NodeType.WhileStatement}}t.NodeGuards=n,n.nodesWithLexicalStatements=[o.NodeType.ArrowFunctionExpression,o.NodeType.FunctionDeclaration,o.NodeType.FunctionExpression,o.NodeType.MethodDefinition]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeUtils=void 0;const a=i(r(50)),s=i(r(12)),c=r(47),l=r(63),d=r(4),u=r(19);class f{static addXVerbatimPropertyTo(e){return e["x-verbatim-property"]={content:e.raw,precedence:a.Precedence.Primary},e}static clone(e){return f.parentizeAst(f.cloneRecursive(e))}static convertCodeToStructure(e){const t=l.ASTParserFacade.parse(e,{ecmaVersion:c.ecmaVersion,sourceType:"script"});return s.replace(t,{enter:(e,t)=>(f.parentizeNode(e,t),d.NodeGuards.isLiteralNode(e)&&f.addXVerbatimPropertyTo(e),u.NodeMetadata.set(e,{ignoredNode:!1}),e)}),t.body}static convertStructureToCode(e){return e.reduce((e,t)=>e+a.generate(t,{sourceMapWithCode:!0}).code,"")}static getUnaryExpressionArgumentNode(e){return d.NodeGuards.isUnaryExpressionNode(e.argument)?f.getUnaryExpressionArgumentNode(e.argument):e.argument}static parentizeAst(e){var t;const r=null!==(t=e.parentNode)&&void 0!==t?t:null;return s.replace(e,{enter:f.parentizeNode}),r&&(e.parentNode=r),e}static parentizeNode(e,t){return e.parentNode=null!=t?t:e,e}static cloneRecursive(e){if(null===e)return e;const t={};return Object.keys(e).forEach(r=>{if("parentNode"===r)return;const o=e[r];let n;n=null===o||o instanceof RegExp?o:Array.isArray(o)?o.map(f.cloneRecursive):"object"==typeof o?f.cloneRecursive(o):o,t[r]=n}),t}}t.NodeUtils=f},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeFactory=void 0;const a=i(r(50)),s=r(35);class c{static programNode(e=[]){return{type:s.NodeType.Program,body:e,sourceType:"script",metadata:{ignoredNode:!1}}}static arrayExpressionNode(e=[]){return{type:s.NodeType.ArrayExpression,elements:e,metadata:{ignoredNode:!1}}}static assignmentExpressionNode(e,t,r){return{type:s.NodeType.AssignmentExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static binaryExpressionNode(e,t,r){return{type:s.NodeType.BinaryExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static blockStatementNode(e=[]){return{type:s.NodeType.BlockStatement,body:e,metadata:{ignoredNode:!1}}}static breakStatement(e){return{type:s.NodeType.BreakStatement,label:e,metadata:{ignoredNode:!1}}}static callExpressionNode(e,t=[]){return{type:s.NodeType.CallExpression,callee:e,arguments:t,metadata:{ignoredNode:!1}}}static conditionalExpressionNode(e,t,r){return{type:s.NodeType.ConditionalExpression,test:e,consequent:t,alternate:r,metadata:{ignoredNode:!1}}}static continueStatement(e){return{type:s.NodeType.ContinueStatement,label:e,metadata:{ignoredNode:!1}}}static directiveNode(e,t){return{type:s.NodeType.ExpressionStatement,expression:e,directive:t,metadata:{ignoredNode:!1}}}static expressionStatementNode(e){return{type:s.NodeType.ExpressionStatement,expression:e,metadata:{ignoredNode:!1}}}static functionDeclarationNode(e,t,r){return{type:s.NodeType.FunctionDeclaration,id:c.identifierNode(e),params:t,body:r,generator:!1,metadata:{ignoredNode:!1}}}static functionExpressionNode(e,t){return{type:s.NodeType.FunctionExpression,params:e,body:t,generator:!1,metadata:{ignoredNode:!1}}}static ifStatementNode(e,t,r){return Object.assign(Object.assign({type:s.NodeType.IfStatement,test:e,consequent:t},r&&{alternate:r}),{metadata:{ignoredNode:!1}})}static identifierNode(e){return{type:s.NodeType.Identifier,name:e,metadata:{ignoredNode:!1}}}static importDeclarationNode(e,t){return{type:s.NodeType.ImportDeclaration,specifiers:e,source:t,metadata:{ignoredNode:!1}}}static literalNode(e,t){return t=void 0!==t?t:`'${e}'`,{type:s.NodeType.Literal,value:e,raw:t,"x-verbatim-property":{content:t,precedence:a.Precedence.Primary},metadata:{ignoredNode:!1}}}static logicalExpressionNode(e,t,r){return{type:s.NodeType.LogicalExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static memberExpressionNode(e,t,r=!1){return{type:s.NodeType.MemberExpression,computed:r,object:e,property:t,metadata:{ignoredNode:!1}}}static objectExpressionNode(e){return{type:s.NodeType.ObjectExpression,properties:e,metadata:{ignoredNode:!1}}}static propertyNode(e,t,r=!1){return{type:s.NodeType.Property,key:e,value:t,kind:"init",method:!1,shorthand:!1,computed:r,metadata:{ignoredNode:!1}}}static returnStatementNode(e){return{type:s.NodeType.ReturnStatement,argument:e,metadata:{ignoredNode:!1}}}static sequenceExpressionNode(e){return{type:s.NodeType.SequenceExpression,expressions:e,metadata:{ignoredNode:!1}}}static switchStatementNode(e,t){return{type:s.NodeType.SwitchStatement,discriminant:e,cases:t,metadata:{ignoredNode:!1}}}static switchCaseNode(e,t){return{type:s.NodeType.SwitchCase,test:e,consequent:t,metadata:{ignoredNode:!1}}}static unaryExpressionNode(e,t,r=!0){return{type:s.NodeType.UnaryExpression,operator:e,argument:t,prefix:r,metadata:{ignoredNode:!1}}}static updateExpressionNode(e,t){return{type:s.NodeType.UpdateExpression,operator:e,argument:t,prefix:!1,metadata:{ignoredNode:!1}}}static variableDeclarationNode(e=[],t="var"){return{type:s.NodeType.VariableDeclaration,declarations:e,kind:t,metadata:{ignoredNode:!1}}}static variableDeclaratorNode(e,t){return{type:s.NodeType.VariableDeclarator,id:e,init:t,metadata:{ignoredNode:!1}}}static whileStatementNode(e,t){return{type:s.NodeType.WhileStatement,test:e,body:t,metadata:{ignoredNode:!1}}}}t.NodeFactory=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializable=void 0;const o={configurable:!0,enumerable:!0};function n(e,t,r){Reflect.hasMetadata(e,r)||Reflect.defineMetadata(e,t,r)}t.initializable=function(e="initialize"){const t=Object.keys(this)[0];return(r,i)=>{const a=r[e];if(!a||"function"!=typeof a)throw new Error(`\`${e}\` method with initialization logic not `+`found. \`@${t}\` decorator requires \`${e}\` method`);return n("_initialized",!1,r),n("_initializablePropertiesSet",new Set,r),n("_wrappedMethodsSet",new Set,r),function(e,t){const r=Object.getOwnPropertyNames(e),n=[t,"constructor"];r.forEach(r=>{var i;const a=Reflect.getMetadata("_initializablePropertiesSet",e),s=Reflect.getMetadata("_wrappedMethodsSet",e);if(n.includes(r)||a.has(r)||s.has(r))return;if("function"!=typeof e[r])return;const c=null!==(i=Object.getOwnPropertyDescriptor(e,r))&&void 0!==i?i:o,l=c.value;Object.defineProperty(e,r,Object.assign(Object.assign({},c),{value(){if(!Reflect.getMetadata("_initialized",this))throw new Error(`Class should be initialized with \`${t}()\` method`);return l.apply(this,arguments)}})),s.add(r)})}(r,e),function(e,t,r){var n;const i=null!==(n=Object.getOwnPropertyDescriptor(e,t))&&void 0!==n?n:o,a=i.value;Object.defineProperty(e,t,Object.assign(Object.assign({},i),{value:function(){Reflect.defineMetadata("_initialized",!0,this);const e=a.apply(this,arguments);return this[r],e}}))}(r,e,i),function(e,t){var r;Reflect.getMetadata("_initializablePropertiesSet",e).add(t);const n=`_${t.toString()}`,i=null!==(r=Object.getOwnPropertyDescriptor(e,n))&&void 0!==r?r:o;return Object.defineProperty(e,t,Object.assign(Object.assign({},i),{get:function(){if(void 0===this[n])throw new Error(`Property \`${t.toString()}\` is not initialized! Initialize it first!`);return this[n]},set:function(e){this[n]=e}})),i}(r,i)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformationStage=void 0,function(e){e.Initializing="Initializing",e.Preparing="Preparing",e.DeadCodeInjection="DeadCodeInjection",e.ControlFlowFlattening="ControlFlowFlattening",e.RenameProperties="RenameProperties",e.Converting="Converting",e.Obfuscating="Obfuscating",e.Minification="Minification",e.Finalizing="Finalizing"}(t.NodeTransformationStage||(t.NodeTransformationStage={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractNodeTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3);let f=class{constructor(e,t){this.randomGenerator=e,this.options=t}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.AbstractNodeTransformer=f},function(e,t){e.exports=require("estraverse")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformer=void 0,function(e){e.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",e.CommentsTransformer="CommentsTransformer",e.CustomCodeHelpersTransformer="CustomCodeHelpersTransformer",e.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",e.EvalCallExpressionTransformer="EvalCallExpressionTransformer",e.FunctionControlFlowTransformer="FunctionControlFlowTransformer",e.IfStatementSimplifyTransformer="IfStatementSimplifyTransformer",e.LabeledStatementTransformer="LabeledStatementTransformer",e.LiteralTransformer="LiteralTransformer",e.MemberExpressionTransformer="MemberExpressionTransformer",e.MetadataTransformer="MetadataTransformer",e.MethodDefinitionTransformer="MethodDefinitionTransformer",e.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",e.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",e.ObjectExpressionTransformer="ObjectExpressionTransformer",e.ParentificationTransformer="ParentificationTransformer",e.RenamePropertiesTransformer="RenamePropertiesTransformer",e.ScopeIdentifiersTransformer="ScopeIdentifiersTransformer",e.SplitStringTransformer="SplitStringTransformer",e.TemplateLiteralTransformer="TemplateLiteralTransformer",e.VariableDeclarationsMergeTransformer="VariableDeclarationsMergeTransformer",e.VariablePreserveTransformer="VariablePreserveTransformer"}(t.NodeTransformer||(t.NodeTransformer={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3);let _=class{constructor(e,t,r,o){this.cachedNode=null,this.identifierNamesGenerator=e(o),this.customCodeHelperFormatter=t,this.randomGenerator=r,this.options=o}getNode(){return this.cachedNode||(this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure())),this.cachedNode}};_=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],_),t.AbstractCustomNode=_},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyContainerFacade=void 0;const o=r(0),n=r(1),i=r(82),a=r(92),s=r(97),c=r(109),l=r(120),d=r(161),u=r(174),f=r(175),p=r(179),m=r(181),g=r(184),_=r(187),S=r(189),h=r(198),N=r(220),y=r(234),b=r(239),O=r(244),E=r(252),I=r(254),C=r(80),v=r(259),T=r(262),R=r(264),M=r(265);t.InversifyContainerFacade=class{constructor(){this.container=new o.Container}static getFactory(e){return t=>r=>t.container.getNamed(e,r)}static getCacheFactory(e){return t=>{const r=new Map;return o=>{if(r.has(o))return r.get(o);const n=t.container.getNamed(e,o);return r.set(o,n),n}}}static getConstructorFactory(e,...t){return r=>{const o=new Map,n=[];return i=>{if(t.forEach((e,t)=>{n[t]||(n[t]=r.container.get(e))}),o.has(i))return new(o.get(i))(...n);const a=r.container.getNamed(e,i);return o.set(i,a),new a(...n)}}}get(e){return this.container.get(e)}getNamed(e,t){return this.container.getNamed(e,t)}load(e,t,r){this.container.bind(n.ServiceIdentifiers.ISourceCode).toDynamicValue(()=>new M.SourceCode(e,t)).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.TInputOptions).toDynamicValue(()=>r).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ILogger).to(C.Logger).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IJavaScriptObfuscator).to(I.JavaScriptObfuscator).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ICodeTransformersRunner).to(E.CodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.INodeTransformersRunner).to(v.NodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IObfuscatedCode).to(R.ObfuscatedCode),this.container.bind(n.ServiceIdentifiers.Factory__IObfuscatedCode).toFactory(e=>(t,r)=>{const o=e.container.get(n.ServiceIdentifiers.IObfuscatedCode);return o.initialize(t,r),o}),this.container.bind(n.ServiceIdentifiers.IObfuscationEventEmitter).to(T.ObfuscationEventEmitter).inSingletonScope(),this.container.load(i.analyzersModule),this.container.load(a.codeTransformersModule),this.container.load(s.controlFlowTransformersModule),this.container.load(c.convertingTransformersModule),this.container.load(l.customCodeHelpersModule),this.container.load(d.customNodesModule),this.container.load(u.finalizingTransformersModule),this.container.load(f.generatorsModule),this.container.load(p.initializingTransformersModule),this.container.load(m.minificationTransformersModule),this.container.load(g.nodeModule),this.container.load(_.nodeTransformersModule),this.container.load(S.obfuscatingTransformersModule),this.container.load(h.optionsModule),this.container.load(N.preparingTransformersModule),this.container.load(y.renamePropertiesTransformersModule),this.container.load(b.storagesModule),this.container.load(O.utilsModule)}unload(){this.container.unbindAll()}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStatementUtils=void 0;const o=r(4);class n{static getParentNodeWithStatements(e){return n.getParentNodesWithStatementsRecursive(e,1)[0]}static getParentNodesWithStatements(e){return n.getParentNodesWithStatementsRecursive(e)}static getNextSiblingStatement(e){return n.getSiblingStatementByOffset(e,1)}static getPreviousSiblingStatement(e){return n.getSiblingStatementByOffset(e,-1)}static getRootStatementOfNode(e){if(o.NodeGuards.isProgramNode(e))throw new Error("Unable to find root statement for `Program` node");const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithStatements(t)?e:n.getRootStatementOfNode(t)}static getScopeOfNode(e){const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithStatements(t)?t:n.getScopeOfNode(t)}static getParentNodesWithStatementsRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return(o.NodeGuards.isProgramNode(e)||o.NodeGuards.isNodeWithLexicalScopeStatements(e,a)&&i>0)&&r.push(e),e!==a?n.getParentNodesWithStatementsRecursive(a,t,r,++i):r}static getSiblingStatementByOffset(e,t){const r=n.getScopeOfNode(e),i=o.NodeGuards.isSwitchCaseNode(r)?r.consequent:r.body,a=i.indexOf(e);return i[a+t]||null}}t.NodeStatementUtils=n},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(2),h=r(3),N=r(128),y=r(129);let b=o=class{constructor(e,t,r,o,n){this.cachedNode=null,this.identifierNamesGenerator=e(n),this.customCodeHelperFormatter=t,this.customCodeHelperObfuscator=r,this.randomGenerator=o,this.options=n}getNode(){if(!this.cachedNode){const e=this.getCodeHelperTemplate();this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(e))}return this.cachedNode}getGlobalVariableTemplate(){return this.randomGenerator.getRandomGenerator().pickone(o.globalVariableTemplateFunctions)}getCodeHelperTemplate(){return""}};b.globalVariableTemplateFunctions=[N.GlobalVariableTemplate1(),y.GlobalVariableTemplate2()],b=o=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==S.IOptions&&S.IOptions)?c:Object])],b),t.AbstractCustomCodeHelper=b},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeMetadata=void 0;class o{static set(e,t){var r;e.metadata=Object.assign(null!==(r=e.metadata)&&void 0!==r?r:{},t)}static get(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}static isIgnoredNode(e){return!0===o.get(e,"ignoredNode")}static isReplacedLiteral(e){return!0===o.get(e,"replacedLiteral")}}t.NodeMetadata=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationTarget=void 0;const o=r(31);t.ObfuscationTarget=o.MakeEnum({Browser:"browser",BrowserNoEval:"browser-no-eval",Node:"node"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowCustomNode=void 0,function(e){e.BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",e.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",e.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",e.CallExpressionFunctionNode="CallExpressionFunctionNode",e.ControlFlowStorageNode="ControlFlowStorageNode",e.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",e.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",e.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode",e.StringLiteralNode="StringLiteralNode"}(t.ControlFlowCustomNode||(t.ControlFlowCustomNode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeAppender=void 0;const o=r(4);class n{static append(e,t){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...n.getScopeStatements(e),...t])}static appendToOptimalBlockScope(e,t,r,o=0){const i=e.length?n.getOptimalBlockScope(e,o):t;n.prepend(i,r)}static getOptimalBlockScope(e,t,r=1/0){const o=e[t];if(r<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return r>1&&o.callsGraph.length?n.getOptimalBlockScope(o.callsGraph,0,--r):o.callee}static insertBefore(e,t,r){const o=n.getScopeStatements(e).indexOf(r);n.insertAtIndex(e,t,o)}static insertAfter(e,t,r){const o=n.getScopeStatements(e).indexOf(r);n.insertAtIndex(e,t,o+1)}static insertAtIndex(e,t,r){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...n.getScopeStatements(e).slice(0,r),...t,...n.getScopeStatements(e).slice(r)])}static prepend(e,t){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...t,...n.getScopeStatements(e)])}static getScopeStatements(e){return o.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}static parentizeScopeStatementsBeforeAppend(e,t){return t.forEach(t=>{t.parentNode=e}),t}static setScopeStatements(e,t){o.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}t.NodeAppender=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLexicalScopeUtils=void 0;const o=r(4);class n{static getLexicalScope(e){return n.getLexicalScopesRecursive(e,1)[0]}static getLexicalScopes(e){return n.getLexicalScopesRecursive(e)}static getLexicalScopesRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithLexicalScope(e)&&r.push(e),e!==a?n.getLexicalScopesRecursive(a,t,r,++i):r}}t.NodeLexicalScopeUtils=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEvent=void 0,function(e){e.AfterObfuscation="afterObfuscation",e.BeforeObfuscation="beforeObfuscation"}(t.ObfuscationEvent||(t.ObfuscationEvent={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=void 0;class o{static buildVersionMessage(e,t){if(!e||!t)return"unknown";return`${e}_${new Date(parseInt(t,10)).toISOString()}`}static extractDomainFrom(e){let t;return t=e.includes("://")||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0],t=t.split(":")[0],t}static getIdentifiersPrefixForMultipleSources(e,t){return`${e||o.baseMultipleSourcesIdentifiersPrefix}${t}`}}t.Utils=o,o.baseMultipleSourcesIdentifiersPrefix="a",o.hexadecimalPrefix="0x"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelper=void 0,function(e){e.CallsControllerFunction="CallsControllerFunction",e.ConsoleOutputDisable="ConsoleOutputDisable",e.DebugProtectionFunctionCall="DebugProtectionFunctionCall",e.DebugProtectionFunctionInterval="DebugProtectionFunctionInterval",e.DebugProtectionFunction="DebugProtectionFunction",e.DomainLock="DomainLock",e.SelfDefendingUnicode="SelfDefendingUnicode",e.StringArrayCallsWrapper="StringArrayCallsWrapper",e.StringArray="StringArray",e.StringArrayRotateFunction="StringArrayRotateFunction"}(t.CustomCodeHelper||(t.CustomCodeHelper={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncoding=void 0;const o=r(31);t.StringArrayEncoding=o.MakeEnum({Base64:"base64",Rc4:"rc4"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelperGroup=void 0;const l=r(0),d=r(1),u=r(5),f=r(2),p=r(3);let m=class{constructor(e,t,r){this.identifierNamesGenerator=e(r),this.randomGenerator=t,this.options=r}getAppendEvent(){return this.appendEvent}getCustomCodeHelpers(){return this.customCodeHelpers}appendCustomNodeIfExist(e,t){const r=this.customCodeHelpers.get(e);r&&t(r)}getRandomCallsGraphIndex(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}};m=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),c(1,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(2,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object])],m),t.AbstractCustomCodeHelperGroup=m},function(e,t){e.exports=require("@gradecam/tsenum")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapMode=void 0;const o=r(31);t.SourceMapMode=o.MakeEnum({Inline:"inline",Separate:"separate"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetString=void 0,t.alphabetString="abcdefghijklmnopqrstuvwxyz"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesGenerator=void 0;const o=r(31);t.IdentifierNamesGenerator=o.MakeEnum({DictionaryIdentifierNamesGenerator:"dictionary",HexadecimalIdentifierNamesGenerator:"hexadecimal",MangledIdentifierNamesGenerator:"mangled"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=void 0,function(e){e.ArrayExpression="ArrayExpression",e.ArrayPattern="ArrayPattern",e.ArrowFunctionExpression="ArrowFunctionExpression",e.AssignmentExpression="AssignmentExpression",e.AssignmentPattern="AssignmentPattern",e.AwaitExpression="AwaitExpression",e.BinaryExpression="BinaryExpression",e.BlockStatement="BlockStatement",e.BreakStatement="BreakStatement",e.CallExpression="CallExpression",e.CatchClause="CatchClause",e.ClassDeclaration="ClassDeclaration",e.ConditionalExpression="ConditionalExpression",e.ContinueStatement="ContinueStatement",e.ExportNamedDeclaration="ExportNamedDeclaration",e.ExpressionStatement="ExpressionStatement",e.ForStatement="ForStatement",e.ForInStatement="ForInStatement",e.ForOfStatement="ForOfStatement",e.FunctionDeclaration="FunctionDeclaration",e.FunctionExpression="FunctionExpression",e.Identifier="Identifier",e.IfStatement="IfStatement",e.ImportDeclaration="ImportDeclaration",e.ImportDefaultSpecifier="ImportDefaultSpecifier",e.ImportNamespaceSpecifier="ImportNamespaceSpecifier",e.ImportSpecifier="ImportSpecifier",e.LabeledStatement="LabeledStatement",e.Literal="Literal",e.LogicalExpression="LogicalExpression",e.MemberExpression="MemberExpression",e.MethodDefinition="MethodDefinition",e.ObjectExpression="ObjectExpression",e.ObjectPattern="ObjectPattern",e.Program="Program",e.Property="Property",e.RestElement="RestElement",e.ReturnStatement="ReturnStatement",e.SequenceExpression="SequenceExpression",e.Super="Super",e.SwitchCase="SwitchCase",e.SwitchStatement="SwitchStatement",e.TaggedTemplateExpression="TaggedTemplateExpression",e.TemplateLiteral="TemplateLiteral",e.TryStatement="TryStatement",e.UnaryExpression="UnaryExpression",e.UpdateExpression="UpdateExpression",e.VariableDeclaration="VariableDeclaration",e.VariableDeclarator="VariableDeclarator",e.WhileStatement="WhileStatement"}(t.NodeType||(t.NodeType={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableNoEvalTemplate=void 0,t.GlobalVariableNoEvalTemplate=function(){return"\n const that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetStringUppercase=void 0;const o=r(33);t.alphabetStringUppercase=o.alphabetString.toUpperCase()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberUtils=void 0;const o=r(26);t.NumberUtils=class{static toHex(e){const t="number"==typeof e?e.toString(16):`${e.toString(16)}n`;return`${o.Utils.hexadecimalPrefix}${t}`}static isCeil(e){return"number"!=typeof e||e%1==0}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierObfuscatingReplacer=void 0,function(e){e.BaseIdentifierObfuscatingReplacer="BaseIdentifierObfuscatingReplacer"}(t.IdentifierObfuscatingReplacer||(t.IdentifierObfuscatingReplacer={}))},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractObfuscatingReplacer=void 0;const s=r(0),c=r(1),l=r(2);let d=class{constructor(e){this.options=e}};d=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IOptions&&l.IOptions)?o:Object])],d),t.AbstractObfuscatingReplacer=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PRESET=void 0;const o=r(34),n=r(20),i=r(32);t.DEFAULT_PRESET=Object.freeze({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],inputFileName:"",log:!1,minify:!0,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!0,seed:0,selfDefending:!1,shuffleStringArray:!0,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:10,stringArray:!0,stringArrayEncoding:!1,stringArrayThreshold:.75,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringSeparator=void 0,function(e){e.Dot=".",e.Comma=","}(t.StringSeparator||(t.StringSeparator={}))},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCalleeDataExtractor=void 0;let n=class{};n=o([r(0).injectable()],n),t.AbstractCalleeDataExtractor=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ecmaVersion=void 0,t.ecmaVersion=11},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLiteralUtils=void 0;const o=r(4);t.NodeLiteralUtils=class{static isProhibitedLiteralNode(e,t){return!(!o.NodeGuards.isPropertyNode(t)||t.computed||t.key!==e)||!!o.NodeGuards.isImportDeclarationNode(t)}}},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3);let g=o=class{constructor(e,t,r){this.replacerDataByControlFlowStorageId=new Map,this.controlFlowCustomNodeFactory=e,this.randomGenerator=t,this.options=r}static getStorageKeysByIdForCurrentStorage(e,t){let r;return r=e.has(t)?e.get(t):new Map,r}insertCustomNodeToControlFlowStorage(e,t,r,n){const i=t.getStorageId(),a=o.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId,i),s=a.get(r);if(this.randomGenerator.getMathRandom(){const r=this.randomGenerator.getRandomString(e);return t.getStorage().has(r)?c(e):r},l=c(5);return a.set(r,[l]),this.replacerDataByControlFlowStorageId.set(i,a),t.set(l,e),l}};g=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],g),t.AbstractControlFlowReplacer=g},function(e,t){e.exports=require("escodegen")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.numbersString=void 0,t.numbersString="0123456789"},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractIdentifierNamesGenerator=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(4);let p=class{constructor(e,t){this.preservedNamesSet=new Set,this.lexicalScopesPreservedNamesMap=new Map,this.randomGenerator=e,this.options=t}generate(e,t){return f.NodeGuards.isProgramNode(e)?this.generateForGlobalScope():this.generateForLexicalScope(e)}preserveName(e){this.preservedNamesSet.add(e)}preserveNameForLexicalScope(e,t){var r;const o=null!==(r=this.lexicalScopesPreservedNamesMap.get(t))&&void 0!==r?r:new Set;o.add(e),this.lexicalScopesPreservedNamesMap.set(t,o)}isValidIdentifierName(e){return this.notReservedName(e)&&!this.preservedNamesSet.has(e)}isValidIdentifierNameInLexicalScopes(e,t){var r;if(!this.isValidIdentifierName(e))return!1;for(const o of t){const t=null!==(r=this.lexicalScopesPreservedNamesMap.get(o))&&void 0!==r?r:null;if(t&&t.has(e))return!1}return!0}notReservedName(e){return!this.options.reservedNames.length||!this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}};p=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],p),t.AbstractIdentifierNamesGenerator=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MapStorage=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(8);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}initialize(){this.storage=new Map,this.storageId=this.randomGenerator.getRandomString(6)}get(e){return this.storage.get(e)}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in map storage with key \`${e}\``);return t}getKeyOf(e){for(const[t,r]of this.storage)if(e===r)return t;return null}getLength(){return this.storage.size}getStorage(){return this.storage}getStorageId(){return this.storageId}has(e){return this.storage.has(e)}mergeWith(e,t=!1){this.storage=new Map([...this.storage,...e.getStorage()]),t&&(this.storageId=e.getStorageId())}set(e,t){this.storage.set(e,t)}};a([p.initializable(),s("design:type",String)],m.prototype,"storageId",void 0),a([p.initializable(),s("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],m.prototype,"storage",void 0),a([l.postConstruct(),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],m.prototype,"initialize",null),m=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],m),t.MapStorage=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0,r(79);const o=r(1),n=r(16),i=r(26);class a{static obfuscate(e,t={}){const r=new n.InversifyContainerFacade;r.load(e,"",t);const i=r.get(o.ServiceIdentifiers.IJavaScriptObfuscator).obfuscate(e);return r.unload(),i}static obfuscateMultiple(e,t={}){if("object"!=typeof e)throw new Error("Source codes object should be a plain object");return Object.keys(e).reduce((r,o,n)=>{const s=i.Utils.getIdentifiersPrefixForMultipleSources(t.identifiersPrefix,n),c=e[o],l=Object.assign(Object.assign({},t),{identifiersPrefix:s});return Object.assign(Object.assign({},r),{[o]:a.obfuscate(c,l)})},{})}}t.JavaScriptObfuscator=a,a.version=null!=="1.3.0"?"1.3.0":"unknown"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CalleeDataExtractor=void 0,function(e){e.FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",e.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",e.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"}(t.CalleeDataExtractor||(t.CalleeDataExtractor={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformer=void 0,function(e){e.HashbangOperatorTransformer="HashbangOperatorTransformer"}(t.CodeTransformer||(t.CodeTransformer={}))},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTransformerNamesGroupsBuilder=void 0;const s=r(0),c=r(1),l=r(94);let d=class{constructor(e){this.levelledTopologicalSorter=e}build(e){const t=Object.keys(e),r=this.buildTransformersRelationEdges(t,e);for(const[e,t]of r)this.levelledTopologicalSorter.add(e,t);return this.levelledTopologicalSorter.sortByGroups()}buildTransformersRelationEdges(e,t){const r=[];for(const o of e){const e=t[o].runAfter;if(e&&e.length)for(const n of e){void 0===t[n]?r.push([o,null]):r.push([n,o])}else r.push([o,null])}return r}};d=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.ILevelledTopologicalSorter)),i("design:paramtypes",["function"==typeof(o=void 0!==l.ILevelledTopologicalSorter&&l.ILevelledTopologicalSorter)?o:Object])],d),t.AbstractTransformerNamesGroupsBuilder=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformationStage=void 0,function(e){e.PreparingTransformers="PreparingTransformers",e.FinalizingTransformers="FinalizingTransformers"}(t.CodeTransformationStage||(t.CodeTransformationStage={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowReplacer=void 0,function(e){e.BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",e.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",e.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",e.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"}(t.ControlFlowReplacer||(t.ControlFlowReplacer={}))},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowReplacer=void 0;const l=r(0),d=r(1),u=r(21),f=r(2),p=r(3),m=r(22),g=r(49),_=r(4);let S=class extends g.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}getControlFlowStorageCallNode(e,t,r,o){const n=this.controlFlowCustomNodeFactory(m.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);n.initialize(e,t,r,o);const i=n.getNode()[0];if(!i||!_.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};S=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.Factory__IControlFlowCustomNode)),c(1,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(2,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TControlFlowCustomNodeFactory&&u.TControlFlowCustomNodeFactory)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object])],S),t.ExpressionWithOperatorControlFlowReplacer=S},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ASTParserFacade=void 0;const s=i(r(100)),c=a(r(64));class l{static parse(e,t){const r=l.sourceTypes.length;for(let o=0;o"),s=`...${o.substring(n,i).replace(/^\s+/,"")}...`;throw new Error(`ERROR at line ${r.line}: ${t}\n${a} ${s}`)}}t.ASTParserFacade=l,l.colorError=c.default.red,l.nearestSymbolsCount=15,l.sourceTypes=["script","module"]},function(e,t){e.exports=require("chalk")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionCustomNode=void 0,function(e){e.BlockStatementDeadCodeInjectionNode="BlockStatementDeadCodeInjectionNode"}(t.DeadCodeInjectionCustomNode||(t.DeadCodeInjectionCustomNode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionExtractor=void 0,function(e){e.BasePropertiesExtractor="BasePropertiesExtractor",e.ObjectExpressionToVariableDeclarationExtractor="ObjectExpressionToVariableDeclarationExtractor"}(t.ObjectExpressionExtractor||(t.ObjectExpressionExtractor={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformerCustomNode=void 0,function(e){e.ObjectExpressionVariableDeclarationHostNode="ObjectExpressionVariableDeclarationHostNode"}(t.ObjectExpressionKeysTransformerCustomNode||(t.ObjectExpressionKeysTransformerCustomNode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroup=void 0,function(e){e.ConsoleOutput="ConsoleOutput",e.DebugProtection="DebugProtection",e.DomainLock="DomainLock",e.SelfDefending="SelfDefending",e.StringArray="StringArray"}(t.CustomCodeHelperGroup||(t.CustomCodeHelperGroup={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalCommentObfuscatingGuard=void 0;const i=r(0),a=r(4);let s=o=class{constructor(){this.obfuscationAllowed=!0}static isConditionalComment(e){return o.obfuscationEnableCommentRegExp.test(e.value)||o.obfuscationDisableCommentRegExp.test(e.value)}check(e){if(!a.NodeGuards.isNodeWithComments(e))return this.obfuscationAllowed;const t=e.leadingComments;return t&&(this.obfuscationAllowed=this.checkComments(t)),this.obfuscationAllowed}checkComments(e){const t=e.length;let r=this.obfuscationAllowed;for(let n=0;n=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},d=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomGenerator=void 0;const u=r(0),f=r(1),p=d(r(247)),m=r(248),g=r(2),_=r(249),S=r(8),h=r(33),N=r(40);let y=o=class{constructor(e,t){this.sourceCode=e,this.options=t}initialize(){this.randomGenerator=new m.Chance(this.getRawSeed())}getMathRandom(){return this.getRandomInteger(0,99999)/1e5}getRandomGenerator(){return this.randomGenerator}getRandomInteger(e,t){return this.getRandomGenerator().integer({min:e,max:t})}getRandomString(e,t=o.randomGeneratorPool){return this.getRandomGenerator().string({length:e,pool:t})}getInputSeed(){return this.options.seed.toString()}getRawSeed(){const e=this.getInputSeed();return`${e}`.split("|").length>1?e:`${e}|${p.default(this.sourceCode.getSourceCode())}`}};y.randomGeneratorPool=`${h.alphabetString}${N.alphabetStringUppercase}`,s([S.initializable(),c("design:type","function"==typeof(n=void 0!==m.Chance&&m.Chance.Chance)?n:Object)],y.prototype,"randomGenerator",void 0),s([u.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],y.prototype,"initialize",null),y=o=s([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.ISourceCode)),l(1,u.inject(f.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(i=void 0!==_.ISourceCode&&_.ISourceCode)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],y),t.RandomGenerator=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t){e.exports=require("reflect-metadata")},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;const l=r(0),d=r(1),u=c(r(64)),f=r(2),p=r(81);let m=o=class{constructor(e){this.options=e}static log(e,t,r,o){const n=e(`\n${t} ${r}`);console.log(n,null!=o?o:"")}info(e,t){this.options.log&&o.log(o.colorInfo,p.LoggingPrefix.Base,e,t)}success(e,t){this.options.log&&o.log(o.colorSuccess,p.LoggingPrefix.Base,e,t)}warn(e,t){this.options.log&&o.log(o.colorWarn,p.LoggingPrefix.Base,e,t)}};m.colorInfo=u.default.cyan,m.colorSuccess=u.default.green,m.colorWarn=u.default.yellow,m=o=i([l.injectable(),s(0,l.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object])],m),t.Logger=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingPrefix=void 0,function(e){e.Base="[javascript-obfuscator]",e.CLI="[javascript-obfuscator-cli]"}(t.LoggingPrefix||(t.LoggingPrefix={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.analyzersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(57),s=r(83),c=r(85),l=r(86),d=r(87),u=r(88),f=r(89),p=r(91);t.analyzersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.ICallsGraphAnalyzer).to(s.CallsGraphAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer).to(u.PrevailingKindOfVariablesAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IScopeAnalyzer).to(f.ScopeAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IStringArrayStorageAnalyzer).to(p.StringArrayStorageAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(c.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(l.FunctionExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(d.ObjectExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICalleeDataExtractor))})},function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsGraphAnalyzer=void 0;const u=r(0),f=r(1),p=c(r(12)),m=r(84),g=r(57),_=r(4),S=r(17);let h=o=class{constructor(e){this.calleeDataExtractorFactory=e}static getLimitIndex(e){const t=e-1,r=o.limitThresholdActivationLength-1;let n=t;return t>r&&(n=Math.round(r+t*o.limitThreshold),n>t&&(n=t)),n}analyze(e){return this.analyzeRecursive(e.body)}analyzeRecursive(e){const t=o.getLimitIndex(e.length),r=[],n=e.length;for(let o=0;ot);o++){const t=e[o];p.traverse(t,{enter:o=>{if(_.NodeGuards.isCallExpressionNode(o))return t.parentNode!==S.NodeStatementUtils.getParentNodeWithStatements(o)?p.VisitorOption.Skip:void this.analyzeCallExpressionNode(r,e,o)}})}return r}analyzeCallExpressionNode(e,t,r){o.calleeDataExtractorsList.forEach(o=>{const n=this.calleeDataExtractorFactory(o).extract(t,r.callee);n&&e.push(Object.assign(Object.assign({},n),{callsGraph:this.analyzeRecursive(n.callee.body)}))})}};h.calleeDataExtractorsList=[g.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,g.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,g.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor],h.limitThresholdActivationLength=25,h.limitThreshold=.002,h=o=s([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICalleeDataExtractor)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TCalleeDataExtractorFactory&&m.TCalleeDataExtractorFactory)?n:Object])],h),t.CallsGraphAnalyzer=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionDeclarationCalleeDataExtractor=void 0;const s=r(0),c=a(r(12)),l=r(46),d=r(4),u=r(17);let f=class extends l.AbstractCalleeDataExtractor{extract(e,t){if(!d.NodeGuards.isIdentifierNode(t))return null;const r=this.getCalleeBlockStatement(u.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name);return r?{callee:r,name:t.name}:null}getCalleeBlockStatement(e,t){let r=null;return c.traverse(e,{enter:e=>{if(d.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};f=i([s.injectable()],f),t.FunctionDeclarationCalleeDataExtractor=f},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionExpressionCalleeDataExtractor=void 0;const s=r(0),c=a(r(12)),l=r(46),d=r(4),u=r(17);let f=class extends l.AbstractCalleeDataExtractor{extract(e,t){let r=null,o=null;return d.NodeGuards.isIdentifierNode(t)?(r=t.name,o=this.getCalleeBlockStatement(u.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name)):d.NodeGuards.isFunctionExpressionNode(t)&&(r=null,o=t.body),o?{callee:o,name:r}:null}getCalleeBlockStatement(e,t){let r=null;return c.traverse(e,{enter:(e,o)=>{if(d.NodeGuards.isFunctionExpressionNode(e)&&o&&d.NodeGuards.isVariableDeclaratorNode(o)&&d.NodeGuards.isIdentifierNode(o.id)&&o.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};f=i([s.injectable()],f),t.FunctionExpressionCalleeDataExtractor=f},function(e,t,r){"use strict";var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionCalleeDataExtractor=void 0;const c=r(0),l=s(r(12)),d=r(46),u=r(4),f=r(17);let p=o=class extends d.AbstractCalleeDataExtractor{static isValidTargetPropertyNode(e,t){if(!e.key)return!1;const r=u.NodeGuards.isIdentifierNode(e.key)&&e.key.name===t,o=u.NodeGuards.isLiteralNode(e.key)&&Boolean(e.key.value)&&e.key.value===t;return r||o}extract(e,t){if(!u.NodeGuards.isMemberExpressionNode(t))return null;const r=this.createObjectMembersCallsChain([],t);if(!r.length)return null;const o=r[r.length-1],n=this.getCalleeBlockStatement(f.NodeStatementUtils.getParentNodeWithStatements(e[0]),r);return n?{callee:n,name:o}:null}createObjectMembersCallsChain(e,t){if(u.NodeGuards.isIdentifierNode(t.property)&&!t.computed)e.unshift(t.property.name);else{if(!u.NodeGuards.isLiteralNode(t.property)||"string"!=typeof t.property.value&&"number"!=typeof t.property.value)return e;e.unshift(t.property.value)}return u.NodeGuards.isMemberExpressionNode(t.object)?this.createObjectMembersCallsChain(e,t.object):(u.NodeGuards.isIdentifierNode(t.object)&&e.unshift(t.object.name),e)}getCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;let o=null;return l.traverse(e,{enter:e=>{if(u.NodeGuards.isVariableDeclaratorNode(e)&&u.NodeGuards.isIdentifierNode(e.id)&&e.init&&u.NodeGuards.isObjectExpressionNode(e.init)&&e.id.name===r)return o=this.findCalleeBlockStatement(e.init.properties,t),l.VisitorOption.Break}}),o}findCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;for(const n of e)if(u.NodeGuards.isPropertyNode(n)&&o.isValidTargetPropertyNode(n,r)){if(u.NodeGuards.isObjectExpressionNode(n.value))return this.findCalleeBlockStatement(n.value.properties,t);if(u.NodeGuards.isFunctionExpressionNode(n.value))return n.value.body}return null}};p=o=a([c.injectable()],p),t.ObjectExpressionCalleeDataExtractor=p},function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrevailingKindOfVariablesAnalyzer=void 0;const u=r(0),f=r(1),p=c(r(12)),m=r(36),g=r(4);let _=o=class{constructor(e){this.prevailingKindOfVariables=o.defaultKindOfVariables,this.arrayUtils=e}analyze(e){var t;const r=[];p.traverse(e,{enter:e=>{g.NodeGuards.isVariableDeclarationNode(e)&&r.push(e.kind)}}),this.prevailingKindOfVariables=null!==(t=this.arrayUtils.findMostOccurringElement(r))&&void 0!==t?t:o.defaultKindOfVariables}getPrevailingKind(){return this.prevailingKindOfVariables}};_.defaultKindOfVariables="var",_=o=s([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.IArrayUtils)),l("design:paramtypes",["function"==typeof(n=void 0!==m.IArrayUtils&&m.IArrayUtils)?n:Object])],_),t.PrevailingKindOfVariablesAnalyzer=_},function(e,t,r){"use strict";var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeAnalyzer=void 0;const c=r(0),l=s(r(90)),d=s(r(12)),u=r(47),f=r(4);let p=o=class{constructor(){this.scopeManager=null}static attachMissingRanges(e){d.replace(e,{enter:e=>{var t,r,n,i,a,s;return e.range||(e.range=[null!==(n=null===(r=null===(t=e.parentNode)||void 0===t?void 0:t.range)||void 0===r?void 0:r[0])&&void 0!==n?n:o.emptyRangeValue,null!==(s=null===(a=null===(i=e.parentNode)||void 0===i?void 0:i.range)||void 0===a?void 0:a[1])&&void 0!==s?s:o.emptyRangeValue]),e}})}static isRootNode(e){return f.NodeGuards.isProgramNode(e)||e.parentNode===e}analyze(e){const t=o.sourceTypes.length;o.attachMissingRanges(e);for(let r=0;r{if("class"===e.type&&e.upper){if(!e.variables.length)return;const t=e.variables[0],r=e.upper.variables.find(e=>t.defs.some(e=>"ClassName"===e.type)&&e.name===t.name);null==r||r.references.push(...e.variables[0].references)}});for(const t of e.childScopes)this.sanitizeScopes(t)}};p.eslintScopeOptions={ecmaVersion:u.ecmaVersion,optimistic:!0},p.sourceTypes=["script","module"],p.emptyRangeValue=0,p=o=a([c.injectable()],p),t.ScopeAnalyzer=p},function(e,t){e.exports=require("eslint-scope")},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorageAnalyzer=void 0;const p=r(0),m=r(1),g=d(r(12)),_=r(2),S=r(3),h=r(37),N=r(4),y=r(19),b=r(48);let O=o=class{constructor(e,t,r){this.stringArrayStorageData=new Map,this.stringArrayStorage=e,this.randomGenerator=t,this.options=r}analyze(e){this.options.stringArray&&g.traverse(e,{enter:(e,t)=>{if(t)return y.NodeMetadata.isIgnoredNode(e)?g.VisitorOption.Skip:void(N.NodeGuards.isLiteralNode(e)&&this.analyzeLiteralNode(e,t))}})}getItemDataForLiteralNode(e){return this.stringArrayStorageData.get(e)}analyzeLiteralNode(e,t){"string"==typeof e.value&&(b.NodeLiteralUtils.isProhibitedLiteralNode(e,t)||this.shouldAddValueToStringArray(e.value)&&this.stringArrayStorageData.set(e,this.stringArrayStorage.getOrThrow(e.value)))}shouldAddValueToStringArray(e){return e.length>=o.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}};O.minimumLengthForStringArray=3,O=o=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.IStringArrayStorage)),f(1,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==h.IStringArrayStorage&&h.IStringArrayStorage)?n:Object,"function"==typeof(i=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==_.IOptions&&_.IOptions)?a:Object])],O),t.StringArrayStorageAnalyzer=O},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codeTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(58),s=r(93),c=r(95);t.codeTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.Factory__ICodeTransformer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICodeTransformer)),e(i.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder).to(s.CodeTransformerNamesGroupsBuilder).inSingletonScope(),e(i.ServiceIdentifiers.ICodeTransformer).to(c.HashbangOperatorTransformer).whenTargetNamed(a.CodeTransformer.HashbangOperatorTransformer)})},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformerNamesGroupsBuilder=void 0;const n=r(0),i=r(59);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.CodeTransformerNamesGroupsBuilder=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashbangOperatorTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(60),p=r(96);let m=class extends p.AbstractCodeTransformer{constructor(e,t){super(e,t),this.hashbangOperatorLine=null}transformCode(e,t){switch(t){case f.CodeTransformationStage.PreparingTransformers:return this.removeAndSaveHashbangOperatorLine(e);case f.CodeTransformationStage.FinalizingTransformers:return this.appendSavedHashbangOperatorLine(e);default:return e}}removeAndSaveHashbangOperatorLine(e){return e.replace(/^#!.*$(\r?\n)*/m,e=>(e&&(this.hashbangOperatorLine=e),"")).trim()}appendSavedHashbangOperatorLine(e){var t;return`${null!==(t=this.hashbangOperatorLine)&&void 0!==t?t:""}${e}`}};m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],m),t.HashbangOperatorTransformer=m},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCodeTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3);let f=class{constructor(e,t){this.randomGenerator=e,this.options=t}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.AbstractCodeTransformer=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.controlFlowTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(61),s=r(13),c=r(98),l=r(99),d=r(101),u=r(102),f=r(104),p=r(107),m=r(108);t.controlFlowTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.DeadCodeInjectionTransformer).whenTargetNamed(s.NodeTransformer.DeadCodeInjectionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(c.BinaryExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(d.CallExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(p.LogicalExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(m.StringLiteralControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(i.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IControlFlowReplacer))})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3),g=r(22),_=r(62);let S=o=class extends _.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.operator,i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.BinaryExpressionFunctionNode);i.initialize(n);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}};S.usingExistingIdentifierChance=.5,S=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],S),t.BinaryExpressionControlFlowReplacer=S},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&c(t,e,r);return l(t,e),t},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowTransformer=void 0;const m=r(0),g=r(1),_=u(r(12)),S=r(21),h=r(36),N=r(2),y=r(3),b=r(22),O=r(9),E=r(11),I=r(4),C=r(6);let v=o=class extends E.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.controlFlowCustomNodeFactory=e,this.arrayUtils=t}static isProhibitedStatementNode(e){const t=I.NodeGuards.isBreakStatementNode(e)||I.NodeGuards.isContinueStatementNode(e),r=I.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),o=I.NodeGuards.isClassDeclarationNode(e);return I.NodeGuards.isFunctionDeclarationNode(e)||t||r||o}static canTransformBlockStatementNode(e){let t=!0;return _.traverse(e,{enter:e=>{if(I.NodeGuards.isWhileStatementNode(e))return _.VisitorOption.Skip;o.isProhibitedStatementNode(e)&&(t=!1)}}),e.body.length<=4&&(t=!1),t}getVisitor(e){switch(e){case O.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&I.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold||!o.canTransformBlockStatementNode(e))return e;const r=e.body,n=this.arrayUtils.createWithRange(r.length),i=this.arrayUtils.shuffle(n),a=n.map(e=>i.indexOf(e)),s=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);s.initialize(r,i,a);const c=s.getNode()[0];return C.NodeUtils.parentizeNode(c,t),c}};v=o=d([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.Factory__IControlFlowCustomNode)),p(1,m.inject(g.ServiceIdentifiers.IArrayUtils)),p(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),p(3,m.inject(g.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==S.TControlFlowCustomNodeFactory&&S.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==h.IArrayUtils&&h.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object])],v),t.BlockStatementControlFlowTransformer=v},function(e,t){e.exports=require("acorn")},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3),g=r(22),_=r(49),S=r(4);let h=o=class extends _.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.callee;if(!S.NodeGuards.isIdentifierNode(n))return e;const i=String(e.arguments.length),a=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.CallExpressionFunctionNode),s=e.arguments;a.initialize(s);const c=this.insertCustomNodeToControlFlowStorage(a,r,i,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),c,n,s)}getControlFlowStorageCallNode(e,t,r,o){const n=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);n.initialize(e,t,r,o);const i=n.getNode()[0];if(!i||!S.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};h.usingExistingIdentifierChance=.5,h=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],h),t.CallExpressionControlFlowReplacer=h},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&c(t,e,r);return l(t,e),t},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionTransformer=void 0;const m=r(0),g=r(1),_=u(r(12)),S=r(103),h=r(2),N=r(3),y=r(65),b=r(66),O=r(13),E=r(35),I=r(9),C=r(11),v=r(7),T=r(4),R=r(17),M=r(6);let A=o=class extends C.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.deadCodeInjectionRootAstHostNodeSet=new Set,this.collectedBlockStatements=[],this.collectedBlockStatementsTotalLength=0,this.deadCodeInjectionCustomNodeFactory=e,this.transformersRunner=t}static isProhibitedNodeInsideCollectedBlockStatement(e){return T.NodeGuards.isBreakStatementNode(e)||T.NodeGuards.isContinueStatementNode(e)||T.NodeGuards.isAwaitExpressionNode(e)||T.NodeGuards.isSuperNode(e)}static isScopeHoistingFunctionDeclaration(e){if(!T.NodeGuards.isFunctionDeclarationNode(e))return!1;const t=R.NodeStatementUtils.getScopeOfNode(e),r=T.NodeGuards.isSwitchCaseNode(t)?t.consequent:t.body,o=r.indexOf(e);if(0===o)return!1;const n=r.slice(0,o),i=v.NodeFactory.blockStatementNode(n),a=e.id.name;let s=!1;return _.traverse(i,{enter:e=>{if(T.NodeGuards.isIdentifierNode(e)&&e.name===a)return s=!0,_.VisitorOption.Break}}),s}static isValidCollectedBlockStatementNode(e){if(!e.body.length)return!1;let t=0,r=!0;return _.traverse(e,{enter:e=>{if(T.NodeGuards.isBlockStatementNode(e)&&t++,t>o.maxNestedBlockStatementsCount||o.isProhibitedNodeInsideCollectedBlockStatement(e)||o.isScopeHoistingFunctionDeclaration(e))return r=!1,_.VisitorOption.Break}}),r}static isValidWrappedBlockStatementNode(e){if(!e.body.length)return!1;let t=!0;if(_.traverse(e,{enter:e=>{if(o.isScopeHoistingFunctionDeclaration(e))return t=!1,_.VisitorOption.Break}}),!t)return!1;return R.NodeStatementUtils.getParentNodeWithStatements(e).type!==E.NodeType.Program}getVisitor(e){switch(e){case I.NodeTransformationStage.DeadCodeInjection:return{enter:(e,t)=>{if(t&&T.NodeGuards.isProgramNode(e))return this.analyzeNode(e,t),e},leave:(e,t)=>{if(t&&T.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};case I.NodeTransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:(e,t)=>{if(t&&this.isDeadCodeInjectionRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}analyzeNode(e,t){_.traverse(e,{enter:e=>{if(!T.NodeGuards.isBlockStatementNode(e))return;const t=M.NodeUtils.clone(e);if(!o.isValidCollectedBlockStatementNode(t))return;const r=this.makeClonedBlockStatementNodeUnique(t);this.collectedBlockStatements.push(r)}}),this.collectedBlockStatementsTotalLength=this.collectedBlockStatements.length}transformNode(e,t){if(!this.collectedBlockStatements.length||this.collectedBlockStatementsTotalLengththis.options.deadCodeInjectionThreshold||!o.isValidWrappedBlockStatementNode(e))return e;const r=this.collectedBlockStatements.length-1,n=this.randomGenerator.getRandomInteger(0,r),i=this.collectedBlockStatements.splice(n,1)[0];return i===e?e:this.replaceBlockStatementNode(e,i,t)}restoreNode(e,t){const r=e.body[0];if(!T.NodeGuards.isFunctionDeclarationNode(r))throw new Error("Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node");return r.body}isDeadCodeInjectionRootAstHostNode(e){return T.NodeGuards.isBlockStatementNode(e)&&this.deadCodeInjectionRootAstHostNodeSet.has(e)}makeClonedBlockStatementNodeUnique(e){const t=v.NodeFactory.programNode([v.NodeFactory.expressionStatementNode(v.NodeFactory.functionExpressionNode([],e))]);return M.NodeUtils.parentizeAst(t),M.NodeUtils.parentizeNode(t,t),this.transformersRunner.transform(t,o.transformersToRenameBlockScopeIdentifiers,I.NodeTransformationStage.Obfuscating),e}replaceBlockStatementNode(e,t,r){const n=v.NodeFactory.blockStatementNode([v.NodeFactory.functionDeclarationNode(o.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(n);const i=this.deadCodeInjectionCustomNodeFactory(b.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);i.initialize(e,n);const a=i.getNode()[0];return M.NodeUtils.parentizeNode(a,r),a}};A.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",A.maxNestedBlockStatementsCount=4,A.minCollectedBlockStatementsCount=5,A.transformersToRenameBlockScopeIdentifiers=[O.NodeTransformer.LabeledStatementTransformer,O.NodeTransformer.ScopeIdentifiersTransformer],A=o=d([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),p(1,m.inject(g.ServiceIdentifiers.INodeTransformersRunner)),p(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),p(3,m.inject(g.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==S.TDeadNodeInjectionCustomNodeFactory&&S.TDeadNodeInjectionCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==y.INodeTransformersRunner&&y.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object])],A),t.DeadCodeInjectionTransformer=A},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),d=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},f=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&l(t,e,r);return d(t,e),t},p=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},m=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionControlFlowTransformer=void 0;const g=r(0),_=r(1),S=f(r(12)),h=r(21),N=r(105),y=r(106),b=r(2),O=r(3),E=r(22),I=r(61),C=r(35),v=r(9),T=r(11),R=r(23),M=r(4),A=r(19),F=r(17),j=r(6);let D=o=class extends T.AbstractNodeTransformer{constructor(e,t,r,o,n){super(o,n),this.controlFlowData=new Map,this.visitedFunctionNodes=new Set,this.hostNodesWithControlFlowNode=new Set,this.controlFlowStorageFactory=e,this.controlFlowReplacerFactory=t,this.controlFlowCustomNodeFactory=r}getVisitor(e){switch(e){case v.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&(M.NodeGuards.isFunctionDeclarationNode(e)||M.NodeGuards.isFunctionExpressionNode(e)||M.NodeGuards.isArrowFunctionExpressionNode(e)))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.visitedFunctionNodes.add(e),!M.NodeGuards.isBlockStatementNode(e.body))return e;const r=this.getHostNode(e.body),o=this.getControlFlowStorage(r);if(this.controlFlowData.set(r,o),this.transformFunctionBody(e.body,o),!o.getLength())return e;const n=this.controlFlowCustomNodeFactory(E.ControlFlowCustomNode.ControlFlowStorageNode);return n.initialize(o),R.NodeAppender.prepend(r,n.getNode()),this.hostNodesWithControlFlowNode.add(r),j.NodeUtils.parentizeAst(e),e}getControlFlowStorage(e){const t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&(M.NodeGuards.isSwitchCaseNode(e)?e.consequent.shift():e.body.shift());const r=this.controlFlowData.get(e);t.mergeWith(r,!0)}return t}getHostNode(e){const t=F.NodeStatementUtils.getParentNodesWithStatements(e);return 1===t.length?e:(t.pop(),t.length>o.hostNodeSearchMinDepth&&t.splice(0,o.hostNodeSearchMinDepth),t.length>o.hostNodeSearchMaxDepth&&(t.length=o.hostNodeSearchMaxDepth),this.randomGenerator.getRandomGenerator().pickone(t))}isVisitedFunctionNode(e){return(M.NodeGuards.isFunctionDeclarationNode(e)||M.NodeGuards.isFunctionExpressionNode(e)||M.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}transformFunctionBody(e,t){S.replace(e,{enter:(e,r)=>{if(A.NodeMetadata.isIgnoredNode(e))return S.VisitorOption.Skip;if(this.isVisitedFunctionNode(e)||!r)return S.VisitorOption.Skip;if(!o.controlFlowReplacersMap.has(e.type))return e;if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold)return e;const n=o.controlFlowReplacersMap.get(e.type);return void 0===n?e:Object.assign(Object.assign({},this.controlFlowReplacerFactory(n).replace(e,r,t)),{parentNode:r})}})}};D.controlFlowReplacersMap=new Map([[C.NodeType.BinaryExpression,I.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[C.NodeType.CallExpression,I.ControlFlowReplacer.CallExpressionControlFlowReplacer],[C.NodeType.LogicalExpression,I.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[C.NodeType.Literal,I.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),D.hostNodeSearchMinDepth=0,D.hostNodeSearchMaxDepth=2,D=o=u([g.injectable(),m(0,g.inject(_.ServiceIdentifiers.Factory__TControlFlowStorage)),m(1,g.inject(_.ServiceIdentifiers.Factory__IControlFlowReplacer)),m(2,g.inject(_.ServiceIdentifiers.Factory__IControlFlowCustomNode)),m(3,g.inject(_.ServiceIdentifiers.IRandomGenerator)),m(4,g.inject(_.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==y.TControlFlowStorageFactory&&y.TControlFlowStorageFactory)?n:Object,"function"==typeof(i=void 0!==N.TControlFlowReplacerFactory&&N.TControlFlowReplacerFactory)?i:Object,"function"==typeof(a=void 0!==h.TControlFlowCustomNodeFactory&&h.TControlFlowCustomNodeFactory)?a:Object,"function"==typeof(s=void 0!==O.IRandomGenerator&&O.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==b.IOptions&&b.IOptions)?c:Object])],D),t.FunctionControlFlowTransformer=D},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3),g=r(22),_=r(62),S=r(4),h=r(6);let N=o=class extends _.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(this.checkForProhibitedExpressions(e.left,e.right))return e;const n=e.operator,i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.LogicalExpressionFunctionNode);i.initialize(n);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}checkForProhibitedExpressions(e,t){return[e,t].some(e=>{let t;return t=S.NodeGuards.isUnaryExpressionNode(e)?h.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(S.NodeGuards.isLiteralNode(t)||S.NodeGuards.isIdentifierNode(t)||S.NodeGuards.isObjectExpressionNode(t)||S.NodeGuards.isExpressionStatementNode(t))})}};N.usingExistingIdentifierChance=.5,N=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],N),t.LogicalExpressionControlFlowReplacer=N},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3),g=r(22),_=r(49),S=r(4);let h=o=class extends _.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(S.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if("string"!=typeof e.value||e.value.length<3)return e;const n=String(e.value),i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.StringLiteralNode);i.initialize(e.value);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a)}getControlFlowStorageCallNode(e,t){const r=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);r.initialize(e,t);const o=r.getNode()[0];if(!o||!S.NodeGuards.isExpressionStatementNode(o))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return o.expression}};h.usingExistingIdentifierChance=1,h=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],h),t.StringLiteralControlFlowReplacer=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertingTransformersModule=void 0;const o=r(0),n=r(16),i=r(1),a=r(13),s=r(67),c=r(110),l=r(112),d=r(113),u=r(114),f=r(116),p=r(117),m=r(118),g=r(119);t.convertingTransformersModule=new o.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.MemberExpressionTransformer).whenTargetNamed(a.NodeTransformer.MemberExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(d.MethodDefinitionTransformer).whenTargetNamed(a.NodeTransformer.MethodDefinitionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.ObjectExpressionKeysTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionKeysTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.ObjectExpressionTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(p.SplitStringTransformer).whenTargetNamed(a.NodeTransformer.SplitStringTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.TemplateLiteralTransformer).whenTargetNamed(a.NodeTransformer.TemplateLiteralTransformer),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(c.ObjectExpressionToVariableDeclarationExtractor).whenTargetNamed(s.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(g.BasePropertiesExtractor).whenTargetNamed(s.ObjectExpressionExtractor.BasePropertiesExtractor),e(i.ServiceIdentifiers.Factory__IObjectExpressionExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IObjectExpressionExtractor))})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionToVariableDeclarationExtractor=void 0;const s=r(0),c=r(1),l=r(111),d=r(68),u=r(23),f=r(4),p=r(17),m=r(6),g=r(24);let _=class{constructor(e){this.objectExpressionKeysTransformerCustomNodeFactory=e}extract(e,t){return this.transformObjectExpressionToVariableDeclaration(e,t)}transformObjectExpressionToVariableDeclaration(e,t){var r;const o=p.NodeStatementUtils.getScopeOfNode(t),n=f.NodeGuards.isNodeWithLexicalScope(o)?o:null!==(r=g.NodeLexicalScopeUtils.getLexicalScope(o))&&void 0!==r?r:null;if(!n)throw new Error("Cannot find lexical scope node for the host statement node");const i=e.properties,a=this.getObjectExpressionHostNode(n,i),s=[a];return u.NodeAppender.insertBefore(o,s,t),m.NodeUtils.parentizeAst(a),m.NodeUtils.parentizeNode(a,o),{nodeToReplace:this.getObjectExpressionIdentifierNode(a),objectExpressionHostStatement:a,objectExpressionNode:this.getObjectExpressionNode(a)}}getObjectExpressionHostNode(e,t){const r=this.objectExpressionKeysTransformerCustomNodeFactory(d.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);r.initialize(e,t);const o=r.getNode()[0];if(!o||!f.NodeGuards.isVariableDeclarationNode(o))throw new Error("`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node");return o}getObjectExpressionIdentifierNode(e){const t=e.declarations[0].id;if(!f.NodeGuards.isIdentifierNode(t))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property");return t}getObjectExpressionNode(e){var t;const r=null!==(t=e.declarations[0].init)&&void 0!==t?t:null;if(!r||!f.NodeGuards.isObjectExpressionNode(r))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property");return r}};_=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),i("design:paramtypes",["function"==typeof(o=void 0!==l.TObjectExpressionKeysTransformerCustomNodeFactory&&l.TObjectExpressionKeysTransformerCustomNodeFactory)?o:Object])],_),t.ObjectExpressionToVariableDeclarationExtractor=_},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MemberExpressionTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(9),p=r(11),m=r(7),g=r(4);let _=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&g.NodeGuards.isMemberExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(g.NodeGuards.isIdentifierNode(e.property)){if(e.computed)return e;e.computed=!0,e.property=m.NodeFactory.literalNode(e.property.name)}return e}};_=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],_),t.MemberExpressionTransformer=_},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MethodDefinitionTransformer=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(9),m=r(11),g=r(7),_=r(4);let S=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&_.NodeGuards.isMethodDefinitionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return _.NodeGuards.isIdentifierNode(e.key)?this.replaceIdentifierKey(e,e.key):_.NodeGuards.isLiteralNode(e.key)?this.replaceLiteralKey(e,e.key):e}replaceIdentifierKey(e,t){return o.ignoredNames.includes(t.name)||e.computed||(e.computed=!0,e.key=g.NodeFactory.literalNode(t.name)),e}replaceLiteralKey(e,t){return"string"!=typeof t.value||o.ignoredNames.includes(t.value)||e.computed||(e.computed=!0),e}};S.ignoredNames=["constructor"],S=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],S),t.MethodDefinitionTransformer=S},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformer=void 0;const p=r(0),m=r(1),g=d(r(12)),_=r(115),S=r(2),h=r(3),N=r(9),y=r(11),b=r(4),O=r(17),E=r(67);let I=o=class extends y.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.objectExpressionExtractorFactory=e}static isProhibitedHostStatement(e,t){return o.isReferencedIdentifierName(e,t)||o.isProhibitedSequenceExpression(e,t)}static isReferencedIdentifierName(e,t){const r=[];let o=!1,n=!1;return g.traverse(t,{enter:t=>{t===e&&(n=!0),b.NodeGuards.isIdentifierNode(t)&&(n?r.includes(t.name)&&(o=!0):r.push(t.name))},leave:t=>{if(t===e)return n=!1,g.VisitorOption.Break}}),o}static isProhibitedSequenceExpression(e,t){return b.NodeGuards.isExpressionStatementNode(t)&&b.NodeGuards.isSequenceExpressionNode(t.expression)&&t.expression.expressions.some(e=>b.NodeGuards.isCallExpressionNode(e)&&b.NodeGuards.isSuperNode(e.callee))}getVisitor(e){if(!this.options.transformObjectKeys)return null;switch(e){case N.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&b.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!e.properties.length)return e;const r=O.NodeStatementUtils.getRootStatementOfNode(e);return o.isProhibitedHostStatement(e,r)?e:this.applyObjectExpressionKeysExtractorsRecursive(o.objectExpressionExtractorNames,e,r)}applyObjectExpressionKeysExtractorsRecursive(e,t,r){const o=[...e],n=o.shift();if(!n)return t;const{nodeToReplace:i,objectExpressionHostStatement:a,objectExpressionNode:s}=this.objectExpressionExtractorFactory(n).extract(t,r);return this.applyObjectExpressionKeysExtractorsRecursive(o,s,a),i}};I.objectExpressionExtractorNames=[E.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,E.ObjectExpressionExtractor.BasePropertiesExtractor],I=o=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),f(1,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==_.TObjectExpressionExtractorFactory&&_.TObjectExpressionExtractorFactory)?n:Object,"function"==typeof(i=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==S.IOptions&&S.IOptions)?a:Object])],I),t.ObjectExpressionKeysTransformer=I},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(9),p=r(11),m=r(7),g=r(4);let _=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&g.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.properties.forEach(e=>{g.NodeGuards.isPropertyNode(e)&&e.key&&(e.computed?this.transformComputedProperty(e):this.transformBaseProperty(e))}),e}transformComputedProperty(e){g.NodeGuards.isLiteralNode(e.key)&&"string"==typeof e.key.value&&(e.key=m.NodeFactory.literalNode(e.key.value))}transformBaseProperty(e){e.shorthand&&(e.shorthand=!1),g.NodeGuards.isIdentifierNode(e.key)&&(e.key=m.NodeFactory.literalNode(e.key.name))}};_=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],_),t.ObjectExpressionTransformer=_},function(e,t,r){"use strict";var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringTransformer=void 0;const f=r(0),p=r(1),m=l(r(12)),g=r(2),_=r(3),S=r(13),h=r(9),N=r(11),y=r(7),b=r(4),O=r(48),E=r(6);let I=o=class extends N.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[S.NodeTransformer.ObjectExpressionKeysTransformer,S.NodeTransformer.TemplateLiteralTransformer]}static chunkString(e,t){const r=Math.ceil(e.length/t),o=[];let n=0;for(let i=0;i{if(this.options.splitStrings)return t&&b.NodeGuards.isLiteralNode(e)?this.transformNode(e,t):void 0}};default:return null}}transformNode(e,t){if(O.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=this.transformLiteralNodeByChunkLength(e,t,o.firstPassChunkLength);return m.replace(r,{enter:(e,t)=>{if(t&&b.NodeGuards.isLiteralNode(e))return this.transformLiteralNodeByChunkLength(e,t,this.options.splitStringsChunkLength)}})}transformLiteralNodeByChunkLength(e,t,r){if("string"!=typeof e.value)return e;if(r>=e.value.length)return e;const n=o.chunkString(e.value,r),i=this.transformStringChunksToBinaryExpressionNode(n);return E.NodeUtils.parentizeAst(i),E.NodeUtils.parentizeNode(i,t),i}transformStringChunksToBinaryExpressionNode(e){const t=e.shift(),r=e.shift();if(!t||!r)throw new Error("First and second chunks values should not be empty");const o=y.NodeFactory.binaryExpressionNode("+",y.NodeFactory.literalNode(t),y.NodeFactory.literalNode(r));return e.reduce((e,t)=>{const r=y.NodeFactory.literalNode(t);return y.NodeFactory.binaryExpressionNode("+",e,r)},o)}};I.firstPassChunkLength=1e3,I=o=c([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(1,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object])],I),t.SplitStringTransformer=I},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemplateLiteralTransformer=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(9),m=r(11),g=r(7),_=r(4),S=r(6);let h=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}static isLiteralNodeWithStringValue(e){return!!e&&_.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}static isValidTemplateLiteralNode(e,t){return _.NodeGuards.isTemplateLiteralNode(e)&&!_.NodeGuards.isTaggedTemplateExpressionNode(t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&o.isValidTemplateLiteralNode(e,t))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=e.expressions;let n,i=[];if(e.quasis.forEach(e=>{i.push(g.NodeFactory.literalNode(e.value.cooked));const t=r.shift();t&&i.push(t)}),i=i.filter(e=>!(_.NodeGuards.isLiteralNode(e)&&""===e.value)),o.isLiteralNodeWithStringValue(i[0])||o.isLiteralNodeWithStringValue(i[1])||i.unshift(g.NodeFactory.literalNode("")),i.length>1){let e=g.NodeFactory.binaryExpressionNode("+",i.shift(),i.shift());i.forEach(t=>{e=g.NodeFactory.binaryExpressionNode("+",e,t)}),n=e}else n=i[0];return S.NodeUtils.parentizeAst(n),S.NodeUtils.parentizeNode(n,t),n}};h=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],h),t.TemplateLiteralTransformer=h},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.BasePropertiesExtractor=void 0;const i=r(0),a=r(23),s=r(7),c=r(4),l=r(17),d=r(6);let u=o=class{static getPropertyNodeKeyName(e){const t=e.key;return!c.NodeGuards.isLiteralNode(t)||"string"!=typeof t.value&&"number"!=typeof t.value?c.NodeGuards.isIdentifierNode(t)?t.name:null:t.value.toString()}static isProhibitedPattern(e){return!e||c.NodeGuards.isObjectPatternNode(e)||c.NodeGuards.isArrayPatternNode(e)||c.NodeGuards.isAssignmentPatternNode(e)||c.NodeGuards.isRestElementNode(e)}extract(e,t){const r=e.parentNode;return r&&c.NodeGuards.isVariableDeclaratorNode(r)&&c.NodeGuards.isIdentifierNode(r.id)?this.transformObjectExpressionNode(e,t,r.id):{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}transformObjectExpressionNode(e,t,r){const o=e.properties,[n,i]=this.extractPropertiesToExpressionStatements(o,t,r),s=l.NodeStatementUtils.getScopeOfNode(t);return this.filterExtractedObjectExpressionProperties(e,i),a.NodeAppender.insertAfter(s,n,t),d.NodeUtils.parentizeAst(s),{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}extractPropertiesToExpressionStatements(e,t,r){const n=e.length,i=[],a=[];for(let l=0;l!t.includes(r))}};u=o=n([i.injectable()],u),t.BasePropertiesExtractor=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customCodeHelpersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(27),s=r(69),c=r(121),l=r(122),d=r(123),u=r(124),f=r(125),p=r(126),m=r(130),g=r(132),_=r(134),S=r(136),h=r(138),N=r(142),y=r(144),b=r(146),O=r(149),E=r(156),I=r(158);t.customCodeHelpersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.ICustomCodeHelper).to(p.ConsoleOutputDisableCodeHelper).whenTargetNamed(a.CustomCodeHelper.ConsoleOutputDisable),e(i.ServiceIdentifiers.ICustomCodeHelper).to(_.DebugProtectionFunctionCallCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionCall),e(i.ServiceIdentifiers.ICustomCodeHelper).to(S.DebugProtectionFunctionIntervalCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionInterval),e(i.ServiceIdentifiers.ICustomCodeHelper).to(h.DebugProtectionFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(N.DomainLockCodeHelper).whenTargetNamed(a.CustomCodeHelper.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelper).to(y.CallsControllerFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.CallsControllerFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(b.SelfDefendingUnicodeCodeHelper).whenTargetNamed(a.CustomCodeHelper.SelfDefendingUnicode),e(i.ServiceIdentifiers.ICustomCodeHelper).to(O.StringArrayCallsWrapperCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapper),e(i.ServiceIdentifiers.ICustomCodeHelper).to(E.StringArrayCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArray),e(i.ServiceIdentifiers.ICustomCodeHelper).to(I.StringArrayRotateFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayRotateFunction),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(c.ConsoleOutputCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.ConsoleOutput),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(l.DebugProtectionCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DebugProtection),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(d.DomainLockCustomCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(u.SelfDefendingCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.SelfDefending),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(f.StringArrayCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.StringArray),e(i.ServiceIdentifiers.Factory__ICustomCodeHelper).toFactory(o.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelper)),e(i.ServiceIdentifiers.Factory__ICustomCodeHelperGroup).toFactory(o.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelperGroup)),e(i.ServiceIdentifiers.ICustomCodeHelperFormatter).to(m.CustomCodeHelperFormatter).inSingletonScope(),e(i.ServiceIdentifiers.ICustomCodeHelperObfuscator).to(g.CustomCodeHelperObfuscator).inSingletonScope()})},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputCodeHelperGroup=void 0;const u=r(0),f=r(1),p=r(29),m=r(5),g=r(2),_=r(3),S=r(8),h=r(27),N=r(25),y=r(30),b=r(23),O=r(24),E=r(4);let I=class extends y.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=N.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.disableConsoleOutput)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=O.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a&&E.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.randomGenerator.getRandomString(5),c=a&&E.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.randomGenerator.getRandomString(5);this.appendCustomNodeIfExist(h.CustomCodeHelper.ConsoleOutputDisable,e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())}),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())})}initialize(){if(this.customCodeHelpers=new Map,!this.options.disableConsoleOutput)return;const e=this.customCodeHelperFactory(h.CustomCodeHelper.ConsoleOutputDisable),t=this.customCodeHelperFactory(h.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(h.CustomCodeHelper.ConsoleOutputDisable,e),this.customCodeHelpers.set(h.CustomCodeHelper.CallsControllerFunction,t)}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.ConsoleOutputCodeHelperGroup=I},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionCodeHelperGroup=void 0;const u=r(0),f=r(1),p=r(29),m=r(5),g=r(2),_=r(3),S=r(8),h=r(27),N=r(25),y=r(30),b=r(23),O=r(4),E=r(24);let I=class extends y.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=N.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.debugProtection)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=E.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a&&O.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.randomGenerator.getRandomString(5),c=a&&O.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.randomGenerator.getRandomString(5);this.appendCustomNodeIfExist(h.CustomCodeHelper.DebugProtectionFunctionCall,e=>{e.initialize(s,c),b.NodeAppender.prepend(n,e.getNode())}),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())}),this.appendCustomNodeIfExist(h.CustomCodeHelper.DebugProtectionFunction,t=>{t.initialize(s),b.NodeAppender.append(e,t.getNode())}),this.appendCustomNodeIfExist(h.CustomCodeHelper.DebugProtectionFunctionInterval,t=>{const r=O.NodeGuards.isSwitchCaseNode(e)?e.consequent.length:e.body.length,o=this.randomGenerator.getRandomInteger(0,r);t.initialize(s),b.NodeAppender.insertAtIndex(e,t.getNode(),o)})}initialize(){if(this.customCodeHelpers=new Map,!this.options.debugProtection)return;const e=this.customCodeHelperFactory(h.CustomCodeHelper.DebugProtectionFunction),t=this.customCodeHelperFactory(h.CustomCodeHelper.DebugProtectionFunctionCall),r=this.customCodeHelperFactory(h.CustomCodeHelper.DebugProtectionFunctionInterval),o=this.customCodeHelperFactory(h.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(h.CustomCodeHelper.DebugProtectionFunction,e),this.customCodeHelpers.set(h.CustomCodeHelper.DebugProtectionFunctionCall,t),this.options.debugProtectionInterval&&this.customCodeHelpers.set(h.CustomCodeHelper.DebugProtectionFunctionInterval,r),this.customCodeHelpers.set(h.CustomCodeHelper.CallsControllerFunction,o)}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.DebugProtectionCodeHelperGroup=I},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCustomCodeHelperGroup=void 0;const u=r(0),f=r(1),p=r(29),m=r(5),g=r(2),_=r(3),S=r(8),h=r(27),N=r(25),y=r(30),b=r(23),O=r(24),E=r(4);let I=class extends y.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=N.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.domainLock.length)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=O.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a&&E.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a&&E.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(h.CustomCodeHelper.DomainLock,e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())}),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())})}initialize(){if(this.customCodeHelpers=new Map,!this.options.domainLock.length)return;const e=this.customCodeHelperFactory(h.CustomCodeHelper.DomainLock),t=this.customCodeHelperFactory(h.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(h.CustomCodeHelper.DomainLock,e),this.customCodeHelpers.set(h.CustomCodeHelper.CallsControllerFunction,t)}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.DomainLockCustomCodeHelperGroup=I},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingCodeHelperGroup=void 0;const u=r(0),f=r(1),p=r(29),m=r(5),g=r(2),_=r(3),S=r(8),h=r(27),N=r(25),y=r(30),b=r(23),O=r(24);let E=class extends y.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=N.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.selfDefending)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=O.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(h.CustomCodeHelper.SelfDefendingUnicode,e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())}),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())})}initialize(){if(this.customCodeHelpers=new Map,!this.options.selfDefending)return;const e=this.customCodeHelperFactory(h.CustomCodeHelper.SelfDefendingUnicode),t=this.customCodeHelperFactory(h.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(h.CustomCodeHelper.SelfDefendingUnicode,e),this.customCodeHelpers.set(h.CustomCodeHelper.CallsControllerFunction,t)}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],E.prototype,"customCodeHelpers",void 0),E=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],E),t.SelfDefendingCodeHelperGroup=E},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelperGroup=void 0;const f=r(0),p=r(1),m=r(29),g=r(5),_=r(2),S=r(3),h=r(37),N=r(8),y=r(27),b=r(25),O=r(30),E=r(23);let I=class extends O.AbstractCustomCodeHelperGroup{constructor(e,t,r,o,n){super(r,o,n),this.appendEvent=b.ObfuscationEvent.AfterObfuscation,this.customCodeHelperFactory=e,this.stringArrayStorage=t}appendNodes(e,t){this.stringArrayStorage.getLength()&&(this.appendCustomNodeIfExist(y.CustomCodeHelper.StringArray,t=>{E.NodeAppender.prepend(e,t.getNode())}),this.appendCustomNodeIfExist(y.CustomCodeHelper.StringArrayCallsWrapper,t=>{E.NodeAppender.insertAtIndex(e,t.getNode(),1)}),this.appendCustomNodeIfExist(y.CustomCodeHelper.StringArrayRotateFunction,t=>{E.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.stringArray)return;const e=this.customCodeHelperFactory(y.CustomCodeHelper.StringArray),t=this.customCodeHelperFactory(y.CustomCodeHelper.StringArrayCallsWrapper),r=this.customCodeHelperFactory(y.CustomCodeHelper.StringArrayRotateFunction),o=this.stringArrayStorage.getStorageName(),n=this.stringArrayStorage.getStorageCallsWrapperName(),i=this.stringArrayStorage.getRotationAmount();e.initialize(this.stringArrayStorage,o),t.initialize(o,n),r.initialize(o,i),this.customCodeHelpers.set(y.CustomCodeHelper.StringArray,e),this.customCodeHelpers.set(y.CustomCodeHelper.StringArrayCallsWrapper,t),this.options.rotateStringArray&&this.customCodeHelpers.set(y.CustomCodeHelper.StringArrayRotateFunction,r)}};l([N.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),u(1,f.inject(p.ServiceIdentifiers.IStringArrayStorage)),u(2,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TCustomCodeHelperFactory&&m.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==h.IStringArrayStorage&&h.IStringArrayStorage)?i:Object,"function"==typeof(a=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?a:Object,"function"==typeof(s=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==_.IOptions&&_.IOptions)?c:Object])],I),t.StringArrayCodeHelperGroup=I},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),h=r(20),N=r(127),y=r(38),b=r(8),O=r(18),E=r(6);let I=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.callsControllerFunctionName=e,this.consoleOutputDisableFunctionName=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==h.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():y.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(N.ConsoleOutputDisableExpressionTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,consoleLogDisableFunctionName:this.consoleOutputDisableFunctionName,globalVariableTemplate:e})}};c([b.initializable(),l("design:type",String)],I.prototype,"callsControllerFunctionName",void 0),c([b.initializable(),l("design:type",String)],I.prototype,"consoleOutputDisableFunctionName",void 0),I=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],I),t.ConsoleOutputDisableCodeHelper=I},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableExpressionTemplate=void 0,t.ConsoleOutputDisableExpressionTemplate=function(){return"\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n const func = function () {};\n \n {globalVariableTemplate}\n \n if (!that.console) {\n that.console = (function (func){\n const c = {};\n \n c.log = func;\n c.warn = func;\n c.debug = func;\n c.info = func;\n c.error = func;\n c.exception = func;\n c.table = func;\n c.trace = func;\n \n return c;\n })(func);\n } else {\n that.console.log = func;\n that.console.warn = func;\n that.console.debug = func;\n that.console.info = func;\n that.console.error = func;\n that.console.exception = func;\n that.console.table = func;\n that.console.trace = func;\n }\n });\n \n {consoleLogDisableFunctionName}();\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate1=void 0,t.GlobalVariableTemplate1=function(){return"\n let that;\n \n try {\n const getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate2=void 0,t.GlobalVariableTemplate2=function(){return"\n const getGlobal = function () {\n let globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n const that = getGlobal();\n "}},function(e,t,r){"use strict";var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},d=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperFormatter=void 0;const u=r(0),f=r(1),p=s(r(12)),m=d(r(131)),g=r(70),_=r(4);let S=class{constructor(e){this.prevailingKindOfVariables=e.getPrevailingKind()}formatTemplate(e,t){return m.default(e,t)}formatStructure(e){for(const t of e)p.replace(t,{enter:e=>{if(_.NodeGuards.isVariableDeclarationNode(e))return"var"===this.prevailingKindOfVariables&&(e.kind="var"),e}});return e}};S=a([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),c("design:paramtypes",["function"==typeof(o=void 0!==g.IPrevailingKindOfVariablesAnalyzer&&g.IPrevailingKindOfVariablesAnalyzer)?o:Object])],S),t.CustomCodeHelperFormatter=S},function(e,t){e.exports=require("string-template")},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperObfuscator=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(133),p=r(56);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}obfuscateTemplate(e,t={}){return p.JavaScriptObfuscator.obfuscate(e,Object.assign(Object.assign(Object.assign({},f.NO_ADDITIONAL_NODES_PRESET),{identifierNamesGenerator:this.options.identifierNamesGenerator,identifiersDictionary:this.options.identifiersDictionary,seed:this.randomGenerator.getRawSeed()}),t)).getObfuscatedCode()}};m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],m),t.CustomCodeHelperObfuscator=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NO_ADDITIONAL_NODES_PRESET=void 0;const o=r(34),n=r(20),i=r(32);t.NO_ADDITIONAL_NODES_PRESET=Object.freeze({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],inputFileName:"",log:!1,minify:!1,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!1,seed:0,selfDefending:!1,shuffleStringArray:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:0,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),h=r(8),N=r(135),y=r(18),b=r(6);let O=class extends y.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.debugProtectionFunctionName=e,this.callsControllerFunctionName=t}getNodeStructure(e){return b.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(N.DebugProtectionFunctionCallTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName,callControllerFunctionName:this.callsControllerFunctionName})}};c([h.initializable(),l("design:type",String)],O.prototype,"callsControllerFunctionName",void 0),c([h.initializable(),l("design:type",String)],O.prototype,"debugProtectionFunctionName",void 0),O=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],O),t.DebugProtectionFunctionCallCodeHelper=O},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallTemplate=void 0,t.DebugProtectionFunctionCallTemplate=function(){return"\n (function () {\n {callControllerFunctionName}(\n this,\n function () {\n const regExp1 = new RegExp('function *\\\\( *\\\\)');\n const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i');\n \n const result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n }\n )();\n })();\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),h=r(8),N=r(137),y=r(18),b=r(6);let O=class extends y.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return b.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(N.DebugProtectionFunctionIntervalTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([h.initializable(),l("design:type",String)],O.prototype,"debugProtectionFunctionName",void 0),O=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],O),t.DebugProtectionFunctionIntervalCodeHelper=O},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=void 0,t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),h=r(20),N=r(8),y=r(139),b=r(140),O=r(141),E=r(18),I=r(6);let C=class extends E.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==h.ObfuscationTarget.BrowserNoEval?y.DebuggerTemplate():b.DebuggerTemplateNoEval();return this.customCodeHelperFormatter.formatTemplate(O.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([N.initializable(),l("design:type",String)],C.prototype,"debugProtectionFunctionName",void 0),C=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],C),t.DebugProtectionFunctionCodeHelper=C},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplate=void 0,t.DebuggerTemplate=function(){return"\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplateNoEval=void 0,t.DebuggerTemplateNoEval=function(){return"\n if (typeof counter === 'string') {\n const func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionTemplate=void 0,t.DebugProtectionFunctionTemplate=function(){return"\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(51),h=r(2),N=r(3),y=r(20),b=r(8),O=r(143),E=r(38),I=r(18),C=r(6);let v=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.cryptUtils=i}initialize(e,t){this.callsControllerFunctionName=e,this.domainLockFunctionName=t}getNodeStructure(e){return C.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.domainLock.join(";"),[t,r]=this.cryptUtils.hideString(e,3*e.length),o=this.options.target!==y.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():E.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(O.DomainLockTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,domainLockFunctionName:this.domainLockFunctionName,diff:r,domains:t,globalVariableTemplate:o})}};l([b.initializable(),d("design:type",String)],v.prototype,"callsControllerFunctionName",void 0),l([b.initializable(),d("design:type",String)],v.prototype,"domainLockFunctionName",void 0),v=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),u(5,f.inject(p.ServiceIdentifiers.ICryptUtils)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object,"function"==typeof(c=void 0!==S.ICryptUtils&&S.ICryptUtils)?c:Object])],v),t.DomainLockCodeHelper=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockTemplate=void 0,t.DomainLockTemplate=function(){return'\n const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n const func = function () {\n return {\n key: \'item\',\n value: \'attribute\',\n getAttribute: function () {\n for (let i = 0; i < 1000; i--) {\n const isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + \'_\' + this.value + \'_\' + i;\n default:\n this.item + \'_\' + this.value;\n }\n }\n }()\n };\n };\n \n const regExp = new RegExp("[{diff}]", "g");\n const domains = "{domains}".replace(regExp, "").split(";");\n let document;\n let domain;\n let location;\n let hostname;\n\n for (let d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (let d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!("~" > domain)) {\n for (let d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (let d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n const documentDomain = that[document][domain];\n const documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n const currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n let ok = false;\n \n for (let i = 0; i < domains.length; i++) {\n const domain = domains[i];\n const position = currentDomain.length - domain.length;\n const lastIndex = currentDomain.indexOf(domain, position);\n const endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n '}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsControllerFunctionCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(14),_=r(10),S=r(2),h=r(3),N=r(25),y=r(8),b=r(145),O=r(18),E=r(6);let I=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.appendEvent=e,this.callsControllerFunctionName=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.appendEvent===N.ObfuscationEvent.AfterObfuscation?this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(b.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})):this.customCodeHelperFormatter.formatTemplate(b.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})}};l([y.initializable(),d("design:type",String)],I.prototype,"callsControllerFunctionName",void 0),l([y.initializable(),d("design:type","function"==typeof(o=void 0!==N.ObfuscationEvent&&N.ObfuscationEvent)?o:Object)],I.prototype,"appendEvent",void 0),I=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==_.ICustomCodeHelperFormatter&&_.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==S.IOptions&&S.IOptions)?c:Object])],I),t.CallsControllerFunctionCodeHelper=I},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleCallControllerTemplate=void 0,t.SingleCallControllerTemplate=function(){return"\n const {callControllerFunctionName} = (function(){\n let firstCall = true;\n \n return function (context, fn){\n const rfn = firstCall ? function(){\n if(fn){\n const res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingUnicodeCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),h=r(20),N=r(8),y=r(147),b=r(148),O=r(18),E=r(6),I=r(38);let C=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.callsControllerFunctionName=e,this.selfDefendingFunctionName=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==h.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():I.GlobalVariableNoEvalTemplate(),t=this.options.target!==h.ObfuscationTarget.BrowserNoEval?y.SelfDefendingTemplate():b.SelfDefendingNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(t,{callControllerFunctionName:this.callsControllerFunctionName,selfDefendingFunctionName:this.selfDefendingFunctionName,globalVariableTemplate:e})}};c([N.initializable(),l("design:type",String)],C.prototype,"callsControllerFunctionName",void 0),c([N.initializable(),l("design:type",String)],C.prototype,"selfDefendingFunctionName",void 0),C=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],C),t.SelfDefendingUnicodeCodeHelper=C},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n const test = function () {\n const regExp = test\n .constructor('return /\" + this + \"/')()\n .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingNoEvalTemplate=void 0,t.SelfDefendingNoEvalTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n \n const test = function () {\n const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(39),h=r(2),N=r(3),y=r(20),b=r(28),O=r(8),E=r(150),I=r(38),C=r(151),v=r(152),T=r(153),R=r(154),M=r(155),A=r(18),F=r(6);let j=class extends A.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t){this.stringArrayName=e,this.stringArrayCallsWrapperName=t}getNodeStructure(e){return F.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.getDecodeStringArrayTemplate(),t=[`^${this.stringArrayName}$`];return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(R.StringArrayCallsWrapperTemplate(),{decodeCodeHelperTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}),{reservedNames:t})}getDecodeStringArrayTemplate(){const e=this.options.target!==y.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():I.GlobalVariableNoEvalTemplate(),t=this.customCodeHelperFormatter.formatTemplate(E.AtobTemplate(),{globalVariableTemplate:e});let r="",o="";switch(this.options.selfDefending&&(o=this.customCodeHelperFormatter.formatTemplate(v.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName})),this.options.stringArrayEncoding){case b.StringArrayEncoding.Rc4:r=this.customCodeHelperFormatter.formatTemplate(M.StringArrayRC4DecodeTemplate(this.randomGenerator),{atobPolyfill:t,selfDefendingCode:o,rc4Polyfill:C.Rc4Template(),stringArrayCallsWrapperName:this.stringArrayCallsWrapperName});break;case b.StringArrayEncoding.Base64:r=this.customCodeHelperFormatter.formatTemplate(T.StringArrayBase64DecodeTemplate(this.randomGenerator),{atobPolyfill:t,selfDefendingCode:o,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}return r}};l([O.initializable(),d("design:type",String)],j.prototype,"stringArrayName",void 0),l([O.initializable(),d("design:type",String)],j.prototype,"stringArrayCallsWrapperName",void 0),j=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),u(5,f.inject(p.ServiceIdentifiers.IEscapeSequenceEncoder)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object,"function"==typeof(c=void 0!==S.IEscapeSequenceEncoder&&S.IEscapeSequenceEncoder)?c:Object])],j),t.StringArrayCallsWrapperCodeHelper=j},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=void 0;const o=r(40),n=r(33),i=r(52);t.AtobTemplate=function(){return`\n (function () {\n {globalVariableTemplate}\n \n const chars = '${o.alphabetStringUppercase}${n.alphabetString}${i.numbersString}+/=';\n\n that.atob || (\n that.atob = function(input) {\n const str = String(input).replace(/=+$/, '');\n let output = '';\n for (\n let bc = 0, bs, buffer, idx = 0;\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n );\n })();\n `}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Rc4Template=void 0,t.Rc4Template=function(){return"\n const rc4 = function (str, key) {\n let s = [], j = 0, x, res = '', newStr = '';\n \n str = atob(str);\n \n for (let k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n let i;\n \t \n\t for (i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (let y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e,t){const r=e.getRandomString(6),o=e.getRandomString(6),n=e.getRandomString(6),i=e.getRandomString(6),a=e.getRandomString(6),s=e.getRandomString(6),c=e.getRandomString(6),l=e.getRandomString(6),d=e.getRandomString(6);return`\n const StatesClass = function (${r}) {\n this.${r} = ${r};\n this.${o} = [1, 0, 0];\n this.${n} = function(){return 'newState';};\n this.${i} = '${t.encode("\\w+ *\\(\\) *{\\w+ *",!0)}';\n this.${a} = '${t.encode("['|\"].+['|\"];? *}",!0)}';\n };\n \n StatesClass.prototype.${s} = function () {\n const regExp = new RegExp(this.${i} + this.${a});\n const expression = regExp.test(this.${n}.toString())\n ? --this.${o}[1]\n : --this.${o}[0];\n \n return this.${c}(expression);\n };\n \n StatesClass.prototype.${c} = function (${d}) {\n if (!Boolean(~${d})) {\n return ${d};\n }\n \n return this.${l}(this.${r});\n };\n\n StatesClass.prototype.${l} = function (${r}) {\n for (let i = 0, len = this.${o}.length; i < len; i++) {\n this.${o}.push(Math.round(Math.random()));\n len = this.${o}.length;\n }\n \n return ${r}(this.${o}[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).${s}();\n `}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayBase64DecodeTemplate=void 0,t.StringArrayBase64DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),o=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.${r} = function (str) {\n const string = atob(str);\n let newStringChars = [];\n \n for (let i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.${o} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${o}[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.${r}(value);\n {stringArrayCallsWrapperName}.${o}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=void 0,t.StringArrayCallsWrapperTemplate=function(){return"\n const {stringArrayCallsWrapperName} = function (index, key) {\n index = index - 0;\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRC4DecodeTemplate=void 0,t.StringArrayRC4DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),o=e.getRandomString(6),n=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.${r} = rc4;\n \n {stringArrayCallsWrapperName}.${o} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${o}[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.${n} === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.${n} = true;\n }\n \n value = {stringArrayCallsWrapperName}.${r}(value, key);\n {stringArrayCallsWrapperName}.${o}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(2),h=r(3),N=r(37),y=r(8),b=r(157),O=r(18),E=r(6);let I=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.stringArrayStorage=e,this.stringArrayName=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(b.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArray:this.stringArrayStorage.toString()})}};l([y.initializable(),d("design:type","function"==typeof(o=void 0!==N.IStringArrayStorage&&N.IStringArrayStorage)?o:Object)],I.prototype,"stringArrayStorage",void 0),l([y.initializable(),d("design:type",String)],I.prototype,"stringArrayName",void 0),I=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==S.IOptions&&S.IOptions)?c:Object])],I),t.StringArrayCodeHelper=I},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=void 0,t.StringArrayTemplate=function(){return"\n const {stringArrayName} = [{stringArray}];\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(39),h=r(2),N=r(3),y=r(8),b=r(159),O=r(160),E=r(18),I=r(6),C=r(41);let v=class extends E.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t){this.stringArrayName=e,this.stringArrayRotationAmount=t}getNodeStructure(e){return I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.identifierNamesGenerator.generateNext(),t=this.identifierNamesGenerator.generateNext(),r=[`^${this.stringArrayName}$`];let o="";return o=this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(b.SelfDefendingTemplate(this.escapeSequenceEncoder),{timesName:e,whileFunctionName:t}):`${t}(++${e})`,this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(O.StringArrayRotateFunctionTemplate(),{code:o,timesName:e,whileFunctionName:t,stringArrayName:this.stringArrayName,stringArrayRotationAmount:C.NumberUtils.toHex(this.stringArrayRotationAmount)}),{reservedNames:r})}};l([y.initializable(),d("design:type",String)],v.prototype,"stringArrayName",void 0),l([y.initializable(),d("design:type",Number)],v.prototype,"stringArrayRotationAmount",void 0),v=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),u(5,f.inject(p.ServiceIdentifiers.IEscapeSequenceEncoder)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object,"function"==typeof(c=void 0!==S.IEscapeSequenceEncoder&&S.IEscapeSequenceEncoder)?c:Object])],v),t.StringArrayRotateFunctionCodeHelper=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e){return`\n const selfDefendingFunc = function () {\n const object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n let updatedCookie = name + "=" + value;\n let i = 0;\n \n for (let i = 0, len = options.length; i < len; i++) {\n const propName = options[i];\n \n updatedCookie += "; " + propName;\n \n const propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += "=" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n const matches = document(new RegExp(\n "(?:^|; )" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + "=([^;]*)"\n ));\n \n const func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n const test1 = function () {\n const regExp = new RegExp('${e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0)}');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n let cookie = '';\n const result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n `}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionTemplate=void 0,t.StringArrayRotateFunctionTemplate=function(){return"\n (function (array, {timesName}) {\n const {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, {stringArrayRotationAmount});\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customNodesModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(22),s=r(66),c=r(68),l=r(162),d=r(163),u=r(164),f=r(165),p=r(166),m=r(167),g=r(168),_=r(170),S=r(171),h=r(172),N=r(173);t.customNodesModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(d.BinaryExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(u.BlockStatementControlFlowFlatteningNode).whenTargetNamed(a.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(p.CallExpressionControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(m.CallExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(g.ControlFlowStorageNode).whenTargetNamed(a.ControlFlowCustomNode.ControlFlowStorageNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(_.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(S.LogicalExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.StringLiteralNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.StringLiteralControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(f.BlockStatementDeadCodeInjectionNode).whenTargetNamed(s.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(l.ObjectExpressionVariableDeclarationHostNode).whenTargetNamed(c.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode),e(i.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions,i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),e(i.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions,i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer))})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionVariableDeclarationHostNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(15),S=r(7),h=r(4);let N=class extends _.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.lexicalScopeNode=e,this.properties=t}getNodeStructure(){const e=h.NodeGuards.isProgramNode(this.lexicalScopeNode)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);return[S.NodeFactory.variableDeclarationNode([S.NodeFactory.variableDeclaratorNode(S.NodeFactory.identifierNode(e),S.NodeFactory.objectExpressionNode(this.properties))],"const")]}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.ObjectExpressionVariableDeclarationHostNode=N},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionFunctionNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(15),S=r(7),h=r(6);let N=class extends _.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=S.NodeFactory.expressionStatementNode(S.NodeFactory.functionExpressionNode([S.NodeFactory.identifierNode("x"),S.NodeFactory.identifierNode("y")],S.NodeFactory.blockStatementNode([S.NodeFactory.returnStatementNode(S.NodeFactory.binaryExpressionNode(this.operator,S.NodeFactory.identifierNode("x"),S.NodeFactory.identifierNode("y")))])));return h.NodeUtils.parentizeAst(e),[e]}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.BinaryExpressionFunctionNode=N},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowFlatteningNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),h=r(7),N=r(4),y=r(6);let b=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r){this.blockStatementBody=e,this.shuffledKeys=t,this.originalKeysIndexesInShuffledArray=r}getNodeStructure(){const e=this.randomGenerator.getRandomString(6),t=this.randomGenerator.getRandomString(6),r=h.NodeFactory.blockStatementNode([h.NodeFactory.variableDeclarationNode([h.NodeFactory.variableDeclaratorNode(h.NodeFactory.identifierNode(e),h.NodeFactory.callExpressionNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join("|")),h.NodeFactory.identifierNode("split")),[h.NodeFactory.literalNode("|")]))],"const"),h.NodeFactory.variableDeclarationNode([h.NodeFactory.variableDeclaratorNode(h.NodeFactory.identifierNode(t),h.NodeFactory.literalNode(0))],"let"),h.NodeFactory.whileStatementNode(h.NodeFactory.literalNode(!0),h.NodeFactory.blockStatementNode([h.NodeFactory.switchStatementNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.identifierNode(e),h.NodeFactory.updateExpressionNode("++",h.NodeFactory.identifierNode(t)),!0),this.shuffledKeys.map((e,t)=>{const r=this.blockStatementBody[e],o=[r];return N.NodeGuards.isReturnStatementNode(r)||o.push(h.NodeFactory.continueStatement()),h.NodeFactory.switchCaseNode(h.NodeFactory.literalNode(String(t)),o)})),h.NodeFactory.breakStatement()]))]);return y.NodeUtils.parentizeAst(r),[r]}};s([_.initializable(),c("design:type",Array)],b.prototype,"blockStatementBody",void 0),s([_.initializable(),c("design:type",Array)],b.prototype,"originalKeysIndexesInShuffledArray",void 0),s([_.initializable(),c("design:type",Array)],b.prototype,"shuffledKeys",void 0),b=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],b),t.BlockStatementControlFlowFlatteningNode=b},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementDeadCodeInjectionNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(15),S=r(7),h=r(6);let N=class extends _.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.blockStatementNode=e,this.deadCodeInjectionRootAstHostNode=t}getNode(){return this.getNodeStructure()}getNodeStructure(){const e=this.randomGenerator.getMathRandom()>.5,t=this.randomGenerator.getMathRandom()>.5,r=e?"===":"!==",o=this.randomGenerator.getRandomString(5),n=t?o:this.randomGenerator.getRandomString(5),[i,a]=e===t?[this.blockStatementNode,this.deadCodeInjectionRootAstHostNode]:[this.deadCodeInjectionRootAstHostNode,this.blockStatementNode],s=S.NodeFactory.blockStatementNode([S.NodeFactory.ifStatementNode(S.NodeFactory.binaryExpressionNode(r,S.NodeFactory.literalNode(o),S.NodeFactory.literalNode(n)),i,a)]);return h.NodeUtils.parentizeAst(s),[s]}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.BlockStatementDeadCodeInjectionNode=N},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowStorageCallNode=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(2),_=r(3),S=r(8),h=r(15),N=r(7),y=r(6);let b=class extends h.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r,o){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.callee=r,this.expressionArguments=o}getNodeStructure(){const e=N.NodeFactory.expressionStatementNode(N.NodeFactory.callExpressionNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.identifierNode(this.controlFlowStorageName),N.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.callee,...this.expressionArguments]));return y.NodeUtils.parentizeAst(e),[e]}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof ESTree&&ESTree.Expression)?o:Object)],b.prototype,"callee",void 0),c([S.initializable(),l("design:type",String)],b.prototype,"controlFlowStorageKey",void 0),c([S.initializable(),l("design:type",String)],b.prototype,"controlFlowStorageName",void 0),c([S.initializable(),l("design:type",Array)],b.prototype,"expressionArguments",void 0),b=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],b),t.CallExpressionControlFlowStorageCallNode=b},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionFunctionNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),h=r(7),N=r(6);let y=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.expressionArguments=e}getNodeStructure(){const e=h.NodeFactory.identifierNode("callee"),t=[],r=this.expressionArguments.length;for(let e=0;e=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorageNode=void 0;const u=r(0),f=r(1),p=r(169),m=r(5),g=r(10),_=r(2),S=r(3),h=r(8),N=r(15),y=r(7),b=r(4),O=r(6);let E=class extends N.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.controlFlowStorage=e}getNodeStructure(){const e=Array.from(this.controlFlowStorage.getStorage()).map(([e,t])=>{const r=t.getNode()[0];if(!b.NodeGuards.isExpressionStatementNode(r))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");return y.NodeFactory.propertyNode(y.NodeFactory.identifierNode(e),r.expression)});let t=y.NodeFactory.variableDeclarationNode([y.NodeFactory.variableDeclaratorNode(y.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),y.NodeFactory.objectExpressionNode(e))],"const");return t=O.NodeUtils.parentizeAst(t),[t]}};c([h.initializable(),l("design:type","function"==typeof(o=void 0!==p.TControlFlowStorage&&p.TControlFlowStorage)?o:Object)],E.prototype,"controlFlowStorage",void 0),E=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],E),t.ControlFlowStorageNode=E},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowStorageCallNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),h=r(7),N=r(6);let y=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r,o){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.leftValue=r,this.rightValue=o}getNodeStructure(){const e=h.NodeFactory.expressionStatementNode(h.NodeFactory.callExpressionNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.identifierNode(this.controlFlowStorageName),h.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.leftValue,this.rightValue]));return N.NodeUtils.parentizeAst(e),[e]}};s([_.initializable(),c("design:type",String)],y.prototype,"controlFlowStorageKey",void 0),s([_.initializable(),c("design:type",String)],y.prototype,"controlFlowStorageName",void 0),y=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],y),t.ExpressionWithOperatorControlFlowStorageCallNode=y},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionFunctionNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(15),S=r(7),h=r(6);let N=class extends _.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=S.NodeFactory.expressionStatementNode(S.NodeFactory.functionExpressionNode([S.NodeFactory.identifierNode("x"),S.NodeFactory.identifierNode("y")],S.NodeFactory.blockStatementNode([S.NodeFactory.returnStatementNode(S.NodeFactory.logicalExpressionNode(this.operator,S.NodeFactory.identifierNode("x"),S.NodeFactory.identifierNode("y")))])));return h.NodeUtils.parentizeAst(e),[e]}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.LogicalExpressionFunctionNode=N},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowStorageCallNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),h=r(7),N=r(6);let y=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.controlFlowStorageName=e,this.controlFlowStorageKey=t}getNodeStructure(){const e=h.NodeFactory.expressionStatementNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.identifierNode(this.controlFlowStorageName),h.NodeFactory.identifierNode(this.controlFlowStorageKey)));return N.NodeUtils.parentizeAst(e),[e]}};s([_.initializable(),c("design:type",String)],y.prototype,"controlFlowStorageKey",void 0),s([_.initializable(),c("design:type",String)],y.prototype,"controlFlowStorageName",void 0),y=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],y),t.StringLiteralControlFlowStorageCallNode=y},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),h=r(7);let N=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.literalValue=e}getNodeStructure(){return[h.NodeFactory.expressionStatementNode(h.NodeFactory.literalNode(this.literalValue))]}};s([_.initializable(),c("design:type",String)],N.prototype,"literalValue",void 0),N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.StringLiteralNode=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.finalizingTransformersModule=void 0;const o=r(0);t.finalizingTransformersModule=new o.ContainerModule(e=>{})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generatorsModule=void 0;const o=r(0),n=r(1),i=r(34),a=r(176),s=r(177),c=r(178);t.generatorsModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(a.DictionaryIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(s.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(c.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator),e(n.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function(){let e=null;return t=>r=>{if(e)return e;let o;switch(r.identifierNamesGenerator){case i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return e=o,o}}())})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DictionaryIdentifierNamesGenerator=void 0;const d=r(0),u=r(1),f=r(36),p=r(2),m=r(3),g=r(53),_=r(24);let S=o=class extends g.AbstractIdentifierNamesGenerator{constructor(e,t,r){super(e,t),this.arrayUtils=r,this.identifierNamesSet=new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary)),this.identifiersIterator=this.identifierNamesSet.values()}static incrementIdentifierName(e){let t="",r=!1;for(const o of e)r||o!==o.toUpperCase()?r||o!==o.toLowerCase()?t+=o:(t+=o.toUpperCase(),r=!0):t+=o.toLowerCase();return r?t:null}generateNext(){const e=this.generateNewDictionaryName();return this.preserveName(e),e}generateForGlobalScope(){const e=`${this.options.identifiersPrefix?`${this.options.identifiersPrefix}`:""}${this.generateNewDictionaryName()}`;return this.isValidIdentifierName(e)?(this.preserveName(e),e):this.generateForGlobalScope()}generateForLexicalScope(e){const t=[e,..._.NodeLexicalScopeUtils.getLexicalScopes(e)],r=this.generateNewDictionaryName();return this.isValidIdentifierNameInLexicalScopes(r,t)?(this.preserveNameForLexicalScope(r,e),r):this.generateForLexicalScope(e)}generateNewDictionaryName(){if(!this.identifierNamesSet.size)throw new Error("Too many identifiers in the code, add more words to identifiers dictionary");const e=this.identifiersIterator.next();if(!e.done){const t=e.value;return this.isValidIdentifierName(t)?e.value:this.generateNewDictionaryName()}return this.identifierNamesSet=new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet])),this.identifiersIterator=this.identifierNamesSet.values(),this.generateNewDictionaryName()}getInitialIdentifierNames(e){const t=e.filter(Boolean).map(e=>e.toLowerCase());return this.arrayUtils.shuffle(t)}getIncrementedIdentifierNames(e){const t=[];for(const r of e){const e=o.incrementIdentifierName(r);e&&t.push(e)}return this.arrayUtils.shuffle(t)}};S=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(1,d.inject(u.ServiceIdentifiers.IOptions)),l(2,d.inject(u.ServiceIdentifiers.IArrayUtils)),c("design:paramtypes",["function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object,"function"==typeof(a=void 0!==f.IArrayUtils&&f.IArrayUtils)?a:Object])],S),t.DictionaryIdentifierNamesGenerator=S},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HexadecimalIdentifierNamesGenerator=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(53),m=r(41),g=r(26);let _=o=class extends p.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t)}generateNext(e){const t=this.randomGenerator.getRandomInteger(1e4,99999999),r=m.NumberUtils.toHex(t),n=g.Utils.hexadecimalPrefix.length,i=(null!=e?e:o.baseIdentifierNameLength)+n,a=`_${r.substr(0,i)}`;return this.isValidIdentifierName(a)?(this.preserveName(a),a):this.generateNext(e)}generateForGlobalScope(e){const t=this.generateNext(e);return`${this.options.identifiersPrefix}${t}`.replace("__","_")}generateForLexicalScope(e,t){return this.generateNext(t)}};_.baseIdentifierNameLength=6,_=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],_),t.HexadecimalIdentifierNamesGenerator=_},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledIdentifierNamesGenerator=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(52),m=r(33),g=r(40),_=r(53),S=r(24);let h=o=class extends _.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t),this.previousMangledName=o.initMangledNameCharacter}generateNext(e){const t=this.generateNewMangledName(this.previousMangledName);return this.previousMangledName=t,this.preserveName(t),t}generateForGlobalScope(e){const t=this.options.identifiersPrefix?`${this.options.identifiersPrefix}`:"",r=this.generateNewMangledName(this.previousMangledName),o=`${t}${r}`;return this.previousMangledName=r,this.isValidIdentifierName(o)?(this.preserveName(o),o):this.generateForGlobalScope(e)}generateForLexicalScope(e,t){const r=[e,...S.NodeLexicalScopeUtils.getLexicalScopes(e)];let n=this.getLastMangledNameForScopes(r);do{n=this.generateNewMangledName(n)}while(!this.isValidIdentifierNameInLexicalScopes(n,r));return o.lastMangledNameInScopeMap.set(e,n),this.preserveNameForLexicalScope(n,e),n}isValidIdentifierName(e){return super.isValidIdentifierName(e)&&!o.reservedNamesSet.has(e)}generateNewMangledName(e){let t=(e=>{const t=o.nameSequence,r=t.length,n=e.length,i=e=>"0".repeat(e);let a=n-1;do{const o=e[a],s=t.indexOf(o);if(s!==r-1){return e.substring(0,a)+t[s+1]+i(n-(a+1))}--a}while(a>=0);return`a${i(n)}`})(e);return this.isValidIdentifierName(t)||(t=this.generateNewMangledName(t)),t}getLastMangledNameForScopes(e){var t;for(const r of e){const e=null!==(t=o.lastMangledNameInScopeMap.get(r))&&void 0!==t?t:null;if(e)return e}return o.initMangledNameCharacter}};h.initMangledNameCharacter="9",h.lastMangledNameInScopeMap=new WeakMap,h.nameSequence=`${p.numbersString}${m.alphabetString}${g.alphabetStringUppercase}`.split(""),h.reservedNamesSet=new Set(["byte","case","char","do","else","enum","eval","for","goto","if","in","int","let","long","new","null","this","true","try","var","void","with"]),h=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],h),t.MangledIdentifierNamesGenerator=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializingTransformersModule=void 0;const o=r(0),n=r(1),i=r(13),a=r(180);t.initializingTransformersModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.CommentsTransformer).whenTargetNamed(i.NodeTransformer.CommentsTransformer)})},function(e,t,r){"use strict";var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsTransformer=void 0;const f=r(0),p=r(1),m=l(r(12)),g=r(2),_=r(3),S=r(9),h=r(11),N=r(71),y=r(4);let b=o=class extends h.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Initializing:return{leave:e=>{if(y.NodeGuards.isProgramNode(e))return this.transformNode(e)}};case S.NodeTransformationStage.Finalizing:return{leave:e=>{if(y.NodeGuards.isProgramNode(e))return this.filterCommentsOnFinalizingTraverse(e)}};default:return null}}transformNode(e){if(!(e=this.filterCommentsOnPrimaryTraverse(e)).comments||!e.comments.length)return e;const t=e.comments.reverse();if(0===t.length)return e;if(!e.body.length)return e.leadingComments=t,e;let r=!0;return m.traverse(e,{enter:o=>{if(o===e)return;const n=t.findIndex(e=>e.range&&o.range&&e.range[0]=0&&((r?e:o).leadingComments=t.splice(n,t.length-n).reverse()),r=!1}}),t.length>0&&(e.trailingComments=t.reverse()),e}filterCommentsOnPrimaryTraverse(e){var t;return e.comments=null===(t=e.comments)||void 0===t?void 0:t.filter(e=>this.filterComment(e,!0)),e}filterCommentsOnFinalizingTraverse(e){return m.replace(e,{enter:e=>{var t,r;return e.leadingComments&&(e.leadingComments=null===(t=e.leadingComments)||void 0===t?void 0:t.filter(e=>this.filterComment(e,!1))),e.trailingComments&&(e.trailingComments=null===(r=e.trailingComments)||void 0===r?void 0:r.filter(e=>this.filterComment(e,!1))),e}}),e}filterComment(e,t){return!(!t||!N.ConditionalCommentObfuscatingGuard.isConditionalComment(e))||o.preservedWords.some(t=>e.value.includes(t))}};b.preservedWords=["@license","@preserve"],b=o=c([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(1,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object])],b),t.CommentsTransformer=b},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.minificationTransformersModule=void 0;const o=r(0),n=r(1),i=r(13),a=r(182),s=r(183);t.minificationTransformersModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.IfStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.IfStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.VariableDeclarationsMergeTransformer).whenTargetNamed(i.NodeTransformer.VariableDeclarationsMergeTransformer)})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IfStatementSimplifyTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(9),p=r(11),m=r(4),g=r(7);let _=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t),this.ifStatementBlockStatementsWithReturnStatementSet=new Set}getVisitor(e){switch(e){case f.NodeTransformationStage.Minification:return{leave:(e,t)=>{if(t&&m.NodeGuards.isIfStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.isValidIfStatementBlockStatementForConvert(e.consequent)){const t=this.toExpression(e.consequent.body);if(!t)return e;if(e.alternate){if(this.isValidIfStatementBlockStatementForConvert(e.alternate)){const r=this.toExpression(e.alternate.body);return r?this.ifStatementBlockStatementsWithReturnStatementSet.has(e.consequent)&&this.ifStatementBlockStatementsWithReturnStatementSet.has(e.alternate)?g.NodeFactory.returnStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t,r)):this.ifStatementBlockStatementsWithReturnStatementSet.has(e.consequent)?g.NodeFactory.ifStatementNode(e.test,g.NodeFactory.returnStatementNode(t),g.NodeFactory.expressionStatementNode(r)):this.ifStatementBlockStatementsWithReturnStatementSet.has(e.alternate)?g.NodeFactory.ifStatementNode(e.test,g.NodeFactory.expressionStatementNode(t),g.NodeFactory.returnStatementNode(r)):g.NodeFactory.expressionStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t,r)):e}return e}return this.ifStatementBlockStatementsWithReturnStatementSet.has(e.consequent)?g.NodeFactory.ifStatementNode(e.test,g.NodeFactory.returnStatementNode(t)):g.NodeFactory.expressionStatementNode(g.NodeFactory.logicalExpressionNode("&&",e.test,t))}return e}isValidIfStatementBlockStatementForConvert(e){if(!m.NodeGuards.isBlockStatementNode(e))return!1;let t=!0;for(const r of e.body){if(!m.NodeGuards.isExpressionStatementNode(r)&&!m.NodeGuards.isReturnStatementNode(r)){t=!1;break}m.NodeGuards.isReturnStatementNode(r)&&this.ifStatementBlockStatementsWithReturnStatementSet.add(e)}return t}toExpression(e){const t=e.map(e=>m.NodeGuards.isExpressionStatementNode(e)?e.expression:m.NodeGuards.isReturnStatementNode(e)?e.argument:e).filter(e=>!!e);return t.length?1===t.length?t[0]:g.NodeFactory.sequenceExpressionNode(t):null}};_=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],_),t.IfStatementSimplifyTransformer=_},function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariableDeclarationsMergeTransformer=void 0;const u=r(0),f=r(1),p=c(r(12)),m=r(2),g=r(3),_=r(9),S=r(11),h=r(4),N=r(17);let y=class extends S.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case _.NodeTransformationStage.Minification:return{enter:(e,t)=>{if(t&&h.NodeGuards.isVariableDeclarationNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!h.NodeGuards.isNodeWithStatements(t))return e;const r=N.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&h.NodeGuards.isVariableDeclarationNode(r)?e.kind!==r.kind?e:(r.declarations.push(...e.declarations),p.VisitorOption.Remove):e}};y=s([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(1,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==m.IOptions&&m.IOptions)?n:Object])],y),t.VariableDeclarationsMergeTransformer=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeModule=void 0;const o=r(0),n=r(1),i=r(185);t.nodeModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.IScopeIdentifiersTraverser).to(i.ScopeIdentifiersTraverser).inSingletonScope()})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTraverser=void 0;const c=r(0),l=r(1),d=r(186),u=r(4);let f=o=class{constructor(e){this.scopeAnalyzer=e}traverse(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeVariables(o,o,r)}traverseScopeVariables(e,t,r){const n=t.variableScope,i=u.NodeGuards.isNodeWithBlockLexicalScope(n.block)?n.block:null,a=o.globalScopeNames.includes(n.type);if(i){for(const s of t.variables){if(s.name===o.argumentsVariableName)continue;r({isGlobalDeclaration:a,isBubblingDeclaration:s.identifiers.some(e=>e.parentNode&&u.NodeGuards.isPropertyNode(e.parentNode)&&e.parentNode.shorthand),rootScope:e,variable:s,variableScope:n,variableLexicalScopeNode:i})}for(const o of t.childScopes)this.traverseScopeVariables(e,o,r)}}};f.argumentsVariableName="arguments",f.globalScopeNames=["global","module"],f=o=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IScopeAnalyzer)),a("design:paramtypes",["function"==typeof(n=void 0!==d.IScopeAnalyzer&&d.IScopeAnalyzer)?n:Object])],f),t.ScopeIdentifiersTraverser=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(188);t.nodeTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.Factory__INodeTransformer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeTransformer)),e(i.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder).to(a.NodeTransformerNamesGroupsBuilder).inSingletonScope()})},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformerNamesGroupsBuilder=void 0;const n=r(0),i=r(59);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.NodeTransformerNamesGroupsBuilder=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.obfuscatingTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(42),s=r(72),c=r(13),l=r(190),d=r(191),u=r(192),f=r(193),p=r(195),m=r(196),g=r(197);t.obfuscatingTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(u.LabeledStatementTransformer).whenTargetNamed(c.NodeTransformer.LabeledStatementTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.LiteralTransformer).whenTargetNamed(c.NodeTransformer.LiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ScopeIdentifiersTransformer).whenTargetNamed(c.NodeTransformer.ScopeIdentifiersTransformer),e(i.ServiceIdentifiers.IObfuscatingReplacer).to(d.BooleanLiteralObfuscatingReplacer).whenTargetNamed(s.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer),e(i.ServiceIdentifiers.IObfuscatingReplacer).to(p.NumberLiteralObfuscatingReplacer).whenTargetNamed(s.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer),e(i.ServiceIdentifiers.IObfuscatingReplacer).to(m.StringLiteralObfuscatingReplacer).whenTargetNamed(s.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer),e(i.ServiceIdentifiers.IIdentifierObfuscatingReplacer).to(l.BaseIdentifierObfuscatingReplacer).whenTargetNamed(a.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),e(i.ServiceIdentifiers.Factory__IObfuscatingReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IObfuscatingReplacer)),e(i.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IIdentifierObfuscatingReplacer))})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseIdentifierObfuscatingReplacer=void 0;const c=r(0),l=r(1),d=r(5),u=r(2),f=r(43),p=r(7);let m=class extends f.AbstractObfuscatingReplacer{constructor(e,t){super(t),this.blockScopesMap=new Map,this.identifierNamesGenerator=e(t)}replace(e,t){let r=e.name;if(this.blockScopesMap.has(t)){const e=this.blockScopesMap.get(t);e.has(r)&&(r=e.get(r))}return p.NodeFactory.identifierNode(r)}storeGlobalName(e,t){const r=e.name;if(this.isReservedName(r))return;const o=this.identifierNamesGenerator.generateForGlobalScope();this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,o)}storeLocalName(e,t){const r=e.name;if(this.isReservedName(r))return;const o=this.identifierNamesGenerator.generateForLexicalScope(t);this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,o)}preserveName(e){this.identifierNamesGenerator.preserveName(e.name)}preserveNameForLexicalScope(e,t){this.identifierNamesGenerator.preserveNameForLexicalScope(e.name,t)}isReservedName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}};m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.TIdentifierNamesGeneratorFactory&&d.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==u.IOptions&&u.IOptions)?n:Object])],m),t.BaseIdentifierObfuscatingReplacer=m},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanLiteralObfuscatingReplacer=void 0;const c=r(0),l=r(1),d=r(2),u=r(43),f=r(7);let p=o=class extends u.AbstractObfuscatingReplacer{constructor(e){super(e)}static getTrueUnaryExpressionNode(){return f.NodeFactory.unaryExpressionNode("!",o.getFalseUnaryExpressionNode())}static getFalseUnaryExpressionNode(){return f.NodeFactory.unaryExpressionNode("!",f.NodeFactory.arrayExpressionNode())}replace(e){const t=e.value;if("boolean"!=typeof t)throw new Error("`BooleanLiteralObfuscatingReplacer` should accept only literals with `boolean` value");return t?o.getTrueUnaryExpressionNode():o.getFalseUnaryExpressionNode()}};p=o=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],p),t.BooleanLiteralObfuscatingReplacer=p},function(e,t,r){"use strict";var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LabeledStatementTransformer=void 0;const f=r(0),p=r(1),m=l(r(12)),g=r(54),_=r(2),S=r(3),h=r(42),N=r(9),y=r(11),b=r(4),O=r(24);let E=class extends y.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.identifierObfuscatingReplacer=e(h.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer)}getVisitor(e){switch(e){case N.NodeTransformationStage.Obfuscating:return{enter:(e,t)=>{if(t&&b.NodeGuards.isLabeledStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=O.NodeLexicalScopeUtils.getLexicalScope(e);return r?(this.storeLabeledStatementName(e,r),this.replaceLabeledStatementName(e,r),e):e}storeLabeledStatementName(e,t){this.identifierObfuscatingReplacer.storeLocalName(e.label,t)}replaceLabeledStatementName(e,t){m.replace(e,{enter:(e,r)=>{if(r&&b.NodeGuards.isLabelIdentifierNode(e,r)){const r=this.identifierObfuscatingReplacer.replace(e,t);e.name=r.name}}})}};E=c([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),u(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(2,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierObfuscatingReplacerFactory&&g.TIdentifierObfuscatingReplacerFactory)?o:Object,"function"==typeof(n=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==_.IOptions&&_.IOptions)?i:Object])],E),t.LabeledStatementTransformer=E},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LiteralTransformer=void 0;const u=r(0),f=r(1),p=r(194),m=r(39),g=r(2),_=r(3),S=r(73),h=r(72),N=r(9),y=r(11),b=r(7),O=r(4),E=r(48),I=r(19),C=r(6);let v=class extends y.AbstractNodeTransformer{constructor(e,t,r,o,n){super(t,r),this.literalObfuscatingReplacerFactory=e,this.stringArrayStorageAnalyzer=o,this.escapeSequenceEncoder=n}getVisitor(e){switch(e){case N.NodeTransformationStage.Obfuscating:return{enter:(e,t)=>{if(O.NodeGuards.isProgramNode(e)&&this.analyzeNode(e),t&&O.NodeGuards.isLiteralNode(e)&&!I.NodeMetadata.isReplacedLiteral(e))return this.transformNode(e,t)}};case N.NodeTransformationStage.Finalizing:return{enter:(e,t)=>{if(t&&O.NodeGuards.isLiteralNode(e))return this.encodeLiteralNodeToEscapeSequence(e,t)}};default:return null}}analyzeNode(e){this.stringArrayStorageAnalyzer.analyze(e)}transformNode(e,t){if(E.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;let r;switch(typeof e.value){case"boolean":r=this.literalObfuscatingReplacerFactory(h.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(e);break;case"number":case"bigint":r=this.literalObfuscatingReplacerFactory(h.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(e);break;case"string":r=this.literalObfuscatingReplacerFactory(h.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(e);break;default:r=e}return C.NodeUtils.parentizeNode(r,t),r}encodeLiteralNodeToEscapeSequence(e,t){return"string"!=typeof e.value?e:b.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(e.value,this.options.unicodeEscapeSequence))}};v=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IObfuscatingReplacer)),d(1,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(2,u.inject(f.ServiceIdentifiers.IOptions)),d(3,u.inject(f.ServiceIdentifiers.IStringArrayStorageAnalyzer)),d(4,u.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TLiteralObfuscatingReplacerFactory&&p.TLiteralObfuscatingReplacerFactory)?o:Object,"function"==typeof(n=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object,"function"==typeof(a=void 0!==S.IStringArrayStorageAnalyzer&&S.IStringArrayStorageAnalyzer)?a:Object,"function"==typeof(s=void 0!==m.IEscapeSequenceEncoder&&m.IEscapeSequenceEncoder)?s:Object])],v),t.LiteralTransformer=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberLiteralObfuscatingReplacer=void 0;const s=r(0),c=r(1),l=r(2),d=r(43),u=r(7),f=r(41);let p=class extends d.AbstractObfuscatingReplacer{constructor(e){super(e),this.numberLiteralCache=new Map}replace(e){const t=e.value;if("number"!=typeof t&&"bigint"!=typeof t)throw new Error("`NumberLiteralObfuscatingReplacer` should accept only literals with `number` and `bigint` value");let r;return this.numberLiteralCache.has(t)?r=this.numberLiteralCache.get(t):(r=f.NumberUtils.isCeil(t)?f.NumberUtils.toHex(t):String(t),this.numberLiteralCache.set(t,r)),u.NodeFactory.literalNode(t,r)}};p=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IOptions&&l.IOptions)?o:Object])],p),t.NumberLiteralObfuscatingReplacer=p},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralObfuscatingReplacer=void 0;const d=r(0),u=r(1),f=r(2),p=r(37),m=r(73),g=r(28),_=r(43),S=r(19),h=r(7),N=r(41);let y=o=class extends _.AbstractObfuscatingReplacer{constructor(e,t,r){super(r),this.nodesCache=new Map,this.stringArrayStorage=e,this.stringArrayStorageAnalyzer=t}static getHexadecimalLiteralNode(e){const t=h.NodeFactory.literalNode(e);return S.NodeMetadata.set(t,{replacedLiteral:!0}),t}static getRc4KeyLiteralNode(e){const t=h.NodeFactory.literalNode(e);return S.NodeMetadata.set(t,{replacedLiteral:!0}),t}initialize(){this.options.shuffleStringArray&&this.stringArrayStorage.shuffleStorage(),this.options.rotateStringArray&&this.stringArrayStorage.rotateStorage()}replace(e){const t=e.value;if("string"!=typeof t)throw new Error("`StringLiteralObfuscatingReplacer` should accept only literals with `string` value");const r=this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(e),o=`${t}-${Boolean(r)}`;if(this.nodesCache.has(o)&&this.options.stringArrayEncoding!==g.StringArrayEncoding.Rc4)return this.nodesCache.get(o);const n=r?this.replaceWithStringArrayCallNode(r):this.replaceWithLiteralNode(t);return this.nodesCache.set(o,n),n}replaceWithLiteralNode(e){return h.NodeFactory.literalNode(e)}replaceWithStringArrayCallNode(e){const{index:t,decodeKey:r}=e,n=N.NumberUtils.toHex(t),i=[o.getHexadecimalLiteralNode(n)];r&&i.push(o.getRc4KeyLiteralNode(r));const a=h.NodeFactory.identifierNode(this.stringArrayStorage.getStorageCallsWrapperName());return h.NodeFactory.callExpressionNode(a,i)}};s([d.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],y.prototype,"initialize",null),y=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IStringArrayStorage)),l(1,d.inject(u.ServiceIdentifiers.IStringArrayStorageAnalyzer)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.IStringArrayStorage&&p.IStringArrayStorage)?n:Object,"function"==typeof(i=void 0!==m.IStringArrayStorageAnalyzer&&m.IStringArrayStorageAnalyzer)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],y),t.StringLiteralObfuscatingReplacer=y},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTransformer=void 0;const p=r(0),m=r(1),g=d(r(12)),_=r(54),S=r(2),h=r(3),N=r(74),y=r(42),b=r(9),O=r(11),E=r(4),I=r(19);let C=class extends O.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.lexicalScopesWithObjectPatternWithoutDeclarationMap=new Map,this.identifierObfuscatingReplacer=e(y.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case b.NodeTransformationStage.Obfuscating:return{enter:(e,t)=>{if(t&&E.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverse(e,t,e=>{const{isGlobalDeclaration:t,variable:r,variableLexicalScopeNode:o}=e;if(!this.options.renameGlobals&&t){if(!r.defs.every(e=>"ImportBinding"===e.type||"CatchClause"===e.type))return}this.transformScopeVariableIdentifiers(r,o,t)}),e}transformScopeVariableIdentifiers(e,t,r){var o;const n=null!==(o=e.identifiers[0])&&void 0!==o?o:null;n&&this.isReplaceableIdentifierNode(n,t,e)&&(this.storeIdentifierName(n,t,r),this.replaceIdentifierName(n,t,e))}storeIdentifierName(e,t,r){r?this.identifierObfuscatingReplacer.storeGlobalName(e,t):this.identifierObfuscatingReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierObfuscatingReplacer.replace(e,t);r.identifiers.forEach(e=>{e.name=o.name}),r.references.forEach(t=>{t.identifier.name=e.name})}isReplaceableIdentifierNode(e,t,r){const o=e.parentNode;return!(!o||I.NodeMetadata.isIgnoredNode(e)||this.isProhibitedPropertyNode(e,o)||this.isProhibitedClassDeclarationNameIdentifierNode(r,e,o)||this.isProhibitedExportNamedClassDeclarationIdentifierNode(e,o)||this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,o)||this.isProhibitedExportNamedVariableDeclarationIdentifierNode(e,o)||this.isProhibitedImportSpecifierNode(e,o)||this.isProhibitedVariableNameUsedInObjectPatternNode(r,e,t)||E.NodeGuards.isLabelIdentifierNode(e,o))}isProhibitedClassDeclarationNameIdentifierNode(e,t,r){return E.NodeGuards.isClassDeclarationNode(e.scope.block)&&E.NodeGuards.isClassDeclarationNode(r)&&r.id===t}isProhibitedExportNamedClassDeclarationIdentifierNode(e,t){return E.NodeGuards.isClassDeclarationNode(t)&&t.id===e&&!!t.parentNode&&E.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,t){return E.NodeGuards.isFunctionDeclarationNode(t)&&t.id===e&&!!t.parentNode&&E.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedVariableDeclarationIdentifierNode(e,t){return E.NodeGuards.isVariableDeclaratorNode(t)&&t.id===e&&!!t.parentNode&&E.NodeGuards.isVariableDeclarationNode(t.parentNode)&&!!t.parentNode.parentNode&&E.NodeGuards.isExportNamedDeclarationNode(t.parentNode.parentNode)}isProhibitedImportSpecifierNode(e,t){return E.NodeGuards.isImportSpecifierNode(t)&&t.imported.name===t.local.name}isProhibitedPropertyNode(e,t){const r=E.NodeGuards.isPropertyNode(t)&&!t.computed&&t.key===e,o=E.NodeGuards.isAssignmentPatternNode(t)&&t.left===e&&!!t.parentNode&&E.NodeGuards.isPropertyNode(t.parentNode)&&t.left===t.parentNode.key;return r||o}isProhibitedVariableNameUsedInObjectPatternNode(e,t,r){let o=this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(r);if(!1===o)return!1;if(!e.defs.some(e=>"var"===e.kind))return!1;let n=!1;return g.traverse(r,{enter:(e,r)=>{if(E.NodeGuards.isObjectPatternNode(e)&&r&&E.NodeGuards.isAssignmentExpressionNode(r)){o=!0;const r=e.properties;for(const e of r)if(E.NodeGuards.isPropertyNode(e)&&!e.computed&&e.shorthand&&E.NodeGuards.isIdentifierNode(e.key)&&t.name===e.key.name)return n=!0,g.VisitorOption.Break}}}),this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(r,null!=o&&o),n}};C=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),f(1,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(m.ServiceIdentifiers.IOptions)),f(3,p.inject(m.ServiceIdentifiers.IScopeIdentifiersTraverser)),u("design:paramtypes",["function"==typeof(o=void 0!==_.TIdentifierObfuscatingReplacerFactory&&_.TIdentifierObfuscatingReplacerFactory)?o:Object,"function"==typeof(n=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object,"function"==typeof(a=void 0!==N.IScopeIdentifiersTraverser&&N.IScopeIdentifiersTraverser)?a:Object])],C),t.ScopeIdentifiersTransformer=C},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.optionsModule=void 0;const o=r(0),n=r(1),i=r(199),a=r(206);t.optionsModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.IOptions).to(i.Options).inSingletonScope(),e(n.ServiceIdentifiers.IOptionsNormalizer).to(a.OptionsNormalizer).inSingletonScope()})},function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Options=void 0;const p=r(31),m=r(0),g=r(1),_=r(75),S=r(200),h=r(201),N=r(202),y=r(34),b=r(20),O=r(32),E=r(28),I=r(44),C=r(203),v=r(204);let T=o=class{constructor(e,t){Object.assign(this,I.DEFAULT_PRESET,e);const r=_.validateSync(this,o.validatorOptions);if(r.length)throw new ReferenceError(`Validation failed. errors:\n${C.ValidationErrorsFormatter.format(r)}`);Object.assign(this,t.normalize(this))}};T.validatorOptions={validationError:{target:!1}},d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"compact",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"controlFlowFlattening",void 0),d([_.IsNumber(),_.Min(0),_.Max(1),u("design:type",Number)],T.prototype,"controlFlowFlatteningThreshold",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"deadCodeInjection",void 0),d([_.IsNumber(),u("design:type",Number)],T.prototype,"deadCodeInjectionThreshold",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"debugProtection",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"debugProtectionInterval",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"disableConsoleOutput",void 0),d([_.IsArray(),_.ArrayUnique(),_.IsString({each:!0}),v.IsAllowedForObfuscationTargets([b.ObfuscationTarget.Browser,b.ObfuscationTarget.BrowserNoEval]),u("design:type",Array)],T.prototype,"domainLock",void 0),d([_.IsIn([y.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,y.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,y.IdentifierNamesGenerator.MangledIdentifierNamesGenerator]),u("design:type","function"==typeof(n=void 0!==p.TypeFromEnum&&p.TypeFromEnum)?n:Object)],T.prototype,"identifierNamesGenerator",void 0),d([_.IsString(),u("design:type",String)],T.prototype,"identifiersPrefix",void 0),d([_.IsArray(),_.ArrayUnique(),_.IsString({each:!0}),_.ValidateIf(e=>e.identifierNamesGenerator===y.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),_.ArrayNotEmpty(),u("design:type",Array)],T.prototype,"identifiersDictionary",void 0),d([_.IsString(),u("design:type",String)],T.prototype,"inputFileName",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"log",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"minify",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"renameGlobals",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"renameProperties",void 0),d([_.IsArray(),_.ArrayUnique(),_.IsString({each:!0}),u("design:type",Array)],T.prototype,"reservedNames",void 0),d([_.IsArray(),_.ArrayUnique(),_.IsString({each:!0}),u("design:type",Array)],T.prototype,"reservedStrings",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"rotateStringArray",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"selfDefending",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"shuffleStringArray",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"sourceMap",void 0),d([_.IsString(),_.ValidateIf(e=>Boolean(e.sourceMapBaseUrl)),_.IsUrl({require_protocol:!0,require_tld:!1,require_valid_protocol:!0}),u("design:type",String)],T.prototype,"sourceMapBaseUrl",void 0),d([_.IsString(),u("design:type",String)],T.prototype,"sourceMapFileName",void 0),d([_.IsIn([O.SourceMapMode.Inline,O.SourceMapMode.Separate]),u("design:type","function"==typeof(i=void 0!==p.TypeFromEnum&&p.TypeFromEnum)?i:Object)],T.prototype,"sourceMapMode",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"splitStrings",void 0),d([_.IsNumber(),_.ValidateIf(e=>Boolean(e.splitStrings)),_.Min(1),u("design:type",Number)],T.prototype,"splitStringsChunkLength",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"stringArray",void 0),d([_.IsIn([!0,!1,E.StringArrayEncoding.Base64,E.StringArrayEncoding.Rc4]),u("design:type","function"==typeof(a=void 0!==h.TStringArrayEncoding&&h.TStringArrayEncoding)?a:Object)],T.prototype,"stringArrayEncoding",void 0),d([_.IsNumber(),_.Min(0),_.Max(1),u("design:type",Number)],T.prototype,"stringArrayThreshold",void 0),d([_.IsIn([b.ObfuscationTarget.Browser,b.ObfuscationTarget.BrowserNoEval,b.ObfuscationTarget.Node]),u("design:type","function"==typeof(s=void 0!==p.TypeFromEnum&&p.TypeFromEnum)?s:Object)],T.prototype,"target",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"transformObjectKeys",void 0),d([_.IsBoolean(),u("design:type",Boolean)],T.prototype,"unicodeEscapeSequence",void 0),T=o=d([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.TInputOptions)),f(1,m.inject(g.ServiceIdentifiers.IOptionsNormalizer)),u("design:paramtypes",["function"==typeof(c=void 0!==S.TInputOptions&&S.TInputOptions)?c:Object,"function"==typeof(l=void 0!==N.IOptionsNormalizer&&N.IOptionsNormalizer)?l:Object])],T),t.Options=T},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationErrorsFormatter=void 0;class o{static format(e){return e.reduce((e,t)=>[...e,o.formatWithNestedConstraints(t)],[]).join("\n")}static formatWithNestedConstraints(e){const t=e.constraints;return t?`${`\`${e.property}\` errors:\n`}${Object.keys(t).map(e=>` - ${t[e]}\n`).join()}`:`\`${e.property}\` error\n`}}t.ValidationErrorsFormatter=o},function(e,t,r){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IsAllowedForObfuscationTargets=void 0;const n=r(75),i=o(r(205)),a=r(45),s=r(44);t.IsAllowedForObfuscationTargets=function(e,t){return(r,o)=>{n.registerDecorator({propertyName:o,constraints:[e],name:"IsAllowedForObfuscationTargets",options:t,target:r.constructor,validator:{validate(t,r){const n=r.object,a=s.DEFAULT_PRESET[o];return i.default(t,a)||e.includes(n.target)},defaultMessage:t=>`This option allowed only for obfuscation targets: ${e.join(`${a.StringSeparator.Comma} `)}`}})}}},function(e,t){e.exports=require("fast-deep-equal")},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsNormalizer=void 0;const i=r(0),a=r(207),s=r(208),c=r(209),l=r(210),d=r(211),u=r(212),f=r(213),p=r(214),m=r(215),g=r(216),_=r(217),S=r(218),h=r(219);let N=o=class{normalize(e){let t=Object.assign({},e);for(const e of o.normalizerRules)t=e(t);return t}};N.normalizerRules=[a.ControlFlowFlatteningThresholdRule,s.DeadCodeInjectionRule,c.DeadCodeInjectionThresholdRule,l.DomainLockRule,d.InputFileNameRule,u.SeedRule,f.SelfDefendingRule,p.SourceMapBaseUrlRule,m.SourceMapFileNameRule,g.SplitStringsChunkLengthRule,_.StringArrayRule,S.StringArrayEncodingRule,h.StringArrayThresholdRule],N=o=n([i.injectable()],N),t.OptionsNormalizer=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowFlatteningThresholdRule=void 0,t.ControlFlowFlatteningThresholdRule=e=>(0===e.controlFlowFlatteningThreshold&&(e=Object.assign(Object.assign({},e),{controlFlowFlattening:!1,controlFlowFlatteningThreshold:0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionRule=void 0;const o=r(44);t.DeadCodeInjectionRule=e=>(e.deadCodeInjection&&((e=Object.assign(Object.assign({},e),{deadCodeInjection:!0,stringArray:!0})).stringArrayThreshold||(e=Object.assign(Object.assign({},e),{stringArray:!0,stringArrayThreshold:o.DEFAULT_PRESET.stringArrayThreshold}))),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionThresholdRule=void 0,t.DeadCodeInjectionThresholdRule=e=>(0===e.deadCodeInjectionThreshold&&(e=Object.assign(Object.assign({},e),{deadCodeInjection:!1,deadCodeInjectionThreshold:0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockRule=void 0;const o=r(26);t.DomainLockRule=e=>{if(e.domainLock.length){const t=[];for(const r of e.domainLock)t.push(o.Utils.extractDomainFrom(r));e=Object.assign(Object.assign({},e),{domainLock:t})}return e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputFileNameRule=void 0;const o=r(45);t.InputFileNameRule=e=>{let{inputFileName:t}=e;return t&&(t=t.replace(/^\/+/,"").split(o.StringSeparator.Dot).slice(0,-1).join(o.StringSeparator.Dot)||t,e=Object.assign(Object.assign({},e),{inputFileName:`${t}.js`})),e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SeedRule=void 0,t.SeedRule=e=>{if(e.seed)return Object.assign(Object.assign({},e),{seed:e.seed});return Object.assign(Object.assign({},e),{seed:(t=0,r=999999999,Math.floor(Math.random()*(r-t+1)+t))});var t,r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingRule=void 0,t.SelfDefendingRule=e=>(e.selfDefending&&(e=Object.assign(Object.assign({},e),{compact:!0,selfDefending:!0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapBaseUrlRule=void 0,t.SourceMapBaseUrlRule=e=>{const{sourceMapBaseUrl:t}=e;return e.sourceMapFileName?(t&&!t.endsWith("/")&&(e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:`${t}/`})),e):e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:""})}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapFileNameRule=void 0;const o=r(45);t.SourceMapFileNameRule=e=>{let{sourceMapFileName:t}=e;if(t){t=t.replace(/^\/+/,"").replace(/(?:\.js)?(?:\.map)?$/,"");let r=t.split(o.StringSeparator.Dot);const n=r.length,i=r[n-1];n>1&&i.length<=3&&(r=r.slice(0,-1)),t=r.join(o.StringSeparator.Dot),e=Object.assign(Object.assign({},e),{sourceMapFileName:`${t}.js.map`})}return e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringsChunkLengthRule=void 0,t.SplitStringsChunkLengthRule=e=>e=0===e.splitStringsChunkLength?Object.assign(Object.assign({},e),{splitStrings:!1,splitStringsChunkLength:0}):Object.assign(Object.assign({},e),{splitStringsChunkLength:Math.floor(e.splitStringsChunkLength)})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRule=void 0,t.StringArrayRule=e=>(e.stringArray||(e=Object.assign(Object.assign({},e),{rotateStringArray:!1,shuffleStringArray:!1,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncodingRule=void 0;const o=r(28);t.StringArrayEncodingRule=e=>(!0===e.stringArrayEncoding&&(e=Object.assign(Object.assign({},e),{stringArrayEncoding:o.StringArrayEncoding.Base64})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayThresholdRule=void 0,t.StringArrayThresholdRule=e=>(0===e.stringArrayThreshold&&(e=Object.assign(Object.assign({},e),{rotateStringArray:!1,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preparingTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(13),s=r(76),c=r(221),l=r(71),d=r(222),u=r(226),f=r(228),p=r(229),m=r(231),g=r(232),_=r(233);t.preparingTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(d.CustomCodeHelpersTransformer).whenTargetNamed(a.NodeTransformer.CustomCodeHelpersTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.EvalCallExpressionTransformer).whenTargetNamed(a.NodeTransformer.EvalCallExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.MetadataTransformer).whenTargetNamed(a.NodeTransformer.MetadataTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(p.ObfuscatingGuardsTransformer).whenTargetNamed(a.NodeTransformer.ObfuscatingGuardsTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.ParentificationTransformer).whenTargetNamed(a.NodeTransformer.ParentificationTransformer),e(i.ServiceIdentifiers.INodeGuard).to(c.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.BlackListObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(l.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ConditionalCommentObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(g.ReservedStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ReservedStringObfuscatingGuard),e(i.ServiceIdentifiers.INodeTransformer).to(_.VariablePreserveTransformer).whenTargetNamed(a.NodeTransformer.VariablePreserveTransformer),e(i.ServiceIdentifiers.Factory__INodeGuard).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeGuard))})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.BlackListObfuscatingGuard=void 0;const a=r(0),s=r(4);let c=o=class{constructor(){this.blackListGuardsLength=o.blackListGuards.length}check(e){for(let t=0;t=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelpersTransformer=void 0;const f=r(0),p=r(1),m=r(223),g=r(224),_=r(2),S=r(3),h=r(225),N=r(70),y=r(13),b=r(25),O=r(9),E=r(11),I=r(4);let C=class extends E.AbstractNodeTransformer{constructor(e,t,r,o,n,i){super(n,i),this.runAfter=[y.NodeTransformer.ParentificationTransformer,y.NodeTransformer.VariablePreserveTransformer],this.callsGraphData=[],this.callsGraphAnalyzer=e,this.prevailingKindOfVariablesAnalyzer=t,this.obfuscationEventEmitter=r,this.customCodeHelperGroupStorage=o}getVisitor(e){switch(e){case O.NodeTransformationStage.Preparing:return{leave:(e,t)=>{if(I.NodeGuards.isProgramNode(e))return this.analyzeNode(e,t),this.appendCustomNodesBeforeObfuscation(e,t),this.transformNode(e,t)}};case O.NodeTransformationStage.Finalizing:return{leave:(e,t)=>{I.NodeGuards.isProgramNode(e)&&this.appendCustomNodesAfterObfuscation(e,t)}};default:return null}}analyzeNode(e,t){this.callsGraphData=this.callsGraphAnalyzer.analyze(e),this.prevailingKindOfVariablesAnalyzer.analyze(e)}transformNode(e,t){return e}appendCustomNodesBeforeObfuscation(e,t){this.customCodeHelperGroupStorage.getStorage().forEach(e=>{e.initialize(),this.obfuscationEventEmitter.once(e.getAppendEvent(),e.appendNodes.bind(e))}),this.obfuscationEventEmitter.emit(b.ObfuscationEvent.BeforeObfuscation,e,this.callsGraphData)}appendCustomNodesAfterObfuscation(e,t){this.obfuscationEventEmitter.emit(b.ObfuscationEvent.AfterObfuscation,e,this.callsGraphData)}};C=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.ICallsGraphAnalyzer)),u(1,f.inject(p.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),u(2,f.inject(p.ServiceIdentifiers.IObfuscationEventEmitter)),u(3,f.inject(p.ServiceIdentifiers.TCustomNodeGroupStorage)),u(4,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(5,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==h.ICallsGraphAnalyzer&&h.ICallsGraphAnalyzer)?o:Object,"function"==typeof(n=void 0!==N.IPrevailingKindOfVariablesAnalyzer&&N.IPrevailingKindOfVariablesAnalyzer)?n:Object,"function"==typeof(i=void 0!==g.IObfuscationEventEmitter&&g.IObfuscationEventEmitter)?i:Object,"function"==typeof(a=void 0!==m.TCustomCodeHelperGroupStorage&&m.TCustomCodeHelperGroupStorage)?a:Object,"function"==typeof(s=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==_.IOptions&&_.IOptions)?c:Object])],C),t.CustomCodeHelpersTransformer=C},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.EvalCallExpressionTransformer=void 0;const d=r(0),u=r(1),f=l(r(227)),p=r(2),m=r(3),g=r(13),_=r(9),S=r(11),h=r(7),N=r(4),y=r(6);let b=o=class extends S.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[g.NodeTransformer.ParentificationTransformer,g.NodeTransformer.VariablePreserveTransformer],this.evalRootAstHostNodeSet=new Set}static extractEvalStringFromCallExpressionArgument(e){return N.NodeGuards.isLiteralNode(e)?o.extractEvalStringFromLiteralNode(e):N.NodeGuards.isTemplateLiteralNode(e)?o.extractEvalStringFromTemplateLiteralNode(e):null}static extractEvalStringFromLiteralNode(e){return"string"==typeof e.value?e.value:null}static extractEvalStringFromTemplateLiteralNode(e){const t=e.quasis;return 1!==t.length||e.expressions.length?null:t[0].value.cooked}getVisitor(e){switch(e){case _.NodeTransformationStage.Preparing:return{enter:(e,t)=>{if(t&&N.NodeGuards.isCallExpressionNode(e)&&N.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return this.transformNode(e,t)}};case _.NodeTransformationStage.Finalizing:return this.evalRootAstHostNodeSet.size?{leave:(e,t)=>{if(t&&this.isEvalRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}transformNode(e,t){const r=e.arguments[0];if(!r)return e;const n=o.extractEvalStringFromCallExpressionArgument(r);if(!n)return e;let i;try{i=y.NodeUtils.convertCodeToStructure(n)}catch(t){return e}const a=h.NodeFactory.functionExpressionNode([],h.NodeFactory.blockStatementNode(i));return y.NodeUtils.parentizeAst(a),y.NodeUtils.parentizeNode(a,t),this.evalRootAstHostNodeSet.add(a),a}restoreNode(e,t){const r=e.body.body,o=y.NodeUtils.convertStructureToCode(r);return h.NodeFactory.callExpressionNode(h.NodeFactory.identifierNode("eval"),[h.NodeFactory.literalNode(f.default(o))])}isEvalRootAstHostNode(e){return N.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}};b=o=a([d.injectable(),c(0,d.inject(u.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(u.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],b),t.EvalCallExpressionTransformer=b},function(e,t){e.exports=require("js-string-escape")},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MetadataTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(13),p=r(9),m=r(11),g=r(4),_=r(19);let S=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.ParentificationTransformer,f.NodeTransformer.VariablePreserveTransformer]}getVisitor(e){switch(e){case p.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return _.NodeMetadata.set(e,{ignoredNode:!1}),g.NodeGuards.isLiteralNode(e)&&_.NodeMetadata.set(e,{replacedLiteral:!1}),e}};S=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],S),t.MetadataTransformer=S},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardsTransformer=void 0;const d=r(0),u=r(1),f=r(230),p=r(2),m=r(3),g=r(13),_=r(76),S=r(9),h=r(11),N=r(4),y=r(19);let b=o=class extends h.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer,g.NodeTransformer.VariablePreserveTransformer],this.obfuscatingGuards=o.obfuscatingGuardsList.map(e)}getVisitor(e){switch(e){case S.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){const r=this.obfuscatingGuards.every(t=>t.check(e));return y.NodeMetadata.set(e,{ignoredNode:!(N.NodeGuards.isProgramNode(e)||r)}),e}};b.obfuscatingGuardsList=[_.ObfuscatingGuard.BlackListObfuscatingGuard,_.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,_.ObfuscatingGuard.ReservedStringObfuscatingGuard],b=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__INodeGuard)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TObfuscatingGuardFactory&&f.TObfuscatingGuardFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],b),t.ObfuscatingGuardsTransformer=b},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ParentificationTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(9),p=r(11),m=r(6);let g=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return m.NodeUtils.parentizeNode(e,t)}};g=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],g),t.ParentificationTransformer=g},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReservedStringObfuscatingGuard=void 0;const s=r(0),c=r(2),l=r(1),d=r(4);let u=class{constructor(e){this.options=e}check(e){return!this.options.reservedStrings.length||!d.NodeGuards.isLiteralNode(e)||"string"!=typeof e.value||!this.isReservedString(e.value)}isReservedString(e){return this.options.reservedStrings.some(t=>null!==new RegExp(t,"g").exec(e))}};u=n([s.injectable(),a(0,s.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],u),t.ReservedStringObfuscatingGuard=u},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariablePreserveTransformer=void 0;const d=r(0),u=r(54),f=r(2),p=r(3),m=r(74),g=r(13),_=r(1),S=r(9),h=r(11),N=r(42),y=r(4);let b=class extends h.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer],this.identifierObfuscatingReplacer=e(N.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),this.scopeIdentifiersTraverser=o,this.preserveScopeVariableIdentifiers=this.preserveScopeVariableIdentifiers.bind(this)}getVisitor(e){switch(e){case S.NodeTransformationStage.Preparing:case S.NodeTransformationStage.Converting:case S.NodeTransformationStage.Obfuscating:return{enter:(e,t)=>{if(t&&y.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverse(e,t,this.preserveScopeVariableIdentifiers),e}preserveScopeVariableIdentifiers(e){const{isGlobalDeclaration:t,isBubblingDeclaration:r,variable:o,variableScope:n}=e;for(const e of o.identifiers)t||r?this.preserveIdentifierNameForRootLexicalScope(e):this.preserveIdentifierNameForLexicalScope(e,n)}preserveIdentifierNameForRootLexicalScope(e){this.identifierObfuscatingReplacer.preserveName(e)}preserveIdentifierNameForLexicalScope(e,t){const r=y.NodeGuards.isNodeWithLexicalScope(t.block)?t.block:null;r&&this.identifierObfuscatingReplacer.preserveNameForLexicalScope(e,r)}};b=s([d.injectable(),l(0,d.inject(_.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),l(1,d.inject(_.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(_.ServiceIdentifiers.IOptions)),l(3,d.inject(_.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierObfuscatingReplacerFactory&&u.TIdentifierObfuscatingReplacerFactory)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object,"function"==typeof(a=void 0!==m.IScopeIdentifiersTraverser&&m.IScopeIdentifiersTraverser)?a:Object])],b),t.VariablePreserveTransformer=b},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renamePropertiesTransformersModule=void 0;const o=r(0),n=r(1),i=r(13),a=r(235),s=r(237);t.renamePropertiesTransformersModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.RenamePropertiesTransformer).whenTargetNamed(i.NodeTransformer.RenamePropertiesTransformer),e(n.ServiceIdentifiers.IRenamePropertiesReplacer).to(a.RenamePropertiesReplacer)})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesReplacer=void 0;const l=r(0),d=r(1),u=r(5),f=r(2),p=c(r(236)),m=r(4),g=r(7);let _=class{constructor(e,t){this.propertyNamesMap=new Map,this.reservedDomPropertiesList=new Set(p.default),this.identifierNamesGenerator=e(t),this.options=t}replace(e){return m.NodeGuards.isIdentifierNode(e)?g.NodeFactory.identifierNode(this.replacePropertyName(e.name)):m.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value?g.NodeFactory.literalNode(this.replacePropertyName(e.value)):e}replacePropertyName(e){var t;if(this.isReservedName(e))return e;let r=null!==(t=this.propertyNamesMap.get(e))&&void 0!==t?t:null;return null!==r||(r=this.identifierNamesGenerator.generateNext(),this.propertyNamesMap.set(e,r)),r}isReservedName(e){return this.isReservedOptionName(e)||this.isReservedDomPropertyName(e)}isReservedOptionName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}isReservedDomPropertyName(e){return this.reservedDomPropertiesList.has(e)}};_=i([l.injectable(),s(0,l.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,l.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object])],_),t.RenamePropertiesReplacer=_},function(e){e.exports=JSON.parse('["$&","$\'","$*","$+","$1","$2","$3","$4","$5","$6","$7","$8","$9","$_","$`","$input","@@iterator","ABORT_ERR","ACTIVE","ACTIVE_ATTRIBUTES","ACTIVE_TEXTURE","ACTIVE_UNIFORMS","ADDITION","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALLOW_KEYBOARD_INPUT","ALLPASS","ALPHA","ALPHA_BITS","ALT_MASK","ALWAYS","ANY_TYPE","ANY_UNORDERED_NODE_TYPE","ARRAY_BUFFER","ARRAY_BUFFER_BINDING","ATTACHED_SHADERS","ATTRIBUTE_NODE","AT_TARGET","AddSearchProvider","AnalyserNode","AnimationEvent","AnonXMLHttpRequest","ApplicationCache","ApplicationCacheErrorEvent","Array","ArrayBuffer","Attr","Audio","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioListener","AudioNode","AudioParam","AudioProcessingEvent","AudioStreamTrack","AutocompleteErrorEvent","BACK","BAD_BOUNDARYPOINTS_ERR","BANDPASS","BLEND","BLEND_COLOR","BLEND_DST_ALPHA","BLEND_DST_RGB","BLEND_EQUATION","BLEND_EQUATION_ALPHA","BLEND_EQUATION_RGB","BLEND_SRC_ALPHA","BLEND_SRC_RGB","BLUE_BITS","BLUR","BOOL","BOOLEAN_TYPE","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","BOTH","BROWSER_DEFAULT_WEBGL","BUBBLING_PHASE","BUFFER_SIZE","BUFFER_USAGE","BYTE","BYTES_PER_ELEMENT","BarProp","BaseHref","BatteryManager","BeforeLoadEvent","BeforeUnloadEvent","BiquadFilterNode","Blob","BlobEvent","Boolean","CAPTURING_PHASE","CCW","CDATASection","CDATA_SECTION_NODE","CHANGE","CHARSET_RULE","CHECKING","CLAMP_TO_EDGE","CLICK","CLOSED","CLOSING","COLOR_ATTACHMENT0","COLOR_BUFFER_BIT","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","COMMENT_NODE","COMPILE_STATUS","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_TEXTURE_FORMATS","CONNECTING","CONSTANT_ALPHA","CONSTANT_COLOR","CONSTRAINT_ERR","CONTEXT_LOST_WEBGL","CONTROL_MASK","COUNTER_STYLE_RULE","CSS","CSS2Properties","CSSCharsetRule","CSSConditionRule","CSSCounterStyleRule","CSSFontFaceRule","CSSFontFeatureValuesRule","CSSGroupingRule","CSSImportRule","CSSKeyframeRule","CSSKeyframesRule","CSSMediaRule","CSSMozDocumentRule","CSSNameSpaceRule","CSSPageRule","CSSPrimitiveValue","CSSRule","CSSRuleList","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSSupportsRule","CSSUnknownRule","CSSValue","CSSValueList","CSSVariablesDeclaration","CSSVariablesRule","CSSViewportRule","CSS_ATTR","CSS_CM","CSS_COUNTER","CSS_CUSTOM","CSS_DEG","CSS_DIMENSION","CSS_EMS","CSS_EXS","CSS_FILTER_BLUR","CSS_FILTER_BRIGHTNESS","CSS_FILTER_CONTRAST","CSS_FILTER_CUSTOM","CSS_FILTER_DROP_SHADOW","CSS_FILTER_GRAYSCALE","CSS_FILTER_HUE_ROTATE","CSS_FILTER_INVERT","CSS_FILTER_OPACITY","CSS_FILTER_REFERENCE","CSS_FILTER_SATURATE","CSS_FILTER_SEPIA","CSS_GRAD","CSS_HZ","CSS_IDENT","CSS_IN","CSS_INHERIT","CSS_KHZ","CSS_MATRIX","CSS_MATRIX3D","CSS_MM","CSS_MS","CSS_NUMBER","CSS_PC","CSS_PERCENTAGE","CSS_PERSPECTIVE","CSS_PRIMITIVE_VALUE","CSS_PT","CSS_PX","CSS_RAD","CSS_RECT","CSS_RGBCOLOR","CSS_ROTATE","CSS_ROTATE3D","CSS_ROTATEX","CSS_ROTATEY","CSS_ROTATEZ","CSS_S","CSS_SCALE","CSS_SCALE3D","CSS_SCALEX","CSS_SCALEY","CSS_SCALEZ","CSS_SKEW","CSS_SKEWX","CSS_SKEWY","CSS_STRING","CSS_TRANSLATE","CSS_TRANSLATE3D","CSS_TRANSLATEX","CSS_TRANSLATEY","CSS_TRANSLATEZ","CSS_UNKNOWN","CSS_URI","CSS_VALUE_LIST","CSS_VH","CSS_VMAX","CSS_VMIN","CSS_VW","CULL_FACE","CULL_FACE_MODE","CURRENT_PROGRAM","CURRENT_VERTEX_ATTRIB","CUSTOM","CW","CanvasGradient","CanvasPattern","CanvasRenderingContext2D","CaretPosition","ChannelMergerNode","ChannelSplitterNode","CharacterData","ClientRect","ClientRectList","Clipboard","ClipboardEvent","CloseEvent","Collator","CommandEvent","Comment","CompositionEvent","Console","Controllers","ConvolverNode","Counter","Crypto","CryptoKey","CustomEvent","DATABASE_ERR","DATA_CLONE_ERR","DATA_ERR","DBLCLICK","DECR","DECR_WRAP","DELETE_STATUS","DEPTH_ATTACHMENT","DEPTH_BITS","DEPTH_BUFFER_BIT","DEPTH_CLEAR_VALUE","DEPTH_COMPONENT","DEPTH_COMPONENT16","DEPTH_FUNC","DEPTH_RANGE","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_TEST","DEPTH_WRITEMASK","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DISABLED","DISPATCH_REQUEST_ERR","DITHER","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC","DOCUMENT_POSITION_PRECEDING","DOCUMENT_TYPE_NODE","DOMCursor","DOMError","DOMException","DOMImplementation","DOMImplementationLS","DOMMatrix","DOMMatrixReadOnly","DOMParser","DOMPoint","DOMPointReadOnly","DOMQuad","DOMRect","DOMRectList","DOMRectReadOnly","DOMRequest","DOMSTRING_SIZE_ERR","DOMSettableTokenList","DOMStringList","DOMStringMap","DOMTokenList","DOMTransactionEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","DOM_INPUT_METHOD_DROP","DOM_INPUT_METHOD_HANDWRITING","DOM_INPUT_METHOD_IME","DOM_INPUT_METHOD_KEYBOARD","DOM_INPUT_METHOD_MULTIMODAL","DOM_INPUT_METHOD_OPTION","DOM_INPUT_METHOD_PASTE","DOM_INPUT_METHOD_SCRIPT","DOM_INPUT_METHOD_UNKNOWN","DOM_INPUT_METHOD_VOICE","DOM_KEY_LOCATION_JOYSTICK","DOM_KEY_LOCATION_LEFT","DOM_KEY_LOCATION_MOBILE","DOM_KEY_LOCATION_NUMPAD","DOM_KEY_LOCATION_RIGHT","DOM_KEY_LOCATION_STANDARD","DOM_VK_0","DOM_VK_1","DOM_VK_2","DOM_VK_3","DOM_VK_4","DOM_VK_5","DOM_VK_6","DOM_VK_7","DOM_VK_8","DOM_VK_9","DOM_VK_A","DOM_VK_ACCEPT","DOM_VK_ADD","DOM_VK_ALT","DOM_VK_ALTGR","DOM_VK_AMPERSAND","DOM_VK_ASTERISK","DOM_VK_AT","DOM_VK_ATTN","DOM_VK_B","DOM_VK_BACKSPACE","DOM_VK_BACK_QUOTE","DOM_VK_BACK_SLASH","DOM_VK_BACK_SPACE","DOM_VK_C","DOM_VK_CANCEL","DOM_VK_CAPS_LOCK","DOM_VK_CIRCUMFLEX","DOM_VK_CLEAR","DOM_VK_CLOSE_BRACKET","DOM_VK_CLOSE_CURLY_BRACKET","DOM_VK_CLOSE_PAREN","DOM_VK_COLON","DOM_VK_COMMA","DOM_VK_CONTEXT_MENU","DOM_VK_CONTROL","DOM_VK_CONVERT","DOM_VK_CRSEL","DOM_VK_CTRL","DOM_VK_D","DOM_VK_DECIMAL","DOM_VK_DELETE","DOM_VK_DIVIDE","DOM_VK_DOLLAR","DOM_VK_DOUBLE_QUOTE","DOM_VK_DOWN","DOM_VK_E","DOM_VK_EISU","DOM_VK_END","DOM_VK_ENTER","DOM_VK_EQUALS","DOM_VK_EREOF","DOM_VK_ESCAPE","DOM_VK_EXCLAMATION","DOM_VK_EXECUTE","DOM_VK_EXSEL","DOM_VK_F","DOM_VK_F1","DOM_VK_F10","DOM_VK_F11","DOM_VK_F12","DOM_VK_F13","DOM_VK_F14","DOM_VK_F15","DOM_VK_F16","DOM_VK_F17","DOM_VK_F18","DOM_VK_F19","DOM_VK_F2","DOM_VK_F20","DOM_VK_F21","DOM_VK_F22","DOM_VK_F23","DOM_VK_F24","DOM_VK_F25","DOM_VK_F26","DOM_VK_F27","DOM_VK_F28","DOM_VK_F29","DOM_VK_F3","DOM_VK_F30","DOM_VK_F31","DOM_VK_F32","DOM_VK_F33","DOM_VK_F34","DOM_VK_F35","DOM_VK_F36","DOM_VK_F4","DOM_VK_F5","DOM_VK_F6","DOM_VK_F7","DOM_VK_F8","DOM_VK_F9","DOM_VK_FINAL","DOM_VK_FRONT","DOM_VK_G","DOM_VK_GREATER_THAN","DOM_VK_H","DOM_VK_HANGUL","DOM_VK_HANJA","DOM_VK_HASH","DOM_VK_HELP","DOM_VK_HK_TOGGLE","DOM_VK_HOME","DOM_VK_HYPHEN_MINUS","DOM_VK_I","DOM_VK_INSERT","DOM_VK_J","DOM_VK_JUNJA","DOM_VK_K","DOM_VK_KANA","DOM_VK_KANJI","DOM_VK_L","DOM_VK_LEFT","DOM_VK_LEFT_TAB","DOM_VK_LESS_THAN","DOM_VK_M","DOM_VK_META","DOM_VK_MODECHANGE","DOM_VK_MULTIPLY","DOM_VK_N","DOM_VK_NONCONVERT","DOM_VK_NUMPAD0","DOM_VK_NUMPAD1","DOM_VK_NUMPAD2","DOM_VK_NUMPAD3","DOM_VK_NUMPAD4","DOM_VK_NUMPAD5","DOM_VK_NUMPAD6","DOM_VK_NUMPAD7","DOM_VK_NUMPAD8","DOM_VK_NUMPAD9","DOM_VK_NUM_LOCK","DOM_VK_O","DOM_VK_OEM_1","DOM_VK_OEM_102","DOM_VK_OEM_2","DOM_VK_OEM_3","DOM_VK_OEM_4","DOM_VK_OEM_5","DOM_VK_OEM_6","DOM_VK_OEM_7","DOM_VK_OEM_8","DOM_VK_OEM_COMMA","DOM_VK_OEM_MINUS","DOM_VK_OEM_PERIOD","DOM_VK_OEM_PLUS","DOM_VK_OPEN_BRACKET","DOM_VK_OPEN_CURLY_BRACKET","DOM_VK_OPEN_PAREN","DOM_VK_P","DOM_VK_PA1","DOM_VK_PAGEDOWN","DOM_VK_PAGEUP","DOM_VK_PAGE_DOWN","DOM_VK_PAGE_UP","DOM_VK_PAUSE","DOM_VK_PERCENT","DOM_VK_PERIOD","DOM_VK_PIPE","DOM_VK_PLAY","DOM_VK_PLUS","DOM_VK_PRINT","DOM_VK_PRINTSCREEN","DOM_VK_PROCESSKEY","DOM_VK_PROPERITES","DOM_VK_Q","DOM_VK_QUESTION_MARK","DOM_VK_QUOTE","DOM_VK_R","DOM_VK_REDO","DOM_VK_RETURN","DOM_VK_RIGHT","DOM_VK_S","DOM_VK_SCROLL_LOCK","DOM_VK_SELECT","DOM_VK_SEMICOLON","DOM_VK_SEPARATOR","DOM_VK_SHIFT","DOM_VK_SLASH","DOM_VK_SLEEP","DOM_VK_SPACE","DOM_VK_SUBTRACT","DOM_VK_T","DOM_VK_TAB","DOM_VK_TILDE","DOM_VK_U","DOM_VK_UNDERSCORE","DOM_VK_UNDO","DOM_VK_UNICODE","DOM_VK_UP","DOM_VK_V","DOM_VK_VOLUME_DOWN","DOM_VK_VOLUME_MUTE","DOM_VK_VOLUME_UP","DOM_VK_W","DOM_VK_WIN","DOM_VK_WINDOW","DOM_VK_WIN_ICO_00","DOM_VK_WIN_ICO_CLEAR","DOM_VK_WIN_ICO_HELP","DOM_VK_WIN_OEM_ATTN","DOM_VK_WIN_OEM_AUTO","DOM_VK_WIN_OEM_BACKTAB","DOM_VK_WIN_OEM_CLEAR","DOM_VK_WIN_OEM_COPY","DOM_VK_WIN_OEM_CUSEL","DOM_VK_WIN_OEM_ENLW","DOM_VK_WIN_OEM_FINISH","DOM_VK_WIN_OEM_FJ_JISHO","DOM_VK_WIN_OEM_FJ_LOYA","DOM_VK_WIN_OEM_FJ_MASSHOU","DOM_VK_WIN_OEM_FJ_ROYA","DOM_VK_WIN_OEM_FJ_TOUROKU","DOM_VK_WIN_OEM_JUMP","DOM_VK_WIN_OEM_PA1","DOM_VK_WIN_OEM_PA2","DOM_VK_WIN_OEM_PA3","DOM_VK_WIN_OEM_RESET","DOM_VK_WIN_OEM_WSCTRL","DOM_VK_X","DOM_VK_XF86XK_ADD_FAVORITE","DOM_VK_XF86XK_APPLICATION_LEFT","DOM_VK_XF86XK_APPLICATION_RIGHT","DOM_VK_XF86XK_AUDIO_CYCLE_TRACK","DOM_VK_XF86XK_AUDIO_FORWARD","DOM_VK_XF86XK_AUDIO_LOWER_VOLUME","DOM_VK_XF86XK_AUDIO_MEDIA","DOM_VK_XF86XK_AUDIO_MUTE","DOM_VK_XF86XK_AUDIO_NEXT","DOM_VK_XF86XK_AUDIO_PAUSE","DOM_VK_XF86XK_AUDIO_PLAY","DOM_VK_XF86XK_AUDIO_PREV","DOM_VK_XF86XK_AUDIO_RAISE_VOLUME","DOM_VK_XF86XK_AUDIO_RANDOM_PLAY","DOM_VK_XF86XK_AUDIO_RECORD","DOM_VK_XF86XK_AUDIO_REPEAT","DOM_VK_XF86XK_AUDIO_REWIND","DOM_VK_XF86XK_AUDIO_STOP","DOM_VK_XF86XK_AWAY","DOM_VK_XF86XK_BACK","DOM_VK_XF86XK_BACK_FORWARD","DOM_VK_XF86XK_BATTERY","DOM_VK_XF86XK_BLUE","DOM_VK_XF86XK_BLUETOOTH","DOM_VK_XF86XK_BOOK","DOM_VK_XF86XK_BRIGHTNESS_ADJUST","DOM_VK_XF86XK_CALCULATOR","DOM_VK_XF86XK_CALENDAR","DOM_VK_XF86XK_CD","DOM_VK_XF86XK_CLOSE","DOM_VK_XF86XK_COMMUNITY","DOM_VK_XF86XK_CONTRAST_ADJUST","DOM_VK_XF86XK_COPY","DOM_VK_XF86XK_CUT","DOM_VK_XF86XK_CYCLE_ANGLE","DOM_VK_XF86XK_DISPLAY","DOM_VK_XF86XK_DOCUMENTS","DOM_VK_XF86XK_DOS","DOM_VK_XF86XK_EJECT","DOM_VK_XF86XK_EXCEL","DOM_VK_XF86XK_EXPLORER","DOM_VK_XF86XK_FAVORITES","DOM_VK_XF86XK_FINANCE","DOM_VK_XF86XK_FORWARD","DOM_VK_XF86XK_FRAME_BACK","DOM_VK_XF86XK_FRAME_FORWARD","DOM_VK_XF86XK_GAME","DOM_VK_XF86XK_GO","DOM_VK_XF86XK_GREEN","DOM_VK_XF86XK_HIBERNATE","DOM_VK_XF86XK_HISTORY","DOM_VK_XF86XK_HOME_PAGE","DOM_VK_XF86XK_HOT_LINKS","DOM_VK_XF86XK_I_TOUCH","DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN","DOM_VK_XF86XK_KBD_BRIGHTNESS_UP","DOM_VK_XF86XK_KBD_LIGHT_ON_OFF","DOM_VK_XF86XK_LAUNCH0","DOM_VK_XF86XK_LAUNCH1","DOM_VK_XF86XK_LAUNCH2","DOM_VK_XF86XK_LAUNCH3","DOM_VK_XF86XK_LAUNCH4","DOM_VK_XF86XK_LAUNCH5","DOM_VK_XF86XK_LAUNCH6","DOM_VK_XF86XK_LAUNCH7","DOM_VK_XF86XK_LAUNCH8","DOM_VK_XF86XK_LAUNCH9","DOM_VK_XF86XK_LAUNCH_A","DOM_VK_XF86XK_LAUNCH_B","DOM_VK_XF86XK_LAUNCH_C","DOM_VK_XF86XK_LAUNCH_D","DOM_VK_XF86XK_LAUNCH_E","DOM_VK_XF86XK_LAUNCH_F","DOM_VK_XF86XK_LIGHT_BULB","DOM_VK_XF86XK_LOG_OFF","DOM_VK_XF86XK_MAIL","DOM_VK_XF86XK_MAIL_FORWARD","DOM_VK_XF86XK_MARKET","DOM_VK_XF86XK_MEETING","DOM_VK_XF86XK_MEMO","DOM_VK_XF86XK_MENU_KB","DOM_VK_XF86XK_MENU_PB","DOM_VK_XF86XK_MESSENGER","DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN","DOM_VK_XF86XK_MON_BRIGHTNESS_UP","DOM_VK_XF86XK_MUSIC","DOM_VK_XF86XK_MY_COMPUTER","DOM_VK_XF86XK_MY_SITES","DOM_VK_XF86XK_NEW","DOM_VK_XF86XK_NEWS","DOM_VK_XF86XK_OFFICE_HOME","DOM_VK_XF86XK_OPEN","DOM_VK_XF86XK_OPEN_URL","DOM_VK_XF86XK_OPTION","DOM_VK_XF86XK_PASTE","DOM_VK_XF86XK_PHONE","DOM_VK_XF86XK_PICTURES","DOM_VK_XF86XK_POWER_DOWN","DOM_VK_XF86XK_POWER_OFF","DOM_VK_XF86XK_RED","DOM_VK_XF86XK_REFRESH","DOM_VK_XF86XK_RELOAD","DOM_VK_XF86XK_REPLY","DOM_VK_XF86XK_ROCKER_DOWN","DOM_VK_XF86XK_ROCKER_ENTER","DOM_VK_XF86XK_ROCKER_UP","DOM_VK_XF86XK_ROTATE_WINDOWS","DOM_VK_XF86XK_ROTATION_KB","DOM_VK_XF86XK_ROTATION_PB","DOM_VK_XF86XK_SAVE","DOM_VK_XF86XK_SCREEN_SAVER","DOM_VK_XF86XK_SCROLL_CLICK","DOM_VK_XF86XK_SCROLL_DOWN","DOM_VK_XF86XK_SCROLL_UP","DOM_VK_XF86XK_SEARCH","DOM_VK_XF86XK_SEND","DOM_VK_XF86XK_SHOP","DOM_VK_XF86XK_SPELL","DOM_VK_XF86XK_SPLIT_SCREEN","DOM_VK_XF86XK_STANDBY","DOM_VK_XF86XK_START","DOM_VK_XF86XK_STOP","DOM_VK_XF86XK_SUBTITLE","DOM_VK_XF86XK_SUPPORT","DOM_VK_XF86XK_SUSPEND","DOM_VK_XF86XK_TASK_PANE","DOM_VK_XF86XK_TERMINAL","DOM_VK_XF86XK_TIME","DOM_VK_XF86XK_TOOLS","DOM_VK_XF86XK_TOP_MENU","DOM_VK_XF86XK_TO_DO_LIST","DOM_VK_XF86XK_TRAVEL","DOM_VK_XF86XK_USER1KB","DOM_VK_XF86XK_USER2KB","DOM_VK_XF86XK_USER_PB","DOM_VK_XF86XK_UWB","DOM_VK_XF86XK_VENDOR_HOME","DOM_VK_XF86XK_VIDEO","DOM_VK_XF86XK_VIEW","DOM_VK_XF86XK_WAKE_UP","DOM_VK_XF86XK_WEB_CAM","DOM_VK_XF86XK_WHEEL_BUTTON","DOM_VK_XF86XK_WLAN","DOM_VK_XF86XK_WORD","DOM_VK_XF86XK_WWW","DOM_VK_XF86XK_XFER","DOM_VK_XF86XK_YELLOW","DOM_VK_XF86XK_ZOOM_IN","DOM_VK_XF86XK_ZOOM_OUT","DOM_VK_Y","DOM_VK_Z","DOM_VK_ZOOM","DONE","DONT_CARE","DOWNLOADING","DRAGDROP","DST_ALPHA","DST_COLOR","DYNAMIC_DRAW","DataChannel","DataTransfer","DataTransferItem","DataTransferItemList","DataView","Date","DateTimeFormat","DelayNode","DesktopNotification","DesktopNotificationCenter","DeviceLightEvent","DeviceMotionEvent","DeviceOrientationEvent","DeviceProximityEvent","DeviceStorage","DeviceStorageChangeEvent","Document","DocumentFragment","DocumentType","DragEvent","DynamicsCompressorNode","E","ELEMENT_ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER_BINDING","ELEMENT_NODE","EMPTY","ENCODING_ERR","ENDED","END_TO_END","END_TO_START","ENTITY_NODE","ENTITY_REFERENCE_NODE","EPSILON","EQUAL","EQUALPOWER","ERROR","EXPONENTIAL_DISTANCE","Element","ElementQuery","Entity","EntityReference","Error","ErrorEvent","EvalError","Event","EventException","EventSource","EventTarget","External","FASTEST","FIDOSDK","FILTER_ACCEPT","FILTER_INTERRUPT","FILTER_REJECT","FILTER_SKIP","FINISHED_STATE","FIRST_ORDERED_NODE_TYPE","FLOAT","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","FOCUS","FONT_FACE_RULE","FONT_FEATURE_VALUES_RULE","FRAGMENT_SHADER","FRAGMENT_SHADER_DERIVATIVE_HINT_OES","FRAMEBUFFER","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_BINDING","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_UNSUPPORTED","FRONT","FRONT_AND_BACK","FRONT_FACE","FUNC_ADD","FUNC_REVERSE_SUBTRACT","FUNC_SUBTRACT","Feed","FeedEntry","File","FileError","FileList","FileReader","FindInPage","Float32Array","Float64Array","FocusEvent","FontFace","FormData","Function","GENERATE_MIPMAP_HINT","GEQUAL","GREATER","GREEN_BITS","GainNode","Gamepad","GamepadButton","GamepadEvent","GestureEvent","HAVE_CURRENT_DATA","HAVE_ENOUGH_DATA","HAVE_FUTURE_DATA","HAVE_METADATA","HAVE_NOTHING","HEADERS_RECEIVED","HIDDEN","HIERARCHY_REQUEST_ERR","HIGHPASS","HIGHSHELF","HIGH_FLOAT","HIGH_INT","HORIZONTAL","HORIZONTAL_AXIS","HRTF","HTMLAllCollection","HTMLAnchorElement","HTMLAppletElement","HTMLAreaElement","HTMLAudioElement","HTMLBRElement","HTMLBaseElement","HTMLBaseFontElement","HTMLBlockquoteElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLCommandElement","HTMLContentElement","HTMLDListElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDirectoryElement","HTMLDivElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormControlsCollection","HTMLFormElement","HTMLFrameElement","HTMLFrameSetElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLIsIndexElement","HTMLKeygenElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement","HTMLLinkElement","HTMLMapElement","HTMLMarqueeElement","HTMLMediaElement","HTMLMenuElement","HTMLMenuItemElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLOListElement","HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLPropertiesCollection","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLShadowElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","HashChangeEvent","Headers","History","ICE_CHECKING","ICE_CLOSED","ICE_COMPLETED","ICE_CONNECTED","ICE_FAILED","ICE_GATHERING","ICE_WAITING","IDBCursor","IDBCursorWithValue","IDBDatabase","IDBDatabaseException","IDBFactory","IDBFileHandle","IDBFileRequest","IDBIndex","IDBKeyRange","IDBMutableFile","IDBObjectStore","IDBOpenDBRequest","IDBRequest","IDBTransaction","IDBVersionChangeEvent","IDLE","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","IMPORT_RULE","INCR","INCR_WRAP","INDEX_SIZE_ERR","INT","INT_VEC2","INT_VEC3","INT_VEC4","INUSE_ATTRIBUTE_ERR","INVALID_ACCESS_ERR","INVALID_CHARACTER_ERR","INVALID_ENUM","INVALID_EXPRESSION_ERR","INVALID_FRAMEBUFFER_OPERATION","INVALID_MODIFICATION_ERR","INVALID_NODE_TYPE_ERR","INVALID_OPERATION","INVALID_STATE_ERR","INVALID_VALUE","INVERSE_DISTANCE","INVERT","IceCandidate","Image","ImageBitmap","ImageData","Infinity","InputEvent","InputMethodContext","InstallTrigger","Int16Array","Int32Array","Int8Array","Intent","InternalError","Intl","IsSearchProviderInstalled","Iterator","JSON","KEEP","KEYDOWN","KEYFRAMES_RULE","KEYFRAME_RULE","KEYPRESS","KEYUP","KeyEvent","KeyboardEvent","LENGTHADJUST_SPACING","LENGTHADJUST_SPACINGANDGLYPHS","LENGTHADJUST_UNKNOWN","LEQUAL","LESS","LINEAR","LINEAR_DISTANCE","LINEAR_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINES","LINE_LOOP","LINE_STRIP","LINE_WIDTH","LINK_STATUS","LIVE","LN10","LN2","LOADED","LOADING","LOG10E","LOG2E","LOWPASS","LOWSHELF","LOW_FLOAT","LOW_INT","LSException","LSParserFilter","LUMINANCE","LUMINANCE_ALPHA","LocalMediaStream","Location","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_RENDERBUFFER_SIZE","MAX_SAFE_INTEGER","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_TEXTURE_SIZE","MAX_VALUE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MEDIA_ERR_ABORTED","MEDIA_ERR_DECODE","MEDIA_ERR_ENCRYPTED","MEDIA_ERR_NETWORK","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_KEYERR_CLIENT","MEDIA_KEYERR_DOMAIN","MEDIA_KEYERR_HARDWARECHANGE","MEDIA_KEYERR_OUTPUT","MEDIA_KEYERR_SERVICE","MEDIA_KEYERR_UNKNOWN","MEDIA_RULE","MEDIUM_FLOAT","MEDIUM_INT","META_MASK","MIN_SAFE_INTEGER","MIN_VALUE","MIRRORED_REPEAT","MODE_ASYNCHRONOUS","MODE_SYNCHRONOUS","MODIFICATION","MOUSEDOWN","MOUSEDRAG","MOUSEMOVE","MOUSEOUT","MOUSEOVER","MOUSEUP","MOZ_KEYFRAMES_RULE","MOZ_KEYFRAME_RULE","MOZ_SOURCE_CURSOR","MOZ_SOURCE_ERASER","MOZ_SOURCE_KEYBOARD","MOZ_SOURCE_MOUSE","MOZ_SOURCE_PEN","MOZ_SOURCE_TOUCH","MOZ_SOURCE_UNKNOWN","MSGESTURE_FLAG_BEGIN","MSGESTURE_FLAG_CANCEL","MSGESTURE_FLAG_END","MSGESTURE_FLAG_INERTIA","MSGESTURE_FLAG_NONE","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_PEN","MSPOINTER_TYPE_TOUCH","MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE","MS_ASYNC_CALLBACK_STATUS_CANCEL","MS_ASYNC_CALLBACK_STATUS_CHOOSEANY","MS_ASYNC_CALLBACK_STATUS_ERROR","MS_ASYNC_CALLBACK_STATUS_JOIN","MS_ASYNC_OP_STATUS_CANCELED","MS_ASYNC_OP_STATUS_ERROR","MS_ASYNC_OP_STATUS_SUCCESS","MS_MANIPULATION_STATE_ACTIVE","MS_MANIPULATION_STATE_CANCELLED","MS_MANIPULATION_STATE_COMMITTED","MS_MANIPULATION_STATE_DRAGGING","MS_MANIPULATION_STATE_INERTIA","MS_MANIPULATION_STATE_PRESELECT","MS_MANIPULATION_STATE_SELECTING","MS_MANIPULATION_STATE_STOPPED","MS_MEDIA_ERR_ENCRYPTED","MS_MEDIA_KEYERR_CLIENT","MS_MEDIA_KEYERR_DOMAIN","MS_MEDIA_KEYERR_HARDWARECHANGE","MS_MEDIA_KEYERR_OUTPUT","MS_MEDIA_KEYERR_SERVICE","MS_MEDIA_KEYERR_UNKNOWN","Map","Math","MediaController","MediaDevices","MediaElementAudioSourceNode","MediaEncryptedEvent","MediaError","MediaKeyError","MediaKeyEvent","MediaKeyMessageEvent","MediaKeyNeededEvent","MediaKeySession","MediaKeyStatusMap","MediaKeySystemAccess","MediaKeys","MediaList","MediaQueryList","MediaQueryListEvent","MediaRecorder","MediaSource","MediaStream","MediaStreamAudioDestinationNode","MediaStreamAudioSourceNode","MediaStreamEvent","MediaStreamTrack","MediaStreamTrackEvent","MessageChannel","MessageEvent","MessagePort","Methods","MimeType","MimeTypeArray","MouseEvent","MouseScrollEvent","MozAnimation","MozAnimationDelay","MozAnimationDirection","MozAnimationDuration","MozAnimationFillMode","MozAnimationIterationCount","MozAnimationName","MozAnimationPlayState","MozAnimationTimingFunction","MozAppearance","MozBackfaceVisibility","MozBinding","MozBorderBottomColors","MozBorderEnd","MozBorderEndColor","MozBorderEndStyle","MozBorderEndWidth","MozBorderImage","MozBorderLeftColors","MozBorderRightColors","MozBorderStart","MozBorderStartColor","MozBorderStartStyle","MozBorderStartWidth","MozBorderTopColors","MozBoxAlign","MozBoxDirection","MozBoxFlex","MozBoxOrdinalGroup","MozBoxOrient","MozBoxPack","MozBoxSizing","MozCSSKeyframeRule","MozCSSKeyframesRule","MozColumnCount","MozColumnFill","MozColumnGap","MozColumnRule","MozColumnRuleColor","MozColumnRuleStyle","MozColumnRuleWidth","MozColumnWidth","MozColumns","MozContactChangeEvent","MozFloatEdge","MozFontFeatureSettings","MozFontLanguageOverride","MozForceBrokenImageIcon","MozHyphens","MozImageRegion","MozMarginEnd","MozMarginStart","MozMmsEvent","MozMmsMessage","MozMobileMessageThread","MozOSXFontSmoothing","MozOrient","MozOutlineRadius","MozOutlineRadiusBottomleft","MozOutlineRadiusBottomright","MozOutlineRadiusTopleft","MozOutlineRadiusTopright","MozPaddingEnd","MozPaddingStart","MozPerspective","MozPerspectiveOrigin","MozPowerManager","MozSettingsEvent","MozSmsEvent","MozSmsMessage","MozStackSizing","MozTabSize","MozTextAlignLast","MozTextDecorationColor","MozTextDecorationLine","MozTextDecorationStyle","MozTextSizeAdjust","MozTransform","MozTransformOrigin","MozTransformStyle","MozTransition","MozTransitionDelay","MozTransitionDuration","MozTransitionProperty","MozTransitionTimingFunction","MozUserFocus","MozUserInput","MozUserModify","MozUserSelect","MozWindowDragging","MozWindowShadow","MutationEvent","MutationObserver","MutationRecord","NAMESPACE_ERR","NAMESPACE_RULE","NEAREST","NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","NEGATIVE_INFINITY","NETWORK_EMPTY","NETWORK_ERR","NETWORK_IDLE","NETWORK_LOADED","NETWORK_LOADING","NETWORK_NO_SOURCE","NEVER","NEW","NEXT","NEXT_NO_DUPLICATE","NICEST","NODE_AFTER","NODE_BEFORE","NODE_BEFORE_AND_AFTER","NODE_INSIDE","NONE","NON_TRANSIENT_ERR","NOTATION_NODE","NOTCH","NOTEQUAL","NOT_ALLOWED_ERR","NOT_FOUND_ERR","NOT_READABLE_ERR","NOT_SUPPORTED_ERR","NO_DATA_ALLOWED_ERR","NO_ERR","NO_ERROR","NO_MODIFICATION_ALLOWED_ERR","NUMBER_TYPE","NUM_COMPRESSED_TEXTURE_FORMATS","NaN","NamedNodeMap","Navigator","NearbyLinks","NetworkInformation","Node","NodeFilter","NodeIterator","NodeList","Notation","Notification","NotifyPaintEvent","Number","NumberFormat","OBSOLETE","ONE","ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_COLOR","ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_SRC_COLOR","OPEN","OPENED","OPENING","ORDERED_NODE_ITERATOR_TYPE","ORDERED_NODE_SNAPSHOT_TYPE","OUT_OF_MEMORY","Object","OfflineAudioCompletionEvent","OfflineAudioContext","OfflineResourceList","Option","OscillatorNode","OverflowEvent","PACK_ALIGNMENT","PAGE_RULE","PARSE_ERR","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_CLOSEPATH","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_UNKNOWN","PATH_EXISTS_ERR","PEAKING","PERMISSION_DENIED","PERSISTENT","PI","PLAYING_STATE","POINTS","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_FILL","POLYGON_OFFSET_UNITS","POSITION_UNAVAILABLE","POSITIVE_INFINITY","PREV","PREV_NO_DUPLICATE","PROCESSING_INSTRUCTION_NODE","PageChangeEvent","PageTransitionEvent","PaintRequest","PaintRequestList","PannerNode","Path2D","Performance","PerformanceEntry","PerformanceMark","PerformanceMeasure","PerformanceNavigation","PerformanceResourceTiming","PerformanceTiming","PeriodicWave","Plugin","PluginArray","PopStateEvent","PopupBlockedEvent","ProcessingInstruction","ProgressEvent","Promise","PropertyNodeList","Proxy","PushManager","PushSubscription","Q","QUOTA_ERR","QUOTA_EXCEEDED_ERR","QueryInterface","READ_ONLY","READ_ONLY_ERR","READ_WRITE","RED_BITS","REMOVAL","RENDERBUFFER","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_BINDING","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_STENCIL_SIZE","RENDERBUFFER_WIDTH","RENDERER","RENDERING_INTENT_ABSOLUTE_COLORIMETRIC","RENDERING_INTENT_AUTO","RENDERING_INTENT_PERCEPTUAL","RENDERING_INTENT_RELATIVE_COLORIMETRIC","RENDERING_INTENT_SATURATION","RENDERING_INTENT_UNKNOWN","REPEAT","REPLACE","RGB","RGB565","RGB5_A1","RGBA","RGBA4","RGBColor","ROTATION_CLOCKWISE","ROTATION_COUNTERCLOCKWISE","RTCDataChannelEvent","RTCIceCandidate","RTCPeerConnectionIceEvent","RTCRtpReceiver","RTCRtpSender","RTCSessionDescription","RTCStatsReport","RadioNodeList","Range","RangeError","RangeException","RecordErrorEvent","Rect","ReferenceError","RegExp","Request","Response","SAMPLER_2D","SAMPLER_CUBE","SAMPLES","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_BUFFERS","SAMPLE_COVERAGE","SAMPLE_COVERAGE_INVERT","SAMPLE_COVERAGE_VALUE","SAWTOOTH","SCHEDULED_STATE","SCISSOR_BOX","SCISSOR_TEST","SCROLL_PAGE_DOWN","SCROLL_PAGE_UP","SDP_ANSWER","SDP_OFFER","SDP_PRANSWER","SECURITY_ERR","SELECT","SERIALIZE_ERR","SEVERITY_ERROR","SEVERITY_FATAL_ERROR","SEVERITY_WARNING","SHADER_COMPILER","SHADER_TYPE","SHADING_LANGUAGE_VERSION","SHIFT_MASK","SHORT","SHOWING","SHOW_ALL","SHOW_ATTRIBUTE","SHOW_CDATA_SECTION","SHOW_COMMENT","SHOW_DOCUMENT","SHOW_DOCUMENT_FRAGMENT","SHOW_DOCUMENT_TYPE","SHOW_ELEMENT","SHOW_ENTITY","SHOW_ENTITY_REFERENCE","SHOW_NOTATION","SHOW_PROCESSING_INSTRUCTION","SHOW_TEXT","SINE","SOUNDFIELD","SQLException","SQRT1_2","SQRT2","SQUARE","SRC_ALPHA","SRC_ALPHA_SATURATE","SRC_COLOR","START_TO_END","START_TO_START","STATIC_DRAW","STENCIL_ATTACHMENT","STENCIL_BACK_FAIL","STENCIL_BACK_FUNC","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","STENCIL_BITS","STENCIL_BUFFER_BIT","STENCIL_CLEAR_VALUE","STENCIL_FAIL","STENCIL_FUNC","STENCIL_INDEX","STENCIL_INDEX8","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_TEST","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STREAM_DRAW","STRING_TYPE","STYLE_RULE","SUBPIXEL_BITS","SUPPORTS_RULE","SVGAElement","SVGAltGlyphDefElement","SVGAltGlyphElement","SVGAltGlyphItemElement","SVGAngle","SVGAnimateColorElement","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimatedAngle","SVGAnimatedBoolean","SVGAnimatedEnumeration","SVGAnimatedInteger","SVGAnimatedLength","SVGAnimatedLengthList","SVGAnimatedNumber","SVGAnimatedNumberList","SVGAnimatedPreserveAspectRatio","SVGAnimatedRect","SVGAnimatedString","SVGAnimatedTransformList","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGColor","SVGComponentTransferFunctionElement","SVGCursorElement","SVGDefsElement","SVGDescElement","SVGDiscardElement","SVGDocument","SVGElement","SVGElementInstance","SVGElementInstanceList","SVGEllipseElement","SVGException","SVGFEBlendElement","SVGFEColorMatrixElement","SVGFEComponentTransferElement","SVGFECompositeElement","SVGFEConvolveMatrixElement","SVGFEDiffuseLightingElement","SVGFEDisplacementMapElement","SVGFEDistantLightElement","SVGFEDropShadowElement","SVGFEFloodElement","SVGFEFuncAElement","SVGFEFuncBElement","SVGFEFuncGElement","SVGFEFuncRElement","SVGFEGaussianBlurElement","SVGFEImageElement","SVGFEMergeElement","SVGFEMergeNodeElement","SVGFEMorphologyElement","SVGFEOffsetElement","SVGFEPointLightElement","SVGFESpecularLightingElement","SVGFESpotLightElement","SVGFETileElement","SVGFETurbulenceElement","SVGFilterElement","SVGFontElement","SVGFontFaceElement","SVGFontFaceFormatElement","SVGFontFaceNameElement","SVGFontFaceSrcElement","SVGFontFaceUriElement","SVGForeignObjectElement","SVGGElement","SVGGeometryElement","SVGGlyphElement","SVGGlyphRefElement","SVGGradientElement","SVGGraphicsElement","SVGHKernElement","SVGImageElement","SVGLength","SVGLengthList","SVGLineElement","SVGLinearGradientElement","SVGMPathElement","SVGMarkerElement","SVGMaskElement","SVGMatrix","SVGMetadataElement","SVGMissingGlyphElement","SVGNumber","SVGNumberList","SVGPaint","SVGPathElement","SVGPathSeg","SVGPathSegArcAbs","SVGPathSegArcRel","SVGPathSegClosePath","SVGPathSegCurvetoCubicAbs","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathSegLinetoAbs","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegList","SVGPathSegMovetoAbs","SVGPathSegMovetoRel","SVGPatternElement","SVGPoint","SVGPointList","SVGPolygonElement","SVGPolylineElement","SVGPreserveAspectRatio","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGRenderingIntent","SVGSVGElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStringList","SVGStyleElement","SVGSwitchElement","SVGSymbolElement","SVGTRefElement","SVGTSpanElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGUnitTypes","SVGUseElement","SVGVKernElement","SVGViewElement","SVGViewSpec","SVGZoomAndPan","SVGZoomEvent","SVG_ANGLETYPE_DEG","SVG_ANGLETYPE_GRAD","SVG_ANGLETYPE_RAD","SVG_ANGLETYPE_UNKNOWN","SVG_ANGLETYPE_UNSPECIFIED","SVG_CHANNEL_A","SVG_CHANNEL_B","SVG_CHANNEL_G","SVG_CHANNEL_R","SVG_CHANNEL_UNKNOWN","SVG_COLORTYPE_CURRENTCOLOR","SVG_COLORTYPE_RGBCOLOR","SVG_COLORTYPE_RGBCOLOR_ICCCOLOR","SVG_COLORTYPE_UNKNOWN","SVG_EDGEMODE_DUPLICATE","SVG_EDGEMODE_NONE","SVG_EDGEMODE_UNKNOWN","SVG_EDGEMODE_WRAP","SVG_FEBLEND_MODE_COLOR","SVG_FEBLEND_MODE_COLOR_BURN","SVG_FEBLEND_MODE_COLOR_DODGE","SVG_FEBLEND_MODE_DARKEN","SVG_FEBLEND_MODE_DIFFERENCE","SVG_FEBLEND_MODE_EXCLUSION","SVG_FEBLEND_MODE_HARD_LIGHT","SVG_FEBLEND_MODE_HUE","SVG_FEBLEND_MODE_LIGHTEN","SVG_FEBLEND_MODE_LUMINOSITY","SVG_FEBLEND_MODE_MULTIPLY","SVG_FEBLEND_MODE_NORMAL","SVG_FEBLEND_MODE_OVERLAY","SVG_FEBLEND_MODE_SATURATION","SVG_FEBLEND_MODE_SCREEN","SVG_FEBLEND_MODE_SOFT_LIGHT","SVG_FEBLEND_MODE_UNKNOWN","SVG_FECOLORMATRIX_TYPE_HUEROTATE","SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA","SVG_FECOLORMATRIX_TYPE_MATRIX","SVG_FECOLORMATRIX_TYPE_SATURATE","SVG_FECOLORMATRIX_TYPE_UNKNOWN","SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE","SVG_FECOMPONENTTRANSFER_TYPE_GAMMA","SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY","SVG_FECOMPONENTTRANSFER_TYPE_LINEAR","SVG_FECOMPONENTTRANSFER_TYPE_TABLE","SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_ARITHMETIC","SVG_FECOMPOSITE_OPERATOR_ATOP","SVG_FECOMPOSITE_OPERATOR_IN","SVG_FECOMPOSITE_OPERATOR_OUT","SVG_FECOMPOSITE_OPERATOR_OVER","SVG_FECOMPOSITE_OPERATOR_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_XOR","SVG_INVALID_VALUE_ERR","SVG_LENGTHTYPE_CM","SVG_LENGTHTYPE_EMS","SVG_LENGTHTYPE_EXS","SVG_LENGTHTYPE_IN","SVG_LENGTHTYPE_MM","SVG_LENGTHTYPE_NUMBER","SVG_LENGTHTYPE_PC","SVG_LENGTHTYPE_PERCENTAGE","SVG_LENGTHTYPE_PT","SVG_LENGTHTYPE_PX","SVG_LENGTHTYPE_UNKNOWN","SVG_MARKERUNITS_STROKEWIDTH","SVG_MARKERUNITS_UNKNOWN","SVG_MARKERUNITS_USERSPACEONUSE","SVG_MARKER_ORIENT_ANGLE","SVG_MARKER_ORIENT_AUTO","SVG_MARKER_ORIENT_UNKNOWN","SVG_MASKTYPE_ALPHA","SVG_MASKTYPE_LUMINANCE","SVG_MATRIX_NOT_INVERTABLE","SVG_MEETORSLICE_MEET","SVG_MEETORSLICE_SLICE","SVG_MEETORSLICE_UNKNOWN","SVG_MORPHOLOGY_OPERATOR_DILATE","SVG_MORPHOLOGY_OPERATOR_ERODE","SVG_MORPHOLOGY_OPERATOR_UNKNOWN","SVG_PAINTTYPE_CURRENTCOLOR","SVG_PAINTTYPE_NONE","SVG_PAINTTYPE_RGBCOLOR","SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR","SVG_PAINTTYPE_UNKNOWN","SVG_PAINTTYPE_URI","SVG_PAINTTYPE_URI_CURRENTCOLOR","SVG_PAINTTYPE_URI_NONE","SVG_PAINTTYPE_URI_RGBCOLOR","SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR","SVG_PRESERVEASPECTRATIO_NONE","SVG_PRESERVEASPECTRATIO_UNKNOWN","SVG_PRESERVEASPECTRATIO_XMAXYMAX","SVG_PRESERVEASPECTRATIO_XMAXYMID","SVG_PRESERVEASPECTRATIO_XMAXYMIN","SVG_PRESERVEASPECTRATIO_XMIDYMAX","SVG_PRESERVEASPECTRATIO_XMIDYMID","SVG_PRESERVEASPECTRATIO_XMIDYMIN","SVG_PRESERVEASPECTRATIO_XMINYMAX","SVG_PRESERVEASPECTRATIO_XMINYMID","SVG_PRESERVEASPECTRATIO_XMINYMIN","SVG_SPREADMETHOD_PAD","SVG_SPREADMETHOD_REFLECT","SVG_SPREADMETHOD_REPEAT","SVG_SPREADMETHOD_UNKNOWN","SVG_STITCHTYPE_NOSTITCH","SVG_STITCHTYPE_STITCH","SVG_STITCHTYPE_UNKNOWN","SVG_TRANSFORM_MATRIX","SVG_TRANSFORM_ROTATE","SVG_TRANSFORM_SCALE","SVG_TRANSFORM_SKEWX","SVG_TRANSFORM_SKEWY","SVG_TRANSFORM_TRANSLATE","SVG_TRANSFORM_UNKNOWN","SVG_TURBULENCE_TYPE_FRACTALNOISE","SVG_TURBULENCE_TYPE_TURBULENCE","SVG_TURBULENCE_TYPE_UNKNOWN","SVG_UNIT_TYPE_OBJECTBOUNDINGBOX","SVG_UNIT_TYPE_UNKNOWN","SVG_UNIT_TYPE_USERSPACEONUSE","SVG_WRONG_TYPE_ERR","SVG_ZOOMANDPAN_DISABLE","SVG_ZOOMANDPAN_MAGNIFY","SVG_ZOOMANDPAN_UNKNOWN","SYNTAX_ERR","SavedPages","Screen","ScreenOrientation","Script","ScriptProcessorNode","ScrollAreaEvent","SecurityPolicyViolationEvent","Selection","ServiceWorker","ServiceWorkerContainer","ServiceWorkerRegistration","SessionDescription","Set","ShadowRoot","SharedWorker","SimpleGestureEvent","SpeechSynthesisEvent","SpeechSynthesisUtterance","StopIteration","Storage","StorageEvent","String","StyleSheet","StyleSheetList","SubtleCrypto","Symbol","SyntaxError","TEMPORARY","TEXTPATH_METHODTYPE_ALIGN","TEXTPATH_METHODTYPE_STRETCH","TEXTPATH_METHODTYPE_UNKNOWN","TEXTPATH_SPACINGTYPE_AUTO","TEXTPATH_SPACINGTYPE_EXACT","TEXTPATH_SPACINGTYPE_UNKNOWN","TEXTURE","TEXTURE0","TEXTURE1","TEXTURE10","TEXTURE11","TEXTURE12","TEXTURE13","TEXTURE14","TEXTURE15","TEXTURE16","TEXTURE17","TEXTURE18","TEXTURE19","TEXTURE2","TEXTURE20","TEXTURE21","TEXTURE22","TEXTURE23","TEXTURE24","TEXTURE25","TEXTURE26","TEXTURE27","TEXTURE28","TEXTURE29","TEXTURE3","TEXTURE30","TEXTURE31","TEXTURE4","TEXTURE5","TEXTURE6","TEXTURE7","TEXTURE8","TEXTURE9","TEXTURE_2D","TEXTURE_BINDING_2D","TEXTURE_BINDING_CUBE_MAP","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Z","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_MAG_FILTER","TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXT_NODE","TIMEOUT","TIMEOUT_ERR","TOO_LARGE_ERR","TRANSACTION_INACTIVE_ERR","TRIANGLE","TRIANGLES","TRIANGLE_FAN","TRIANGLE_STRIP","TYPE_BACK_FORWARD","TYPE_ERR","TYPE_MISMATCH_ERR","TYPE_NAVIGATE","TYPE_RELOAD","TYPE_RESERVED","Text","TextDecoder","TextEncoder","TextEvent","TextMetrics","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TimeEvent","TimeRanges","Touch","TouchEvent","TouchList","TrackEvent","TransitionEvent","TreeWalker","TypeError","UIEvent","UNCACHED","UNKNOWN_ERR","UNKNOWN_RULE","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","UNORDERED_NODE_ITERATOR_TYPE","UNORDERED_NODE_SNAPSHOT_TYPE","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNSCHEDULED_STATE","UNSENT","UNSIGNED_BYTE","UNSIGNED_INT","UNSIGNED_SHORT","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","UNSPECIFIED_EVENT_TYPE_ERR","UPDATEREADY","URIError","URL","URLSearchParams","URLUnencoded","URL_MISMATCH_ERR","UTC","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","UserMessageHandler","UserMessageHandlersNamespace","UserProximityEvent","VALIDATE_STATUS","VALIDATION_ERR","VARIABLES_RULE","VENDOR","VERSION","VERSION_CHANGE","VERSION_ERR","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_SHADER","VERTICAL","VERTICAL_AXIS","VER_ERR","VIEWPORT","VIEWPORT_RULE","VTTCue","VTTRegion","ValidityState","VideoStreamTrack","WEBKIT_FILTER_RULE","WEBKIT_KEYFRAMES_RULE","WEBKIT_KEYFRAME_RULE","WEBKIT_REGION_RULE","WRONG_DOCUMENT_ERR","WaveShaperNode","WeakMap","WeakSet","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLRenderingContext","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArray","WebKitAnimationEvent","WebKitBlobBuilder","WebKitCSSFilterRule","WebKitCSSFilterValue","WebKitCSSKeyframeRule","WebKitCSSKeyframesRule","WebKitCSSMatrix","WebKitCSSRegionRule","WebKitCSSTransformValue","WebKitDataCue","WebKitGamepad","WebKitMediaKeyError","WebKitMediaKeyMessageEvent","WebKitMediaKeySession","WebKitMediaKeys","WebKitMediaSource","WebKitMutationObserver","WebKitNamespace","WebKitPlaybackTargetAvailabilityEvent","WebKitPoint","WebKitShadowRoot","WebKitSourceBuffer","WebKitSourceBufferList","WebKitTransitionEvent","WebSocket","WheelEvent","Window","Worker","XMLDocument","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestException","XMLHttpRequestProgressEvent","XMLHttpRequestUpload","XMLSerializer","XMLStylesheetProcessingInstruction","XPathEvaluator","XPathException","XPathExpression","XPathNSResolver","XPathResult","XSLTProcessor","ZERO","_XD0M_","_YD0M_","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","__opera","__proto__","_browserjsran","a","aLink","abbr","abort","abs","absolute","acceleration","accelerationIncludingGravity","accelerator","accept","acceptCharset","acceptNode","accessKey","accessKeyLabel","accuracy","acos","acosh","action","actionURL","active","activeCues","activeElement","activeSourceBuffers","activeSourceCount","activeTexture","add","addBehavior","addCandidate","addColorStop","addCue","addElement","addEventListener","addFilter","addFromString","addFromUri","addIceCandidate","addImport","addListener","addNamed","addPageRule","addPath","addPointer","addRange","addRegion","addRule","addSearchEngine","addSourceBuffer","addStream","addTextTrack","addTrack","addWakeLockListener","addedNodes","additionalName","additiveSymbols","addons","adoptNode","adr","advance","alert","algorithm","align","align-content","align-items","align-self","alignContent","alignItems","alignSelf","alignmentBaseline","alinkColor","all","allSettled","allowFullscreen","allowedDirections","alpha","alt","altGraphKey","altHtml","altKey","altLeft","altitude","altitudeAccuracy","amplitude","ancestorOrigins","anchor","anchorNode","anchorOffset","anchors","angle","animVal","animate","animatedInstanceRoot","animatedNormalizedPathSegList","animatedPathSegList","animatedPoints","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationStartTime","animationTimingFunction","animationsPaused","anniversary","any","app","appCodeName","appMinorVersion","appName","appNotifications","appVersion","append","appendBuffer","appendChild","appendData","appendItem","appendMedium","appendNamed","appendRule","appendStream","appendWindowEnd","appendWindowStart","applets","applicationCache","apply","applyElement","arc","arcTo","archive","areas","arguments","arrayBuffer","asin","asinh","assert","assign","async","atEnd","atan","atan2","atanh","atob","attachEvent","attachShader","attachShadow","attachments","attack","attrChange","attrName","attributeFilter","attributeName","attributeNamespace","attributeOldValue","attributes","audioTracks","autoIncrement","autobuffer","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","availHeight","availLeft","availTop","availWidth","availability","available","aversion","axes","axis","azimuth","b","back","backface-visibility","backfaceVisibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","badInput","balance","baseFrequencyX","baseFrequencyY","baseNode","baseOffset","baseURI","baseVal","baselineShift","battery","bday","beginElement","beginElementAt","beginPath","behavior","behaviorCookie","behaviorPart","behaviorUrns","beta","bezierCurveTo","bgColor","bgProperties","bias","big","binaryType","bind","bindAttribLocation","bindBuffer","bindFramebuffer","bindRenderbuffer","bindTexture","blendColor","blendEquation","blendEquationSeparate","blendFunc","blendFuncSeparate","blink","blob","blockDirection","blue","blur","body","bodyUsed","bold","bookmarks","booleanValue","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderCollapse","borderColor","borderColorDark","borderColorLight","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","bottomMargin","bound","boundElements","boundingClientRect","boundingHeight","boundingLeft","boundingTop","boundingWidth","bounds","box-decoration-break","box-shadow","box-sizing","boxDecorationBreak","boxShadow","boxSizing","breakAfter","breakBefore","breakInside","browserLanguage","btoa","bubbles","buffer","bufferData","bufferDepth","bufferSize","bufferSubData","buffered","bufferedAmount","buildID","buildNumber","button","buttonID","buttons","byteLength","byteOffset","c","call","caller","canBeFormatted","canBeMounted","canBeShared","canHaveChildren","canHaveHTML","canPlayType","cancel","cancelAnimationFrame","cancelBubble","cancelScheduledValues","cancelable","candidate","canvas","caption","caption-side","captionSide","capture","captureEvents","captureStackTrace","caretPositionFromPoint","caretRangeFromPoint","cast","catch","category","cbrt","cd","ceil","cellIndex","cellPadding","cellSpacing","cells","ch","chOff","chain","challenge","changedTouches","channel","channelCount","channelCountMode","channelInterpretation","char","charAt","charCode","charCodeAt","charIndex","characterData","characterDataOldValue","characterSet","charging","chargingTime","charset","checkEnclosure","checkFramebufferStatus","checkIntersection","checkValidity","checked","childElementCount","childList","childNodes","children","chrome","ciphertext","cite","classList","className","classid","clear","clearAttributes","clearColor","clearData","clearDepth","clearImmediate","clearInterval","clearMarks","clearMeasures","clearParameters","clearRect","clearResourceTimings","clearShadow","clearStencil","clearTimeout","clearWatch","click","clickCount","clientHeight","clientInformation","clientLeft","clientRect","clientRects","clientTop","clientWidth","clientX","clientY","clip","clip-path","clip-rule","clipBottom","clipLeft","clipPath","clipPathUnits","clipRight","clipRule","clipTop","clipboardData","clone","cloneContents","cloneNode","cloneRange","close","closePath","closed","closest","clz","clz32","cmp","code","codeBase","codePointAt","codeType","colSpan","collapse","collapseToEnd","collapseToStart","collapsed","collect","colno","color","color-interpolation","color-interpolation-filters","colorDepth","colorInterpolation","colorInterpolationFilters","colorMask","colorType","cols","columnCount","columnFill","columnGap","columnNumber","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","command","commitPreferences","commonAncestorContainer","compact","compareBoundaryPoints","compareDocumentPosition","compareEndPoints","compareNode","comparePoint","compatMode","compatible","compile","compileShader","complete","componentFromPoint","compositionEndOffset","compositionStartOffset","compressedTexImage2D","compressedTexSubImage2D","concat","conditionText","coneInnerAngle","coneOuterAngle","coneOuterGain","confirm","confirmComposition","confirmSiteSpecificTrackingException","confirmWebWideTrackingException","connect","connectEnd","connectStart","connected","connection","connectionSpeed","console","consolidate","constrictionActive","constructor","contactID","contains","containsNode","content","contentDocument","contentEditable","contentOverflow","contentScriptType","contentStyleType","contentType","contentWindow","context","contextMenu","contextmenu","continue","continuous","control","controller","controls","convertToSpecifiedUnits","cookie","cookieEnabled","coords","copyFromChannel","copyTexImage2D","copyTexSubImage2D","copyToChannel","copyWithin","correspondingElement","correspondingUseElement","cos","cosh","count","counter-increment","counter-reset","counterIncrement","counterReset","cpuClass","cpuSleepAllowed","create","createAnalyser","createAnswer","createAttribute","createAttributeNS","createBiquadFilter","createBuffer","createBufferSource","createCDATASection","createCSSStyleSheet","createCaption","createChannelMerger","createChannelSplitter","createComment","createContextualFragment","createControlRange","createConvolver","createDTMFSender","createDataChannel","createDelay","createDelayNode","createDocument","createDocumentFragment","createDocumentType","createDynamicsCompressor","createElement","createElementNS","createEntityReference","createEvent","createEventObject","createExpression","createFramebuffer","createFunction","createGain","createGainNode","createHTMLDocument","createImageBitmap","createImageData","createIndex","createJavaScriptNode","createLinearGradient","createMediaElementSource","createMediaKeys","createMediaStreamDestination","createMediaStreamSource","createMutableFile","createNSResolver","createNodeIterator","createNotification","createObjectStore","createObjectURL","createOffer","createOscillator","createPanner","createPattern","createPeriodicWave","createPopup","createProcessingInstruction","createProgram","createRadialGradient","createRange","createRangeCollection","createRenderbuffer","createSVGAngle","createSVGLength","createSVGMatrix","createSVGNumber","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegClosePath","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPoint","createSVGRect","createSVGTransform","createSVGTransformFromMatrix","createScriptProcessor","createSession","createShader","createShadowRoot","createStereoPanner","createStyleSheet","createTBody","createTFoot","createTHead","createTextNode","createTextRange","createTexture","createTouch","createTouchList","createTreeWalker","createWaveShaper","creationTime","crossOrigin","crypto","csi","cssFloat","cssRules","cssText","cssValueType","ctrlKey","ctrlLeft","cues","cullFace","currentNode","currentPage","currentScale","currentScript","currentSrc","currentState","currentStyle","currentTarget","currentTime","currentTranslate","currentView","cursor","curve","customError","cx","cy","d","data","dataFld","dataFormatAs","dataPageSize","dataSrc","dataTransfer","database","dataset","dateTime","db","debug","debuggerEnabled","declare","decode","decodeAudioData","decodeURI","decodeURIComponent","decodingInfo","decrypt","default","defaultCharset","defaultChecked","defaultMuted","defaultPlaybackRate","defaultPrevented","defaultSelected","defaultStatus","defaultURL","defaultValue","defaultView","defaultstatus","defer","defineMagicFunction","defineMagicVariable","defineProperties","defineProperty","delayTime","delete","deleteBuffer","deleteCaption","deleteCell","deleteContents","deleteData","deleteDatabase","deleteFramebuffer","deleteFromDocument","deleteIndex","deleteMedium","deleteObjectStore","deleteProgram","deleteRenderbuffer","deleteRow","deleteRule","deleteShader","deleteTFoot","deleteTHead","deleteTexture","deliverChangeRecords","delivery","deliveryInfo","deliveryStatus","deliveryTimestamp","delta","deltaMode","deltaX","deltaY","deltaZ","depthFunc","depthMask","depthRange","deriveBits","deriveKey","description","deselectAll","designMode","destination","destinationURL","detach","detachEvent","detachShader","detail","detune","devicePixelRatio","deviceXDPI","deviceYDPI","diffuseConstant","digest","dimensions","dir","dirName","direction","dirxml","disable","disableVertexAttribArray","disabled","dischargingTime","disconnect","dispatchEvent","display","distanceModel","divisor","djsapi","djsproxy","doImport","doNotTrack","doScroll","doctype","document","documentElement","documentMode","documentURI","dolphin","dolphinGameCenter","dolphininfo","dolphinmeta","domComplete","domContentLoadedEventEnd","domContentLoadedEventStart","domInteractive","domLoading","domain","domainLookupEnd","domainLookupStart","dominant-baseline","dominantBaseline","done","dopplerFactor","download","dragDrop","draggable","drawArrays","drawArraysInstancedANGLE","drawCustomFocusRing","drawElements","drawElementsInstancedANGLE","drawFocusIfNeeded","drawImage","drawImageFromRect","drawSystemFocusRing","drawingBufferHeight","drawingBufferWidth","dropEffect","droppedVideoFrames","dropzone","dump","duplicate","duration","dvname","dvnum","dx","dy","dynsrc","e","edgeMode","effectAllowed","elapsedTime","elementFromPoint","elements","elevation","ellipse","email","embeds","empty","empty-cells","emptyCells","enable","enableBackground","enableStyleSheetsForSet","enableVertexAttribArray","enabled","enabledPlugin","encode","encodeURI","encodeURIComponent","encoding","encrypt","enctype","end","endContainer","endElement","endElementAt","endOfStream","endOffset","endTime","ended","endsWith","entities","entries","entryType","enumerate","enumerateEditable","error","errorCode","escape","eval","evaluate","event","eventPhase","every","exception","exec","execCommand","execCommandShowHelp","execScript","exitFullscreen","exitPointerLock","exp","expand","expandEntityReferences","expando","expansion","expiryDate","explicitOriginalTarget","expm1","exponent","exponentialRampToValueAtTime","exportKey","extend","extensions","extentNode","extentOffset","external","externalResourcesRequired","extractContents","extractable","f","face","factoryReset","fallback","familyName","farthestViewportElement","fastSeek","fatal","fetch","fetchStart","fftSize","fgColor","fileCreatedDate","fileHandle","fileModifiedDate","fileName","fileSize","fileUpdatedDate","filename","files","fill","fill-opacity","fill-rule","fillOpacity","fillRect","fillRule","fillStyle","fillText","filter","filterResX","filterResY","filterUnits","filters","finally","find","findIndex","findRule","findText","finish","fireEvent","firstChild","firstElementChild","firstPage","fixed","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","flipX","flipY","float","flood-color","flood-opacity","floodColor","floodOpacity","floor","flush","focus","focusNode","focusOffset","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontSize","fontSizeAdjust","fontSmoothingEnabled","fontStretch","fontStyle","fontSynthesis","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontWeight","fontcolor","fonts","fontsize","for","forEach","forceRedraw","form","formAction","formEnctype","formMethod","formNoValidate","formTarget","format","formatToParts","forms","forward","fr","frame","frameBorder","frameElement","frameSpacing","framebufferRenderbuffer","framebufferTexture2D","frames","freeSpace","freeze","frequency","frequencyBinCount","from","fromCharCode","fromCodePoint","fromElement","frontFace","fround","fullScreen","fullscreenElement","fullscreenEnabled","fx","fy","gain","gamepad","gamma","genderIdentity","generateKey","generateMipmap","generateRequest","geolocation","gestureObject","get","getActiveAttrib","getActiveUniform","getAdjacentText","getAll","getAllResponseHeaders","getAsFile","getAsString","getAttachedShaders","getAttribLocation","getAttribute","getAttributeNS","getAttributeNode","getAttributeNodeNS","getAudioTracks","getBBox","getBattery","getBlob","getBookmark","getBoundingClientRect","getBufferParameter","getByteFrequencyData","getByteTimeDomainData","getCSSCanvasContext","getCTM","getCandidateWindowClientRect","getChannelData","getCharNumAtPosition","getClientRect","getClientRects","getCompositionAlternatives","getComputedStyle","getComputedTextLength","getConfiguration","getContext","getContextAttributes","getCounterValue","getCueAsHTML","getCueById","getCurrentPosition","getCurrentTime","getData","getDatabaseNames","getDate","getDay","getDefaultComputedStyle","getDestinationInsertionPoints","getDistributedNodes","getEditable","getElementById","getElementsByClassName","getElementsByName","getElementsByTagName","getElementsByTagNameNS","getEnclosureList","getEndPositionOfChar","getEntries","getEntriesByName","getEntriesByType","getError","getExtension","getExtentOfChar","getFeature","getFile","getFloat32","getFloat64","getFloatFrequencyData","getFloatTimeDomainData","getFloatValue","getFramebufferAttachmentParameter","getFrequencyResponse","getFullYear","getGamepads","getHours","getImageData","getInt16","getInt32","getInt8","getIntersectionList","getItem","getItems","getKey","getLineDash","getLocalStreams","getMarks","getMatchedCSSRules","getMeasures","getMetadata","getMilliseconds","getMinutes","getModifierState","getMonth","getNamedItem","getNamedItemNS","getNotifier","getNumberOfChars","getOverrideHistoryNavigationMode","getOverrideStyle","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getParameter","getPathSegAtLength","getPointAtLength","getPreference","getPreferenceDefault","getPresentationAttribute","getPreventDefault","getProgramInfoLog","getProgramParameter","getPropertyCSSValue","getPropertyPriority","getPropertyShorthand","getPropertyValue","getPrototypeOf","getRGBColorValue","getRandomValues","getRangeAt","getReceivers","getRectValue","getRegistration","getRemoteStreams","getRenderbufferParameter","getResponseHeader","getRoot","getRotationOfChar","getSVGDocument","getScreenCTM","getSeconds","getSelection","getSenders","getShaderInfoLog","getShaderParameter","getShaderPrecisionFormat","getShaderSource","getSimpleDuration","getSiteIcons","getSources","getSpeculativeParserUrls","getStartPositionOfChar","getStartTime","getStats","getStorageUpdates","getStreamById","getStringValue","getSubStringLength","getSubscription","getSupportedExtensions","getTexParameter","getTime","getTimezoneOffset","getTotalLength","getTrackById","getTracks","getTransformToElement","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getUint16","getUint32","getUint8","getUniform","getUniformLocation","getUserMedia","getValues","getVarDate","getVariableValue","getVertexAttrib","getVertexAttribOffset","getVideoPlaybackQuality","getVideoTracks","getWakeLockState","getYear","givenName","global","globalAlpha","globalCompositeOperation","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","go","gradientTransform","gradientUnits","grammars","green","group","groupCollapsed","groupEnd","hardwareConcurrency","has","hasAttribute","hasAttributeNS","hasAttributes","hasChildNodes","hasComposition","hasExtension","hasFeature","hasFocus","hasLayout","hasOwnProperty","hash","head","headers","heading","height","hidden","hide","hideFocus","high","hint","history","honorificPrefix","honorificSuffix","horizontalOverflow","host","hostname","href","hreflang","hspace","html5TagCheckInerface","htmlFor","htmlText","httpEquiv","hwTimestamp","hypot","iccId","iceConnectionState","iceGatheringState","icon","id","identifier","identity","ignoreBOM","ignoreCase","image-orientation","image-rendering","imageOrientation","imageRendering","images","ime-mode","imeMode","implementation","importKey","importNode","importStylesheet","imports","impp","imul","in1","in2","inBandMetadataTrackDispatchType","inRange","includes","incremental","indeterminate","index","indexNames","indexOf","indexedDB","inertiaDestinationX","inertiaDestinationY","info","init","initAnimationEvent","initBeforeLoadEvent","initClipboardEvent","initCloseEvent","initCommandEvent","initCompositionEvent","initCustomEvent","initData","initDeviceMotionEvent","initDeviceOrientationEvent","initDragEvent","initErrorEvent","initEvent","initFocusEvent","initGestureEvent","initHashChangeEvent","initKeyEvent","initKeyboardEvent","initMSManipulationEvent","initMessageEvent","initMouseEvent","initMouseScrollEvent","initMouseWheelEvent","initMutationEvent","initNSMouseEvent","initOverflowEvent","initPageEvent","initPageTransitionEvent","initPointerEvent","initPopStateEvent","initProgressEvent","initScrollAreaEvent","initSimpleGestureEvent","initStorageEvent","initTextEvent","initTimeEvent","initTouchEvent","initTransitionEvent","initUIEvent","initWebKitAnimationEvent","initWebKitTransitionEvent","initWebKitWheelEvent","initWheelEvent","initialTime","initialize","initiatorType","inner","innerHTML","innerHeight","innerText","innerWidth","input","inputBuffer","inputEncoding","inputMethod","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","insertCell","insertData","insertItemBefore","insertNode","insertRow","insertRule","instanceRoot","intercept","interimResults","internalSubset","intersectsNode","interval","invalidIteratorState","inverse","invertSelf","is","is2D","isAlternate","isArray","isBingCurrentSearchDefault","isBuffer","isCandidateWindowVisible","isChar","isCollapsed","isComposing","isContentEditable","isContentHandlerRegistered","isContextLost","isDefaultNamespace","isDisabled","isEnabled","isEqual","isEqualNode","isExtensible","isFinite","isFramebuffer","isFrozen","isGenerator","isId","isInjected","isInteger","isMap","isMultiLine","isNaN","isOpen","isPointInFill","isPointInPath","isPointInRange","isPointInStroke","isPrefAlternate","isPrimary","isProgram","isPropertyImplicit","isProtocolHandlerRegistered","isPrototypeOf","isRenderbuffer","isSafeInteger","isSameNode","isSealed","isShader","isSupported","isTextEdit","isTexture","isTrusted","isTypeSupported","isView","isolation","italics","item","itemId","itemProp","itemRef","itemScope","itemType","itemValue","iterateNext","iterator","javaEnabled","jobTitle","join","json","justify-content","justifyContent","k1","k2","k3","k4","kernelMatrix","kernelUnitLengthX","kernelUnitLengthY","kerning","key","keyCode","keyFor","keyIdentifier","keyLightEnabled","keyLocation","keyPath","keySystem","keyText","keyUsage","keys","keytype","kind","knee","label","labels","lang","language","languages","largeArcFlag","lastChild","lastElementChild","lastEventId","lastIndex","lastIndexOf","lastMatch","lastMessageSubject","lastMessageType","lastModified","lastModifiedDate","lastPage","lastParen","lastState","lastStyleSheetSet","latitude","layerX","layerY","layoutFlow","layoutGrid","layoutGridChar","layoutGridLine","layoutGridMode","layoutGridType","lbound","left","leftContext","leftMargin","length","lengthAdjust","lengthComputable","letter-spacing","letterSpacing","level","lighting-color","lightingColor","limitingConeAngle","line","line-height","lineAlign","lineBreak","lineCap","lineDashOffset","lineHeight","lineJoin","lineNumber","lineTo","lineWidth","linearRampToValueAtTime","lineno","link","linkColor","linkProgram","links","list","list-style","list-style-image","list-style-position","list-style-type","listStyle","listStyleImage","listStylePosition","listStyleType","listener","load","loadEventEnd","loadEventStart","loadTimes","loaded","localDescription","localName","localStorage","locale","localeCompare","location","locationbar","lock","lockedFile","log","log10","log1p","log2","logicalXDPI","logicalYDPI","longDesc","longitude","lookupNamespaceURI","lookupPrefix","loop","loopEnd","loopStart","looping","low","lower","lowerBound","lowerOpen","lowsrc","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","manifest","map","mapping","margin","margin-bottom","margin-left","margin-right","margin-top","marginBottom","marginHeight","marginLeft","marginRight","marginTop","marginWidth","mark","marker","marker-end","marker-mid","marker-offset","marker-start","markerEnd","markerHeight","markerMid","markerOffset","markerStart","markerUnits","markerWidth","marks","mask","mask-type","maskContentUnits","maskType","maskUnits","match","matchMedia","matchMedium","matches","matrix","matrixTransform","max","max-height","max-width","maxAlternatives","maxChannelCount","maxConnectionsPerServer","maxDecibels","maxDistance","maxHeight","maxLength","maxTouchPoints","maxValue","maxWidth","measure","measureText","media","mediaCapabilities","mediaDevices","mediaElement","mediaGroup","mediaKeys","mediaText","meetOrSlice","memory","menubar","mergeAttributes","message","messageClass","messageHandlers","metaKey","method","mimeType","mimeTypes","min","min-height","min-width","minDecibels","minHeight","minValue","minWidth","miterLimit","mix-blend-mode","mixBlendMode","mode","modify","mount","move","moveBy","moveEnd","moveFirst","moveFocusDown","moveFocusLeft","moveFocusRight","moveFocusUp","moveNext","moveRow","moveStart","moveTo","moveToBookmark","moveToElementText","moveToPoint","mozAdd","mozAnimationStartTime","mozAnon","mozApps","mozAudioCaptured","mozAudioChannelType","mozAutoplayEnabled","mozCancelAnimationFrame","mozCancelFullScreen","mozCancelRequestAnimationFrame","mozCaptureStream","mozCaptureStreamUntilEnded","mozClearDataAt","mozContact","mozContacts","mozCreateFileHandle","mozCurrentTransform","mozCurrentTransformInverse","mozCursor","mozDash","mozDashOffset","mozDecodedFrames","mozExitPointerLock","mozFillRule","mozFragmentEnd","mozFrameDelay","mozFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozGetAll","mozGetAllKeys","mozGetAsFile","mozGetDataAt","mozGetMetadata","mozGetUserMedia","mozHasAudio","mozHasItem","mozHidden","mozImageSmoothingEnabled","mozIndexedDB","mozInnerScreenX","mozInnerScreenY","mozInputSource","mozIsTextField","mozItem","mozItemCount","mozItems","mozLength","mozLockOrientation","mozMatchesSelector","mozMovementX","mozMovementY","mozOpaque","mozOrientation","mozPaintCount","mozPaintedFrames","mozParsedFrames","mozPay","mozPointerLockElement","mozPresentedFrames","mozPreservesPitch","mozPressure","mozPrintCallback","mozRTCIceCandidate","mozRTCPeerConnection","mozRTCSessionDescription","mozRemove","mozRequestAnimationFrame","mozRequestFullScreen","mozRequestPointerLock","mozSetDataAt","mozSetImageElement","mozSourceNode","mozSrcObject","mozSystem","mozTCPSocket","mozTextStyle","mozTypesAt","mozUnlockOrientation","mozUserCancelled","mozVisibilityState","msAnimation","msAnimationDelay","msAnimationDirection","msAnimationDuration","msAnimationFillMode","msAnimationIterationCount","msAnimationName","msAnimationPlayState","msAnimationStartTime","msAnimationTimingFunction","msBackfaceVisibility","msBlockProgression","msCSSOMElementFloatMetrics","msCaching","msCachingEnabled","msCancelRequestAnimationFrame","msCapsLockWarningOff","msClearImmediate","msClose","msContentZoomChaining","msContentZoomFactor","msContentZoomLimit","msContentZoomLimitMax","msContentZoomLimitMin","msContentZoomSnap","msContentZoomSnapPoints","msContentZoomSnapType","msContentZooming","msConvertURL","msCrypto","msDoNotTrack","msElementsFromPoint","msElementsFromRect","msExitFullscreen","msExtendedCode","msFillRule","msFirstPaint","msFlex","msFlexAlign","msFlexDirection","msFlexFlow","msFlexItemAlign","msFlexLinePack","msFlexNegative","msFlexOrder","msFlexPack","msFlexPositive","msFlexPreferredSize","msFlexWrap","msFlowFrom","msFlowInto","msFontFeatureSettings","msFullscreenElement","msFullscreenEnabled","msGetInputContext","msGetRegionContent","msGetUntransformedBounds","msGraphicsTrustStatus","msGridColumn","msGridColumnAlign","msGridColumnSpan","msGridColumns","msGridRow","msGridRowAlign","msGridRowSpan","msGridRows","msHidden","msHighContrastAdjust","msHyphenateLimitChars","msHyphenateLimitLines","msHyphenateLimitZone","msHyphens","msImageSmoothingEnabled","msImeAlign","msIndexedDB","msInterpolationMode","msIsStaticHTML","msKeySystem","msKeys","msLaunchUri","msLockOrientation","msManipulationViewsEnabled","msMatchMedia","msMatchesSelector","msMaxTouchPoints","msOrientation","msOverflowStyle","msPerspective","msPerspectiveOrigin","msPlayToDisabled","msPlayToPreferredSourceUri","msPlayToPrimary","msPointerEnabled","msRegionOverflow","msReleasePointerCapture","msRequestAnimationFrame","msRequestFullscreen","msSaveBlob","msSaveOrOpenBlob","msScrollChaining","msScrollLimit","msScrollLimitXMax","msScrollLimitXMin","msScrollLimitYMax","msScrollLimitYMin","msScrollRails","msScrollSnapPointsX","msScrollSnapPointsY","msScrollSnapType","msScrollSnapX","msScrollSnapY","msScrollTranslation","msSetImmediate","msSetMediaKeys","msSetPointerCapture","msTextCombineHorizontal","msTextSizeAdjust","msToBlob","msTouchAction","msTouchSelect","msTraceAsyncCallbackCompleted","msTraceAsyncCallbackStarting","msTraceAsyncOperationCompleted","msTraceAsyncOperationStarting","msTransform","msTransformOrigin","msTransformStyle","msTransition","msTransitionDelay","msTransitionDuration","msTransitionProperty","msTransitionTimingFunction","msUnlockOrientation","msUpdateAsyncCallbackRelation","msUserSelect","msVisibilityState","msWrapFlow","msWrapMargin","msWrapThrough","msWriteProfilerMark","msZoom","msZoomTo","mt","multiEntry","multiSelectionObj","multiline","multiple","multiply","multiplySelf","mutableFile","muted","n","name","nameProp","namedItem","namedRecordset","names","namespaceURI","namespaces","naturalHeight","naturalWidth","navigate","navigation","navigationMode","navigationStart","navigator","near","nearestViewportElement","negative","netscape","networkState","newScale","newTranslate","newURL","newValue","newValueSpecifiedUnits","newVersion","newhome","next","nextElementSibling","nextNode","nextPage","nextSibling","nickname","noHref","noResize","noShade","noValidate","noWrap","nodeName","nodeType","nodeValue","normalize","normalizedPathSegList","notationName","notations","note","noteGrainOn","noteOff","noteOn","now","numOctaves","number","numberOfChannels","numberOfInputs","numberOfItems","numberOfOutputs","numberValue","oMatchesSelector","object","object-fit","object-position","objectFit","objectPosition","objectStore","objectStoreNames","observe","of","offscreenBuffering","offset","offsetHeight","offsetLeft","offsetNode","offsetParent","offsetTop","offsetWidth","offsetX","offsetY","ok","oldURL","oldValue","oldVersion","olderShadowRoot","onLine","onabort","onactivate","onactive","onaddstream","onaddtrack","onafterprint","onafterscriptexecute","onafterupdate","onaudioend","onaudioprocess","onaudiostart","onautocomplete","onautocompleteerror","onbeforeactivate","onbeforecopy","onbeforecut","onbeforedeactivate","onbeforeeditfocus","onbeforepaste","onbeforeprint","onbeforescriptexecute","onbeforeunload","onbeforeupdate","onblocked","onblur","onbounce","onboundary","oncached","oncancel","oncandidatewindowhide","oncandidatewindowshow","oncandidatewindowupdate","oncanplay","oncanplaythrough","once","oncellchange","onchange","onchargingchange","onchargingtimechange","onchecking","onclick","onclose","oncompassneedscalibration","oncomplete","oncontextmenu","oncontrolselect","oncopy","oncuechange","oncut","ondataavailable","ondatachannel","ondatasetchanged","ondatasetcomplete","ondblclick","ondeactivate","ondevicelight","ondevicemotion","ondeviceorientation","ondeviceproximity","ondischargingtimechange","ondisplay","ondownloading","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onencrypted","onend","onended","onenter","onerror","onerrorupdate","onexit","onfilterchange","onfinish","onfocus","onfocusin","onfocusout","onfullscreenchange","onfullscreenerror","ongesturechange","ongestureend","ongesturestart","ongotpointercapture","onhashchange","onhelp","onicecandidate","oniceconnectionstatechange","oninactive","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onlayoutcomplete","onlevelchange","onload","onloadeddata","onloadedmetadata","onloadend","onloadstart","onlosecapture","onlostpointercapture","only","onmark","onmessage","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onmove","onmoveend","onmovestart","onmozfullscreenchange","onmozfullscreenerror","onmozorientationchange","onmozpointerlockchange","onmozpointerlockerror","onmscontentzoom","onmsfullscreenchange","onmsfullscreenerror","onmsgesturechange","onmsgesturedoubletap","onmsgestureend","onmsgesturehold","onmsgesturestart","onmsgesturetap","onmsgotpointercapture","onmsinertiastart","onmslostpointercapture","onmsmanipulationstatechanged","onmsneedkey","onmsorientationchange","onmspointercancel","onmspointerdown","onmspointerenter","onmspointerhover","onmspointerleave","onmspointermove","onmspointerout","onmspointerover","onmspointerup","onmssitemodejumplistitemremoved","onmsthumbnailclick","onnegotiationneeded","onnomatch","onnoupdate","onobsolete","onoffline","ononline","onopen","onorientationchange","onpagechange","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpluginstreamstart","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointerlockchange","onpointerlockerror","onpointermove","onpointerout","onpointerover","onpointerup","onpopstate","onprogress","onpropertychange","onratechange","onreadystatechange","onremovestream","onremovetrack","onreset","onresize","onresizeend","onresizestart","onresourcetimingbufferfull","onresult","onresume","onrowenter","onrowexit","onrowsdelete","onrowsinserted","onscroll","onsearch","onseeked","onseeking","onselect","onselectionchange","onselectstart","onshow","onsignalingstatechange","onsoundend","onsoundstart","onspeechend","onspeechstart","onstalled","onstart","onstatechange","onstop","onstorage","onstoragecommit","onsubmit","onsuccess","onsuspend","ontextinput","ontimeout","ontimeupdate","ontoggle","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontransitionend","onunload","onupdateready","onupgradeneeded","onuserproximity","onversionchange","onvoiceschanged","onvolumechange","onwaiting","onwarning","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkitcurrentplaybacktargetiswirelesschanged","onwebkitfullscreenchange","onwebkitfullscreenerror","onwebkitkeyadded","onwebkitkeyerror","onwebkitkeymessage","onwebkitneedkey","onwebkitorientationchange","onwebkitplaybacktargetavailabilitychanged","onwebkitpointerlockchange","onwebkitpointerlockerror","onwebkitresourcetimingbufferfull","onwebkittransitionend","onwheel","onzoom","opacity","open","openCursor","openDatabase","openKeyCursor","opener","opera","operationType","operator","opr","optimum","options","order","orderX","orderY","ordered","org","orient","orientAngle","orientType","orientation","origin","originalTarget","orphans","oscpu","outerHTML","outerHeight","outerText","outerWidth","outline","outline-color","outline-offset","outline-style","outline-width","outlineColor","outlineOffset","outlineStyle","outlineWidth","outputBuffer","overflow","overflow-x","overflow-y","overflowX","overflowY","overrideMimeType","oversample","ownerDocument","ownerElement","ownerNode","ownerRule","ownerSVGElement","owningElement","p1","p2","p3","p4","pad","padding","padding-bottom","padding-left","padding-right","padding-top","paddingBottom","paddingLeft","paddingRight","paddingTop","page","page-break-after","page-break-before","page-break-inside","pageBreakAfter","pageBreakBefore","pageBreakInside","pageCount","pageX","pageXOffset","pageY","pageYOffset","pages","paint-order","paintOrder","paintRequests","paintType","palette","panningModel","parent","parentElement","parentNode","parentRule","parentStyleSheet","parentTextEdit","parentWindow","parse","parseFloat","parseFromString","parseInt","participants","passive","password","pasteHTML","path","pathLength","pathSegList","pathSegType","pathSegTypeAsLetter","pathname","pattern","patternContentUnits","patternMismatch","patternTransform","patternUnits","pause","pauseAnimations","pauseOnExit","paused","pending","performance","permission","persisted","personalbar","perspective","perspective-origin","perspectiveOrigin","phoneticFamilyName","phoneticGivenName","photo","ping","pitch","pixelBottom","pixelDepth","pixelHeight","pixelLeft","pixelRight","pixelStorei","pixelTop","pixelUnitToMillimeterX","pixelUnitToMillimeterY","pixelWidth","placeholder","platform","play","playbackRate","playbackState","playbackTime","played","plugins","pluginspage","pname","pointer-events","pointerBeforeReferenceNode","pointerEnabled","pointerEvents","pointerId","pointerLockElement","pointerType","points","pointsAtX","pointsAtY","pointsAtZ","polygonOffset","pop","popupWindowFeatures","popupWindowName","popupWindowURI","port","port1","port2","ports","posBottom","posHeight","posLeft","posRight","posTop","posWidth","position","positionAlign","postError","postMessage","poster","pow","powerOff","preMultiplySelf","precision","preferredStyleSheetSet","preferredStylesheetSet","prefix","preload","prepend","preserveAlpha","preserveAspectRatio","preserveAspectRatioString","pressed","pressure","prevValue","preventDefault","preventExtensions","previousElementSibling","previousNode","previousPage","previousScale","previousSibling","previousTranslate","primaryKey","primitiveType","primitiveUnits","principals","print","privateKey","probablySupportsContext","process","processIceMessage","product","productSub","profile","profileEnd","profiles","prompt","properties","propertyIsEnumerable","propertyName","protocol","protocolLong","prototype","pseudoClass","pseudoElement","publicId","publicKey","published","push","pushNotification","pushState","put","putImageData","quadraticCurveTo","qualifier","queryCommandEnabled","queryCommandIndeterm","queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","querySelector","querySelectorAll","quote","quotes","r","r1","r2","race","radiogroup","radiusX","radiusY","random","range","rangeCount","rangeMax","rangeMin","rangeOffset","rangeOverflow","rangeParent","rangeUnderflow","rate","ratio","raw","read","readAsArrayBuffer","readAsBinaryString","readAsBlob","readAsDataURL","readAsText","readOnly","readPixels","readReportRequested","readyState","reason","reboot","receiver","receivers","recordNumber","recordset","rect","red","redirectCount","redirectEnd","redirectStart","reduce","reduceRight","reduction","refDistance","refX","refY","referenceNode","referrer","refresh","region","regionAnchorX","regionAnchorY","regionId","regions","register","registerContentHandler","registerElement","registerProtocolHandler","reject","rel","relList","relatedNode","relatedTarget","release","releaseCapture","releaseEvents","releasePointerCapture","releaseShaderCompiler","reliable","reload","remainingSpace","remoteDescription","remove","removeAllRanges","removeAttribute","removeAttributeNS","removeAttributeNode","removeBehavior","removeChild","removeCue","removeEventListener","removeFilter","removeImport","removeItem","removeListener","removeNamedItem","removeNamedItemNS","removeNode","removeParameter","removeProperty","removeRange","removeRegion","removeRule","removeSiteSpecificTrackingException","removeSourceBuffer","removeStream","removeTrack","removeVariable","removeWakeLockListener","removeWebWideTrackingException","removedNodes","renderbufferStorage","renderedBuffer","renderingMode","repeat","replace","replaceAdjacentText","replaceChild","replaceData","replaceId","replaceItem","replaceNode","replaceState","replaceTrack","replaceWholeText","reportValidity","requestAnimationFrame","requestAutocomplete","requestData","requestFullscreen","requestMediaKeySystemAccess","requestPermission","requestPointerLock","requestStart","requestingWindow","required","requiredExtensions","requiredFeatures","reset","resetTransform","resize","resizeBy","resizeTo","resolve","response","responseBody","responseEnd","responseStart","responseText","responseType","responseURL","responseXML","restore","result","resultType","resume","returnValue","rev","reverse","reversed","revocable","revokeObjectURL","rgbColor","right","rightContext","rightMargin","rolloffFactor","root","rootElement","rotate","rotateAxisAngle","rotateAxisAngleSelf","rotateFromVector","rotateFromVectorSelf","rotateSelf","rotation","rotationRate","round","rowIndex","rowSpan","rows","rubyAlign","rubyOverhang","rubyPosition","rules","runtime","runtimeStyle","rx","ry","safari","sampleCoverage","sampleRate","sandbox","save","scale","scale3d","scale3dSelf","scaleNonUniform","scaleNonUniformSelf","scaleSelf","scheme","scissor","scope","scopeName","scoped","screen","screenBrightness","screenEnabled","screenLeft","screenPixelToMillimeterX","screenPixelToMillimeterY","screenTop","screenX","screenY","scripts","scroll","scroll-behavior","scrollAmount","scrollBehavior","scrollBy","scrollByLines","scrollByPages","scrollDelay","scrollHeight","scrollIntoView","scrollIntoViewIfNeeded","scrollLeft","scrollLeftMax","scrollMaxX","scrollMaxY","scrollTo","scrollTop","scrollTopMax","scrollWidth","scrollX","scrollY","scrollbar3dLightColor","scrollbarArrowColor","scrollbarBaseColor","scrollbarDarkShadowColor","scrollbarFaceColor","scrollbarHighlightColor","scrollbarShadowColor","scrollbarTrackColor","scrollbars","scrolling","sdp","sdpMLineIndex","sdpMid","seal","search","searchBox","searchBoxJavaBridge_","searchParams","sectionRowIndex","secureConnectionStart","security","seed","seekable","seeking","select","selectAllChildren","selectNode","selectNodeContents","selectNodes","selectSingleNode","selectSubString","selected","selectedIndex","selectedOptions","selectedStyleSheetSet","selectedStylesheetSet","selection","selectionDirection","selectionEnd","selectionStart","selector","selectorText","self","send","sendAsBinary","sendBeacon","sender","sentTimestamp","separator","serializeToString","serviceWorker","sessionId","sessionStorage","set","setActive","setAlpha","setAttribute","setAttributeNS","setAttributeNode","setAttributeNodeNS","setBaseAndExtent","setBingCurrentSearchDefault","setCapture","setColor","setCompositeOperation","setCurrentTime","setCustomValidity","setData","setDate","setDragImage","setEnd","setEndAfter","setEndBefore","setEndPoint","setFillColor","setFilterRes","setFloat32","setFloat64","setFloatValue","setFullYear","setHours","setImmediate","setInt16","setInt32","setInt8","setInterval","setItem","setLineCap","setLineDash","setLineJoin","setLineWidth","setLocalDescription","setMatrix","setMatrixValue","setMediaKeys","setMilliseconds","setMinutes","setMiterLimit","setMonth","setNamedItem","setNamedItemNS","setNonUserCodeExceptions","setOrientToAngle","setOrientToAuto","setOrientation","setOverrideHistoryNavigationMode","setPaint","setParameter","setPeriodicWave","setPointerCapture","setPosition","setPreference","setProperty","setPrototypeOf","setRGBColor","setRGBColorICCColor","setRadius","setRangeText","setRemoteDescription","setRequestHeader","setResizable","setResourceTimingBufferSize","setRotate","setScale","setSeconds","setSelectionRange","setServerCertificate","setShadow","setSkewX","setSkewY","setStart","setStartAfter","setStartBefore","setStdDeviation","setStringValue","setStrokeColor","setSuggestResult","setTargetAtTime","setTargetValueAtTime","setTime","setTimeout","setTransform","setTranslate","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setUint16","setUint32","setUint8","setUri","setValueAtTime","setValueCurveAtTime","setVariable","setVelocity","setVersion","setYear","settingName","settingValue","sex","shaderSource","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","shadowRoot","shape","shape-rendering","shapeRendering","sheet","shift","shiftKey","shiftLeft","show","showHelp","showModal","showModalDialog","showModelessDialog","showNotification","sidebar","sign","signalingState","sin","singleNodeValue","sinh","size","sizeToContent","sizes","skewX","skewXSelf","skewY","skewYSelf","slice","slope","small","smil","smooth","smoothingTimeConstant","snapToLines","snapshotItem","snapshotLength","some","sort","source","sourceBuffer","sourceBuffers","sourceIndex","spacing","span","speakAs","speaking","specified","specularConstant","specularExponent","speechSynthesis","speed","speedOfSound","spellcheck","splice","split","splitText","spreadMethod","sqrt","src","srcElement","srcFilter","srcUrn","srcdoc","srclang","srcset","stack","stackTraceLimit","stacktrace","standalone","standby","start","startContainer","startIce","startOffset","startRendering","startTime","startsWith","state","status","statusMessage","statusText","statusbar","stdDeviationX","stdDeviationY","stencilFunc","stencilFuncSeparate","stencilMask","stencilMaskSeparate","stencilOp","stencilOpSeparate","step","stepDown","stepMismatch","stepUp","sticky","stitchTiles","stop","stop-color","stop-opacity","stopColor","stopImmediatePropagation","stopOpacity","stopPropagation","storageArea","storageName","storageStatus","storeSiteSpecificTrackingException","storeWebWideTrackingException","stpVersion","stream","strike","stringValue","stringify","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeRect","strokeStyle","strokeText","strokeWidth","style","styleFloat","styleMedia","styleSheet","styleSheetSets","styleSheets","sub","subarray","subject","submit","subscribe","substr","substring","substringData","subtle","subtree","suffix","suffixes","summary","sup","supports","surfaceScale","surroundContents","suspend","suspendRedraw","swapCache","swapNode","sweepFlag","symbols","system","systemCode","systemId","systemLanguage","systemXDPI","systemYDPI","tBodies","tFoot","tHead","tabIndex","table","table-layout","tableLayout","tableValues","tag","tagName","tagUrn","tags","taintEnabled","takeRecords","tan","tanh","target","targetElement","targetTouches","targetX","targetY","tel","terminate","test","texImage2D","texParameterf","texParameteri","texSubImage2D","text","text-align","text-anchor","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","textAlign","textAlignLast","textAnchor","textAutospace","textBaseline","textContent","textDecoration","textDecorationBlink","textDecorationColor","textDecorationLine","textDecorationLineThrough","textDecorationNone","textDecorationOverline","textDecorationStyle","textDecorationUnderline","textIndent","textJustify","textJustifyTrim","textKashida","textKashidaSpace","textLength","textOverflow","textRendering","textShadow","textTracks","textTransform","textUnderlinePosition","then","threadId","threshold","tiltX","tiltY","time","timeEnd","timeStamp","timeout","timestamp","timestampOffset","timing","title","toArray","toBlob","toDataURL","toDateString","toElement","toExponential","toFixed","toFloat32Array","toFloat64Array","toGMTString","toISOString","toJSON","toLocaleDateString","toLocaleFormat","toLocaleLowerCase","toLocaleString","toLocaleTimeString","toLocaleUpperCase","toLowerCase","toMethod","toPrecision","toSdp","toSource","toStaticHTML","toString","toStringTag","toTimeString","toUTCString","toUpperCase","toggle","toggleLongPressEnabled","tooLong","toolbar","top","topMargin","total","totalFrameDelay","totalVideoFrames","touchAction","touches","trace","track","transaction","transactions","transform","transform-origin","transform-style","transformOrigin","transformPoint","transformString","transformStyle","transformToDocument","transformToFragment","transition","transition-delay","transition-duration","transition-property","transition-timing-function","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","translate","translateSelf","translationX","translationY","trim","trimLeft","trimRight","trueSpeed","trunc","truncate","type","typeDetail","typeMismatch","typeMustMatch","types","ubound","undefined","unescape","uneval","unicode-bidi","unicodeBidi","uniform1f","uniform1fv","uniform1i","uniform1iv","uniform2f","uniform2fv","uniform2i","uniform2iv","uniform3f","uniform3fv","uniform3i","uniform3iv","uniform4f","uniform4fv","uniform4i","uniform4iv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","unique","uniqueID","uniqueNumber","unitType","units","unloadEventEnd","unloadEventStart","unlock","unmount","unobserve","unpause","unpauseAnimations","unreadCount","unregister","unregisterContentHandler","unregisterProtocolHandler","unscopables","unselectable","unshift","unsubscribe","unsuspendRedraw","unsuspendRedrawAll","unwatch","unwrapKey","update","updateCommands","updateIce","updateInterval","updateSettings","updated","updating","upload","upper","upperBound","upperOpen","uri","url","urn","urns","usages","useCurrentView","useMap","useProgram","usedSpace","userAgent","userLanguage","username","v8BreakIterator","vAlign","vLink","valid","validateProgram","validationMessage","validity","value","valueAsDate","valueAsNumber","valueAsString","valueInSpecifiedUnits","valueMissing","valueOf","valueText","valueType","values","vector-effect","vectorEffect","velocityAngular","velocityExpansion","velocityX","velocityY","vendor","vendorSub","verify","version","vertexAttrib1f","vertexAttrib1fv","vertexAttrib2f","vertexAttrib2fv","vertexAttrib3f","vertexAttrib3fv","vertexAttrib4f","vertexAttrib4fv","vertexAttribDivisorANGLE","vertexAttribPointer","vertical","vertical-align","verticalAlign","verticalOverflow","vibrate","videoHeight","videoTracks","videoWidth","view","viewBox","viewBoxString","viewTarget","viewTargetString","viewport","viewportAnchorX","viewportAnchorY","viewportElement","visibility","visibilityState","visible","vlinkColor","voice","volume","vrml","vspace","w","wand","warn","wasClean","watch","watchPosition","webdriver","webkitAddKey","webkitAnimation","webkitAnimationDelay","webkitAnimationDirection","webkitAnimationDuration","webkitAnimationFillMode","webkitAnimationIterationCount","webkitAnimationName","webkitAnimationPlayState","webkitAnimationTimingFunction","webkitAppearance","webkitAudioContext","webkitAudioDecodedByteCount","webkitAudioPannerNode","webkitBackfaceVisibility","webkitBackground","webkitBackgroundAttachment","webkitBackgroundClip","webkitBackgroundColor","webkitBackgroundImage","webkitBackgroundOrigin","webkitBackgroundPosition","webkitBackgroundPositionX","webkitBackgroundPositionY","webkitBackgroundRepeat","webkitBackgroundSize","webkitBackingStorePixelRatio","webkitBorderImage","webkitBorderImageOutset","webkitBorderImageRepeat","webkitBorderImageSlice","webkitBorderImageSource","webkitBorderImageWidth","webkitBoxAlign","webkitBoxDirection","webkitBoxFlex","webkitBoxOrdinalGroup","webkitBoxOrient","webkitBoxPack","webkitBoxSizing","webkitCancelAnimationFrame","webkitCancelFullScreen","webkitCancelKeyRequest","webkitCancelRequestAnimationFrame","webkitClearResourceTimings","webkitClosedCaptionsVisible","webkitConvertPointFromNodeToPage","webkitConvertPointFromPageToNode","webkitCreateShadowRoot","webkitCurrentFullScreenElement","webkitCurrentPlaybackTargetIsWireless","webkitDirectionInvertedFromDevice","webkitDisplayingFullscreen","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen","webkitExitPointerLock","webkitFullScreenKeyboardInputAllowed","webkitFullscreenElement","webkitFullscreenEnabled","webkitGenerateKeyRequest","webkitGetAsEntry","webkitGetDatabaseNames","webkitGetEntries","webkitGetEntriesByName","webkitGetEntriesByType","webkitGetFlowByName","webkitGetGamepads","webkitGetImageDataHD","webkitGetNamedFlows","webkitGetRegionFlowRanges","webkitGetUserMedia","webkitHasClosedCaptions","webkitHidden","webkitIDBCursor","webkitIDBDatabase","webkitIDBDatabaseError","webkitIDBDatabaseException","webkitIDBFactory","webkitIDBIndex","webkitIDBKeyRange","webkitIDBObjectStore","webkitIDBRequest","webkitIDBTransaction","webkitImageSmoothingEnabled","webkitIndexedDB","webkitInitMessageEvent","webkitIsFullScreen","webkitKeys","webkitLineDashOffset","webkitLockOrientation","webkitMatchesSelector","webkitMediaStream","webkitNotifications","webkitOfflineAudioContext","webkitOrientation","webkitPeerConnection00","webkitPersistentStorage","webkitPointerLockElement","webkitPostMessage","webkitPreservesPitch","webkitPutImageDataHD","webkitRTCPeerConnection","webkitRegionOverset","webkitRequestAnimationFrame","webkitRequestFileSystem","webkitRequestFullScreen","webkitRequestFullscreen","webkitRequestPointerLock","webkitResolveLocalFileSystemURL","webkitSetMediaKeys","webkitSetResourceTimingBufferSize","webkitShadowRoot","webkitShowPlaybackTargetPicker","webkitSlice","webkitSpeechGrammar","webkitSpeechGrammarList","webkitSpeechRecognition","webkitSpeechRecognitionError","webkitSpeechRecognitionEvent","webkitStorageInfo","webkitSupportsFullscreen","webkitTemporaryStorage","webkitTextSizeAdjust","webkitTransform","webkitTransformOrigin","webkitTransition","webkitTransitionDelay","webkitTransitionDuration","webkitTransitionProperty","webkitTransitionTimingFunction","webkitURL","webkitUnlockOrientation","webkitUserSelect","webkitVideoDecodedByteCount","webkitVisibilityState","webkitWirelessVideoPlaybackDisabled","webkitdropzone","webstore","weight","whatToShow","wheelDelta","wheelDeltaX","wheelDeltaY","which","white-space","whiteSpace","wholeText","widows","width","will-change","willChange","willValidate","window","withCredentials","word-break","word-spacing","word-wrap","wordBreak","wordSpacing","wordWrap","wrap","wrapKey","write","writeln","writingMode","x","x1","x2","xChannelSelector","xmlEncoding","xmlStandalone","xmlVersion","xmlbase","xmllang","xmlspace","y","y1","y2","yChannelSelector","yandex","z","z-index","zIndex","zoom","zoomAndPan","zoomRectScreen"]')},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesTransformer=void 0;const d=r(0),u=r(1),f=r(238),p=r(2),m=r(3),g=r(9),_=r(11),S=r(4);let h=o=class extends _.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.renamePropertiesReplacer=e}static isValidPropertyNode(e,t){return(!S.NodeGuards.isIdentifierNode(t)||!e.computed)&&(S.NodeGuards.isIdentifierNode(t)||S.NodeGuards.isLiteralNode(t))}getVisitor(e){switch(e){case g.NodeTransformationStage.RenameProperties:return{enter:(e,t)=>{if(t)return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isPropertyNode(e)?this.transformPropertyNode(e):S.NodeGuards.isMemberExpressionNode(e)?this.transformMemberExpressionNode(e):S.NodeGuards.isMethodDefinitionNode(e)?this.transformMethodDefinitionNode(e):e}transformPropertyNode(e){const t=e.key;return o.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t),e.shorthand=!1),e}transformMemberExpressionNode(e){const t=e.property;return o.isValidPropertyNode(e,t)&&(e.property=this.renamePropertiesReplacer.replace(t)),e}transformMethodDefinitionNode(e){const t=e.key;return o.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t)),e}};h=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IRenamePropertiesReplacer)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.IRenamePropertiesReplacer&&f.IRenamePropertiesReplacer)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],h),t.RenamePropertiesTransformer=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.storagesModule=void 0;const o=r(0),n=r(1),i=r(240),a=r(241),s=r(243);t.storagesModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.TCustomNodeGroupStorage).to(a.CustomCodeHelperGroupStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayStorage).to(s.StringArrayStorage).inSingletonScope(),e(n.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(i.ControlFlowStorage),e(n.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(e=>()=>{const t=new(e.container.get(n.ServiceIdentifiers.Newable__TControlFlowStorage))(e.container.get(n.ServiceIdentifiers.IRandomGenerator),e.container.get(n.ServiceIdentifiers.IOptions));return t.initialize(),t})})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorage=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(55);let p=class extends f.MapStorage{constructor(e,t){super(e,t)}};p=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],p),t.ControlFlowStorage=p},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroupStorage=void 0;const d=r(0),u=r(1),f=r(242),p=r(2),m=r(3),g=r(69),_=r(55);let S=o=class extends _.MapStorage{constructor(e,t,r){super(t,r),this.customCodeHelperGroupFactory=e}initialize(){super.initialize(),o.customCodeHelperGroupsList.forEach(e=>{const t=this.customCodeHelperGroupFactory(e);this.storage.set(e,t)})}};S.customCodeHelperGroupsList=[g.CustomCodeHelperGroup.ConsoleOutput,g.CustomCodeHelperGroup.DebugProtection,g.CustomCodeHelperGroup.DomainLock,g.CustomCodeHelperGroup.SelfDefending,g.CustomCodeHelperGroup.StringArray],s([d.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],S.prototype,"initialize",null),S=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperGroupFactory&&f.TCustomCodeHelperGroupFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],S),t.CustomCodeHelperGroupStorage=S},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorage=void 0;const p=r(0),m=r(1),g=r(5),_=r(36),S=r(51),h=r(39),N=r(2),y=r(3),b=r(28),O=r(55);let E=o=class extends O.MapStorage{constructor(e,t,r,n,i,a){super(r,n),this.rc4EncodedValuesSourcesCache=new Map,this.rotationAmount=0,this.identifierNamesGenerator=e(n),this.arrayUtils=t,this.cryptUtils=i,this.escapeSequenceEncoder=a,this.rc4Keys=this.randomGenerator.getRandomGenerator().n(()=>this.randomGenerator.getRandomGenerator().string({length:o.rc4KeyLength}),o.rc4KeysCount)}initialize(){super.initialize(),this.rotationAmount=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(o.minimumRotationAmount,o.maximumRotationAmount):0}get(e){return this.getOrSetIfDoesNotExist(e)}getRotationAmount(){return this.rotationAmount}getStorageName(){return this.getStorageId()}getStorageId(){return this.stringArrayStorageName||(this.stringArrayStorageName=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength)),this.stringArrayStorageName}getStorageCallsWrapperName(){return this.stringArrayStorageCallsWrapperName||(this.stringArrayStorageCallsWrapperName=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength)),this.stringArrayStorageCallsWrapperName}rotateStorage(){this.getLength()&&(this.storage=new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()),this.rotationAmount)))}shuffleStorage(){this.storage=new Map(this.arrayUtils.shuffle(Array.from(this.storage.entries())).map(([e,t],r)=>(t.index=r,[e,t])).sort(([,e],[,t])=>e.index-t.index))}toString(){return Array.from(this.storage.values()).map(e=>`'${this.escapeSequenceEncoder.encode(e.encodedValue,this.options.unicodeEscapeSequence)}'`).toString()}getOrSetIfDoesNotExist(e){const{encodedValue:t,decodeKey:r}=this.getEncodedValue(e),o=this.storage.get(t);if(o)return o;const n={encodedValue:t,decodeKey:r,value:e,index:this.getLength()};return this.storage.set(t,n),n}getEncodedValue(e){var t;switch(this.options.stringArrayEncoding){case b.StringArrayEncoding.Rc4:{const r=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),o=this.cryptUtils.btoa(this.cryptUtils.rc4(e,r)),n=null!==(t=this.rc4EncodedValuesSourcesCache.get(o))&&void 0!==t?t:[];let i=n.length;return(!i||!n.includes(e))&&(n.push(e),i++),this.rc4EncodedValuesSourcesCache.set(o,n),i>1?this.getEncodedValue(e):{encodedValue:o,decodeKey:r}}case b.StringArrayEncoding.Base64:{const t=null;return{encodedValue:this.cryptUtils.btoa(e),decodeKey:t}}default:return{encodedValue:e,decodeKey:null}}}};E.minimumRotationAmount=100,E.maximumRotationAmount=500,E.rc4KeyLength=4,E.rc4KeysCount=50,E.stringArrayNameLength=4,d([p.postConstruct(),u("design:type",Function),u("design:paramtypes",[]),u("design:returntype",void 0)],E.prototype,"initialize",null),E=o=d([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,p.inject(m.ServiceIdentifiers.IArrayUtils)),f(2,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(3,p.inject(m.ServiceIdentifiers.IOptions)),f(4,p.inject(m.ServiceIdentifiers.ICryptUtils)),f(5,p.inject(m.ServiceIdentifiers.IEscapeSequenceEncoder)),u("design:paramtypes",["function"==typeof(n=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==_.IArrayUtils&&_.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object,"function"==typeof(c=void 0!==S.ICryptUtils&&S.ICryptUtils)?c:Object,"function"==typeof(l=void 0!==h.IEscapeSequenceEncoder&&h.IEscapeSequenceEncoder)?l:Object])],E),t.StringArrayStorage=E},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.utilsModule=void 0;const o=r(0),n=r(1),i=r(245),a=r(246),s=r(250),c=r(251),l=r(77);t.utilsModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.IArrayUtils).to(i.ArrayUtils).inSingletonScope(),e(n.ServiceIdentifiers.IRandomGenerator).to(l.RandomGenerator).inSingletonScope(),e(n.ServiceIdentifiers.ICryptUtils).to(a.CryptUtils).inSingletonScope(),e(n.ServiceIdentifiers.IEscapeSequenceEncoder).to(s.EscapeSequenceEncoder).inSingletonScope(),e(n.ServiceIdentifiers.ILevelledTopologicalSorter).to(c.LevelledTopologicalSorter)})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayUtils=void 0;const s=r(0),c=r(1),l=r(3);let d=class{constructor(e){this.randomGenerator=e}createWithRange(e){const t=[];for(let r=0;rn&&(o=i,n=e),r[i]=e}return o}rotate(e,t){if(!e.length)throw new ReferenceError("Cannot rotate empty array.");if(t<=0)return e;const r=e;let o;for(;t--;)o=r.pop(),o&&r.unshift(o);return r}shuffle(e){const t=[...e];for(let e=t.length;e;e--){const r=Math.floor(this.randomGenerator.getMathRandom()*e);[t[e-1],t[r]]=[t[r],t[e-1]]}return t}};d=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object])],d),t.ArrayUtils=d},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtils=void 0;const s=r(0),c=r(1),l=r(3),d=r(40),u=r(33),f=r(52),p=r(77),m=r(26);let g=class{constructor(e){this.randomGenerator=e}btoa(e){const t=`${d.alphabetStringUppercase}${u.alphabetString}${f.numbersString}+/=`;let r="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(`${m.Utils.hexadecimalPrefix}${t}`,16)));for(let o,n,i=0,a=t;e.charAt(0|i)||(a="=",i%1);r+=a.charAt(63&o>>8-i%1*8)){if(n=e.charCodeAt(i+=3/4),n>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");o=o<<8|n}return r}hideString(e,t){let r=this.randomGenerator.getRandomGenerator().string({length:t,pool:p.RandomGenerator.randomGeneratorPool}).replace(new RegExp(`[${o=e,o.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}]`,"g"),"");var o;const n=r.split("");return this.randomGenerator.getRandomGenerator().shuffle(n),r=n.join(""),[((e,t)=>{let r=-1,o=-1,n="";for(;r=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceEncoder=void 0;let n=class{constructor(){this.stringsCache=new Map}encode(e,t){const r=`${e}-${String(t)}`;if(this.stringsCache.has(r))return this.stringsCache.get(r);const o=new RegExp("[\\s\\S]","g"),n=new RegExp("['\"\\\\\\s]"),i=new RegExp("[\\x00-\\x7F]");let a,s;const c=e.replace(o,e=>t||n.exec(e)?(i.exec(e)?(a="\\x",s="00"):(a="\\u",s="0000"),`${a}${(s+e.charCodeAt(0).toString(16)).slice(-s.length)}`):e);return this.stringsCache.set(r,c),this.stringsCache.set(`${c}-${String(t)}`,c),c}};n=o([r(0).injectable()],n),t.EscapeSequenceEncoder=n},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.LevelledTopologicalSorter=void 0;let n=class{constructor(){this.graph=new Map}add(e,t=null){return null!==t?this.link(e,t):this.register(e)}sort(){const e=Array.from(this.graph.keys()),t=[],r={};for(const o of e)void 0===r[o]&&this.visit(t,r,o);return t}sortByGroups(){this.sort();const e=[];for(;this.hasNodes();){const t=this.findRootNodes();e.push(t);for(const e of t)this.delete(e)}return e}delete(e){if(this.getPrecedents(e).length)throw new Error(`Unable to remove non-root node: ${e}`);this.graph.delete(e);const t=Array.from(this.graph.values());for(const r of t){for(let t=r.length-1;t>=0;t-=1)r[t]===e&&r.splice(t,1)}}findRootNodes(){const e=Array.from(this.graph.keys()),t=[];for(const r of e)this.hasPrecedents(r)||t.push(r);return t}getPrecedents(e){const t=this.graph.get(e);if(!t)throw new Error(`Unknown node: ${e}`);return t}hasNodes(){return this.graph.size>0}hasPrecedents(e){return this.getPrecedents(e).length>0}link(e,t){this.register(e),this.register(t);const r=this.graph.get(t);return r&&!r.includes(e)&&r.push(e),this}register(e){return this.graph.has(e)||this.graph.set(e,[]),this}visit(e,t,r){const o=t[r];if("visiting"===o)throw new Error(`Detected cycle involving node: ${r}`);if(o)return;t[r]="visiting";const n=this.getPrecedents(r);for(const r of n)this.visit(e,t,r);t[r]="ok",e.push(r)}};n=o([r(0).injectable()],n),t.LevelledTopologicalSorter=n},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformersRunner=void 0;const c=r(0),l=r(1),d=r(253),u=r(78);let f=class{constructor(e,t){this.codeTransformerFactory=e,this.codeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const o=this.buildNormalizedCodeTransformers(t,r),n=this.codeTransformerNamesGroupsBuilder.build(o);for(const t of n)for(const n of t){e=o[n].transformCode(e,r)}return e}buildNormalizedCodeTransformers(e,t){return e.reduce((e,t)=>{const r=this.codeTransformerFactory(t);return Object.assign(Object.assign({},e),{[t]:r})},{})}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.Factory__ICodeTransformer)),s(1,c.inject(l.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),a("design:paramtypes",["function"==typeof(o=void 0!==d.TCodeTransformerFactory&&d.TCodeTransformerFactory)?o:Object,"function"==typeof(n=void 0!==u.ITransformerNamesGroupsBuilder&&u.ITransformerNamesGroupsBuilder)?n:Object])],f),t.CodeTransformersRunner=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),f=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},p=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&d(t,e,r);return u(t,e),t},m=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},g=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0;const _=r(0),S=r(1),h=p(r(50)),N=r(255),y=r(256),b=r(257),O=r(2),E=r(3),I=r(65),C=r(58),v=r(60),T=r(258),R=r(13),M=r(9),A=r(47),F=r(63),j=r(4),D=r(26);let P=o=class{constructor(e,t,r,o,n,i){this.codeTransformersRunner=e,this.nodeTransformersRunner=t,this.randomGenerator=r,this.obfuscatedCodeFactory=o,this.logger=n,this.options=i}obfuscate(e){"string"!=typeof e&&(e="");const t=Date.now();this.logger.info(T.LoggingMessage.Version,D.Utils.buildVersionMessage("1.3.0",1593340838479)),this.logger.info(T.LoggingMessage.ObfuscationStarted),this.logger.info(T.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getInputSeed()),e=this.runCodeTransformationStage(e,v.CodeTransformationStage.PreparingTransformers);const r=this.parseCode(e),o=this.transformAstTree(r),n=this.generateCode(e,o);n.code=this.runCodeTransformationStage(n.code,v.CodeTransformationStage.FinalizingTransformers);const i=(Date.now()-t)/1e3;return this.logger.success(T.LoggingMessage.ObfuscationCompleted,i),this.getObfuscatedCode(n)}parseCode(e){return F.ASTParserFacade.parse(e,o.parseOptions)}transformAstTree(e){return e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Initializing),!j.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.ControlFlowFlattening)),this.options.renameProperties&&(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.RenameProperties)),e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Converting),e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Obfuscating),this.options.minify&&(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Minification)),e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Finalizing)):(this.logger.warn(T.LoggingMessage.EmptySourceCode),e)}generateCode(e,t){const r=Object.assign({},o.escodegenParams);this.options.sourceMap&&(r.sourceMap=this.options.inputFileName||"sourceMap",r.sourceContent=e);const n=h.generate(t,Object.assign(Object.assign({},r),{format:{compact:this.options.compact}}));return n.map=n.map?n.map.toString():"",n}getObfuscatedCode(e){return this.obfuscatedCodeFactory(e.code,e.map)}runCodeTransformationStage(e,t){return this.logger.info(T.LoggingMessage.CodeTransformationStage,t),this.codeTransformersRunner.transform(e,o.codeTransformersList,t)}runNodeTransformationStage(e,t){return this.logger.info(T.LoggingMessage.NodeTransformationStage,t),this.nodeTransformersRunner.transform(e,o.nodeTransformersList,t)}};P.parseOptions={ecmaVersion:A.ecmaVersion,allowHashBang:!0,allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,locations:!0,ranges:!0},P.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},P.codeTransformersList=[C.CodeTransformer.HashbangOperatorTransformer],P.nodeTransformersList=[R.NodeTransformer.BlockStatementControlFlowTransformer,R.NodeTransformer.CommentsTransformer,R.NodeTransformer.CustomCodeHelpersTransformer,R.NodeTransformer.DeadCodeInjectionTransformer,R.NodeTransformer.EvalCallExpressionTransformer,R.NodeTransformer.FunctionControlFlowTransformer,R.NodeTransformer.IfStatementSimplifyTransformer,R.NodeTransformer.LabeledStatementTransformer,R.NodeTransformer.LiteralTransformer,R.NodeTransformer.RenamePropertiesTransformer,R.NodeTransformer.MemberExpressionTransformer,R.NodeTransformer.MetadataTransformer,R.NodeTransformer.MethodDefinitionTransformer,R.NodeTransformer.ObfuscatingGuardsTransformer,R.NodeTransformer.ObjectExpressionKeysTransformer,R.NodeTransformer.ObjectExpressionTransformer,R.NodeTransformer.ParentificationTransformer,R.NodeTransformer.ScopeIdentifiersTransformer,R.NodeTransformer.SplitStringTransformer,R.NodeTransformer.TemplateLiteralTransformer,R.NodeTransformer.VariableDeclarationsMergeTransformer,R.NodeTransformer.VariablePreserveTransformer],P=o=f([_.injectable(),g(0,_.inject(S.ServiceIdentifiers.ICodeTransformersRunner)),g(1,_.inject(S.ServiceIdentifiers.INodeTransformersRunner)),g(2,_.inject(S.ServiceIdentifiers.IRandomGenerator)),g(3,_.inject(S.ServiceIdentifiers.Factory__IObfuscatedCode)),g(4,_.inject(S.ServiceIdentifiers.ILogger)),g(5,_.inject(S.ServiceIdentifiers.IOptions)),m("design:paramtypes",["function"==typeof(n=void 0!==y.ICodeTransformersRunner&&y.ICodeTransformersRunner)?n:Object,"function"==typeof(i=void 0!==I.INodeTransformersRunner&&I.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==E.IRandomGenerator&&E.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.TObfuscatedCodeFactory&&N.TObfuscatedCodeFactory)?s:Object,"function"==typeof(c=void 0!==b.ILogger&&b.ILogger)?c:Object,"function"==typeof(l=void 0!==O.IOptions&&O.IOptions)?l:Object])],P),t.JavaScriptObfuscator=P},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingMessage=void 0,function(e){e.EmptySourceCode="Empty source code. Obfuscation canceled...",e.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",e.ObfuscationStarted="Obfuscation started...",e.RandomGeneratorSeed="Random generator seed: %s...",e.CodeTransformationStage="Code transformation stage: %s...",e.NodeTransformationStage="AST transformation stage: %s...",e.Version="Version: %s"}(t.LoggingMessage||(t.LoggingMessage={}))},function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformersRunner=void 0;const u=r(0),f=r(1),p=c(r(12)),m=r(260),g=r(78),_=r(261),S=r(4),h=r(19);let N=class{constructor(e,t){this.nodeTransformerFactory=e,this.nodeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const o=this.buildNormalizedNodeTransformers(t,r),n=this.nodeTransformerNamesGroupsBuilder.build(o);for(const t of n){const n=[],i=[];for(const e of t){const t=o[e].getVisitor(r);t&&(t.enter&&n.push({enter:t.enter}),t.leave&&i.push({leave:t.leave}))}(n.length||i.length)&&p.replace(e,{enter:this.mergeVisitorsForDirection(n,_.VisitorDirection.Enter),leave:this.mergeVisitorsForDirection(i,_.VisitorDirection.Leave)})}return e}buildNormalizedNodeTransformers(e,t){return e.reduce((e,r)=>{const o=this.nodeTransformerFactory(r);return o.getVisitor(t)?Object.assign(Object.assign({},e),{[r]:o}):e},{})}mergeVisitorsForDirection(e,t){const r=e.length;return r?(o,n)=>{if(h.NodeMetadata.isIgnoredNode(o))return p.VisitorOption.Skip;for(let i=0;ie}};N=s([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__INodeTransformer)),d(1,u.inject(f.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),l("design:paramtypes",["function"==typeof(o=void 0!==m.TNodeTransformerFactory&&m.TNodeTransformerFactory)?o:Object,"function"==typeof(n=void 0!==g.ITransformerNamesGroupsBuilder&&g.ITransformerNamesGroupsBuilder)?n:Object])],N),t.NodeTransformersRunner=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VisitorDirection=void 0,function(e){e.Enter="enter",e.Leave="leave"}(t.VisitorDirection||(t.VisitorDirection={}))},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEventEmitter=void 0;const i=r(0),a=n(r(263));i.decorate(i.injectable(),a.default);let s=class extends a.default{};s=o([i.injectable()],s),t.ObfuscationEventEmitter=s},function(e,t){e.exports=require("eventemitter3")},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatedCode=void 0;const c=r(0),l=r(1),d=r(51),u=r(8),f=r(32),p=r(2);let m=class{constructor(e,t){this.cryptUtils=e,this.options=t}initialize(e,t){this.obfuscatedCode=e,this.sourceMap=t}getObfuscatedCode(){return this.correctObfuscatedCode()}getSourceMap(){return this.sourceMap}toString(){return this.obfuscatedCode}correctObfuscatedCode(){if(!this.sourceMap)return this.obfuscatedCode;const e=this.options.sourceMapBaseUrl+this.options.sourceMapFileName;let t="//# sourceMappingURL=";switch(this.options.sourceMapMode){case f.SourceMapMode.Inline:t+=`data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`;break;case f.SourceMapMode.Separate:default:if(!e)return this.obfuscatedCode;t+=e}return`${this.obfuscatedCode}\n${t}`}};i([u.initializable(),a("design:type",String)],m.prototype,"obfuscatedCode",void 0),i([u.initializable(),a("design:type",String)],m.prototype,"sourceMap",void 0),m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.ICryptUtils)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.ICryptUtils&&d.ICryptUtils)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object])],m),t.ObfuscatedCode=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceCode=void 0;t.SourceCode=class{constructor(e,t){this.sourceCode=e,this.sourceMap=t}getSourceCode(){return this.sourceCode}getSourceMap(){return this.sourceMap}toString(){return this.sourceCode}}},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscatorCLI=void 0;const f=d(r(272)),p=d(r(267)),m=r(273),g=r(8),_=r(81),S=r(32),h=r(44),N=r(274),y=r(275),b=r(276),O=r(277),E=r(278),I=r(279),C=r(280),v=r(56),T=r(80),R=r(282),M=r(284),A=r(26);class F{constructor(e){this.rawArguments=e,this.arguments=e.slice(2)}static buildOptions(e){const t=F.filterOptions(e),r=e.config,o=r?p.resolve(r,"."):"",n=o?C.CLIUtils.getUserConfig(o):{};return Object.assign(Object.assign(Object.assign({},h.DEFAULT_PRESET),n),t)}static filterOptions(e){const t={};return Object.keys(e).forEach(r=>{void 0!==e[r]&&(t[r]=e[r])}),t}initialize(){this.inputPath=p.normalize(this.arguments[0]||""),this.commands=new f.Command,this.configureCommands(),this.configureHelp(),this.inputCLIOptions=F.buildOptions(this.commands.opts()),this.sourceCodeReader=new M.SourceCodeReader(this.inputPath,this.inputCLIOptions),this.obfuscatedCodeWriter=new R.ObfuscatedCodeWriter(this.inputPath,this.inputCLIOptions)}run(){if(!this.arguments.length||this.arguments.includes("--help"))return void this.commands.outputHelp();const e=this.sourceCodeReader.readSourceCode();this.processSourceCodeData(e)}configureCommands(){this.commands.usage(" [options]").version(A.Utils.buildVersionMessage("1.3.0",1593340838479),"-v, --version").option("-o, --output ","Output path for obfuscated code").option("--compact ","Disable one line output code compacting",y.BooleanSanitizer).option("--config ","Name of js / json config file").option("--control-flow-flattening ","Enables control flow flattening",y.BooleanSanitizer).option("--control-flow-flattening-threshold ","The probability that the control flow flattening transformation will be applied to the node",parseFloat).option("--dead-code-injection ","Enables dead code injection",y.BooleanSanitizer).option("--dead-code-injection-threshold ","The probability that the dead code injection transformation will be applied to the node",parseFloat).option("--debug-protection ","Disable browser Debug panel (can cause DevTools enabled browser freeze)",y.BooleanSanitizer).option("--debug-protection-interval ","Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)",y.BooleanSanitizer).option("--disable-console-output ","Allow console.log, console.info, console.error and console.warn messages output into browser console",y.BooleanSanitizer).option("--domain-lock (comma separated, without whitespaces)","Blocks the execution of the code in domains that do not match the passed RegExp patterns (comma separated)",N.ArraySanitizer).option("--exclude (comma separated, without whitespaces)","A filename or glob which indicates files to exclude from obfuscation",N.ArraySanitizer).option("--identifier-names-generator ","Sets identifier names generator. Values: hexadecimal, mangled, dictionary. Default: hexadecimal",b.IdentifierNamesGeneratorSanitizer).option("--identifiers-prefix ","Sets prefix for all global identifiers").option("--identifiers-dictionary (comma separated, without whitespaces)","Identifiers dictionary (comma separated) for `--identifier-names-generator dictionary` option",N.ArraySanitizer).option("--log ","Enables logging of the information to the console",y.BooleanSanitizer).option("--minify ","Enables code minification",y.BooleanSanitizer).option("--reserved-names (comma separated, without whitespaces)","Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)",N.ArraySanitizer).option("--reserved-strings (comma separated, without whitespaces)","Disables transformation of string literals, which being matched by passed RegExp patterns (comma separated)",N.ArraySanitizer).option("--rename-globals ","Allows to enable obfuscation of global variable and function names with declaration",y.BooleanSanitizer).option("--rename-properties ","UNSAFE: Enables renaming of property names. This probably WILL break your code",y.BooleanSanitizer).option("--rotate-string-array ","Enable rotation of string array values during obfuscation",y.BooleanSanitizer).option("--seed ","Sets seed for random generator. This is useful for creating repeatable results.",parseFloat).option("--self-defending ","Disables self-defending for obfuscated code",y.BooleanSanitizer).option("--shuffle-string-array ","Randomly shuffles string array items",y.BooleanSanitizer).option("--source-map ","Enables source map generation",y.BooleanSanitizer).option("--source-map-base-url ","Sets base url to the source map import url when `--source-map-mode=separate`").option("--source-map-file-name ","Sets file name for output source map when `--source-map-mode=separate`").option("--source-map-mode ","Specify source map output mode. Values: inline, separate. Default: separate",E.SourceMapModeSanitizer).option("--split-strings ","Splits literal strings into chunks with length of `splitStringsChunkLength` option value",y.BooleanSanitizer).option("--split-strings-chunk-length ","Sets chunk length of `splitStrings` option",parseFloat).option("--string-array ","Disables gathering of all literal strings into an array and replacing every literal string with an array call",y.BooleanSanitizer).option("--string-array-encoding ","Encodes all strings in strings array using base64 or rc4 (this option can slow down your code speed. Values: true, false, base64, rc4. Default: false",I.StringArrayEncodingSanitizer).option("--string-array-threshold ","The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)",parseFloat).option("--target ","Allows to set target environment for obfuscated code. Values: browser, browser-no-eval, node. Default: browser",O.ObfuscationTargetSanitizer).option("--transform-object-keys ","Enables transformation of object keys",y.BooleanSanitizer).option("--unicode-escape-sequence ","Allows to enable/disable string conversion to unicode escape sequence",y.BooleanSanitizer).parse(this.rawArguments)}configureHelp(){this.commands.on("--help",()=>{console.log(" Examples:\n"),console.log(" %> javascript-obfuscator input_file_name.js --compact true --self-defending false"),console.log(" %> javascript-obfuscator input_file_name.js --output output_file_name.js --compact true --self-defending false"),console.log(" %> javascript-obfuscator input_directory_name --compact true --self-defending false"),console.log("")})}processSourceCodeData(e){e.forEach(({filePath:e,content:t},r)=>{const o=this.obfuscatedCodeWriter.getOutputCodePath(e);try{T.Logger.log(T.Logger.colorInfo,_.LoggingPrefix.CLI,`Obfuscating file: ${e}...`),this.processSourceCode(t,e,o,r)}catch(t){throw T.Logger.log(T.Logger.colorInfo,_.LoggingPrefix.CLI,`Error in file: ${e}...`),t}})}processSourceCode(e,t,r,o){const n=Object.assign(Object.assign(Object.assign({},this.inputCLIOptions),{inputFileName:p.basename(t)}),null!==o&&{identifiersPrefix:A.Utils.getIdentifiersPrefixForMultipleSources(this.inputCLIOptions.identifiersPrefix,o)});n.sourceMap?this.processSourceCodeWithSourceMap(e,r,n):this.processSourceCodeWithoutSourceMap(e,r,n)}processSourceCodeWithoutSourceMap(e,t,r){const o=v.JavaScriptObfuscator.obfuscate(e,r).getObfuscatedCode();this.obfuscatedCodeWriter.writeFile(t,o)}processSourceCodeWithSourceMap(e,t,r){var o;const n=this.obfuscatedCodeWriter.getOutputSourceMapPath(t,null!==(o=r.sourceMapFileName)&&void 0!==o?o:"");r=Object.assign(Object.assign({},r),{sourceMapFileName:p.basename(n)});const i=v.JavaScriptObfuscator.obfuscate(e,r);this.obfuscatedCodeWriter.writeFile(t,i.getObfuscatedCode()),r.sourceMapMode===S.SourceMapMode.Separate&&i.getSourceMap()&&this.obfuscatedCodeWriter.writeFile(n,i.getSourceMap())}}F.availableInputExtensions=[".js"],F.encoding="utf8",F.obfuscatedFilePrefix="-obfuscated",l([g.initializable(),u("design:type","function"==typeof(o=void 0!==f&&f.CommanderStatic)?o:Object)],F.prototype,"commands",void 0),l([g.initializable(),u("design:type","function"==typeof(n=void 0!==m.TInputCLIOptions&&m.TInputCLIOptions)?n:Object)],F.prototype,"inputCLIOptions",void 0),l([g.initializable(),u("design:type",String)],F.prototype,"inputPath",void 0),l([g.initializable(),u("design:type","function"==typeof(i=void 0!==M.SourceCodeReader&&M.SourceCodeReader)?i:Object)],F.prototype,"sourceCodeReader",void 0),l([g.initializable(),u("design:type","function"==typeof(a=void 0!==R.ObfuscatedCodeWriter&&R.ObfuscatedCodeWriter)?a:Object)],F.prototype,"obfuscatedCodeWriter",void 0),t.JavaScriptObfuscatorCLI=F},function(e,t){e.exports=require("path")},function(e,t){e.exports=require("fs")},,function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const o=r(271);e.exports=o.JavaScriptObfuscatorCLI},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscatorCLI=void 0,r(79);const o=r(266);t.JavaScriptObfuscatorCLI=class{static obfuscate(e){const t=new o.JavaScriptObfuscatorCLI(e);t.initialize(),t.run()}}},function(e,t){e.exports=require("commander")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ArraySanitizer=void 0,t.ArraySanitizer=e=>{if(e.endsWith(","))throw new SyntaxError("Multiple values should be wrapped inside quotes: --option-name 'value1','value2'");return e.split(",").map(e=>e.trim())}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanSanitizer=void 0,t.BooleanSanitizer=e=>"true"===e||"1"===e},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesGeneratorSanitizer=void 0;const o=r(34);t.IdentifierNamesGeneratorSanitizer=e=>{if(!Object.keys(o.IdentifierNamesGenerator).some(t=>o.IdentifierNamesGenerator[t]===e))throw new ReferenceError("Invalid value of `--identifier-names-generator` option");return e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationTargetSanitizer=void 0;const o=r(20);t.ObfuscationTargetSanitizer=e=>{if(!Object.keys(o.ObfuscationTarget).some(t=>o.ObfuscationTarget[t]===e))throw new ReferenceError("Invalid value of `--target` option");return e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapModeSanitizer=void 0;const o=r(32);t.SourceMapModeSanitizer=e=>{if(!Object.keys(o.SourceMapMode).some(t=>o.SourceMapMode[t]===e))throw new ReferenceError("Invalid value of `--source-map-mode` option");return e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncodingSanitizer=void 0;const o=r(28);t.StringArrayEncodingSanitizer=e=>{switch(e){case"true":case"1":case o.StringArrayEncoding.Base64:return!0;case o.StringArrayEncoding.Rc4:return o.StringArrayEncoding.Rc4;default:return!1}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CLIUtils=void 0;t.CLIUtils=class{static getUserConfig(e){let t;try{t=r(281)(e)}catch(r){try{t=require(e)}catch(e){throw new ReferenceError("Given config path must be a valid `.js` or `.json` file path")}}return t}}},function(e,t){function r(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}r.keys=function(){return[]},r.resolve=r,e.exports=r,r.id=281},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatedCodeWriter=void 0;const a=i(r(268)),s=i(r(283)),c=i(r(267)),l=r(45),d=r(266);t.ObfuscatedCodeWriter=class{constructor(e,t){this.inputPath=e,this.options=t}getOutputCodePath(e){const t=this.options.output?c.normalize(this.options.output):null;if(!t)return c.normalize(e).split(l.StringSeparator.Dot).map((e,t)=>0===t?`${e}${d.JavaScriptObfuscatorCLI.obfuscatedFilePrefix}`:e).join(l.StringSeparator.Dot);const r=a.lstatSync(this.inputPath),o=c.extname(t),n=r.isDirectory(),i=!d.JavaScriptObfuscatorCLI.availableInputExtensions.includes(o);if(n){if(i)return c.join(t,e);throw new Error("Output path for directory obfuscation should be a directory path")}return i?c.join(t,c.basename(e)):t}getOutputSourceMapPath(e,t=""){return t&&(e=`${e.substring(0,e.lastIndexOf("/"))}/${t}`),/\.js\.map$/.test(e)?/\.js$/.test(e)&&(e+=".map"):e=`${e.split(l.StringSeparator.Dot)[0]}.js.map`,e}writeFile(e,t){s.sync(c.dirname(e)),a.writeFileSync(e,t,{encoding:d.JavaScriptObfuscatorCLI.encoding})}}},function(e,t){e.exports=require("mkdirp")},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SourceCodeReader=void 0;const s=i(r(268)),c=i(r(267)),l=a(r(285)),d=r(266);class u{constructor(e,t){this.inputPath=e,this.options=t}static isExcludedPath(e,t=[]){if(!t.length)return!1;const r=c.basename(e),o=!!l.default([e],t).length;return t.some(t=>e.includes(t)||r.includes(t))||o}static isDirectoryPath(e){try{return s.statSync(e).isDirectory()}catch(e){return!1}}static isFilePath(e){try{return s.statSync(e).isFile()}catch(e){return!1}}static isValidDirectory(e,t=[]){return!u.isExcludedPath(e,t)}static isValidFile(e,t=[]){return d.JavaScriptObfuscatorCLI.availableInputExtensions.includes(c.extname(e))&&!e.includes(d.JavaScriptObfuscatorCLI.obfuscatedFilePrefix)&&!u.isExcludedPath(e,t)}static readFile(e){return{filePath:c.normalize(e),content:s.readFileSync(e,d.JavaScriptObfuscatorCLI.encoding)}}readSourceCode(){if(u.isFilePath(this.inputPath)&&u.isValidFile(this.inputPath,this.options.exclude))return[u.readFile(this.inputPath)];if(u.isDirectoryPath(this.inputPath)&&u.isValidDirectory(this.inputPath,this.options.exclude))return this.readDirectoryRecursive(this.inputPath);const e=d.JavaScriptObfuscatorCLI.availableInputExtensions.map(e=>`\`${e}\``).join(", ");throw new ReferenceError(`Given input path must be a valid ${e} file or directory path`)}readDirectoryRecursive(e,t=[]){return s.readdirSync(e,d.JavaScriptObfuscatorCLI.encoding).forEach(r=>{const o=`${e}/${r}`;if(u.isDirectoryPath(o)&&u.isValidDirectory(o,this.options.exclude))t.push(...this.readDirectoryRecursive(o));else if(u.isFilePath(o)&&u.isValidFile(o,this.options.exclude)){const e=u.readFile(o);t.push(e)}else;}),t}}t.SourceCodeReader=u},function(e,t){e.exports=require("multimatch")}]); + +require("source-map-support").install(); + + +module.exports = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./index.cli.ts"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./index.cli.ts": +/*!**********************!*\ + !*** ./index.cli.ts ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const JavaScriptObfuscatorCLIFacade_1 = __webpack_require__(/*! ./src/JavaScriptObfuscatorCLIFacade */ "./src/JavaScriptObfuscatorCLIFacade.ts"); +module.exports = JavaScriptObfuscatorCLIFacade_1.JavaScriptObfuscatorCLI; + + +/***/ }), + +/***/ "./src/ASTParserFacade.ts": +/*!********************************!*\ + !*** ./src/ASTParserFacade.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ASTParserFacade = void 0; +const acorn = __importStar(__webpack_require__(/*! acorn */ "acorn")); +const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk")); +class ASTParserFacade { + static parse(sourceCode, config) { + const sourceTypeLength = ASTParserFacade.sourceTypes.length; + for (let i = 0; i < sourceTypeLength; i++) { + try { + return ASTParserFacade.parseType(sourceCode, config, ASTParserFacade.sourceTypes[i]); + } + catch (error) { + if (i < sourceTypeLength - 1) { + continue; + } + throw new Error(ASTParserFacade.processParsingError(sourceCode, error.message, error.loc)); + } + } + throw new Error('Acorn parsing error'); + } + static parseType(sourceCode, inputConfig, sourceType) { + const comments = []; + const config = Object.assign(Object.assign({}, inputConfig), { onComment: comments, sourceType }); + const program = acorn + .parse(sourceCode, config); + if (comments.length) { + program.comments = comments; + } + return program; + } + static processParsingError(sourceCode, errorMessage, position) { + if (!position || !position.line || !position.column) { + throw new Error(errorMessage); + } + const sourceCodeLines = sourceCode.split(/\r?\n/); + const errorLine = sourceCodeLines[position.line - 1]; + if (!errorLine) { + throw new Error(errorMessage); + } + const startErrorIndex = Math.max(0, position.column - ASTParserFacade.nearestSymbolsCount); + const endErrorIndex = Math.min(errorLine.length, position.column + ASTParserFacade.nearestSymbolsCount); + const formattedPointer = ASTParserFacade.colorError('>'); + const formattedCodeSlice = `...${errorLine.substring(startErrorIndex, endErrorIndex).replace(/^\s+/, '')}...`; + throw new Error(`ERROR at line ${position.line}: ${errorMessage}\n${formattedPointer} ${formattedCodeSlice}`); + } +} +exports.ASTParserFacade = ASTParserFacade; +ASTParserFacade.colorError = chalk_1.default.red; +ASTParserFacade.nearestSymbolsCount = 15; +ASTParserFacade.sourceTypes = [ + 'script', + 'module' +]; + + +/***/ }), + +/***/ "./src/JavaScriptObfuscator.ts": +/*!*************************************!*\ + !*** ./src/JavaScriptObfuscator.ts ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var JavaScriptObfuscator_1, _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JavaScriptObfuscator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const escodegen = __importStar(__webpack_require__(/*! escodegen */ "escodegen")); +const TObfuscatedCodeFactory_1 = __webpack_require__(/*! ./types/container/source-code/TObfuscatedCodeFactory */ "./src/types/container/source-code/TObfuscatedCodeFactory.ts"); +const ICodeTransformersRunner_1 = __webpack_require__(/*! ./interfaces/code-transformers/ICodeTransformersRunner */ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts"); +const ILogger_1 = __webpack_require__(/*! ./interfaces/logger/ILogger */ "./src/interfaces/logger/ILogger.ts"); +const IOptions_1 = __webpack_require__(/*! ./interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ./interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const INodeTransformersRunner_1 = __webpack_require__(/*! ./interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts"); +const CodeTransformer_1 = __webpack_require__(/*! ./enums/code-transformers/CodeTransformer */ "./src/enums/code-transformers/CodeTransformer.ts"); +const CodeTransformationStage_1 = __webpack_require__(/*! ./enums/code-transformers/CodeTransformationStage */ "./src/enums/code-transformers/CodeTransformationStage.ts"); +const LoggingMessage_1 = __webpack_require__(/*! ./enums/logger/LoggingMessage */ "./src/enums/logger/LoggingMessage.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const EcmaVersion_1 = __webpack_require__(/*! ./constants/EcmaVersion */ "./src/constants/EcmaVersion.ts"); +const ASTParserFacade_1 = __webpack_require__(/*! ./ASTParserFacade */ "./src/ASTParserFacade.ts"); +const NodeGuards_1 = __webpack_require__(/*! ./node/NodeGuards */ "./src/node/NodeGuards.ts"); +const Utils_1 = __webpack_require__(/*! ./utils/Utils */ "./src/utils/Utils.ts"); +let JavaScriptObfuscator = JavaScriptObfuscator_1 = class JavaScriptObfuscator { + constructor(codeTransformersRunner, nodeTransformersRunner, randomGenerator, obfuscatedCodeFactory, logger, options) { + this.codeTransformersRunner = codeTransformersRunner; + this.nodeTransformersRunner = nodeTransformersRunner; + this.randomGenerator = randomGenerator; + this.obfuscatedCodeFactory = obfuscatedCodeFactory; + this.logger = logger; + this.options = options; + } + obfuscate(sourceCode) { + if (typeof sourceCode !== 'string') { + sourceCode = ''; + } + const timeStart = Date.now(); + this.logger.info(LoggingMessage_1.LoggingMessage.Version, Utils_1.Utils.buildVersionMessage("1.3.0", 1593367787211)); + this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted); + this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getInputSeed()); + sourceCode = this.runCodeTransformationStage(sourceCode, CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers); + const astTree = this.parseCode(sourceCode); + const obfuscatedAstTree = this.transformAstTree(astTree); + const generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree); + generatorOutput.code = this.runCodeTransformationStage(generatorOutput.code, CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers); + const obfuscationTime = (Date.now() - timeStart) / 1000; + this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime); + return this.getObfuscatedCode(generatorOutput); + } + parseCode(sourceCode) { + return ASTParserFacade_1.ASTParserFacade.parse(sourceCode, JavaScriptObfuscator_1.parseOptions); + } + transformAstTree(astTree) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Initializing); + const isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree) + && !astTree.body.length + && !astTree.leadingComments + && !astTree.trailingComments; + if (isEmptyAstTree) { + this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode); + return astTree; + } + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Preparing); + if (this.options.deadCodeInjection) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection); + } + if (this.options.controlFlowFlattening) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening); + } + if (this.options.renameProperties) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameProperties); + } + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Converting); + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Obfuscating); + if (this.options.minify) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Minification); + } + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Finalizing); + return astTree; + } + generateCode(sourceCode, astTree) { + const escodegenParams = Object.assign({}, JavaScriptObfuscator_1.escodegenParams); + if (this.options.sourceMap) { + escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap'; + escodegenParams.sourceContent = sourceCode; + } + const generatorOutput = escodegen.generate(astTree, Object.assign(Object.assign({}, escodegenParams), { format: { + compact: this.options.compact + } })); + generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : ''; + return generatorOutput; + } + getObfuscatedCode(generatorOutput) { + return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map); + } + runCodeTransformationStage(code, codeTransformationStage) { + this.logger.info(LoggingMessage_1.LoggingMessage.CodeTransformationStage, codeTransformationStage); + return this.codeTransformersRunner.transform(code, JavaScriptObfuscator_1.codeTransformersList, codeTransformationStage); + } + runNodeTransformationStage(astTree, nodeTransformationStage) { + this.logger.info(LoggingMessage_1.LoggingMessage.NodeTransformationStage, nodeTransformationStage); + return this.nodeTransformersRunner.transform(astTree, JavaScriptObfuscator_1.nodeTransformersList, nodeTransformationStage); + } +}; +JavaScriptObfuscator.parseOptions = { + ecmaVersion: EcmaVersion_1.ecmaVersion, + allowHashBang: true, + allowImportExportEverywhere: true, + allowReturnOutsideFunction: true, + locations: true, + ranges: true +}; +JavaScriptObfuscator.escodegenParams = { + comment: true, + verbatim: 'x-verbatim-property', + sourceMapWithCode: true +}; +JavaScriptObfuscator.codeTransformersList = [ + CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer +]; +JavaScriptObfuscator.nodeTransformersList = [ + NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer, + NodeTransformer_1.NodeTransformer.CommentsTransformer, + NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer, + NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer, + NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer, + NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer, + NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer, + NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, + NodeTransformer_1.NodeTransformer.LiteralTransformer, + NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer, + NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, + NodeTransformer_1.NodeTransformer.MetadataTransformer, + NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer, + NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer, + NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, + NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer, + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer, + NodeTransformer_1.NodeTransformer.SplitStringTransformer, + NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer, + NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer +]; +JavaScriptObfuscator = JavaScriptObfuscator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof ICodeTransformersRunner_1.ICodeTransformersRunner !== "undefined" && ICodeTransformersRunner_1.ICodeTransformersRunner) === "function" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof TObfuscatedCodeFactory_1.TObfuscatedCodeFactory !== "undefined" && TObfuscatedCodeFactory_1.TObfuscatedCodeFactory) === "function" ? _d : Object, typeof (_e = typeof ILogger_1.ILogger !== "undefined" && ILogger_1.ILogger) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], JavaScriptObfuscator); +exports.JavaScriptObfuscator = JavaScriptObfuscator; + + +/***/ }), + +/***/ "./src/JavaScriptObfuscatorCLIFacade.ts": +/*!**********************************************!*\ + !*** ./src/JavaScriptObfuscatorCLIFacade.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JavaScriptObfuscatorCLI = void 0; +__webpack_require__(/*! reflect-metadata */ "reflect-metadata"); +const JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ./cli/JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts"); +class JavaScriptObfuscatorCLIFacade { + static obfuscate(argv) { + const javaScriptObfuscatorCLI = new JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI(argv); + javaScriptObfuscatorCLI.initialize(); + javaScriptObfuscatorCLI.run(); + } +} +exports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLIFacade; + + +/***/ }), + +/***/ "./src/JavaScriptObfuscatorFacade.ts": +/*!*******************************************!*\ + !*** ./src/JavaScriptObfuscatorFacade.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JavaScriptObfuscator = void 0; +__webpack_require__(/*! reflect-metadata */ "reflect-metadata"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const InversifyContainerFacade_1 = __webpack_require__(/*! ./container/InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const Utils_1 = __webpack_require__(/*! ./utils/Utils */ "./src/utils/Utils.ts"); +class JavaScriptObfuscatorFacade { + static obfuscate(sourceCode, inputOptions = {}) { + const inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade(); + inversifyContainerFacade.load(sourceCode, '', inputOptions); + const javaScriptObfuscator = inversifyContainerFacade + .get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator); + const obfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode); + inversifyContainerFacade.unload(); + return obfuscatedCode; + } + static obfuscateMultiple(sourceCodesObject, inputOptions = {}) { + if (typeof sourceCodesObject !== 'object') { + throw new Error('Source codes object should be a plain object'); + } + return Object + .keys(sourceCodesObject) + .reduce((acc, sourceCodeIdentifier, index) => { + const identifiersPrefix = Utils_1.Utils.getIdentifiersPrefixForMultipleSources(inputOptions.identifiersPrefix, index); + const sourceCode = sourceCodesObject[sourceCodeIdentifier]; + const sourceCodeOptions = Object.assign(Object.assign({}, inputOptions), { identifiersPrefix }); + return Object.assign(Object.assign({}, acc), { [sourceCodeIdentifier]: JavaScriptObfuscatorFacade.obfuscate(sourceCode, sourceCodeOptions) }); + }, {}); + } +} +exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade; +JavaScriptObfuscatorFacade.version = (_a = "1.3.0") !== null && _a !== void 0 ? _a : 'unknown'; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts": +/*!******************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var CallsGraphAnalyzer_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallsGraphAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TCalleeDataExtractorFactory_1 = __webpack_require__(/*! ../../types/container/calls-graph-analyzer/TCalleeDataExtractorFactory */ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts"); +const CalleeDataExtractor_1 = __webpack_require__(/*! ../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let CallsGraphAnalyzer = CallsGraphAnalyzer_1 = class CallsGraphAnalyzer { + constructor(calleeDataExtractorFactory) { + this.calleeDataExtractorFactory = calleeDataExtractorFactory; + } + static getLimitIndex(blockScopeBodyLength) { + const lastIndex = blockScopeBodyLength - 1; + const limitThresholdActivationIndex = CallsGraphAnalyzer_1.limitThresholdActivationLength - 1; + let limitIndex = lastIndex; + if (lastIndex > limitThresholdActivationIndex) { + limitIndex = Math.round(limitThresholdActivationIndex + (lastIndex * CallsGraphAnalyzer_1.limitThreshold)); + if (limitIndex > lastIndex) { + limitIndex = lastIndex; + } + } + return limitIndex; + } + analyze(astTree) { + return this.analyzeRecursive(astTree.body); + } + analyzeRecursive(blockScopeBody) { + const limitIndex = CallsGraphAnalyzer_1.getLimitIndex(blockScopeBody.length); + const callsGraphData = []; + const blockScopeBodyLength = blockScopeBody.length; + for (let index = 0; index < blockScopeBodyLength; index++) { + if (index > limitIndex) { + break; + } + const blockScopeBodyNode = blockScopeBody[index]; + estraverse.traverse(blockScopeBodyNode, { + enter: (node) => { + if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) { + return; + } + if (blockScopeBodyNode.parentNode !== NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(node)) { + return estraverse.VisitorOption.Skip; + } + this.analyzeCallExpressionNode(callsGraphData, blockScopeBody, node); + } + }); + } + return callsGraphData; + } + analyzeCallExpressionNode(callsGraphData, blockScopeBody, callExpressionNode) { + CallsGraphAnalyzer_1.calleeDataExtractorsList.forEach((calleeDataExtractorName) => { + const calleeData = this.calleeDataExtractorFactory(calleeDataExtractorName) + .extract(blockScopeBody, callExpressionNode.callee); + if (!calleeData) { + return; + } + callsGraphData.push(Object.assign(Object.assign({}, calleeData), { callsGraph: this.analyzeRecursive(calleeData.callee.body) })); + }); + } +}; +CallsGraphAnalyzer.calleeDataExtractorsList = [ + CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor, + CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor, + CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor +]; +CallsGraphAnalyzer.limitThresholdActivationLength = 25; +CallsGraphAnalyzer.limitThreshold = 0.002; +CallsGraphAnalyzer = CallsGraphAnalyzer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)), + __metadata("design:paramtypes", [typeof (_a = typeof TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory !== "undefined" && TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory) === "function" ? _a : Object]) +], CallsGraphAnalyzer); +exports.CallsGraphAnalyzer = CallsGraphAnalyzer; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts": +/*!**************************************************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts ***! + \**************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCalleeDataExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +let AbstractCalleeDataExtractor = class AbstractCalleeDataExtractor { +}; +AbstractCalleeDataExtractor = __decorate([ + inversify_1.injectable() +], AbstractCalleeDataExtractor); +exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FunctionDeclarationCalleeDataExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let FunctionDeclarationCalleeDataExtractor = class FunctionDeclarationCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor { + extract(blockScopeBody, callee) { + if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + return null; + } + const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name); + if (!calleeBlockStatement) { + return null; + } + return { + callee: calleeBlockStatement, + name: callee.name + }; + } + getCalleeBlockStatement(targetNode, name) { + let calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) { + calleeBlockStatement = node.body; + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } +}; +FunctionDeclarationCalleeDataExtractor = __decorate([ + inversify_1.injectable() +], FunctionDeclarationCalleeDataExtractor); +exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts": +/*!************************************************************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FunctionExpressionCalleeDataExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let FunctionExpressionCalleeDataExtractor = class FunctionExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor { + extract(blockScopeBody, callee) { + let calleeName = null; + let calleeBlockStatement = null; + if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + calleeName = callee.name; + calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name); + } + else if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) { + calleeName = null; + calleeBlockStatement = callee.body; + } + if (!calleeBlockStatement) { + return null; + } + return { + callee: calleeBlockStatement, + name: calleeName + }; + } + getCalleeBlockStatement(targetNode, name) { + let calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && + parentNode && + NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) && + NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) && + parentNode.id.name === name) { + calleeBlockStatement = node.body; + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } +}; +FunctionExpressionCalleeDataExtractor = __decorate([ + inversify_1.injectable() +], FunctionExpressionCalleeDataExtractor); +exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var ObjectExpressionCalleeDataExtractor_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionCalleeDataExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = class ObjectExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor { + static isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) { + if (!propertyNode.key) { + return false; + } + const isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain; + const isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) && + Boolean(propertyNode.key.value) && + propertyNode.key.value === nextItemInCallsChain; + return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey; + } + extract(blockScopeBody, callee) { + if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) { + return null; + } + const objectMembersCallsChain = this.createObjectMembersCallsChain([], callee); + if (!objectMembersCallsChain.length) { + return null; + } + const functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1]; + const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), objectMembersCallsChain); + if (!calleeBlockStatement) { + return null; + } + return { + callee: calleeBlockStatement, + name: functionExpressionName + }; + } + createObjectMembersCallsChain(currentChain, memberExpression) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && !memberExpression.computed) { + currentChain.unshift(memberExpression.property.name); + } + else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) && + (typeof memberExpression.property.value === 'string' || + typeof memberExpression.property.value === 'number')) { + currentChain.unshift(memberExpression.property.value); + } + else { + return currentChain; + } + if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) { + return this.createObjectMembersCallsChain(currentChain, memberExpression.object); + } + else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) { + currentChain.unshift(memberExpression.object.name); + } + return currentChain; + } + getCalleeBlockStatement(targetNode, objectMembersCallsChain) { + const objectName = objectMembersCallsChain.shift(); + if (!objectName) { + return null; + } + let calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) && + NodeGuards_1.NodeGuards.isIdentifierNode(node.id) && + node.init && + NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) && + node.id.name === objectName) { + calleeBlockStatement = this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain); + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } + findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) { + const nextItemInCallsChain = objectMembersCallsChain.shift(); + if (!nextItemInCallsChain) { + return null; + } + for (const propertyNode of objectExpressionProperties) { + if (!NodeGuards_1.NodeGuards.isPropertyNode(propertyNode)) { + continue; + } + if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) { + continue; + } + if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) { + return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain); + } + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) { + return propertyNode.value.body; + } + } + return null; + } +}; +ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = __decorate([ + inversify_1.injectable() +], ObjectExpressionCalleeDataExtractor); +exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor; + + +/***/ }), + +/***/ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts": +/*!**************************************************************************************************!*\ + !*** ./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts ***! + \**************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var PrevailingKindOfVariablesAnalyzer_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PrevailingKindOfVariablesAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = class PrevailingKindOfVariablesAnalyzer { + constructor(arrayUtils) { + this.prevailingKindOfVariables = PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables; + this.arrayUtils = arrayUtils; + } + analyze(astTree) { + var _a; + const variableKinds = []; + estraverse.traverse(astTree, { + enter: (node) => { + if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) { + return; + } + variableKinds.push(node.kind); + } + }); + this.prevailingKindOfVariables = (_a = this.arrayUtils.findMostOccurringElement(variableKinds)) !== null && _a !== void 0 ? _a : PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables; + } + getPrevailingKind() { + return this.prevailingKindOfVariables; + } +}; +PrevailingKindOfVariablesAnalyzer.defaultKindOfVariables = 'var'; +PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __metadata("design:paramtypes", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _a : Object]) +], PrevailingKindOfVariablesAnalyzer); +exports.PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer; + + +/***/ }), + +/***/ "./src/analyzers/scope-analyzer/ScopeAnalyzer.ts": +/*!*******************************************************!*\ + !*** ./src/analyzers/scope-analyzer/ScopeAnalyzer.ts ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var ScopeAnalyzer_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ScopeAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const eslintScope = __importStar(__webpack_require__(/*! eslint-scope */ "eslint-scope")); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const EcmaVersion_1 = __webpack_require__(/*! ../../constants/EcmaVersion */ "./src/constants/EcmaVersion.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ScopeAnalyzer = ScopeAnalyzer_1 = class ScopeAnalyzer { + constructor() { + this.scopeManager = null; + } + static attachMissingRanges(astTree) { + estraverse.replace(astTree, { + enter: (node) => { + var _a, _b, _c, _d, _e, _f; + if (!node.range) { + node.range = [ + (_c = (_b = (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.range) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : ScopeAnalyzer_1.emptyRangeValue, + (_f = (_e = (_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.range) === null || _e === void 0 ? void 0 : _e[1]) !== null && _f !== void 0 ? _f : ScopeAnalyzer_1.emptyRangeValue + ]; + } + return node; + } + }); + } + static isRootNode(node) { + return NodeGuards_1.NodeGuards.isProgramNode(node) || node.parentNode === node; + } + analyze(astTree) { + const sourceTypeLength = ScopeAnalyzer_1.sourceTypes.length; + ScopeAnalyzer_1.attachMissingRanges(astTree); + for (let i = 0; i < sourceTypeLength; i++) { + try { + this.scopeManager = eslintScope.analyze(astTree, Object.assign(Object.assign({}, ScopeAnalyzer_1.eslintScopeOptions), { sourceType: ScopeAnalyzer_1.sourceTypes[i] })); + return; + } + catch (error) { + if (i < sourceTypeLength - 1) { + continue; + } + throw new Error(error); + } + } + throw new Error('Scope analyzing error'); + } + acquireScope(node) { + if (!this.scopeManager) { + throw new Error('Scope manager is not defined'); + } + const scope = this.scopeManager.acquire(node, ScopeAnalyzer_1.isRootNode(node)); + if (!scope) { + throw new Error('Cannot acquire scope for node'); + } + this.sanitizeScopes(scope); + return scope; + } + sanitizeScopes(scope) { + scope.childScopes.forEach((childScope) => { + if (childScope.type === 'class' && childScope.upper) { + if (!childScope.variables.length) { + return; + } + const classNameVariable = childScope.variables[0]; + const upperVariable = childScope.upper.variables + .find((variable) => { + const isValidClassNameVariable = classNameVariable.defs + .some((definition) => definition.type === 'ClassName'); + return isValidClassNameVariable && variable.name === classNameVariable.name; + }); + upperVariable === null || upperVariable === void 0 ? void 0 : upperVariable.references.push(...childScope.variables[0].references); + } + }); + for (const childScope of scope.childScopes) { + this.sanitizeScopes(childScope); + } + } +}; +ScopeAnalyzer.eslintScopeOptions = { + ecmaVersion: EcmaVersion_1.ecmaVersion, + optimistic: true +}; +ScopeAnalyzer.sourceTypes = [ + 'script', + 'module' +]; +ScopeAnalyzer.emptyRangeValue = 0; +ScopeAnalyzer = ScopeAnalyzer_1 = __decorate([ + inversify_1.injectable() +], ScopeAnalyzer); +exports.ScopeAnalyzer = ScopeAnalyzer; + + +/***/ }), + +/***/ "./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts": +/*!***********************************************************************************!*\ + !*** ./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var StringArrayStorageAnalyzer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayStorageAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +let StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = class StringArrayStorageAnalyzer { + constructor(stringArrayStorage, randomGenerator, options) { + this.stringArrayStorageData = new Map(); + this.stringArrayStorage = stringArrayStorage; + this.randomGenerator = randomGenerator; + this.options = options; + } + analyze(astTree) { + if (!this.options.stringArray) { + return; + } + estraverse.traverse(astTree, { + enter: (node, parentNode) => { + if (!parentNode) { + return; + } + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + if (!NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return; + } + this.analyzeLiteralNode(node, parentNode); + } + }); + } + getItemDataForLiteralNode(literalNode) { + return this.stringArrayStorageData.get(literalNode); + } + analyzeLiteralNode(literalNode, parentNode) { + if (typeof literalNode.value !== 'string') { + return; + } + if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return; + } + if (!this.shouldAddValueToStringArray(literalNode.value)) { + return; + } + this.stringArrayStorageData.set(literalNode, this.stringArrayStorage.getOrThrow(literalNode.value)); + } + shouldAddValueToStringArray(value) { + return value.length >= StringArrayStorageAnalyzer_1.minimumLengthForStringArray + && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold; + } +}; +StringArrayStorageAnalyzer.minimumLengthForStringArray = 3; +StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], StringArrayStorageAnalyzer); +exports.StringArrayStorageAnalyzer = StringArrayStorageAnalyzer; + + +/***/ }), + +/***/ "./src/cli/JavaScriptObfuscatorCLI.ts": +/*!********************************************!*\ + !*** ./src/cli/JavaScriptObfuscatorCLI.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JavaScriptObfuscatorCLI = void 0; +const commander = __importStar(__webpack_require__(/*! commander */ "commander")); +const path = __importStar(__webpack_require__(/*! path */ "path")); +const TInputCLIOptions_1 = __webpack_require__(/*! ../types/options/TInputCLIOptions */ "./src/types/options/TInputCLIOptions.ts"); +const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const Default_1 = __webpack_require__(/*! ../options/presets/Default */ "./src/options/presets/Default.ts"); +const ArraySanitizer_1 = __webpack_require__(/*! ./sanitizers/ArraySanitizer */ "./src/cli/sanitizers/ArraySanitizer.ts"); +const BooleanSanitizer_1 = __webpack_require__(/*! ./sanitizers/BooleanSanitizer */ "./src/cli/sanitizers/BooleanSanitizer.ts"); +const IdentifierNamesGeneratorSanitizer_1 = __webpack_require__(/*! ./sanitizers/IdentifierNamesGeneratorSanitizer */ "./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts"); +const ObfuscatingTargetSanitizer_1 = __webpack_require__(/*! ./sanitizers/ObfuscatingTargetSanitizer */ "./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts"); +const SourceMapModeSanitizer_1 = __webpack_require__(/*! ./sanitizers/SourceMapModeSanitizer */ "./src/cli/sanitizers/SourceMapModeSanitizer.ts"); +const StringArrayEncodingSanitizer_1 = __webpack_require__(/*! ./sanitizers/StringArrayEncodingSanitizer */ "./src/cli/sanitizers/StringArrayEncodingSanitizer.ts"); +const CLIUtils_1 = __webpack_require__(/*! ./utils/CLIUtils */ "./src/cli/utils/CLIUtils.ts"); +const JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); +const Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts"); +const ObfuscatedCodeWriter_1 = __webpack_require__(/*! ./utils/ObfuscatedCodeWriter */ "./src/cli/utils/ObfuscatedCodeWriter.ts"); +const SourceCodeReader_1 = __webpack_require__(/*! ./utils/SourceCodeReader */ "./src/cli/utils/SourceCodeReader.ts"); +const Utils_1 = __webpack_require__(/*! ../utils/Utils */ "./src/utils/Utils.ts"); +class JavaScriptObfuscatorCLI { + constructor(argv) { + this.rawArguments = argv; + this.arguments = argv.slice(2); + } + static buildOptions(inputOptions) { + const inputCLIOptions = JavaScriptObfuscatorCLI.filterOptions(inputOptions); + const configFilePath = inputOptions.config; + const configFileLocation = configFilePath ? path.resolve(configFilePath, '.') : ''; + const configFileOptions = configFileLocation ? CLIUtils_1.CLIUtils.getUserConfig(configFileLocation) : {}; + return Object.assign(Object.assign(Object.assign({}, Default_1.DEFAULT_PRESET), configFileOptions), inputCLIOptions); + } + static filterOptions(options) { + const filteredOptions = {}; + Object + .keys(options) + .forEach((option) => { + if (options[option] === undefined) { + return; + } + filteredOptions[option] = options[option]; + }); + return filteredOptions; + } + initialize() { + this.inputPath = path.normalize(this.arguments[0] || ''); + this.commands = (new commander.Command()); + this.configureCommands(); + this.configureHelp(); + this.inputCLIOptions = JavaScriptObfuscatorCLI.buildOptions(this.commands.opts()); + this.sourceCodeReader = new SourceCodeReader_1.SourceCodeReader(this.inputPath, this.inputCLIOptions); + this.obfuscatedCodeWriter = new ObfuscatedCodeWriter_1.ObfuscatedCodeWriter(this.inputPath, this.inputCLIOptions); + } + run() { + const canShowHelp = !this.arguments.length || this.arguments.includes('--help'); + if (canShowHelp) { + this.commands.outputHelp(); + return; + } + const sourceCodeData = this.sourceCodeReader.readSourceCode(); + this.processSourceCodeData(sourceCodeData); + } + configureCommands() { + this.commands + .usage(' [options]') + .version(Utils_1.Utils.buildVersionMessage("1.3.0", 1593367787211), '-v, --version') + .option('-o, --output ', 'Output path for obfuscated code') + .option('--compact ', 'Disable one line output code compacting', BooleanSanitizer_1.BooleanSanitizer) + .option('--config ', 'Name of js / json config file') + .option('--control-flow-flattening ', 'Enables control flow flattening', BooleanSanitizer_1.BooleanSanitizer) + .option('--control-flow-flattening-threshold ', 'The probability that the control flow flattening transformation will be applied to the node', parseFloat) + .option('--dead-code-injection ', 'Enables dead code injection', BooleanSanitizer_1.BooleanSanitizer) + .option('--dead-code-injection-threshold ', 'The probability that the dead code injection transformation will be applied to the node', parseFloat) + .option('--debug-protection ', 'Disable browser Debug panel (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer) + .option('--debug-protection-interval ', 'Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer) + .option('--disable-console-output ', 'Allow console.log, console.info, console.error and console.warn messages output into browser console', BooleanSanitizer_1.BooleanSanitizer) + .option('--domain-lock (comma separated, without whitespaces)', 'Blocks the execution of the code in domains that do not match the passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer) + .option('--exclude (comma separated, without whitespaces)', 'A filename or glob which indicates files to exclude from obfuscation', ArraySanitizer_1.ArraySanitizer) + .option('--identifier-names-generator ', 'Sets identifier names generator. ' + + 'Values: hexadecimal, mangled, dictionary. ' + + 'Default: hexadecimal', IdentifierNamesGeneratorSanitizer_1.IdentifierNamesGeneratorSanitizer) + .option('--identifiers-prefix ', 'Sets prefix for all global identifiers') + .option('--identifiers-dictionary (comma separated, without whitespaces)', 'Identifiers dictionary (comma separated) for `--identifier-names-generator dictionary` option', ArraySanitizer_1.ArraySanitizer) + .option('--log ', 'Enables logging of the information to the console', BooleanSanitizer_1.BooleanSanitizer) + .option('--minify ', 'Enables code minification', BooleanSanitizer_1.BooleanSanitizer) + .option('--reserved-names (comma separated, without whitespaces)', 'Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer) + .option('--reserved-strings (comma separated, without whitespaces)', 'Disables transformation of string literals, which being matched by passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer) + .option('--rename-globals ', 'Allows to enable obfuscation of global variable and function names with declaration', BooleanSanitizer_1.BooleanSanitizer) + .option('--rename-properties ', 'UNSAFE: Enables renaming of property names. This probably WILL break your code', BooleanSanitizer_1.BooleanSanitizer) + .option('--rotate-string-array ', 'Enable rotation of string array values during obfuscation', BooleanSanitizer_1.BooleanSanitizer) + .option('--seed ', 'Sets seed for random generator. This is useful for creating repeatable results.', parseFloat) + .option('--self-defending ', 'Disables self-defending for obfuscated code', BooleanSanitizer_1.BooleanSanitizer) + .option('--shuffle-string-array ', 'Randomly shuffles string array items', BooleanSanitizer_1.BooleanSanitizer) + .option('--source-map ', 'Enables source map generation', BooleanSanitizer_1.BooleanSanitizer) + .option('--source-map-base-url ', 'Sets base url to the source map import url when `--source-map-mode=separate`') + .option('--source-map-file-name ', 'Sets file name for output source map when `--source-map-mode=separate`') + .option('--source-map-mode ', 'Specify source map output mode. ' + + 'Values: inline, separate. ' + + 'Default: separate', SourceMapModeSanitizer_1.SourceMapModeSanitizer) + .option('--split-strings ', 'Splits literal strings into chunks with length of `splitStringsChunkLength` option value', BooleanSanitizer_1.BooleanSanitizer) + .option('--split-strings-chunk-length ', 'Sets chunk length of `splitStrings` option', parseFloat) + .option('--string-array ', 'Disables gathering of all literal strings into an array and replacing every literal string with an array call', BooleanSanitizer_1.BooleanSanitizer) + .option('--string-array-encoding ', 'Encodes all strings in strings array using base64 or rc4 (this option can slow down your code speed. ' + + 'Values: true, false, base64, rc4. ' + + 'Default: false', StringArrayEncodingSanitizer_1.StringArrayEncodingSanitizer) + .option('--string-array-threshold ', 'The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)', parseFloat) + .option('--target ', 'Allows to set target environment for obfuscated code. ' + + 'Values: browser, browser-no-eval, node. ' + + 'Default: browser', ObfuscatingTargetSanitizer_1.ObfuscationTargetSanitizer) + .option('--transform-object-keys ', 'Enables transformation of object keys', BooleanSanitizer_1.BooleanSanitizer) + .option('--unicode-escape-sequence ', 'Allows to enable/disable string conversion to unicode escape sequence', BooleanSanitizer_1.BooleanSanitizer) + .parse(this.rawArguments); + } + configureHelp() { + this.commands.on('--help', () => { + console.log(' Examples:\n'); + console.log(' %> javascript-obfuscator input_file_name.js --compact true --self-defending false'); + console.log(' %> javascript-obfuscator input_file_name.js --output output_file_name.js --compact true --self-defending false'); + console.log(' %> javascript-obfuscator input_directory_name --compact true --self-defending false'); + console.log(''); + }); + } + processSourceCodeData(sourceCodeData) { + sourceCodeData.forEach(({ filePath, content }, index) => { + const outputCodePath = this.obfuscatedCodeWriter.getOutputCodePath(filePath); + try { + Logger_1.Logger.log(Logger_1.Logger.colorInfo, LoggingPrefix_1.LoggingPrefix.CLI, `Obfuscating file: ${filePath}...`); + this.processSourceCode(content, filePath, outputCodePath, index); + } + catch (error) { + Logger_1.Logger.log(Logger_1.Logger.colorInfo, LoggingPrefix_1.LoggingPrefix.CLI, `Error in file: ${filePath}...`); + throw error; + } + }); + } + processSourceCode(sourceCode, inputCodePath, outputCodePath, sourceCodeIndex) { + const options = Object.assign(Object.assign(Object.assign({}, this.inputCLIOptions), { inputFileName: path.basename(inputCodePath) }), sourceCodeIndex !== null && { + identifiersPrefix: Utils_1.Utils.getIdentifiersPrefixForMultipleSources(this.inputCLIOptions.identifiersPrefix, sourceCodeIndex) + }); + if (options.sourceMap) { + this.processSourceCodeWithSourceMap(sourceCode, outputCodePath, options); + } + else { + this.processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options); + } + } + processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options) { + const obfuscatedCode = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options).getObfuscatedCode(); + this.obfuscatedCodeWriter.writeFile(outputCodePath, obfuscatedCode); + } + processSourceCodeWithSourceMap(sourceCode, outputCodePath, options) { + var _a; + const outputSourceMapPath = this.obfuscatedCodeWriter.getOutputSourceMapPath(outputCodePath, (_a = options.sourceMapFileName) !== null && _a !== void 0 ? _a : ''); + options = Object.assign(Object.assign({}, options), { sourceMapFileName: path.basename(outputSourceMapPath) }); + const obfuscatedCode = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options); + this.obfuscatedCodeWriter.writeFile(outputCodePath, obfuscatedCode.getObfuscatedCode()); + if (options.sourceMapMode === SourceMapMode_1.SourceMapMode.Separate && obfuscatedCode.getSourceMap()) { + this.obfuscatedCodeWriter.writeFile(outputSourceMapPath, obfuscatedCode.getSourceMap()); + } + } +} +JavaScriptObfuscatorCLI.availableInputExtensions = [ + '.js' +]; +JavaScriptObfuscatorCLI.encoding = 'utf8'; +JavaScriptObfuscatorCLI.obfuscatedFilePrefix = '-obfuscated'; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof commander !== "undefined" && commander.CommanderStatic) === "function" ? _a : Object) +], JavaScriptObfuscatorCLI.prototype, "commands", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_b = typeof TInputCLIOptions_1.TInputCLIOptions !== "undefined" && TInputCLIOptions_1.TInputCLIOptions) === "function" ? _b : Object) +], JavaScriptObfuscatorCLI.prototype, "inputCLIOptions", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], JavaScriptObfuscatorCLI.prototype, "inputPath", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_c = typeof SourceCodeReader_1.SourceCodeReader !== "undefined" && SourceCodeReader_1.SourceCodeReader) === "function" ? _c : Object) +], JavaScriptObfuscatorCLI.prototype, "sourceCodeReader", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_d = typeof ObfuscatedCodeWriter_1.ObfuscatedCodeWriter !== "undefined" && ObfuscatedCodeWriter_1.ObfuscatedCodeWriter) === "function" ? _d : Object) +], JavaScriptObfuscatorCLI.prototype, "obfuscatedCodeWriter", void 0); +exports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLI; + + +/***/ }), + +/***/ "./src/cli/sanitizers/ArraySanitizer.ts": +/*!**********************************************!*\ + !*** ./src/cli/sanitizers/ArraySanitizer.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ArraySanitizer = void 0; +exports.ArraySanitizer = (value) => { + if (value.endsWith(',')) { + throw new SyntaxError('Multiple values should be wrapped inside quotes: --option-name \'value1\',\'value2\''); + } + return value.split(',').map((string) => string.trim()); +}; + + +/***/ }), + +/***/ "./src/cli/sanitizers/BooleanSanitizer.ts": +/*!************************************************!*\ + !*** ./src/cli/sanitizers/BooleanSanitizer.ts ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BooleanSanitizer = void 0; +exports.BooleanSanitizer = (value) => { + return value === 'true' || value === '1'; +}; + + +/***/ }), + +/***/ "./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts": +/*!*****************************************************************!*\ + !*** ./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IdentifierNamesGeneratorSanitizer = void 0; +const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +exports.IdentifierNamesGeneratorSanitizer = (value) => { + const isCorrectIdentifierNamesGenerator = Object + .keys(IdentifierNamesGenerator_1.IdentifierNamesGenerator) + .some((key) => { + return IdentifierNamesGenerator_1.IdentifierNamesGenerator[key] === value; + }); + if (!isCorrectIdentifierNamesGenerator) { + throw new ReferenceError('Invalid value of `--identifier-names-generator` option'); + } + return value; +}; + + +/***/ }), + +/***/ "./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts": +/*!**********************************************************!*\ + !*** ./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscationTargetSanitizer = void 0; +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +exports.ObfuscationTargetSanitizer = (value) => { + const isCorrectTarget = Object + .keys(ObfuscationTarget_1.ObfuscationTarget) + .some((key) => { + return ObfuscationTarget_1.ObfuscationTarget[key] === value; + }); + if (!isCorrectTarget) { + throw new ReferenceError('Invalid value of `--target` option'); + } + return value; +}; + + +/***/ }), + +/***/ "./src/cli/sanitizers/SourceMapModeSanitizer.ts": +/*!******************************************************!*\ + !*** ./src/cli/sanitizers/SourceMapModeSanitizer.ts ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceMapModeSanitizer = void 0; +const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +exports.SourceMapModeSanitizer = (value) => { + const isCorrectSourceMapMode = Object + .keys(SourceMapMode_1.SourceMapMode) + .some((key) => { + return SourceMapMode_1.SourceMapMode[key] === value; + }); + if (!isCorrectSourceMapMode) { + throw new ReferenceError('Invalid value of `--source-map-mode` option'); + } + return value; +}; + + +/***/ }), + +/***/ "./src/cli/sanitizers/StringArrayEncodingSanitizer.ts": +/*!************************************************************!*\ + !*** ./src/cli/sanitizers/StringArrayEncodingSanitizer.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayEncodingSanitizer = void 0; +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +exports.StringArrayEncodingSanitizer = (value) => { + switch (value) { + case 'true': + case '1': + case StringArrayEncoding_1.StringArrayEncoding.Base64: + return true; + case StringArrayEncoding_1.StringArrayEncoding.Rc4: + return StringArrayEncoding_1.StringArrayEncoding.Rc4; + default: + return false; + } +}; + + +/***/ }), + +/***/ "./src/cli/utils sync recursive": +/*!****************************!*\ + !*** ./src/cli/utils sync ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function webpackEmptyContext(req) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; +} +webpackEmptyContext.keys = function() { return []; }; +webpackEmptyContext.resolve = webpackEmptyContext; +module.exports = webpackEmptyContext; +webpackEmptyContext.id = "./src/cli/utils sync recursive"; + +/***/ }), + +/***/ "./src/cli/utils/CLIUtils.ts": +/*!***********************************!*\ + !*** ./src/cli/utils/CLIUtils.ts ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CLIUtils = void 0; +class CLIUtils { + static getUserConfig(configPath) { + let config; + try { + config = __webpack_require__("./src/cli/utils sync recursive")(configPath); + } + catch (_a) { + try { + config = require(configPath); + } + catch (_b) { + throw new ReferenceError('Given config path must be a valid `.js` or `.json` file path'); + } + } + return config; + } +} +exports.CLIUtils = CLIUtils; + + +/***/ }), + +/***/ "./src/cli/utils/ObfuscatedCodeWriter.ts": +/*!***********************************************!*\ + !*** ./src/cli/utils/ObfuscatedCodeWriter.ts ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscatedCodeWriter = void 0; +const fs = __importStar(__webpack_require__(/*! fs */ "fs")); +const mkdirp = __importStar(__webpack_require__(/*! mkdirp */ "mkdirp")); +const path = __importStar(__webpack_require__(/*! path */ "path")); +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +const JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ../JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts"); +class ObfuscatedCodeWriter { + constructor(inputPath, options) { + this.inputPath = inputPath; + this.options = options; + } + getOutputCodePath(filePath) { + const normalizedRawOutputPath = this.options.output + ? path.normalize(this.options.output) + : null; + if (!normalizedRawOutputPath) { + return path + .normalize(filePath) + .split(StringSeparator_1.StringSeparator.Dot) + .map((value, index) => { + return index === 0 ? `${value}${JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix}` : value; + }) + .join(StringSeparator_1.StringSeparator.Dot); + } + const rawInputPathStats = fs.lstatSync(this.inputPath); + const outputPathExtName = path.extname(normalizedRawOutputPath); + const isDirectoryRawInputPath = rawInputPathStats.isDirectory(); + const isDirectoryRawOutputPath = !JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI + .availableInputExtensions + .includes(outputPathExtName); + if (isDirectoryRawInputPath) { + if (isDirectoryRawOutputPath) { + return path.join(normalizedRawOutputPath, filePath); + } + else { + throw new Error('Output path for directory obfuscation should be a directory path'); + } + } + else { + if (isDirectoryRawOutputPath) { + return path.join(normalizedRawOutputPath, path.basename(filePath)); + } + else { + return normalizedRawOutputPath; + } + } + } + getOutputSourceMapPath(outputCodePath, sourceMapFileName = '') { + if (sourceMapFileName) { + outputCodePath = `${outputCodePath.substring(0, outputCodePath.lastIndexOf('/'))}/${sourceMapFileName}`; + } + if (!/\.js\.map$/.test(outputCodePath)) { + outputCodePath = `${outputCodePath.split(StringSeparator_1.StringSeparator.Dot)[0]}.js.map`; + } + else if (/\.js$/.test(outputCodePath)) { + outputCodePath += '.map'; + } + return outputCodePath; + } + writeFile(outputPath, data) { + mkdirp.sync(path.dirname(outputPath)); + fs.writeFileSync(outputPath, data, { + encoding: JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding + }); + } +} +exports.ObfuscatedCodeWriter = ObfuscatedCodeWriter; + + +/***/ }), + +/***/ "./src/cli/utils/SourceCodeReader.ts": +/*!*******************************************!*\ + !*** ./src/cli/utils/SourceCodeReader.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceCodeReader = void 0; +const fs = __importStar(__webpack_require__(/*! fs */ "fs")); +const path = __importStar(__webpack_require__(/*! path */ "path")); +const multimatch_1 = __importDefault(__webpack_require__(/*! multimatch */ "multimatch")); +const JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ../JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts"); +class SourceCodeReader { + constructor(inputPath, options) { + this.inputPath = inputPath; + this.options = options; + } + static isExcludedPath(filePath, excludePatterns = []) { + if (!excludePatterns.length) { + return false; + } + const fileName = path.basename(filePath); + const isExcludedFilePathByGlobPattern = !!multimatch_1.default([filePath], excludePatterns).length; + const isExcludedFilePathByInclusion = excludePatterns.some((excludePattern) => filePath.includes(excludePattern) || fileName.includes(excludePattern)); + return isExcludedFilePathByInclusion || isExcludedFilePathByGlobPattern; + } + static isDirectoryPath(filePath) { + try { + return fs.statSync(filePath).isDirectory(); + } + catch (_a) { + return false; + } + } + static isFilePath(filePath) { + try { + return fs.statSync(filePath).isFile(); + } + catch (_a) { + return false; + } + } + static isValidDirectory(directoryPath, excludePatterns = []) { + return !SourceCodeReader.isExcludedPath(directoryPath, excludePatterns); + } + static isValidFile(filePath, excludePatterns = []) { + return JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.availableInputExtensions.includes(path.extname(filePath)) + && !filePath.includes(JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix) + && !SourceCodeReader.isExcludedPath(filePath, excludePatterns); + } + static readFile(filePath) { + return { + filePath: path.normalize(filePath), + content: fs.readFileSync(filePath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding) + }; + } + readSourceCode() { + if (SourceCodeReader.isFilePath(this.inputPath) + && SourceCodeReader.isValidFile(this.inputPath, this.options.exclude)) { + return [SourceCodeReader.readFile(this.inputPath)]; + } + if (SourceCodeReader.isDirectoryPath(this.inputPath) + && SourceCodeReader.isValidDirectory(this.inputPath, this.options.exclude)) { + return this.readDirectoryRecursive(this.inputPath); + } + const availableFilePaths = JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI + .availableInputExtensions + .map((extension) => `\`${extension}\``) + .join(', '); + throw new ReferenceError(`Given input path must be a valid ${availableFilePaths} file or directory path`); + } + readDirectoryRecursive(directoryPath, filesData = []) { + fs.readdirSync(directoryPath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding) + .forEach((fileName) => { + const filePath = `${directoryPath}/${fileName}`; + if (SourceCodeReader.isDirectoryPath(filePath) + && SourceCodeReader.isValidDirectory(filePath, this.options.exclude)) { + filesData.push(...this.readDirectoryRecursive(filePath)); + return; + } + if (SourceCodeReader.isFilePath(filePath) + && SourceCodeReader.isValidFile(filePath, this.options.exclude)) { + const fileData = SourceCodeReader.readFile(filePath); + filesData.push(fileData); + return; + } + }); + return filesData; + } +} +exports.SourceCodeReader = SourceCodeReader; + + +/***/ }), + +/***/ "./src/code-transformers/AbstractCodeTransformer.ts": +/*!**********************************************************!*\ + !*** ./src/code-transformers/AbstractCodeTransformer.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCodeTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractCodeTransformer = class AbstractCodeTransformer { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } +}; +AbstractCodeTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], AbstractCodeTransformer); +exports.AbstractCodeTransformer = AbstractCodeTransformer; + + +/***/ }), + +/***/ "./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts": +/*!********************************************************************!*\ + !*** ./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CodeTransformerNamesGroupsBuilder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const AbstractTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../utils/AbstractTransformerNamesGroupsBuilder */ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts"); +let CodeTransformerNamesGroupsBuilder = class CodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder { +}; +CodeTransformerNamesGroupsBuilder = __decorate([ + inversify_1.injectable() +], CodeTransformerNamesGroupsBuilder); +exports.CodeTransformerNamesGroupsBuilder = CodeTransformerNamesGroupsBuilder; + + +/***/ }), + +/***/ "./src/code-transformers/CodeTransformersRunner.ts": +/*!*********************************************************!*\ + !*** ./src/code-transformers/CodeTransformersRunner.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CodeTransformersRunner = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCodeTransformerFactory_1 = __webpack_require__(/*! ../types/container/code-transformers/TCodeTransformerFactory */ "./src/types/container/code-transformers/TCodeTransformerFactory.ts"); +const ITransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../interfaces/utils/ITransformerNamesGroupsBuilder */ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts"); +let CodeTransformersRunner = class CodeTransformersRunner { + constructor(codeTransformerFactory, codeTransformerNamesGroupsBuilder) { + this.codeTransformerFactory = codeTransformerFactory; + this.codeTransformerNamesGroupsBuilder = codeTransformerNamesGroupsBuilder; + } + transform(code, codeTransformerNames, codeTransformationStage) { + if (!codeTransformerNames.length) { + return code; + } + const normalizedCodeTransformers = this.buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage); + const codeTransformerNamesGroups = this.codeTransformerNamesGroupsBuilder.build(normalizedCodeTransformers); + for (const nodeTransformerNamesGroup of codeTransformerNamesGroups) { + for (const nodeTransformerName of nodeTransformerNamesGroup) { + const codeTransformer = normalizedCodeTransformers[nodeTransformerName]; + code = codeTransformer.transformCode(code, codeTransformationStage); + } + } + return code; + } + buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage) { + return codeTransformerNames + .reduce((acc, codeTransformerName) => { + const codeTransformer = this.codeTransformerFactory(codeTransformerName); + return Object.assign(Object.assign({}, acc), { [codeTransformerName]: codeTransformer }); + }, {}); + } +}; +CodeTransformersRunner = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)), + __metadata("design:paramtypes", [typeof (_a = typeof TCodeTransformerFactory_1.TCodeTransformerFactory !== "undefined" && TCodeTransformerFactory_1.TCodeTransformerFactory) === "function" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== "undefined" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === "function" ? _b : Object]) +], CodeTransformersRunner); +exports.CodeTransformersRunner = CodeTransformersRunner; + + +/***/ }), + +/***/ "./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HashbangOperatorTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const CodeTransformationStage_1 = __webpack_require__(/*! ../../enums/code-transformers/CodeTransformationStage */ "./src/enums/code-transformers/CodeTransformationStage.ts"); +const AbstractCodeTransformer_1 = __webpack_require__(/*! ../AbstractCodeTransformer */ "./src/code-transformers/AbstractCodeTransformer.ts"); +let HashbangOperatorTransformer = class HashbangOperatorTransformer extends AbstractCodeTransformer_1.AbstractCodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.hashbangOperatorLine = null; + } + transformCode(code, codeTransformationStage) { + switch (codeTransformationStage) { + case CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers: + return this.removeAndSaveHashbangOperatorLine(code); + case CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers: + return this.appendSavedHashbangOperatorLine(code); + default: + return code; + } + } + removeAndSaveHashbangOperatorLine(code) { + return code + .replace(/^#!.*$(\r?\n)*/m, (substring) => { + if (substring) { + this.hashbangOperatorLine = substring; + } + return ''; + }) + .trim(); + } + appendSavedHashbangOperatorLine(code) { + var _a; + return `${(_a = this.hashbangOperatorLine) !== null && _a !== void 0 ? _a : ''}${code}`; + } +}; +HashbangOperatorTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], HashbangOperatorTransformer); +exports.HashbangOperatorTransformer = HashbangOperatorTransformer; + + +/***/ }), + +/***/ "./src/constants/AlphabetString.ts": +/*!*****************************************!*\ + !*** ./src/constants/AlphabetString.ts ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.alphabetString = void 0; +exports.alphabetString = 'abcdefghijklmnopqrstuvwxyz'; + + +/***/ }), + +/***/ "./src/constants/AlphabetStringUppercase.ts": +/*!**************************************************!*\ + !*** ./src/constants/AlphabetStringUppercase.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.alphabetStringUppercase = void 0; +const AlphabetString_1 = __webpack_require__(/*! ./AlphabetString */ "./src/constants/AlphabetString.ts"); +exports.alphabetStringUppercase = AlphabetString_1.alphabetString.toUpperCase(); + + +/***/ }), + +/***/ "./src/constants/EcmaVersion.ts": +/*!**************************************!*\ + !*** ./src/constants/EcmaVersion.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ecmaVersion = void 0; +exports.ecmaVersion = 11; + + +/***/ }), + +/***/ "./src/constants/NumbersString.ts": +/*!****************************************!*\ + !*** ./src/constants/NumbersString.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.numbersString = void 0; +exports.numbersString = '0123456789'; + + +/***/ }), + +/***/ "./src/container/InversifyContainerFacade.ts": +/*!***************************************************!*\ + !*** ./src/container/InversifyContainerFacade.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.InversifyContainerFacade = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ./ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const AnalyzersModule_1 = __webpack_require__(/*! ./modules/analyzers/AnalyzersModule */ "./src/container/modules/analyzers/AnalyzersModule.ts"); +const CodeTransformersModule_1 = __webpack_require__(/*! ./modules/code-transformers/CodeTransformersModule */ "./src/container/modules/code-transformers/CodeTransformersModule.ts"); +const ControlFlowTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ControlFlowTransformersModule */ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts"); +const ConvertingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ConvertingTransformersModule */ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts"); +const CustomCodeHelpersModule_1 = __webpack_require__(/*! ./modules/custom-code-helpers/CustomCodeHelpersModule */ "./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts"); +const CustomNodesModule_1 = __webpack_require__(/*! ./modules/custom-nodes/CustomNodesModule */ "./src/container/modules/custom-nodes/CustomNodesModule.ts"); +const FinalizingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/FinalizingTransformersModule */ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts"); +const GeneratorsModule_1 = __webpack_require__(/*! ./modules/generators/GeneratorsModule */ "./src/container/modules/generators/GeneratorsModule.ts"); +const InitializingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/InitializingTransformersModule */ "./src/container/modules/node-transformers/InitializingTransformersModule.ts"); +const MinificationTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/MinificationTransformersModule */ "./src/container/modules/node-transformers/MinificationTransformersModule.ts"); +const NodeModule_1 = __webpack_require__(/*! ./modules/node/NodeModule */ "./src/container/modules/node/NodeModule.ts"); +const NodeTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/NodeTransformersModule */ "./src/container/modules/node-transformers/NodeTransformersModule.ts"); +const ObfuscatingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ObfuscatingTransformersModule */ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts"); +const OptionsModule_1 = __webpack_require__(/*! ./modules/options/OptionsModule */ "./src/container/modules/options/OptionsModule.ts"); +const PreparingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/PreparingTransformersModule */ "./src/container/modules/node-transformers/PreparingTransformersModule.ts"); +const RenamePropertiesTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/RenamePropertiesTransformersModule */ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts"); +const StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts"); +const UtilsModule_1 = __webpack_require__(/*! ./modules/utils/UtilsModule */ "./src/container/modules/utils/UtilsModule.ts"); +const CodeTransformersRunner_1 = __webpack_require__(/*! ../code-transformers/CodeTransformersRunner */ "./src/code-transformers/CodeTransformersRunner.ts"); +const JavaScriptObfuscator_1 = __webpack_require__(/*! ../JavaScriptObfuscator */ "./src/JavaScriptObfuscator.ts"); +const Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts"); +const NodeTransformersRunner_1 = __webpack_require__(/*! ../node-transformers/NodeTransformersRunner */ "./src/node-transformers/NodeTransformersRunner.ts"); +const ObfuscationEventEmitter_1 = __webpack_require__(/*! ../event-emitters/ObfuscationEventEmitter */ "./src/event-emitters/ObfuscationEventEmitter.ts"); +const ObfuscatedCode_1 = __webpack_require__(/*! ../source-code/ObfuscatedCode */ "./src/source-code/ObfuscatedCode.ts"); +const SourceCode_1 = __webpack_require__(/*! ../source-code/SourceCode */ "./src/source-code/SourceCode.ts"); +class InversifyContainerFacade { + constructor() { + this.container = new inversify_1.Container(); + } + static getFactory(serviceIdentifier) { + return (context) => { + return (bindingName) => { + return context.container.getNamed(serviceIdentifier, bindingName); + }; + }; + } + static getCacheFactory(serviceIdentifier) { + return (context) => { + const cache = new Map(); + return (bindingName) => { + if (cache.has(bindingName)) { + return cache.get(bindingName); + } + const object = context.container.getNamed(serviceIdentifier, bindingName); + cache.set(bindingName, object); + return object; + }; + }; + } + static getConstructorFactory(serviceIdentifier, ...dependencies) { + return (context) => { + const cache = new Map(); + const cachedDependencies = []; + return (bindingName) => { + dependencies.forEach((dependency, index) => { + if (!cachedDependencies[index]) { + cachedDependencies[index] = context.container.get(dependency); + } + }); + if (cache.has(bindingName)) { + return new (cache.get(bindingName))(...cachedDependencies); + } + const constructor = context.container + .getNamed(serviceIdentifier, bindingName); + cache.set(bindingName, constructor); + return new constructor(...cachedDependencies); + }; + }; + } + get(serviceIdentifier) { + return this.container.get(serviceIdentifier); + } + getNamed(serviceIdentifier, named) { + return this.container.getNamed(serviceIdentifier, named); + } + load(sourceCode, sourceMap, options) { + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode) + .toDynamicValue(() => new SourceCode_1.SourceCode(sourceCode, sourceMap)) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions) + .toDynamicValue(() => options) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger) + .to(Logger_1.Logger) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator) + .to(JavaScriptObfuscator_1.JavaScriptObfuscator) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner) + .to(CodeTransformersRunner_1.CodeTransformersRunner) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner) + .to(NodeTransformersRunner_1.NodeTransformersRunner) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode) + .to(ObfuscatedCode_1.ObfuscatedCode); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode) + .toFactory((context) => { + return (obfuscatedCodeAsString, sourceMapAsString) => { + const obfuscatedCode = context.container + .get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode); + obfuscatedCode.initialize(obfuscatedCodeAsString, sourceMapAsString); + return obfuscatedCode; + }; + }); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter) + .to(ObfuscationEventEmitter_1.ObfuscationEventEmitter) + .inSingletonScope(); + this.container.load(AnalyzersModule_1.analyzersModule); + this.container.load(CodeTransformersModule_1.codeTransformersModule); + this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule); + this.container.load(ConvertingTransformersModule_1.convertingTransformersModule); + this.container.load(CustomCodeHelpersModule_1.customCodeHelpersModule); + this.container.load(CustomNodesModule_1.customNodesModule); + this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule); + this.container.load(GeneratorsModule_1.generatorsModule); + this.container.load(InitializingTransformersModule_1.initializingTransformersModule); + this.container.load(MinificationTransformersModule_1.minificationTransformersModule); + this.container.load(NodeModule_1.nodeModule); + this.container.load(NodeTransformersModule_1.nodeTransformersModule); + this.container.load(ObfuscatingTransformersModule_1.obfuscatingTransformersModule); + this.container.load(OptionsModule_1.optionsModule); + this.container.load(PreparingTransformersModule_1.preparingTransformersModule); + this.container.load(RenamePropertiesTransformersModule_1.renamePropertiesTransformersModule); + this.container.load(StoragesModule_1.storagesModule); + this.container.load(UtilsModule_1.utilsModule); + } + unload() { + this.container.unbindAll(); + } +} +exports.InversifyContainerFacade = InversifyContainerFacade; + + +/***/ }), + +/***/ "./src/container/ServiceIdentifiers.ts": +/*!*********************************************!*\ + !*** ./src/container/ServiceIdentifiers.ts ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ServiceIdentifiers = void 0; +var ServiceIdentifiers; +(function (ServiceIdentifiers) { + ServiceIdentifiers["Factory__ICalleeDataExtractor"] = "Factory"; + ServiceIdentifiers["Factory__ICodeTransformer"] = "Factory"; + ServiceIdentifiers["Factory__IControlFlowCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IControlFlowReplacer"] = "Factory"; + ServiceIdentifiers["Factory__ICustomCodeHelper"] = "Factory"; + ServiceIdentifiers["Factory__ICustomCodeHelperGroup"] = "Factory"; + ServiceIdentifiers["Factory__IDeadCodeInjectionCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IIdentifierNamesGenerator"] = "Factory"; + ServiceIdentifiers["Factory__IIdentifierObfuscatingReplacer"] = "Factory"; + ServiceIdentifiers["Factory__INodeGuard"] = "Factory"; + ServiceIdentifiers["Factory__INodeTransformer"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscatedCode"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscatingReplacer"] = "Factory"; + ServiceIdentifiers["Factory__IObjectExpressionKeysTransformerCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IObjectExpressionExtractor"] = "Factory"; + ServiceIdentifiers["Factory__TControlFlowStorage"] = "Factory"; + ServiceIdentifiers["IArrayUtils"] = "IArrayUtils"; + ServiceIdentifiers["ICalleeDataExtractor"] = "ICalleeDataExtractor"; + ServiceIdentifiers["ICallsGraphAnalyzer"] = "ICallsGraphAnalyzer"; + ServiceIdentifiers["ICodeTransformer"] = "ICodeTransformer"; + ServiceIdentifiers["ICodeTransformerNamesGroupsBuilder"] = "ICodeTransformerNamesGroupsBuilder"; + ServiceIdentifiers["ICodeTransformersRunner"] = "ICodeTransformersRunner"; + ServiceIdentifiers["ICryptUtils"] = "ICryptUtils"; + ServiceIdentifiers["ICustomCodeHelper"] = "ICustomCodeHelper"; + ServiceIdentifiers["ICustomCodeHelperGroup"] = "ICustomCodeHelperGroup"; + ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer"; + ServiceIdentifiers["ICustomCodeHelperFormatter"] = "ICustomCodeHelperFormatter"; + ServiceIdentifiers["ICustomCodeHelperObfuscator"] = "ICustomCodeHelperObfuscator"; + ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder"; + ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator"; + ServiceIdentifiers["IIdentifierObfuscatingReplacer"] = "IIdentifierObfuscatingReplacer"; + ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator"; + ServiceIdentifiers["ILevelledTopologicalSorter"] = "ILevelledTopologicalSorter"; + ServiceIdentifiers["ILogger"] = "ILogger"; + ServiceIdentifiers["INodeGuard"] = "INodeGuard"; + ServiceIdentifiers["INodeTransformer"] = "INodeTransformer"; + ServiceIdentifiers["INodeTransformerNamesGroupsBuilder"] = "INodeTransformerNamesGroupsBuilder"; + ServiceIdentifiers["IObfuscationEventEmitter"] = "IObfuscationEventEmitter"; + ServiceIdentifiers["IObfuscatedCode"] = "IObfuscatedCode"; + ServiceIdentifiers["IOptions"] = "IOptions"; + ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer"; + ServiceIdentifiers["IObfuscatingReplacer"] = "IObfuscatingReplacer"; + ServiceIdentifiers["IPrevailingKindOfVariablesAnalyzer"] = "IPrevailingKindOfVariablesAnalyzer"; + ServiceIdentifiers["IObjectExpressionExtractor"] = "IObjectExpressionExtractor"; + ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator"; + ServiceIdentifiers["IRenamePropertiesReplacer"] = "IRenamePropertiesReplacer"; + ServiceIdentifiers["IScopeIdentifiersTraverser"] = "IScopeIdentifiersTraverser"; + ServiceIdentifiers["ISourceCode"] = "ISourceCode"; + ServiceIdentifiers["IScopeAnalyzer"] = "IScopeAnalyzer"; + ServiceIdentifiers["IStringArrayStorage"] = "IStringArrayStorage"; + ServiceIdentifiers["IStringArrayStorageAnalyzer"] = "IStringArrayStorageAnalyzer"; + ServiceIdentifiers["INodeTransformersRunner"] = "INodeTransformersRunner"; + ServiceIdentifiers["Newable__ICustomNode"] = "Newable"; + ServiceIdentifiers["Newable__TControlFlowStorage"] = "Newable"; + ServiceIdentifiers["TCustomNodeGroupStorage"] = "TCustomNodeGroupStorage"; + ServiceIdentifiers["TInputOptions"] = "TInputOptions"; +})(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {})); + + +/***/ }), + +/***/ "./src/container/modules/analyzers/AnalyzersModule.ts": +/*!************************************************************!*\ + !*** ./src/container/modules/analyzers/AnalyzersModule.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.analyzersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const CalleeDataExtractor_1 = __webpack_require__(/*! ../../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts"); +const CallsGraphAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/CallsGraphAnalyzer */ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts"); +const FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts"); +const FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts"); +const ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts"); +const PrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer */ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts"); +const ScopeAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/scope-analyzer/ScopeAnalyzer */ "./src/analyzers/scope-analyzer/ScopeAnalyzer.ts"); +const StringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer */ "./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts"); +exports.analyzersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer) + .to(CallsGraphAnalyzer_1.CallsGraphAnalyzer) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer) + .to(PrevailingKindOfVariablesAnalyzer_1.PrevailingKindOfVariablesAnalyzer) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer) + .to(ScopeAnalyzer_1.ScopeAnalyzer) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer) + .to(StringArrayStorageAnalyzer_1.StringArrayStorageAnalyzer) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor) + .to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor) + .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor) + .to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor) + .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor) + .to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor) + .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)); +}); + + +/***/ }), + +/***/ "./src/container/modules/code-transformers/CodeTransformersModule.ts": +/*!***************************************************************************!*\ + !*** ./src/container/modules/code-transformers/CodeTransformersModule.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.codeTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const CodeTransformer_1 = __webpack_require__(/*! ../../../enums/code-transformers/CodeTransformer */ "./src/enums/code-transformers/CodeTransformer.ts"); +const CodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../code-transformers/CodeTransformerNamesGroupsBuilder */ "./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts"); +const HashbangOperatorTransformer_1 = __webpack_require__(/*! ../../../code-transformers/preparing-transformers/HashbangOperatorTransformer */ "./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts"); +exports.codeTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder) + .to(CodeTransformerNamesGroupsBuilder_1.CodeTransformerNamesGroupsBuilder) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer) + .to(HashbangOperatorTransformer_1.HashbangOperatorTransformer) + .whenTargetNamed(CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts": +/*!******************************************************************************!*\ + !*** ./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.customCodeHelpersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const CustomCodeHelperGroup_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelperGroup */ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts"); +const ConsoleOutputCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup */ "./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts"); +const DebugProtectionCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup */ "./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts"); +const DomainLockCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup */ "./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts"); +const SelfDefendingCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup */ "./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts"); +const StringArrayCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/group/StringArrayCodeHelperGroup */ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts"); +const ConsoleOutputDisableCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper */ "./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts"); +const CustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../custom-code-helpers/CustomCodeHelperFormatter */ "./src/custom-code-helpers/CustomCodeHelperFormatter.ts"); +const CustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../../custom-code-helpers/CustomCodeHelperObfuscator */ "./src/custom-code-helpers/CustomCodeHelperObfuscator.ts"); +const DebugProtectionFunctionCallCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts"); +const DebugProtectionFunctionIntervalCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts"); +const DebugProtectionFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts"); +const DomainLockCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/domain-lock/DomainLockCodeHelper */ "./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts"); +const CallsControllerFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper */ "./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts"); +const SelfDefendingUnicodeCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper */ "./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts"); +const StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts"); +const StringArrayCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts"); +const StringArrayRotateFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts"); +exports.customCodeHelpersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(ConsoleOutputDisableCodeHelper_1.ConsoleOutputDisableCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(DebugProtectionFunctionCallCodeHelper_1.DebugProtectionFunctionCallCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(DebugProtectionFunctionIntervalCodeHelper_1.DebugProtectionFunctionIntervalCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(DebugProtectionFunctionCodeHelper_1.DebugProtectionFunctionCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(DomainLockCodeHelper_1.DomainLockCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DomainLock); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(CallsControllerFunctionCodeHelper_1.CallsControllerFunctionCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(SelfDefendingUnicodeCodeHelper_1.SelfDefendingUnicodeCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(StringArrayCodeHelper_1.StringArrayCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArray); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(StringArrayRotateFunctionCodeHelper_1.StringArrayRotateFunctionCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(ConsoleOutputCodeHelperGroup_1.ConsoleOutputCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(DebugProtectionCodeHelperGroup_1.DebugProtectionCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(DomainLockCustomCodeHelperGroup_1.DomainLockCustomCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(SelfDefendingCodeHelperGroup_1.SelfDefendingCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(StringArrayCodeHelperGroup_1.StringArrayCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter) + .to(CustomCodeHelperFormatter_1.CustomCodeHelperFormatter) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator) + .to(CustomCodeHelperObfuscator_1.CustomCodeHelperObfuscator) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/custom-nodes/CustomNodesModule.ts": +/*!*****************************************************************!*\ + !*** ./src/container/modules/custom-nodes/CustomNodesModule.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.customNodesModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts"); +const ObjectExpressionKeysTransformerCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode */ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts"); +const ObjectExpressionVariableDeclarationHostNode_1 = __webpack_require__(/*! ../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode */ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts"); +const BinaryExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts"); +const BlockStatementControlFlowFlatteningNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode */ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts"); +const BlockStatementDeadCodeInjectionNode_1 = __webpack_require__(/*! ../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode */ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts"); +const CallExpressionControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts"); +const CallExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts"); +const ControlFlowStorageNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts"); +const ExpressionWithOperatorControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts"); +const LogicalExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts"); +const StringLiteralControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts"); +const StringLiteralNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode */ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts"); +exports.customNodesModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(StringLiteralNode_1.StringLiteralNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode) + .whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(ObjectExpressionVariableDeclarationHostNode_1.ObjectExpressionVariableDeclarationHostNode) + .whenTargetNamed(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions, ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions, ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)); +}); + + +/***/ }), + +/***/ "./src/container/modules/generators/GeneratorsModule.ts": +/*!**************************************************************!*\ + !*** ./src/container/modules/generators/GeneratorsModule.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.generatorsModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +const DictionaryIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts"); +const HexadecimalIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts"); +const MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts"); +exports.generatorsModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator) + .to(DictionaryIdentifierNamesGenerator_1.DictionaryIdentifierNamesGenerator) + .inSingletonScope() + .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator) + .to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator) + .inSingletonScope() + .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator) + .to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator) + .inSingletonScope() + .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator); + function identifierNameGeneratorFactory() { + let cachedIdentifierNamesGenerator = null; + return (context) => (options) => { + if (cachedIdentifierNamesGenerator) { + return cachedIdentifierNamesGenerator; + } + let identifierNamesGenerator; + switch (options.identifierNamesGenerator) { + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator); + break; + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator); + break; + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator: + default: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator); + } + cachedIdentifierNamesGenerator = identifierNamesGenerator; + return identifierNamesGenerator; + }; + } + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator) + .toFactory(identifierNameGeneratorFactory()); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ControlFlowTransformersModule.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.controlFlowTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ControlFlowReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const BinaryExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts"); +const BlockStatementControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts"); +const CallExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts"); +const DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts"); +const FunctionControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts"); +const LogicalExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts"); +const StringLiteralControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts"); +exports.controlFlowTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer) + .to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer) + .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer) + .to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer) + .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer) + .to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer) + .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer) + .to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer) + .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ConvertingTransformersModule.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.convertingTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts"); +const ObjectExpressionToVariableDeclarationExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts"); +const MemberExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MemberExpressionTransformer */ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts"); +const MethodDefinitionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MethodDefinitionTransformer */ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts"); +const ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts"); +const ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts"); +const SplitStringTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/SplitStringTransformer */ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts"); +const TemplateLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/TemplateLiteralTransformer */ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts"); +const BasePropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts"); +exports.convertingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(MemberExpressionTransformer_1.MemberExpressionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(MethodDefinitionTransformer_1.MethodDefinitionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ObjectExpressionTransformer_1.ObjectExpressionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(SplitStringTransformer_1.SplitStringTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.SplitStringTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(TemplateLiteralTransformer_1.TemplateLiteralTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor) + .to(ObjectExpressionToVariableDeclarationExtractor_1.ObjectExpressionToVariableDeclarationExtractor) + .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor) + .to(BasePropertiesExtractor_1.BasePropertiesExtractor) + .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.finalizingTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +exports.finalizingTransformersModule = new inversify_1.ContainerModule((bind) => { +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/InitializingTransformersModule.ts": +/*!***********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/InitializingTransformersModule.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.initializingTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const CommentsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/initializing-transformers/CommentsTransformer */ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts"); +exports.initializingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(CommentsTransformer_1.CommentsTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/MinificationTransformersModule.ts": +/*!***********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/MinificationTransformersModule.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.minificationTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const IfStatementSimplifyTransformer_1 = __webpack_require__(/*! ../../../node-transformers/minification-transformers/IfStatementSimplifyTransformer */ "./src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts"); +const VariableDeclarationsMergeTransformer_1 = __webpack_require__(/*! ../../../node-transformers/minification-transformers/VariableDeclarationsMergeTransformer */ "./src/node-transformers/minification-transformers/VariableDeclarationsMergeTransformer.ts"); +exports.minificationTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(IfStatementSimplifyTransformer_1.IfStatementSimplifyTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(VariableDeclarationsMergeTransformer_1.VariableDeclarationsMergeTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/NodeTransformersModule.ts": +/*!***************************************************************************!*\ + !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.nodeTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../node-transformers/NodeTransformerNamesGroupsBuilder */ "./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts"); +exports.nodeTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder) + .to(NodeTransformerNamesGroupsBuilder_1.NodeTransformerNamesGroupsBuilder) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.obfuscatingTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); +const LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const BaseIdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts"); +const BooleanLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts"); +const LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer */ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts"); +const LiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LiteralTransformer */ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts"); +const NumberLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts"); +const StringLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts"); +const ScopeIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer */ "./src/node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer.ts"); +exports.obfuscatingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(LabeledStatementTransformer_1.LabeledStatementTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(LiteralTransformer_1.LiteralTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.LiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ScopeIdentifiersTransformer_1.ScopeIdentifiersTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer) + .to(BooleanLiteralObfuscatingReplacer_1.BooleanLiteralObfuscatingReplacer) + .whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer) + .to(NumberLiteralObfuscatingReplacer_1.NumberLiteralObfuscatingReplacer) + .whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer) + .to(StringLiteralObfuscatingReplacer_1.StringLiteralObfuscatingReplacer) + .whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer) + .to(BaseIdentifierObfuscatingReplacer_1.BaseIdentifierObfuscatingReplacer) + .whenTargetNamed(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/PreparingTransformersModule.ts": +/*!********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.preparingTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ObfuscatingGuard_1 = __webpack_require__(/*! ../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts"); +const BlackListObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts"); +const ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts"); +const CustomCodeHelpersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer */ "./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts"); +const EvalCallExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer */ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts"); +const MetadataTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/MetadataTransformer */ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts"); +const ObfuscatingGuardsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer */ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts"); +const ParentificationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ParentificationTransformer */ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts"); +const ReservedStringObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts"); +const VariablePreserveTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/VariablePreserveTransformer */ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts"); +exports.preparingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(CustomCodeHelpersTransformer_1.CustomCodeHelpersTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(EvalCallExpressionTransformer_1.EvalCallExpressionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(MetadataTransformer_1.MetadataTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ParentificationTransformer_1.ParentificationTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(ReservedStringObfuscatingGuard_1.ReservedStringObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(VariablePreserveTransformer_1.VariablePreserveTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts": +/*!***************************************************************************************!*\ + !*** ./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.renamePropertiesTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const RenamePropertiesReplacer_1 = __webpack_require__(/*! ../../../node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer */ "./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts"); +const RenamePropertiesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-properties-transformers/RenamePropertiesTransformer */ "./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts"); +exports.renamePropertiesTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(RenamePropertiesTransformer_1.RenamePropertiesTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer) + .to(RenamePropertiesReplacer_1.RenamePropertiesReplacer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node/NodeModule.ts": +/*!**************************************************!*\ + !*** ./src/container/modules/node/NodeModule.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.nodeModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../../node/ScopeIdentifiersTraverser */ "./src/node/ScopeIdentifiersTraverser.ts"); +exports.nodeModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser) + .to(ScopeIdentifiersTraverser_1.ScopeIdentifiersTraverser) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/options/OptionsModule.ts": +/*!********************************************************!*\ + !*** ./src/container/modules/options/OptionsModule.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.optionsModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const Options_1 = __webpack_require__(/*! ../../../options/Options */ "./src/options/Options.ts"); +const OptionsNormalizer_1 = __webpack_require__(/*! ../../../options/OptionsNormalizer */ "./src/options/OptionsNormalizer.ts"); +exports.optionsModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions) + .to(Options_1.Options) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer) + .to(OptionsNormalizer_1.OptionsNormalizer) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/storages/StoragesModule.ts": +/*!**********************************************************!*\ + !*** ./src/container/modules/storages/StoragesModule.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.storagesModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ControlFlowStorage_1 = __webpack_require__(/*! ../../../storages/custom-nodes/ControlFlowStorage */ "./src/storages/custom-nodes/ControlFlowStorage.ts"); +const CustomCodeHelperGroupStorage_1 = __webpack_require__(/*! ../../../storages/custom-code-helpers/CustomCodeHelperGroupStorage */ "./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts"); +const StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array/StringArrayStorage */ "./src/storages/string-array/StringArrayStorage.ts"); +exports.storagesModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage) + .to(CustomCodeHelperGroupStorage_1.CustomCodeHelperGroupStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage) + .to(StringArrayStorage_1.StringArrayStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage) + .toConstructor(ControlFlowStorage_1.ControlFlowStorage); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage) + .toFactory((context) => { + return () => { + const constructor = context.container + .get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage); + const randomGenerator = context.container + .get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator); + const options = context.container + .get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions); + const storage = new constructor(randomGenerator, options); + storage.initialize(); + return storage; + }; + }); +}); + + +/***/ }), + +/***/ "./src/container/modules/utils/UtilsModule.ts": +/*!****************************************************!*\ + !*** ./src/container/modules/utils/UtilsModule.ts ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.utilsModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ArrayUtils_1 = __webpack_require__(/*! ../../../utils/ArrayUtils */ "./src/utils/ArrayUtils.ts"); +const CryptUtils_1 = __webpack_require__(/*! ../../../utils/CryptUtils */ "./src/utils/CryptUtils.ts"); +const EscapeSequenceEncoder_1 = __webpack_require__(/*! ../../../utils/EscapeSequenceEncoder */ "./src/utils/EscapeSequenceEncoder.ts"); +const LevelledTopologicalSorter_1 = __webpack_require__(/*! ../../../utils/LevelledTopologicalSorter */ "./src/utils/LevelledTopologicalSorter.ts"); +const RandomGenerator_1 = __webpack_require__(/*! ../../../utils/RandomGenerator */ "./src/utils/RandomGenerator.ts"); +exports.utilsModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils) + .to(ArrayUtils_1.ArrayUtils) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator) + .to(RandomGenerator_1.RandomGenerator) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils) + .to(CryptUtils_1.CryptUtils) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder) + .to(EscapeSequenceEncoder_1.EscapeSequenceEncoder) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter) + .to(LevelledTopologicalSorter_1.LevelledTopologicalSorter); +}); + + +/***/ }), + +/***/ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts": +/*!*************************************************************!*\ + !*** ./src/custom-code-helpers/AbstractCustomCodeHelper.ts ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var AbstractCustomCodeHelper_1, _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCustomCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const GlobalVariableTemplate1_1 = __webpack_require__(/*! ./common/templates/GlobalVariableTemplate1 */ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts"); +const GlobalVariableTemplate2_1 = __webpack_require__(/*! ./common/templates/GlobalVariableTemplate2 */ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts"); +let AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = class AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + this.cachedNode = null; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.customCodeHelperFormatter = customCodeHelperFormatter; + this.customCodeHelperObfuscator = customCodeHelperObfuscator; + this.randomGenerator = randomGenerator; + this.options = options; + } + getNode() { + if (!this.cachedNode) { + const codeHelperTemplate = this.getCodeHelperTemplate(); + this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(codeHelperTemplate)); + } + return this.cachedNode; + } + getGlobalVariableTemplate() { + return this.randomGenerator + .getRandomGenerator() + .pickone(AbstractCustomCodeHelper_1.globalVariableTemplateFunctions); + } + getCodeHelperTemplate() { + return ''; + } +}; +AbstractCustomCodeHelper.globalVariableTemplateFunctions = [ + GlobalVariableTemplate1_1.GlobalVariableTemplate1(), + GlobalVariableTemplate2_1.GlobalVariableTemplate2() +]; +AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], AbstractCustomCodeHelper); +exports.AbstractCustomCodeHelper = AbstractCustomCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts": +/*!******************************************************************!*\ + !*** ./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCustomCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractCustomCodeHelperGroup = class AbstractCustomCodeHelperGroup { + constructor(identifierNamesGeneratorFactory, randomGenerator, options) { + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.randomGenerator = randomGenerator; + this.options = options; + } + getAppendEvent() { + return this.appendEvent; + } + getCustomCodeHelpers() { + return this.customCodeHelpers; + } + appendCustomNodeIfExist(customCodeHelperName, callback) { + const customCodeHelper = this.customCodeHelpers.get(customCodeHelperName); + if (!customCodeHelper) { + return; + } + callback(customCodeHelper); + } + getRandomCallsGraphIndex(callsGraphLength) { + return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(callsGraphLength - 1))); + } +}; +AbstractCustomCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], AbstractCustomCodeHelperGroup); +exports.AbstractCustomCodeHelperGroup = AbstractCustomCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/CustomCodeHelperFormatter.ts": +/*!**************************************************************!*\ + !*** ./src/custom-code-helpers/CustomCodeHelperFormatter.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelperFormatter = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const string_template_1 = __importDefault(__webpack_require__(/*! string-template */ "string-template")); +const IPrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let CustomCodeHelperFormatter = class CustomCodeHelperFormatter { + constructor(prevailingKindOfVariablesAnalyzer) { + this.prevailingKindOfVariables = prevailingKindOfVariablesAnalyzer.getPrevailingKind(); + } + formatTemplate(template, mapping) { + return string_template_1.default(template, mapping); + } + formatStructure(statements) { + for (const statement of statements) { + estraverse.replace(statement, { + enter: (node) => { + if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) { + return; + } + if (this.prevailingKindOfVariables === 'var') { + node.kind = 'var'; + } + return node; + } + }); + } + return statements; + } +}; +CustomCodeHelperFormatter = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)), + __metadata("design:paramtypes", [typeof (_a = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== "undefined" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === "function" ? _a : Object]) +], CustomCodeHelperFormatter); +exports.CustomCodeHelperFormatter = CustomCodeHelperFormatter; + + +/***/ }), + +/***/ "./src/custom-code-helpers/CustomCodeHelperObfuscator.ts": +/*!***************************************************************!*\ + !*** ./src/custom-code-helpers/CustomCodeHelperObfuscator.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelperObfuscator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NoCustomNodes_1 = __webpack_require__(/*! ../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); +const JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); +let CustomCodeHelperObfuscator = class CustomCodeHelperObfuscator { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } + obfuscateTemplate(template, additionalOptions = {}) { + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(template, Object.assign(Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), { identifierNamesGenerator: this.options.identifierNamesGenerator, identifiersDictionary: this.options.identifiersDictionary, seed: this.randomGenerator.getRawSeed() }), additionalOptions)).getObfuscatedCode(); + } +}; +CustomCodeHelperObfuscator = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], CustomCodeHelperObfuscator); +exports.CustomCodeHelperObfuscator = CustomCodeHelperObfuscator; + + +/***/ }), + +/***/ "./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts": +/*!***************************************************************************************!*\ + !*** ./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallsControllerFunctionCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const SingleCallControllerTemplate_1 = __webpack_require__(/*! ../common/templates/SingleCallControllerTemplate */ "./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let CallsControllerFunctionCodeHelper = class CallsControllerFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(appendEvent, callsControllerFunctionName) { + this.appendEvent = appendEvent; + this.callsControllerFunctionName = callsControllerFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) { + return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), { + callControllerFunctionName: this.callsControllerFunctionName + })); + } + return this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), { + callControllerFunctionName: this.callsControllerFunctionName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], CallsControllerFunctionCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof ObfuscationEvent_1.ObfuscationEvent !== "undefined" && ObfuscationEvent_1.ObfuscationEvent) === "function" ? _a : Object) +], CallsControllerFunctionCodeHelper.prototype, "appendEvent", void 0); +CallsControllerFunctionCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], CallsControllerFunctionCodeHelper); +exports.CallsControllerFunctionCodeHelper = CallsControllerFunctionCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GlobalVariableNoEvalTemplate = void 0; +function GlobalVariableNoEvalTemplate() { + return ` + const that = (typeof window !== 'undefined' + ? window + : (typeof process === 'object' && + typeof require === 'function' && + typeof global === 'object') + ? global + : this); + `; +} +exports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GlobalVariableTemplate1 = void 0; +function GlobalVariableTemplate1() { + return ` + let that; + + try { + const getGlobal = Function('return (function() ' + '{}.constructor("return this")( )' + ');'); + + that = getGlobal(); + } catch (e) { + that = window; + } + `; +} +exports.GlobalVariableTemplate1 = GlobalVariableTemplate1; + + +/***/ }), + +/***/ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GlobalVariableTemplate2 = void 0; +function GlobalVariableTemplate2() { + return ` + const getGlobal = function () { + let globalObject; + + try { + globalObject = Function('return (function() ' + '{}.constructor("return this")( )' + ');')(); + } catch (e) { + globalObject = window; + } + + return globalObject; + }; + const that = getGlobal(); + `; +} +exports.GlobalVariableTemplate2 = GlobalVariableTemplate2; + + +/***/ }), + +/***/ "./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SingleCallControllerTemplate = void 0; +function SingleCallControllerTemplate() { + return ` + const {callControllerFunctionName} = (function(){ + let firstCall = true; + + return function (context, fn){ + const rfn = firstCall ? function(){ + if(fn){ + const res = fn.apply(context, arguments); + fn = null; + return res; + } + } : function(){} + + firstCall = false; + + return rfn; + } + })(); + `; +} +exports.SingleCallControllerTemplate = SingleCallControllerTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ConsoleOutputDisableCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(/*! ./templates/ConsoleOutputDisableExpressionTemplate */ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableExpressionTemplate.ts"); +const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ConsoleOutputDisableCodeHelper = class ConsoleOutputDisableCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(callsControllerFunctionName, consoleOutputDisableFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + this.consoleOutputDisableFunctionName = consoleOutputDisableFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? this.getGlobalVariableTemplate() + : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + return this.customCodeHelperFormatter.formatTemplate(ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate(), { + callControllerFunctionName: this.callsControllerFunctionName, + consoleLogDisableFunctionName: this.consoleOutputDisableFunctionName, + globalVariableTemplate + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ConsoleOutputDisableCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ConsoleOutputDisableCodeHelper.prototype, "consoleOutputDisableFunctionName", void 0); +ConsoleOutputDisableCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], ConsoleOutputDisableCodeHelper); +exports.ConsoleOutputDisableCodeHelper = ConsoleOutputDisableCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ConsoleOutputCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ConsoleOutputCodeHelperGroup = class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendNodes(nodeWithStatements, callsGraphData) { + var _a; + if (!this.options.disableConsoleOutput) { + return; + } + const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length); + const consoleOutputDisableHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex) + : nodeWithStatements; + const callsControllerHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1) + : nodeWithStatements; + const consoleOutputDisableLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils + .getLexicalScope(consoleOutputDisableHostNode)) !== null && _a !== void 0 ? _a : null; + const consoleOutputDisableFunctionName = consoleOutputDisableLexicalScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(consoleOutputDisableLexicalScopeNode) + ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode) + : this.randomGenerator.getRandomString(5); + const callsControllerFunctionName = consoleOutputDisableLexicalScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(consoleOutputDisableLexicalScopeNode) + ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode) + : this.randomGenerator.getRandomString(5); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, (customCodeHelper) => { + customCodeHelper.initialize(callsControllerFunctionName, consoleOutputDisableFunctionName); + NodeAppender_1.NodeAppender.prepend(consoleOutputDisableHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => { + customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode()); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.disableConsoleOutput) { + return; + } + const consoleOutputDisableExpressionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable); + const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, consoleOutputDisableExpressionCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], ConsoleOutputCodeHelperGroup.prototype, "customCodeHelpers", void 0); +ConsoleOutputCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], ConsoleOutputCodeHelperGroup); +exports.ConsoleOutputCodeHelperGroup = ConsoleOutputCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableExpressionTemplate.ts": +/*!****************************************************************************************************!*\ + !*** ./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableExpressionTemplate.ts ***! + \****************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ConsoleOutputDisableExpressionTemplate = void 0; +function ConsoleOutputDisableExpressionTemplate() { + return ` + const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () { + const func = function () {}; + + {globalVariableTemplate} + + if (!that.console) { + that.console = (function (func){ + const c = {}; + + c.log = func; + c.warn = func; + c.debug = func; + c.info = func; + c.error = func; + c.exception = func; + c.table = func; + c.trace = func; + + return c; + })(func); + } else { + that.console.log = func; + that.console.warn = func; + that.console.debug = func; + that.console.info = func; + that.console.error = func; + that.console.exception = func; + that.console.table = func; + that.console.trace = func; + } + }); + + {consoleLogDisableFunctionName}(); + `; +} +exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts": +/*!*******************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionCallCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const DebugProtectionFunctionCallTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DebugProtectionFunctionCallCodeHelper = class DebugProtectionFunctionCallCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(debugProtectionFunctionName, callsControllerFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + this.callsControllerFunctionName = callsControllerFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), { + debugProtectionFunctionName: this.debugProtectionFunctionName, + callControllerFunctionName: this.callsControllerFunctionName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DebugProtectionFunctionCallCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DebugProtectionFunctionCallCodeHelper.prototype, "debugProtectionFunctionName", void 0); +DebugProtectionFunctionCallCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DebugProtectionFunctionCallCodeHelper); +exports.DebugProtectionFunctionCallCodeHelper = DebugProtectionFunctionCallCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts": +/*!***************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const DebuggerTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebuggerTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts"); +const DebuggerTemplateNoEval_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebuggerTemplateNoEval */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts"); +const DebugProtectionFunctionTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebugProtectionFunctionTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DebugProtectionFunctionCodeHelper = class DebugProtectionFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(debugProtectionFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? DebuggerTemplate_1.DebuggerTemplate() + : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval(); + return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), { + debuggerTemplate, + debugProtectionFunctionName: this.debugProtectionFunctionName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DebugProtectionFunctionCodeHelper.prototype, "debugProtectionFunctionName", void 0); +DebugProtectionFunctionCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DebugProtectionFunctionCodeHelper); +exports.DebugProtectionFunctionCodeHelper = DebugProtectionFunctionCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts": +/*!***********************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts ***! + \***********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionIntervalCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DebugProtectionFunctionIntervalCodeHelper = class DebugProtectionFunctionIntervalCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(debugProtectionFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), { + debugProtectionFunctionName: this.debugProtectionFunctionName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DebugProtectionFunctionIntervalCodeHelper.prototype, "debugProtectionFunctionName", void 0); +DebugProtectionFunctionIntervalCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DebugProtectionFunctionIntervalCodeHelper); +exports.DebugProtectionFunctionIntervalCodeHelper = DebugProtectionFunctionIntervalCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts": +/*!******************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let DebugProtectionCodeHelperGroup = class DebugProtectionCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendNodes(nodeWithStatements, callsGraphData) { + var _a; + if (!this.options.debugProtection) { + return; + } + const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length); + const debugProtectionFunctionCallHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex) + : nodeWithStatements; + const callsControllerHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1) + : nodeWithStatements; + const debugProtectionFunctionCallScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils + .getLexicalScope(debugProtectionFunctionCallHostNode)) !== null && _a !== void 0 ? _a : null; + const debugProtectionFunctionName = debugProtectionFunctionCallScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(debugProtectionFunctionCallScopeNode) + ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode) + : this.randomGenerator.getRandomString(5); + const callsControllerFunctionName = debugProtectionFunctionCallScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(debugProtectionFunctionCallScopeNode) + ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode) + : this.randomGenerator.getRandomString(5); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, (customCodeHelper) => { + customCodeHelper.initialize(debugProtectionFunctionName, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(debugProtectionFunctionCallHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => { + customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, (customCodeHelper) => { + customCodeHelper.initialize(debugProtectionFunctionName); + NodeAppender_1.NodeAppender.append(nodeWithStatements, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, (customCodeHelper) => { + const programBodyLength = NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements) + ? nodeWithStatements.consequent.length + : nodeWithStatements.body.length; + const randomIndex = this.randomGenerator.getRandomInteger(0, programBodyLength); + customCodeHelper.initialize(debugProtectionFunctionName); + NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), randomIndex); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.debugProtection) { + return; + } + const debugProtectionFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction); + const debugProtectionFunctionCallCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall); + const debugProtectionFunctionIntervalCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval); + const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, debugProtectionFunctionCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, debugProtectionFunctionCallCodeHelper); + if (this.options.debugProtectionInterval) { + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, debugProtectionFunctionIntervalCodeHelper); + } + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], DebugProtectionCodeHelperGroup.prototype, "customCodeHelpers", void 0); +DebugProtectionCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DebugProtectionCodeHelperGroup); +exports.DebugProtectionCodeHelperGroup = DebugProtectionCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts": +/*!**********************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts ***! + \**********************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionCallTemplate = void 0; +function DebugProtectionFunctionCallTemplate() { + return ` + (function () { + {callControllerFunctionName}( + this, + function () { + const regExp1 = new RegExp('function *\\\\( *\\\\)'); + const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i'); + + const result = {debugProtectionFunctionName}('init'); + + if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) { + result('0'); + } else { + {debugProtectionFunctionName}(); + } + } + )(); + })(); + `; +} +exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts": +/*!******************************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts ***! + \******************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionIntervalTemplate = void 0; +function DebugProtectionFunctionIntervalTemplate() { + return ` + setInterval(function () { + {debugProtectionFunctionName}(); + }, 4000); + `; +} +exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts": +/*!*************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts ***! + \*************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionTemplate = void 0; +function DebugProtectionFunctionTemplate() { + return ` + function {debugProtectionFunctionName} (ret) { + function debuggerProtection (counter) { + + {debuggerTemplate} + + debuggerProtection(++counter); + } + + try { + if (ret) { + return debuggerProtection; + } else { + debuggerProtection(0); + } + } catch (y) {} + } + `; +} +exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebuggerTemplate = void 0; +function DebuggerTemplate() { + return ` + if (typeof counter === 'string') { + return (function (arg) {}.constructor('while (true) {}').apply('counter')); + } else { + if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) { + (function () {return true;}.constructor('debu' + 'gger').call('action')); + } else { + (function () {return false;}.constructor('debu' + 'gger').apply('stateObject')); + } + + } + `; +} +exports.DebuggerTemplate = DebuggerTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts": +/*!****************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts ***! + \****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebuggerTemplateNoEval = void 0; +function DebuggerTemplateNoEval() { + return ` + if (typeof counter === 'string') { + const func = function () { + while (true) {} + }; + + return func(); + } else { + if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) { + debugger; + } else { + debugger; + } + + } + `; +} +exports.DebuggerTemplateNoEval = DebuggerTemplateNoEval; + + +/***/ }), + +/***/ "./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts": +/*!*********************************************************************!*\ + !*** ./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DomainLockCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const ICryptUtils_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const DomainLockTemplate_1 = __webpack_require__(/*! ./templates/DomainLockTemplate */ "./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts"); +const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DomainLockCodeHelper = class DomainLockCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, cryptUtils) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + this.cryptUtils = cryptUtils; + } + initialize(callsControllerFunctionName, domainLockFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + this.domainLockFunctionName = domainLockFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const domainsString = this.options.domainLock.join(';'); + const [hiddenDomainsString, diff] = this.cryptUtils.hideString(domainsString, domainsString.length * 3); + const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? this.getGlobalVariableTemplate() + : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + return this.customCodeHelperFormatter.formatTemplate(DomainLockTemplate_1.DomainLockTemplate(), { + callControllerFunctionName: this.callsControllerFunctionName, + domainLockFunctionName: this.domainLockFunctionName, + diff, + domains: hiddenDomainsString, + globalVariableTemplate + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DomainLockCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DomainLockCodeHelper.prototype, "domainLockFunctionName", void 0); +DomainLockCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _f : Object]) +], DomainLockCodeHelper); +exports.DomainLockCodeHelper = DomainLockCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DomainLockCustomCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let DomainLockCustomCodeHelperGroup = class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendNodes(nodeWithStatements, callsGraphData) { + var _a; + if (!this.options.domainLock.length) { + return; + } + const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length); + const domainLockFunctionHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex) + : nodeWithStatements; + const callsControllerHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1) + : nodeWithStatements; + const domainLockFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils + .getLexicalScope(domainLockFunctionHostNode)) !== null && _a !== void 0 ? _a : null; + const domainLockFunctionName = domainLockFunctionLexicalScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(domainLockFunctionLexicalScopeNode) + ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = domainLockFunctionLexicalScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(domainLockFunctionLexicalScopeNode) + ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DomainLock, (customCodeHelper) => { + customCodeHelper.initialize(callsControllerFunctionName, domainLockFunctionName); + NodeAppender_1.NodeAppender.prepend(domainLockFunctionHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => { + customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode()); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.domainLock.length) { + return; + } + const domainLockCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DomainLock); + const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DomainLock, domainLockCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], DomainLockCustomCodeHelperGroup.prototype, "customCodeHelpers", void 0); +DomainLockCustomCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DomainLockCustomCodeHelperGroup); +exports.DomainLockCustomCodeHelperGroup = DomainLockCustomCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DomainLockTemplate = void 0; +function DomainLockTemplate() { + return ` + const {domainLockFunctionName} = {callControllerFunctionName}(this, function () { + + {globalVariableTemplate} + + const func = function () { + return { + key: 'item', + value: 'attribute', + getAttribute: function () { + for (let i = 0; i < 1000; i--) { + const isPositive = i > 0; + + switch (isPositive) { + case true: + return this.item + '_' + this.value + '_' + i; + default: + this.item + '_' + this.value; + } + } + }() + }; + }; + + const regExp = new RegExp("[{diff}]", "g"); + const domains = "{domains}".replace(regExp, "").split(";"); + let document; + let domain; + let location; + let hostname; + + for (let d in that) { + if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) { + document = d; + + break; + } + } + + for (let d1 in that[document]) { + if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) { + domain = d1; + + break; + } + } + + if (!("~" > domain)) { + for (let d2 in that[document]) { + if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) { + location = d2; + + break; + } + } + + for (let d3 in that[document][location]) { + if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) { + hostname = d3; + + break; + } + } + } + + if (!document || !that[document]) { + return; + } + + const documentDomain = that[document][domain]; + const documentLocationHostName = !!that[document][location] && that[document][location][hostname]; + const currentDomain = documentDomain || documentLocationHostName; + + if (!currentDomain) { + return; + } + + let ok = false; + + for (let i = 0; i < domains.length; i++) { + const domain = domains[i]; + const position = currentDomain.length - domain.length; + const lastIndex = currentDomain.indexOf(domain, position); + const endsWith = lastIndex !== -1 && lastIndex === position; + + if (endsWith) { + if (currentDomain.length == domain.length || domain.indexOf(".") === 0) { + ok = true; + } + } + } + + if (!ok) { + data; + } else { + return; + } + + func(); + }); + + {domainLockFunctionName}(); + `; +} +exports.DomainLockTemplate = DomainLockTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingUnicodeCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/SelfDefendingTemplate */ "./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts"); +const SelfDefendingNoEvalTemplate_1 = __webpack_require__(/*! ./templates/SelfDefendingNoEvalTemplate */ "./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts"); +let SelfDefendingUnicodeCodeHelper = class SelfDefendingUnicodeCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(callsControllerFunctionName, selfDefendingFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + this.selfDefendingFunctionName = selfDefendingFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? this.getGlobalVariableTemplate() + : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + const selfDefendingTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? SelfDefendingTemplate_1.SelfDefendingTemplate() + : SelfDefendingNoEvalTemplate_1.SelfDefendingNoEvalTemplate(); + return this.customCodeHelperFormatter.formatTemplate(selfDefendingTemplate, { + callControllerFunctionName: this.callsControllerFunctionName, + selfDefendingFunctionName: this.selfDefendingFunctionName, + globalVariableTemplate + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], SelfDefendingUnicodeCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], SelfDefendingUnicodeCodeHelper.prototype, "selfDefendingFunctionName", void 0); +SelfDefendingUnicodeCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], SelfDefendingUnicodeCodeHelper); +exports.SelfDefendingUnicodeCodeHelper = SelfDefendingUnicodeCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let SelfDefendingCodeHelperGroup = class SelfDefendingCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendNodes(nodeWithStatements, callsGraphData) { + var _a; + if (!this.options.selfDefending) { + return; + } + const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length); + const selfDefendingFunctionHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex) + : nodeWithStatements; + const callsControllerHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1) + : nodeWithStatements; + const selfDefendingFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils + .getLexicalScope(selfDefendingFunctionHostNode)) !== null && _a !== void 0 ? _a : null; + const selfDefendingFunctionName = selfDefendingFunctionLexicalScopeNode + ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = selfDefendingFunctionLexicalScopeNode + ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, (customCodeHelper) => { + customCodeHelper.initialize(callsControllerFunctionName, selfDefendingFunctionName); + NodeAppender_1.NodeAppender.prepend(selfDefendingFunctionHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => { + customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode()); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.selfDefending) { + return; + } + const selfDefendingUnicodeCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode); + const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, selfDefendingUnicodeCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], SelfDefendingCodeHelperGroup.prototype, "customCodeHelpers", void 0); +SelfDefendingCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], SelfDefendingCodeHelperGroup); +exports.SelfDefendingCodeHelperGroup = SelfDefendingCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingNoEvalTemplate = void 0; +function SelfDefendingNoEvalTemplate() { + return ` + const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () { + {globalVariableTemplate} + + const test = function () { + const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}'); + + return !regExp.test({selfDefendingFunctionName}); + }; + + return test(); + }); + + {selfDefendingFunctionName}(); + `; +} +exports.SelfDefendingNoEvalTemplate = SelfDefendingNoEvalTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts": +/*!***********************************************************************************!*\ + !*** ./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingTemplate = void 0; +function SelfDefendingTemplate() { + return ` + const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () { + const test = function () { + const regExp = test + .constructor('return /" + this + "/')() + .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}'); + + return !regExp.test({selfDefendingFunctionName}); + }; + + return test(); + }); + + {selfDefendingFunctionName}(); + `; +} +exports.SelfDefendingTemplate = SelfDefendingTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts": +/*!***********************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayCallsWrapperCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AtobTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/AtobTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts"); +const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts"); +const Rc4Template_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/Rc4Template */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts"); +const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/SelfDefendingTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts"); +const StringArrayBase64DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts"); +const StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts"); +const StringArrayRC4DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayCallsWrapperCodeHelper = class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + this.escapeSequenceEncoder = escapeSequenceEncoder; + } + initialize(stringArrayName, stringArrayCallsWrapperName) { + this.stringArrayName = stringArrayName; + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const decodeCodeHelperTemplate = this.getDecodeStringArrayTemplate(); + const preservedNames = [`^${this.stringArrayName}$`]; + return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), { + decodeCodeHelperTemplate, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }), { + reservedNames: preservedNames + }); + } + getDecodeStringArrayTemplate() { + const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? this.getGlobalVariableTemplate() + : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), { globalVariableTemplate }); + let decodeStringArrayTemplate = ''; + let selfDefendingCode = ''; + if (this.options.selfDefending) { + selfDefendingCode = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), { + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }); + } + switch (this.options.stringArrayEncoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: + decodeStringArrayTemplate = this.customCodeHelperFormatter.formatTemplate(StringArrayRC4DecodeTemplate_1.StringArrayRC4DecodeTemplate(this.randomGenerator), { + atobPolyfill, + selfDefendingCode, + rc4Polyfill: Rc4Template_1.Rc4Template(), + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + break; + case StringArrayEncoding_1.StringArrayEncoding.Base64: + decodeStringArrayTemplate = this.customCodeHelperFormatter.formatTemplate(StringArrayBase64DecodeTemplate_1.StringArrayBase64DecodeTemplate(this.randomGenerator), { + atobPolyfill, + selfDefendingCode, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + } + return decodeStringArrayTemplate; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayCallsWrapperCodeHelper.prototype, "stringArrayName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayCallsWrapperCodeHelper.prototype, "stringArrayCallsWrapperName", void 0); +StringArrayCallsWrapperCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object]) +], StringArrayCallsWrapperCodeHelper); +exports.StringArrayCallsWrapperCodeHelper = StringArrayCallsWrapperCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts": +/*!***********************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const StringArrayTemplate_1 = __webpack_require__(/*! ./templates/string-array/StringArrayTemplate */ "./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayCodeHelper = class StringArrayCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(stringArrayStorage, stringArrayName) { + this.stringArrayStorage = stringArrayStorage; + this.stringArrayName = stringArrayName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + return this.customCodeHelperFormatter.formatTemplate(StringArrayTemplate_1.StringArrayTemplate(), { + stringArrayName: this.stringArrayName, + stringArray: this.stringArrayStorage.toString() + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object) +], StringArrayCodeHelper.prototype, "stringArrayStorage", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayCodeHelper.prototype, "stringArrayName", void 0); +StringArrayCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], StringArrayCodeHelper); +exports.StringArrayCodeHelper = StringArrayCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts": +/*!*************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayRotateFunctionCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/string-array-rotate-function/SelfDefendingTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts"); +const StringArrayRotateFunctionTemplate_1 = __webpack_require__(/*! ./templates/string-array-rotate-function/StringArrayRotateFunctionTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let StringArrayRotateFunctionCodeHelper = class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + this.escapeSequenceEncoder = escapeSequenceEncoder; + } + initialize(stringArrayName, stringArrayRotationAmount) { + this.stringArrayName = stringArrayName; + this.stringArrayRotationAmount = stringArrayRotationAmount; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const timesName = this.identifierNamesGenerator.generateNext(); + const whileFunctionName = this.identifierNamesGenerator.generateNext(); + const preservedNames = [`^${this.stringArrayName}$`]; + let code = ''; + if (this.options.selfDefending) { + code = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), { + timesName, + whileFunctionName + }); + } + else { + code = `${whileFunctionName}(++${timesName})`; + } + return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), { + code, + timesName, + whileFunctionName, + stringArrayName: this.stringArrayName, + stringArrayRotationAmount: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotationAmount) + }), { + reservedNames: preservedNames + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayRotateFunctionCodeHelper.prototype, "stringArrayName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayRotateFunctionCodeHelper.prototype, "stringArrayRotationAmount", void 0); +StringArrayRotateFunctionCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object]) +], StringArrayRotateFunctionCodeHelper); +exports.StringArrayRotateFunctionCodeHelper = StringArrayRotateFunctionCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +let StringArrayCodeHelperGroup = class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + this.stringArrayStorage = stringArrayStorage; + } + appendNodes(nodeWithStatements, callsGraphData) { + if (!this.stringArrayStorage.getLength()) { + return; + } + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArray, (customCodeHelper) => { + NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper, (customCodeHelper) => { + NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, (customCodeHelper) => { + NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.stringArray) { + return; + } + const stringArrayCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArray); + const stringArrayCallsWrapperCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper); + const stringArrayRotateFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction); + const stringArrayName = this.stringArrayStorage.getStorageName(); + const stringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(); + const stringArrayRotationAmount = this.stringArrayStorage.getRotationAmount(); + stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName); + stringArrayCallsWrapperCodeHelper.initialize(stringArrayName, stringArrayCallsWrapperName); + stringArrayRotateFunctionCodeHelper.initialize(stringArrayName, stringArrayRotationAmount); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArray, stringArrayCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper, stringArrayCallsWrapperCodeHelper); + if (this.options.rotateStringArray) { + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, stringArrayRotateFunctionCodeHelper); + } + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], StringArrayCodeHelperGroup.prototype, "customCodeHelpers", void 0); +StringArrayCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _c : Object, typeof (_d = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], StringArrayCodeHelperGroup); +exports.StringArrayCodeHelperGroup = StringArrayCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts": +/*!***************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AtobTemplate = void 0; +const AlphabetStringUppercase_1 = __webpack_require__(/*! ../../../../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AlphabetString_1 = __webpack_require__(/*! ../../../../constants/AlphabetString */ "./src/constants/AlphabetString.ts"); +const NumbersString_1 = __webpack_require__(/*! ../../../../constants/NumbersString */ "./src/constants/NumbersString.ts"); +function AtobTemplate() { + return ` + (function () { + {globalVariableTemplate} + + const chars = '${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/='; + + that.atob || ( + that.atob = function(input) { + const str = String(input).replace(/=+$/, ''); + let output = ''; + for ( + let bc = 0, bs, buffer, idx = 0; + buffer = str.charAt(idx++); + ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, + bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0 + ) { + buffer = chars.indexOf(buffer); + } + return output; + } + ); + })(); + `; +} +exports.AtobTemplate = AtobTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts": +/*!**************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts ***! + \**************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Rc4Template = void 0; +function Rc4Template() { + return ` + const rc4 = function (str, key) { + let s = [], j = 0, x, res = '', newStr = ''; + + str = atob(str); + + for (let k = 0, length = str.length; k < length; k++) { + newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2); + } + + str = decodeURIComponent(newStr); + + let i; + + for (i = 0; i < 256; i++) { + s[i] = i; + } + + for (i = 0; i < 256; i++) { + j = (j + s[i] + key.charCodeAt(i % key.length)) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + } + + i = 0; + j = 0; + + for (let y = 0; y < str.length; y++) { + i = (i + 1) % 256; + j = (j + s[i]) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]); + } + + return res; + } + `; +} +exports.Rc4Template = Rc4Template; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts": +/*!************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingTemplate = void 0; +function SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) { + const identifierLength = 6; + const rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength); + const statesIdentifier = randomGenerator.getRandomString(identifierLength); + const newStateIdentifier = randomGenerator.getRandomString(identifierLength); + const firstStateIdentifier = randomGenerator.getRandomString(identifierLength); + const secondStateIdentifier = randomGenerator.getRandomString(identifierLength); + const checkStateIdentifier = randomGenerator.getRandomString(identifierLength); + const runStateIdentifier = randomGenerator.getRandomString(identifierLength); + const getStateIdentifier = randomGenerator.getRandomString(identifierLength); + const stateResultIdentifier = randomGenerator.getRandomString(identifierLength); + return ` + const StatesClass = function (${rc4BytesIdentifier}) { + this.${rc4BytesIdentifier} = ${rc4BytesIdentifier}; + this.${statesIdentifier} = [1, 0, 0]; + this.${newStateIdentifier} = function(){return 'newState';}; + this.${firstStateIdentifier} = '${escapeSequenceEncoder.encode('\\w+ *\\(\\) *{\\w+ *', true)}'; + this.${secondStateIdentifier} = '${escapeSequenceEncoder.encode('[\'|"].+[\'|"];? *}', true)}'; + }; + + StatesClass.prototype.${checkStateIdentifier} = function () { + const regExp = new RegExp(this.${firstStateIdentifier} + this.${secondStateIdentifier}); + const expression = regExp.test(this.${newStateIdentifier}.toString()) + ? --this.${statesIdentifier}[1] + : --this.${statesIdentifier}[0]; + + return this.${runStateIdentifier}(expression); + }; + + StatesClass.prototype.${runStateIdentifier} = function (${stateResultIdentifier}) { + if (!Boolean(~${stateResultIdentifier})) { + return ${stateResultIdentifier}; + } + + return this.${getStateIdentifier}(this.${rc4BytesIdentifier}); + }; + + StatesClass.prototype.${getStateIdentifier} = function (${rc4BytesIdentifier}) { + for (let i = 0, len = this.${statesIdentifier}.length; i < len; i++) { + this.${statesIdentifier}.push(Math.round(Math.random())); + len = this.${statesIdentifier}.length; + } + + return ${rc4BytesIdentifier}(this.${statesIdentifier}[0]); + }; + + new StatesClass({stringArrayCallsWrapperName}).${checkStateIdentifier}(); + `; +} +exports.SelfDefendingTemplate = SelfDefendingTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts": +/*!**********************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts ***! + \**********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayBase64DecodeTemplate = void 0; +function StringArrayBase64DecodeTemplate(randomGenerator) { + const identifierLength = 6; + const initializedIdentifier = randomGenerator.getRandomString(identifierLength); + const base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength); + const dataIdentifier = randomGenerator.getRandomString(identifierLength); + return ` + if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) { + {atobPolyfill} + + {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier} = function (str) { + const string = atob(str); + let newStringChars = []; + + for (let i = 0, length = string.length; i < length; i++) { + newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2); + } + + return decodeURIComponent(newStringChars); + }; + + {stringArrayCallsWrapperName}.${dataIdentifier} = {}; + + {stringArrayCallsWrapperName}.${initializedIdentifier} = true; + } + + const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; + + if (cachedValue === undefined) { + {selfDefendingCode} + + value = {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier}(value); + {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value; + } else { + value = cachedValue; + } + `; +} +exports.StringArrayBase64DecodeTemplate = StringArrayBase64DecodeTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts": +/*!**********************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts ***! + \**********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayCallsWrapperTemplate = void 0; +function StringArrayCallsWrapperTemplate() { + return ` + const {stringArrayCallsWrapperName} = function (index, key) { + index = index - 0; + + let value = {stringArrayName}[index]; + + {decodeCodeHelperTemplate} + + return value; + }; + `; +} +exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts": +/*!*******************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts ***! + \*******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayRC4DecodeTemplate = void 0; +function StringArrayRC4DecodeTemplate(randomGenerator) { + const identifierLength = 6; + const initializedIdentifier = randomGenerator.getRandomString(identifierLength); + const rc4Identifier = randomGenerator.getRandomString(identifierLength); + const dataIdentifier = randomGenerator.getRandomString(identifierLength); + const onceIdentifier = randomGenerator.getRandomString(identifierLength); + return ` + if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) { + {atobPolyfill} + + {rc4Polyfill} + {stringArrayCallsWrapperName}.${rc4Identifier} = rc4; + + {stringArrayCallsWrapperName}.${dataIdentifier} = {}; + + {stringArrayCallsWrapperName}.${initializedIdentifier} = true; + } + + const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; + + if (cachedValue === undefined) { + if ({stringArrayCallsWrapperName}.${onceIdentifier} === undefined) { + {selfDefendingCode} + + {stringArrayCallsWrapperName}.${onceIdentifier} = true; + } + + value = {stringArrayCallsWrapperName}.${rc4Identifier}(value, key); + {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value; + } else { + value = cachedValue; + } + `; +} +exports.StringArrayRC4DecodeTemplate = StringArrayRC4DecodeTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts": +/*!**************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts ***! + \**************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingTemplate = void 0; +function SelfDefendingTemplate(escapeSequenceEncoder) { + return ` + const selfDefendingFunc = function () { + const object = { + data: { + key: 'cookie', + value: 'timeout' + }, + setCookie: function (options, name, value, document) { + document = document || {}; + + let updatedCookie = name + "=" + value; + let i = 0; + + for (let i = 0, len = options.length; i < len; i++) { + const propName = options[i]; + + updatedCookie += "; " + propName; + + const propValue = options[propName]; + + options.push(propValue); + len = options.length; + + if (propValue !== true) { + updatedCookie += "=" + propValue; + } + } + + document['cookie'] = updatedCookie; + }, + removeCookie: function(){return 'dev';}, + getCookie: function (document, name) { + document = document || function (value) { return value }; + const matches = document(new RegExp( + "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" + )); + + const func = function (param1, param2) { + param1(++param2); + }; + + func({whileFunctionName}, {timesName}); + + return matches ? decodeURIComponent(matches[1]) : undefined; + } + }; + + const test1 = function () { + const regExp = new RegExp('${escapeSequenceEncoder.encode('\\w+ *\\(\\) *{\\w+ *[\'|"].+[\'|"];? *}', true)}'); + + return regExp.test(object.removeCookie.toString()); + }; + + object['updateCookie'] = test1; + + let cookie = ''; + const result = object['updateCookie'](); + + if (!result) { + object['setCookie'](['*'], 'counter', 1); + } else if (result) { + cookie = object['getCookie'](null, 'counter'); + } else { + object['removeCookie'](); + } + }; + + selfDefendingFunc(); + `; +} +exports.SelfDefendingTemplate = SelfDefendingTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts": +/*!**************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts ***! + \**************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayRotateFunctionTemplate = void 0; +function StringArrayRotateFunctionTemplate() { + return ` + (function (array, {timesName}) { + const {whileFunctionName} = function (times) { + while (--times) { + array['push'](array['shift']()); + } + }; + + {code} + })({stringArrayName}, {stringArrayRotationAmount}); + `; +} +exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts": +/*!********************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts ***! + \********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayTemplate = void 0; +function StringArrayTemplate() { + return ` + const {stringArrayName} = [{stringArray}]; + `; +} +exports.StringArrayTemplate = StringArrayTemplate; + + +/***/ }), + +/***/ "./src/custom-nodes/AbstractCustomNode.ts": +/*!************************************************!*\ + !*** ./src/custom-nodes/AbstractCustomNode.ts ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCustomNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractCustomNode = class AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + this.cachedNode = null; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.customCodeHelperFormatter = customCodeHelperFormatter; + this.randomGenerator = randomGenerator; + this.options = options; + } + getNode() { + if (!this.cachedNode) { + this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure()); + } + return this.cachedNode; + } +}; +AbstractCustomNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], AbstractCustomNode); +exports.AbstractCustomNode = AbstractCustomNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts": +/*!****************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BinaryExpressionFunctionNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BinaryExpressionFunctionNode = class BinaryExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(operator) { + this.operator = operator; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([ + NodeFactory_1.NodeFactory.identifierNode('x'), + NodeFactory_1.NodeFactory.identifierNode('y') + ], NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y'))) + ]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +BinaryExpressionFunctionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], BinaryExpressionFunctionNode); +exports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts": +/*!***************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BlockStatementControlFlowFlatteningNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BlockStatementControlFlowFlatteningNode = class BlockStatementControlFlowFlatteningNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) { + this.blockStatementBody = blockStatementBody; + this.shuffledKeys = shuffledKeys; + this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray; + } + getNodeStructure() { + const controllerIdentifierName = this.randomGenerator.getRandomString(6); + const indexIdentifierName = this.randomGenerator.getRandomString(6); + const structure = NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join('|')), NodeFactory_1.NodeFactory.identifierNode('split')), [ + NodeFactory_1.NodeFactory.literalNode('|') + ])) + ], 'const'), + NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0)) + ], 'let'), + NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.switchStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.updateExpressionNode('++', NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName)), true), this.shuffledKeys.map((key, index) => { + const statement = this.blockStatementBody[key]; + const consequent = [statement]; + if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) { + consequent.push(NodeFactory_1.NodeFactory.continueStatement()); + } + return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent); + })), + NodeFactory_1.NodeFactory.breakStatement() + ])) + ]); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], BlockStatementControlFlowFlatteningNode.prototype, "blockStatementBody", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], BlockStatementControlFlowFlatteningNode.prototype, "originalKeysIndexesInShuffledArray", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], BlockStatementControlFlowFlatteningNode.prototype, "shuffledKeys", void 0); +BlockStatementControlFlowFlatteningNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], BlockStatementControlFlowFlatteningNode); +exports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallExpressionFunctionNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let CallExpressionFunctionNode = class CallExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(expressionArguments) { + this.expressionArguments = expressionArguments; + } + getNodeStructure() { + const calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee'); + const params = []; + const argumentsLength = this.expressionArguments.length; + for (let i = 0; i < argumentsLength; i++) { + params.push(NodeFactory_1.NodeFactory.identifierNode(`param${i + 1}`)); + } + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([ + calleeIdentifier, + ...params + ], NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params)) + ]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], CallExpressionFunctionNode.prototype, "expressionArguments", void 0); +CallExpressionFunctionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], CallExpressionFunctionNode); +exports.CallExpressionFunctionNode = CallExpressionFunctionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LogicalExpressionFunctionNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let LogicalExpressionFunctionNode = class LogicalExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(operator) { + this.operator = operator; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([ + NodeFactory_1.NodeFactory.identifierNode('x'), + NodeFactory_1.NodeFactory.identifierNode('y') + ], NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y'))) + ]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +LogicalExpressionFunctionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], LogicalExpressionFunctionNode); +exports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringLiteralNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let StringLiteralNode = class StringLiteralNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(literalValue) { + this.literalValue = literalValue; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue)); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringLiteralNode.prototype, "literalValue", void 0); +StringLiteralNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], StringLiteralNode); +exports.StringLiteralNode = StringLiteralNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts": +/*!*******************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts ***! + \*******************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallExpressionControlFlowStorageCallNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let CallExpressionControlFlowStorageCallNode = class CallExpressionControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + this.callee = callee; + this.expressionArguments = expressionArguments; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [ + this.callee, + ...this.expressionArguments + ])); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof ESTree !== "undefined" && ESTree.Expression) === "function" ? _a : Object) +], CallExpressionControlFlowStorageCallNode.prototype, "callee", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], CallExpressionControlFlowStorageCallNode.prototype, "expressionArguments", void 0); +CallExpressionControlFlowStorageCallNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], CallExpressionControlFlowStorageCallNode); +exports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowStorageNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowStorage_1 = __webpack_require__(/*! ../../../types/storages/TControlFlowStorage */ "./src/types/storages/TControlFlowStorage.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ControlFlowStorageNode = class ControlFlowStorageNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(controlFlowStorage) { + this.controlFlowStorage = controlFlowStorage; + } + getNodeStructure() { + const propertyNodes = Array + .from(this.controlFlowStorage.getStorage()) + .map(([key, value]) => { + const node = value.getNode()[0]; + if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) { + throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!'); + } + return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression); + }); + let structure = NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes)) + ], 'const'); + structure = NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof TControlFlowStorage_1.TControlFlowStorage !== "undefined" && TControlFlowStorage_1.TControlFlowStorage) === "function" ? _a : Object) +], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0); +ControlFlowStorageNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], ControlFlowStorageNode); +exports.ControlFlowStorageNode = ControlFlowStorageNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts": +/*!***************************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts ***! + \***************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ExpressionWithOperatorControlFlowStorageCallNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ExpressionWithOperatorControlFlowStorageCallNode = class ExpressionWithOperatorControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + this.leftValue = leftValue; + this.rightValue = rightValue; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [ + this.leftValue, + this.rightValue + ])); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); +ExpressionWithOperatorControlFlowStorageCallNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], ExpressionWithOperatorControlFlowStorageCallNode); +exports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts": +/*!******************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts ***! + \******************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringLiteralControlFlowStorageCallNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringLiteralControlFlowStorageCallNode = class StringLiteralControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(controlFlowStorageName, controlFlowStorageKey) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); +StringLiteralControlFlowStorageCallNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], StringLiteralControlFlowStorageCallNode); +exports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts": +/*!*******************************************************************************************!*\ + !*** ./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BlockStatementDeadCodeInjectionNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BlockStatementDeadCodeInjectionNode = class BlockStatementDeadCodeInjectionNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) { + this.blockStatementNode = blockStatementNode; + this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode; + } + getNode() { + return this.getNodeStructure(); + } + getNodeStructure() { + const random1 = this.randomGenerator.getMathRandom() > 0.5; + const random2 = this.randomGenerator.getMathRandom() > 0.5; + const operator = random1 ? '===' : '!=='; + const leftString = this.randomGenerator.getRandomString(5); + const rightString = random2 ? leftString : this.randomGenerator.getRandomString(5); + const [consequent, alternate] = random1 === random2 + ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode] + : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode]; + const structure = NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate) + ]); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +BlockStatementDeadCodeInjectionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], BlockStatementDeadCodeInjectionNode); +exports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts": +/*!******************************************************************************************************************!*\ + !*** ./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts ***! + \******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionVariableDeclarationHostNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ObjectExpressionVariableDeclarationHostNode = class ObjectExpressionVariableDeclarationHostNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(lexicalScopeNode, properties) { + this.lexicalScopeNode = lexicalScopeNode; + this.properties = properties; + } + getNodeStructure() { + const variableDeclarationName = NodeGuards_1.NodeGuards.isProgramNode(this.lexicalScopeNode) + ? this.identifierNamesGenerator.generateForGlobalScope() + : this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode); + const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(variableDeclarationName), NodeFactory_1.NodeFactory.objectExpressionNode(this.properties)) + ], 'const'); + return [structure]; + } +}; +ObjectExpressionVariableDeclarationHostNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], ObjectExpressionVariableDeclarationHostNode); +exports.ObjectExpressionVariableDeclarationHostNode = ObjectExpressionVariableDeclarationHostNode; + + +/***/ }), + +/***/ "./src/decorators/Initializable.ts": +/*!*****************************************!*\ + !*** ./src/decorators/Initializable.ts ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.initializable = void 0; +const defaultDescriptor = { + configurable: true, + enumerable: true +}; +const initializedTargetMetadataKey = '_initialized'; +const initializablePropertiesSetMetadataKey = '_initializablePropertiesSet'; +const wrappedMethodsSetMetadataKey = '_wrappedMethodsSet'; +const constructorMethodName = 'constructor'; +function initializable(initializeMethodName = 'initialize') { + const decoratorName = Object.keys(this)[0]; + return (target, propertyKey) => { + const initializeMethod = target[initializeMethodName]; + if (!initializeMethod || typeof initializeMethod !== 'function') { + throw new Error(`\`${initializeMethodName}\` method with initialization logic not ` + + `found. \`@${decoratorName}\` decorator requires \`${initializeMethodName}\` method`); + } + initializeTargetMetadata(initializedTargetMetadataKey, false, target); + initializeTargetMetadata(initializablePropertiesSetMetadataKey, new Set(), target); + initializeTargetMetadata(wrappedMethodsSetMetadataKey, new Set(), target); + wrapTargetMethodsInInitializedCheck(target, initializeMethodName); + wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey); + return wrapInitializableProperty(target, propertyKey); + }; +} +exports.initializable = initializable; +function initializeTargetMetadata(metadataKey, metadataValue, target) { + const hasInitializedMetadata = Reflect.hasMetadata(metadataKey, target); + if (!hasInitializedMetadata) { + Reflect.defineMetadata(metadataKey, metadataValue, target); + } +} +function wrapTargetMethodsInInitializedCheck(target, initializeMethodName) { + const ownPropertyNames = Object.getOwnPropertyNames(target); + const prohibitedPropertyNames = [initializeMethodName, constructorMethodName]; + ownPropertyNames.forEach((propertyName) => { + var _a; + const initializablePropertiesSet = Reflect + .getMetadata(initializablePropertiesSetMetadataKey, target); + const wrappedMethodsSet = Reflect + .getMetadata(wrappedMethodsSetMetadataKey, target); + const isProhibitedPropertyName = prohibitedPropertyNames.includes(propertyName) + || initializablePropertiesSet.has(propertyName) + || wrappedMethodsSet.has(propertyName); + if (isProhibitedPropertyName) { + return; + } + const targetProperty = target[propertyName]; + if (typeof targetProperty !== 'function') { + return; + } + const methodDescriptor = (_a = Object + .getOwnPropertyDescriptor(target, propertyName)) !== null && _a !== void 0 ? _a : defaultDescriptor; + const originalMethod = methodDescriptor.value; + Object.defineProperty(target, propertyName, Object.assign(Object.assign({}, methodDescriptor), { value() { + if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) { + throw new Error(`Class should be initialized with \`${initializeMethodName}()\` method`); + } + return originalMethod.apply(this, arguments); + } })); + wrappedMethodsSet.add(propertyName); + }); +} +function wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) { + var _a; + const methodDescriptor = (_a = Object + .getOwnPropertyDescriptor(target, initializeMethodName)) !== null && _a !== void 0 ? _a : defaultDescriptor; + const originalMethod = methodDescriptor.value; + Object.defineProperty(target, initializeMethodName, Object.assign(Object.assign({}, methodDescriptor), { value: function () { + Reflect.defineMetadata(initializedTargetMetadataKey, true, this); + const result = originalMethod.apply(this, arguments); + if (this[propertyKey]) { } + return result; + } })); +} +function wrapInitializableProperty(target, propertyKey) { + var _a; + const initializablePropertiesSet = Reflect + .getMetadata(initializablePropertiesSetMetadataKey, target); + initializablePropertiesSet.add(propertyKey); + const initializablePropertyMetadataKey = `_${propertyKey.toString()}`; + const propertyDescriptor = (_a = Object + .getOwnPropertyDescriptor(target, initializablePropertyMetadataKey)) !== null && _a !== void 0 ? _a : defaultDescriptor; + Object.defineProperty(target, propertyKey, Object.assign(Object.assign({}, propertyDescriptor), { get: function () { + if (this[initializablePropertyMetadataKey] === undefined) { + throw new Error(`Property \`${propertyKey.toString()}\` is not initialized! Initialize it first!`); + } + return this[initializablePropertyMetadataKey]; + }, set: function (newVal) { + this[initializablePropertyMetadataKey] = newVal; + } })); + return propertyDescriptor; +} + + +/***/ }), + +/***/ "./src/enums/ObfuscationTarget.ts": +/*!****************************************!*\ + !*** ./src/enums/ObfuscationTarget.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscationTarget = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +exports.ObfuscationTarget = tsenum_1.MakeEnum({ + Browser: 'browser', + BrowserNoEval: 'browser-no-eval', + Node: 'node' +}); + + +/***/ }), + +/***/ "./src/enums/StringArrayEncoding.ts": +/*!******************************************!*\ + !*** ./src/enums/StringArrayEncoding.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayEncoding = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +exports.StringArrayEncoding = tsenum_1.MakeEnum({ + Base64: 'base64', + Rc4: 'rc4' +}); + + +/***/ }), + +/***/ "./src/enums/StringSeparator.ts": +/*!**************************************!*\ + !*** ./src/enums/StringSeparator.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringSeparator = void 0; +var StringSeparator; +(function (StringSeparator) { + StringSeparator["Dot"] = "."; + StringSeparator["Comma"] = ","; +})(StringSeparator = exports.StringSeparator || (exports.StringSeparator = {})); + + +/***/ }), + +/***/ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts": +/*!*************************************************************************!*\ + !*** ./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CalleeDataExtractor = void 0; +var CalleeDataExtractor; +(function (CalleeDataExtractor) { + CalleeDataExtractor["FunctionDeclarationCalleeDataExtractor"] = "FunctionDeclarationCalleeDataExtractor"; + CalleeDataExtractor["FunctionExpressionCalleeDataExtractor"] = "FunctionExpressionCalleeDataExtractor"; + CalleeDataExtractor["ObjectExpressionCalleeDataExtractor"] = "ObjectExpressionCalleeDataExtractor"; +})(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {})); + + +/***/ }), + +/***/ "./src/enums/code-transformers/CodeTransformationStage.ts": +/*!****************************************************************!*\ + !*** ./src/enums/code-transformers/CodeTransformationStage.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CodeTransformationStage = void 0; +var CodeTransformationStage; +(function (CodeTransformationStage) { + CodeTransformationStage["PreparingTransformers"] = "PreparingTransformers"; + CodeTransformationStage["FinalizingTransformers"] = "FinalizingTransformers"; +})(CodeTransformationStage = exports.CodeTransformationStage || (exports.CodeTransformationStage = {})); + + +/***/ }), + +/***/ "./src/enums/code-transformers/CodeTransformer.ts": +/*!********************************************************!*\ + !*** ./src/enums/code-transformers/CodeTransformer.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CodeTransformer = void 0; +var CodeTransformer; +(function (CodeTransformer) { + CodeTransformer["HashbangOperatorTransformer"] = "HashbangOperatorTransformer"; +})(CodeTransformer = exports.CodeTransformer || (exports.CodeTransformer = {})); + + +/***/ }), + +/***/ "./src/enums/custom-code-helpers/CustomCodeHelper.ts": +/*!***********************************************************!*\ + !*** ./src/enums/custom-code-helpers/CustomCodeHelper.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelper = void 0; +var CustomCodeHelper; +(function (CustomCodeHelper) { + CustomCodeHelper["CallsControllerFunction"] = "CallsControllerFunction"; + CustomCodeHelper["ConsoleOutputDisable"] = "ConsoleOutputDisable"; + CustomCodeHelper["DebugProtectionFunctionCall"] = "DebugProtectionFunctionCall"; + CustomCodeHelper["DebugProtectionFunctionInterval"] = "DebugProtectionFunctionInterval"; + CustomCodeHelper["DebugProtectionFunction"] = "DebugProtectionFunction"; + CustomCodeHelper["DomainLock"] = "DomainLock"; + CustomCodeHelper["SelfDefendingUnicode"] = "SelfDefendingUnicode"; + CustomCodeHelper["StringArrayCallsWrapper"] = "StringArrayCallsWrapper"; + CustomCodeHelper["StringArray"] = "StringArray"; + CustomCodeHelper["StringArrayRotateFunction"] = "StringArrayRotateFunction"; +})(CustomCodeHelper = exports.CustomCodeHelper || (exports.CustomCodeHelper = {})); + + +/***/ }), + +/***/ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts": +/*!****************************************************************!*\ + !*** ./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelperGroup = void 0; +var CustomCodeHelperGroup; +(function (CustomCodeHelperGroup) { + CustomCodeHelperGroup["ConsoleOutput"] = "ConsoleOutput"; + CustomCodeHelperGroup["DebugProtection"] = "DebugProtection"; + CustomCodeHelperGroup["DomainLock"] = "DomainLock"; + CustomCodeHelperGroup["SelfDefending"] = "SelfDefending"; + CustomCodeHelperGroup["StringArray"] = "StringArray"; +})(CustomCodeHelperGroup = exports.CustomCodeHelperGroup || (exports.CustomCodeHelperGroup = {})); + + +/***/ }), + +/***/ "./src/enums/custom-nodes/ControlFlowCustomNode.ts": +/*!*********************************************************!*\ + !*** ./src/enums/custom-nodes/ControlFlowCustomNode.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowCustomNode = void 0; +var ControlFlowCustomNode; +(function (ControlFlowCustomNode) { + ControlFlowCustomNode["BinaryExpressionFunctionNode"] = "BinaryExpressionFunctionNode"; + ControlFlowCustomNode["BlockStatementControlFlowFlatteningNode"] = "BlockStatementControlFlowFlatteningNode"; + ControlFlowCustomNode["CallExpressionControlFlowStorageCallNode"] = "CallExpressionControlFlowStorageCallNode"; + ControlFlowCustomNode["CallExpressionFunctionNode"] = "CallExpressionFunctionNode"; + ControlFlowCustomNode["ControlFlowStorageNode"] = "ControlFlowStorageNode"; + ControlFlowCustomNode["ExpressionWithOperatorControlFlowStorageCallNode"] = "ExpressionWithOperatorControlFlowStorageCallNode"; + ControlFlowCustomNode["LogicalExpressionFunctionNode"] = "LogicalExpressionFunctionNode"; + ControlFlowCustomNode["StringLiteralControlFlowStorageCallNode"] = "StringLiteralControlFlowStorageCallNode"; + ControlFlowCustomNode["StringLiteralNode"] = "StringLiteralNode"; +})(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {})); + + +/***/ }), + +/***/ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts": +/*!***************************************************************!*\ + !*** ./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DeadCodeInjectionCustomNode = void 0; +var DeadCodeInjectionCustomNode; +(function (DeadCodeInjectionCustomNode) { + DeadCodeInjectionCustomNode["BlockStatementDeadCodeInjectionNode"] = "BlockStatementDeadCodeInjectionNode"; +})(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {})); + + +/***/ }), + +/***/ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts": +/*!*****************************************************************************!*\ + !*** ./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionKeysTransformerCustomNode = void 0; +var ObjectExpressionKeysTransformerCustomNode; +(function (ObjectExpressionKeysTransformerCustomNode) { + ObjectExpressionKeysTransformerCustomNode["ObjectExpressionVariableDeclarationHostNode"] = "ObjectExpressionVariableDeclarationHostNode"; +})(ObjectExpressionKeysTransformerCustomNode = exports.ObjectExpressionKeysTransformerCustomNode || (exports.ObjectExpressionKeysTransformerCustomNode = {})); + + +/***/ }), + +/***/ "./src/enums/event-emitters/ObfuscationEvent.ts": +/*!******************************************************!*\ + !*** ./src/enums/event-emitters/ObfuscationEvent.ts ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscationEvent = void 0; +var ObfuscationEvent; +(function (ObfuscationEvent) { + ObfuscationEvent["AfterObfuscation"] = "afterObfuscation"; + ObfuscationEvent["BeforeObfuscation"] = "beforeObfuscation"; +})(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {})); + + +/***/ }), + +/***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts": +/*!**************************************************************************************!*\ + !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IdentifierNamesGenerator = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +exports.IdentifierNamesGenerator = tsenum_1.MakeEnum({ + DictionaryIdentifierNamesGenerator: 'dictionary', + HexadecimalIdentifierNamesGenerator: 'hexadecimal', + MangledIdentifierNamesGenerator: 'mangled' +}); + + +/***/ }), + +/***/ "./src/enums/logger/LoggingMessage.ts": +/*!********************************************!*\ + !*** ./src/enums/logger/LoggingMessage.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LoggingMessage = void 0; +var LoggingMessage; +(function (LoggingMessage) { + LoggingMessage["EmptySourceCode"] = "Empty source code. Obfuscation canceled..."; + LoggingMessage["ObfuscationCompleted"] = "Obfuscation completed. Total time: %s sec."; + LoggingMessage["ObfuscationStarted"] = "Obfuscation started..."; + LoggingMessage["RandomGeneratorSeed"] = "Random generator seed: %s..."; + LoggingMessage["CodeTransformationStage"] = "Code transformation stage: %s..."; + LoggingMessage["NodeTransformationStage"] = "AST transformation stage: %s..."; + LoggingMessage["Version"] = "Version: %s"; +})(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {})); + + +/***/ }), + +/***/ "./src/enums/logger/LoggingPrefix.ts": +/*!*******************************************!*\ + !*** ./src/enums/logger/LoggingPrefix.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LoggingPrefix = void 0; +var LoggingPrefix; +(function (LoggingPrefix) { + LoggingPrefix["Base"] = "[javascript-obfuscator]"; + LoggingPrefix["CLI"] = "[javascript-obfuscator-cli]"; +})(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/NodeTransformationStage.ts": +/*!****************************************************************!*\ + !*** ./src/enums/node-transformers/NodeTransformationStage.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeTransformationStage = void 0; +var NodeTransformationStage; +(function (NodeTransformationStage) { + NodeTransformationStage["Initializing"] = "Initializing"; + NodeTransformationStage["Preparing"] = "Preparing"; + NodeTransformationStage["DeadCodeInjection"] = "DeadCodeInjection"; + NodeTransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening"; + NodeTransformationStage["RenameProperties"] = "RenameProperties"; + NodeTransformationStage["Converting"] = "Converting"; + NodeTransformationStage["Obfuscating"] = "Obfuscating"; + NodeTransformationStage["Minification"] = "Minification"; + NodeTransformationStage["Finalizing"] = "Finalizing"; +})(NodeTransformationStage = exports.NodeTransformationStage || (exports.NodeTransformationStage = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/NodeTransformer.ts": +/*!********************************************************!*\ + !*** ./src/enums/node-transformers/NodeTransformer.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeTransformer = void 0; +var NodeTransformer; +(function (NodeTransformer) { + NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer"; + NodeTransformer["CommentsTransformer"] = "CommentsTransformer"; + NodeTransformer["CustomCodeHelpersTransformer"] = "CustomCodeHelpersTransformer"; + NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer"; + NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer"; + NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer"; + NodeTransformer["IfStatementSimplifyTransformer"] = "IfStatementSimplifyTransformer"; + NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer"; + NodeTransformer["LiteralTransformer"] = "LiteralTransformer"; + NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer"; + NodeTransformer["MetadataTransformer"] = "MetadataTransformer"; + NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer"; + NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer"; + NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer"; + NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer"; + NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer"; + NodeTransformer["RenamePropertiesTransformer"] = "RenamePropertiesTransformer"; + NodeTransformer["ScopeIdentifiersTransformer"] = "ScopeIdentifiersTransformer"; + NodeTransformer["SplitStringTransformer"] = "SplitStringTransformer"; + NodeTransformer["TemplateLiteralTransformer"] = "TemplateLiteralTransformer"; + NodeTransformer["VariableDeclarationsMergeTransformer"] = "VariableDeclarationsMergeTransformer"; + NodeTransformer["VariablePreserveTransformer"] = "VariablePreserveTransformer"; +})(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/VisitorDirection.ts": +/*!*********************************************************!*\ + !*** ./src/enums/node-transformers/VisitorDirection.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VisitorDirection = void 0; +var VisitorDirection; +(function (VisitorDirection) { + VisitorDirection["Enter"] = "enter"; + VisitorDirection["Leave"] = "leave"; +})(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts": +/*!****************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts ***! + \****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionExtractor = void 0; +var ObjectExpressionExtractor; +(function (ObjectExpressionExtractor) { + ObjectExpressionExtractor["BasePropertiesExtractor"] = "BasePropertiesExtractor"; + ObjectExpressionExtractor["ObjectExpressionToVariableDeclarationExtractor"] = "ObjectExpressionToVariableDeclarationExtractor"; +})(ObjectExpressionExtractor = exports.ObjectExpressionExtractor || (exports.ObjectExpressionExtractor = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts": +/*!***********************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts ***! + \***********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowReplacer = void 0; +var ControlFlowReplacer; +(function (ControlFlowReplacer) { + ControlFlowReplacer["BinaryExpressionControlFlowReplacer"] = "BinaryExpressionControlFlowReplacer"; + ControlFlowReplacer["CallExpressionControlFlowReplacer"] = "CallExpressionControlFlowReplacer"; + ControlFlowReplacer["LogicalExpressionControlFlowReplacer"] = "LogicalExpressionControlFlowReplacer"; + ControlFlowReplacer["StringLiteralControlFlowReplacer"] = "StringLiteralControlFlowReplacer"; +})(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts": +/*!*********************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IdentifierObfuscatingReplacer = void 0; +var IdentifierObfuscatingReplacer; +(function (IdentifierObfuscatingReplacer) { + IdentifierObfuscatingReplacer["BaseIdentifierObfuscatingReplacer"] = "BaseIdentifierObfuscatingReplacer"; +})(IdentifierObfuscatingReplacer = exports.IdentifierObfuscatingReplacer || (exports.IdentifierObfuscatingReplacer = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts": +/*!******************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts ***! + \******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LiteralObfuscatingReplacer = void 0; +var LiteralObfuscatingReplacer; +(function (LiteralObfuscatingReplacer) { + LiteralObfuscatingReplacer["BooleanLiteralObfuscatingReplacer"] = "BooleanLiteralObfuscatingReplacer"; + LiteralObfuscatingReplacer["NumberLiteralObfuscatingReplacer"] = "NumberLiteralObfuscatingReplacer"; + LiteralObfuscatingReplacer["StringLiteralObfuscatingReplacer"] = "StringLiteralObfuscatingReplacer"; +})(LiteralObfuscatingReplacer = exports.LiteralObfuscatingReplacer || (exports.LiteralObfuscatingReplacer = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts": +/*!***************************************************************************************************!*\ + !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscatingGuard = void 0; +var ObfuscatingGuard; +(function (ObfuscatingGuard) { + ObfuscatingGuard["BlackListObfuscatingGuard"] = "BlackListObfuscatingGuard"; + ObfuscatingGuard["ConditionalCommentObfuscatingGuard"] = "ConditionalCommentObfuscatingGuard"; + ObfuscatingGuard["ReservedStringObfuscatingGuard"] = "ReservedStringObfuscatingGuard"; +})(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {})); + + +/***/ }), + +/***/ "./src/enums/node/NodeType.ts": +/*!************************************!*\ + !*** ./src/enums/node/NodeType.ts ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeType = void 0; +var NodeType; +(function (NodeType) { + NodeType["ArrayExpression"] = "ArrayExpression"; + NodeType["ArrayPattern"] = "ArrayPattern"; + NodeType["ArrowFunctionExpression"] = "ArrowFunctionExpression"; + NodeType["AssignmentExpression"] = "AssignmentExpression"; + NodeType["AssignmentPattern"] = "AssignmentPattern"; + NodeType["AwaitExpression"] = "AwaitExpression"; + NodeType["BinaryExpression"] = "BinaryExpression"; + NodeType["BlockStatement"] = "BlockStatement"; + NodeType["BreakStatement"] = "BreakStatement"; + NodeType["CallExpression"] = "CallExpression"; + NodeType["CatchClause"] = "CatchClause"; + NodeType["ClassDeclaration"] = "ClassDeclaration"; + NodeType["ConditionalExpression"] = "ConditionalExpression"; + NodeType["ContinueStatement"] = "ContinueStatement"; + NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration"; + NodeType["ExpressionStatement"] = "ExpressionStatement"; + NodeType["ForStatement"] = "ForStatement"; + NodeType["ForInStatement"] = "ForInStatement"; + NodeType["ForOfStatement"] = "ForOfStatement"; + NodeType["FunctionDeclaration"] = "FunctionDeclaration"; + NodeType["FunctionExpression"] = "FunctionExpression"; + NodeType["Identifier"] = "Identifier"; + NodeType["IfStatement"] = "IfStatement"; + NodeType["ImportDeclaration"] = "ImportDeclaration"; + NodeType["ImportDefaultSpecifier"] = "ImportDefaultSpecifier"; + NodeType["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier"; + NodeType["ImportSpecifier"] = "ImportSpecifier"; + NodeType["LabeledStatement"] = "LabeledStatement"; + NodeType["Literal"] = "Literal"; + NodeType["LogicalExpression"] = "LogicalExpression"; + NodeType["MemberExpression"] = "MemberExpression"; + NodeType["MethodDefinition"] = "MethodDefinition"; + NodeType["ObjectExpression"] = "ObjectExpression"; + NodeType["ObjectPattern"] = "ObjectPattern"; + NodeType["Program"] = "Program"; + NodeType["Property"] = "Property"; + NodeType["RestElement"] = "RestElement"; + NodeType["ReturnStatement"] = "ReturnStatement"; + NodeType["SequenceExpression"] = "SequenceExpression"; + NodeType["Super"] = "Super"; + NodeType["SwitchCase"] = "SwitchCase"; + NodeType["SwitchStatement"] = "SwitchStatement"; + NodeType["TaggedTemplateExpression"] = "TaggedTemplateExpression"; + NodeType["TemplateLiteral"] = "TemplateLiteral"; + NodeType["TryStatement"] = "TryStatement"; + NodeType["UnaryExpression"] = "UnaryExpression"; + NodeType["UpdateExpression"] = "UpdateExpression"; + NodeType["VariableDeclaration"] = "VariableDeclaration"; + NodeType["VariableDeclarator"] = "VariableDeclarator"; + NodeType["WhileStatement"] = "WhileStatement"; +})(NodeType = exports.NodeType || (exports.NodeType = {})); + + +/***/ }), + +/***/ "./src/enums/source-map/SourceMapMode.ts": +/*!***********************************************!*\ + !*** ./src/enums/source-map/SourceMapMode.ts ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceMapMode = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +exports.SourceMapMode = tsenum_1.MakeEnum({ + Inline: 'inline', + Separate: 'separate' +}); + + +/***/ }), + +/***/ "./src/event-emitters/ObfuscationEventEmitter.ts": +/*!*******************************************************!*\ + !*** ./src/event-emitters/ObfuscationEventEmitter.ts ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscationEventEmitter = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const eventemitter3_1 = __importDefault(__webpack_require__(/*! eventemitter3 */ "eventemitter3")); +inversify_1.decorate(inversify_1.injectable(), eventemitter3_1.default); +let ObfuscationEventEmitter = class ObfuscationEventEmitter extends eventemitter3_1.default { +}; +ObfuscationEventEmitter = __decorate([ + inversify_1.injectable() +], ObfuscationEventEmitter); +exports.ObfuscationEventEmitter = ObfuscationEventEmitter; + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts": +/*!****************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractIdentifierNamesGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let AbstractIdentifierNamesGenerator = class AbstractIdentifierNamesGenerator { + constructor(randomGenerator, options) { + this.preservedNamesSet = new Set(); + this.lexicalScopesPreservedNamesMap = new Map(); + this.randomGenerator = randomGenerator; + this.options = options; + } + generate(lexicalScopeNode, nameLength) { + return NodeGuards_1.NodeGuards.isProgramNode(lexicalScopeNode) + ? this.generateForGlobalScope() + : this.generateForLexicalScope(lexicalScopeNode); + } + preserveName(name) { + this.preservedNamesSet.add(name); + } + preserveNameForLexicalScope(name, lexicalScopeNode) { + var _a; + const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScopeNode)) !== null && _a !== void 0 ? _a : new Set(); + preservedNamesForLexicalScopeSet.add(name); + this.lexicalScopesPreservedNamesMap.set(lexicalScopeNode, preservedNamesForLexicalScopeSet); + } + isValidIdentifierName(name) { + return this.notReservedName(name) && !this.preservedNamesSet.has(name); + } + isValidIdentifierNameInLexicalScopes(name, lexicalScopeNodes) { + var _a; + if (!this.isValidIdentifierName(name)) { + return false; + } + for (const lexicalScope of lexicalScopeNodes) { + const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScope)) !== null && _a !== void 0 ? _a : null; + if (!preservedNamesForLexicalScopeSet) { + continue; + } + if (preservedNamesForLexicalScopeSet.has(name)) { + return false; + } + } + return true; + } + notReservedName(name) { + return this.options.reservedNames.length + ? !this.options.reservedNames.some((reservedName) => new RegExp(reservedName, 'g').exec(name) !== null) + : true; + } +}; +AbstractIdentifierNamesGenerator = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], AbstractIdentifierNamesGenerator); +exports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts": +/*!******************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var DictionaryIdentifierNamesGenerator_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DictionaryIdentifierNamesGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = class DictionaryIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator { + constructor(randomGenerator, options, arrayUtils) { + super(randomGenerator, options); + this.arrayUtils = arrayUtils; + this.identifierNamesSet = new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary)); + this.identifiersIterator = this.identifierNamesSet.values(); + } + static incrementIdentifierName(identifierName) { + let newIdentifierName = ''; + let isSuccess = false; + for (const character of identifierName) { + if (!isSuccess && character === character.toUpperCase()) { + newIdentifierName += character.toLowerCase(); + } + else if (!isSuccess && character === character.toLowerCase()) { + newIdentifierName += character.toUpperCase(); + isSuccess = true; + } + else { + newIdentifierName += character; + } + } + if (isSuccess) { + return newIdentifierName; + } + return null; + } + generateNext() { + const identifierName = this.generateNewDictionaryName(); + this.preserveName(identifierName); + return identifierName; + } + generateForGlobalScope() { + const prefix = this.options.identifiersPrefix ? + `${this.options.identifiersPrefix}` + : ''; + const identifierName = this.generateNewDictionaryName(); + const identifierNameWithPrefix = `${prefix}${identifierName}`; + if (!this.isValidIdentifierName(identifierNameWithPrefix)) { + return this.generateForGlobalScope(); + } + this.preserveName(identifierNameWithPrefix); + return identifierNameWithPrefix; + } + generateForLexicalScope(lexicalScopeNode) { + const lexicalScopes = [ + lexicalScopeNode, + ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode) + ]; + const identifierName = this.generateNewDictionaryName(); + if (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)) { + return this.generateForLexicalScope(lexicalScopeNode); + } + this.preserveNameForLexicalScope(identifierName, lexicalScopeNode); + return identifierName; + } + generateNewDictionaryName() { + if (!this.identifierNamesSet.size) { + throw new Error('Too many identifiers in the code, add more words to identifiers dictionary'); + } + const iteratorResult = this.identifiersIterator.next(); + if (!iteratorResult.done) { + const identifierName = iteratorResult.value; + if (!this.isValidIdentifierName(identifierName)) { + return this.generateNewDictionaryName(); + } + return iteratorResult.value; + } + this.identifierNamesSet = new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet])); + this.identifiersIterator = this.identifierNamesSet.values(); + return this.generateNewDictionaryName(); + } + getInitialIdentifierNames(identifierNames) { + const formattedIdentifierNames = identifierNames + .filter(Boolean) + .map((identifierName) => identifierName.toLowerCase()); + return this.arrayUtils.shuffle(formattedIdentifierNames); + } + getIncrementedIdentifierNames(identifierNames) { + const formattedIdentifierNames = []; + for (const identifierName of identifierNames) { + const newIdentifierName = DictionaryIdentifierNamesGenerator_1 + .incrementIdentifierName(identifierName); + if (newIdentifierName) { + formattedIdentifierNames.push(newIdentifierName); + } + } + return this.arrayUtils.shuffle(formattedIdentifierNames); + } +}; +DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object, typeof (_c = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _c : Object]) +], DictionaryIdentifierNamesGenerator); +exports.DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts": +/*!*******************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var HexadecimalIdentifierNamesGenerator_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HexadecimalIdentifierNamesGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); +let HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = class HexadecimalIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + generateNext(nameLength) { + const rangeMinInteger = 10000; + const rangeMaxInteger = 99999999; + const randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger); + const hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger); + const prefixLength = Utils_1.Utils.hexadecimalPrefix.length; + const baseNameLength = (nameLength !== null && nameLength !== void 0 ? nameLength : HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength) + + prefixLength; + const baseIdentifierName = hexadecimalNumber.substr(0, baseNameLength); + const identifierName = `_${baseIdentifierName}`; + if (!this.isValidIdentifierName(identifierName)) { + return this.generateNext(nameLength); + } + this.preserveName(identifierName); + return identifierName; + } + generateForGlobalScope(nameLength) { + const identifierName = this.generateNext(nameLength); + return `${this.options.identifiersPrefix}${identifierName}`.replace('__', '_'); + } + generateForLexicalScope(lexicalScopeNode, nameLength) { + return this.generateNext(nameLength); + } +}; +HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6; +HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], HexadecimalIdentifierNamesGenerator); +exports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts": +/*!***************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var MangledIdentifierNamesGenerator_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MangledIdentifierNamesGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NumbersString_1 = __webpack_require__(/*! ../../constants/NumbersString */ "./src/constants/NumbersString.ts"); +const AlphabetString_1 = __webpack_require__(/*! ../../constants/AlphabetString */ "./src/constants/AlphabetString.ts"); +const AlphabetStringUppercase_1 = __webpack_require__(/*! ../../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter; + } + generateNext(nameLength) { + const identifierName = this.generateNewMangledName(this.previousMangledName); + this.previousMangledName = identifierName; + this.preserveName(identifierName); + return identifierName; + } + generateForGlobalScope(nameLength) { + const prefix = this.options.identifiersPrefix ? + `${this.options.identifiersPrefix}` + : ''; + const identifierName = this.generateNewMangledName(this.previousMangledName); + const identifierNameWithPrefix = `${prefix}${identifierName}`; + this.previousMangledName = identifierName; + if (!this.isValidIdentifierName(identifierNameWithPrefix)) { + return this.generateForGlobalScope(nameLength); + } + this.preserveName(identifierNameWithPrefix); + return identifierNameWithPrefix; + } + generateForLexicalScope(lexicalScopeNode, nameLength) { + const lexicalScopes = [ + lexicalScopeNode, + ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode) + ]; + const lastMangledNameForScope = this.getLastMangledNameForScopes(lexicalScopes); + let identifierName = lastMangledNameForScope; + do { + identifierName = this.generateNewMangledName(identifierName); + } while (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)); + MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName); + this.preserveNameForLexicalScope(identifierName, lexicalScopeNode); + return identifierName; + } + isValidIdentifierName(mangledName) { + return super.isValidIdentifierName(mangledName) + && !MangledIdentifierNamesGenerator_1.reservedNamesSet.has(mangledName); + } + generateNewMangledName(previousMangledName) { + const generateNewMangledName = (name) => { + const nameSequence = MangledIdentifierNamesGenerator_1.nameSequence; + const nameSequenceLength = nameSequence.length; + const nameLength = name.length; + const zeroSequence = (num) => { + return '0'.repeat(num); + }; + let index = nameLength - 1; + do { + const character = name[index]; + const indexInSequence = nameSequence.indexOf(character); + const lastNameSequenceIndex = nameSequenceLength - 1; + if (indexInSequence !== lastNameSequenceIndex) { + const previousNamePart = name.substring(0, index); + const nextCharacter = nameSequence[indexInSequence + 1]; + const zeroSequenceLength = nameLength - (index + 1); + const zeroSequenceCharacters = zeroSequence(zeroSequenceLength); + return previousNamePart + nextCharacter + zeroSequenceCharacters; + } + --index; + } while (index >= 0); + return `a${zeroSequence(nameLength)}`; + }; + let newMangledName = generateNewMangledName(previousMangledName); + if (!this.isValidIdentifierName(newMangledName)) { + newMangledName = this.generateNewMangledName(newMangledName); + } + return newMangledName; + } + getLastMangledNameForScopes(lexicalScopeNodes) { + var _a; + for (const lexicalScope of lexicalScopeNodes) { + const lastMangledName = (_a = MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap + .get(lexicalScope)) !== null && _a !== void 0 ? _a : null; + if (!lastMangledName) { + continue; + } + return lastMangledName; + } + return MangledIdentifierNamesGenerator_1.initMangledNameCharacter; + } +}; +MangledIdentifierNamesGenerator.initMangledNameCharacter = '9'; +MangledIdentifierNamesGenerator.lastMangledNameInScopeMap = new WeakMap(); +MangledIdentifierNamesGenerator.nameSequence = `${NumbersString_1.numbersString}${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`.split(''); +MangledIdentifierNamesGenerator.reservedNamesSet = new Set([ + 'byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto', + 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try', + 'var', 'void', 'with' +]); +MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], MangledIdentifierNamesGenerator); +exports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts": +/*!******************************************************************************!*\ + !*** ./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts ***! + \*********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts": +/*!*******************************************************************!*\ + !*** ./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts": +/*!***********************************************************************************************!*\ + !*** ./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts ***! + \***********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts": +/*!*********************************************************************!*\ + !*** ./src/interfaces/code-transformers/ICodeTransformersRunner.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts": +/*!**************************************************************************!*\ + !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts": +/*!***************************************************************************!*\ + !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/event-emitters/IObfuscationEventEmitter.ts": +/*!*******************************************************************!*\ + !*** ./src/interfaces/event-emitters/IObfuscationEventEmitter.ts ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/logger/ILogger.ts": +/*!******************************************!*\ + !*** ./src/interfaces/logger/ILogger.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/node-transformers/INodeTransformersRunner.ts": +/*!*********************************************************************!*\ + !*** ./src/interfaces/node-transformers/INodeTransformersRunner.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/node/IScopeIdentifiersTraverser.ts": +/*!***********************************************************!*\ + !*** ./src/interfaces/node/IScopeIdentifiersTraverser.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/options/IOptions.ts": +/*!********************************************!*\ + !*** ./src/interfaces/options/IOptions.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/options/IOptionsNormalizer.ts": +/*!******************************************************!*\ + !*** ./src/interfaces/options/IOptionsNormalizer.ts ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/source-code/ISourceCode.ts": +/*!***************************************************!*\ + !*** ./src/interfaces/source-code/ISourceCode.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts": +/*!*****************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/IArrayUtils.ts": +/*!*********************************************!*\ + !*** ./src/interfaces/utils/IArrayUtils.ts ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/ICryptUtils.ts": +/*!*********************************************!*\ + !*** ./src/interfaces/utils/ICryptUtils.ts ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/IEscapeSequenceEncoder.ts": +/*!********************************************************!*\ + !*** ./src/interfaces/utils/IEscapeSequenceEncoder.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/ILevelledTopologicalSorter.ts": +/*!************************************************************!*\ + !*** ./src/interfaces/utils/ILevelledTopologicalSorter.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/IRandomGenerator.ts": +/*!**************************************************!*\ + !*** ./src/interfaces/utils/IRandomGenerator.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts": +/*!****************************************************************!*\ + !*** ./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/logger/Logger.ts": +/*!******************************!*\ + !*** ./src/logger/Logger.ts ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var Logger_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Logger = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk")); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts"); +let Logger = Logger_1 = class Logger { + constructor(options) { + this.options = options; + } + static log(loggingLevelColor, loggingPrefix, loggingMessage, value) { + const processedMessage = loggingLevelColor(`\n${loggingPrefix} ${loggingMessage}`); + console.log(processedMessage, value !== null && value !== void 0 ? value : ''); + } + info(loggingMessage, value) { + if (!this.options.log) { + return; + } + Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + success(loggingMessage, value) { + if (!this.options.log) { + return; + } + Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + warn(loggingMessage, value) { + if (!this.options.log) { + return; + } + Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } +}; +Logger.colorInfo = chalk_1.default.cyan; +Logger.colorSuccess = chalk_1.default.green; +Logger.colorWarn = chalk_1.default.yellow; +Logger = Logger_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], Logger); +exports.Logger = Logger; + + +/***/ }), + +/***/ "./src/node-transformers/AbstractNodeTransformer.ts": +/*!**********************************************************!*\ + !*** ./src/node-transformers/AbstractNodeTransformer.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractNodeTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractNodeTransformer = class AbstractNodeTransformer { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } +}; +AbstractNodeTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], AbstractNodeTransformer); +exports.AbstractNodeTransformer = AbstractNodeTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts": +/*!********************************************************************!*\ + !*** ./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeTransformerNamesGroupsBuilder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const AbstractTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../utils/AbstractTransformerNamesGroupsBuilder */ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts"); +let NodeTransformerNamesGroupsBuilder = class NodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder { +}; +NodeTransformerNamesGroupsBuilder = __decorate([ + inversify_1.injectable() +], NodeTransformerNamesGroupsBuilder); +exports.NodeTransformerNamesGroupsBuilder = NodeTransformerNamesGroupsBuilder; + + +/***/ }), + +/***/ "./src/node-transformers/NodeTransformersRunner.ts": +/*!*********************************************************!*\ + !*** ./src/node-transformers/NodeTransformersRunner.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeTransformersRunner = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TNodeTransformerFactory_1 = __webpack_require__(/*! ../types/container/node-transformers/TNodeTransformerFactory */ "./src/types/container/node-transformers/TNodeTransformerFactory.ts"); +const ITransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../interfaces/utils/ITransformerNamesGroupsBuilder */ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts"); +const VisitorDirection_1 = __webpack_require__(/*! ../enums/node-transformers/VisitorDirection */ "./src/enums/node-transformers/VisitorDirection.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +let NodeTransformersRunner = class NodeTransformersRunner { + constructor(nodeTransformerFactory, nodeTransformerNamesGroupsBuilder) { + this.nodeTransformerFactory = nodeTransformerFactory; + this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder; + } + transform(astTree, nodeTransformerNames, nodeTransformationStage) { + if (!nodeTransformerNames.length) { + return astTree; + } + const normalizedNodeTransformers = this.buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage); + const nodeTransformerNamesGroups = this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers); + for (const nodeTransformerNamesGroup of nodeTransformerNamesGroups) { + const enterVisitors = []; + const leaveVisitors = []; + for (const nodeTransformerName of nodeTransformerNamesGroup) { + const nodeTransformer = normalizedNodeTransformers[nodeTransformerName]; + const visitor = nodeTransformer.getVisitor(nodeTransformationStage); + if (!visitor) { + continue; + } + if (visitor.enter) { + enterVisitors.push({ enter: visitor.enter }); + } + if (visitor.leave) { + leaveVisitors.push({ leave: visitor.leave }); + } + } + if (!enterVisitors.length && !leaveVisitors.length) { + continue; + } + estraverse.replace(astTree, { + enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter), + leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave) + }); + } + return astTree; + } + buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage) { + return nodeTransformerNames + .reduce((acc, nodeTransformerName) => { + const nodeTransformer = this.nodeTransformerFactory(nodeTransformerName); + if (!nodeTransformer.getVisitor(nodeTransformationStage)) { + return acc; + } + return Object.assign(Object.assign({}, acc), { [nodeTransformerName]: nodeTransformer }); + }, {}); + } + mergeVisitorsForDirection(visitors, direction) { + const visitorsLength = visitors.length; + if (!visitorsLength) { + return (node, parentNode) => node; + } + return (node, parentNode) => { + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + for (let i = 0; i < visitorsLength; i++) { + const visitorFunction = visitors[i][direction]; + if (!visitorFunction) { + continue; + } + const visitorResult = visitorFunction(node, parentNode); + if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) { + continue; + } + node = visitorResult; + } + return node; + }; + } +}; +NodeTransformersRunner = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)), + __metadata("design:paramtypes", [typeof (_a = typeof TNodeTransformerFactory_1.TNodeTransformerFactory !== "undefined" && TNodeTransformerFactory_1.TNodeTransformerFactory) === "function" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== "undefined" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === "function" ? _b : Object]) +], NodeTransformersRunner); +exports.NodeTransformersRunner = NodeTransformersRunner; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var BlockStatementControlFlowTransformer_1, _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BlockStatementControlFlowTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = class BlockStatementControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) { + super(randomGenerator, options); + this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + this.arrayUtils = arrayUtils; + } + static isProhibitedStatementNode(node) { + const isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(node) + || NodeGuards_1.NodeGuards.isContinueStatementNode(node); + const isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(node) + && (node.kind === 'const' || node.kind === 'let'); + const isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(node); + return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) + || isBreakOrContinueStatement + || isVariableDeclarationWithLetOrConstKind + || isClassDeclaration; + } + static canTransformBlockStatementNode(blockStatementNode) { + let canTransform = true; + estraverse.traverse(blockStatementNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) { + return estraverse.VisitorOption.Skip; + } + if (BlockStatementControlFlowTransformer_1.isProhibitedStatementNode(node)) { + canTransform = false; + } + } + }); + if (blockStatementNode.body.length <= 4) { + canTransform = false; + } + return canTransform; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(blockStatementNode, parentNode) { + if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold || + !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) { + return blockStatementNode; + } + const blockStatementBody = blockStatementNode.body; + const originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length); + const shuffledKeys = this.arrayUtils.shuffle(originalKeys); + const originalKeysIndexesInShuffledArray = originalKeys.map((key) => shuffledKeys.indexOf(key)); + const blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode); + blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray); + const newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0]; + NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode); + return newBlockStatementNode; + } +}; +BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], BlockStatementControlFlowTransformer); +exports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts": +/*!*******************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var FunctionControlFlowTransformer_1, _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FunctionControlFlowTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const TControlFlowReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TControlFlowReplacerFactory */ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts"); +const TControlFlowStorageFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TControlFlowStorageFactory */ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const ControlFlowReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts"); +const NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = class FunctionControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) { + super(randomGenerator, options); + this.controlFlowData = new Map(); + this.visitedFunctionNodes = new Set(); + this.hostNodesWithControlFlowNode = new Set(); + this.controlFlowStorageFactory = controlFlowStorageFactory; + this.controlFlowReplacerFactory = controlFlowReplacerFactory; + this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening: + return { + leave: (node, parentNode) => { + if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || + NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || + NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(functionNode, parentNode) { + this.visitedFunctionNodes.add(functionNode); + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) { + return functionNode; + } + const hostNode = this.getHostNode(functionNode.body); + const controlFlowStorage = this.getControlFlowStorage(hostNode); + this.controlFlowData.set(hostNode, controlFlowStorage); + this.transformFunctionBody(functionNode.body, controlFlowStorage); + if (!controlFlowStorage.getLength()) { + return functionNode; + } + const controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode); + controlFlowStorageCustomNode.initialize(controlFlowStorage); + NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode()); + this.hostNodesWithControlFlowNode.add(hostNode); + NodeUtils_1.NodeUtils.parentizeAst(functionNode); + return functionNode; + } + getControlFlowStorage(hostNode) { + const controlFlowStorage = this.controlFlowStorageFactory(); + if (this.controlFlowData.has(hostNode)) { + if (this.hostNodesWithControlFlowNode.has(hostNode)) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(hostNode)) { + hostNode.consequent.shift(); + } + else { + hostNode.body.shift(); + } + } + const hostControlFlowStorage = this.controlFlowData.get(hostNode); + controlFlowStorage.mergeWith(hostControlFlowStorage, true); + } + return controlFlowStorage; + } + getHostNode(functionNodeBody) { + const blockScopesOfNode = NodeStatementUtils_1.NodeStatementUtils.getParentNodesWithStatements(functionNodeBody); + if (blockScopesOfNode.length === 1) { + return functionNodeBody; + } + else { + blockScopesOfNode.pop(); + } + if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) { + blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth); + } + if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) { + blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth; + } + return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode); + } + isVisitedFunctionNode(node) { + return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || + NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || + NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node); + } + transformFunctionBody(functionNodeBody, controlFlowStorage) { + estraverse.replace(functionNodeBody, { + enter: (node, parentNode) => { + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + if (this.isVisitedFunctionNode(node) || !parentNode) { + return estraverse.VisitorOption.Skip; + } + if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) { + return node; + } + if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold) { + return node; + } + const controlFlowReplacerName = FunctionControlFlowTransformer_1 + .controlFlowReplacersMap.get(node.type); + if (controlFlowReplacerName === undefined) { + return node; + } + return Object.assign(Object.assign({}, this.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage)), { parentNode }); + } + }); + } +}; +FunctionControlFlowTransformer.controlFlowReplacersMap = new Map([ + [NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer], + [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer], + [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer], + [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer] +]); +FunctionControlFlowTransformer.hostNodeSearchMinDepth = 0; +FunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2; +FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowStorageFactory_1.TControlFlowStorageFactory !== "undefined" && TControlFlowStorageFactory_1.TControlFlowStorageFactory) === "function" ? _a : Object, typeof (_b = typeof TControlFlowReplacerFactory_1.TControlFlowReplacerFactory !== "undefined" && TControlFlowReplacerFactory_1.TControlFlowReplacerFactory) === "function" ? _b : Object, typeof (_c = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], FunctionControlFlowTransformer); +exports.FunctionControlFlowTransformer = FunctionControlFlowTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var AbstractControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = class AbstractControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + this.replacerDataByControlFlowStorageId = new Map(); + this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + this.randomGenerator = randomGenerator; + this.options = options; + } + static getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) { + let storageKeysById; + if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) { + storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId); + } + else { + storageKeysById = new Map(); + } + return storageKeysById; + } + insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) { + const controlFlowStorageId = controlFlowStorage.getStorageId(); + const storageKeysById = AbstractControlFlowReplacer_1 + .getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId); + const storageKeysForCurrentId = storageKeysById.get(replacerId); + if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance && + storageKeysForCurrentId && + storageKeysForCurrentId.length) { + return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId); + } + const generateStorageKey = (length) => { + const key = this.randomGenerator.getRandomString(length); + if (controlFlowStorage.getStorage().has(key)) { + return generateStorageKey(length); + } + return key; + }; + const storageKey = generateStorageKey(5); + storageKeysById.set(replacerId, [storageKey]); + this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById); + controlFlowStorage.set(storageKey, customNode); + return storageKey; + } +}; +AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], AbstractControlFlowReplacer); +exports.AbstractControlFlowReplacer = AbstractControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts": +/*!***********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts ***! + \***********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var BinaryExpressionControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BinaryExpressionControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts"); +let BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = class BinaryExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + replace(binaryExpressionNode, parentNode, controlFlowStorage) { + const operator = binaryExpressionNode.operator; + const binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode); + binaryExpressionFunctionCustomNode.initialize(operator); + const storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, operator, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right); + } +}; +BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], BinaryExpressionControlFlowReplacer); +exports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts": +/*!*********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var CallExpressionControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallExpressionControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = class CallExpressionControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + replace(callExpressionNode, parentNode, controlFlowStorage) { + const callee = callExpressionNode.callee; + if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + return callExpressionNode; + } + const replacerId = String(callExpressionNode.arguments.length); + const callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode); + const expressionArguments = callExpressionNode.arguments; + callExpressionFunctionCustomNode.initialize(expressionArguments); + const storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments); + } + getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) { + const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments); + const statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node'); + } + return statementNode.expression; + } +}; +CallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], CallExpressionControlFlowReplacer); +exports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts": +/*!*****************************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts ***! + \*****************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ExpressionWithOperatorControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ExpressionWithOperatorControlFlowReplacer = class ExpressionWithOperatorControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) { + const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression); + const statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node'); + } + return statementNode.expression; + } +}; +ExpressionWithOperatorControlFlowReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], ExpressionWithOperatorControlFlowReplacer); +exports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts": +/*!************************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts ***! + \************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var LogicalExpressionControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LogicalExpressionControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = class LogicalExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + replace(logicalExpressionNode, parentNode, controlFlowStorage) { + if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) { + return logicalExpressionNode; + } + const operator = logicalExpressionNode.operator; + const logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode); + logicalExpressionFunctionCustomNode.initialize(operator); + const storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, operator, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right); + } + checkForProhibitedExpressions(leftExpression, rightExpression) { + return [leftExpression, rightExpression].some((expressionNode) => { + let nodeForCheck; + if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) { + nodeForCheck = expressionNode; + } + else { + nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode); + } + return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) && + !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) && + !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) && + !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck); + }); + } +}; +LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], LogicalExpressionControlFlowReplacer); +exports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts": +/*!********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts ***! + \********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var StringLiteralControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringLiteralControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = class StringLiteralControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + replace(literalNode, parentNode, controlFlowStorage) { + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) { + return literalNode; + } + if (typeof literalNode.value !== 'string' || literalNode.value.length < 3) { + return literalNode; + } + const replacerId = String(literalNode.value); + const literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode); + literalFunctionCustomNode.initialize(literalNode.value); + const storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey); + } + getControlFlowStorageCallNode(controlFlowStorageId, storageKey) { + const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey); + const statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node'); + } + return statementNode.expression; + } +}; +StringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1; +StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], StringLiteralControlFlowReplacer); +exports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MemberExpressionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let MemberExpressionTransformer = class MemberExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(memberExpressionNode, parentNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) { + if (memberExpressionNode.computed) { + return memberExpressionNode; + } + memberExpressionNode.computed = true; + memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name); + } + return memberExpressionNode; + } +}; +MemberExpressionTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], MemberExpressionTransformer); +exports.MemberExpressionTransformer = MemberExpressionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var MethodDefinitionTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MethodDefinitionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let MethodDefinitionTransformer = MethodDefinitionTransformer_1 = class MethodDefinitionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(methodDefinitionNode, parentNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key)) { + return this.replaceIdentifierKey(methodDefinitionNode, methodDefinitionNode.key); + } + if (NodeGuards_1.NodeGuards.isLiteralNode(methodDefinitionNode.key)) { + return this.replaceLiteralKey(methodDefinitionNode, methodDefinitionNode.key); + } + return methodDefinitionNode; + } + replaceIdentifierKey(methodDefinitionNode, keyNode) { + if (!MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.name) + && !methodDefinitionNode.computed) { + methodDefinitionNode.computed = true; + methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(keyNode.name); + } + return methodDefinitionNode; + } + replaceLiteralKey(methodDefinitionNode, keyNode) { + if (typeof keyNode.value === 'string' + && !MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.value) + && !methodDefinitionNode.computed) { + methodDefinitionNode.computed = true; + } + return methodDefinitionNode; + } +}; +MethodDefinitionTransformer.ignoredNames = ['constructor']; +MethodDefinitionTransformer = MethodDefinitionTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], MethodDefinitionTransformer); +exports.MethodDefinitionTransformer = MethodDefinitionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var ObjectExpressionKeysTransformer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionKeysTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TObjectExpressionExtractorFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TObjectExpressionExtractorFactory */ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts"); +let ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = class ObjectExpressionKeysTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(objectExpressionExtractorFactory, randomGenerator, options) { + super(randomGenerator, options); + this.objectExpressionExtractorFactory = objectExpressionExtractorFactory; + } + static isProhibitedHostStatement(objectExpressionNode, hostStatement) { + return ObjectExpressionKeysTransformer_1.isReferencedIdentifierName(objectExpressionNode, hostStatement) + || ObjectExpressionKeysTransformer_1.isProhibitedSequenceExpression(objectExpressionNode, hostStatement); + } + static isReferencedIdentifierName(objectExpressionNode, hostNode) { + const identifierNamesSet = []; + let isReferencedIdentifierName = false; + let isCurrentNode = false; + estraverse.traverse(hostNode, { + enter: (node) => { + if (node === objectExpressionNode) { + isCurrentNode = true; + } + if (!NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + return; + } + if (!isCurrentNode) { + identifierNamesSet.push(node.name); + return; + } + if (identifierNamesSet.includes(node.name)) { + isReferencedIdentifierName = true; + } + }, + leave: (node) => { + if (node === objectExpressionNode) { + isCurrentNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + return isReferencedIdentifierName; + } + static isProhibitedSequenceExpression(objectExpressionNode, hostNode) { + return NodeGuards_1.NodeGuards.isExpressionStatementNode(hostNode) + && NodeGuards_1.NodeGuards.isSequenceExpressionNode(hostNode.expression) + && hostNode.expression.expressions.some((expressionNode) => NodeGuards_1.NodeGuards.isCallExpressionNode(expressionNode) + && NodeGuards_1.NodeGuards.isSuperNode(expressionNode.callee)); + } + getVisitor(nodeTransformationStage) { + if (!this.options.transformObjectKeys) { + return null; + } + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + leave: (node, parentNode) => { + if (parentNode + && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(objectExpressionNode, parentNode) { + if (!objectExpressionNode.properties.length) { + return objectExpressionNode; + } + const hostStatement = NodeStatementUtils_1.NodeStatementUtils.getRootStatementOfNode(objectExpressionNode); + if (ObjectExpressionKeysTransformer_1.isProhibitedHostStatement(objectExpressionNode, hostStatement)) { + return objectExpressionNode; + } + return this.applyObjectExpressionKeysExtractorsRecursive(ObjectExpressionKeysTransformer_1.objectExpressionExtractorNames, objectExpressionNode, hostStatement); + } + applyObjectExpressionKeysExtractorsRecursive(objectExpressionExtractorNames, objectExpressionNode, hostStatement) { + const newObjectExpressionExtractorNames = [...objectExpressionExtractorNames]; + const objectExpressionExtractor = newObjectExpressionExtractorNames.shift(); + if (!objectExpressionExtractor) { + return objectExpressionNode; + } + const { nodeToReplace, objectExpressionHostStatement: newObjectExpressionHostStatement, objectExpressionNode: newObjectExpressionNode } = this.objectExpressionExtractorFactory(objectExpressionExtractor) + .extract(objectExpressionNode, hostStatement); + this.applyObjectExpressionKeysExtractorsRecursive(newObjectExpressionExtractorNames, newObjectExpressionNode, newObjectExpressionHostStatement); + return nodeToReplace; + } +}; +ObjectExpressionKeysTransformer.objectExpressionExtractorNames = [ + ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor, + ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor +]; +ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory !== "undefined" && TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], ObjectExpressionKeysTransformer); +exports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ObjectExpressionTransformer = class ObjectExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(objectExpressionNode, parentNode) { + objectExpressionNode.properties + .forEach((property) => { + if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) { + return; + } + if (!property.key) { + return; + } + if (property.computed) { + this.transformComputedProperty(property); + } + else { + this.transformBaseProperty(property); + } + }); + return objectExpressionNode; + } + transformComputedProperty(property) { + if (!NodeGuards_1.NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) { + return; + } + property.key = NodeFactory_1.NodeFactory.literalNode(property.key.value); + } + transformBaseProperty(property) { + if (property.shorthand) { + property.shorthand = false; + } + if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) { + return; + } + property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name); + } +}; +ObjectExpressionTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], ObjectExpressionTransformer); +exports.ObjectExpressionTransformer = ObjectExpressionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts": +/*!*********************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/SplitStringTransformer.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var SplitStringTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SplitStringTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let SplitStringTransformer = SplitStringTransformer_1 = class SplitStringTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, + NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer + ]; + } + static chunkString(string, chunkSize) { + const chunksCount = Math.ceil(string.length / chunkSize); + const chunks = []; + let nextChunkStartIndex = 0; + for (let chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) { + chunks[chunkIndex] = string.substr(nextChunkStartIndex, chunkSize); + } + return chunks; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (!this.options.splitStrings) { + return; + } + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return literalNode; + } + const firstPassChunksNode = this.transformLiteralNodeByChunkLength(literalNode, parentNode, SplitStringTransformer_1.firstPassChunkLength); + const secondPassChunksNode = estraverse.replace(firstPassChunksNode, { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformLiteralNodeByChunkLength(node, parentNode, this.options.splitStringsChunkLength); + } + } + }); + return secondPassChunksNode; + } + transformLiteralNodeByChunkLength(literalNode, parentNode, chunkLength) { + if (typeof literalNode.value !== 'string') { + return literalNode; + } + if (chunkLength >= literalNode.value.length) { + return literalNode; + } + const stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, chunkLength); + const binaryExpressionNode = this.transformStringChunksToBinaryExpressionNode(stringChunks); + NodeUtils_1.NodeUtils.parentizeAst(binaryExpressionNode); + NodeUtils_1.NodeUtils.parentizeNode(binaryExpressionNode, parentNode); + return binaryExpressionNode; + } + transformStringChunksToBinaryExpressionNode(chunks) { + const firstChunk = chunks.shift(); + const secondChunk = chunks.shift(); + if (!firstChunk || !secondChunk) { + throw new Error('First and second chunks values should not be empty'); + } + const initialBinaryExpressionNode = NodeFactory_1.NodeFactory.binaryExpressionNode('+', NodeFactory_1.NodeFactory.literalNode(firstChunk), NodeFactory_1.NodeFactory.literalNode(secondChunk)); + return chunks.reduce((binaryExpressionNode, chunk) => { + const chunkLiteralNode = NodeFactory_1.NodeFactory.literalNode(chunk); + return NodeFactory_1.NodeFactory.binaryExpressionNode('+', binaryExpressionNode, chunkLiteralNode); + }, initialBinaryExpressionNode); + } +}; +SplitStringTransformer.firstPassChunkLength = 1000; +SplitStringTransformer = SplitStringTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], SplitStringTransformer); +exports.SplitStringTransformer = SplitStringTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var TemplateLiteralTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TemplateLiteralTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let TemplateLiteralTransformer = TemplateLiteralTransformer_1 = class TemplateLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + static isLiteralNodeWithStringValue(node) { + return !!node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string'; + } + static isValidTemplateLiteralNode(node, parentNode) { + return NodeGuards_1.NodeGuards.isTemplateLiteralNode(node) && !NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && TemplateLiteralTransformer_1.isValidTemplateLiteralNode(node, parentNode)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(templateLiteralNode, parentNode) { + const templateLiteralExpressions = templateLiteralNode.expressions; + let nodes = []; + templateLiteralNode.quasis.forEach((templateElement) => { + nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked)); + const expression = templateLiteralExpressions.shift(); + if (!expression) { + return; + } + nodes.push(expression); + }); + nodes = nodes.filter((node) => { + return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === ''); + }); + if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) && + !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) { + nodes.unshift(NodeFactory_1.NodeFactory.literalNode('')); + } + let transformedNode; + if (nodes.length > 1) { + let root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift()); + nodes.forEach((node) => { + root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node); + }); + transformedNode = root; + } + else { + transformedNode = nodes[0]; + } + NodeUtils_1.NodeUtils.parentizeAst(transformedNode); + NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode); + return transformedNode; + } +}; +TemplateLiteralTransformer = TemplateLiteralTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], TemplateLiteralTransformer); +exports.TemplateLiteralTransformer = TemplateLiteralTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var BasePropertiesExtractor_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BasePropertiesExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BasePropertiesExtractor = BasePropertiesExtractor_1 = class BasePropertiesExtractor { + static getPropertyNodeKeyName(propertyNode) { + const propertyKeyNode = propertyNode.key; + if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode) + && (typeof propertyKeyNode.value === 'string' + || typeof propertyKeyNode.value === 'number')) { + return propertyKeyNode.value.toString(); + } + if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) { + return propertyKeyNode.name; + } + return null; + } + static isProhibitedPattern(node) { + return !node + || NodeGuards_1.NodeGuards.isObjectPatternNode(node) + || NodeGuards_1.NodeGuards.isArrayPatternNode(node) + || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) + || NodeGuards_1.NodeGuards.isRestElementNode(node); + } + extract(objectExpressionNode, hostStatement) { + const hostNode = objectExpressionNode.parentNode; + if (hostNode + && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(hostNode) + && NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id)) { + return this.transformObjectExpressionNode(objectExpressionNode, hostStatement, hostNode.id); + } + return { + nodeToReplace: objectExpressionNode, + objectExpressionHostStatement: hostStatement, + objectExpressionNode: objectExpressionNode + }; + } + transformObjectExpressionNode(objectExpressionNode, hostStatement, memberExpressionHostNode) { + const properties = objectExpressionNode.properties; + const [expressionStatements, removablePropertyIds] = this + .extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode); + const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement); + this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds); + NodeAppender_1.NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement); + NodeUtils_1.NodeUtils.parentizeAst(hostNodeWithStatements); + return { + nodeToReplace: objectExpressionNode, + objectExpressionHostStatement: hostStatement, + objectExpressionNode: objectExpressionNode + }; + } + extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode) { + const propertiesLength = properties.length; + const expressionStatements = []; + const removablePropertyIds = []; + for (let i = 0; i < propertiesLength; i++) { + const property = properties[i]; + if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) { + continue; + } + const propertyValue = property.value; + if (BasePropertiesExtractor_1.isProhibitedPattern(propertyValue)) { + continue; + } + const propertyKeyName = BasePropertiesExtractor_1.getPropertyNodeKeyName(property); + if (!propertyKeyName) { + continue; + } + const shouldCreateLiteralNode = !property.computed + || (property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key)); + const memberExpressionProperty = shouldCreateLiteralNode + ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName) + : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName); + const memberExpressionNode = NodeFactory_1.NodeFactory + .memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true); + const expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue)); + if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) { + this.transformObjectExpressionNode(property.value, hostStatement, memberExpressionNode); + } + expressionStatements.push(expressionStatementNode); + removablePropertyIds.push(i); + } + return [expressionStatements, removablePropertyIds]; + } + filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) { + objectExpressionNode.properties = objectExpressionNode.properties + .filter((property, index) => !removablePropertyIds.includes(index)); + } +}; +BasePropertiesExtractor = BasePropertiesExtractor_1 = __decorate([ + inversify_1.injectable() +], BasePropertiesExtractor); +exports.BasePropertiesExtractor = BasePropertiesExtractor; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts": +/*!**************************************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts ***! + \**************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionToVariableDeclarationExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TObjectExpressionKeysTransformerCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory */ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts"); +const ObjectExpressionKeysTransformerCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode */ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let ObjectExpressionToVariableDeclarationExtractor = class ObjectExpressionToVariableDeclarationExtractor { + constructor(objectExpressionKeysTransformerCustomNodeFactory) { + this.objectExpressionKeysTransformerCustomNodeFactory = objectExpressionKeysTransformerCustomNodeFactory; + } + extract(objectExpressionNode, hostStatement) { + return this.transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement); + } + transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement) { + var _a; + const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement); + const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(hostNodeWithStatements) + ? hostNodeWithStatements + : (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(hostNodeWithStatements)) !== null && _a !== void 0 ? _a : null; + if (!lexicalScopeNode) { + throw new Error('Cannot find lexical scope node for the host statement node'); + } + const properties = objectExpressionNode.properties; + const newObjectExpressionHostStatement = this.getObjectExpressionHostNode(lexicalScopeNode, properties); + const statementsToInsert = [newObjectExpressionHostStatement]; + NodeAppender_1.NodeAppender.insertBefore(hostNodeWithStatements, statementsToInsert, hostStatement); + NodeUtils_1.NodeUtils.parentizeAst(newObjectExpressionHostStatement); + NodeUtils_1.NodeUtils.parentizeNode(newObjectExpressionHostStatement, hostNodeWithStatements); + const newObjectExpressionIdentifier = this.getObjectExpressionIdentifierNode(newObjectExpressionHostStatement); + const newObjectExpressionNode = this.getObjectExpressionNode(newObjectExpressionHostStatement); + return { + nodeToReplace: newObjectExpressionIdentifier, + objectExpressionHostStatement: newObjectExpressionHostStatement, + objectExpressionNode: newObjectExpressionNode + }; + } + getObjectExpressionHostNode(lexicalScopeNode, properties) { + const variableDeclarationHostNodeCustomNode = this.objectExpressionKeysTransformerCustomNodeFactory(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode); + variableDeclarationHostNodeCustomNode.initialize(lexicalScopeNode, properties); + const statementNode = variableDeclarationHostNodeCustomNode.getNode()[0]; + if (!statementNode + || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(statementNode)) { + throw new Error('`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node'); + } + return statementNode; + } + getObjectExpressionIdentifierNode(objectExpressionHostNode) { + const newObjectExpressionIdentifierNode = objectExpressionHostNode.declarations[0].id; + if (!NodeGuards_1.NodeGuards.isIdentifierNode(newObjectExpressionIdentifierNode)) { + throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property'); + } + return newObjectExpressionIdentifierNode; + } + getObjectExpressionNode(objectExpressionHostNode) { + var _a; + const newObjectExpressionNode = (_a = objectExpressionHostNode.declarations[0].init) !== null && _a !== void 0 ? _a : null; + if (!newObjectExpressionNode || !NodeGuards_1.NodeGuards.isObjectExpressionNode(newObjectExpressionNode)) { + throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property'); + } + return newObjectExpressionNode; + } +}; +ObjectExpressionToVariableDeclarationExtractor = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)), + __metadata("design:paramtypes", [typeof (_a = typeof TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory !== "undefined" && TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory) === "function" ? _a : Object]) +], ObjectExpressionToVariableDeclarationExtractor); +exports.ObjectExpressionToVariableDeclarationExtractor = ObjectExpressionToVariableDeclarationExtractor; + + +/***/ }), + +/***/ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts ***! + \************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var DeadCodeInjectionTransformer_1, _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DeadCodeInjectionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TDeadNodeInjectionCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory */ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const INodeTransformersRunner_1 = __webpack_require__(/*! ../../interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts"); +const DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = class DeadCodeInjectionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) { + super(randomGenerator, options); + this.deadCodeInjectionRootAstHostNodeSet = new Set(); + this.collectedBlockStatements = []; + this.collectedBlockStatementsTotalLength = 0; + this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory; + this.transformersRunner = transformersRunner; + } + static isProhibitedNodeInsideCollectedBlockStatement(targetNode) { + return NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode) + || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode) + || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode) + || NodeGuards_1.NodeGuards.isSuperNode(targetNode); + } + static isScopeHoistingFunctionDeclaration(targetNode) { + if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) { + return false; + } + const scopeNode = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(targetNode); + const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) + ? scopeNode.body + : scopeNode.consequent; + const indexInScope = scopeBody.indexOf(targetNode); + if (indexInScope === 0) { + return false; + } + const slicedBody = scopeBody.slice(0, indexInScope); + const hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody); + const functionDeclarationName = targetNode.id.name; + let isScopeHoistedFunctionDeclaration = false; + estraverse.traverse(hostBlockStatementNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) { + isScopeHoistedFunctionDeclaration = true; + return estraverse.VisitorOption.Break; + } + } + }); + return isScopeHoistedFunctionDeclaration; + } + static isValidCollectedBlockStatementNode(blockStatementNode) { + if (!blockStatementNode.body.length) { + return false; + } + let nestedBlockStatementsCount = 0; + let isValidBlockStatementNode = true; + estraverse.traverse(blockStatementNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + nestedBlockStatementsCount++; + } + if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount + || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node) + || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) { + isValidBlockStatementNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + return isValidBlockStatementNode; + } + static isValidWrappedBlockStatementNode(blockStatementNode) { + if (!blockStatementNode.body.length) { + return false; + } + let isValidBlockStatementNode = true; + estraverse.traverse(blockStatementNode, { + enter: (node) => { + if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) { + isValidBlockStatementNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + if (!isValidBlockStatementNode) { + return false; + } + const parentNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils + .getParentNodeWithStatements(blockStatementNode); + return parentNodeWithStatements.type !== NodeType_1.NodeType.Program; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.analyzeNode(node, parentNode); + return node; + } + }, + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + if (!this.deadCodeInjectionRootAstHostNodeSet.size) { + return null; + } + return { + enter: (node, parentNode) => { + if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) { + return this.restoreNode(node, parentNode); + } + } + }; + default: + return null; + } + } + analyzeNode(programNode, parentNode) { + estraverse.traverse(programNode, { + enter: (node) => { + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return; + } + const clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node); + if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) { + return; + } + const transformedBlockStatementNode = this.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode); + this.collectedBlockStatements.push(transformedBlockStatementNode); + } + }); + this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length; + } + transformNode(blockStatementNode, parentNode) { + const canBreakTraverse = !this.collectedBlockStatements.length + || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount; + if (canBreakTraverse) { + return estraverse.VisitorOption.Break; + } + if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold + || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) { + return blockStatementNode; + } + const minInteger = 0; + const maxInteger = this.collectedBlockStatements.length - 1; + const randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger); + const randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0]; + const isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode; + if (isDuplicateBlockStatementNodes) { + return blockStatementNode; + } + return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode); + } + restoreNode(deadCodeInjectionRootAstHostNode, parentNode) { + const hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0]; + if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) { + throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node'); + } + return hostNodeFirstStatement.body; + } + isDeadCodeInjectionRootAstHostNode(node) { + return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node); + } + makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) { + const hostNode = NodeFactory_1.NodeFactory.programNode([ + NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([], clonedBlockStatementNode)) + ]); + NodeUtils_1.NodeUtils.parentizeAst(hostNode); + NodeUtils_1.NodeUtils.parentizeNode(hostNode, hostNode); + this.transformersRunner.transform(hostNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, NodeTransformationStage_1.NodeTransformationStage.Obfuscating); + return clonedBlockStatementNode; + } + replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) { + const deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode) + ]); + this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode); + const blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode); + blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode); + const newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0]; + NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode); + return newBlockStatementNode; + } +}; +DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode'; +DeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4; +DeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5; +DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [ + NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, + NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer +]; +DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory !== "undefined" && TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], DeadCodeInjectionTransformer); +exports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts": +/*!********************************************************************************!*\ + !*** ./src/node-transformers/initializing-transformers/CommentsTransformer.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var CommentsTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CommentsTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let CommentsTransformer = CommentsTransformer_1 = class CommentsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Initializing: + return { + leave: (node) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + return { + leave: (node) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.filterCommentsOnFinalizingTraverse(node); + } + } + }; + default: + return null; + } + } + transformNode(rootNode) { + rootNode = this.filterCommentsOnPrimaryTraverse(rootNode); + if (!rootNode.comments || !rootNode.comments.length) { + return rootNode; + } + const comments = rootNode.comments.reverse(); + if (comments.length === 0) { + return rootNode; + } + if (!rootNode.body.length) { + rootNode.leadingComments = comments; + return rootNode; + } + let isFirstNode = true; + estraverse.traverse(rootNode, { + enter: (node) => { + if (node === rootNode) { + return; + } + const commentIdx = comments.findIndex((comment) => comment.range && node.range && comment.range[0] < node.range[0]); + if (commentIdx >= 0) { + (isFirstNode ? rootNode : node).leadingComments = + comments.splice(commentIdx, comments.length - commentIdx).reverse(); + } + isFirstNode = false; + } + }); + if (comments.length > 0) { + rootNode.trailingComments = comments.reverse(); + } + return rootNode; + } + filterCommentsOnPrimaryTraverse(rootNode) { + var _a; + rootNode.comments = (_a = rootNode.comments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, true)); + return rootNode; + } + filterCommentsOnFinalizingTraverse(rootNode) { + estraverse.replace(rootNode, { + enter: (node) => { + var _a, _b; + if (node.leadingComments) { + node.leadingComments = (_a = node.leadingComments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, false)); + } + if (node.trailingComments) { + node.trailingComments = (_b = node.trailingComments) === null || _b === void 0 ? void 0 : _b.filter((comment) => this.filterComment(comment, false)); + } + return node; + } + }); + return rootNode; + } + filterComment(comment, keepConditionalComment) { + if (keepConditionalComment && ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard.isConditionalComment(comment)) { + return true; + } + return CommentsTransformer_1.preservedWords + .some((preservedWord) => comment.value.includes(preservedWord)); + } +}; +CommentsTransformer.preservedWords = [ + '@license', + '@preserve' +]; +CommentsTransformer = CommentsTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], CommentsTransformer); +exports.CommentsTransformer = CommentsTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts": +/*!*******************************************************************************************!*\ + !*** ./src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IfStatementSimplifyTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let IfStatementSimplifyTransformer = class IfStatementSimplifyTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.branchStatementsWithReturnStatementSet = new Set(); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Minification: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isIfStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(ifStatementNode, parentNode) { + const consequentExpression = this.convertBranchStatementToExpression(ifStatementNode.consequent); + if (!consequentExpression) { + return ifStatementNode; + } + const isConsequentWithReturnStatement = this.branchStatementsWithReturnStatementSet + .has(ifStatementNode.consequent); + if (!ifStatementNode.alternate) { + if (isConsequentWithReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, NodeFactory_1.NodeFactory.returnStatementNode(consequentExpression)); + } + return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode('&&', ifStatementNode.test, consequentExpression)); + } + const alternateExpression = this.convertBranchStatementToExpression(ifStatementNode.alternate); + if (!alternateExpression) { + return ifStatementNode; + } + const isAlternateWithReturnStatement = this.branchStatementsWithReturnStatementSet + .has(ifStatementNode.alternate); + if (isConsequentWithReturnStatement && isAlternateWithReturnStatement) { + return NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentExpression, alternateExpression)); + } + if (isConsequentWithReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, NodeFactory_1.NodeFactory.returnStatementNode(consequentExpression), NodeFactory_1.NodeFactory.expressionStatementNode(alternateExpression)); + } + if (isAlternateWithReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, NodeFactory_1.NodeFactory.expressionStatementNode(consequentExpression), NodeFactory_1.NodeFactory.returnStatementNode(alternateExpression)); + } + return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentExpression, alternateExpression)); + } + convertBranchStatementToExpression(statementNode) { + if (!this.isValidBranchStatementStatementForConvert(statementNode)) { + return null; + } + const unwrappedExpressions = statementNode + .body + .reduce((acc, statementBodyStatementNode) => { + if (NodeGuards_1.NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) { + return [ + ...acc, + statementBodyStatementNode.expression + ]; + } + if (NodeGuards_1.NodeGuards.isReturnStatementNode(statementBodyStatementNode) + && statementBodyStatementNode.argument) { + return [ + ...acc, + statementBodyStatementNode.argument + ]; + } + return acc; + }, []); + if (!unwrappedExpressions.length) { + return null; + } + return unwrappedExpressions.length === 1 + ? unwrappedExpressions[0] + : NodeFactory_1.NodeFactory.sequenceExpressionNode(unwrappedExpressions); + } + isValidBranchStatementStatementForConvert(statementNode) { + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(statementNode)) { + return false; + } + let isValidStatementNode = true; + for (const statement of statementNode.body) { + if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(statement) + && !NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) { + isValidStatementNode = false; + break; + } + else if (NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) { + this.branchStatementsWithReturnStatementSet.add(statementNode); + } + } + return isValidStatementNode; + } +}; +IfStatementSimplifyTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], IfStatementSimplifyTransformer); +exports.IfStatementSimplifyTransformer = IfStatementSimplifyTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/minification-transformers/VariableDeclarationsMergeTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/minification-transformers/VariableDeclarationsMergeTransformer.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VariableDeclarationsMergeTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let VariableDeclarationsMergeTransformer = class VariableDeclarationsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Minification: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(variableDeclarationNode, parentNode) { + if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) { + return variableDeclarationNode; + } + const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(variableDeclarationNode); + if (!prevStatement || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(prevStatement)) { + return variableDeclarationNode; + } + if (variableDeclarationNode.kind !== prevStatement.kind) { + return variableDeclarationNode; + } + prevStatement.declarations.push(...variableDeclarationNode.declarations); + return estraverse.VisitorOption.Remove; + } +}; +VariableDeclarationsMergeTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], VariableDeclarationsMergeTransformer); +exports.VariableDeclarationsMergeTransformer = VariableDeclarationsMergeTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LabeledStatementTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TIdentifierObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let LabeledStatementTransformer = class LabeledStatementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierObfuscatingReplacerFactory, randomGenerator, options) { + super(randomGenerator, options); + this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Obfuscating: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(labeledStatementNode, parentNode) { + const lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode); + if (!lexicalScopeNode) { + return labeledStatementNode; + } + this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode); + this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode); + return labeledStatementNode; + } + storeLabeledStatementName(labeledStatementNode, lexicalScopeNode) { + this.identifierObfuscatingReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode); + } + replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) { + estraverse.replace(labeledStatementNode, { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) { + const newIdentifier = this.identifierObfuscatingReplacer + .replace(node, lexicalScopeNode); + node.name = newIdentifier.name; + } + } + }); + } +}; +LabeledStatementTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory !== "undefined" && TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], LabeledStatementTransformer); +exports.LabeledStatementTransformer = LabeledStatementTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts": +/*!******************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LiteralTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TLiteralObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TLiteralObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TLiteralObfuscatingReplacerFactory.ts"); +const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts"); +const LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let LiteralTransformer = class LiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(literalObfuscatingReplacerFactory, randomGenerator, options, stringArrayStorageAnalyzer, escapeSequenceEncoder) { + super(randomGenerator, options); + this.literalObfuscatingReplacerFactory = literalObfuscatingReplacerFactory; + this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer; + this.escapeSequenceEncoder = escapeSequenceEncoder; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Obfuscating: + return { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.analyzeNode(node); + } + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) { + return this.transformNode(node, parentNode); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.encodeLiteralNodeToEscapeSequence(node, parentNode); + } + } + }; + default: + return null; + } + } + analyzeNode(programNode) { + this.stringArrayStorageAnalyzer.analyze(programNode); + } + transformNode(literalNode, parentNode) { + if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return literalNode; + } + let newLiteralNode; + switch (typeof literalNode.value) { + case 'boolean': + newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(literalNode); + break; + case 'number': + case 'bigint': + newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(literalNode); + break; + case 'string': + newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(literalNode); + break; + default: + newLiteralNode = literalNode; + } + NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode); + return newLiteralNode; + } + encodeLiteralNodeToEscapeSequence(literalNode, parentNode) { + if (typeof literalNode.value !== 'string') { + return literalNode; + } + return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(literalNode.value, this.options.unicodeEscapeSequence)); + } +}; +LiteralTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), + __metadata("design:paramtypes", [typeof (_a = typeof TLiteralObfuscatingReplacerFactory_1.TLiteralObfuscatingReplacerFactory !== "undefined" && TLiteralObfuscatingReplacerFactory_1.TLiteralObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _d : Object, typeof (_e = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _e : Object]) +], LiteralTransformer); +exports.LiteralTransformer = LiteralTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ScopeIdentifiersTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TIdentifierObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts"); +const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +let ScopeIdentifiersTransformer = class ScopeIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierObfuscatingReplacerFactory, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.lexicalScopesWithObjectPatternWithoutDeclarationMap = new Map(); + this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + this.scopeIdentifiersTraverser = scopeIdentifiersTraverser; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Obfuscating: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverse(programNode, parentNode, (data) => { + const { isGlobalDeclaration, variable, variableLexicalScopeNode } = data; + if (!this.options.renameGlobals && isGlobalDeclaration) { + const isImportBindingOrCatchClauseIdentifier = variable.defs + .every((definition) => definition.type === 'ImportBinding' + || definition.type === 'CatchClause'); + if (!isImportBindingOrCatchClauseIdentifier) { + return; + } + } + this.transformScopeVariableIdentifiers(variable, variableLexicalScopeNode, isGlobalDeclaration); + }); + return programNode; + } + transformScopeVariableIdentifiers(variable, lexicalScopeNode, isGlobalDeclaration) { + var _a; + const firstIdentifier = (_a = variable.identifiers[0]) !== null && _a !== void 0 ? _a : null; + if (!firstIdentifier) { + return; + } + if (!this.isReplaceableIdentifierNode(firstIdentifier, lexicalScopeNode, variable)) { + return; + } + this.storeIdentifierName(firstIdentifier, lexicalScopeNode, isGlobalDeclaration); + this.replaceIdentifierName(firstIdentifier, lexicalScopeNode, variable); + } + storeIdentifierName(identifierNode, lexicalScopeNode, isGlobalDeclaration) { + if (isGlobalDeclaration) { + this.identifierObfuscatingReplacer.storeGlobalName(identifierNode, lexicalScopeNode); + } + else { + this.identifierObfuscatingReplacer.storeLocalName(identifierNode, lexicalScopeNode); + } + } + replaceIdentifierName(identifierNode, lexicalScopeNode, variable) { + const newIdentifier = this.identifierObfuscatingReplacer + .replace(identifierNode, lexicalScopeNode); + variable.identifiers.forEach((identifier) => { + identifier.name = newIdentifier.name; + }); + variable.references.forEach((reference) => { + reference.identifier.name = identifierNode.name; + }); + } + isReplaceableIdentifierNode(identifierNode, lexicalScopeNode, variable) { + const parentNode = identifierNode.parentNode; + return !!parentNode + && !NodeMetadata_1.NodeMetadata.isIgnoredNode(identifierNode) + && !this.isProhibitedPropertyNode(identifierNode, parentNode) + && !this.isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode) + && !this.isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode) + && !this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode) + && !this.isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode) + && !this.isProhibitedImportSpecifierNode(identifierNode, parentNode) + && !this.isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode) + && !NodeGuards_1.NodeGuards.isLabelIdentifierNode(identifierNode, parentNode); + } + isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isClassDeclarationNode(variable.scope.block) + && NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode) + && parentNode.id === identifierNode; + } + isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode) + && parentNode.id === identifierNode + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode); + } + isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(parentNode) + && parentNode.id === identifierNode + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode); + } + isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) + && parentNode.id === identifierNode + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode.parentNode) + && !!parentNode.parentNode.parentNode + && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode.parentNode); + } + isProhibitedImportSpecifierNode(identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isImportSpecifierNode(parentNode) + && parentNode.imported.name === parentNode.local.name; + } + isProhibitedPropertyNode(node, parentNode) { + const isProhibitedPropertyIdentifier = NodeGuards_1.NodeGuards.isPropertyNode(parentNode) + && !parentNode.computed + && parentNode.key === node; + const isProhibitedPropertyAssignmentPatternIdentifier = NodeGuards_1.NodeGuards.isAssignmentPatternNode(parentNode) + && parentNode.left === node + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isPropertyNode(parentNode.parentNode) + && parentNode.left === parentNode.parentNode.key; + return isProhibitedPropertyIdentifier + || isProhibitedPropertyAssignmentPatternIdentifier; + } + isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode) { + let isLexicalScopeHasObjectPatternWithoutDeclaration = this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(lexicalScopeNode); + if (isLexicalScopeHasObjectPatternWithoutDeclaration === false) { + return false; + } + const hasVarDefinitions = variable.defs.some((definition) => definition.kind === 'var'); + if (!hasVarDefinitions) { + return false; + } + let isProhibitedVariableDeclaration = false; + estraverse.traverse(lexicalScopeNode, { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isObjectPatternNode(node) + && parentNode + && NodeGuards_1.NodeGuards.isAssignmentExpressionNode(parentNode)) { + isLexicalScopeHasObjectPatternWithoutDeclaration = true; + const properties = node.properties; + for (const property of properties) { + if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) { + continue; + } + if (property.computed || !property.shorthand) { + continue; + } + if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) { + continue; + } + if (identifierNode.name !== property.key.name) { + continue; + } + isProhibitedVariableDeclaration = true; + return estraverse.VisitorOption.Break; + } + } + } + }); + this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(lexicalScopeNode, isLexicalScopeHasObjectPatternWithoutDeclaration !== null && isLexicalScopeHasObjectPatternWithoutDeclaration !== void 0 ? isLexicalScopeHasObjectPatternWithoutDeclaration : false); + return isProhibitedVariableDeclaration; + } +}; +ScopeIdentifiersTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory !== "undefined" && TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _d : Object]) +], ScopeIdentifiersTransformer); +exports.ScopeIdentifiersTransformer = ScopeIdentifiersTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +let AbstractObfuscatingReplacer = class AbstractObfuscatingReplacer { + constructor(options) { + this.options = options; + } +}; +AbstractObfuscatingReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], AbstractObfuscatingReplacer); +exports.AbstractObfuscatingReplacer = AbstractObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts": +/*!****************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts ***! + \****************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BaseIdentifierObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let BaseIdentifierObfuscatingReplacer = class BaseIdentifierObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer { + constructor(identifierNamesGeneratorFactory, options) { + super(options); + this.blockScopesMap = new Map(); + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + } + replace(identifierNode, lexicalScopeNode) { + let identifierName = identifierNode.name; + if (this.blockScopesMap.has(lexicalScopeNode)) { + const namesMap = this.blockScopesMap.get(lexicalScopeNode); + if (namesMap.has(identifierName)) { + identifierName = namesMap.get(identifierName); + } + } + return NodeFactory_1.NodeFactory.identifierNode(identifierName); + } + storeGlobalName(identifierNode, lexicalScopeNode) { + const identifierName = identifierNode.name; + if (this.isReservedName(identifierName)) { + return; + } + const newIdentifierName = this.identifierNamesGenerator.generateForGlobalScope(); + if (!this.blockScopesMap.has(lexicalScopeNode)) { + this.blockScopesMap.set(lexicalScopeNode, new Map()); + } + const namesMap = this.blockScopesMap.get(lexicalScopeNode); + namesMap.set(identifierName, newIdentifierName); + } + storeLocalName(identifierNode, lexicalScopeNode) { + const identifierName = identifierNode.name; + if (this.isReservedName(identifierName)) { + return; + } + const newIdentifierName = this.identifierNamesGenerator.generateForLexicalScope(lexicalScopeNode); + if (!this.blockScopesMap.has(lexicalScopeNode)) { + this.blockScopesMap.set(lexicalScopeNode, new Map()); + } + const namesMap = this.blockScopesMap.get(lexicalScopeNode); + namesMap.set(identifierName, newIdentifierName); + } + preserveName(identifierNode) { + this.identifierNamesGenerator.preserveName(identifierNode.name); + } + preserveNameForLexicalScope(identifierNode, lexicalScopeNode) { + this.identifierNamesGenerator.preserveNameForLexicalScope(identifierNode.name, lexicalScopeNode); + } + isReservedName(name) { + if (!this.options.reservedNames.length) { + return false; + } + return this.options.reservedNames + .some((reservedName) => { + return new RegExp(reservedName, 'g').exec(name) !== null; + }); + } +}; +BaseIdentifierObfuscatingReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], BaseIdentifierObfuscatingReplacer); +exports.BaseIdentifierObfuscatingReplacer = BaseIdentifierObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts": +/*!*************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts ***! + \*************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var BooleanLiteralObfuscatingReplacer_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BooleanLiteralObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = class BooleanLiteralObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer { + constructor(options) { + super(options); + } + static getTrueUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode()); + } + static getFalseUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode()); + } + replace(literalNode) { + const literalValue = literalNode.value; + if (typeof literalValue !== 'boolean') { + throw new Error('`BooleanLiteralObfuscatingReplacer` should accept only literals with `boolean` value'); + } + return literalValue + ? BooleanLiteralObfuscatingReplacer_1.getTrueUnaryExpressionNode() + : BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode(); + } +}; +BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], BooleanLiteralObfuscatingReplacer); +exports.BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts": +/*!************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts ***! + \************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NumberLiteralObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let NumberLiteralObfuscatingReplacer = class NumberLiteralObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer { + constructor(options) { + super(options); + this.numberLiteralCache = new Map(); + } + replace(literalNode) { + const literalValue = literalNode.value; + if (typeof literalValue !== 'number' && typeof literalValue !== 'bigint') { + throw new Error('`NumberLiteralObfuscatingReplacer` should accept only literals with `number` and `bigint` value'); + } + let rawValue; + if (this.numberLiteralCache.has(literalValue)) { + rawValue = this.numberLiteralCache.get(literalValue); + } + else { + if (NumberUtils_1.NumberUtils.isCeil(literalValue)) { + rawValue = NumberUtils_1.NumberUtils.toHex(literalValue); + } + else { + rawValue = String(literalValue); + } + this.numberLiteralCache.set(literalValue, rawValue); + } + return NodeFactory_1.NodeFactory.literalNode(literalValue, rawValue); + } +}; +NumberLiteralObfuscatingReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], NumberLiteralObfuscatingReplacer); +exports.NumberLiteralObfuscatingReplacer = NumberLiteralObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts": +/*!************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts ***! + \************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var StringLiteralObfuscatingReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringLiteralObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts"); +const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = class StringLiteralObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer { + constructor(stringArrayStorage, stringArrayStorageAnalyzer, options) { + super(options); + this.nodesCache = new Map(); + this.stringArrayStorage = stringArrayStorage; + this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer; + } + static getHexadecimalLiteralNode(hexadecimalIndex) { + const hexadecimalLiteralNode = NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex); + NodeMetadata_1.NodeMetadata.set(hexadecimalLiteralNode, { replacedLiteral: true }); + return hexadecimalLiteralNode; + } + static getRc4KeyLiteralNode(literalValue) { + const rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(literalValue); + NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true }); + return rc4KeyLiteralNode; + } + initialize() { + if (this.options.shuffleStringArray) { + this.stringArrayStorage.shuffleStorage(); + } + if (this.options.rotateStringArray) { + this.stringArrayStorage.rotateStorage(); + } + } + replace(literalNode) { + const literalValue = literalNode.value; + if (typeof literalValue !== 'string') { + throw new Error('`StringLiteralObfuscatingReplacer` should accept only literals with `string` value'); + } + const stringArrayStorageItemData = this.stringArrayStorageAnalyzer + .getItemDataForLiteralNode(literalNode); + const cacheKey = `${literalValue}-${Boolean(stringArrayStorageItemData)}`; + const useCachedValue = this.nodesCache.has(cacheKey) && this.options.stringArrayEncoding !== StringArrayEncoding_1.StringArrayEncoding.Rc4; + if (useCachedValue) { + return this.nodesCache.get(cacheKey); + } + const resultNode = stringArrayStorageItemData + ? this.replaceWithStringArrayCallNode(stringArrayStorageItemData) + : this.replaceWithLiteralNode(literalValue); + this.nodesCache.set(cacheKey, resultNode); + return resultNode; + } + replaceWithLiteralNode(value) { + return NodeFactory_1.NodeFactory.literalNode(value); + } + replaceWithStringArrayCallNode(stringArrayStorageItemData) { + const { index, decodeKey } = stringArrayStorageItemData; + const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index); + const callExpressionArgs = [ + StringLiteralObfuscatingReplacer_1.getHexadecimalLiteralNode(hexadecimalIndex) + ]; + if (decodeKey) { + callExpressionArgs.push(StringLiteralObfuscatingReplacer_1.getRc4KeyLiteralNode(decodeKey)); + } + const stringArrayIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.stringArrayStorage.getStorageCallsWrapperName()); + return NodeFactory_1.NodeFactory.callExpressionNode(stringArrayIdentifierNode, callExpressionArgs); + } +}; +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], StringLiteralObfuscatingReplacer.prototype, "initialize", null); +StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object, typeof (_b = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], StringLiteralObfuscatingReplacer); +exports.StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelpersTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperGroupStorage_1 = __webpack_require__(/*! ../../types/storages/TCustomCodeHelperGroupStorage */ "./src/types/storages/TCustomCodeHelperGroupStorage.ts"); +const IObfuscationEventEmitter_1 = __webpack_require__(/*! ../../interfaces/event-emitters/IObfuscationEventEmitter */ "./src/interfaces/event-emitters/IObfuscationEventEmitter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ICallsGraphAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts"); +const IPrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let CustomCodeHelpersTransformer = class CustomCodeHelpersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(callsGraphAnalyzer, prevailingKindOfVariablesAnalyzer, obfuscationEventEmitter, customCodeHelperGroupStorage, randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer + ]; + this.callsGraphData = []; + this.callsGraphAnalyzer = callsGraphAnalyzer; + this.prevailingKindOfVariablesAnalyzer = prevailingKindOfVariablesAnalyzer; + this.obfuscationEventEmitter = obfuscationEventEmitter; + this.customCodeHelperGroupStorage = customCodeHelperGroupStorage; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + leave: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.analyzeNode(node, parentNode); + this.appendCustomNodesBeforeObfuscation(node, parentNode); + return this.transformNode(node, parentNode); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + return { + leave: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.appendCustomNodesAfterObfuscation(node, parentNode); + } + } + }; + default: + return null; + } + } + analyzeNode(node, parentNode) { + this.callsGraphData = this.callsGraphAnalyzer.analyze(node); + this.prevailingKindOfVariablesAnalyzer.analyze(node); + } + transformNode(node, parentNode) { + return node; + } + appendCustomNodesBeforeObfuscation(node, parentNode) { + this.customCodeHelperGroupStorage + .getStorage() + .forEach((customCodeHelperGroup) => { + customCodeHelperGroup.initialize(); + this.obfuscationEventEmitter.once(customCodeHelperGroup.getAppendEvent(), customCodeHelperGroup.appendNodes.bind(customCodeHelperGroup)); + }); + this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.callsGraphData); + } + appendCustomNodesAfterObfuscation(node, parentNode) { + this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.callsGraphData); + } +}; +CustomCodeHelpersTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof ICallsGraphAnalyzer_1.ICallsGraphAnalyzer !== "undefined" && ICallsGraphAnalyzer_1.ICallsGraphAnalyzer) === "function" ? _a : Object, typeof (_b = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== "undefined" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === "function" ? _b : Object, typeof (_c = typeof IObfuscationEventEmitter_1.IObfuscationEventEmitter !== "undefined" && IObfuscationEventEmitter_1.IObfuscationEventEmitter) === "function" ? _c : Object, typeof (_d = typeof TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage !== "undefined" && TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], CustomCodeHelpersTransformer); +exports.CustomCodeHelpersTransformer = CustomCodeHelpersTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var EvalCallExpressionTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EvalCallExpressionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const js_string_escape_1 = __importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = class EvalCallExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer + ]; + this.evalRootAstHostNodeSet = new Set(); + } + static extractEvalStringFromCallExpressionArgument(node) { + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return EvalCallExpressionTransformer_1 + .extractEvalStringFromLiteralNode(node); + } + if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) { + return EvalCallExpressionTransformer_1 + .extractEvalStringFromTemplateLiteralNode(node); + } + return null; + } + static extractEvalStringFromLiteralNode(node) { + return typeof node.value === 'string' ? node.value : null; + } + static extractEvalStringFromTemplateLiteralNode(node) { + const quasis = node.quasis; + const allowedQuasisLength = 1; + if (quasis.length !== allowedQuasisLength || node.expressions.length) { + return null; + } + return quasis[0].value.cooked; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + enter: (node, parentNode) => { + if (parentNode + && NodeGuards_1.NodeGuards.isCallExpressionNode(node) + && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee) + && node.callee.name === 'eval') { + return this.transformNode(node, parentNode); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + if (!this.evalRootAstHostNodeSet.size) { + return null; + } + return { + leave: (node, parentNode) => { + if (parentNode && this.isEvalRootAstHostNode(node)) { + return this.restoreNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(callExpressionNode, parentNode) { + const callExpressionFirstArgument = callExpressionNode.arguments[0]; + if (!callExpressionFirstArgument) { + return callExpressionNode; + } + const evalString = EvalCallExpressionTransformer_1 + .extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument); + if (!evalString) { + return callExpressionNode; + } + let ast; + try { + ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString); + } + catch (_a) { + return callExpressionNode; + } + const evalRootAstHostNode = NodeFactory_1.NodeFactory + .functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast)); + NodeUtils_1.NodeUtils.parentizeAst(evalRootAstHostNode); + NodeUtils_1.NodeUtils.parentizeNode(evalRootAstHostNode, parentNode); + this.evalRootAstHostNodeSet.add(evalRootAstHostNode); + return evalRootAstHostNode; + } + restoreNode(evalRootAstHostNode, parentNode) { + const targetAst = evalRootAstHostNode.body.body; + const obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst); + return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [ + NodeFactory_1.NodeFactory.literalNode(js_string_escape_1.default(obfuscatedCode)) + ]); + } + isEvalRootAstHostNode(node) { + return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node); + } +}; +EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], EvalCallExpressionTransformer); +exports.EvalCallExpressionTransformer = EvalCallExpressionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts": +/*!*****************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/MetadataTransformer.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MetadataTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +let MetadataTransformer = class MetadataTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer + ]; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + enter: (node, parentNode) => { + return this.transformNode(node, parentNode); + } + }; + default: + return null; + } + } + transformNode(node, parentNode) { + NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false }); + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + NodeMetadata_1.NodeMetadata.set(node, { replacedLiteral: false }); + } + return node; + } +}; +MetadataTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], MetadataTransformer); +exports.MetadataTransformer = MetadataTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var ObfuscatingGuardsTransformer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscatingGuardsTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TObfuscatingGuardFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TObfuscatingGuardFactory */ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ObfuscatingGuard_1 = __webpack_require__(/*! ../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +let ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = class ObfuscatingGuardsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(obfuscatingGuardFactory, randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer + ]; + this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + enter: (node, parentNode) => { + return this.transformNode(node, parentNode); + } + }; + default: + return null; + } + } + transformNode(node, parentNode) { + const obfuscationAllowed = this.obfuscatingGuards + .every((nodeGuard) => nodeGuard.check(node)); + NodeMetadata_1.NodeMetadata.set(node, { + ignoredNode: !(NodeGuards_1.NodeGuards.isProgramNode(node) || obfuscationAllowed) + }); + return node; + } +}; +ObfuscatingGuardsTransformer.obfuscatingGuardsList = [ + ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard +]; +ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TObfuscatingGuardFactory_1.TObfuscatingGuardFactory !== "undefined" && TObfuscatingGuardFactory_1.TObfuscatingGuardFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], ObfuscatingGuardsTransformer); +exports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts": +/*!************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/ParentificationTransformer.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ParentificationTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ParentificationTransformer = class ParentificationTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + enter: (node, parentNode) => { + return this.transformNode(node, parentNode); + } + }; + default: + return null; + } + } + transformNode(node, parentNode) { + return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode); + } +}; +ParentificationTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], ParentificationTransformer); +exports.ParentificationTransformer = ParentificationTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VariablePreserveTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const TIdentifierObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let VariablePreserveTransformer = class VariablePreserveTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierObfuscatingReplacerFactory, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer + ]; + this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + this.scopeIdentifiersTraverser = scopeIdentifiersTraverser; + this.preserveScopeVariableIdentifiers = this.preserveScopeVariableIdentifiers.bind(this); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + case NodeTransformationStage_1.NodeTransformationStage.Converting: + case NodeTransformationStage_1.NodeTransformationStage.Obfuscating: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverse(programNode, parentNode, this.preserveScopeVariableIdentifiers); + return programNode; + } + preserveScopeVariableIdentifiers(data) { + const { isGlobalDeclaration, isBubblingDeclaration, variable, variableScope } = data; + for (const identifier of variable.identifiers) { + if (isGlobalDeclaration || isBubblingDeclaration) { + this.preserveIdentifierNameForRootLexicalScope(identifier); + } + else { + this.preserveIdentifierNameForLexicalScope(identifier, variableScope); + } + } + } + preserveIdentifierNameForRootLexicalScope(identifierNode) { + this.identifierObfuscatingReplacer.preserveName(identifierNode); + } + preserveIdentifierNameForLexicalScope(identifierNode, variableScope) { + const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(variableScope.block) + ? variableScope.block + : null; + if (!lexicalScopeNode) { + return; + } + this.identifierObfuscatingReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode); + } +}; +VariablePreserveTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory !== "undefined" && TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _d : Object]) +], VariablePreserveTransformer); +exports.VariablePreserveTransformer = VariablePreserveTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts": +/*!******************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts ***! + \******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var BlackListObfuscatingGuard_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BlackListObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = class BlackListObfuscatingGuard { + constructor() { + this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length; + } + check(node) { + for (let i = 0; i < this.blackListGuardsLength; i++) { + if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) { + return false; + } + } + return true; + } +}; +BlackListObfuscatingGuard.blackListGuards = [ + NodeGuards_1.NodeGuards.isUseStrictOperator +]; +BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = __decorate([ + inversify_1.injectable(), + __metadata("design:paramtypes", []) +], BlackListObfuscatingGuard); +exports.BlackListObfuscatingGuard = BlackListObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var ConditionalCommentObfuscatingGuard_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ConditionalCommentObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = class ConditionalCommentObfuscatingGuard { + constructor() { + this.obfuscationAllowed = true; + } + static isConditionalComment(comment) { + return ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value) || + ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value); + } + check(node) { + if (!NodeGuards_1.NodeGuards.isNodeWithComments(node)) { + return this.obfuscationAllowed; + } + const leadingComments = node.leadingComments; + if (leadingComments) { + this.obfuscationAllowed = this.checkComments(leadingComments); + } + return this.obfuscationAllowed; + } + checkComments(comments) { + const commentsLength = comments.length; + let obfuscationAllowed = this.obfuscationAllowed; + for (let i = 0; i < commentsLength; i++) { + const comment = comments[i]; + if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) { + obfuscationAllowed = true; + continue; + } + if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) { + obfuscationAllowed = false; + } + } + return obfuscationAllowed; + } +}; +ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable'); +ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable'); +ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = __decorate([ + inversify_1.injectable() +], ConditionalCommentObfuscatingGuard); +exports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts": +/*!***********************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts ***! + \***********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ReservedStringObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ReservedStringObfuscatingGuard = class ReservedStringObfuscatingGuard { + constructor(options) { + this.options = options; + } + check(node) { + if (this.options.reservedStrings.length + && NodeGuards_1.NodeGuards.isLiteralNode(node) + && typeof node.value === 'string') { + return !this.isReservedString(node.value); + } + return true; + } + isReservedString(value) { + return this.options.reservedStrings + .some((reservedString) => { + return new RegExp(reservedString, 'g').exec(value) !== null; + }); + } +}; +ReservedStringObfuscatingGuard = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], ReservedStringObfuscatingGuard); +exports.ReservedStringObfuscatingGuard = ReservedStringObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts ***! + \*********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var RenamePropertiesTransformer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RenamePropertiesTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IRenamePropertiesReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer */ "./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let RenamePropertiesTransformer = RenamePropertiesTransformer_1 = class RenamePropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(renamePropertiesReplacer, randomGenerator, options) { + super(randomGenerator, options); + this.renamePropertiesReplacer = renamePropertiesReplacer; + } + static isValidPropertyNode(propertyNode, propertyKeyNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) && propertyNode.computed) { + return false; + } + return NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) || NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.RenameProperties: + return { + enter: (node, parentNode) => { + if (parentNode) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(node, parentNode) { + if (NodeGuards_1.NodeGuards.isPropertyNode(node)) { + return this.transformPropertyNode(node); + } + if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) { + return this.transformMemberExpressionNode(node); + } + if (NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) { + return this.transformMethodDefinitionNode(node); + } + return node; + } + transformPropertyNode(propertyNode) { + const propertyKeyNode = propertyNode.key; + if (RenamePropertiesTransformer_1.isValidPropertyNode(propertyNode, propertyKeyNode)) { + propertyNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode); + propertyNode.shorthand = false; + } + return propertyNode; + } + transformMemberExpressionNode(memberExpressionNode) { + const propertyKeyNode = memberExpressionNode.property; + if (RenamePropertiesTransformer_1.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) { + memberExpressionNode.property = this.renamePropertiesReplacer.replace(propertyKeyNode); + } + return memberExpressionNode; + } + transformMethodDefinitionNode(methodDefinitionNode) { + const propertyKeyNode = methodDefinitionNode.key; + if (RenamePropertiesTransformer_1.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) { + methodDefinitionNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode); + } + return methodDefinitionNode; + } +}; +RenamePropertiesTransformer = RenamePropertiesTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRenamePropertiesReplacer_1.IRenamePropertiesReplacer !== "undefined" && IRenamePropertiesReplacer_1.IRenamePropertiesReplacer) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], RenamePropertiesTransformer); +exports.RenamePropertiesTransformer = RenamePropertiesTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts": +/*!***************************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RenamePropertiesReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ReservedDomProperties_json_1 = __importDefault(__webpack_require__(/*! ./ReservedDomProperties.json */ "./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json")); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let RenamePropertiesReplacer = class RenamePropertiesReplacer { + constructor(identifierNamesGeneratorFactory, options) { + this.propertyNamesMap = new Map(); + this.reservedDomPropertiesList = new Set(ReservedDomProperties_json_1.default); + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.options = options; + } + replace(node) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + return NodeFactory_1.NodeFactory.identifierNode(this.replacePropertyName(node.name)); + } + if (NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string') { + return NodeFactory_1.NodeFactory.literalNode(this.replacePropertyName(node.value)); + } + return node; + } + replacePropertyName(propertyName) { + var _a; + if (this.isReservedName(propertyName)) { + return propertyName; + } + let renamedPropertyName = (_a = this.propertyNamesMap.get(propertyName)) !== null && _a !== void 0 ? _a : null; + if (renamedPropertyName !== null) { + return renamedPropertyName; + } + renamedPropertyName = this.identifierNamesGenerator.generateNext(); + this.propertyNamesMap.set(propertyName, renamedPropertyName); + return renamedPropertyName; + } + isReservedName(name) { + return this.isReservedOptionName(name) + || this.isReservedDomPropertyName(name); + } + isReservedOptionName(name) { + if (!this.options.reservedNames.length) { + return false; + } + return this.options.reservedNames + .some((reservedName) => { + return new RegExp(reservedName, 'g').exec(name) !== null; + }); + } + isReservedDomPropertyName(name) { + return this.reservedDomPropertiesList.has(name); + } +}; +RenamePropertiesReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], RenamePropertiesReplacer); +exports.RenamePropertiesReplacer = RenamePropertiesReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json": +/*!**************************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json ***! + \**************************************************************************************************/ +/*! exports provided: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, default */ +/***/ (function(module) { + +module.exports = JSON.parse("[\"$&\",\"$'\",\"$*\",\"$+\",\"$1\",\"$2\",\"$3\",\"$4\",\"$5\",\"$6\",\"$7\",\"$8\",\"$9\",\"$_\",\"$`\",\"$input\",\"@@iterator\",\"ABORT_ERR\",\"ACTIVE\",\"ACTIVE_ATTRIBUTES\",\"ACTIVE_TEXTURE\",\"ACTIVE_UNIFORMS\",\"ADDITION\",\"ALIASED_LINE_WIDTH_RANGE\",\"ALIASED_POINT_SIZE_RANGE\",\"ALLOW_KEYBOARD_INPUT\",\"ALLPASS\",\"ALPHA\",\"ALPHA_BITS\",\"ALT_MASK\",\"ALWAYS\",\"ANY_TYPE\",\"ANY_UNORDERED_NODE_TYPE\",\"ARRAY_BUFFER\",\"ARRAY_BUFFER_BINDING\",\"ATTACHED_SHADERS\",\"ATTRIBUTE_NODE\",\"AT_TARGET\",\"AddSearchProvider\",\"AnalyserNode\",\"AnimationEvent\",\"AnonXMLHttpRequest\",\"ApplicationCache\",\"ApplicationCacheErrorEvent\",\"Array\",\"ArrayBuffer\",\"Attr\",\"Audio\",\"AudioBuffer\",\"AudioBufferSourceNode\",\"AudioContext\",\"AudioDestinationNode\",\"AudioListener\",\"AudioNode\",\"AudioParam\",\"AudioProcessingEvent\",\"AudioStreamTrack\",\"AutocompleteErrorEvent\",\"BACK\",\"BAD_BOUNDARYPOINTS_ERR\",\"BANDPASS\",\"BLEND\",\"BLEND_COLOR\",\"BLEND_DST_ALPHA\",\"BLEND_DST_RGB\",\"BLEND_EQUATION\",\"BLEND_EQUATION_ALPHA\",\"BLEND_EQUATION_RGB\",\"BLEND_SRC_ALPHA\",\"BLEND_SRC_RGB\",\"BLUE_BITS\",\"BLUR\",\"BOOL\",\"BOOLEAN_TYPE\",\"BOOL_VEC2\",\"BOOL_VEC3\",\"BOOL_VEC4\",\"BOTH\",\"BROWSER_DEFAULT_WEBGL\",\"BUBBLING_PHASE\",\"BUFFER_SIZE\",\"BUFFER_USAGE\",\"BYTE\",\"BYTES_PER_ELEMENT\",\"BarProp\",\"BaseHref\",\"BatteryManager\",\"BeforeLoadEvent\",\"BeforeUnloadEvent\",\"BiquadFilterNode\",\"Blob\",\"BlobEvent\",\"Boolean\",\"CAPTURING_PHASE\",\"CCW\",\"CDATASection\",\"CDATA_SECTION_NODE\",\"CHANGE\",\"CHARSET_RULE\",\"CHECKING\",\"CLAMP_TO_EDGE\",\"CLICK\",\"CLOSED\",\"CLOSING\",\"COLOR_ATTACHMENT0\",\"COLOR_BUFFER_BIT\",\"COLOR_CLEAR_VALUE\",\"COLOR_WRITEMASK\",\"COMMENT_NODE\",\"COMPILE_STATUS\",\"COMPRESSED_RGBA_S3TC_DXT1_EXT\",\"COMPRESSED_RGBA_S3TC_DXT3_EXT\",\"COMPRESSED_RGBA_S3TC_DXT5_EXT\",\"COMPRESSED_RGB_S3TC_DXT1_EXT\",\"COMPRESSED_TEXTURE_FORMATS\",\"CONNECTING\",\"CONSTANT_ALPHA\",\"CONSTANT_COLOR\",\"CONSTRAINT_ERR\",\"CONTEXT_LOST_WEBGL\",\"CONTROL_MASK\",\"COUNTER_STYLE_RULE\",\"CSS\",\"CSS2Properties\",\"CSSCharsetRule\",\"CSSConditionRule\",\"CSSCounterStyleRule\",\"CSSFontFaceRule\",\"CSSFontFeatureValuesRule\",\"CSSGroupingRule\",\"CSSImportRule\",\"CSSKeyframeRule\",\"CSSKeyframesRule\",\"CSSMediaRule\",\"CSSMozDocumentRule\",\"CSSNameSpaceRule\",\"CSSPageRule\",\"CSSPrimitiveValue\",\"CSSRule\",\"CSSRuleList\",\"CSSStyleDeclaration\",\"CSSStyleRule\",\"CSSStyleSheet\",\"CSSSupportsRule\",\"CSSUnknownRule\",\"CSSValue\",\"CSSValueList\",\"CSSVariablesDeclaration\",\"CSSVariablesRule\",\"CSSViewportRule\",\"CSS_ATTR\",\"CSS_CM\",\"CSS_COUNTER\",\"CSS_CUSTOM\",\"CSS_DEG\",\"CSS_DIMENSION\",\"CSS_EMS\",\"CSS_EXS\",\"CSS_FILTER_BLUR\",\"CSS_FILTER_BRIGHTNESS\",\"CSS_FILTER_CONTRAST\",\"CSS_FILTER_CUSTOM\",\"CSS_FILTER_DROP_SHADOW\",\"CSS_FILTER_GRAYSCALE\",\"CSS_FILTER_HUE_ROTATE\",\"CSS_FILTER_INVERT\",\"CSS_FILTER_OPACITY\",\"CSS_FILTER_REFERENCE\",\"CSS_FILTER_SATURATE\",\"CSS_FILTER_SEPIA\",\"CSS_GRAD\",\"CSS_HZ\",\"CSS_IDENT\",\"CSS_IN\",\"CSS_INHERIT\",\"CSS_KHZ\",\"CSS_MATRIX\",\"CSS_MATRIX3D\",\"CSS_MM\",\"CSS_MS\",\"CSS_NUMBER\",\"CSS_PC\",\"CSS_PERCENTAGE\",\"CSS_PERSPECTIVE\",\"CSS_PRIMITIVE_VALUE\",\"CSS_PT\",\"CSS_PX\",\"CSS_RAD\",\"CSS_RECT\",\"CSS_RGBCOLOR\",\"CSS_ROTATE\",\"CSS_ROTATE3D\",\"CSS_ROTATEX\",\"CSS_ROTATEY\",\"CSS_ROTATEZ\",\"CSS_S\",\"CSS_SCALE\",\"CSS_SCALE3D\",\"CSS_SCALEX\",\"CSS_SCALEY\",\"CSS_SCALEZ\",\"CSS_SKEW\",\"CSS_SKEWX\",\"CSS_SKEWY\",\"CSS_STRING\",\"CSS_TRANSLATE\",\"CSS_TRANSLATE3D\",\"CSS_TRANSLATEX\",\"CSS_TRANSLATEY\",\"CSS_TRANSLATEZ\",\"CSS_UNKNOWN\",\"CSS_URI\",\"CSS_VALUE_LIST\",\"CSS_VH\",\"CSS_VMAX\",\"CSS_VMIN\",\"CSS_VW\",\"CULL_FACE\",\"CULL_FACE_MODE\",\"CURRENT_PROGRAM\",\"CURRENT_VERTEX_ATTRIB\",\"CUSTOM\",\"CW\",\"CanvasGradient\",\"CanvasPattern\",\"CanvasRenderingContext2D\",\"CaretPosition\",\"ChannelMergerNode\",\"ChannelSplitterNode\",\"CharacterData\",\"ClientRect\",\"ClientRectList\",\"Clipboard\",\"ClipboardEvent\",\"CloseEvent\",\"Collator\",\"CommandEvent\",\"Comment\",\"CompositionEvent\",\"Console\",\"Controllers\",\"ConvolverNode\",\"Counter\",\"Crypto\",\"CryptoKey\",\"CustomEvent\",\"DATABASE_ERR\",\"DATA_CLONE_ERR\",\"DATA_ERR\",\"DBLCLICK\",\"DECR\",\"DECR_WRAP\",\"DELETE_STATUS\",\"DEPTH_ATTACHMENT\",\"DEPTH_BITS\",\"DEPTH_BUFFER_BIT\",\"DEPTH_CLEAR_VALUE\",\"DEPTH_COMPONENT\",\"DEPTH_COMPONENT16\",\"DEPTH_FUNC\",\"DEPTH_RANGE\",\"DEPTH_STENCIL\",\"DEPTH_STENCIL_ATTACHMENT\",\"DEPTH_TEST\",\"DEPTH_WRITEMASK\",\"DIRECTION_DOWN\",\"DIRECTION_LEFT\",\"DIRECTION_RIGHT\",\"DIRECTION_UP\",\"DISABLED\",\"DISPATCH_REQUEST_ERR\",\"DITHER\",\"DOCUMENT_FRAGMENT_NODE\",\"DOCUMENT_NODE\",\"DOCUMENT_POSITION_CONTAINED_BY\",\"DOCUMENT_POSITION_CONTAINS\",\"DOCUMENT_POSITION_DISCONNECTED\",\"DOCUMENT_POSITION_FOLLOWING\",\"DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\",\"DOCUMENT_POSITION_PRECEDING\",\"DOCUMENT_TYPE_NODE\",\"DOMCursor\",\"DOMError\",\"DOMException\",\"DOMImplementation\",\"DOMImplementationLS\",\"DOMMatrix\",\"DOMMatrixReadOnly\",\"DOMParser\",\"DOMPoint\",\"DOMPointReadOnly\",\"DOMQuad\",\"DOMRect\",\"DOMRectList\",\"DOMRectReadOnly\",\"DOMRequest\",\"DOMSTRING_SIZE_ERR\",\"DOMSettableTokenList\",\"DOMStringList\",\"DOMStringMap\",\"DOMTokenList\",\"DOMTransactionEvent\",\"DOM_DELTA_LINE\",\"DOM_DELTA_PAGE\",\"DOM_DELTA_PIXEL\",\"DOM_INPUT_METHOD_DROP\",\"DOM_INPUT_METHOD_HANDWRITING\",\"DOM_INPUT_METHOD_IME\",\"DOM_INPUT_METHOD_KEYBOARD\",\"DOM_INPUT_METHOD_MULTIMODAL\",\"DOM_INPUT_METHOD_OPTION\",\"DOM_INPUT_METHOD_PASTE\",\"DOM_INPUT_METHOD_SCRIPT\",\"DOM_INPUT_METHOD_UNKNOWN\",\"DOM_INPUT_METHOD_VOICE\",\"DOM_KEY_LOCATION_JOYSTICK\",\"DOM_KEY_LOCATION_LEFT\",\"DOM_KEY_LOCATION_MOBILE\",\"DOM_KEY_LOCATION_NUMPAD\",\"DOM_KEY_LOCATION_RIGHT\",\"DOM_KEY_LOCATION_STANDARD\",\"DOM_VK_0\",\"DOM_VK_1\",\"DOM_VK_2\",\"DOM_VK_3\",\"DOM_VK_4\",\"DOM_VK_5\",\"DOM_VK_6\",\"DOM_VK_7\",\"DOM_VK_8\",\"DOM_VK_9\",\"DOM_VK_A\",\"DOM_VK_ACCEPT\",\"DOM_VK_ADD\",\"DOM_VK_ALT\",\"DOM_VK_ALTGR\",\"DOM_VK_AMPERSAND\",\"DOM_VK_ASTERISK\",\"DOM_VK_AT\",\"DOM_VK_ATTN\",\"DOM_VK_B\",\"DOM_VK_BACKSPACE\",\"DOM_VK_BACK_QUOTE\",\"DOM_VK_BACK_SLASH\",\"DOM_VK_BACK_SPACE\",\"DOM_VK_C\",\"DOM_VK_CANCEL\",\"DOM_VK_CAPS_LOCK\",\"DOM_VK_CIRCUMFLEX\",\"DOM_VK_CLEAR\",\"DOM_VK_CLOSE_BRACKET\",\"DOM_VK_CLOSE_CURLY_BRACKET\",\"DOM_VK_CLOSE_PAREN\",\"DOM_VK_COLON\",\"DOM_VK_COMMA\",\"DOM_VK_CONTEXT_MENU\",\"DOM_VK_CONTROL\",\"DOM_VK_CONVERT\",\"DOM_VK_CRSEL\",\"DOM_VK_CTRL\",\"DOM_VK_D\",\"DOM_VK_DECIMAL\",\"DOM_VK_DELETE\",\"DOM_VK_DIVIDE\",\"DOM_VK_DOLLAR\",\"DOM_VK_DOUBLE_QUOTE\",\"DOM_VK_DOWN\",\"DOM_VK_E\",\"DOM_VK_EISU\",\"DOM_VK_END\",\"DOM_VK_ENTER\",\"DOM_VK_EQUALS\",\"DOM_VK_EREOF\",\"DOM_VK_ESCAPE\",\"DOM_VK_EXCLAMATION\",\"DOM_VK_EXECUTE\",\"DOM_VK_EXSEL\",\"DOM_VK_F\",\"DOM_VK_F1\",\"DOM_VK_F10\",\"DOM_VK_F11\",\"DOM_VK_F12\",\"DOM_VK_F13\",\"DOM_VK_F14\",\"DOM_VK_F15\",\"DOM_VK_F16\",\"DOM_VK_F17\",\"DOM_VK_F18\",\"DOM_VK_F19\",\"DOM_VK_F2\",\"DOM_VK_F20\",\"DOM_VK_F21\",\"DOM_VK_F22\",\"DOM_VK_F23\",\"DOM_VK_F24\",\"DOM_VK_F25\",\"DOM_VK_F26\",\"DOM_VK_F27\",\"DOM_VK_F28\",\"DOM_VK_F29\",\"DOM_VK_F3\",\"DOM_VK_F30\",\"DOM_VK_F31\",\"DOM_VK_F32\",\"DOM_VK_F33\",\"DOM_VK_F34\",\"DOM_VK_F35\",\"DOM_VK_F36\",\"DOM_VK_F4\",\"DOM_VK_F5\",\"DOM_VK_F6\",\"DOM_VK_F7\",\"DOM_VK_F8\",\"DOM_VK_F9\",\"DOM_VK_FINAL\",\"DOM_VK_FRONT\",\"DOM_VK_G\",\"DOM_VK_GREATER_THAN\",\"DOM_VK_H\",\"DOM_VK_HANGUL\",\"DOM_VK_HANJA\",\"DOM_VK_HASH\",\"DOM_VK_HELP\",\"DOM_VK_HK_TOGGLE\",\"DOM_VK_HOME\",\"DOM_VK_HYPHEN_MINUS\",\"DOM_VK_I\",\"DOM_VK_INSERT\",\"DOM_VK_J\",\"DOM_VK_JUNJA\",\"DOM_VK_K\",\"DOM_VK_KANA\",\"DOM_VK_KANJI\",\"DOM_VK_L\",\"DOM_VK_LEFT\",\"DOM_VK_LEFT_TAB\",\"DOM_VK_LESS_THAN\",\"DOM_VK_M\",\"DOM_VK_META\",\"DOM_VK_MODECHANGE\",\"DOM_VK_MULTIPLY\",\"DOM_VK_N\",\"DOM_VK_NONCONVERT\",\"DOM_VK_NUMPAD0\",\"DOM_VK_NUMPAD1\",\"DOM_VK_NUMPAD2\",\"DOM_VK_NUMPAD3\",\"DOM_VK_NUMPAD4\",\"DOM_VK_NUMPAD5\",\"DOM_VK_NUMPAD6\",\"DOM_VK_NUMPAD7\",\"DOM_VK_NUMPAD8\",\"DOM_VK_NUMPAD9\",\"DOM_VK_NUM_LOCK\",\"DOM_VK_O\",\"DOM_VK_OEM_1\",\"DOM_VK_OEM_102\",\"DOM_VK_OEM_2\",\"DOM_VK_OEM_3\",\"DOM_VK_OEM_4\",\"DOM_VK_OEM_5\",\"DOM_VK_OEM_6\",\"DOM_VK_OEM_7\",\"DOM_VK_OEM_8\",\"DOM_VK_OEM_COMMA\",\"DOM_VK_OEM_MINUS\",\"DOM_VK_OEM_PERIOD\",\"DOM_VK_OEM_PLUS\",\"DOM_VK_OPEN_BRACKET\",\"DOM_VK_OPEN_CURLY_BRACKET\",\"DOM_VK_OPEN_PAREN\",\"DOM_VK_P\",\"DOM_VK_PA1\",\"DOM_VK_PAGEDOWN\",\"DOM_VK_PAGEUP\",\"DOM_VK_PAGE_DOWN\",\"DOM_VK_PAGE_UP\",\"DOM_VK_PAUSE\",\"DOM_VK_PERCENT\",\"DOM_VK_PERIOD\",\"DOM_VK_PIPE\",\"DOM_VK_PLAY\",\"DOM_VK_PLUS\",\"DOM_VK_PRINT\",\"DOM_VK_PRINTSCREEN\",\"DOM_VK_PROCESSKEY\",\"DOM_VK_PROPERITES\",\"DOM_VK_Q\",\"DOM_VK_QUESTION_MARK\",\"DOM_VK_QUOTE\",\"DOM_VK_R\",\"DOM_VK_REDO\",\"DOM_VK_RETURN\",\"DOM_VK_RIGHT\",\"DOM_VK_S\",\"DOM_VK_SCROLL_LOCK\",\"DOM_VK_SELECT\",\"DOM_VK_SEMICOLON\",\"DOM_VK_SEPARATOR\",\"DOM_VK_SHIFT\",\"DOM_VK_SLASH\",\"DOM_VK_SLEEP\",\"DOM_VK_SPACE\",\"DOM_VK_SUBTRACT\",\"DOM_VK_T\",\"DOM_VK_TAB\",\"DOM_VK_TILDE\",\"DOM_VK_U\",\"DOM_VK_UNDERSCORE\",\"DOM_VK_UNDO\",\"DOM_VK_UNICODE\",\"DOM_VK_UP\",\"DOM_VK_V\",\"DOM_VK_VOLUME_DOWN\",\"DOM_VK_VOLUME_MUTE\",\"DOM_VK_VOLUME_UP\",\"DOM_VK_W\",\"DOM_VK_WIN\",\"DOM_VK_WINDOW\",\"DOM_VK_WIN_ICO_00\",\"DOM_VK_WIN_ICO_CLEAR\",\"DOM_VK_WIN_ICO_HELP\",\"DOM_VK_WIN_OEM_ATTN\",\"DOM_VK_WIN_OEM_AUTO\",\"DOM_VK_WIN_OEM_BACKTAB\",\"DOM_VK_WIN_OEM_CLEAR\",\"DOM_VK_WIN_OEM_COPY\",\"DOM_VK_WIN_OEM_CUSEL\",\"DOM_VK_WIN_OEM_ENLW\",\"DOM_VK_WIN_OEM_FINISH\",\"DOM_VK_WIN_OEM_FJ_JISHO\",\"DOM_VK_WIN_OEM_FJ_LOYA\",\"DOM_VK_WIN_OEM_FJ_MASSHOU\",\"DOM_VK_WIN_OEM_FJ_ROYA\",\"DOM_VK_WIN_OEM_FJ_TOUROKU\",\"DOM_VK_WIN_OEM_JUMP\",\"DOM_VK_WIN_OEM_PA1\",\"DOM_VK_WIN_OEM_PA2\",\"DOM_VK_WIN_OEM_PA3\",\"DOM_VK_WIN_OEM_RESET\",\"DOM_VK_WIN_OEM_WSCTRL\",\"DOM_VK_X\",\"DOM_VK_XF86XK_ADD_FAVORITE\",\"DOM_VK_XF86XK_APPLICATION_LEFT\",\"DOM_VK_XF86XK_APPLICATION_RIGHT\",\"DOM_VK_XF86XK_AUDIO_CYCLE_TRACK\",\"DOM_VK_XF86XK_AUDIO_FORWARD\",\"DOM_VK_XF86XK_AUDIO_LOWER_VOLUME\",\"DOM_VK_XF86XK_AUDIO_MEDIA\",\"DOM_VK_XF86XK_AUDIO_MUTE\",\"DOM_VK_XF86XK_AUDIO_NEXT\",\"DOM_VK_XF86XK_AUDIO_PAUSE\",\"DOM_VK_XF86XK_AUDIO_PLAY\",\"DOM_VK_XF86XK_AUDIO_PREV\",\"DOM_VK_XF86XK_AUDIO_RAISE_VOLUME\",\"DOM_VK_XF86XK_AUDIO_RANDOM_PLAY\",\"DOM_VK_XF86XK_AUDIO_RECORD\",\"DOM_VK_XF86XK_AUDIO_REPEAT\",\"DOM_VK_XF86XK_AUDIO_REWIND\",\"DOM_VK_XF86XK_AUDIO_STOP\",\"DOM_VK_XF86XK_AWAY\",\"DOM_VK_XF86XK_BACK\",\"DOM_VK_XF86XK_BACK_FORWARD\",\"DOM_VK_XF86XK_BATTERY\",\"DOM_VK_XF86XK_BLUE\",\"DOM_VK_XF86XK_BLUETOOTH\",\"DOM_VK_XF86XK_BOOK\",\"DOM_VK_XF86XK_BRIGHTNESS_ADJUST\",\"DOM_VK_XF86XK_CALCULATOR\",\"DOM_VK_XF86XK_CALENDAR\",\"DOM_VK_XF86XK_CD\",\"DOM_VK_XF86XK_CLOSE\",\"DOM_VK_XF86XK_COMMUNITY\",\"DOM_VK_XF86XK_CONTRAST_ADJUST\",\"DOM_VK_XF86XK_COPY\",\"DOM_VK_XF86XK_CUT\",\"DOM_VK_XF86XK_CYCLE_ANGLE\",\"DOM_VK_XF86XK_DISPLAY\",\"DOM_VK_XF86XK_DOCUMENTS\",\"DOM_VK_XF86XK_DOS\",\"DOM_VK_XF86XK_EJECT\",\"DOM_VK_XF86XK_EXCEL\",\"DOM_VK_XF86XK_EXPLORER\",\"DOM_VK_XF86XK_FAVORITES\",\"DOM_VK_XF86XK_FINANCE\",\"DOM_VK_XF86XK_FORWARD\",\"DOM_VK_XF86XK_FRAME_BACK\",\"DOM_VK_XF86XK_FRAME_FORWARD\",\"DOM_VK_XF86XK_GAME\",\"DOM_VK_XF86XK_GO\",\"DOM_VK_XF86XK_GREEN\",\"DOM_VK_XF86XK_HIBERNATE\",\"DOM_VK_XF86XK_HISTORY\",\"DOM_VK_XF86XK_HOME_PAGE\",\"DOM_VK_XF86XK_HOT_LINKS\",\"DOM_VK_XF86XK_I_TOUCH\",\"DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN\",\"DOM_VK_XF86XK_KBD_BRIGHTNESS_UP\",\"DOM_VK_XF86XK_KBD_LIGHT_ON_OFF\",\"DOM_VK_XF86XK_LAUNCH0\",\"DOM_VK_XF86XK_LAUNCH1\",\"DOM_VK_XF86XK_LAUNCH2\",\"DOM_VK_XF86XK_LAUNCH3\",\"DOM_VK_XF86XK_LAUNCH4\",\"DOM_VK_XF86XK_LAUNCH5\",\"DOM_VK_XF86XK_LAUNCH6\",\"DOM_VK_XF86XK_LAUNCH7\",\"DOM_VK_XF86XK_LAUNCH8\",\"DOM_VK_XF86XK_LAUNCH9\",\"DOM_VK_XF86XK_LAUNCH_A\",\"DOM_VK_XF86XK_LAUNCH_B\",\"DOM_VK_XF86XK_LAUNCH_C\",\"DOM_VK_XF86XK_LAUNCH_D\",\"DOM_VK_XF86XK_LAUNCH_E\",\"DOM_VK_XF86XK_LAUNCH_F\",\"DOM_VK_XF86XK_LIGHT_BULB\",\"DOM_VK_XF86XK_LOG_OFF\",\"DOM_VK_XF86XK_MAIL\",\"DOM_VK_XF86XK_MAIL_FORWARD\",\"DOM_VK_XF86XK_MARKET\",\"DOM_VK_XF86XK_MEETING\",\"DOM_VK_XF86XK_MEMO\",\"DOM_VK_XF86XK_MENU_KB\",\"DOM_VK_XF86XK_MENU_PB\",\"DOM_VK_XF86XK_MESSENGER\",\"DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN\",\"DOM_VK_XF86XK_MON_BRIGHTNESS_UP\",\"DOM_VK_XF86XK_MUSIC\",\"DOM_VK_XF86XK_MY_COMPUTER\",\"DOM_VK_XF86XK_MY_SITES\",\"DOM_VK_XF86XK_NEW\",\"DOM_VK_XF86XK_NEWS\",\"DOM_VK_XF86XK_OFFICE_HOME\",\"DOM_VK_XF86XK_OPEN\",\"DOM_VK_XF86XK_OPEN_URL\",\"DOM_VK_XF86XK_OPTION\",\"DOM_VK_XF86XK_PASTE\",\"DOM_VK_XF86XK_PHONE\",\"DOM_VK_XF86XK_PICTURES\",\"DOM_VK_XF86XK_POWER_DOWN\",\"DOM_VK_XF86XK_POWER_OFF\",\"DOM_VK_XF86XK_RED\",\"DOM_VK_XF86XK_REFRESH\",\"DOM_VK_XF86XK_RELOAD\",\"DOM_VK_XF86XK_REPLY\",\"DOM_VK_XF86XK_ROCKER_DOWN\",\"DOM_VK_XF86XK_ROCKER_ENTER\",\"DOM_VK_XF86XK_ROCKER_UP\",\"DOM_VK_XF86XK_ROTATE_WINDOWS\",\"DOM_VK_XF86XK_ROTATION_KB\",\"DOM_VK_XF86XK_ROTATION_PB\",\"DOM_VK_XF86XK_SAVE\",\"DOM_VK_XF86XK_SCREEN_SAVER\",\"DOM_VK_XF86XK_SCROLL_CLICK\",\"DOM_VK_XF86XK_SCROLL_DOWN\",\"DOM_VK_XF86XK_SCROLL_UP\",\"DOM_VK_XF86XK_SEARCH\",\"DOM_VK_XF86XK_SEND\",\"DOM_VK_XF86XK_SHOP\",\"DOM_VK_XF86XK_SPELL\",\"DOM_VK_XF86XK_SPLIT_SCREEN\",\"DOM_VK_XF86XK_STANDBY\",\"DOM_VK_XF86XK_START\",\"DOM_VK_XF86XK_STOP\",\"DOM_VK_XF86XK_SUBTITLE\",\"DOM_VK_XF86XK_SUPPORT\",\"DOM_VK_XF86XK_SUSPEND\",\"DOM_VK_XF86XK_TASK_PANE\",\"DOM_VK_XF86XK_TERMINAL\",\"DOM_VK_XF86XK_TIME\",\"DOM_VK_XF86XK_TOOLS\",\"DOM_VK_XF86XK_TOP_MENU\",\"DOM_VK_XF86XK_TO_DO_LIST\",\"DOM_VK_XF86XK_TRAVEL\",\"DOM_VK_XF86XK_USER1KB\",\"DOM_VK_XF86XK_USER2KB\",\"DOM_VK_XF86XK_USER_PB\",\"DOM_VK_XF86XK_UWB\",\"DOM_VK_XF86XK_VENDOR_HOME\",\"DOM_VK_XF86XK_VIDEO\",\"DOM_VK_XF86XK_VIEW\",\"DOM_VK_XF86XK_WAKE_UP\",\"DOM_VK_XF86XK_WEB_CAM\",\"DOM_VK_XF86XK_WHEEL_BUTTON\",\"DOM_VK_XF86XK_WLAN\",\"DOM_VK_XF86XK_WORD\",\"DOM_VK_XF86XK_WWW\",\"DOM_VK_XF86XK_XFER\",\"DOM_VK_XF86XK_YELLOW\",\"DOM_VK_XF86XK_ZOOM_IN\",\"DOM_VK_XF86XK_ZOOM_OUT\",\"DOM_VK_Y\",\"DOM_VK_Z\",\"DOM_VK_ZOOM\",\"DONE\",\"DONT_CARE\",\"DOWNLOADING\",\"DRAGDROP\",\"DST_ALPHA\",\"DST_COLOR\",\"DYNAMIC_DRAW\",\"DataChannel\",\"DataTransfer\",\"DataTransferItem\",\"DataTransferItemList\",\"DataView\",\"Date\",\"DateTimeFormat\",\"DelayNode\",\"DesktopNotification\",\"DesktopNotificationCenter\",\"DeviceLightEvent\",\"DeviceMotionEvent\",\"DeviceOrientationEvent\",\"DeviceProximityEvent\",\"DeviceStorage\",\"DeviceStorageChangeEvent\",\"Document\",\"DocumentFragment\",\"DocumentType\",\"DragEvent\",\"DynamicsCompressorNode\",\"E\",\"ELEMENT_ARRAY_BUFFER\",\"ELEMENT_ARRAY_BUFFER_BINDING\",\"ELEMENT_NODE\",\"EMPTY\",\"ENCODING_ERR\",\"ENDED\",\"END_TO_END\",\"END_TO_START\",\"ENTITY_NODE\",\"ENTITY_REFERENCE_NODE\",\"EPSILON\",\"EQUAL\",\"EQUALPOWER\",\"ERROR\",\"EXPONENTIAL_DISTANCE\",\"Element\",\"ElementQuery\",\"Entity\",\"EntityReference\",\"Error\",\"ErrorEvent\",\"EvalError\",\"Event\",\"EventException\",\"EventSource\",\"EventTarget\",\"External\",\"FASTEST\",\"FIDOSDK\",\"FILTER_ACCEPT\",\"FILTER_INTERRUPT\",\"FILTER_REJECT\",\"FILTER_SKIP\",\"FINISHED_STATE\",\"FIRST_ORDERED_NODE_TYPE\",\"FLOAT\",\"FLOAT_MAT2\",\"FLOAT_MAT3\",\"FLOAT_MAT4\",\"FLOAT_VEC2\",\"FLOAT_VEC3\",\"FLOAT_VEC4\",\"FOCUS\",\"FONT_FACE_RULE\",\"FONT_FEATURE_VALUES_RULE\",\"FRAGMENT_SHADER\",\"FRAGMENT_SHADER_DERIVATIVE_HINT_OES\",\"FRAMEBUFFER\",\"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\",\"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE\",\"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE\",\"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL\",\"FRAMEBUFFER_BINDING\",\"FRAMEBUFFER_COMPLETE\",\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\",\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\",\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\",\"FRAMEBUFFER_UNSUPPORTED\",\"FRONT\",\"FRONT_AND_BACK\",\"FRONT_FACE\",\"FUNC_ADD\",\"FUNC_REVERSE_SUBTRACT\",\"FUNC_SUBTRACT\",\"Feed\",\"FeedEntry\",\"File\",\"FileError\",\"FileList\",\"FileReader\",\"FindInPage\",\"Float32Array\",\"Float64Array\",\"FocusEvent\",\"FontFace\",\"FormData\",\"Function\",\"GENERATE_MIPMAP_HINT\",\"GEQUAL\",\"GREATER\",\"GREEN_BITS\",\"GainNode\",\"Gamepad\",\"GamepadButton\",\"GamepadEvent\",\"GestureEvent\",\"HAVE_CURRENT_DATA\",\"HAVE_ENOUGH_DATA\",\"HAVE_FUTURE_DATA\",\"HAVE_METADATA\",\"HAVE_NOTHING\",\"HEADERS_RECEIVED\",\"HIDDEN\",\"HIERARCHY_REQUEST_ERR\",\"HIGHPASS\",\"HIGHSHELF\",\"HIGH_FLOAT\",\"HIGH_INT\",\"HORIZONTAL\",\"HORIZONTAL_AXIS\",\"HRTF\",\"HTMLAllCollection\",\"HTMLAnchorElement\",\"HTMLAppletElement\",\"HTMLAreaElement\",\"HTMLAudioElement\",\"HTMLBRElement\",\"HTMLBaseElement\",\"HTMLBaseFontElement\",\"HTMLBlockquoteElement\",\"HTMLBodyElement\",\"HTMLButtonElement\",\"HTMLCanvasElement\",\"HTMLCollection\",\"HTMLCommandElement\",\"HTMLContentElement\",\"HTMLDListElement\",\"HTMLDataElement\",\"HTMLDataListElement\",\"HTMLDetailsElement\",\"HTMLDialogElement\",\"HTMLDirectoryElement\",\"HTMLDivElement\",\"HTMLDocument\",\"HTMLElement\",\"HTMLEmbedElement\",\"HTMLFieldSetElement\",\"HTMLFontElement\",\"HTMLFormControlsCollection\",\"HTMLFormElement\",\"HTMLFrameElement\",\"HTMLFrameSetElement\",\"HTMLHRElement\",\"HTMLHeadElement\",\"HTMLHeadingElement\",\"HTMLHtmlElement\",\"HTMLIFrameElement\",\"HTMLImageElement\",\"HTMLInputElement\",\"HTMLIsIndexElement\",\"HTMLKeygenElement\",\"HTMLLIElement\",\"HTMLLabelElement\",\"HTMLLegendElement\",\"HTMLLinkElement\",\"HTMLMapElement\",\"HTMLMarqueeElement\",\"HTMLMediaElement\",\"HTMLMenuElement\",\"HTMLMenuItemElement\",\"HTMLMetaElement\",\"HTMLMeterElement\",\"HTMLModElement\",\"HTMLOListElement\",\"HTMLObjectElement\",\"HTMLOptGroupElement\",\"HTMLOptionElement\",\"HTMLOptionsCollection\",\"HTMLOutputElement\",\"HTMLParagraphElement\",\"HTMLParamElement\",\"HTMLPictureElement\",\"HTMLPreElement\",\"HTMLProgressElement\",\"HTMLPropertiesCollection\",\"HTMLQuoteElement\",\"HTMLScriptElement\",\"HTMLSelectElement\",\"HTMLShadowElement\",\"HTMLSourceElement\",\"HTMLSpanElement\",\"HTMLStyleElement\",\"HTMLTableCaptionElement\",\"HTMLTableCellElement\",\"HTMLTableColElement\",\"HTMLTableElement\",\"HTMLTableRowElement\",\"HTMLTableSectionElement\",\"HTMLTemplateElement\",\"HTMLTextAreaElement\",\"HTMLTimeElement\",\"HTMLTitleElement\",\"HTMLTrackElement\",\"HTMLUListElement\",\"HTMLUnknownElement\",\"HTMLVideoElement\",\"HashChangeEvent\",\"Headers\",\"History\",\"ICE_CHECKING\",\"ICE_CLOSED\",\"ICE_COMPLETED\",\"ICE_CONNECTED\",\"ICE_FAILED\",\"ICE_GATHERING\",\"ICE_WAITING\",\"IDBCursor\",\"IDBCursorWithValue\",\"IDBDatabase\",\"IDBDatabaseException\",\"IDBFactory\",\"IDBFileHandle\",\"IDBFileRequest\",\"IDBIndex\",\"IDBKeyRange\",\"IDBMutableFile\",\"IDBObjectStore\",\"IDBOpenDBRequest\",\"IDBRequest\",\"IDBTransaction\",\"IDBVersionChangeEvent\",\"IDLE\",\"IMPLEMENTATION_COLOR_READ_FORMAT\",\"IMPLEMENTATION_COLOR_READ_TYPE\",\"IMPORT_RULE\",\"INCR\",\"INCR_WRAP\",\"INDEX_SIZE_ERR\",\"INT\",\"INT_VEC2\",\"INT_VEC3\",\"INT_VEC4\",\"INUSE_ATTRIBUTE_ERR\",\"INVALID_ACCESS_ERR\",\"INVALID_CHARACTER_ERR\",\"INVALID_ENUM\",\"INVALID_EXPRESSION_ERR\",\"INVALID_FRAMEBUFFER_OPERATION\",\"INVALID_MODIFICATION_ERR\",\"INVALID_NODE_TYPE_ERR\",\"INVALID_OPERATION\",\"INVALID_STATE_ERR\",\"INVALID_VALUE\",\"INVERSE_DISTANCE\",\"INVERT\",\"IceCandidate\",\"Image\",\"ImageBitmap\",\"ImageData\",\"Infinity\",\"InputEvent\",\"InputMethodContext\",\"InstallTrigger\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Intent\",\"InternalError\",\"Intl\",\"IsSearchProviderInstalled\",\"Iterator\",\"JSON\",\"KEEP\",\"KEYDOWN\",\"KEYFRAMES_RULE\",\"KEYFRAME_RULE\",\"KEYPRESS\",\"KEYUP\",\"KeyEvent\",\"KeyboardEvent\",\"LENGTHADJUST_SPACING\",\"LENGTHADJUST_SPACINGANDGLYPHS\",\"LENGTHADJUST_UNKNOWN\",\"LEQUAL\",\"LESS\",\"LINEAR\",\"LINEAR_DISTANCE\",\"LINEAR_MIPMAP_LINEAR\",\"LINEAR_MIPMAP_NEAREST\",\"LINES\",\"LINE_LOOP\",\"LINE_STRIP\",\"LINE_WIDTH\",\"LINK_STATUS\",\"LIVE\",\"LN10\",\"LN2\",\"LOADED\",\"LOADING\",\"LOG10E\",\"LOG2E\",\"LOWPASS\",\"LOWSHELF\",\"LOW_FLOAT\",\"LOW_INT\",\"LSException\",\"LSParserFilter\",\"LUMINANCE\",\"LUMINANCE_ALPHA\",\"LocalMediaStream\",\"Location\",\"MAX_COMBINED_TEXTURE_IMAGE_UNITS\",\"MAX_CUBE_MAP_TEXTURE_SIZE\",\"MAX_FRAGMENT_UNIFORM_VECTORS\",\"MAX_RENDERBUFFER_SIZE\",\"MAX_SAFE_INTEGER\",\"MAX_TEXTURE_IMAGE_UNITS\",\"MAX_TEXTURE_MAX_ANISOTROPY_EXT\",\"MAX_TEXTURE_SIZE\",\"MAX_VALUE\",\"MAX_VARYING_VECTORS\",\"MAX_VERTEX_ATTRIBS\",\"MAX_VERTEX_TEXTURE_IMAGE_UNITS\",\"MAX_VERTEX_UNIFORM_VECTORS\",\"MAX_VIEWPORT_DIMS\",\"MEDIA_ERR_ABORTED\",\"MEDIA_ERR_DECODE\",\"MEDIA_ERR_ENCRYPTED\",\"MEDIA_ERR_NETWORK\",\"MEDIA_ERR_SRC_NOT_SUPPORTED\",\"MEDIA_KEYERR_CLIENT\",\"MEDIA_KEYERR_DOMAIN\",\"MEDIA_KEYERR_HARDWARECHANGE\",\"MEDIA_KEYERR_OUTPUT\",\"MEDIA_KEYERR_SERVICE\",\"MEDIA_KEYERR_UNKNOWN\",\"MEDIA_RULE\",\"MEDIUM_FLOAT\",\"MEDIUM_INT\",\"META_MASK\",\"MIN_SAFE_INTEGER\",\"MIN_VALUE\",\"MIRRORED_REPEAT\",\"MODE_ASYNCHRONOUS\",\"MODE_SYNCHRONOUS\",\"MODIFICATION\",\"MOUSEDOWN\",\"MOUSEDRAG\",\"MOUSEMOVE\",\"MOUSEOUT\",\"MOUSEOVER\",\"MOUSEUP\",\"MOZ_KEYFRAMES_RULE\",\"MOZ_KEYFRAME_RULE\",\"MOZ_SOURCE_CURSOR\",\"MOZ_SOURCE_ERASER\",\"MOZ_SOURCE_KEYBOARD\",\"MOZ_SOURCE_MOUSE\",\"MOZ_SOURCE_PEN\",\"MOZ_SOURCE_TOUCH\",\"MOZ_SOURCE_UNKNOWN\",\"MSGESTURE_FLAG_BEGIN\",\"MSGESTURE_FLAG_CANCEL\",\"MSGESTURE_FLAG_END\",\"MSGESTURE_FLAG_INERTIA\",\"MSGESTURE_FLAG_NONE\",\"MSPOINTER_TYPE_MOUSE\",\"MSPOINTER_TYPE_PEN\",\"MSPOINTER_TYPE_TOUCH\",\"MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE\",\"MS_ASYNC_CALLBACK_STATUS_CANCEL\",\"MS_ASYNC_CALLBACK_STATUS_CHOOSEANY\",\"MS_ASYNC_CALLBACK_STATUS_ERROR\",\"MS_ASYNC_CALLBACK_STATUS_JOIN\",\"MS_ASYNC_OP_STATUS_CANCELED\",\"MS_ASYNC_OP_STATUS_ERROR\",\"MS_ASYNC_OP_STATUS_SUCCESS\",\"MS_MANIPULATION_STATE_ACTIVE\",\"MS_MANIPULATION_STATE_CANCELLED\",\"MS_MANIPULATION_STATE_COMMITTED\",\"MS_MANIPULATION_STATE_DRAGGING\",\"MS_MANIPULATION_STATE_INERTIA\",\"MS_MANIPULATION_STATE_PRESELECT\",\"MS_MANIPULATION_STATE_SELECTING\",\"MS_MANIPULATION_STATE_STOPPED\",\"MS_MEDIA_ERR_ENCRYPTED\",\"MS_MEDIA_KEYERR_CLIENT\",\"MS_MEDIA_KEYERR_DOMAIN\",\"MS_MEDIA_KEYERR_HARDWARECHANGE\",\"MS_MEDIA_KEYERR_OUTPUT\",\"MS_MEDIA_KEYERR_SERVICE\",\"MS_MEDIA_KEYERR_UNKNOWN\",\"Map\",\"Math\",\"MediaController\",\"MediaDevices\",\"MediaElementAudioSourceNode\",\"MediaEncryptedEvent\",\"MediaError\",\"MediaKeyError\",\"MediaKeyEvent\",\"MediaKeyMessageEvent\",\"MediaKeyNeededEvent\",\"MediaKeySession\",\"MediaKeyStatusMap\",\"MediaKeySystemAccess\",\"MediaKeys\",\"MediaList\",\"MediaQueryList\",\"MediaQueryListEvent\",\"MediaRecorder\",\"MediaSource\",\"MediaStream\",\"MediaStreamAudioDestinationNode\",\"MediaStreamAudioSourceNode\",\"MediaStreamEvent\",\"MediaStreamTrack\",\"MediaStreamTrackEvent\",\"MessageChannel\",\"MessageEvent\",\"MessagePort\",\"Methods\",\"MimeType\",\"MimeTypeArray\",\"MouseEvent\",\"MouseScrollEvent\",\"MozAnimation\",\"MozAnimationDelay\",\"MozAnimationDirection\",\"MozAnimationDuration\",\"MozAnimationFillMode\",\"MozAnimationIterationCount\",\"MozAnimationName\",\"MozAnimationPlayState\",\"MozAnimationTimingFunction\",\"MozAppearance\",\"MozBackfaceVisibility\",\"MozBinding\",\"MozBorderBottomColors\",\"MozBorderEnd\",\"MozBorderEndColor\",\"MozBorderEndStyle\",\"MozBorderEndWidth\",\"MozBorderImage\",\"MozBorderLeftColors\",\"MozBorderRightColors\",\"MozBorderStart\",\"MozBorderStartColor\",\"MozBorderStartStyle\",\"MozBorderStartWidth\",\"MozBorderTopColors\",\"MozBoxAlign\",\"MozBoxDirection\",\"MozBoxFlex\",\"MozBoxOrdinalGroup\",\"MozBoxOrient\",\"MozBoxPack\",\"MozBoxSizing\",\"MozCSSKeyframeRule\",\"MozCSSKeyframesRule\",\"MozColumnCount\",\"MozColumnFill\",\"MozColumnGap\",\"MozColumnRule\",\"MozColumnRuleColor\",\"MozColumnRuleStyle\",\"MozColumnRuleWidth\",\"MozColumnWidth\",\"MozColumns\",\"MozContactChangeEvent\",\"MozFloatEdge\",\"MozFontFeatureSettings\",\"MozFontLanguageOverride\",\"MozForceBrokenImageIcon\",\"MozHyphens\",\"MozImageRegion\",\"MozMarginEnd\",\"MozMarginStart\",\"MozMmsEvent\",\"MozMmsMessage\",\"MozMobileMessageThread\",\"MozOSXFontSmoothing\",\"MozOrient\",\"MozOutlineRadius\",\"MozOutlineRadiusBottomleft\",\"MozOutlineRadiusBottomright\",\"MozOutlineRadiusTopleft\",\"MozOutlineRadiusTopright\",\"MozPaddingEnd\",\"MozPaddingStart\",\"MozPerspective\",\"MozPerspectiveOrigin\",\"MozPowerManager\",\"MozSettingsEvent\",\"MozSmsEvent\",\"MozSmsMessage\",\"MozStackSizing\",\"MozTabSize\",\"MozTextAlignLast\",\"MozTextDecorationColor\",\"MozTextDecorationLine\",\"MozTextDecorationStyle\",\"MozTextSizeAdjust\",\"MozTransform\",\"MozTransformOrigin\",\"MozTransformStyle\",\"MozTransition\",\"MozTransitionDelay\",\"MozTransitionDuration\",\"MozTransitionProperty\",\"MozTransitionTimingFunction\",\"MozUserFocus\",\"MozUserInput\",\"MozUserModify\",\"MozUserSelect\",\"MozWindowDragging\",\"MozWindowShadow\",\"MutationEvent\",\"MutationObserver\",\"MutationRecord\",\"NAMESPACE_ERR\",\"NAMESPACE_RULE\",\"NEAREST\",\"NEAREST_MIPMAP_LINEAR\",\"NEAREST_MIPMAP_NEAREST\",\"NEGATIVE_INFINITY\",\"NETWORK_EMPTY\",\"NETWORK_ERR\",\"NETWORK_IDLE\",\"NETWORK_LOADED\",\"NETWORK_LOADING\",\"NETWORK_NO_SOURCE\",\"NEVER\",\"NEW\",\"NEXT\",\"NEXT_NO_DUPLICATE\",\"NICEST\",\"NODE_AFTER\",\"NODE_BEFORE\",\"NODE_BEFORE_AND_AFTER\",\"NODE_INSIDE\",\"NONE\",\"NON_TRANSIENT_ERR\",\"NOTATION_NODE\",\"NOTCH\",\"NOTEQUAL\",\"NOT_ALLOWED_ERR\",\"NOT_FOUND_ERR\",\"NOT_READABLE_ERR\",\"NOT_SUPPORTED_ERR\",\"NO_DATA_ALLOWED_ERR\",\"NO_ERR\",\"NO_ERROR\",\"NO_MODIFICATION_ALLOWED_ERR\",\"NUMBER_TYPE\",\"NUM_COMPRESSED_TEXTURE_FORMATS\",\"NaN\",\"NamedNodeMap\",\"Navigator\",\"NearbyLinks\",\"NetworkInformation\",\"Node\",\"NodeFilter\",\"NodeIterator\",\"NodeList\",\"Notation\",\"Notification\",\"NotifyPaintEvent\",\"Number\",\"NumberFormat\",\"OBSOLETE\",\"ONE\",\"ONE_MINUS_CONSTANT_ALPHA\",\"ONE_MINUS_CONSTANT_COLOR\",\"ONE_MINUS_DST_ALPHA\",\"ONE_MINUS_DST_COLOR\",\"ONE_MINUS_SRC_ALPHA\",\"ONE_MINUS_SRC_COLOR\",\"OPEN\",\"OPENED\",\"OPENING\",\"ORDERED_NODE_ITERATOR_TYPE\",\"ORDERED_NODE_SNAPSHOT_TYPE\",\"OUT_OF_MEMORY\",\"Object\",\"OfflineAudioCompletionEvent\",\"OfflineAudioContext\",\"OfflineResourceList\",\"Option\",\"OscillatorNode\",\"OverflowEvent\",\"PACK_ALIGNMENT\",\"PAGE_RULE\",\"PARSE_ERR\",\"PATHSEG_ARC_ABS\",\"PATHSEG_ARC_REL\",\"PATHSEG_CLOSEPATH\",\"PATHSEG_CURVETO_CUBIC_ABS\",\"PATHSEG_CURVETO_CUBIC_REL\",\"PATHSEG_CURVETO_CUBIC_SMOOTH_ABS\",\"PATHSEG_CURVETO_CUBIC_SMOOTH_REL\",\"PATHSEG_CURVETO_QUADRATIC_ABS\",\"PATHSEG_CURVETO_QUADRATIC_REL\",\"PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS\",\"PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL\",\"PATHSEG_LINETO_ABS\",\"PATHSEG_LINETO_HORIZONTAL_ABS\",\"PATHSEG_LINETO_HORIZONTAL_REL\",\"PATHSEG_LINETO_REL\",\"PATHSEG_LINETO_VERTICAL_ABS\",\"PATHSEG_LINETO_VERTICAL_REL\",\"PATHSEG_MOVETO_ABS\",\"PATHSEG_MOVETO_REL\",\"PATHSEG_UNKNOWN\",\"PATH_EXISTS_ERR\",\"PEAKING\",\"PERMISSION_DENIED\",\"PERSISTENT\",\"PI\",\"PLAYING_STATE\",\"POINTS\",\"POLYGON_OFFSET_FACTOR\",\"POLYGON_OFFSET_FILL\",\"POLYGON_OFFSET_UNITS\",\"POSITION_UNAVAILABLE\",\"POSITIVE_INFINITY\",\"PREV\",\"PREV_NO_DUPLICATE\",\"PROCESSING_INSTRUCTION_NODE\",\"PageChangeEvent\",\"PageTransitionEvent\",\"PaintRequest\",\"PaintRequestList\",\"PannerNode\",\"Path2D\",\"Performance\",\"PerformanceEntry\",\"PerformanceMark\",\"PerformanceMeasure\",\"PerformanceNavigation\",\"PerformanceResourceTiming\",\"PerformanceTiming\",\"PeriodicWave\",\"Plugin\",\"PluginArray\",\"PopStateEvent\",\"PopupBlockedEvent\",\"ProcessingInstruction\",\"ProgressEvent\",\"Promise\",\"PropertyNodeList\",\"Proxy\",\"PushManager\",\"PushSubscription\",\"Q\",\"QUOTA_ERR\",\"QUOTA_EXCEEDED_ERR\",\"QueryInterface\",\"READ_ONLY\",\"READ_ONLY_ERR\",\"READ_WRITE\",\"RED_BITS\",\"REMOVAL\",\"RENDERBUFFER\",\"RENDERBUFFER_ALPHA_SIZE\",\"RENDERBUFFER_BINDING\",\"RENDERBUFFER_BLUE_SIZE\",\"RENDERBUFFER_DEPTH_SIZE\",\"RENDERBUFFER_GREEN_SIZE\",\"RENDERBUFFER_HEIGHT\",\"RENDERBUFFER_INTERNAL_FORMAT\",\"RENDERBUFFER_RED_SIZE\",\"RENDERBUFFER_STENCIL_SIZE\",\"RENDERBUFFER_WIDTH\",\"RENDERER\",\"RENDERING_INTENT_ABSOLUTE_COLORIMETRIC\",\"RENDERING_INTENT_AUTO\",\"RENDERING_INTENT_PERCEPTUAL\",\"RENDERING_INTENT_RELATIVE_COLORIMETRIC\",\"RENDERING_INTENT_SATURATION\",\"RENDERING_INTENT_UNKNOWN\",\"REPEAT\",\"REPLACE\",\"RGB\",\"RGB565\",\"RGB5_A1\",\"RGBA\",\"RGBA4\",\"RGBColor\",\"ROTATION_CLOCKWISE\",\"ROTATION_COUNTERCLOCKWISE\",\"RTCDataChannelEvent\",\"RTCIceCandidate\",\"RTCPeerConnectionIceEvent\",\"RTCRtpReceiver\",\"RTCRtpSender\",\"RTCSessionDescription\",\"RTCStatsReport\",\"RadioNodeList\",\"Range\",\"RangeError\",\"RangeException\",\"RecordErrorEvent\",\"Rect\",\"ReferenceError\",\"RegExp\",\"Request\",\"Response\",\"SAMPLER_2D\",\"SAMPLER_CUBE\",\"SAMPLES\",\"SAMPLE_ALPHA_TO_COVERAGE\",\"SAMPLE_BUFFERS\",\"SAMPLE_COVERAGE\",\"SAMPLE_COVERAGE_INVERT\",\"SAMPLE_COVERAGE_VALUE\",\"SAWTOOTH\",\"SCHEDULED_STATE\",\"SCISSOR_BOX\",\"SCISSOR_TEST\",\"SCROLL_PAGE_DOWN\",\"SCROLL_PAGE_UP\",\"SDP_ANSWER\",\"SDP_OFFER\",\"SDP_PRANSWER\",\"SECURITY_ERR\",\"SELECT\",\"SERIALIZE_ERR\",\"SEVERITY_ERROR\",\"SEVERITY_FATAL_ERROR\",\"SEVERITY_WARNING\",\"SHADER_COMPILER\",\"SHADER_TYPE\",\"SHADING_LANGUAGE_VERSION\",\"SHIFT_MASK\",\"SHORT\",\"SHOWING\",\"SHOW_ALL\",\"SHOW_ATTRIBUTE\",\"SHOW_CDATA_SECTION\",\"SHOW_COMMENT\",\"SHOW_DOCUMENT\",\"SHOW_DOCUMENT_FRAGMENT\",\"SHOW_DOCUMENT_TYPE\",\"SHOW_ELEMENT\",\"SHOW_ENTITY\",\"SHOW_ENTITY_REFERENCE\",\"SHOW_NOTATION\",\"SHOW_PROCESSING_INSTRUCTION\",\"SHOW_TEXT\",\"SINE\",\"SOUNDFIELD\",\"SQLException\",\"SQRT1_2\",\"SQRT2\",\"SQUARE\",\"SRC_ALPHA\",\"SRC_ALPHA_SATURATE\",\"SRC_COLOR\",\"START_TO_END\",\"START_TO_START\",\"STATIC_DRAW\",\"STENCIL_ATTACHMENT\",\"STENCIL_BACK_FAIL\",\"STENCIL_BACK_FUNC\",\"STENCIL_BACK_PASS_DEPTH_FAIL\",\"STENCIL_BACK_PASS_DEPTH_PASS\",\"STENCIL_BACK_REF\",\"STENCIL_BACK_VALUE_MASK\",\"STENCIL_BACK_WRITEMASK\",\"STENCIL_BITS\",\"STENCIL_BUFFER_BIT\",\"STENCIL_CLEAR_VALUE\",\"STENCIL_FAIL\",\"STENCIL_FUNC\",\"STENCIL_INDEX\",\"STENCIL_INDEX8\",\"STENCIL_PASS_DEPTH_FAIL\",\"STENCIL_PASS_DEPTH_PASS\",\"STENCIL_REF\",\"STENCIL_TEST\",\"STENCIL_VALUE_MASK\",\"STENCIL_WRITEMASK\",\"STREAM_DRAW\",\"STRING_TYPE\",\"STYLE_RULE\",\"SUBPIXEL_BITS\",\"SUPPORTS_RULE\",\"SVGAElement\",\"SVGAltGlyphDefElement\",\"SVGAltGlyphElement\",\"SVGAltGlyphItemElement\",\"SVGAngle\",\"SVGAnimateColorElement\",\"SVGAnimateElement\",\"SVGAnimateMotionElement\",\"SVGAnimateTransformElement\",\"SVGAnimatedAngle\",\"SVGAnimatedBoolean\",\"SVGAnimatedEnumeration\",\"SVGAnimatedInteger\",\"SVGAnimatedLength\",\"SVGAnimatedLengthList\",\"SVGAnimatedNumber\",\"SVGAnimatedNumberList\",\"SVGAnimatedPreserveAspectRatio\",\"SVGAnimatedRect\",\"SVGAnimatedString\",\"SVGAnimatedTransformList\",\"SVGAnimationElement\",\"SVGCircleElement\",\"SVGClipPathElement\",\"SVGColor\",\"SVGComponentTransferFunctionElement\",\"SVGCursorElement\",\"SVGDefsElement\",\"SVGDescElement\",\"SVGDiscardElement\",\"SVGDocument\",\"SVGElement\",\"SVGElementInstance\",\"SVGElementInstanceList\",\"SVGEllipseElement\",\"SVGException\",\"SVGFEBlendElement\",\"SVGFEColorMatrixElement\",\"SVGFEComponentTransferElement\",\"SVGFECompositeElement\",\"SVGFEConvolveMatrixElement\",\"SVGFEDiffuseLightingElement\",\"SVGFEDisplacementMapElement\",\"SVGFEDistantLightElement\",\"SVGFEDropShadowElement\",\"SVGFEFloodElement\",\"SVGFEFuncAElement\",\"SVGFEFuncBElement\",\"SVGFEFuncGElement\",\"SVGFEFuncRElement\",\"SVGFEGaussianBlurElement\",\"SVGFEImageElement\",\"SVGFEMergeElement\",\"SVGFEMergeNodeElement\",\"SVGFEMorphologyElement\",\"SVGFEOffsetElement\",\"SVGFEPointLightElement\",\"SVGFESpecularLightingElement\",\"SVGFESpotLightElement\",\"SVGFETileElement\",\"SVGFETurbulenceElement\",\"SVGFilterElement\",\"SVGFontElement\",\"SVGFontFaceElement\",\"SVGFontFaceFormatElement\",\"SVGFontFaceNameElement\",\"SVGFontFaceSrcElement\",\"SVGFontFaceUriElement\",\"SVGForeignObjectElement\",\"SVGGElement\",\"SVGGeometryElement\",\"SVGGlyphElement\",\"SVGGlyphRefElement\",\"SVGGradientElement\",\"SVGGraphicsElement\",\"SVGHKernElement\",\"SVGImageElement\",\"SVGLength\",\"SVGLengthList\",\"SVGLineElement\",\"SVGLinearGradientElement\",\"SVGMPathElement\",\"SVGMarkerElement\",\"SVGMaskElement\",\"SVGMatrix\",\"SVGMetadataElement\",\"SVGMissingGlyphElement\",\"SVGNumber\",\"SVGNumberList\",\"SVGPaint\",\"SVGPathElement\",\"SVGPathSeg\",\"SVGPathSegArcAbs\",\"SVGPathSegArcRel\",\"SVGPathSegClosePath\",\"SVGPathSegCurvetoCubicAbs\",\"SVGPathSegCurvetoCubicRel\",\"SVGPathSegCurvetoCubicSmoothAbs\",\"SVGPathSegCurvetoCubicSmoothRel\",\"SVGPathSegCurvetoQuadraticAbs\",\"SVGPathSegCurvetoQuadraticRel\",\"SVGPathSegCurvetoQuadraticSmoothAbs\",\"SVGPathSegCurvetoQuadraticSmoothRel\",\"SVGPathSegLinetoAbs\",\"SVGPathSegLinetoHorizontalAbs\",\"SVGPathSegLinetoHorizontalRel\",\"SVGPathSegLinetoRel\",\"SVGPathSegLinetoVerticalAbs\",\"SVGPathSegLinetoVerticalRel\",\"SVGPathSegList\",\"SVGPathSegMovetoAbs\",\"SVGPathSegMovetoRel\",\"SVGPatternElement\",\"SVGPoint\",\"SVGPointList\",\"SVGPolygonElement\",\"SVGPolylineElement\",\"SVGPreserveAspectRatio\",\"SVGRadialGradientElement\",\"SVGRect\",\"SVGRectElement\",\"SVGRenderingIntent\",\"SVGSVGElement\",\"SVGScriptElement\",\"SVGSetElement\",\"SVGStopElement\",\"SVGStringList\",\"SVGStyleElement\",\"SVGSwitchElement\",\"SVGSymbolElement\",\"SVGTRefElement\",\"SVGTSpanElement\",\"SVGTextContentElement\",\"SVGTextElement\",\"SVGTextPathElement\",\"SVGTextPositioningElement\",\"SVGTitleElement\",\"SVGTransform\",\"SVGTransformList\",\"SVGUnitTypes\",\"SVGUseElement\",\"SVGVKernElement\",\"SVGViewElement\",\"SVGViewSpec\",\"SVGZoomAndPan\",\"SVGZoomEvent\",\"SVG_ANGLETYPE_DEG\",\"SVG_ANGLETYPE_GRAD\",\"SVG_ANGLETYPE_RAD\",\"SVG_ANGLETYPE_UNKNOWN\",\"SVG_ANGLETYPE_UNSPECIFIED\",\"SVG_CHANNEL_A\",\"SVG_CHANNEL_B\",\"SVG_CHANNEL_G\",\"SVG_CHANNEL_R\",\"SVG_CHANNEL_UNKNOWN\",\"SVG_COLORTYPE_CURRENTCOLOR\",\"SVG_COLORTYPE_RGBCOLOR\",\"SVG_COLORTYPE_RGBCOLOR_ICCCOLOR\",\"SVG_COLORTYPE_UNKNOWN\",\"SVG_EDGEMODE_DUPLICATE\",\"SVG_EDGEMODE_NONE\",\"SVG_EDGEMODE_UNKNOWN\",\"SVG_EDGEMODE_WRAP\",\"SVG_FEBLEND_MODE_COLOR\",\"SVG_FEBLEND_MODE_COLOR_BURN\",\"SVG_FEBLEND_MODE_COLOR_DODGE\",\"SVG_FEBLEND_MODE_DARKEN\",\"SVG_FEBLEND_MODE_DIFFERENCE\",\"SVG_FEBLEND_MODE_EXCLUSION\",\"SVG_FEBLEND_MODE_HARD_LIGHT\",\"SVG_FEBLEND_MODE_HUE\",\"SVG_FEBLEND_MODE_LIGHTEN\",\"SVG_FEBLEND_MODE_LUMINOSITY\",\"SVG_FEBLEND_MODE_MULTIPLY\",\"SVG_FEBLEND_MODE_NORMAL\",\"SVG_FEBLEND_MODE_OVERLAY\",\"SVG_FEBLEND_MODE_SATURATION\",\"SVG_FEBLEND_MODE_SCREEN\",\"SVG_FEBLEND_MODE_SOFT_LIGHT\",\"SVG_FEBLEND_MODE_UNKNOWN\",\"SVG_FECOLORMATRIX_TYPE_HUEROTATE\",\"SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA\",\"SVG_FECOLORMATRIX_TYPE_MATRIX\",\"SVG_FECOLORMATRIX_TYPE_SATURATE\",\"SVG_FECOLORMATRIX_TYPE_UNKNOWN\",\"SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE\",\"SVG_FECOMPONENTTRANSFER_TYPE_GAMMA\",\"SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY\",\"SVG_FECOMPONENTTRANSFER_TYPE_LINEAR\",\"SVG_FECOMPONENTTRANSFER_TYPE_TABLE\",\"SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN\",\"SVG_FECOMPOSITE_OPERATOR_ARITHMETIC\",\"SVG_FECOMPOSITE_OPERATOR_ATOP\",\"SVG_FECOMPOSITE_OPERATOR_IN\",\"SVG_FECOMPOSITE_OPERATOR_OUT\",\"SVG_FECOMPOSITE_OPERATOR_OVER\",\"SVG_FECOMPOSITE_OPERATOR_UNKNOWN\",\"SVG_FECOMPOSITE_OPERATOR_XOR\",\"SVG_INVALID_VALUE_ERR\",\"SVG_LENGTHTYPE_CM\",\"SVG_LENGTHTYPE_EMS\",\"SVG_LENGTHTYPE_EXS\",\"SVG_LENGTHTYPE_IN\",\"SVG_LENGTHTYPE_MM\",\"SVG_LENGTHTYPE_NUMBER\",\"SVG_LENGTHTYPE_PC\",\"SVG_LENGTHTYPE_PERCENTAGE\",\"SVG_LENGTHTYPE_PT\",\"SVG_LENGTHTYPE_PX\",\"SVG_LENGTHTYPE_UNKNOWN\",\"SVG_MARKERUNITS_STROKEWIDTH\",\"SVG_MARKERUNITS_UNKNOWN\",\"SVG_MARKERUNITS_USERSPACEONUSE\",\"SVG_MARKER_ORIENT_ANGLE\",\"SVG_MARKER_ORIENT_AUTO\",\"SVG_MARKER_ORIENT_UNKNOWN\",\"SVG_MASKTYPE_ALPHA\",\"SVG_MASKTYPE_LUMINANCE\",\"SVG_MATRIX_NOT_INVERTABLE\",\"SVG_MEETORSLICE_MEET\",\"SVG_MEETORSLICE_SLICE\",\"SVG_MEETORSLICE_UNKNOWN\",\"SVG_MORPHOLOGY_OPERATOR_DILATE\",\"SVG_MORPHOLOGY_OPERATOR_ERODE\",\"SVG_MORPHOLOGY_OPERATOR_UNKNOWN\",\"SVG_PAINTTYPE_CURRENTCOLOR\",\"SVG_PAINTTYPE_NONE\",\"SVG_PAINTTYPE_RGBCOLOR\",\"SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR\",\"SVG_PAINTTYPE_UNKNOWN\",\"SVG_PAINTTYPE_URI\",\"SVG_PAINTTYPE_URI_CURRENTCOLOR\",\"SVG_PAINTTYPE_URI_NONE\",\"SVG_PAINTTYPE_URI_RGBCOLOR\",\"SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR\",\"SVG_PRESERVEASPECTRATIO_NONE\",\"SVG_PRESERVEASPECTRATIO_UNKNOWN\",\"SVG_PRESERVEASPECTRATIO_XMAXYMAX\",\"SVG_PRESERVEASPECTRATIO_XMAXYMID\",\"SVG_PRESERVEASPECTRATIO_XMAXYMIN\",\"SVG_PRESERVEASPECTRATIO_XMIDYMAX\",\"SVG_PRESERVEASPECTRATIO_XMIDYMID\",\"SVG_PRESERVEASPECTRATIO_XMIDYMIN\",\"SVG_PRESERVEASPECTRATIO_XMINYMAX\",\"SVG_PRESERVEASPECTRATIO_XMINYMID\",\"SVG_PRESERVEASPECTRATIO_XMINYMIN\",\"SVG_SPREADMETHOD_PAD\",\"SVG_SPREADMETHOD_REFLECT\",\"SVG_SPREADMETHOD_REPEAT\",\"SVG_SPREADMETHOD_UNKNOWN\",\"SVG_STITCHTYPE_NOSTITCH\",\"SVG_STITCHTYPE_STITCH\",\"SVG_STITCHTYPE_UNKNOWN\",\"SVG_TRANSFORM_MATRIX\",\"SVG_TRANSFORM_ROTATE\",\"SVG_TRANSFORM_SCALE\",\"SVG_TRANSFORM_SKEWX\",\"SVG_TRANSFORM_SKEWY\",\"SVG_TRANSFORM_TRANSLATE\",\"SVG_TRANSFORM_UNKNOWN\",\"SVG_TURBULENCE_TYPE_FRACTALNOISE\",\"SVG_TURBULENCE_TYPE_TURBULENCE\",\"SVG_TURBULENCE_TYPE_UNKNOWN\",\"SVG_UNIT_TYPE_OBJECTBOUNDINGBOX\",\"SVG_UNIT_TYPE_UNKNOWN\",\"SVG_UNIT_TYPE_USERSPACEONUSE\",\"SVG_WRONG_TYPE_ERR\",\"SVG_ZOOMANDPAN_DISABLE\",\"SVG_ZOOMANDPAN_MAGNIFY\",\"SVG_ZOOMANDPAN_UNKNOWN\",\"SYNTAX_ERR\",\"SavedPages\",\"Screen\",\"ScreenOrientation\",\"Script\",\"ScriptProcessorNode\",\"ScrollAreaEvent\",\"SecurityPolicyViolationEvent\",\"Selection\",\"ServiceWorker\",\"ServiceWorkerContainer\",\"ServiceWorkerRegistration\",\"SessionDescription\",\"Set\",\"ShadowRoot\",\"SharedWorker\",\"SimpleGestureEvent\",\"SpeechSynthesisEvent\",\"SpeechSynthesisUtterance\",\"StopIteration\",\"Storage\",\"StorageEvent\",\"String\",\"StyleSheet\",\"StyleSheetList\",\"SubtleCrypto\",\"Symbol\",\"SyntaxError\",\"TEMPORARY\",\"TEXTPATH_METHODTYPE_ALIGN\",\"TEXTPATH_METHODTYPE_STRETCH\",\"TEXTPATH_METHODTYPE_UNKNOWN\",\"TEXTPATH_SPACINGTYPE_AUTO\",\"TEXTPATH_SPACINGTYPE_EXACT\",\"TEXTPATH_SPACINGTYPE_UNKNOWN\",\"TEXTURE\",\"TEXTURE0\",\"TEXTURE1\",\"TEXTURE10\",\"TEXTURE11\",\"TEXTURE12\",\"TEXTURE13\",\"TEXTURE14\",\"TEXTURE15\",\"TEXTURE16\",\"TEXTURE17\",\"TEXTURE18\",\"TEXTURE19\",\"TEXTURE2\",\"TEXTURE20\",\"TEXTURE21\",\"TEXTURE22\",\"TEXTURE23\",\"TEXTURE24\",\"TEXTURE25\",\"TEXTURE26\",\"TEXTURE27\",\"TEXTURE28\",\"TEXTURE29\",\"TEXTURE3\",\"TEXTURE30\",\"TEXTURE31\",\"TEXTURE4\",\"TEXTURE5\",\"TEXTURE6\",\"TEXTURE7\",\"TEXTURE8\",\"TEXTURE9\",\"TEXTURE_2D\",\"TEXTURE_BINDING_2D\",\"TEXTURE_BINDING_CUBE_MAP\",\"TEXTURE_CUBE_MAP\",\"TEXTURE_CUBE_MAP_NEGATIVE_X\",\"TEXTURE_CUBE_MAP_NEGATIVE_Y\",\"TEXTURE_CUBE_MAP_NEGATIVE_Z\",\"TEXTURE_CUBE_MAP_POSITIVE_X\",\"TEXTURE_CUBE_MAP_POSITIVE_Y\",\"TEXTURE_CUBE_MAP_POSITIVE_Z\",\"TEXTURE_MAG_FILTER\",\"TEXTURE_MAX_ANISOTROPY_EXT\",\"TEXTURE_MIN_FILTER\",\"TEXTURE_WRAP_S\",\"TEXTURE_WRAP_T\",\"TEXT_NODE\",\"TIMEOUT\",\"TIMEOUT_ERR\",\"TOO_LARGE_ERR\",\"TRANSACTION_INACTIVE_ERR\",\"TRIANGLE\",\"TRIANGLES\",\"TRIANGLE_FAN\",\"TRIANGLE_STRIP\",\"TYPE_BACK_FORWARD\",\"TYPE_ERR\",\"TYPE_MISMATCH_ERR\",\"TYPE_NAVIGATE\",\"TYPE_RELOAD\",\"TYPE_RESERVED\",\"Text\",\"TextDecoder\",\"TextEncoder\",\"TextEvent\",\"TextMetrics\",\"TextTrack\",\"TextTrackCue\",\"TextTrackCueList\",\"TextTrackList\",\"TimeEvent\",\"TimeRanges\",\"Touch\",\"TouchEvent\",\"TouchList\",\"TrackEvent\",\"TransitionEvent\",\"TreeWalker\",\"TypeError\",\"UIEvent\",\"UNCACHED\",\"UNKNOWN_ERR\",\"UNKNOWN_RULE\",\"UNMASKED_RENDERER_WEBGL\",\"UNMASKED_VENDOR_WEBGL\",\"UNORDERED_NODE_ITERATOR_TYPE\",\"UNORDERED_NODE_SNAPSHOT_TYPE\",\"UNPACK_ALIGNMENT\",\"UNPACK_COLORSPACE_CONVERSION_WEBGL\",\"UNPACK_FLIP_Y_WEBGL\",\"UNPACK_PREMULTIPLY_ALPHA_WEBGL\",\"UNSCHEDULED_STATE\",\"UNSENT\",\"UNSIGNED_BYTE\",\"UNSIGNED_INT\",\"UNSIGNED_SHORT\",\"UNSIGNED_SHORT_4_4_4_4\",\"UNSIGNED_SHORT_5_5_5_1\",\"UNSIGNED_SHORT_5_6_5\",\"UNSPECIFIED_EVENT_TYPE_ERR\",\"UPDATEREADY\",\"URIError\",\"URL\",\"URLSearchParams\",\"URLUnencoded\",\"URL_MISMATCH_ERR\",\"UTC\",\"Uint16Array\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"UserMessageHandler\",\"UserMessageHandlersNamespace\",\"UserProximityEvent\",\"VALIDATE_STATUS\",\"VALIDATION_ERR\",\"VARIABLES_RULE\",\"VENDOR\",\"VERSION\",\"VERSION_CHANGE\",\"VERSION_ERR\",\"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING\",\"VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE\",\"VERTEX_ATTRIB_ARRAY_ENABLED\",\"VERTEX_ATTRIB_ARRAY_NORMALIZED\",\"VERTEX_ATTRIB_ARRAY_POINTER\",\"VERTEX_ATTRIB_ARRAY_SIZE\",\"VERTEX_ATTRIB_ARRAY_STRIDE\",\"VERTEX_ATTRIB_ARRAY_TYPE\",\"VERTEX_SHADER\",\"VERTICAL\",\"VERTICAL_AXIS\",\"VER_ERR\",\"VIEWPORT\",\"VIEWPORT_RULE\",\"VTTCue\",\"VTTRegion\",\"ValidityState\",\"VideoStreamTrack\",\"WEBKIT_FILTER_RULE\",\"WEBKIT_KEYFRAMES_RULE\",\"WEBKIT_KEYFRAME_RULE\",\"WEBKIT_REGION_RULE\",\"WRONG_DOCUMENT_ERR\",\"WaveShaperNode\",\"WeakMap\",\"WeakSet\",\"WebGLActiveInfo\",\"WebGLBuffer\",\"WebGLContextEvent\",\"WebGLFramebuffer\",\"WebGLProgram\",\"WebGLRenderbuffer\",\"WebGLRenderingContext\",\"WebGLShader\",\"WebGLShaderPrecisionFormat\",\"WebGLTexture\",\"WebGLUniformLocation\",\"WebGLVertexArray\",\"WebKitAnimationEvent\",\"WebKitBlobBuilder\",\"WebKitCSSFilterRule\",\"WebKitCSSFilterValue\",\"WebKitCSSKeyframeRule\",\"WebKitCSSKeyframesRule\",\"WebKitCSSMatrix\",\"WebKitCSSRegionRule\",\"WebKitCSSTransformValue\",\"WebKitDataCue\",\"WebKitGamepad\",\"WebKitMediaKeyError\",\"WebKitMediaKeyMessageEvent\",\"WebKitMediaKeySession\",\"WebKitMediaKeys\",\"WebKitMediaSource\",\"WebKitMutationObserver\",\"WebKitNamespace\",\"WebKitPlaybackTargetAvailabilityEvent\",\"WebKitPoint\",\"WebKitShadowRoot\",\"WebKitSourceBuffer\",\"WebKitSourceBufferList\",\"WebKitTransitionEvent\",\"WebSocket\",\"WheelEvent\",\"Window\",\"Worker\",\"XMLDocument\",\"XMLHttpRequest\",\"XMLHttpRequestEventTarget\",\"XMLHttpRequestException\",\"XMLHttpRequestProgressEvent\",\"XMLHttpRequestUpload\",\"XMLSerializer\",\"XMLStylesheetProcessingInstruction\",\"XPathEvaluator\",\"XPathException\",\"XPathExpression\",\"XPathNSResolver\",\"XPathResult\",\"XSLTProcessor\",\"ZERO\",\"_XD0M_\",\"_YD0M_\",\"__defineGetter__\",\"__defineSetter__\",\"__lookupGetter__\",\"__lookupSetter__\",\"__opera\",\"__proto__\",\"_browserjsran\",\"a\",\"aLink\",\"abbr\",\"abort\",\"abs\",\"absolute\",\"acceleration\",\"accelerationIncludingGravity\",\"accelerator\",\"accept\",\"acceptCharset\",\"acceptNode\",\"accessKey\",\"accessKeyLabel\",\"accuracy\",\"acos\",\"acosh\",\"action\",\"actionURL\",\"active\",\"activeCues\",\"activeElement\",\"activeSourceBuffers\",\"activeSourceCount\",\"activeTexture\",\"add\",\"addBehavior\",\"addCandidate\",\"addColorStop\",\"addCue\",\"addElement\",\"addEventListener\",\"addFilter\",\"addFromString\",\"addFromUri\",\"addIceCandidate\",\"addImport\",\"addListener\",\"addNamed\",\"addPageRule\",\"addPath\",\"addPointer\",\"addRange\",\"addRegion\",\"addRule\",\"addSearchEngine\",\"addSourceBuffer\",\"addStream\",\"addTextTrack\",\"addTrack\",\"addWakeLockListener\",\"addedNodes\",\"additionalName\",\"additiveSymbols\",\"addons\",\"adoptNode\",\"adr\",\"advance\",\"alert\",\"algorithm\",\"align\",\"align-content\",\"align-items\",\"align-self\",\"alignContent\",\"alignItems\",\"alignSelf\",\"alignmentBaseline\",\"alinkColor\",\"all\",\"allSettled\",\"allowFullscreen\",\"allowedDirections\",\"alpha\",\"alt\",\"altGraphKey\",\"altHtml\",\"altKey\",\"altLeft\",\"altitude\",\"altitudeAccuracy\",\"amplitude\",\"ancestorOrigins\",\"anchor\",\"anchorNode\",\"anchorOffset\",\"anchors\",\"angle\",\"animVal\",\"animate\",\"animatedInstanceRoot\",\"animatedNormalizedPathSegList\",\"animatedPathSegList\",\"animatedPoints\",\"animation\",\"animation-delay\",\"animation-direction\",\"animation-duration\",\"animation-fill-mode\",\"animation-iteration-count\",\"animation-name\",\"animation-play-state\",\"animation-timing-function\",\"animationDelay\",\"animationDirection\",\"animationDuration\",\"animationFillMode\",\"animationIterationCount\",\"animationName\",\"animationPlayState\",\"animationStartTime\",\"animationTimingFunction\",\"animationsPaused\",\"anniversary\",\"any\",\"app\",\"appCodeName\",\"appMinorVersion\",\"appName\",\"appNotifications\",\"appVersion\",\"append\",\"appendBuffer\",\"appendChild\",\"appendData\",\"appendItem\",\"appendMedium\",\"appendNamed\",\"appendRule\",\"appendStream\",\"appendWindowEnd\",\"appendWindowStart\",\"applets\",\"applicationCache\",\"apply\",\"applyElement\",\"arc\",\"arcTo\",\"archive\",\"areas\",\"arguments\",\"arrayBuffer\",\"asin\",\"asinh\",\"assert\",\"assign\",\"async\",\"atEnd\",\"atan\",\"atan2\",\"atanh\",\"atob\",\"attachEvent\",\"attachShader\",\"attachShadow\",\"attachments\",\"attack\",\"attrChange\",\"attrName\",\"attributeFilter\",\"attributeName\",\"attributeNamespace\",\"attributeOldValue\",\"attributes\",\"audioTracks\",\"autoIncrement\",\"autobuffer\",\"autocapitalize\",\"autocomplete\",\"autocorrect\",\"autofocus\",\"autoplay\",\"availHeight\",\"availLeft\",\"availTop\",\"availWidth\",\"availability\",\"available\",\"aversion\",\"axes\",\"axis\",\"azimuth\",\"b\",\"back\",\"backface-visibility\",\"backfaceVisibility\",\"background\",\"background-attachment\",\"background-blend-mode\",\"background-clip\",\"background-color\",\"background-image\",\"background-origin\",\"background-position\",\"background-repeat\",\"background-size\",\"backgroundAttachment\",\"backgroundBlendMode\",\"backgroundClip\",\"backgroundColor\",\"backgroundImage\",\"backgroundOrigin\",\"backgroundPosition\",\"backgroundPositionX\",\"backgroundPositionY\",\"backgroundRepeat\",\"backgroundSize\",\"badInput\",\"balance\",\"baseFrequencyX\",\"baseFrequencyY\",\"baseNode\",\"baseOffset\",\"baseURI\",\"baseVal\",\"baselineShift\",\"battery\",\"bday\",\"beginElement\",\"beginElementAt\",\"beginPath\",\"behavior\",\"behaviorCookie\",\"behaviorPart\",\"behaviorUrns\",\"beta\",\"bezierCurveTo\",\"bgColor\",\"bgProperties\",\"bias\",\"big\",\"binaryType\",\"bind\",\"bindAttribLocation\",\"bindBuffer\",\"bindFramebuffer\",\"bindRenderbuffer\",\"bindTexture\",\"blendColor\",\"blendEquation\",\"blendEquationSeparate\",\"blendFunc\",\"blendFuncSeparate\",\"blink\",\"blob\",\"blockDirection\",\"blue\",\"blur\",\"body\",\"bodyUsed\",\"bold\",\"bookmarks\",\"booleanValue\",\"border\",\"border-bottom\",\"border-bottom-color\",\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-bottom-style\",\"border-bottom-width\",\"border-collapse\",\"border-color\",\"border-image\",\"border-image-outset\",\"border-image-repeat\",\"border-image-slice\",\"border-image-source\",\"border-image-width\",\"border-left\",\"border-left-color\",\"border-left-style\",\"border-left-width\",\"border-radius\",\"border-right\",\"border-right-color\",\"border-right-style\",\"border-right-width\",\"border-spacing\",\"border-style\",\"border-top\",\"border-top-color\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-top-style\",\"border-top-width\",\"border-width\",\"borderBottom\",\"borderBottomColor\",\"borderBottomLeftRadius\",\"borderBottomRightRadius\",\"borderBottomStyle\",\"borderBottomWidth\",\"borderCollapse\",\"borderColor\",\"borderColorDark\",\"borderColorLight\",\"borderImage\",\"borderImageOutset\",\"borderImageRepeat\",\"borderImageSlice\",\"borderImageSource\",\"borderImageWidth\",\"borderLeft\",\"borderLeftColor\",\"borderLeftStyle\",\"borderLeftWidth\",\"borderRadius\",\"borderRight\",\"borderRightColor\",\"borderRightStyle\",\"borderRightWidth\",\"borderSpacing\",\"borderStyle\",\"borderTop\",\"borderTopColor\",\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderTopStyle\",\"borderTopWidth\",\"borderWidth\",\"bottom\",\"bottomMargin\",\"bound\",\"boundElements\",\"boundingClientRect\",\"boundingHeight\",\"boundingLeft\",\"boundingTop\",\"boundingWidth\",\"bounds\",\"box-decoration-break\",\"box-shadow\",\"box-sizing\",\"boxDecorationBreak\",\"boxShadow\",\"boxSizing\",\"breakAfter\",\"breakBefore\",\"breakInside\",\"browserLanguage\",\"btoa\",\"bubbles\",\"buffer\",\"bufferData\",\"bufferDepth\",\"bufferSize\",\"bufferSubData\",\"buffered\",\"bufferedAmount\",\"buildID\",\"buildNumber\",\"button\",\"buttonID\",\"buttons\",\"byteLength\",\"byteOffset\",\"c\",\"call\",\"caller\",\"canBeFormatted\",\"canBeMounted\",\"canBeShared\",\"canHaveChildren\",\"canHaveHTML\",\"canPlayType\",\"cancel\",\"cancelAnimationFrame\",\"cancelBubble\",\"cancelScheduledValues\",\"cancelable\",\"candidate\",\"canvas\",\"caption\",\"caption-side\",\"captionSide\",\"capture\",\"captureEvents\",\"captureStackTrace\",\"caretPositionFromPoint\",\"caretRangeFromPoint\",\"cast\",\"catch\",\"category\",\"cbrt\",\"cd\",\"ceil\",\"cellIndex\",\"cellPadding\",\"cellSpacing\",\"cells\",\"ch\",\"chOff\",\"chain\",\"challenge\",\"changedTouches\",\"channel\",\"channelCount\",\"channelCountMode\",\"channelInterpretation\",\"char\",\"charAt\",\"charCode\",\"charCodeAt\",\"charIndex\",\"characterData\",\"characterDataOldValue\",\"characterSet\",\"charging\",\"chargingTime\",\"charset\",\"checkEnclosure\",\"checkFramebufferStatus\",\"checkIntersection\",\"checkValidity\",\"checked\",\"childElementCount\",\"childList\",\"childNodes\",\"children\",\"chrome\",\"ciphertext\",\"cite\",\"classList\",\"className\",\"classid\",\"clear\",\"clearAttributes\",\"clearColor\",\"clearData\",\"clearDepth\",\"clearImmediate\",\"clearInterval\",\"clearMarks\",\"clearMeasures\",\"clearParameters\",\"clearRect\",\"clearResourceTimings\",\"clearShadow\",\"clearStencil\",\"clearTimeout\",\"clearWatch\",\"click\",\"clickCount\",\"clientHeight\",\"clientInformation\",\"clientLeft\",\"clientRect\",\"clientRects\",\"clientTop\",\"clientWidth\",\"clientX\",\"clientY\",\"clip\",\"clip-path\",\"clip-rule\",\"clipBottom\",\"clipLeft\",\"clipPath\",\"clipPathUnits\",\"clipRight\",\"clipRule\",\"clipTop\",\"clipboardData\",\"clone\",\"cloneContents\",\"cloneNode\",\"cloneRange\",\"close\",\"closePath\",\"closed\",\"closest\",\"clz\",\"clz32\",\"cmp\",\"code\",\"codeBase\",\"codePointAt\",\"codeType\",\"colSpan\",\"collapse\",\"collapseToEnd\",\"collapseToStart\",\"collapsed\",\"collect\",\"colno\",\"color\",\"color-interpolation\",\"color-interpolation-filters\",\"colorDepth\",\"colorInterpolation\",\"colorInterpolationFilters\",\"colorMask\",\"colorType\",\"cols\",\"columnCount\",\"columnFill\",\"columnGap\",\"columnNumber\",\"columnRule\",\"columnRuleColor\",\"columnRuleStyle\",\"columnRuleWidth\",\"columnSpan\",\"columnWidth\",\"columns\",\"command\",\"commitPreferences\",\"commonAncestorContainer\",\"compact\",\"compareBoundaryPoints\",\"compareDocumentPosition\",\"compareEndPoints\",\"compareNode\",\"comparePoint\",\"compatMode\",\"compatible\",\"compile\",\"compileShader\",\"complete\",\"componentFromPoint\",\"compositionEndOffset\",\"compositionStartOffset\",\"compressedTexImage2D\",\"compressedTexSubImage2D\",\"concat\",\"conditionText\",\"coneInnerAngle\",\"coneOuterAngle\",\"coneOuterGain\",\"confirm\",\"confirmComposition\",\"confirmSiteSpecificTrackingException\",\"confirmWebWideTrackingException\",\"connect\",\"connectEnd\",\"connectStart\",\"connected\",\"connection\",\"connectionSpeed\",\"console\",\"consolidate\",\"constrictionActive\",\"constructor\",\"contactID\",\"contains\",\"containsNode\",\"content\",\"contentDocument\",\"contentEditable\",\"contentOverflow\",\"contentScriptType\",\"contentStyleType\",\"contentType\",\"contentWindow\",\"context\",\"contextMenu\",\"contextmenu\",\"continue\",\"continuous\",\"control\",\"controller\",\"controls\",\"convertToSpecifiedUnits\",\"cookie\",\"cookieEnabled\",\"coords\",\"copyFromChannel\",\"copyTexImage2D\",\"copyTexSubImage2D\",\"copyToChannel\",\"copyWithin\",\"correspondingElement\",\"correspondingUseElement\",\"cos\",\"cosh\",\"count\",\"counter-increment\",\"counter-reset\",\"counterIncrement\",\"counterReset\",\"cpuClass\",\"cpuSleepAllowed\",\"create\",\"createAnalyser\",\"createAnswer\",\"createAttribute\",\"createAttributeNS\",\"createBiquadFilter\",\"createBuffer\",\"createBufferSource\",\"createCDATASection\",\"createCSSStyleSheet\",\"createCaption\",\"createChannelMerger\",\"createChannelSplitter\",\"createComment\",\"createContextualFragment\",\"createControlRange\",\"createConvolver\",\"createDTMFSender\",\"createDataChannel\",\"createDelay\",\"createDelayNode\",\"createDocument\",\"createDocumentFragment\",\"createDocumentType\",\"createDynamicsCompressor\",\"createElement\",\"createElementNS\",\"createEntityReference\",\"createEvent\",\"createEventObject\",\"createExpression\",\"createFramebuffer\",\"createFunction\",\"createGain\",\"createGainNode\",\"createHTMLDocument\",\"createImageBitmap\",\"createImageData\",\"createIndex\",\"createJavaScriptNode\",\"createLinearGradient\",\"createMediaElementSource\",\"createMediaKeys\",\"createMediaStreamDestination\",\"createMediaStreamSource\",\"createMutableFile\",\"createNSResolver\",\"createNodeIterator\",\"createNotification\",\"createObjectStore\",\"createObjectURL\",\"createOffer\",\"createOscillator\",\"createPanner\",\"createPattern\",\"createPeriodicWave\",\"createPopup\",\"createProcessingInstruction\",\"createProgram\",\"createRadialGradient\",\"createRange\",\"createRangeCollection\",\"createRenderbuffer\",\"createSVGAngle\",\"createSVGLength\",\"createSVGMatrix\",\"createSVGNumber\",\"createSVGPathSegArcAbs\",\"createSVGPathSegArcRel\",\"createSVGPathSegClosePath\",\"createSVGPathSegCurvetoCubicAbs\",\"createSVGPathSegCurvetoCubicRel\",\"createSVGPathSegCurvetoCubicSmoothAbs\",\"createSVGPathSegCurvetoCubicSmoothRel\",\"createSVGPathSegCurvetoQuadraticAbs\",\"createSVGPathSegCurvetoQuadraticRel\",\"createSVGPathSegCurvetoQuadraticSmoothAbs\",\"createSVGPathSegCurvetoQuadraticSmoothRel\",\"createSVGPathSegLinetoAbs\",\"createSVGPathSegLinetoHorizontalAbs\",\"createSVGPathSegLinetoHorizontalRel\",\"createSVGPathSegLinetoRel\",\"createSVGPathSegLinetoVerticalAbs\",\"createSVGPathSegLinetoVerticalRel\",\"createSVGPathSegMovetoAbs\",\"createSVGPathSegMovetoRel\",\"createSVGPoint\",\"createSVGRect\",\"createSVGTransform\",\"createSVGTransformFromMatrix\",\"createScriptProcessor\",\"createSession\",\"createShader\",\"createShadowRoot\",\"createStereoPanner\",\"createStyleSheet\",\"createTBody\",\"createTFoot\",\"createTHead\",\"createTextNode\",\"createTextRange\",\"createTexture\",\"createTouch\",\"createTouchList\",\"createTreeWalker\",\"createWaveShaper\",\"creationTime\",\"crossOrigin\",\"crypto\",\"csi\",\"cssFloat\",\"cssRules\",\"cssText\",\"cssValueType\",\"ctrlKey\",\"ctrlLeft\",\"cues\",\"cullFace\",\"currentNode\",\"currentPage\",\"currentScale\",\"currentScript\",\"currentSrc\",\"currentState\",\"currentStyle\",\"currentTarget\",\"currentTime\",\"currentTranslate\",\"currentView\",\"cursor\",\"curve\",\"customError\",\"cx\",\"cy\",\"d\",\"data\",\"dataFld\",\"dataFormatAs\",\"dataPageSize\",\"dataSrc\",\"dataTransfer\",\"database\",\"dataset\",\"dateTime\",\"db\",\"debug\",\"debuggerEnabled\",\"declare\",\"decode\",\"decodeAudioData\",\"decodeURI\",\"decodeURIComponent\",\"decodingInfo\",\"decrypt\",\"default\",\"defaultCharset\",\"defaultChecked\",\"defaultMuted\",\"defaultPlaybackRate\",\"defaultPrevented\",\"defaultSelected\",\"defaultStatus\",\"defaultURL\",\"defaultValue\",\"defaultView\",\"defaultstatus\",\"defer\",\"defineMagicFunction\",\"defineMagicVariable\",\"defineProperties\",\"defineProperty\",\"delayTime\",\"delete\",\"deleteBuffer\",\"deleteCaption\",\"deleteCell\",\"deleteContents\",\"deleteData\",\"deleteDatabase\",\"deleteFramebuffer\",\"deleteFromDocument\",\"deleteIndex\",\"deleteMedium\",\"deleteObjectStore\",\"deleteProgram\",\"deleteRenderbuffer\",\"deleteRow\",\"deleteRule\",\"deleteShader\",\"deleteTFoot\",\"deleteTHead\",\"deleteTexture\",\"deliverChangeRecords\",\"delivery\",\"deliveryInfo\",\"deliveryStatus\",\"deliveryTimestamp\",\"delta\",\"deltaMode\",\"deltaX\",\"deltaY\",\"deltaZ\",\"depthFunc\",\"depthMask\",\"depthRange\",\"deriveBits\",\"deriveKey\",\"description\",\"deselectAll\",\"designMode\",\"destination\",\"destinationURL\",\"detach\",\"detachEvent\",\"detachShader\",\"detail\",\"detune\",\"devicePixelRatio\",\"deviceXDPI\",\"deviceYDPI\",\"diffuseConstant\",\"digest\",\"dimensions\",\"dir\",\"dirName\",\"direction\",\"dirxml\",\"disable\",\"disableVertexAttribArray\",\"disabled\",\"dischargingTime\",\"disconnect\",\"dispatchEvent\",\"display\",\"distanceModel\",\"divisor\",\"djsapi\",\"djsproxy\",\"doImport\",\"doNotTrack\",\"doScroll\",\"doctype\",\"document\",\"documentElement\",\"documentMode\",\"documentURI\",\"dolphin\",\"dolphinGameCenter\",\"dolphininfo\",\"dolphinmeta\",\"domComplete\",\"domContentLoadedEventEnd\",\"domContentLoadedEventStart\",\"domInteractive\",\"domLoading\",\"domain\",\"domainLookupEnd\",\"domainLookupStart\",\"dominant-baseline\",\"dominantBaseline\",\"done\",\"dopplerFactor\",\"download\",\"dragDrop\",\"draggable\",\"drawArrays\",\"drawArraysInstancedANGLE\",\"drawCustomFocusRing\",\"drawElements\",\"drawElementsInstancedANGLE\",\"drawFocusIfNeeded\",\"drawImage\",\"drawImageFromRect\",\"drawSystemFocusRing\",\"drawingBufferHeight\",\"drawingBufferWidth\",\"dropEffect\",\"droppedVideoFrames\",\"dropzone\",\"dump\",\"duplicate\",\"duration\",\"dvname\",\"dvnum\",\"dx\",\"dy\",\"dynsrc\",\"e\",\"edgeMode\",\"effectAllowed\",\"elapsedTime\",\"elementFromPoint\",\"elements\",\"elevation\",\"ellipse\",\"email\",\"embeds\",\"empty\",\"empty-cells\",\"emptyCells\",\"enable\",\"enableBackground\",\"enableStyleSheetsForSet\",\"enableVertexAttribArray\",\"enabled\",\"enabledPlugin\",\"encode\",\"encodeURI\",\"encodeURIComponent\",\"encoding\",\"encrypt\",\"enctype\",\"end\",\"endContainer\",\"endElement\",\"endElementAt\",\"endOfStream\",\"endOffset\",\"endTime\",\"ended\",\"endsWith\",\"entities\",\"entries\",\"entryType\",\"enumerate\",\"enumerateEditable\",\"error\",\"errorCode\",\"escape\",\"eval\",\"evaluate\",\"event\",\"eventPhase\",\"every\",\"exception\",\"exec\",\"execCommand\",\"execCommandShowHelp\",\"execScript\",\"exitFullscreen\",\"exitPointerLock\",\"exp\",\"expand\",\"expandEntityReferences\",\"expando\",\"expansion\",\"expiryDate\",\"explicitOriginalTarget\",\"expm1\",\"exponent\",\"exponentialRampToValueAtTime\",\"exportKey\",\"extend\",\"extensions\",\"extentNode\",\"extentOffset\",\"external\",\"externalResourcesRequired\",\"extractContents\",\"extractable\",\"f\",\"face\",\"factoryReset\",\"fallback\",\"familyName\",\"farthestViewportElement\",\"fastSeek\",\"fatal\",\"fetch\",\"fetchStart\",\"fftSize\",\"fgColor\",\"fileCreatedDate\",\"fileHandle\",\"fileModifiedDate\",\"fileName\",\"fileSize\",\"fileUpdatedDate\",\"filename\",\"files\",\"fill\",\"fill-opacity\",\"fill-rule\",\"fillOpacity\",\"fillRect\",\"fillRule\",\"fillStyle\",\"fillText\",\"filter\",\"filterResX\",\"filterResY\",\"filterUnits\",\"filters\",\"finally\",\"find\",\"findIndex\",\"findRule\",\"findText\",\"finish\",\"fireEvent\",\"firstChild\",\"firstElementChild\",\"firstPage\",\"fixed\",\"flex\",\"flex-basis\",\"flex-direction\",\"flex-flow\",\"flex-grow\",\"flex-shrink\",\"flex-wrap\",\"flexBasis\",\"flexDirection\",\"flexFlow\",\"flexGrow\",\"flexShrink\",\"flexWrap\",\"flipX\",\"flipY\",\"float\",\"flood-color\",\"flood-opacity\",\"floodColor\",\"floodOpacity\",\"floor\",\"flush\",\"focus\",\"focusNode\",\"focusOffset\",\"font\",\"font-family\",\"font-feature-settings\",\"font-kerning\",\"font-language-override\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-synthesis\",\"font-variant\",\"font-variant-alternates\",\"font-variant-caps\",\"font-variant-east-asian\",\"font-variant-ligatures\",\"font-variant-numeric\",\"font-variant-position\",\"font-weight\",\"fontFamily\",\"fontFeatureSettings\",\"fontKerning\",\"fontLanguageOverride\",\"fontSize\",\"fontSizeAdjust\",\"fontSmoothingEnabled\",\"fontStretch\",\"fontStyle\",\"fontSynthesis\",\"fontVariant\",\"fontVariantAlternates\",\"fontVariantCaps\",\"fontVariantEastAsian\",\"fontVariantLigatures\",\"fontVariantNumeric\",\"fontVariantPosition\",\"fontWeight\",\"fontcolor\",\"fonts\",\"fontsize\",\"for\",\"forEach\",\"forceRedraw\",\"form\",\"formAction\",\"formEnctype\",\"formMethod\",\"formNoValidate\",\"formTarget\",\"format\",\"formatToParts\",\"forms\",\"forward\",\"fr\",\"frame\",\"frameBorder\",\"frameElement\",\"frameSpacing\",\"framebufferRenderbuffer\",\"framebufferTexture2D\",\"frames\",\"freeSpace\",\"freeze\",\"frequency\",\"frequencyBinCount\",\"from\",\"fromCharCode\",\"fromCodePoint\",\"fromElement\",\"frontFace\",\"fround\",\"fullScreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fx\",\"fy\",\"gain\",\"gamepad\",\"gamma\",\"genderIdentity\",\"generateKey\",\"generateMipmap\",\"generateRequest\",\"geolocation\",\"gestureObject\",\"get\",\"getActiveAttrib\",\"getActiveUniform\",\"getAdjacentText\",\"getAll\",\"getAllResponseHeaders\",\"getAsFile\",\"getAsString\",\"getAttachedShaders\",\"getAttribLocation\",\"getAttribute\",\"getAttributeNS\",\"getAttributeNode\",\"getAttributeNodeNS\",\"getAudioTracks\",\"getBBox\",\"getBattery\",\"getBlob\",\"getBookmark\",\"getBoundingClientRect\",\"getBufferParameter\",\"getByteFrequencyData\",\"getByteTimeDomainData\",\"getCSSCanvasContext\",\"getCTM\",\"getCandidateWindowClientRect\",\"getChannelData\",\"getCharNumAtPosition\",\"getClientRect\",\"getClientRects\",\"getCompositionAlternatives\",\"getComputedStyle\",\"getComputedTextLength\",\"getConfiguration\",\"getContext\",\"getContextAttributes\",\"getCounterValue\",\"getCueAsHTML\",\"getCueById\",\"getCurrentPosition\",\"getCurrentTime\",\"getData\",\"getDatabaseNames\",\"getDate\",\"getDay\",\"getDefaultComputedStyle\",\"getDestinationInsertionPoints\",\"getDistributedNodes\",\"getEditable\",\"getElementById\",\"getElementsByClassName\",\"getElementsByName\",\"getElementsByTagName\",\"getElementsByTagNameNS\",\"getEnclosureList\",\"getEndPositionOfChar\",\"getEntries\",\"getEntriesByName\",\"getEntriesByType\",\"getError\",\"getExtension\",\"getExtentOfChar\",\"getFeature\",\"getFile\",\"getFloat32\",\"getFloat64\",\"getFloatFrequencyData\",\"getFloatTimeDomainData\",\"getFloatValue\",\"getFramebufferAttachmentParameter\",\"getFrequencyResponse\",\"getFullYear\",\"getGamepads\",\"getHours\",\"getImageData\",\"getInt16\",\"getInt32\",\"getInt8\",\"getIntersectionList\",\"getItem\",\"getItems\",\"getKey\",\"getLineDash\",\"getLocalStreams\",\"getMarks\",\"getMatchedCSSRules\",\"getMeasures\",\"getMetadata\",\"getMilliseconds\",\"getMinutes\",\"getModifierState\",\"getMonth\",\"getNamedItem\",\"getNamedItemNS\",\"getNotifier\",\"getNumberOfChars\",\"getOverrideHistoryNavigationMode\",\"getOverrideStyle\",\"getOwnPropertyDescriptor\",\"getOwnPropertyNames\",\"getOwnPropertySymbols\",\"getParameter\",\"getPathSegAtLength\",\"getPointAtLength\",\"getPreference\",\"getPreferenceDefault\",\"getPresentationAttribute\",\"getPreventDefault\",\"getProgramInfoLog\",\"getProgramParameter\",\"getPropertyCSSValue\",\"getPropertyPriority\",\"getPropertyShorthand\",\"getPropertyValue\",\"getPrototypeOf\",\"getRGBColorValue\",\"getRandomValues\",\"getRangeAt\",\"getReceivers\",\"getRectValue\",\"getRegistration\",\"getRemoteStreams\",\"getRenderbufferParameter\",\"getResponseHeader\",\"getRoot\",\"getRotationOfChar\",\"getSVGDocument\",\"getScreenCTM\",\"getSeconds\",\"getSelection\",\"getSenders\",\"getShaderInfoLog\",\"getShaderParameter\",\"getShaderPrecisionFormat\",\"getShaderSource\",\"getSimpleDuration\",\"getSiteIcons\",\"getSources\",\"getSpeculativeParserUrls\",\"getStartPositionOfChar\",\"getStartTime\",\"getStats\",\"getStorageUpdates\",\"getStreamById\",\"getStringValue\",\"getSubStringLength\",\"getSubscription\",\"getSupportedExtensions\",\"getTexParameter\",\"getTime\",\"getTimezoneOffset\",\"getTotalLength\",\"getTrackById\",\"getTracks\",\"getTransformToElement\",\"getUTCDate\",\"getUTCDay\",\"getUTCFullYear\",\"getUTCHours\",\"getUTCMilliseconds\",\"getUTCMinutes\",\"getUTCMonth\",\"getUTCSeconds\",\"getUint16\",\"getUint32\",\"getUint8\",\"getUniform\",\"getUniformLocation\",\"getUserMedia\",\"getValues\",\"getVarDate\",\"getVariableValue\",\"getVertexAttrib\",\"getVertexAttribOffset\",\"getVideoPlaybackQuality\",\"getVideoTracks\",\"getWakeLockState\",\"getYear\",\"givenName\",\"global\",\"globalAlpha\",\"globalCompositeOperation\",\"glyphOrientationHorizontal\",\"glyphOrientationVertical\",\"glyphRef\",\"go\",\"gradientTransform\",\"gradientUnits\",\"grammars\",\"green\",\"group\",\"groupCollapsed\",\"groupEnd\",\"hardwareConcurrency\",\"has\",\"hasAttribute\",\"hasAttributeNS\",\"hasAttributes\",\"hasChildNodes\",\"hasComposition\",\"hasExtension\",\"hasFeature\",\"hasFocus\",\"hasLayout\",\"hasOwnProperty\",\"hash\",\"head\",\"headers\",\"heading\",\"height\",\"hidden\",\"hide\",\"hideFocus\",\"high\",\"hint\",\"history\",\"honorificPrefix\",\"honorificSuffix\",\"horizontalOverflow\",\"host\",\"hostname\",\"href\",\"hreflang\",\"hspace\",\"html5TagCheckInerface\",\"htmlFor\",\"htmlText\",\"httpEquiv\",\"hwTimestamp\",\"hypot\",\"iccId\",\"iceConnectionState\",\"iceGatheringState\",\"icon\",\"id\",\"identifier\",\"identity\",\"ignoreBOM\",\"ignoreCase\",\"image-orientation\",\"image-rendering\",\"imageOrientation\",\"imageRendering\",\"images\",\"ime-mode\",\"imeMode\",\"implementation\",\"importKey\",\"importNode\",\"importStylesheet\",\"imports\",\"impp\",\"imul\",\"in1\",\"in2\",\"inBandMetadataTrackDispatchType\",\"inRange\",\"includes\",\"incremental\",\"indeterminate\",\"index\",\"indexNames\",\"indexOf\",\"indexedDB\",\"inertiaDestinationX\",\"inertiaDestinationY\",\"info\",\"init\",\"initAnimationEvent\",\"initBeforeLoadEvent\",\"initClipboardEvent\",\"initCloseEvent\",\"initCommandEvent\",\"initCompositionEvent\",\"initCustomEvent\",\"initData\",\"initDeviceMotionEvent\",\"initDeviceOrientationEvent\",\"initDragEvent\",\"initErrorEvent\",\"initEvent\",\"initFocusEvent\",\"initGestureEvent\",\"initHashChangeEvent\",\"initKeyEvent\",\"initKeyboardEvent\",\"initMSManipulationEvent\",\"initMessageEvent\",\"initMouseEvent\",\"initMouseScrollEvent\",\"initMouseWheelEvent\",\"initMutationEvent\",\"initNSMouseEvent\",\"initOverflowEvent\",\"initPageEvent\",\"initPageTransitionEvent\",\"initPointerEvent\",\"initPopStateEvent\",\"initProgressEvent\",\"initScrollAreaEvent\",\"initSimpleGestureEvent\",\"initStorageEvent\",\"initTextEvent\",\"initTimeEvent\",\"initTouchEvent\",\"initTransitionEvent\",\"initUIEvent\",\"initWebKitAnimationEvent\",\"initWebKitTransitionEvent\",\"initWebKitWheelEvent\",\"initWheelEvent\",\"initialTime\",\"initialize\",\"initiatorType\",\"inner\",\"innerHTML\",\"innerHeight\",\"innerText\",\"innerWidth\",\"input\",\"inputBuffer\",\"inputEncoding\",\"inputMethod\",\"insertAdjacentElement\",\"insertAdjacentHTML\",\"insertAdjacentText\",\"insertBefore\",\"insertCell\",\"insertData\",\"insertItemBefore\",\"insertNode\",\"insertRow\",\"insertRule\",\"instanceRoot\",\"intercept\",\"interimResults\",\"internalSubset\",\"intersectsNode\",\"interval\",\"invalidIteratorState\",\"inverse\",\"invertSelf\",\"is\",\"is2D\",\"isAlternate\",\"isArray\",\"isBingCurrentSearchDefault\",\"isBuffer\",\"isCandidateWindowVisible\",\"isChar\",\"isCollapsed\",\"isComposing\",\"isContentEditable\",\"isContentHandlerRegistered\",\"isContextLost\",\"isDefaultNamespace\",\"isDisabled\",\"isEnabled\",\"isEqual\",\"isEqualNode\",\"isExtensible\",\"isFinite\",\"isFramebuffer\",\"isFrozen\",\"isGenerator\",\"isId\",\"isInjected\",\"isInteger\",\"isMap\",\"isMultiLine\",\"isNaN\",\"isOpen\",\"isPointInFill\",\"isPointInPath\",\"isPointInRange\",\"isPointInStroke\",\"isPrefAlternate\",\"isPrimary\",\"isProgram\",\"isPropertyImplicit\",\"isProtocolHandlerRegistered\",\"isPrototypeOf\",\"isRenderbuffer\",\"isSafeInteger\",\"isSameNode\",\"isSealed\",\"isShader\",\"isSupported\",\"isTextEdit\",\"isTexture\",\"isTrusted\",\"isTypeSupported\",\"isView\",\"isolation\",\"italics\",\"item\",\"itemId\",\"itemProp\",\"itemRef\",\"itemScope\",\"itemType\",\"itemValue\",\"iterateNext\",\"iterator\",\"javaEnabled\",\"jobTitle\",\"join\",\"json\",\"justify-content\",\"justifyContent\",\"k1\",\"k2\",\"k3\",\"k4\",\"kernelMatrix\",\"kernelUnitLengthX\",\"kernelUnitLengthY\",\"kerning\",\"key\",\"keyCode\",\"keyFor\",\"keyIdentifier\",\"keyLightEnabled\",\"keyLocation\",\"keyPath\",\"keySystem\",\"keyText\",\"keyUsage\",\"keys\",\"keytype\",\"kind\",\"knee\",\"label\",\"labels\",\"lang\",\"language\",\"languages\",\"largeArcFlag\",\"lastChild\",\"lastElementChild\",\"lastEventId\",\"lastIndex\",\"lastIndexOf\",\"lastMatch\",\"lastMessageSubject\",\"lastMessageType\",\"lastModified\",\"lastModifiedDate\",\"lastPage\",\"lastParen\",\"lastState\",\"lastStyleSheetSet\",\"latitude\",\"layerX\",\"layerY\",\"layoutFlow\",\"layoutGrid\",\"layoutGridChar\",\"layoutGridLine\",\"layoutGridMode\",\"layoutGridType\",\"lbound\",\"left\",\"leftContext\",\"leftMargin\",\"length\",\"lengthAdjust\",\"lengthComputable\",\"letter-spacing\",\"letterSpacing\",\"level\",\"lighting-color\",\"lightingColor\",\"limitingConeAngle\",\"line\",\"line-height\",\"lineAlign\",\"lineBreak\",\"lineCap\",\"lineDashOffset\",\"lineHeight\",\"lineJoin\",\"lineNumber\",\"lineTo\",\"lineWidth\",\"linearRampToValueAtTime\",\"lineno\",\"link\",\"linkColor\",\"linkProgram\",\"links\",\"list\",\"list-style\",\"list-style-image\",\"list-style-position\",\"list-style-type\",\"listStyle\",\"listStyleImage\",\"listStylePosition\",\"listStyleType\",\"listener\",\"load\",\"loadEventEnd\",\"loadEventStart\",\"loadTimes\",\"loaded\",\"localDescription\",\"localName\",\"localStorage\",\"locale\",\"localeCompare\",\"location\",\"locationbar\",\"lock\",\"lockedFile\",\"log\",\"log10\",\"log1p\",\"log2\",\"logicalXDPI\",\"logicalYDPI\",\"longDesc\",\"longitude\",\"lookupNamespaceURI\",\"lookupPrefix\",\"loop\",\"loopEnd\",\"loopStart\",\"looping\",\"low\",\"lower\",\"lowerBound\",\"lowerOpen\",\"lowsrc\",\"m11\",\"m12\",\"m13\",\"m14\",\"m21\",\"m22\",\"m23\",\"m24\",\"m31\",\"m32\",\"m33\",\"m34\",\"m41\",\"m42\",\"m43\",\"m44\",\"manifest\",\"map\",\"mapping\",\"margin\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"marginBottom\",\"marginHeight\",\"marginLeft\",\"marginRight\",\"marginTop\",\"marginWidth\",\"mark\",\"marker\",\"marker-end\",\"marker-mid\",\"marker-offset\",\"marker-start\",\"markerEnd\",\"markerHeight\",\"markerMid\",\"markerOffset\",\"markerStart\",\"markerUnits\",\"markerWidth\",\"marks\",\"mask\",\"mask-type\",\"maskContentUnits\",\"maskType\",\"maskUnits\",\"match\",\"matchMedia\",\"matchMedium\",\"matches\",\"matrix\",\"matrixTransform\",\"max\",\"max-height\",\"max-width\",\"maxAlternatives\",\"maxChannelCount\",\"maxConnectionsPerServer\",\"maxDecibels\",\"maxDistance\",\"maxHeight\",\"maxLength\",\"maxTouchPoints\",\"maxValue\",\"maxWidth\",\"measure\",\"measureText\",\"media\",\"mediaCapabilities\",\"mediaDevices\",\"mediaElement\",\"mediaGroup\",\"mediaKeys\",\"mediaText\",\"meetOrSlice\",\"memory\",\"menubar\",\"mergeAttributes\",\"message\",\"messageClass\",\"messageHandlers\",\"metaKey\",\"method\",\"mimeType\",\"mimeTypes\",\"min\",\"min-height\",\"min-width\",\"minDecibels\",\"minHeight\",\"minValue\",\"minWidth\",\"miterLimit\",\"mix-blend-mode\",\"mixBlendMode\",\"mode\",\"modify\",\"mount\",\"move\",\"moveBy\",\"moveEnd\",\"moveFirst\",\"moveFocusDown\",\"moveFocusLeft\",\"moveFocusRight\",\"moveFocusUp\",\"moveNext\",\"moveRow\",\"moveStart\",\"moveTo\",\"moveToBookmark\",\"moveToElementText\",\"moveToPoint\",\"mozAdd\",\"mozAnimationStartTime\",\"mozAnon\",\"mozApps\",\"mozAudioCaptured\",\"mozAudioChannelType\",\"mozAutoplayEnabled\",\"mozCancelAnimationFrame\",\"mozCancelFullScreen\",\"mozCancelRequestAnimationFrame\",\"mozCaptureStream\",\"mozCaptureStreamUntilEnded\",\"mozClearDataAt\",\"mozContact\",\"mozContacts\",\"mozCreateFileHandle\",\"mozCurrentTransform\",\"mozCurrentTransformInverse\",\"mozCursor\",\"mozDash\",\"mozDashOffset\",\"mozDecodedFrames\",\"mozExitPointerLock\",\"mozFillRule\",\"mozFragmentEnd\",\"mozFrameDelay\",\"mozFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozGetAll\",\"mozGetAllKeys\",\"mozGetAsFile\",\"mozGetDataAt\",\"mozGetMetadata\",\"mozGetUserMedia\",\"mozHasAudio\",\"mozHasItem\",\"mozHidden\",\"mozImageSmoothingEnabled\",\"mozIndexedDB\",\"mozInnerScreenX\",\"mozInnerScreenY\",\"mozInputSource\",\"mozIsTextField\",\"mozItem\",\"mozItemCount\",\"mozItems\",\"mozLength\",\"mozLockOrientation\",\"mozMatchesSelector\",\"mozMovementX\",\"mozMovementY\",\"mozOpaque\",\"mozOrientation\",\"mozPaintCount\",\"mozPaintedFrames\",\"mozParsedFrames\",\"mozPay\",\"mozPointerLockElement\",\"mozPresentedFrames\",\"mozPreservesPitch\",\"mozPressure\",\"mozPrintCallback\",\"mozRTCIceCandidate\",\"mozRTCPeerConnection\",\"mozRTCSessionDescription\",\"mozRemove\",\"mozRequestAnimationFrame\",\"mozRequestFullScreen\",\"mozRequestPointerLock\",\"mozSetDataAt\",\"mozSetImageElement\",\"mozSourceNode\",\"mozSrcObject\",\"mozSystem\",\"mozTCPSocket\",\"mozTextStyle\",\"mozTypesAt\",\"mozUnlockOrientation\",\"mozUserCancelled\",\"mozVisibilityState\",\"msAnimation\",\"msAnimationDelay\",\"msAnimationDirection\",\"msAnimationDuration\",\"msAnimationFillMode\",\"msAnimationIterationCount\",\"msAnimationName\",\"msAnimationPlayState\",\"msAnimationStartTime\",\"msAnimationTimingFunction\",\"msBackfaceVisibility\",\"msBlockProgression\",\"msCSSOMElementFloatMetrics\",\"msCaching\",\"msCachingEnabled\",\"msCancelRequestAnimationFrame\",\"msCapsLockWarningOff\",\"msClearImmediate\",\"msClose\",\"msContentZoomChaining\",\"msContentZoomFactor\",\"msContentZoomLimit\",\"msContentZoomLimitMax\",\"msContentZoomLimitMin\",\"msContentZoomSnap\",\"msContentZoomSnapPoints\",\"msContentZoomSnapType\",\"msContentZooming\",\"msConvertURL\",\"msCrypto\",\"msDoNotTrack\",\"msElementsFromPoint\",\"msElementsFromRect\",\"msExitFullscreen\",\"msExtendedCode\",\"msFillRule\",\"msFirstPaint\",\"msFlex\",\"msFlexAlign\",\"msFlexDirection\",\"msFlexFlow\",\"msFlexItemAlign\",\"msFlexLinePack\",\"msFlexNegative\",\"msFlexOrder\",\"msFlexPack\",\"msFlexPositive\",\"msFlexPreferredSize\",\"msFlexWrap\",\"msFlowFrom\",\"msFlowInto\",\"msFontFeatureSettings\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"msGetInputContext\",\"msGetRegionContent\",\"msGetUntransformedBounds\",\"msGraphicsTrustStatus\",\"msGridColumn\",\"msGridColumnAlign\",\"msGridColumnSpan\",\"msGridColumns\",\"msGridRow\",\"msGridRowAlign\",\"msGridRowSpan\",\"msGridRows\",\"msHidden\",\"msHighContrastAdjust\",\"msHyphenateLimitChars\",\"msHyphenateLimitLines\",\"msHyphenateLimitZone\",\"msHyphens\",\"msImageSmoothingEnabled\",\"msImeAlign\",\"msIndexedDB\",\"msInterpolationMode\",\"msIsStaticHTML\",\"msKeySystem\",\"msKeys\",\"msLaunchUri\",\"msLockOrientation\",\"msManipulationViewsEnabled\",\"msMatchMedia\",\"msMatchesSelector\",\"msMaxTouchPoints\",\"msOrientation\",\"msOverflowStyle\",\"msPerspective\",\"msPerspectiveOrigin\",\"msPlayToDisabled\",\"msPlayToPreferredSourceUri\",\"msPlayToPrimary\",\"msPointerEnabled\",\"msRegionOverflow\",\"msReleasePointerCapture\",\"msRequestAnimationFrame\",\"msRequestFullscreen\",\"msSaveBlob\",\"msSaveOrOpenBlob\",\"msScrollChaining\",\"msScrollLimit\",\"msScrollLimitXMax\",\"msScrollLimitXMin\",\"msScrollLimitYMax\",\"msScrollLimitYMin\",\"msScrollRails\",\"msScrollSnapPointsX\",\"msScrollSnapPointsY\",\"msScrollSnapType\",\"msScrollSnapX\",\"msScrollSnapY\",\"msScrollTranslation\",\"msSetImmediate\",\"msSetMediaKeys\",\"msSetPointerCapture\",\"msTextCombineHorizontal\",\"msTextSizeAdjust\",\"msToBlob\",\"msTouchAction\",\"msTouchSelect\",\"msTraceAsyncCallbackCompleted\",\"msTraceAsyncCallbackStarting\",\"msTraceAsyncOperationCompleted\",\"msTraceAsyncOperationStarting\",\"msTransform\",\"msTransformOrigin\",\"msTransformStyle\",\"msTransition\",\"msTransitionDelay\",\"msTransitionDuration\",\"msTransitionProperty\",\"msTransitionTimingFunction\",\"msUnlockOrientation\",\"msUpdateAsyncCallbackRelation\",\"msUserSelect\",\"msVisibilityState\",\"msWrapFlow\",\"msWrapMargin\",\"msWrapThrough\",\"msWriteProfilerMark\",\"msZoom\",\"msZoomTo\",\"mt\",\"multiEntry\",\"multiSelectionObj\",\"multiline\",\"multiple\",\"multiply\",\"multiplySelf\",\"mutableFile\",\"muted\",\"n\",\"name\",\"nameProp\",\"namedItem\",\"namedRecordset\",\"names\",\"namespaceURI\",\"namespaces\",\"naturalHeight\",\"naturalWidth\",\"navigate\",\"navigation\",\"navigationMode\",\"navigationStart\",\"navigator\",\"near\",\"nearestViewportElement\",\"negative\",\"netscape\",\"networkState\",\"newScale\",\"newTranslate\",\"newURL\",\"newValue\",\"newValueSpecifiedUnits\",\"newVersion\",\"newhome\",\"next\",\"nextElementSibling\",\"nextNode\",\"nextPage\",\"nextSibling\",\"nickname\",\"noHref\",\"noResize\",\"noShade\",\"noValidate\",\"noWrap\",\"nodeName\",\"nodeType\",\"nodeValue\",\"normalize\",\"normalizedPathSegList\",\"notationName\",\"notations\",\"note\",\"noteGrainOn\",\"noteOff\",\"noteOn\",\"now\",\"numOctaves\",\"number\",\"numberOfChannels\",\"numberOfInputs\",\"numberOfItems\",\"numberOfOutputs\",\"numberValue\",\"oMatchesSelector\",\"object\",\"object-fit\",\"object-position\",\"objectFit\",\"objectPosition\",\"objectStore\",\"objectStoreNames\",\"observe\",\"of\",\"offscreenBuffering\",\"offset\",\"offsetHeight\",\"offsetLeft\",\"offsetNode\",\"offsetParent\",\"offsetTop\",\"offsetWidth\",\"offsetX\",\"offsetY\",\"ok\",\"oldURL\",\"oldValue\",\"oldVersion\",\"olderShadowRoot\",\"onLine\",\"onabort\",\"onactivate\",\"onactive\",\"onaddstream\",\"onaddtrack\",\"onafterprint\",\"onafterscriptexecute\",\"onafterupdate\",\"onaudioend\",\"onaudioprocess\",\"onaudiostart\",\"onautocomplete\",\"onautocompleteerror\",\"onbeforeactivate\",\"onbeforecopy\",\"onbeforecut\",\"onbeforedeactivate\",\"onbeforeeditfocus\",\"onbeforepaste\",\"onbeforeprint\",\"onbeforescriptexecute\",\"onbeforeunload\",\"onbeforeupdate\",\"onblocked\",\"onblur\",\"onbounce\",\"onboundary\",\"oncached\",\"oncancel\",\"oncandidatewindowhide\",\"oncandidatewindowshow\",\"oncandidatewindowupdate\",\"oncanplay\",\"oncanplaythrough\",\"once\",\"oncellchange\",\"onchange\",\"onchargingchange\",\"onchargingtimechange\",\"onchecking\",\"onclick\",\"onclose\",\"oncompassneedscalibration\",\"oncomplete\",\"oncontextmenu\",\"oncontrolselect\",\"oncopy\",\"oncuechange\",\"oncut\",\"ondataavailable\",\"ondatachannel\",\"ondatasetchanged\",\"ondatasetcomplete\",\"ondblclick\",\"ondeactivate\",\"ondevicelight\",\"ondevicemotion\",\"ondeviceorientation\",\"ondeviceproximity\",\"ondischargingtimechange\",\"ondisplay\",\"ondownloading\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onencrypted\",\"onend\",\"onended\",\"onenter\",\"onerror\",\"onerrorupdate\",\"onexit\",\"onfilterchange\",\"onfinish\",\"onfocus\",\"onfocusin\",\"onfocusout\",\"onfullscreenchange\",\"onfullscreenerror\",\"ongesturechange\",\"ongestureend\",\"ongesturestart\",\"ongotpointercapture\",\"onhashchange\",\"onhelp\",\"onicecandidate\",\"oniceconnectionstatechange\",\"oninactive\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onlanguagechange\",\"onlayoutcomplete\",\"onlevelchange\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadend\",\"onloadstart\",\"onlosecapture\",\"onlostpointercapture\",\"only\",\"onmark\",\"onmessage\",\"onmousedown\",\"onmouseenter\",\"onmouseleave\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onmove\",\"onmoveend\",\"onmovestart\",\"onmozfullscreenchange\",\"onmozfullscreenerror\",\"onmozorientationchange\",\"onmozpointerlockchange\",\"onmozpointerlockerror\",\"onmscontentzoom\",\"onmsfullscreenchange\",\"onmsfullscreenerror\",\"onmsgesturechange\",\"onmsgesturedoubletap\",\"onmsgestureend\",\"onmsgesturehold\",\"onmsgesturestart\",\"onmsgesturetap\",\"onmsgotpointercapture\",\"onmsinertiastart\",\"onmslostpointercapture\",\"onmsmanipulationstatechanged\",\"onmsneedkey\",\"onmsorientationchange\",\"onmspointercancel\",\"onmspointerdown\",\"onmspointerenter\",\"onmspointerhover\",\"onmspointerleave\",\"onmspointermove\",\"onmspointerout\",\"onmspointerover\",\"onmspointerup\",\"onmssitemodejumplistitemremoved\",\"onmsthumbnailclick\",\"onnegotiationneeded\",\"onnomatch\",\"onnoupdate\",\"onobsolete\",\"onoffline\",\"ononline\",\"onopen\",\"onorientationchange\",\"onpagechange\",\"onpagehide\",\"onpageshow\",\"onpaste\",\"onpause\",\"onplay\",\"onplaying\",\"onpluginstreamstart\",\"onpointercancel\",\"onpointerdown\",\"onpointerenter\",\"onpointerleave\",\"onpointerlockchange\",\"onpointerlockerror\",\"onpointermove\",\"onpointerout\",\"onpointerover\",\"onpointerup\",\"onpopstate\",\"onprogress\",\"onpropertychange\",\"onratechange\",\"onreadystatechange\",\"onremovestream\",\"onremovetrack\",\"onreset\",\"onresize\",\"onresizeend\",\"onresizestart\",\"onresourcetimingbufferfull\",\"onresult\",\"onresume\",\"onrowenter\",\"onrowexit\",\"onrowsdelete\",\"onrowsinserted\",\"onscroll\",\"onsearch\",\"onseeked\",\"onseeking\",\"onselect\",\"onselectionchange\",\"onselectstart\",\"onshow\",\"onsignalingstatechange\",\"onsoundend\",\"onsoundstart\",\"onspeechend\",\"onspeechstart\",\"onstalled\",\"onstart\",\"onstatechange\",\"onstop\",\"onstorage\",\"onstoragecommit\",\"onsubmit\",\"onsuccess\",\"onsuspend\",\"ontextinput\",\"ontimeout\",\"ontimeupdate\",\"ontoggle\",\"ontouchcancel\",\"ontouchend\",\"ontouchmove\",\"ontouchstart\",\"ontransitionend\",\"onunload\",\"onupdateready\",\"onupgradeneeded\",\"onuserproximity\",\"onversionchange\",\"onvoiceschanged\",\"onvolumechange\",\"onwaiting\",\"onwarning\",\"onwebkitanimationend\",\"onwebkitanimationiteration\",\"onwebkitanimationstart\",\"onwebkitcurrentplaybacktargetiswirelesschanged\",\"onwebkitfullscreenchange\",\"onwebkitfullscreenerror\",\"onwebkitkeyadded\",\"onwebkitkeyerror\",\"onwebkitkeymessage\",\"onwebkitneedkey\",\"onwebkitorientationchange\",\"onwebkitplaybacktargetavailabilitychanged\",\"onwebkitpointerlockchange\",\"onwebkitpointerlockerror\",\"onwebkitresourcetimingbufferfull\",\"onwebkittransitionend\",\"onwheel\",\"onzoom\",\"opacity\",\"open\",\"openCursor\",\"openDatabase\",\"openKeyCursor\",\"opener\",\"opera\",\"operationType\",\"operator\",\"opr\",\"optimum\",\"options\",\"order\",\"orderX\",\"orderY\",\"ordered\",\"org\",\"orient\",\"orientAngle\",\"orientType\",\"orientation\",\"origin\",\"originalTarget\",\"orphans\",\"oscpu\",\"outerHTML\",\"outerHeight\",\"outerText\",\"outerWidth\",\"outline\",\"outline-color\",\"outline-offset\",\"outline-style\",\"outline-width\",\"outlineColor\",\"outlineOffset\",\"outlineStyle\",\"outlineWidth\",\"outputBuffer\",\"overflow\",\"overflow-x\",\"overflow-y\",\"overflowX\",\"overflowY\",\"overrideMimeType\",\"oversample\",\"ownerDocument\",\"ownerElement\",\"ownerNode\",\"ownerRule\",\"ownerSVGElement\",\"owningElement\",\"p1\",\"p2\",\"p3\",\"p4\",\"pad\",\"padding\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"paddingBottom\",\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"page\",\"page-break-after\",\"page-break-before\",\"page-break-inside\",\"pageBreakAfter\",\"pageBreakBefore\",\"pageBreakInside\",\"pageCount\",\"pageX\",\"pageXOffset\",\"pageY\",\"pageYOffset\",\"pages\",\"paint-order\",\"paintOrder\",\"paintRequests\",\"paintType\",\"palette\",\"panningModel\",\"parent\",\"parentElement\",\"parentNode\",\"parentRule\",\"parentStyleSheet\",\"parentTextEdit\",\"parentWindow\",\"parse\",\"parseFloat\",\"parseFromString\",\"parseInt\",\"participants\",\"passive\",\"password\",\"pasteHTML\",\"path\",\"pathLength\",\"pathSegList\",\"pathSegType\",\"pathSegTypeAsLetter\",\"pathname\",\"pattern\",\"patternContentUnits\",\"patternMismatch\",\"patternTransform\",\"patternUnits\",\"pause\",\"pauseAnimations\",\"pauseOnExit\",\"paused\",\"pending\",\"performance\",\"permission\",\"persisted\",\"personalbar\",\"perspective\",\"perspective-origin\",\"perspectiveOrigin\",\"phoneticFamilyName\",\"phoneticGivenName\",\"photo\",\"ping\",\"pitch\",\"pixelBottom\",\"pixelDepth\",\"pixelHeight\",\"pixelLeft\",\"pixelRight\",\"pixelStorei\",\"pixelTop\",\"pixelUnitToMillimeterX\",\"pixelUnitToMillimeterY\",\"pixelWidth\",\"placeholder\",\"platform\",\"play\",\"playbackRate\",\"playbackState\",\"playbackTime\",\"played\",\"plugins\",\"pluginspage\",\"pname\",\"pointer-events\",\"pointerBeforeReferenceNode\",\"pointerEnabled\",\"pointerEvents\",\"pointerId\",\"pointerLockElement\",\"pointerType\",\"points\",\"pointsAtX\",\"pointsAtY\",\"pointsAtZ\",\"polygonOffset\",\"pop\",\"popupWindowFeatures\",\"popupWindowName\",\"popupWindowURI\",\"port\",\"port1\",\"port2\",\"ports\",\"posBottom\",\"posHeight\",\"posLeft\",\"posRight\",\"posTop\",\"posWidth\",\"position\",\"positionAlign\",\"postError\",\"postMessage\",\"poster\",\"pow\",\"powerOff\",\"preMultiplySelf\",\"precision\",\"preferredStyleSheetSet\",\"preferredStylesheetSet\",\"prefix\",\"preload\",\"prepend\",\"preserveAlpha\",\"preserveAspectRatio\",\"preserveAspectRatioString\",\"pressed\",\"pressure\",\"prevValue\",\"preventDefault\",\"preventExtensions\",\"previousElementSibling\",\"previousNode\",\"previousPage\",\"previousScale\",\"previousSibling\",\"previousTranslate\",\"primaryKey\",\"primitiveType\",\"primitiveUnits\",\"principals\",\"print\",\"privateKey\",\"probablySupportsContext\",\"process\",\"processIceMessage\",\"product\",\"productSub\",\"profile\",\"profileEnd\",\"profiles\",\"prompt\",\"properties\",\"propertyIsEnumerable\",\"propertyName\",\"protocol\",\"protocolLong\",\"prototype\",\"pseudoClass\",\"pseudoElement\",\"publicId\",\"publicKey\",\"published\",\"push\",\"pushNotification\",\"pushState\",\"put\",\"putImageData\",\"quadraticCurveTo\",\"qualifier\",\"queryCommandEnabled\",\"queryCommandIndeterm\",\"queryCommandState\",\"queryCommandSupported\",\"queryCommandText\",\"queryCommandValue\",\"querySelector\",\"querySelectorAll\",\"quote\",\"quotes\",\"r\",\"r1\",\"r2\",\"race\",\"radiogroup\",\"radiusX\",\"radiusY\",\"random\",\"range\",\"rangeCount\",\"rangeMax\",\"rangeMin\",\"rangeOffset\",\"rangeOverflow\",\"rangeParent\",\"rangeUnderflow\",\"rate\",\"ratio\",\"raw\",\"read\",\"readAsArrayBuffer\",\"readAsBinaryString\",\"readAsBlob\",\"readAsDataURL\",\"readAsText\",\"readOnly\",\"readPixels\",\"readReportRequested\",\"readyState\",\"reason\",\"reboot\",\"receiver\",\"receivers\",\"recordNumber\",\"recordset\",\"rect\",\"red\",\"redirectCount\",\"redirectEnd\",\"redirectStart\",\"reduce\",\"reduceRight\",\"reduction\",\"refDistance\",\"refX\",\"refY\",\"referenceNode\",\"referrer\",\"refresh\",\"region\",\"regionAnchorX\",\"regionAnchorY\",\"regionId\",\"regions\",\"register\",\"registerContentHandler\",\"registerElement\",\"registerProtocolHandler\",\"reject\",\"rel\",\"relList\",\"relatedNode\",\"relatedTarget\",\"release\",\"releaseCapture\",\"releaseEvents\",\"releasePointerCapture\",\"releaseShaderCompiler\",\"reliable\",\"reload\",\"remainingSpace\",\"remoteDescription\",\"remove\",\"removeAllRanges\",\"removeAttribute\",\"removeAttributeNS\",\"removeAttributeNode\",\"removeBehavior\",\"removeChild\",\"removeCue\",\"removeEventListener\",\"removeFilter\",\"removeImport\",\"removeItem\",\"removeListener\",\"removeNamedItem\",\"removeNamedItemNS\",\"removeNode\",\"removeParameter\",\"removeProperty\",\"removeRange\",\"removeRegion\",\"removeRule\",\"removeSiteSpecificTrackingException\",\"removeSourceBuffer\",\"removeStream\",\"removeTrack\",\"removeVariable\",\"removeWakeLockListener\",\"removeWebWideTrackingException\",\"removedNodes\",\"renderbufferStorage\",\"renderedBuffer\",\"renderingMode\",\"repeat\",\"replace\",\"replaceAdjacentText\",\"replaceChild\",\"replaceData\",\"replaceId\",\"replaceItem\",\"replaceNode\",\"replaceState\",\"replaceTrack\",\"replaceWholeText\",\"reportValidity\",\"requestAnimationFrame\",\"requestAutocomplete\",\"requestData\",\"requestFullscreen\",\"requestMediaKeySystemAccess\",\"requestPermission\",\"requestPointerLock\",\"requestStart\",\"requestingWindow\",\"required\",\"requiredExtensions\",\"requiredFeatures\",\"reset\",\"resetTransform\",\"resize\",\"resizeBy\",\"resizeTo\",\"resolve\",\"response\",\"responseBody\",\"responseEnd\",\"responseStart\",\"responseText\",\"responseType\",\"responseURL\",\"responseXML\",\"restore\",\"result\",\"resultType\",\"resume\",\"returnValue\",\"rev\",\"reverse\",\"reversed\",\"revocable\",\"revokeObjectURL\",\"rgbColor\",\"right\",\"rightContext\",\"rightMargin\",\"rolloffFactor\",\"root\",\"rootElement\",\"rotate\",\"rotateAxisAngle\",\"rotateAxisAngleSelf\",\"rotateFromVector\",\"rotateFromVectorSelf\",\"rotateSelf\",\"rotation\",\"rotationRate\",\"round\",\"rowIndex\",\"rowSpan\",\"rows\",\"rubyAlign\",\"rubyOverhang\",\"rubyPosition\",\"rules\",\"runtime\",\"runtimeStyle\",\"rx\",\"ry\",\"safari\",\"sampleCoverage\",\"sampleRate\",\"sandbox\",\"save\",\"scale\",\"scale3d\",\"scale3dSelf\",\"scaleNonUniform\",\"scaleNonUniformSelf\",\"scaleSelf\",\"scheme\",\"scissor\",\"scope\",\"scopeName\",\"scoped\",\"screen\",\"screenBrightness\",\"screenEnabled\",\"screenLeft\",\"screenPixelToMillimeterX\",\"screenPixelToMillimeterY\",\"screenTop\",\"screenX\",\"screenY\",\"scripts\",\"scroll\",\"scroll-behavior\",\"scrollAmount\",\"scrollBehavior\",\"scrollBy\",\"scrollByLines\",\"scrollByPages\",\"scrollDelay\",\"scrollHeight\",\"scrollIntoView\",\"scrollIntoViewIfNeeded\",\"scrollLeft\",\"scrollLeftMax\",\"scrollMaxX\",\"scrollMaxY\",\"scrollTo\",\"scrollTop\",\"scrollTopMax\",\"scrollWidth\",\"scrollX\",\"scrollY\",\"scrollbar3dLightColor\",\"scrollbarArrowColor\",\"scrollbarBaseColor\",\"scrollbarDarkShadowColor\",\"scrollbarFaceColor\",\"scrollbarHighlightColor\",\"scrollbarShadowColor\",\"scrollbarTrackColor\",\"scrollbars\",\"scrolling\",\"sdp\",\"sdpMLineIndex\",\"sdpMid\",\"seal\",\"search\",\"searchBox\",\"searchBoxJavaBridge_\",\"searchParams\",\"sectionRowIndex\",\"secureConnectionStart\",\"security\",\"seed\",\"seekable\",\"seeking\",\"select\",\"selectAllChildren\",\"selectNode\",\"selectNodeContents\",\"selectNodes\",\"selectSingleNode\",\"selectSubString\",\"selected\",\"selectedIndex\",\"selectedOptions\",\"selectedStyleSheetSet\",\"selectedStylesheetSet\",\"selection\",\"selectionDirection\",\"selectionEnd\",\"selectionStart\",\"selector\",\"selectorText\",\"self\",\"send\",\"sendAsBinary\",\"sendBeacon\",\"sender\",\"sentTimestamp\",\"separator\",\"serializeToString\",\"serviceWorker\",\"sessionId\",\"sessionStorage\",\"set\",\"setActive\",\"setAlpha\",\"setAttribute\",\"setAttributeNS\",\"setAttributeNode\",\"setAttributeNodeNS\",\"setBaseAndExtent\",\"setBingCurrentSearchDefault\",\"setCapture\",\"setColor\",\"setCompositeOperation\",\"setCurrentTime\",\"setCustomValidity\",\"setData\",\"setDate\",\"setDragImage\",\"setEnd\",\"setEndAfter\",\"setEndBefore\",\"setEndPoint\",\"setFillColor\",\"setFilterRes\",\"setFloat32\",\"setFloat64\",\"setFloatValue\",\"setFullYear\",\"setHours\",\"setImmediate\",\"setInt16\",\"setInt32\",\"setInt8\",\"setInterval\",\"setItem\",\"setLineCap\",\"setLineDash\",\"setLineJoin\",\"setLineWidth\",\"setLocalDescription\",\"setMatrix\",\"setMatrixValue\",\"setMediaKeys\",\"setMilliseconds\",\"setMinutes\",\"setMiterLimit\",\"setMonth\",\"setNamedItem\",\"setNamedItemNS\",\"setNonUserCodeExceptions\",\"setOrientToAngle\",\"setOrientToAuto\",\"setOrientation\",\"setOverrideHistoryNavigationMode\",\"setPaint\",\"setParameter\",\"setPeriodicWave\",\"setPointerCapture\",\"setPosition\",\"setPreference\",\"setProperty\",\"setPrototypeOf\",\"setRGBColor\",\"setRGBColorICCColor\",\"setRadius\",\"setRangeText\",\"setRemoteDescription\",\"setRequestHeader\",\"setResizable\",\"setResourceTimingBufferSize\",\"setRotate\",\"setScale\",\"setSeconds\",\"setSelectionRange\",\"setServerCertificate\",\"setShadow\",\"setSkewX\",\"setSkewY\",\"setStart\",\"setStartAfter\",\"setStartBefore\",\"setStdDeviation\",\"setStringValue\",\"setStrokeColor\",\"setSuggestResult\",\"setTargetAtTime\",\"setTargetValueAtTime\",\"setTime\",\"setTimeout\",\"setTransform\",\"setTranslate\",\"setUTCDate\",\"setUTCFullYear\",\"setUTCHours\",\"setUTCMilliseconds\",\"setUTCMinutes\",\"setUTCMonth\",\"setUTCSeconds\",\"setUint16\",\"setUint32\",\"setUint8\",\"setUri\",\"setValueAtTime\",\"setValueCurveAtTime\",\"setVariable\",\"setVelocity\",\"setVersion\",\"setYear\",\"settingName\",\"settingValue\",\"sex\",\"shaderSource\",\"shadowBlur\",\"shadowColor\",\"shadowOffsetX\",\"shadowOffsetY\",\"shadowRoot\",\"shape\",\"shape-rendering\",\"shapeRendering\",\"sheet\",\"shift\",\"shiftKey\",\"shiftLeft\",\"show\",\"showHelp\",\"showModal\",\"showModalDialog\",\"showModelessDialog\",\"showNotification\",\"sidebar\",\"sign\",\"signalingState\",\"sin\",\"singleNodeValue\",\"sinh\",\"size\",\"sizeToContent\",\"sizes\",\"skewX\",\"skewXSelf\",\"skewY\",\"skewYSelf\",\"slice\",\"slope\",\"small\",\"smil\",\"smooth\",\"smoothingTimeConstant\",\"snapToLines\",\"snapshotItem\",\"snapshotLength\",\"some\",\"sort\",\"source\",\"sourceBuffer\",\"sourceBuffers\",\"sourceIndex\",\"spacing\",\"span\",\"speakAs\",\"speaking\",\"specified\",\"specularConstant\",\"specularExponent\",\"speechSynthesis\",\"speed\",\"speedOfSound\",\"spellcheck\",\"splice\",\"split\",\"splitText\",\"spreadMethod\",\"sqrt\",\"src\",\"srcElement\",\"srcFilter\",\"srcUrn\",\"srcdoc\",\"srclang\",\"srcset\",\"stack\",\"stackTraceLimit\",\"stacktrace\",\"standalone\",\"standby\",\"start\",\"startContainer\",\"startIce\",\"startOffset\",\"startRendering\",\"startTime\",\"startsWith\",\"state\",\"status\",\"statusMessage\",\"statusText\",\"statusbar\",\"stdDeviationX\",\"stdDeviationY\",\"stencilFunc\",\"stencilFuncSeparate\",\"stencilMask\",\"stencilMaskSeparate\",\"stencilOp\",\"stencilOpSeparate\",\"step\",\"stepDown\",\"stepMismatch\",\"stepUp\",\"sticky\",\"stitchTiles\",\"stop\",\"stop-color\",\"stop-opacity\",\"stopColor\",\"stopImmediatePropagation\",\"stopOpacity\",\"stopPropagation\",\"storageArea\",\"storageName\",\"storageStatus\",\"storeSiteSpecificTrackingException\",\"storeWebWideTrackingException\",\"stpVersion\",\"stream\",\"strike\",\"stringValue\",\"stringify\",\"stroke\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"strokeDasharray\",\"strokeDashoffset\",\"strokeLinecap\",\"strokeLinejoin\",\"strokeMiterlimit\",\"strokeOpacity\",\"strokeRect\",\"strokeStyle\",\"strokeText\",\"strokeWidth\",\"style\",\"styleFloat\",\"styleMedia\",\"styleSheet\",\"styleSheetSets\",\"styleSheets\",\"sub\",\"subarray\",\"subject\",\"submit\",\"subscribe\",\"substr\",\"substring\",\"substringData\",\"subtle\",\"subtree\",\"suffix\",\"suffixes\",\"summary\",\"sup\",\"supports\",\"surfaceScale\",\"surroundContents\",\"suspend\",\"suspendRedraw\",\"swapCache\",\"swapNode\",\"sweepFlag\",\"symbols\",\"system\",\"systemCode\",\"systemId\",\"systemLanguage\",\"systemXDPI\",\"systemYDPI\",\"tBodies\",\"tFoot\",\"tHead\",\"tabIndex\",\"table\",\"table-layout\",\"tableLayout\",\"tableValues\",\"tag\",\"tagName\",\"tagUrn\",\"tags\",\"taintEnabled\",\"takeRecords\",\"tan\",\"tanh\",\"target\",\"targetElement\",\"targetTouches\",\"targetX\",\"targetY\",\"tel\",\"terminate\",\"test\",\"texImage2D\",\"texParameterf\",\"texParameteri\",\"texSubImage2D\",\"text\",\"text-align\",\"text-anchor\",\"text-decoration\",\"text-decoration-color\",\"text-decoration-line\",\"text-decoration-style\",\"text-indent\",\"text-overflow\",\"text-rendering\",\"text-shadow\",\"text-transform\",\"textAlign\",\"textAlignLast\",\"textAnchor\",\"textAutospace\",\"textBaseline\",\"textContent\",\"textDecoration\",\"textDecorationBlink\",\"textDecorationColor\",\"textDecorationLine\",\"textDecorationLineThrough\",\"textDecorationNone\",\"textDecorationOverline\",\"textDecorationStyle\",\"textDecorationUnderline\",\"textIndent\",\"textJustify\",\"textJustifyTrim\",\"textKashida\",\"textKashidaSpace\",\"textLength\",\"textOverflow\",\"textRendering\",\"textShadow\",\"textTracks\",\"textTransform\",\"textUnderlinePosition\",\"then\",\"threadId\",\"threshold\",\"tiltX\",\"tiltY\",\"time\",\"timeEnd\",\"timeStamp\",\"timeout\",\"timestamp\",\"timestampOffset\",\"timing\",\"title\",\"toArray\",\"toBlob\",\"toDataURL\",\"toDateString\",\"toElement\",\"toExponential\",\"toFixed\",\"toFloat32Array\",\"toFloat64Array\",\"toGMTString\",\"toISOString\",\"toJSON\",\"toLocaleDateString\",\"toLocaleFormat\",\"toLocaleLowerCase\",\"toLocaleString\",\"toLocaleTimeString\",\"toLocaleUpperCase\",\"toLowerCase\",\"toMethod\",\"toPrecision\",\"toSdp\",\"toSource\",\"toStaticHTML\",\"toString\",\"toStringTag\",\"toTimeString\",\"toUTCString\",\"toUpperCase\",\"toggle\",\"toggleLongPressEnabled\",\"tooLong\",\"toolbar\",\"top\",\"topMargin\",\"total\",\"totalFrameDelay\",\"totalVideoFrames\",\"touchAction\",\"touches\",\"trace\",\"track\",\"transaction\",\"transactions\",\"transform\",\"transform-origin\",\"transform-style\",\"transformOrigin\",\"transformPoint\",\"transformString\",\"transformStyle\",\"transformToDocument\",\"transformToFragment\",\"transition\",\"transition-delay\",\"transition-duration\",\"transition-property\",\"transition-timing-function\",\"transitionDelay\",\"transitionDuration\",\"transitionProperty\",\"transitionTimingFunction\",\"translate\",\"translateSelf\",\"translationX\",\"translationY\",\"trim\",\"trimLeft\",\"trimRight\",\"trueSpeed\",\"trunc\",\"truncate\",\"type\",\"typeDetail\",\"typeMismatch\",\"typeMustMatch\",\"types\",\"ubound\",\"undefined\",\"unescape\",\"uneval\",\"unicode-bidi\",\"unicodeBidi\",\"uniform1f\",\"uniform1fv\",\"uniform1i\",\"uniform1iv\",\"uniform2f\",\"uniform2fv\",\"uniform2i\",\"uniform2iv\",\"uniform3f\",\"uniform3fv\",\"uniform3i\",\"uniform3iv\",\"uniform4f\",\"uniform4fv\",\"uniform4i\",\"uniform4iv\",\"uniformMatrix2fv\",\"uniformMatrix3fv\",\"uniformMatrix4fv\",\"unique\",\"uniqueID\",\"uniqueNumber\",\"unitType\",\"units\",\"unloadEventEnd\",\"unloadEventStart\",\"unlock\",\"unmount\",\"unobserve\",\"unpause\",\"unpauseAnimations\",\"unreadCount\",\"unregister\",\"unregisterContentHandler\",\"unregisterProtocolHandler\",\"unscopables\",\"unselectable\",\"unshift\",\"unsubscribe\",\"unsuspendRedraw\",\"unsuspendRedrawAll\",\"unwatch\",\"unwrapKey\",\"update\",\"updateCommands\",\"updateIce\",\"updateInterval\",\"updateSettings\",\"updated\",\"updating\",\"upload\",\"upper\",\"upperBound\",\"upperOpen\",\"uri\",\"url\",\"urn\",\"urns\",\"usages\",\"useCurrentView\",\"useMap\",\"useProgram\",\"usedSpace\",\"userAgent\",\"userLanguage\",\"username\",\"v8BreakIterator\",\"vAlign\",\"vLink\",\"valid\",\"validateProgram\",\"validationMessage\",\"validity\",\"value\",\"valueAsDate\",\"valueAsNumber\",\"valueAsString\",\"valueInSpecifiedUnits\",\"valueMissing\",\"valueOf\",\"valueText\",\"valueType\",\"values\",\"vector-effect\",\"vectorEffect\",\"velocityAngular\",\"velocityExpansion\",\"velocityX\",\"velocityY\",\"vendor\",\"vendorSub\",\"verify\",\"version\",\"vertexAttrib1f\",\"vertexAttrib1fv\",\"vertexAttrib2f\",\"vertexAttrib2fv\",\"vertexAttrib3f\",\"vertexAttrib3fv\",\"vertexAttrib4f\",\"vertexAttrib4fv\",\"vertexAttribDivisorANGLE\",\"vertexAttribPointer\",\"vertical\",\"vertical-align\",\"verticalAlign\",\"verticalOverflow\",\"vibrate\",\"videoHeight\",\"videoTracks\",\"videoWidth\",\"view\",\"viewBox\",\"viewBoxString\",\"viewTarget\",\"viewTargetString\",\"viewport\",\"viewportAnchorX\",\"viewportAnchorY\",\"viewportElement\",\"visibility\",\"visibilityState\",\"visible\",\"vlinkColor\",\"voice\",\"volume\",\"vrml\",\"vspace\",\"w\",\"wand\",\"warn\",\"wasClean\",\"watch\",\"watchPosition\",\"webdriver\",\"webkitAddKey\",\"webkitAnimation\",\"webkitAnimationDelay\",\"webkitAnimationDirection\",\"webkitAnimationDuration\",\"webkitAnimationFillMode\",\"webkitAnimationIterationCount\",\"webkitAnimationName\",\"webkitAnimationPlayState\",\"webkitAnimationTimingFunction\",\"webkitAppearance\",\"webkitAudioContext\",\"webkitAudioDecodedByteCount\",\"webkitAudioPannerNode\",\"webkitBackfaceVisibility\",\"webkitBackground\",\"webkitBackgroundAttachment\",\"webkitBackgroundClip\",\"webkitBackgroundColor\",\"webkitBackgroundImage\",\"webkitBackgroundOrigin\",\"webkitBackgroundPosition\",\"webkitBackgroundPositionX\",\"webkitBackgroundPositionY\",\"webkitBackgroundRepeat\",\"webkitBackgroundSize\",\"webkitBackingStorePixelRatio\",\"webkitBorderImage\",\"webkitBorderImageOutset\",\"webkitBorderImageRepeat\",\"webkitBorderImageSlice\",\"webkitBorderImageSource\",\"webkitBorderImageWidth\",\"webkitBoxAlign\",\"webkitBoxDirection\",\"webkitBoxFlex\",\"webkitBoxOrdinalGroup\",\"webkitBoxOrient\",\"webkitBoxPack\",\"webkitBoxSizing\",\"webkitCancelAnimationFrame\",\"webkitCancelFullScreen\",\"webkitCancelKeyRequest\",\"webkitCancelRequestAnimationFrame\",\"webkitClearResourceTimings\",\"webkitClosedCaptionsVisible\",\"webkitConvertPointFromNodeToPage\",\"webkitConvertPointFromPageToNode\",\"webkitCreateShadowRoot\",\"webkitCurrentFullScreenElement\",\"webkitCurrentPlaybackTargetIsWireless\",\"webkitDirectionInvertedFromDevice\",\"webkitDisplayingFullscreen\",\"webkitEnterFullScreen\",\"webkitEnterFullscreen\",\"webkitExitFullScreen\",\"webkitExitFullscreen\",\"webkitExitPointerLock\",\"webkitFullScreenKeyboardInputAllowed\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitGenerateKeyRequest\",\"webkitGetAsEntry\",\"webkitGetDatabaseNames\",\"webkitGetEntries\",\"webkitGetEntriesByName\",\"webkitGetEntriesByType\",\"webkitGetFlowByName\",\"webkitGetGamepads\",\"webkitGetImageDataHD\",\"webkitGetNamedFlows\",\"webkitGetRegionFlowRanges\",\"webkitGetUserMedia\",\"webkitHasClosedCaptions\",\"webkitHidden\",\"webkitIDBCursor\",\"webkitIDBDatabase\",\"webkitIDBDatabaseError\",\"webkitIDBDatabaseException\",\"webkitIDBFactory\",\"webkitIDBIndex\",\"webkitIDBKeyRange\",\"webkitIDBObjectStore\",\"webkitIDBRequest\",\"webkitIDBTransaction\",\"webkitImageSmoothingEnabled\",\"webkitIndexedDB\",\"webkitInitMessageEvent\",\"webkitIsFullScreen\",\"webkitKeys\",\"webkitLineDashOffset\",\"webkitLockOrientation\",\"webkitMatchesSelector\",\"webkitMediaStream\",\"webkitNotifications\",\"webkitOfflineAudioContext\",\"webkitOrientation\",\"webkitPeerConnection00\",\"webkitPersistentStorage\",\"webkitPointerLockElement\",\"webkitPostMessage\",\"webkitPreservesPitch\",\"webkitPutImageDataHD\",\"webkitRTCPeerConnection\",\"webkitRegionOverset\",\"webkitRequestAnimationFrame\",\"webkitRequestFileSystem\",\"webkitRequestFullScreen\",\"webkitRequestFullscreen\",\"webkitRequestPointerLock\",\"webkitResolveLocalFileSystemURL\",\"webkitSetMediaKeys\",\"webkitSetResourceTimingBufferSize\",\"webkitShadowRoot\",\"webkitShowPlaybackTargetPicker\",\"webkitSlice\",\"webkitSpeechGrammar\",\"webkitSpeechGrammarList\",\"webkitSpeechRecognition\",\"webkitSpeechRecognitionError\",\"webkitSpeechRecognitionEvent\",\"webkitStorageInfo\",\"webkitSupportsFullscreen\",\"webkitTemporaryStorage\",\"webkitTextSizeAdjust\",\"webkitTransform\",\"webkitTransformOrigin\",\"webkitTransition\",\"webkitTransitionDelay\",\"webkitTransitionDuration\",\"webkitTransitionProperty\",\"webkitTransitionTimingFunction\",\"webkitURL\",\"webkitUnlockOrientation\",\"webkitUserSelect\",\"webkitVideoDecodedByteCount\",\"webkitVisibilityState\",\"webkitWirelessVideoPlaybackDisabled\",\"webkitdropzone\",\"webstore\",\"weight\",\"whatToShow\",\"wheelDelta\",\"wheelDeltaX\",\"wheelDeltaY\",\"which\",\"white-space\",\"whiteSpace\",\"wholeText\",\"widows\",\"width\",\"will-change\",\"willChange\",\"willValidate\",\"window\",\"withCredentials\",\"word-break\",\"word-spacing\",\"word-wrap\",\"wordBreak\",\"wordSpacing\",\"wordWrap\",\"wrap\",\"wrapKey\",\"write\",\"writeln\",\"writingMode\",\"x\",\"x1\",\"x2\",\"xChannelSelector\",\"xmlEncoding\",\"xmlStandalone\",\"xmlVersion\",\"xmlbase\",\"xmllang\",\"xmlspace\",\"y\",\"y1\",\"y2\",\"yChannelSelector\",\"yandex\",\"z\",\"z-index\",\"zIndex\",\"zoom\",\"zoomAndPan\",\"zoomRectScreen\"]"); + +/***/ }), + +/***/ "./src/node/NodeAppender.ts": +/*!**********************************!*\ + !*** ./src/node/NodeAppender.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeAppender = void 0; +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +class NodeAppender { + static append(nodeWithStatements, statements) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements); + NodeAppender.setScopeStatements(nodeWithStatements, [ + ...NodeAppender.getScopeStatements(nodeWithStatements), + ...statements + ]); + } + static appendToOptimalBlockScope(callsGraphData, nodeWithStatements, bodyStatements, index = 0) { + const targetBlockScope = callsGraphData.length + ? NodeAppender.getOptimalBlockScope(callsGraphData, index) + : nodeWithStatements; + NodeAppender.prepend(targetBlockScope, bodyStatements); + } + static getOptimalBlockScope(callsGraphData, index, deep = Infinity) { + const firstCall = callsGraphData[index]; + if (deep <= 0) { + throw new Error('Invalid `deep` argument value. Value should be bigger then 0.'); + } + if (deep > 1 && firstCall.callsGraph.length) { + return NodeAppender.getOptimalBlockScope(firstCall.callsGraph, 0, --deep); + } + else { + return firstCall.callee; + } + } + static insertBefore(nodeWithStatements, statements, target) { + const indexInScopeStatement = NodeAppender + .getScopeStatements(nodeWithStatements) + .indexOf(target); + NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement); + } + static insertAfter(nodeWithStatements, statements, target) { + const indexInScopeStatement = NodeAppender + .getScopeStatements(nodeWithStatements) + .indexOf(target); + NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1); + } + static insertAtIndex(nodeWithStatements, statements, index) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements); + NodeAppender.setScopeStatements(nodeWithStatements, [ + ...NodeAppender.getScopeStatements(nodeWithStatements).slice(0, index), + ...statements, + ...NodeAppender.getScopeStatements(nodeWithStatements).slice(index) + ]); + } + static prepend(nodeWithStatements, statements) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements); + NodeAppender.setScopeStatements(nodeWithStatements, [ + ...statements, + ...NodeAppender.getScopeStatements(nodeWithStatements), + ]); + } + static getScopeStatements(nodeWithStatements) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) { + return nodeWithStatements.consequent; + } + return nodeWithStatements.body; + } + static parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements) { + statements.forEach((statement) => { + statement.parentNode = nodeWithStatements; + }); + return statements; + } + static setScopeStatements(nodeWithStatements, statements) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) { + nodeWithStatements.consequent = statements; + return; + } + nodeWithStatements.body = statements; + } +} +exports.NodeAppender = NodeAppender; + + +/***/ }), + +/***/ "./src/node/NodeFactory.ts": +/*!*********************************!*\ + !*** ./src/node/NodeFactory.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeFactory = void 0; +const escodegen = __importStar(__webpack_require__(/*! escodegen */ "escodegen")); +const NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); +class NodeFactory { + static programNode(body = []) { + return { + type: NodeType_1.NodeType.Program, + body, + sourceType: 'script', + metadata: { ignoredNode: false } + }; + } + static arrayExpressionNode(elements = []) { + return { + type: NodeType_1.NodeType.ArrayExpression, + elements, + metadata: { ignoredNode: false } + }; + } + static assignmentExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.AssignmentExpression, + operator, + left, + right, + metadata: { ignoredNode: false } + }; + } + static binaryExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.BinaryExpression, + operator, + left, + right, + metadata: { ignoredNode: false } + }; + } + static blockStatementNode(body = []) { + return { + type: NodeType_1.NodeType.BlockStatement, + body, + metadata: { ignoredNode: false } + }; + } + static breakStatement(label) { + return { + type: NodeType_1.NodeType.BreakStatement, + label, + metadata: { ignoredNode: false } + }; + } + static callExpressionNode(callee, args = []) { + return { + type: NodeType_1.NodeType.CallExpression, + callee, + arguments: args, + metadata: { ignoredNode: false } + }; + } + static conditionalExpressionNode(test, consequent, alternate) { + return { + type: NodeType_1.NodeType.ConditionalExpression, + test, + consequent, + alternate, + metadata: { ignoredNode: false } + }; + } + static continueStatement(label) { + return { + type: NodeType_1.NodeType.ContinueStatement, + label, + metadata: { ignoredNode: false } + }; + } + static directiveNode(expression, directive) { + return { + type: NodeType_1.NodeType.ExpressionStatement, + expression, + directive, + metadata: { ignoredNode: false } + }; + } + static expressionStatementNode(expression) { + return { + type: NodeType_1.NodeType.ExpressionStatement, + expression, + metadata: { ignoredNode: false } + }; + } + static functionDeclarationNode(functionName, params, body) { + return { + type: NodeType_1.NodeType.FunctionDeclaration, + id: NodeFactory.identifierNode(functionName), + params, + body, + generator: false, + metadata: { ignoredNode: false } + }; + } + static functionExpressionNode(params, body) { + return { + type: NodeType_1.NodeType.FunctionExpression, + params, + body, + generator: false, + metadata: { ignoredNode: false } + }; + } + static ifStatementNode(test, consequent, alternate) { + return Object.assign(Object.assign({ type: NodeType_1.NodeType.IfStatement, test, + consequent }, alternate && { alternate }), { metadata: { ignoredNode: false } }); + } + static identifierNode(name) { + return { + type: NodeType_1.NodeType.Identifier, + name, + metadata: { ignoredNode: false } + }; + } + static importDeclarationNode(specifiers, source) { + return { + type: NodeType_1.NodeType.ImportDeclaration, + specifiers, + source, + metadata: { ignoredNode: false } + }; + } + static literalNode(value, raw) { + raw = raw !== undefined ? raw : `'${value}'`; + return { + type: NodeType_1.NodeType.Literal, + value, + raw, + 'x-verbatim-property': { + content: raw, + precedence: escodegen.Precedence.Primary + }, + metadata: { ignoredNode: false } + }; + } + static logicalExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.LogicalExpression, + operator, + left, + right, + metadata: { ignoredNode: false } + }; + } + static memberExpressionNode(object, property, computed = false) { + return { + type: NodeType_1.NodeType.MemberExpression, + computed, + object, + property, + metadata: { ignoredNode: false } + }; + } + static objectExpressionNode(properties) { + return { + type: NodeType_1.NodeType.ObjectExpression, + properties, + metadata: { ignoredNode: false } + }; + } + static propertyNode(key, value, computed = false) { + return { + type: NodeType_1.NodeType.Property, + key, + value, + kind: 'init', + method: false, + shorthand: false, + computed, + metadata: { ignoredNode: false } + }; + } + static returnStatementNode(argument) { + return { + type: NodeType_1.NodeType.ReturnStatement, + argument, + metadata: { ignoredNode: false } + }; + } + static sequenceExpressionNode(expressions) { + return { + type: NodeType_1.NodeType.SequenceExpression, + expressions, + metadata: { ignoredNode: false } + }; + } + static switchStatementNode(discriminant, cases) { + return { + type: NodeType_1.NodeType.SwitchStatement, + discriminant, + cases, + metadata: { ignoredNode: false } + }; + } + static switchCaseNode(test, consequent) { + return { + type: NodeType_1.NodeType.SwitchCase, + test, + consequent, + metadata: { ignoredNode: false } + }; + } + static unaryExpressionNode(operator, argument, prefix = true) { + return { + type: NodeType_1.NodeType.UnaryExpression, + operator, + argument, + prefix, + metadata: { ignoredNode: false } + }; + } + static updateExpressionNode(operator, argumentExpr) { + return { + type: NodeType_1.NodeType.UpdateExpression, + operator, + argument: argumentExpr, + prefix: false, + metadata: { ignoredNode: false } + }; + } + static variableDeclarationNode(declarations = [], kind = 'var') { + return { + type: NodeType_1.NodeType.VariableDeclaration, + declarations, + kind, + metadata: { ignoredNode: false } + }; + } + static variableDeclaratorNode(id, init) { + return { + type: NodeType_1.NodeType.VariableDeclarator, + id, + init, + metadata: { ignoredNode: false } + }; + } + static whileStatementNode(test, body) { + return { + type: NodeType_1.NodeType.WhileStatement, + test, + body, + metadata: { ignoredNode: false } + }; + } +} +exports.NodeFactory = NodeFactory; + + +/***/ }), + +/***/ "./src/node/NodeGuards.ts": +/*!********************************!*\ + !*** ./src/node/NodeGuards.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeGuards = void 0; +const NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); +class NodeGuards { + static isArrayPatternNode(node) { + return node.type === NodeType_1.NodeType.ArrayPattern; + } + static isArrowFunctionExpressionNode(node) { + return node.type === NodeType_1.NodeType.ArrowFunctionExpression; + } + static isAssignmentExpressionNode(node) { + return node.type === NodeType_1.NodeType.AssignmentExpression; + } + static isAssignmentPatternNode(node) { + return node.type === NodeType_1.NodeType.AssignmentPattern; + } + static isAwaitExpressionNode(node) { + return node.type === NodeType_1.NodeType.AwaitExpression; + } + static isBigIntLiteralNode(node) { + return NodeGuards.isLiteralNode(node) && !!node.bigint; + } + static isBlockStatementNode(node) { + return node.type === NodeType_1.NodeType.BlockStatement; + } + static isBreakStatementNode(node) { + return node.type === NodeType_1.NodeType.BreakStatement; + } + static isCallExpressionNode(node) { + return node.type === NodeType_1.NodeType.CallExpression; + } + static isClassDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ClassDeclaration && node.id !== null; + } + static isContinueStatementNode(node) { + return node.type === NodeType_1.NodeType.ContinueStatement; + } + static isDirectiveNode(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement + && 'directive' in node; + } + static isExportNamedDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ExportNamedDeclaration; + } + static isExpressionStatementNode(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement + && !('directive' in node); + } + static isFunctionNode(node) { + return NodeGuards.isFunctionDeclarationNode(node) || + NodeGuards.isFunctionExpressionNode(node) || + NodeGuards.isArrowFunctionExpressionNode(node); + } + static isFunctionDeclarationNode(node) { + return node.type === NodeType_1.NodeType.FunctionDeclaration && node.id !== null; + } + static isFunctionExpressionNode(node) { + return node.type === NodeType_1.NodeType.FunctionExpression; + } + static isIdentifierNode(node) { + return node.type === NodeType_1.NodeType.Identifier; + } + static isIfStatementNode(node) { + return node.type === NodeType_1.NodeType.IfStatement; + } + static isImportDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ImportDeclaration; + } + static isImportSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ImportSpecifier; + } + static isLabelIdentifierNode(node, parentNode) { + const parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node; + const parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node; + const parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node; + return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode; + } + static isLabeledStatementNode(node) { + return node.type === NodeType_1.NodeType.LabeledStatement; + } + static isLiteralNode(node) { + return node.type === NodeType_1.NodeType.Literal; + } + static isMemberExpressionNode(node) { + return node.type === NodeType_1.NodeType.MemberExpression; + } + static isMethodDefinitionNode(node) { + return node.type === NodeType_1.NodeType.MethodDefinition; + } + static isNode(object) { + return object && !object.type !== undefined; + } + static isNodeWithLexicalScope(node) { + return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node); + } + static isNodeWithBlockLexicalScope(node) { + return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node); + } + static isNodeWithLexicalScopeStatements(node, parentNode) { + return NodeGuards.isProgramNode(node) + || (NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type)); + } + static isNodeWithStatements(node) { + return NodeGuards.isProgramNode(node) + || NodeGuards.isBlockStatementNode(node) + || NodeGuards.isSwitchCaseNode(node); + } + static isNodeWithComments(node) { + return Boolean(node.leadingComments) || Boolean(node.trailingComments); + } + static isObjectPatternNode(node) { + return node.type === NodeType_1.NodeType.ObjectPattern; + } + static isObjectExpressionNode(node) { + return node.type === NodeType_1.NodeType.ObjectExpression; + } + static isProgramNode(node) { + return node.type === NodeType_1.NodeType.Program; + } + static isPropertyNode(node) { + return node.type === NodeType_1.NodeType.Property; + } + static isRestElementNode(node) { + return node.type === NodeType_1.NodeType.RestElement; + } + static isReturnStatementNode(node) { + return node.type === NodeType_1.NodeType.ReturnStatement; + } + static isSequenceExpressionNode(node) { + return node.type === NodeType_1.NodeType.SequenceExpression; + } + static isSuperNode(node) { + return node.type === NodeType_1.NodeType.Super; + } + static isSwitchCaseNode(node) { + return node.type === NodeType_1.NodeType.SwitchCase; + } + static isTaggedTemplateExpressionNode(node) { + return node.type === NodeType_1.NodeType.TaggedTemplateExpression; + } + static isTemplateLiteralNode(node) { + return node.type === NodeType_1.NodeType.TemplateLiteral; + } + static isUnaryExpressionNode(node) { + return node.type === NodeType_1.NodeType.UnaryExpression; + } + static isUseStrictOperator(node) { + return NodeGuards.isDirectiveNode(node) + && node.directive === 'use strict'; + } + static isVariableDeclarationNode(node) { + return node.type === NodeType_1.NodeType.VariableDeclaration; + } + static isVariableDeclaratorNode(node) { + return node.type === NodeType_1.NodeType.VariableDeclarator; + } + static isWhileStatementNode(node) { + return node.type === NodeType_1.NodeType.WhileStatement; + } +} +exports.NodeGuards = NodeGuards; +NodeGuards.nodesWithLexicalStatements = [ + NodeType_1.NodeType.ArrowFunctionExpression, + NodeType_1.NodeType.FunctionDeclaration, + NodeType_1.NodeType.FunctionExpression, + NodeType_1.NodeType.MethodDefinition, +]; + + +/***/ }), + +/***/ "./src/node/NodeLexicalScopeUtils.ts": +/*!*******************************************!*\ + !*** ./src/node/NodeLexicalScopeUtils.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeLexicalScopeUtils = void 0; +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +class NodeLexicalScopeUtils { + static getLexicalScope(node) { + return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0]; + } + static getLexicalScopes(node) { + return NodeLexicalScopeUtils.getLexicalScopesRecursive(node); + } + static getLexicalScopesRecursive(node, maxSize = Infinity, nodesWithLexicalScope = [], depth = 0) { + if (nodesWithLexicalScope.length >= maxSize) { + return nodesWithLexicalScope; + } + const parentNode = node.parentNode; + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + if (NodeGuards_1.NodeGuards.isNodeWithLexicalScope(node)) { + nodesWithLexicalScope.push(node); + } + if (node !== parentNode) { + return NodeLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth); + } + return nodesWithLexicalScope; + } +} +exports.NodeLexicalScopeUtils = NodeLexicalScopeUtils; + + +/***/ }), + +/***/ "./src/node/NodeLiteralUtils.ts": +/*!**************************************!*\ + !*** ./src/node/NodeLiteralUtils.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeLiteralUtils = void 0; +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +class NodeLiteralUtils { + static isProhibitedLiteralNode(literalNode, parentNode) { + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) { + return true; + } + if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) { + return true; + } + return false; + } +} +exports.NodeLiteralUtils = NodeLiteralUtils; + + +/***/ }), + +/***/ "./src/node/NodeMetadata.ts": +/*!**********************************!*\ + !*** ./src/node/NodeMetadata.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeMetadata = void 0; +class NodeMetadata { + static set(node, metadata) { + var _a; + node.metadata = Object.assign((_a = node.metadata) !== null && _a !== void 0 ? _a : {}, metadata); + } + static get(node, metadataKey) { + return node.metadata !== undefined + ? node.metadata[metadataKey] + : undefined; + } + static isIgnoredNode(node) { + return NodeMetadata.get(node, 'ignoredNode') === true; + } + static isReplacedLiteral(literalNode) { + return NodeMetadata.get(literalNode, 'replacedLiteral') === true; + } +} +exports.NodeMetadata = NodeMetadata; + + +/***/ }), + +/***/ "./src/node/NodeStatementUtils.ts": +/*!****************************************!*\ + !*** ./src/node/NodeStatementUtils.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeStatementUtils = void 0; +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +class NodeStatementUtils { + static getParentNodeWithStatements(node) { + return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0]; + } + static getParentNodesWithStatements(node) { + return NodeStatementUtils.getParentNodesWithStatementsRecursive(node); + } + static getNextSiblingStatement(statement) { + return NodeStatementUtils.getSiblingStatementByOffset(statement, 1); + } + static getPreviousSiblingStatement(statement) { + return NodeStatementUtils.getSiblingStatementByOffset(statement, -1); + } + static getRootStatementOfNode(node) { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + throw new Error('Unable to find root statement for `Program` node'); + } + const parentNode = node.parentNode; + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) { + return NodeStatementUtils.getRootStatementOfNode(parentNode); + } + return node; + } + static getScopeOfNode(node) { + const parentNode = node.parentNode; + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) { + return NodeStatementUtils.getScopeOfNode(parentNode); + } + return parentNode; + } + static getParentNodesWithStatementsRecursive(node, maxSize = Infinity, nodesWithStatements = [], depth = 0) { + if (nodesWithStatements.length >= maxSize) { + return nodesWithStatements; + } + const parentNode = node.parentNode; + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + if (NodeGuards_1.NodeGuards.isProgramNode(node) || + (NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode) && depth > 0)) { + nodesWithStatements.push(node); + } + if (node !== parentNode) { + return NodeStatementUtils.getParentNodesWithStatementsRecursive(parentNode, maxSize, nodesWithStatements, ++depth); + } + return nodesWithStatements; + } + static getSiblingStatementByOffset(statement, offset) { + const scopeNode = NodeStatementUtils.getScopeOfNode(statement); + const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) + ? scopeNode.body + : scopeNode.consequent; + const indexInScope = scopeBody.indexOf(statement); + return scopeBody[indexInScope + offset] || null; + } +} +exports.NodeStatementUtils = NodeStatementUtils; + + +/***/ }), + +/***/ "./src/node/NodeUtils.ts": +/*!*******************************!*\ + !*** ./src/node/NodeUtils.ts ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeUtils = void 0; +const escodegen = __importStar(__webpack_require__(/*! escodegen */ "escodegen")); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const EcmaVersion_1 = __webpack_require__(/*! ../constants/EcmaVersion */ "./src/constants/EcmaVersion.ts"); +const ASTParserFacade_1 = __webpack_require__(/*! ../ASTParserFacade */ "./src/ASTParserFacade.ts"); +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ./NodeMetadata */ "./src/node/NodeMetadata.ts"); +class NodeUtils { + static addXVerbatimPropertyTo(literalNode) { + literalNode['x-verbatim-property'] = { + content: literalNode.raw, + precedence: escodegen.Precedence.Primary + }; + return literalNode; + } + static clone(astTree) { + return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree)); + } + static convertCodeToStructure(code) { + const structure = ASTParserFacade_1.ASTParserFacade.parse(code, { + ecmaVersion: EcmaVersion_1.ecmaVersion, + sourceType: 'script' + }); + estraverse.replace(structure, { + enter: (node, parentNode) => { + NodeUtils.parentizeNode(node, parentNode); + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + NodeUtils.addXVerbatimPropertyTo(node); + } + NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false }); + return node; + } + }); + return structure.body; + } + static convertStructureToCode(structure) { + return structure.reduce((code, node) => { + return code + escodegen.generate(node, { + sourceMapWithCode: true + }).code; + }, ''); + } + static getUnaryExpressionArgumentNode(unaryExpressionNode) { + if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) { + return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument); + } + return unaryExpressionNode.argument; + } + static parentizeAst(astTree) { + var _a; + const parentNode = (_a = astTree.parentNode) !== null && _a !== void 0 ? _a : null; + estraverse.replace(astTree, { + enter: NodeUtils.parentizeNode + }); + if (parentNode) { + astTree.parentNode = parentNode; + } + return astTree; + } + static parentizeNode(node, parentNode) { + node.parentNode = parentNode !== null && parentNode !== void 0 ? parentNode : node; + return node; + } + static cloneRecursive(node) { + if (node === null) { + return node; + } + const copy = {}; + const nodeKeys = Object.keys(node); + nodeKeys + .forEach((property) => { + if (property === 'parentNode') { + return; + } + const value = node[property]; + let clonedValue; + if (value === null || value instanceof RegExp) { + clonedValue = value; + } + else if (Array.isArray(value)) { + clonedValue = value.map(NodeUtils.cloneRecursive); + } + else if (typeof value === 'object') { + clonedValue = NodeUtils.cloneRecursive(value); + } + else { + clonedValue = value; + } + copy[property] = clonedValue; + }); + return copy; + } +} +exports.NodeUtils = NodeUtils; + + +/***/ }), + +/***/ "./src/node/ScopeIdentifiersTraverser.ts": +/*!***********************************************!*\ + !*** ./src/node/ScopeIdentifiersTraverser.ts ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var ScopeIdentifiersTraverser_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ScopeIdentifiersTraverser = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IScopeAnalyzer_1 = __webpack_require__(/*! ../interfaces/analyzers/scope-analyzer/IScopeAnalyzer */ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +let ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = class ScopeIdentifiersTraverser { + constructor(scopeAnalyzer) { + this.scopeAnalyzer = scopeAnalyzer; + } + traverse(programNode, parentNode, callback) { + this.scopeAnalyzer.analyze(programNode); + const globalScope = this.scopeAnalyzer.acquireScope(programNode); + this.traverseScopeVariables(globalScope, globalScope, callback); + } + traverseScopeVariables(rootScope, currentScope, callback) { + const variableScope = currentScope.variableScope; + const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block) + ? variableScope.block + : null; + const isGlobalDeclaration = ScopeIdentifiersTraverser_1.globalScopeNames.includes(variableScope.type); + if (!variableLexicalScopeNode) { + return; + } + for (const variable of currentScope.variables) { + if (variable.name === ScopeIdentifiersTraverser_1.argumentsVariableName) { + continue; + } + const isBubblingDeclaration = variable + .identifiers + .some((identifier) => identifier.parentNode + && NodeGuards_1.NodeGuards.isPropertyNode(identifier.parentNode) + && identifier.parentNode.shorthand); + callback({ + isGlobalDeclaration, + isBubblingDeclaration, + rootScope, + variable, + variableScope, + variableLexicalScopeNode + }); + } + for (const childScope of currentScope.childScopes) { + this.traverseScopeVariables(rootScope, childScope, callback); + } + } +}; +ScopeIdentifiersTraverser.argumentsVariableName = 'arguments'; +ScopeIdentifiersTraverser.globalScopeNames = [ + 'global', + 'module' +]; +ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)), + __metadata("design:paramtypes", [typeof (_a = typeof IScopeAnalyzer_1.IScopeAnalyzer !== "undefined" && IScopeAnalyzer_1.IScopeAnalyzer) === "function" ? _a : Object]) +], ScopeIdentifiersTraverser); +exports.ScopeIdentifiersTraverser = ScopeIdentifiersTraverser; + + +/***/ }), + +/***/ "./src/options/Options.ts": +/*!********************************!*\ + !*** ./src/options/Options.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var Options_1, _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Options = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator"); +const TInputOptions_1 = __webpack_require__(/*! ../types/options/TInputOptions */ "./src/types/options/TInputOptions.ts"); +const TStringArrayEncoding_1 = __webpack_require__(/*! ../types/options/TStringArrayEncoding */ "./src/types/options/TStringArrayEncoding.ts"); +const IOptionsNormalizer_1 = __webpack_require__(/*! ../interfaces/options/IOptionsNormalizer */ "./src/interfaces/options/IOptionsNormalizer.ts"); +const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +const Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts"); +const ValidationErrorsFormatter_1 = __webpack_require__(/*! ./ValidationErrorsFormatter */ "./src/options/ValidationErrorsFormatter.ts"); +const IsAllowedForObfuscationTargets_1 = __webpack_require__(/*! ./validators/IsAllowedForObfuscationTargets */ "./src/options/validators/IsAllowedForObfuscationTargets.ts"); +let Options = Options_1 = class Options { + constructor(inputOptions, optionsNormalizer) { + Object.assign(this, Default_1.DEFAULT_PRESET, inputOptions); + const errors = class_validator_1.validateSync(this, Options_1.validatorOptions); + if (errors.length) { + throw new ReferenceError(`Validation failed. errors:\n${ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)}`); + } + Object.assign(this, optionsNormalizer.normalize(this)); + } +}; +Options.validatorOptions = { + validationError: { + target: false + } +}; +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "compact", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "controlFlowFlattening", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.Min(0), + class_validator_1.Max(1), + __metadata("design:type", Number) +], Options.prototype, "controlFlowFlatteningThreshold", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "deadCodeInjection", void 0); +__decorate([ + class_validator_1.IsNumber(), + __metadata("design:type", Number) +], Options.prototype, "deadCodeInjectionThreshold", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "debugProtection", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "debugProtectionInterval", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "disableConsoleOutput", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + IsAllowedForObfuscationTargets_1.IsAllowedForObfuscationTargets([ + ObfuscationTarget_1.ObfuscationTarget.Browser, + ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, + ]), + __metadata("design:type", Array) +], Options.prototype, "domainLock", void 0); +__decorate([ + class_validator_1.IsIn([ + IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator + ]), + __metadata("design:type", typeof (_a = typeof tsenum_1.TypeFromEnum !== "undefined" && tsenum_1.TypeFromEnum) === "function" ? _a : Object) +], Options.prototype, "identifierNamesGenerator", void 0); +__decorate([ + class_validator_1.IsString(), + __metadata("design:type", String) +], Options.prototype, "identifiersPrefix", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + class_validator_1.ValidateIf((options) => options.identifierNamesGenerator === IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator), + class_validator_1.ArrayNotEmpty(), + __metadata("design:type", Array) +], Options.prototype, "identifiersDictionary", void 0); +__decorate([ + class_validator_1.IsString(), + __metadata("design:type", String) +], Options.prototype, "inputFileName", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "log", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "minify", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "renameGlobals", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "renameProperties", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + __metadata("design:type", Array) +], Options.prototype, "reservedNames", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + __metadata("design:type", Array) +], Options.prototype, "reservedStrings", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "rotateStringArray", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "selfDefending", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "shuffleStringArray", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "sourceMap", void 0); +__decorate([ + class_validator_1.IsString(), + class_validator_1.ValidateIf((options) => Boolean(options.sourceMapBaseUrl)), + class_validator_1.IsUrl({ + require_protocol: true, + require_tld: false, + require_valid_protocol: true + }), + __metadata("design:type", String) +], Options.prototype, "sourceMapBaseUrl", void 0); +__decorate([ + class_validator_1.IsString(), + __metadata("design:type", String) +], Options.prototype, "sourceMapFileName", void 0); +__decorate([ + class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]), + __metadata("design:type", typeof (_b = typeof tsenum_1.TypeFromEnum !== "undefined" && tsenum_1.TypeFromEnum) === "function" ? _b : Object) +], Options.prototype, "sourceMapMode", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "splitStrings", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.ValidateIf((options) => Boolean(options.splitStrings)), + class_validator_1.Min(1), + __metadata("design:type", Number) +], Options.prototype, "splitStringsChunkLength", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "stringArray", void 0); +__decorate([ + class_validator_1.IsIn([true, false, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4]), + __metadata("design:type", typeof (_c = typeof TStringArrayEncoding_1.TStringArrayEncoding !== "undefined" && TStringArrayEncoding_1.TStringArrayEncoding) === "function" ? _c : Object) +], Options.prototype, "stringArrayEncoding", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.Min(0), + class_validator_1.Max(1), + __metadata("design:type", Number) +], Options.prototype, "stringArrayThreshold", void 0); +__decorate([ + class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]), + __metadata("design:type", typeof (_d = typeof tsenum_1.TypeFromEnum !== "undefined" && tsenum_1.TypeFromEnum) === "function" ? _d : Object) +], Options.prototype, "target", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "transformObjectKeys", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "unicodeEscapeSequence", void 0); +Options = Options_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)), + __metadata("design:paramtypes", [typeof (_e = typeof TInputOptions_1.TInputOptions !== "undefined" && TInputOptions_1.TInputOptions) === "function" ? _e : Object, typeof (_f = typeof IOptionsNormalizer_1.IOptionsNormalizer !== "undefined" && IOptionsNormalizer_1.IOptionsNormalizer) === "function" ? _f : Object]) +], Options); +exports.Options = Options; + + +/***/ }), + +/***/ "./src/options/OptionsNormalizer.ts": +/*!******************************************!*\ + !*** ./src/options/OptionsNormalizer.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var OptionsNormalizer_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.OptionsNormalizer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ControlFlowFlatteningThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/ControlFlowFlatteningThresholdRule */ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts"); +const DeadCodeInjectionRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionRule */ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts"); +const DeadCodeInjectionThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionThresholdRule */ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts"); +const DomainLockRule_1 = __webpack_require__(/*! ./normalizer-rules/DomainLockRule */ "./src/options/normalizer-rules/DomainLockRule.ts"); +const InputFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/InputFileNameRule */ "./src/options/normalizer-rules/InputFileNameRule.ts"); +const SeedRule_1 = __webpack_require__(/*! ./normalizer-rules/SeedRule */ "./src/options/normalizer-rules/SeedRule.ts"); +const SelfDefendingRule_1 = __webpack_require__(/*! ./normalizer-rules/SelfDefendingRule */ "./src/options/normalizer-rules/SelfDefendingRule.ts"); +const SourceMapBaseUrlRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapBaseUrlRule */ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts"); +const SourceMapFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapFileNameRule */ "./src/options/normalizer-rules/SourceMapFileNameRule.ts"); +const SplitStringsChunkLengthRule_1 = __webpack_require__(/*! ./normalizer-rules/SplitStringsChunkLengthRule */ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts"); +const StringArrayRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayRule */ "./src/options/normalizer-rules/StringArrayRule.ts"); +const StringArrayEncodingRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayEncodingRule */ "./src/options/normalizer-rules/StringArrayEncodingRule.ts"); +const StringArrayThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayThresholdRule */ "./src/options/normalizer-rules/StringArrayThresholdRule.ts"); +let OptionsNormalizer = OptionsNormalizer_1 = class OptionsNormalizer { + normalize(options) { + let normalizedOptions = Object.assign({}, options); + for (const normalizerRule of OptionsNormalizer_1.normalizerRules) { + normalizedOptions = normalizerRule(normalizedOptions); + } + return normalizedOptions; + } +}; +OptionsNormalizer.normalizerRules = [ + ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule, + DeadCodeInjectionRule_1.DeadCodeInjectionRule, + DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule, + DomainLockRule_1.DomainLockRule, + InputFileNameRule_1.InputFileNameRule, + SeedRule_1.SeedRule, + SelfDefendingRule_1.SelfDefendingRule, + SourceMapBaseUrlRule_1.SourceMapBaseUrlRule, + SourceMapFileNameRule_1.SourceMapFileNameRule, + SplitStringsChunkLengthRule_1.SplitStringsChunkLengthRule, + StringArrayRule_1.StringArrayRule, + StringArrayEncodingRule_1.StringArrayEncodingRule, + StringArrayThresholdRule_1.StringArrayThresholdRule, +]; +OptionsNormalizer = OptionsNormalizer_1 = __decorate([ + inversify_1.injectable() +], OptionsNormalizer); +exports.OptionsNormalizer = OptionsNormalizer; + + +/***/ }), + +/***/ "./src/options/ValidationErrorsFormatter.ts": +/*!**************************************************!*\ + !*** ./src/options/ValidationErrorsFormatter.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ValidationErrorsFormatter = void 0; +class ValidationErrorsFormatter { + static format(errors) { + return errors + .reduce((errorMessages, error) => [ + ...errorMessages, + ValidationErrorsFormatter.formatWithNestedConstraints(error) + ], []) + .join('\n'); + } + static formatWithNestedConstraints(error) { + const constraints = error.constraints; + if (!constraints) { + return `\`${error.property}\` error\n`; + } + const rootError = `\`${error.property}\` errors:\n`; + const nestedErrors = Object + .keys(constraints) + .map((constraint) => ` - ${constraints[constraint]}\n`) + .join(); + return `${rootError}${nestedErrors}`; + } +} +exports.ValidationErrorsFormatter = ValidationErrorsFormatter; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts": +/*!****************************************************************************!*\ + !*** ./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowFlatteningThresholdRule = void 0; +exports.ControlFlowFlatteningThresholdRule = (options) => { + if (options.controlFlowFlatteningThreshold === 0) { + options = Object.assign(Object.assign({}, options), { controlFlowFlattening: false, controlFlowFlatteningThreshold: 0 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DeadCodeInjectionRule = void 0; +const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts"); +exports.DeadCodeInjectionRule = (options) => { + if (options.deadCodeInjection) { + options = Object.assign(Object.assign({}, options), { deadCodeInjection: true, stringArray: true }); + if (!options.stringArrayThreshold) { + options = Object.assign(Object.assign({}, options), { stringArray: true, stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold }); + } + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts": +/*!************************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DeadCodeInjectionThresholdRule = void 0; +exports.DeadCodeInjectionThresholdRule = (options) => { + if (options.deadCodeInjectionThreshold === 0) { + options = Object.assign(Object.assign({}, options), { deadCodeInjection: false, deadCodeInjectionThreshold: 0 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DomainLockRule.ts": +/*!********************************************************!*\ + !*** ./src/options/normalizer-rules/DomainLockRule.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DomainLockRule = void 0; +const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); +exports.DomainLockRule = (options) => { + if (options.domainLock.length) { + const normalizedDomains = []; + for (const domain of options.domainLock) { + normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain)); + } + options = Object.assign(Object.assign({}, options), { domainLock: normalizedDomains }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/InputFileNameRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/InputFileNameRule.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.InputFileNameRule = void 0; +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +exports.InputFileNameRule = (options) => { + let { inputFileName } = options; + if (inputFileName) { + inputFileName = inputFileName + .replace(/^\/+/, '') + .split(StringSeparator_1.StringSeparator.Dot) + .slice(0, -1) + .join(StringSeparator_1.StringSeparator.Dot) || inputFileName; + options = Object.assign(Object.assign({}, options), { inputFileName: `${inputFileName}.js` }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SeedRule.ts": +/*!**************************************************!*\ + !*** ./src/options/normalizer-rules/SeedRule.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SeedRule = void 0; +exports.SeedRule = (options) => { + if (options.seed) { + return Object.assign(Object.assign({}, options), { seed: options.seed }); + } + const getRandomInteger = (min, max) => { + return Math.floor(Math.random() * (max - min + 1) + min); + }; + return Object.assign(Object.assign({}, options), { seed: getRandomInteger(0, 999999999) }); +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SelfDefendingRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingRule = void 0; +exports.SelfDefendingRule = (options) => { + if (options.selfDefending) { + options = Object.assign(Object.assign({}, options), { compact: true, selfDefending: true }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts": +/*!**************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceMapBaseUrlRule = void 0; +exports.SourceMapBaseUrlRule = (options) => { + const { sourceMapBaseUrl } = options; + if (!options.sourceMapFileName) { + options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: '' }); + return options; + } + if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) { + options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: `${sourceMapBaseUrl}/` }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceMapFileNameRule = void 0; +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +exports.SourceMapFileNameRule = (options) => { + let { sourceMapFileName } = options; + if (sourceMapFileName) { + sourceMapFileName = sourceMapFileName + .replace(/^\/+/, '') + .replace(/(?:\.js)?(?:\.map)?$/, ''); + let sourceMapFileNameParts = sourceMapFileName.split(StringSeparator_1.StringSeparator.Dot); + const sourceMapFileNamePartsCount = sourceMapFileNameParts.length; + const lastPart = sourceMapFileNameParts[sourceMapFileNamePartsCount - 1]; + if (sourceMapFileNamePartsCount > 1 && lastPart.length <= 3) { + sourceMapFileNameParts = sourceMapFileNameParts.slice(0, -1); + } + sourceMapFileName = sourceMapFileNameParts.join(StringSeparator_1.StringSeparator.Dot); + options = Object.assign(Object.assign({}, options), { sourceMapFileName: `${sourceMapFileName}.js.map` }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts": +/*!*********************************************************************!*\ + !*** ./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SplitStringsChunkLengthRule = void 0; +exports.SplitStringsChunkLengthRule = (options) => { + if (options.splitStringsChunkLength === 0) { + options = Object.assign(Object.assign({}, options), { splitStrings: false, splitStringsChunkLength: 0 }); + } + else { + options = Object.assign(Object.assign({}, options), { splitStringsChunkLength: Math.floor(options.splitStringsChunkLength) }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts": +/*!*****************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayEncodingRule = void 0; +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +exports.StringArrayEncodingRule = (options) => { + if (options.stringArrayEncoding === true) { + options = Object.assign(Object.assign({}, options), { stringArrayEncoding: StringArrayEncoding_1.StringArrayEncoding.Base64 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayRule.ts": +/*!*********************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayRule.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayRule = void 0; +exports.StringArrayRule = (options) => { + if (!options.stringArray) { + options = Object.assign(Object.assign({}, options), { rotateStringArray: false, shuffleStringArray: false, stringArray: false, stringArrayEncoding: false, stringArrayThreshold: 0 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayThresholdRule.ts": +/*!******************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayThresholdRule.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayThresholdRule = void 0; +exports.StringArrayThresholdRule = (options) => { + if (options.stringArrayThreshold === 0) { + options = Object.assign(Object.assign({}, options), { rotateStringArray: false, stringArray: false, stringArrayEncoding: false, stringArrayThreshold: 0 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/presets/Default.ts": +/*!****************************************!*\ + !*** ./src/options/presets/Default.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DEFAULT_PRESET = void 0; +const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +exports.DEFAULT_PRESET = Object.freeze({ + compact: true, + config: '', + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0.75, + deadCodeInjection: false, + deadCodeInjectionThreshold: 0.4, + debugProtection: false, + debugProtectionInterval: false, + disableConsoleOutput: false, + domainLock: [], + exclude: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + identifiersDictionary: [], + inputFileName: '', + log: false, + minify: true, + renameGlobals: false, + renameProperties: false, + reservedNames: [], + reservedStrings: [], + rotateStringArray: true, + seed: 0, + selfDefending: false, + shuffleStringArray: true, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + splitStrings: false, + splitStringsChunkLength: 10, + stringArray: true, + stringArrayEncoding: false, + stringArrayThreshold: 0.75, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + + +/***/ }), + +/***/ "./src/options/presets/NoCustomNodes.ts": +/*!**********************************************!*\ + !*** ./src/options/presets/NoCustomNodes.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NO_ADDITIONAL_NODES_PRESET = void 0; +const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +exports.NO_ADDITIONAL_NODES_PRESET = Object.freeze({ + compact: true, + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0, + deadCodeInjection: false, + deadCodeInjectionThreshold: 0, + debugProtection: false, + debugProtectionInterval: false, + disableConsoleOutput: false, + domainLock: [], + exclude: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + identifiersDictionary: [], + inputFileName: '', + log: false, + minify: false, + renameGlobals: false, + renameProperties: false, + reservedNames: [], + reservedStrings: [], + rotateStringArray: false, + seed: 0, + selfDefending: false, + shuffleStringArray: false, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + splitStrings: false, + splitStringsChunkLength: 0, + stringArray: false, + stringArrayEncoding: false, + stringArrayThreshold: 0, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + + +/***/ }), + +/***/ "./src/options/validators/IsAllowedForObfuscationTargets.ts": +/*!******************************************************************!*\ + !*** ./src/options/validators/IsAllowedForObfuscationTargets.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IsAllowedForObfuscationTargets = void 0; +const class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator"); +const fast_deep_equal_1 = __importDefault(__webpack_require__(/*! fast-deep-equal */ "fast-deep-equal")); +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts"); +function IsAllowedForObfuscationTargets(obfuscationTargets, validationOptions) { + return (optionsObject, propertyName) => { + class_validator_1.registerDecorator({ + propertyName, + constraints: [obfuscationTargets], + name: 'IsAllowedForObfuscationTargets', + options: validationOptions, + target: optionsObject.constructor, + validator: { + validate(value, validationArguments) { + const options = validationArguments.object; + const defaultValue = Default_1.DEFAULT_PRESET[propertyName]; + const isDefaultValue = fast_deep_equal_1.default(value, defaultValue); + return isDefaultValue || obfuscationTargets.includes(options.target); + }, + defaultMessage(validationArguments) { + const requiredObfuscationTargetsString = obfuscationTargets.join(`${StringSeparator_1.StringSeparator.Comma} `); + return `This option allowed only for obfuscation targets: ${requiredObfuscationTargetsString}`; + } + } + }); + }; +} +exports.IsAllowedForObfuscationTargets = IsAllowedForObfuscationTargets; + + +/***/ }), + +/***/ "./src/source-code/ObfuscatedCode.ts": +/*!*******************************************!*\ + !*** ./src/source-code/ObfuscatedCode.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscatedCode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ICryptUtils_1 = __webpack_require__(/*! ../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts"); +const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +let ObfuscatedCode = class ObfuscatedCode { + constructor(cryptUtils, options) { + this.cryptUtils = cryptUtils; + this.options = options; + } + initialize(obfuscatedCode, sourceMap) { + this.obfuscatedCode = obfuscatedCode; + this.sourceMap = sourceMap; + } + getObfuscatedCode() { + return this.correctObfuscatedCode(); + } + getSourceMap() { + return this.sourceMap; + } + toString() { + return this.obfuscatedCode; + } + correctObfuscatedCode() { + if (!this.sourceMap) { + return this.obfuscatedCode; + } + const sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName; + let sourceMappingUrl = '//# sourceMappingURL='; + switch (this.options.sourceMapMode) { + case SourceMapMode_1.SourceMapMode.Inline: + sourceMappingUrl += `data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`; + break; + case SourceMapMode_1.SourceMapMode.Separate: + default: + if (!sourceMapUrl) { + return this.obfuscatedCode; + } + sourceMappingUrl += sourceMapUrl; + } + return `${this.obfuscatedCode}\n${sourceMappingUrl}`; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ObfuscatedCode.prototype, "obfuscatedCode", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ObfuscatedCode.prototype, "sourceMap", void 0); +ObfuscatedCode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], ObfuscatedCode); +exports.ObfuscatedCode = ObfuscatedCode; + + +/***/ }), + +/***/ "./src/source-code/SourceCode.ts": +/*!***************************************!*\ + !*** ./src/source-code/SourceCode.ts ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceCode = void 0; +class SourceCode { + constructor(sourceCode, sourceMap) { + this.sourceCode = sourceCode; + this.sourceMap = sourceMap; + } + getSourceCode() { + return this.sourceCode; + } + getSourceMap() { + return this.sourceMap; + } + toString() { + return this.sourceCode; + } +} +exports.SourceCode = SourceCode; + + +/***/ }), + +/***/ "./src/storages/MapStorage.ts": +/*!************************************!*\ + !*** ./src/storages/MapStorage.ts ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MapStorage = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); +let MapStorage = class MapStorage { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } + initialize() { + this.storage = new Map(); + this.storageId = this.randomGenerator.getRandomString(6); + } + get(key) { + return this.storage.get(key); + } + getOrThrow(key) { + const value = this.get(key); + if (!value) { + throw new Error(`No value found in map storage with key \`${key}\``); + } + return value; + } + getKeyOf(value) { + for (const [key, storageValue] of this.storage) { + if (value === storageValue) { + return key; + } + } + return null; + } + getLength() { + return this.storage.size; + } + getStorage() { + return this.storage; + } + getStorageId() { + return this.storageId; + } + has(key) { + return this.storage.has(key); + } + mergeWith(storage, mergeId = false) { + this.storage = new Map([...this.storage, ...storage.getStorage()]); + if (mergeId) { + this.storageId = storage.getStorageId(); + } + } + set(key, value) { + this.storage.set(key, value); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], MapStorage.prototype, "storageId", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], MapStorage.prototype, "storage", void 0); +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], MapStorage.prototype, "initialize", null); +MapStorage = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], MapStorage); +exports.MapStorage = MapStorage; + + +/***/ }), + +/***/ "./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts": +/*!**************************************************************************!*\ + !*** ./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var CustomCodeHelperGroupStorage_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelperGroupStorage = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperGroupFactory_1 = __webpack_require__(/*! ../../types/container/custom-code-helpers/TCustomCodeHelperGroupFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const CustomCodeHelperGroup_1 = __webpack_require__(/*! ../../enums/custom-code-helpers/CustomCodeHelperGroup */ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts"); +const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); +let CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = class CustomCodeHelperGroupStorage extends MapStorage_1.MapStorage { + constructor(customCodeHelperGroupFactory, randomGenerator, options) { + super(randomGenerator, options); + this.customCodeHelperGroupFactory = customCodeHelperGroupFactory; + } + initialize() { + super.initialize(); + CustomCodeHelperGroupStorage_1.customCodeHelperGroupsList.forEach((customCodeHelperGroupName) => { + const customCodeHelperGroup = this.customCodeHelperGroupFactory(customCodeHelperGroupName); + this.storage.set(customCodeHelperGroupName, customCodeHelperGroup); + }); + } +}; +CustomCodeHelperGroupStorage.customCodeHelperGroupsList = [ + CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput, + CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection, + CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock, + CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending, + CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray +]; +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], CustomCodeHelperGroupStorage.prototype, "initialize", null); +CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory !== "undefined" && TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], CustomCodeHelperGroupStorage); +exports.CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage; + + +/***/ }), + +/***/ "./src/storages/custom-nodes/ControlFlowStorage.ts": +/*!*********************************************************!*\ + !*** ./src/storages/custom-nodes/ControlFlowStorage.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowStorage = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); +let ControlFlowStorage = class ControlFlowStorage extends MapStorage_1.MapStorage { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } +}; +ControlFlowStorage = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], ControlFlowStorage); +exports.ControlFlowStorage = ControlFlowStorage; + + +/***/ }), + +/***/ "./src/storages/string-array/StringArrayStorage.ts": +/*!*********************************************************!*\ + !*** ./src/storages/string-array/StringArrayStorage.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var StringArrayStorage_1, _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayStorage = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +const ICryptUtils_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts"); +const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); +let StringArrayStorage = StringArrayStorage_1 = class StringArrayStorage extends MapStorage_1.MapStorage { + constructor(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options, cryptUtils, escapeSequenceEncoder) { + super(randomGenerator, options); + this.rc4EncodedValuesSourcesCache = new Map(); + this.rotationAmount = 0; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.arrayUtils = arrayUtils; + this.cryptUtils = cryptUtils; + this.escapeSequenceEncoder = escapeSequenceEncoder; + this.rc4Keys = this.randomGenerator.getRandomGenerator() + .n(() => this.randomGenerator.getRandomGenerator().string({ + length: StringArrayStorage_1.rc4KeyLength + }), StringArrayStorage_1.rc4KeysCount); + } + initialize() { + super.initialize(); + this.rotationAmount = this.options.rotateStringArray + ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumRotationAmount, StringArrayStorage_1.maximumRotationAmount) + : 0; + } + get(value) { + return this.getOrSetIfDoesNotExist(value); + } + getRotationAmount() { + return this.rotationAmount; + } + getStorageName() { + return this.getStorageId(); + } + getStorageId() { + if (!this.stringArrayStorageName) { + this.stringArrayStorageName = this.identifierNamesGenerator + .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength); + } + return this.stringArrayStorageName; + } + getStorageCallsWrapperName() { + if (!this.stringArrayStorageCallsWrapperName) { + this.stringArrayStorageCallsWrapperName = this.identifierNamesGenerator + .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength); + } + return this.stringArrayStorageCallsWrapperName; + } + rotateStorage() { + if (!this.getLength()) { + return; + } + this.storage = new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()), this.rotationAmount)); + } + shuffleStorage() { + this.storage = new Map(this.arrayUtils + .shuffle(Array.from(this.storage.entries())) + .map(([value, stringArrayStorageItemData], index) => { + stringArrayStorageItemData.index = index; + return [value, stringArrayStorageItemData]; + }) + .sort(([, stringArrayStorageItemDataA], [, stringArrayStorageItemDataB]) => stringArrayStorageItemDataA.index - stringArrayStorageItemDataB.index)); + } + toString() { + return Array + .from(this.storage.values()) + .map((stringArrayStorageItemData) => { + return `'${this.escapeSequenceEncoder.encode(stringArrayStorageItemData.encodedValue, this.options.unicodeEscapeSequence)}'`; + }).toString(); + } + getOrSetIfDoesNotExist(value) { + const { encodedValue, decodeKey } = this.getEncodedValue(value); + const storedStringArrayStorageItemData = this.storage.get(encodedValue); + if (storedStringArrayStorageItemData) { + return storedStringArrayStorageItemData; + } + const stringArrayStorageItemData = { + encodedValue, + decodeKey, + value, + index: this.getLength() + }; + this.storage.set(encodedValue, stringArrayStorageItemData); + return stringArrayStorageItemData; + } + getEncodedValue(value) { + var _a; + switch (this.options.stringArrayEncoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: { + const decodeKey = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys); + const encodedValue = this.cryptUtils.btoa(this.cryptUtils.rc4(value, decodeKey)); + const encodedValueSources = (_a = this.rc4EncodedValuesSourcesCache.get(encodedValue)) !== null && _a !== void 0 ? _a : []; + let encodedValueSourcesLength = encodedValueSources.length; + const shouldAddValueToSourcesCache = !encodedValueSourcesLength || !encodedValueSources.includes(value); + if (shouldAddValueToSourcesCache) { + encodedValueSources.push(value); + encodedValueSourcesLength++; + } + this.rc4EncodedValuesSourcesCache.set(encodedValue, encodedValueSources); + if (encodedValueSourcesLength > 1) { + return this.getEncodedValue(value); + } + return { encodedValue, decodeKey }; + } + case StringArrayEncoding_1.StringArrayEncoding.Base64: { + const decodeKey = null; + const encodedValue = this.cryptUtils.btoa(value); + return { encodedValue, decodeKey }; + } + default: { + const decodeKey = null; + const encodedValue = value; + return { encodedValue, decodeKey }; + } + } + } +}; +StringArrayStorage.minimumRotationAmount = 100; +StringArrayStorage.maximumRotationAmount = 500; +StringArrayStorage.rc4KeyLength = 4; +StringArrayStorage.rc4KeysCount = 50; +StringArrayStorage.stringArrayNameLength = 4; +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], StringArrayStorage.prototype, "initialize", null); +StringArrayStorage = StringArrayStorage_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object, typeof (_e = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object]) +], StringArrayStorage); +exports.StringArrayStorage = StringArrayStorage; + + +/***/ }), + +/***/ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts": +/*!*********************************************************************************!*\ + !*** ./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/code-transformers/TCodeTransformerFactory.ts": +/*!**************************************************************************!*\ + !*** ./src/types/container/code-transformers/TCodeTransformerFactory.ts ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts": +/*!*****************************************************************************!*\ + !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts": +/*!**********************************************************************************!*\ + !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts": +/*!*********************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts": +/*!***********************************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts ***! + \***********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts": +/*!****************************************************************************!*\ + !*** ./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts": +/*!******************************************************************************!*\ + !*** ./src/types/container/node-transformers/TControlFlowReplacerFactory.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts": +/*!*****************************************************************************!*\ + !*** ./src/types/container/node-transformers/TControlFlowStorageFactory.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts": +/*!****************************************************************************************!*\ + !*** ./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TLiteralObfuscatingReplacerFactory.ts": +/*!*************************************************************************************!*\ + !*** ./src/types/container/node-transformers/TLiteralObfuscatingReplacerFactory.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TNodeTransformerFactory.ts": +/*!**************************************************************************!*\ + !*** ./src/types/container/node-transformers/TNodeTransformerFactory.ts ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/node-transformers/TObfuscatingGuardFactory.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts": +/*!************************************************************************************!*\ + !*** ./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/source-code/TObfuscatedCodeFactory.ts": +/*!*******************************************************************!*\ + !*** ./src/types/container/source-code/TObfuscatedCodeFactory.ts ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/options/TInputCLIOptions.ts": +/*!***********************************************!*\ + !*** ./src/types/options/TInputCLIOptions.ts ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/options/TInputOptions.ts": +/*!********************************************!*\ + !*** ./src/types/options/TInputOptions.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/options/TStringArrayEncoding.ts": +/*!***************************************************!*\ + !*** ./src/types/options/TStringArrayEncoding.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/storages/TControlFlowStorage.ts": +/*!***************************************************!*\ + !*** ./src/types/storages/TControlFlowStorage.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/storages/TCustomCodeHelperGroupStorage.ts": +/*!*************************************************************!*\ + !*** ./src/types/storages/TCustomCodeHelperGroupStorage.ts ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts": +/*!************************************************************!*\ + !*** ./src/utils/AbstractTransformerNamesGroupsBuilder.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractTransformerNamesGroupsBuilder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ILevelledTopologicalSorter_1 = __webpack_require__(/*! ../interfaces/utils/ILevelledTopologicalSorter */ "./src/interfaces/utils/ILevelledTopologicalSorter.ts"); +let AbstractTransformerNamesGroupsBuilder = class AbstractTransformerNamesGroupsBuilder { + constructor(levelledTopologicalSorter) { + this.levelledTopologicalSorter = levelledTopologicalSorter; + } + build(normalizedTransformers) { + const transformerNames = Object.keys(normalizedTransformers); + const relationEdges = this.buildTransformersRelationEdges(transformerNames, normalizedTransformers); + for (const [precedent, consequent] of relationEdges) { + this.levelledTopologicalSorter.add(precedent, consequent); + } + return this.levelledTopologicalSorter.sortByGroups(); + } + buildTransformersRelationEdges(transformerNames, normalizedTransformers) { + const relationEdges = []; + for (const transformerName of transformerNames) { + const transformer = normalizedTransformers[transformerName]; + const runAfterRelations = transformer.runAfter; + if (!runAfterRelations || !runAfterRelations.length) { + relationEdges.push([transformerName, null]); + continue; + } + for (const runAfterRelation of runAfterRelations) { + const isUnknownRelation = normalizedTransformers[runAfterRelation] === undefined; + if (isUnknownRelation) { + relationEdges.push([transformerName, null]); + continue; + } + relationEdges.push([runAfterRelation, transformerName]); + } + } + return relationEdges; + } +}; +AbstractTransformerNamesGroupsBuilder = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)), + __metadata("design:paramtypes", [typeof (_a = typeof ILevelledTopologicalSorter_1.ILevelledTopologicalSorter !== "undefined" && ILevelledTopologicalSorter_1.ILevelledTopologicalSorter) === "function" ? _a : Object]) +], AbstractTransformerNamesGroupsBuilder); +exports.AbstractTransformerNamesGroupsBuilder = AbstractTransformerNamesGroupsBuilder; + + +/***/ }), + +/***/ "./src/utils/ArrayUtils.ts": +/*!*********************************!*\ + !*** ./src/utils/ArrayUtils.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ArrayUtils = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let ArrayUtils = class ArrayUtils { + constructor(randomGenerator) { + this.randomGenerator = randomGenerator; + } + createWithRange(length) { + const range = []; + for (let i = 0; i < length; i++) { + range.push(i); + } + return range; + } + findMostOccurringElement(array) { + var _a; + const arrayLength = array.length; + if (!arrayLength) { + return null; + } + const elementsMap = {}; + let mostOccurringElement = array[0]; + let mostOccurringElementCount = 1; + for (const element of array) { + const currentElementCount = (_a = elementsMap[element]) !== null && _a !== void 0 ? _a : 0; + const updatedElementCount = currentElementCount + 1; + if (updatedElementCount > mostOccurringElementCount) { + mostOccurringElement = element; + mostOccurringElementCount = updatedElementCount; + } + elementsMap[element] = updatedElementCount; + } + return mostOccurringElement; + } + rotate(array, times) { + if (!array.length) { + throw new ReferenceError('Cannot rotate empty array.'); + } + if (times <= 0) { + return array; + } + const newArray = array; + let temp; + while (times--) { + temp = newArray.pop(); + if (temp) { + newArray.unshift(temp); + } + } + return newArray; + } + shuffle(array) { + const shuffledArray = [...array]; + for (let i = shuffledArray.length; i; i--) { + const j = Math.floor(this.randomGenerator.getMathRandom() * i); + [shuffledArray[i - 1], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i - 1]]; + } + return shuffledArray; + } +}; +ArrayUtils = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object]) +], ArrayUtils); +exports.ArrayUtils = ArrayUtils; + + +/***/ }), + +/***/ "./src/utils/CryptUtils.ts": +/*!*********************************!*\ + !*** ./src/utils/CryptUtils.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CryptUtils = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AlphabetStringUppercase_1 = __webpack_require__(/*! ../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AlphabetString_1 = __webpack_require__(/*! ../constants/AlphabetString */ "./src/constants/AlphabetString.ts"); +const NumbersString_1 = __webpack_require__(/*! ../constants/NumbersString */ "./src/constants/NumbersString.ts"); +const RandomGenerator_1 = __webpack_require__(/*! ./RandomGenerator */ "./src/utils/RandomGenerator.ts"); +const Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts"); +let CryptUtils = class CryptUtils { + constructor(randomGenerator) { + this.randomGenerator = randomGenerator; + } + btoa(string) { + const chars = `${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/=`; + let output = ''; + string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, (match, p1) => { + return String.fromCharCode(parseInt(`${Utils_1.Utils.hexadecimalPrefix}${p1}`, 16)); + }); + for (let block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) { + charCode = string.charCodeAt(idx += 3 / 4); + if (charCode > 0xFF) { + throw new Error('\'btoa\' failed: The string to be encoded contains characters outside of the Latin1 range.'); + } + block = block << 8 | charCode; + } + return output; + } + hideString(str, length) { + const escapeRegExp = (s) => s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + const randomMerge = (s1, s2) => { + let i1 = -1; + let i2 = -1; + let result = ''; + while (i1 < s1.length || i2 < s2.length) { + if (this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) { + result += s2.charAt(++i2); + } + else { + result += s1.charAt(++i1); + } + } + return result; + }; + const randomString = this.randomGenerator.getRandomGenerator().string({ + length: length, + pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool + }); + let randomStringDiff = randomString.replace(new RegExp(`[${escapeRegExp(str)}]`, 'g'), ''); + const randomStringDiffArray = randomStringDiff.split(''); + this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray); + randomStringDiff = randomStringDiffArray.join(''); + return [randomMerge(str, randomStringDiff), randomStringDiff]; + } + rc4(string, key) { + const s = []; + let j = 0; + let x; + let result = ''; + for (var i = 0; i < 256; i++) { + s[i] = i; + } + for (i = 0; i < 256; i++) { + j = (j + s[i] + key.charCodeAt(i % key.length)) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + } + i = 0; + j = 0; + for (let y = 0; y < string.length; y++) { + i = (i + 1) % 256; + j = (j + s[i]) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]); + } + return result; + } +}; +CryptUtils = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object]) +], CryptUtils); +exports.CryptUtils = CryptUtils; + + +/***/ }), + +/***/ "./src/utils/EscapeSequenceEncoder.ts": +/*!********************************************!*\ + !*** ./src/utils/EscapeSequenceEncoder.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EscapeSequenceEncoder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +let EscapeSequenceEncoder = class EscapeSequenceEncoder { + constructor() { + this.stringsCache = new Map(); + } + encode(string, encodeAllSymbols) { + const cacheKey = `${string}-${String(encodeAllSymbols)}`; + if (this.stringsCache.has(cacheKey)) { + return this.stringsCache.get(cacheKey); + } + const radix = 16; + const replaceRegExp = new RegExp('[\\s\\S]', 'g'); + const escapeSequenceRegExp = new RegExp('[\'\"\\\\\\s]'); + const regExp = new RegExp('[\\x00-\\x7F]'); + let prefix; + let template; + const result = string.replace(replaceRegExp, (character) => { + if (!encodeAllSymbols && !escapeSequenceRegExp.exec(character)) { + return character; + } + if (regExp.exec(character)) { + prefix = '\\x'; + template = '00'; + } + else { + prefix = '\\u'; + template = '0000'; + } + return `${prefix}${(template + character.charCodeAt(0).toString(radix)).slice(-template.length)}`; + }); + this.stringsCache.set(cacheKey, result); + this.stringsCache.set(`${result}-${String(encodeAllSymbols)}`, result); + return result; + } +}; +EscapeSequenceEncoder = __decorate([ + inversify_1.injectable() +], EscapeSequenceEncoder); +exports.EscapeSequenceEncoder = EscapeSequenceEncoder; + + +/***/ }), + +/***/ "./src/utils/LevelledTopologicalSorter.ts": +/*!************************************************!*\ + !*** ./src/utils/LevelledTopologicalSorter.ts ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LevelledTopologicalSorter = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +let LevelledTopologicalSorter = class LevelledTopologicalSorter { + constructor() { + this.graph = new Map(); + } + add(precedent, consequent = null) { + if (consequent !== null) { + return this.link(precedent, consequent); + } + return this.register(precedent); + } + sort() { + const consequents = Array.from(this.graph.keys()); + const results = []; + const marks = {}; + for (const consequent of consequents) { + if (marks[consequent] !== undefined) { + continue; + } + this.visit(results, marks, consequent); + } + return results; + } + sortByGroups() { + this.sort(); + const resultItemsGroups = []; + while (this.hasNodes()) { + const rootNodes = this.findRootNodes(); + resultItemsGroups.push(rootNodes); + for (const rootNode of rootNodes) { + this.delete(rootNode); + } + } + return resultItemsGroups; + } + delete(consequent) { + const precedents = this.getPrecedents(consequent); + if (precedents.length) { + throw new Error(`Unable to remove non-root node: ${consequent}`); + } + this.graph.delete(consequent); + const precedentsGroups = Array.from(this.graph.values()); + for (const precedentsGroup of precedentsGroups) { + const precedentsCount = precedentsGroup.length - 1; + for (let index = precedentsCount; index >= 0; index = index - 1) { + if (precedentsGroup[index] !== consequent) { + continue; + } + precedentsGroup.splice(index, 1); + } + } + } + findRootNodes() { + const consequents = Array.from(this.graph.keys()); + const rootNodes = []; + for (const consequent of consequents) { + if (!this.hasPrecedents(consequent)) { + rootNodes.push(consequent); + } + } + return rootNodes; + } + getPrecedents(consequent) { + const precedents = this.graph.get(consequent); + if (!precedents) { + throw new Error(`Unknown node: ${consequent}`); + } + return precedents; + } + hasNodes() { + return this.graph.size > 0; + } + hasPrecedents(consequent) { + return this.getPrecedents(consequent).length > 0; + } + link(precedent, consequent) { + this.register(precedent); + this.register(consequent); + const target = this.graph.get(consequent); + if (target && !target.includes(precedent)) { + target.push(precedent); + } + return this; + } + register(name) { + if (!this.graph.has(name)) { + this.graph.set(name, []); + } + return this; + } + visit(results, marks, name) { + const mark = marks[name]; + if (mark === 'visiting') { + throw new Error(`Detected cycle involving node: ${name}`); + } + if (mark) { + return; + } + marks[name] = 'visiting'; + const precedents = this.getPrecedents(name); + for (const precedent of precedents) { + this.visit(results, marks, precedent); + } + marks[name] = 'ok'; + results.push(name); + return; + } +}; +LevelledTopologicalSorter = __decorate([ + inversify_1.injectable() +], LevelledTopologicalSorter); +exports.LevelledTopologicalSorter = LevelledTopologicalSorter; + + +/***/ }), + +/***/ "./src/utils/NumberUtils.ts": +/*!**********************************!*\ + !*** ./src/utils/NumberUtils.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NumberUtils = void 0; +const Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts"); +class NumberUtils { + static toHex(number) { + const radix = 16; + const basePart = typeof number === 'number' + ? number.toString(radix) + : `${number.toString(radix)}n`; + return `${Utils_1.Utils.hexadecimalPrefix}${basePart}`; + } + static isCeil(number) { + return typeof number === 'number' + ? number % 1 === 0 + : true; + } +} +exports.NumberUtils = NumberUtils; + + +/***/ }), + +/***/ "./src/utils/RandomGenerator.ts": +/*!**************************************!*\ + !*** ./src/utils/RandomGenerator.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var RandomGenerator_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RandomGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const md5_1 = __importDefault(__webpack_require__(/*! md5 */ "md5")); +const chance_1 = __webpack_require__(/*! chance */ "chance"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ISourceCode_1 = __webpack_require__(/*! ../interfaces/source-code/ISourceCode */ "./src/interfaces/source-code/ISourceCode.ts"); +const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AlphabetString_1 = __webpack_require__(/*! ../constants/AlphabetString */ "./src/constants/AlphabetString.ts"); +const AlphabetStringUppercase_1 = __webpack_require__(/*! ../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +let RandomGenerator = RandomGenerator_1 = class RandomGenerator { + constructor(sourceCode, options) { + this.sourceCode = sourceCode; + this.options = options; + } + initialize() { + this.randomGenerator = new chance_1.Chance(this.getRawSeed()); + } + getMathRandom() { + return this.getRandomInteger(0, 99999) / 100000; + } + getRandomGenerator() { + return this.randomGenerator; + } + getRandomInteger(min, max) { + return this.getRandomGenerator().integer({ + min: min, + max: max + }); + } + getRandomString(length, pool = RandomGenerator_1.randomGeneratorPool) { + return this.getRandomGenerator().string({ length, pool }); + } + getInputSeed() { + return this.options.seed.toString(); + } + getRawSeed() { + const inputSeed = this.getInputSeed(); + const inputSeedParts = `${inputSeed}`.split('|'); + if (inputSeedParts.length > 1) { + return inputSeed; + } + const sourceCodeMD5Hash = md5_1.default(this.sourceCode.getSourceCode()); + return `${inputSeed}|${sourceCodeMD5Hash}`; + } +}; +RandomGenerator.randomGeneratorPool = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof chance_1.Chance !== "undefined" && chance_1.Chance.Chance) === "function" ? _a : Object) +], RandomGenerator.prototype, "randomGenerator", void 0); +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], RandomGenerator.prototype, "initialize", null); +RandomGenerator = RandomGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof ISourceCode_1.ISourceCode !== "undefined" && ISourceCode_1.ISourceCode) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], RandomGenerator); +exports.RandomGenerator = RandomGenerator; + + +/***/ }), + +/***/ "./src/utils/Utils.ts": +/*!****************************!*\ + !*** ./src/utils/Utils.ts ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Utils = void 0; +class Utils { + static buildVersionMessage(version, buildTimestamp) { + if (!version || !buildTimestamp) { + return 'unknown'; + } + const buildDate = new Date(parseInt(buildTimestamp, 10)).toISOString(); + return `${version}_${buildDate}`; + } + static extractDomainFrom(url) { + let domain; + if (url.includes('://') || url.indexOf('//') === 0) { + domain = url.split('/')[2]; + } + else { + domain = url.split('/')[0]; + } + domain = domain.split(':')[0]; + return domain; + } + static getIdentifiersPrefixForMultipleSources(identifiersPrefix, sourceCodeIndex) { + const baseIdentifiersPrefix = !!identifiersPrefix + ? identifiersPrefix + : Utils.baseMultipleSourcesIdentifiersPrefix; + return `${baseIdentifiersPrefix}${sourceCodeIndex}`; + } +} +exports.Utils = Utils; +Utils.baseMultipleSourcesIdentifiersPrefix = 'a'; +Utils.hexadecimalPrefix = '0x'; + + +/***/ }), + +/***/ "@gradecam/tsenum": +/*!***********************************!*\ + !*** external "@gradecam/tsenum" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@gradecam/tsenum"); + +/***/ }), + +/***/ "acorn": +/*!************************!*\ + !*** external "acorn" ***! + \************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("acorn"); + +/***/ }), + +/***/ "chalk": +/*!************************!*\ + !*** external "chalk" ***! + \************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("chalk"); + +/***/ }), + +/***/ "chance": +/*!*************************!*\ + !*** external "chance" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("chance"); + +/***/ }), + +/***/ "class-validator": +/*!**********************************!*\ + !*** external "class-validator" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("class-validator"); + +/***/ }), + +/***/ "commander": +/*!****************************!*\ + !*** external "commander" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("commander"); + +/***/ }), + +/***/ "escodegen": +/*!****************************!*\ + !*** external "escodegen" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("escodegen"); + +/***/ }), + +/***/ "eslint-scope": +/*!*******************************!*\ + !*** external "eslint-scope" ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("eslint-scope"); + +/***/ }), + +/***/ "estraverse": +/*!*****************************!*\ + !*** external "estraverse" ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("estraverse"); + +/***/ }), + +/***/ "eventemitter3": +/*!********************************!*\ + !*** external "eventemitter3" ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("eventemitter3"); + +/***/ }), + +/***/ "fast-deep-equal": +/*!**********************************!*\ + !*** external "fast-deep-equal" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("fast-deep-equal"); + +/***/ }), + +/***/ "fs": +/*!*********************!*\ + !*** external "fs" ***! + \*********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("fs"); + +/***/ }), + +/***/ "inversify": +/*!****************************!*\ + !*** external "inversify" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("inversify"); + +/***/ }), + +/***/ "js-string-escape": +/*!***********************************!*\ + !*** external "js-string-escape" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("js-string-escape"); + +/***/ }), + +/***/ "md5": +/*!**********************!*\ + !*** external "md5" ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("md5"); + +/***/ }), + +/***/ "mkdirp": +/*!*************************!*\ + !*** external "mkdirp" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("mkdirp"); + +/***/ }), + +/***/ "multimatch": +/*!*****************************!*\ + !*** external "multimatch" ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("multimatch"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("path"); + +/***/ }), + +/***/ "reflect-metadata": +/*!***********************************!*\ + !*** external "reflect-metadata" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("reflect-metadata"); + +/***/ }), + +/***/ "string-template": +/*!**********************************!*\ + !*** external "string-template" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("string-template"); + +/***/ }) + +/******/ }); //# sourceMappingURL=index.cli.js.map \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index a6bdf000..05a24cbe 100644 --- a/dist/index.js +++ b/dist/index.js @@ -21,5 +21,15124 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -require("source-map-support").install(),module.exports=function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=269)}([function(e,t){e.exports=require("inversify")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceIdentifiers=void 0,function(e){e.Factory__ICalleeDataExtractor="Factory",e.Factory__ICodeTransformer="Factory",e.Factory__IControlFlowCustomNode="Factory",e.Factory__IControlFlowReplacer="Factory",e.Factory__ICustomCodeHelper="Factory",e.Factory__ICustomCodeHelperGroup="Factory",e.Factory__IDeadCodeInjectionCustomNode="Factory",e.Factory__IIdentifierNamesGenerator="Factory",e.Factory__IIdentifierObfuscatingReplacer="Factory",e.Factory__INodeGuard="Factory",e.Factory__INodeTransformer="Factory",e.Factory__IObfuscatedCode="Factory",e.Factory__IObfuscatingReplacer="Factory",e.Factory__IObjectExpressionKeysTransformerCustomNode="Factory",e.Factory__IObjectExpressionExtractor="Factory",e.Factory__TControlFlowStorage="Factory",e.IArrayUtils="IArrayUtils",e.ICalleeDataExtractor="ICalleeDataExtractor",e.ICallsGraphAnalyzer="ICallsGraphAnalyzer",e.ICodeTransformer="ICodeTransformer",e.ICodeTransformerNamesGroupsBuilder="ICodeTransformerNamesGroupsBuilder",e.ICodeTransformersRunner="ICodeTransformersRunner",e.ICryptUtils="ICryptUtils",e.ICustomCodeHelper="ICustomCodeHelper",e.ICustomCodeHelperGroup="ICustomCodeHelperGroup",e.IControlFlowReplacer="IControlFlowReplacer",e.ICustomCodeHelperFormatter="ICustomCodeHelperFormatter",e.ICustomCodeHelperObfuscator="ICustomCodeHelperObfuscator",e.IEscapeSequenceEncoder="IEscapeSequenceEncoder",e.IIdentifierNamesGenerator="IIdentifierNamesGenerator",e.IIdentifierObfuscatingReplacer="IIdentifierObfuscatingReplacer",e.IJavaScriptObfuscator="IJavaScriptObfuscator",e.ILevelledTopologicalSorter="ILevelledTopologicalSorter",e.ILogger="ILogger",e.INodeGuard="INodeGuard",e.INodeTransformer="INodeTransformer",e.INodeTransformerNamesGroupsBuilder="INodeTransformerNamesGroupsBuilder",e.IObfuscationEventEmitter="IObfuscationEventEmitter",e.IObfuscatedCode="IObfuscatedCode",e.IOptions="IOptions",e.IOptionsNormalizer="IOptionsNormalizer",e.IObfuscatingReplacer="IObfuscatingReplacer",e.IPrevailingKindOfVariablesAnalyzer="IPrevailingKindOfVariablesAnalyzer",e.IObjectExpressionExtractor="IObjectExpressionExtractor",e.IRandomGenerator="IRandomGenerator",e.IRenamePropertiesReplacer="IRenamePropertiesReplacer",e.IScopeIdentifiersTraverser="IScopeIdentifiersTraverser",e.ISourceCode="ISourceCode",e.IScopeAnalyzer="IScopeAnalyzer",e.IStringArrayStorage="IStringArrayStorage",e.IStringArrayStorageAnalyzer="IStringArrayStorageAnalyzer",e.INodeTransformersRunner="INodeTransformersRunner",e.Newable__ICustomNode="Newable",e.Newable__TControlFlowStorage="Newable",e.TCustomNodeGroupStorage="TCustomNodeGroupStorage",e.TInputOptions="TInputOptions"}(t.ServiceIdentifiers||(t.ServiceIdentifiers={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeGuards=void 0;const o=r(35);class n{static isArrayPatternNode(e){return e.type===o.NodeType.ArrayPattern}static isArrowFunctionExpressionNode(e){return e.type===o.NodeType.ArrowFunctionExpression}static isAssignmentExpressionNode(e){return e.type===o.NodeType.AssignmentExpression}static isAssignmentPatternNode(e){return e.type===o.NodeType.AssignmentPattern}static isAwaitExpressionNode(e){return e.type===o.NodeType.AwaitExpression}static isBigIntLiteralNode(e){return n.isLiteralNode(e)&&!!e.bigint}static isBlockStatementNode(e){return e.type===o.NodeType.BlockStatement}static isBreakStatementNode(e){return e.type===o.NodeType.BreakStatement}static isCallExpressionNode(e){return e.type===o.NodeType.CallExpression}static isClassDeclarationNode(e){return e.type===o.NodeType.ClassDeclaration&&null!==e.id}static isContinueStatementNode(e){return e.type===o.NodeType.ContinueStatement}static isDirectiveNode(e){return e.type===o.NodeType.ExpressionStatement&&"directive"in e}static isExportNamedDeclarationNode(e){return e.type===o.NodeType.ExportNamedDeclaration}static isExpressionStatementNode(e){return e.type===o.NodeType.ExpressionStatement&&!("directive"in e)}static isFunctionNode(e){return n.isFunctionDeclarationNode(e)||n.isFunctionExpressionNode(e)||n.isArrowFunctionExpressionNode(e)}static isFunctionDeclarationNode(e){return e.type===o.NodeType.FunctionDeclaration&&null!==e.id}static isFunctionExpressionNode(e){return e.type===o.NodeType.FunctionExpression}static isIdentifierNode(e){return e.type===o.NodeType.Identifier}static isIfStatementNode(e){return e.type===o.NodeType.IfStatement}static isImportDeclarationNode(e){return e.type===o.NodeType.ImportDeclaration}static isImportSpecifierNode(e){return e.type===o.NodeType.ImportSpecifier}static isLabelIdentifierNode(e,t){const r=n.isLabeledStatementNode(t)&&t.label===e,o=n.isContinueStatementNode(t)&&t.label===e,i=n.isBreakStatementNode(t)&&t.label===e;return r||o||i}static isLabeledStatementNode(e){return e.type===o.NodeType.LabeledStatement}static isLiteralNode(e){return e.type===o.NodeType.Literal}static isMemberExpressionNode(e){return e.type===o.NodeType.MemberExpression}static isMethodDefinitionNode(e){return e.type===o.NodeType.MethodDefinition}static isNode(e){return e&&void 0!==!e.type}static isNodeWithLexicalScope(e){return n.isProgramNode(e)||n.isFunctionNode(e)}static isNodeWithBlockLexicalScope(e){return n.isNodeWithLexicalScope(e)||n.isBlockStatementNode(e)}static isNodeWithLexicalScopeStatements(e,t){return n.isProgramNode(e)||n.isBlockStatementNode(e)&&n.nodesWithLexicalStatements.includes(t.type)}static isNodeWithStatements(e){return n.isProgramNode(e)||n.isBlockStatementNode(e)||n.isSwitchCaseNode(e)}static isNodeWithComments(e){return Boolean(e.leadingComments)||Boolean(e.trailingComments)}static isObjectPatternNode(e){return e.type===o.NodeType.ObjectPattern}static isObjectExpressionNode(e){return e.type===o.NodeType.ObjectExpression}static isProgramNode(e){return e.type===o.NodeType.Program}static isPropertyNode(e){return e.type===o.NodeType.Property}static isRestElementNode(e){return e.type===o.NodeType.RestElement}static isReturnStatementNode(e){return e.type===o.NodeType.ReturnStatement}static isSequenceExpressionNode(e){return e.type===o.NodeType.SequenceExpression}static isSuperNode(e){return e.type===o.NodeType.Super}static isSwitchCaseNode(e){return e.type===o.NodeType.SwitchCase}static isTaggedTemplateExpressionNode(e){return e.type===o.NodeType.TaggedTemplateExpression}static isTemplateLiteralNode(e){return e.type===o.NodeType.TemplateLiteral}static isUnaryExpressionNode(e){return e.type===o.NodeType.UnaryExpression}static isUseStrictOperator(e){return n.isDirectiveNode(e)&&"use strict"===e.directive}static isVariableDeclarationNode(e){return e.type===o.NodeType.VariableDeclaration}static isVariableDeclaratorNode(e){return e.type===o.NodeType.VariableDeclarator}static isWhileStatementNode(e){return e.type===o.NodeType.WhileStatement}}t.NodeGuards=n,n.nodesWithLexicalStatements=[o.NodeType.ArrowFunctionExpression,o.NodeType.FunctionDeclaration,o.NodeType.FunctionExpression,o.NodeType.MethodDefinition]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeUtils=void 0;const a=i(r(50)),s=i(r(12)),c=r(47),l=r(63),d=r(4),u=r(19);class f{static addXVerbatimPropertyTo(e){return e["x-verbatim-property"]={content:e.raw,precedence:a.Precedence.Primary},e}static clone(e){return f.parentizeAst(f.cloneRecursive(e))}static convertCodeToStructure(e){const t=l.ASTParserFacade.parse(e,{ecmaVersion:c.ecmaVersion,sourceType:"script"});return s.replace(t,{enter:(e,t)=>(f.parentizeNode(e,t),d.NodeGuards.isLiteralNode(e)&&f.addXVerbatimPropertyTo(e),u.NodeMetadata.set(e,{ignoredNode:!1}),e)}),t.body}static convertStructureToCode(e){return e.reduce((e,t)=>e+a.generate(t,{sourceMapWithCode:!0}).code,"")}static getUnaryExpressionArgumentNode(e){return d.NodeGuards.isUnaryExpressionNode(e.argument)?f.getUnaryExpressionArgumentNode(e.argument):e.argument}static parentizeAst(e){var t;const r=null!==(t=e.parentNode)&&void 0!==t?t:null;return s.replace(e,{enter:f.parentizeNode}),r&&(e.parentNode=r),e}static parentizeNode(e,t){return e.parentNode=null!=t?t:e,e}static cloneRecursive(e){if(null===e)return e;const t={};return Object.keys(e).forEach(r=>{if("parentNode"===r)return;const o=e[r];let n;n=null===o||o instanceof RegExp?o:Array.isArray(o)?o.map(f.cloneRecursive):"object"==typeof o?f.cloneRecursive(o):o,t[r]=n}),t}}t.NodeUtils=f},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeFactory=void 0;const a=i(r(50)),s=r(35);class c{static programNode(e=[]){return{type:s.NodeType.Program,body:e,sourceType:"script",metadata:{ignoredNode:!1}}}static arrayExpressionNode(e=[]){return{type:s.NodeType.ArrayExpression,elements:e,metadata:{ignoredNode:!1}}}static assignmentExpressionNode(e,t,r){return{type:s.NodeType.AssignmentExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static binaryExpressionNode(e,t,r){return{type:s.NodeType.BinaryExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static blockStatementNode(e=[]){return{type:s.NodeType.BlockStatement,body:e,metadata:{ignoredNode:!1}}}static breakStatement(e){return{type:s.NodeType.BreakStatement,label:e,metadata:{ignoredNode:!1}}}static callExpressionNode(e,t=[]){return{type:s.NodeType.CallExpression,callee:e,arguments:t,metadata:{ignoredNode:!1}}}static conditionalExpressionNode(e,t,r){return{type:s.NodeType.ConditionalExpression,test:e,consequent:t,alternate:r,metadata:{ignoredNode:!1}}}static continueStatement(e){return{type:s.NodeType.ContinueStatement,label:e,metadata:{ignoredNode:!1}}}static directiveNode(e,t){return{type:s.NodeType.ExpressionStatement,expression:e,directive:t,metadata:{ignoredNode:!1}}}static expressionStatementNode(e){return{type:s.NodeType.ExpressionStatement,expression:e,metadata:{ignoredNode:!1}}}static functionDeclarationNode(e,t,r){return{type:s.NodeType.FunctionDeclaration,id:c.identifierNode(e),params:t,body:r,generator:!1,metadata:{ignoredNode:!1}}}static functionExpressionNode(e,t){return{type:s.NodeType.FunctionExpression,params:e,body:t,generator:!1,metadata:{ignoredNode:!1}}}static ifStatementNode(e,t,r){return Object.assign(Object.assign({type:s.NodeType.IfStatement,test:e,consequent:t},r&&{alternate:r}),{metadata:{ignoredNode:!1}})}static identifierNode(e){return{type:s.NodeType.Identifier,name:e,metadata:{ignoredNode:!1}}}static importDeclarationNode(e,t){return{type:s.NodeType.ImportDeclaration,specifiers:e,source:t,metadata:{ignoredNode:!1}}}static literalNode(e,t){return t=void 0!==t?t:`'${e}'`,{type:s.NodeType.Literal,value:e,raw:t,"x-verbatim-property":{content:t,precedence:a.Precedence.Primary},metadata:{ignoredNode:!1}}}static logicalExpressionNode(e,t,r){return{type:s.NodeType.LogicalExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static memberExpressionNode(e,t,r=!1){return{type:s.NodeType.MemberExpression,computed:r,object:e,property:t,metadata:{ignoredNode:!1}}}static objectExpressionNode(e){return{type:s.NodeType.ObjectExpression,properties:e,metadata:{ignoredNode:!1}}}static propertyNode(e,t,r=!1){return{type:s.NodeType.Property,key:e,value:t,kind:"init",method:!1,shorthand:!1,computed:r,metadata:{ignoredNode:!1}}}static returnStatementNode(e){return{type:s.NodeType.ReturnStatement,argument:e,metadata:{ignoredNode:!1}}}static sequenceExpressionNode(e){return{type:s.NodeType.SequenceExpression,expressions:e,metadata:{ignoredNode:!1}}}static switchStatementNode(e,t){return{type:s.NodeType.SwitchStatement,discriminant:e,cases:t,metadata:{ignoredNode:!1}}}static switchCaseNode(e,t){return{type:s.NodeType.SwitchCase,test:e,consequent:t,metadata:{ignoredNode:!1}}}static unaryExpressionNode(e,t,r=!0){return{type:s.NodeType.UnaryExpression,operator:e,argument:t,prefix:r,metadata:{ignoredNode:!1}}}static updateExpressionNode(e,t){return{type:s.NodeType.UpdateExpression,operator:e,argument:t,prefix:!1,metadata:{ignoredNode:!1}}}static variableDeclarationNode(e=[],t="var"){return{type:s.NodeType.VariableDeclaration,declarations:e,kind:t,metadata:{ignoredNode:!1}}}static variableDeclaratorNode(e,t){return{type:s.NodeType.VariableDeclarator,id:e,init:t,metadata:{ignoredNode:!1}}}static whileStatementNode(e,t){return{type:s.NodeType.WhileStatement,test:e,body:t,metadata:{ignoredNode:!1}}}}t.NodeFactory=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializable=void 0;const o={configurable:!0,enumerable:!0};function n(e,t,r){Reflect.hasMetadata(e,r)||Reflect.defineMetadata(e,t,r)}t.initializable=function(e="initialize"){const t=Object.keys(this)[0];return(r,i)=>{const a=r[e];if(!a||"function"!=typeof a)throw new Error(`\`${e}\` method with initialization logic not `+`found. \`@${t}\` decorator requires \`${e}\` method`);return n("_initialized",!1,r),n("_initializablePropertiesSet",new Set,r),n("_wrappedMethodsSet",new Set,r),function(e,t){const r=Object.getOwnPropertyNames(e),n=[t,"constructor"];r.forEach(r=>{var i;const a=Reflect.getMetadata("_initializablePropertiesSet",e),s=Reflect.getMetadata("_wrappedMethodsSet",e);if(n.includes(r)||a.has(r)||s.has(r))return;if("function"!=typeof e[r])return;const c=null!==(i=Object.getOwnPropertyDescriptor(e,r))&&void 0!==i?i:o,l=c.value;Object.defineProperty(e,r,Object.assign(Object.assign({},c),{value(){if(!Reflect.getMetadata("_initialized",this))throw new Error(`Class should be initialized with \`${t}()\` method`);return l.apply(this,arguments)}})),s.add(r)})}(r,e),function(e,t,r){var n;const i=null!==(n=Object.getOwnPropertyDescriptor(e,t))&&void 0!==n?n:o,a=i.value;Object.defineProperty(e,t,Object.assign(Object.assign({},i),{value:function(){Reflect.defineMetadata("_initialized",!0,this);const e=a.apply(this,arguments);return this[r],e}}))}(r,e,i),function(e,t){var r;Reflect.getMetadata("_initializablePropertiesSet",e).add(t);const n=`_${t.toString()}`,i=null!==(r=Object.getOwnPropertyDescriptor(e,n))&&void 0!==r?r:o;return Object.defineProperty(e,t,Object.assign(Object.assign({},i),{get:function(){if(void 0===this[n])throw new Error(`Property \`${t.toString()}\` is not initialized! Initialize it first!`);return this[n]},set:function(e){this[n]=e}})),i}(r,i)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformationStage=void 0,function(e){e.Initializing="Initializing",e.Preparing="Preparing",e.DeadCodeInjection="DeadCodeInjection",e.ControlFlowFlattening="ControlFlowFlattening",e.RenameProperties="RenameProperties",e.Converting="Converting",e.Obfuscating="Obfuscating",e.Minification="Minification",e.Finalizing="Finalizing"}(t.NodeTransformationStage||(t.NodeTransformationStage={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractNodeTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3);let f=class{constructor(e,t){this.randomGenerator=e,this.options=t}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.AbstractNodeTransformer=f},function(e,t){e.exports=require("estraverse")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformer=void 0,function(e){e.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",e.CommentsTransformer="CommentsTransformer",e.CustomCodeHelpersTransformer="CustomCodeHelpersTransformer",e.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",e.EvalCallExpressionTransformer="EvalCallExpressionTransformer",e.FunctionControlFlowTransformer="FunctionControlFlowTransformer",e.IfStatementSimplifyTransformer="IfStatementSimplifyTransformer",e.LabeledStatementTransformer="LabeledStatementTransformer",e.LiteralTransformer="LiteralTransformer",e.MemberExpressionTransformer="MemberExpressionTransformer",e.MetadataTransformer="MetadataTransformer",e.MethodDefinitionTransformer="MethodDefinitionTransformer",e.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",e.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",e.ObjectExpressionTransformer="ObjectExpressionTransformer",e.ParentificationTransformer="ParentificationTransformer",e.RenamePropertiesTransformer="RenamePropertiesTransformer",e.ScopeIdentifiersTransformer="ScopeIdentifiersTransformer",e.SplitStringTransformer="SplitStringTransformer",e.TemplateLiteralTransformer="TemplateLiteralTransformer",e.VariableDeclarationsMergeTransformer="VariableDeclarationsMergeTransformer",e.VariablePreserveTransformer="VariablePreserveTransformer"}(t.NodeTransformer||(t.NodeTransformer={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3);let _=class{constructor(e,t,r,o){this.cachedNode=null,this.identifierNamesGenerator=e(o),this.customCodeHelperFormatter=t,this.randomGenerator=r,this.options=o}getNode(){return this.cachedNode||(this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure())),this.cachedNode}};_=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],_),t.AbstractCustomNode=_},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyContainerFacade=void 0;const o=r(0),n=r(1),i=r(82),a=r(92),s=r(97),c=r(109),l=r(120),d=r(161),u=r(174),f=r(175),p=r(179),m=r(181),g=r(184),_=r(187),S=r(189),N=r(198),h=r(220),y=r(234),O=r(239),b=r(244),E=r(252),I=r(254),C=r(80),T=r(259),v=r(262),R=r(264),M=r(265);t.InversifyContainerFacade=class{constructor(){this.container=new o.Container}static getFactory(e){return t=>r=>t.container.getNamed(e,r)}static getCacheFactory(e){return t=>{const r=new Map;return o=>{if(r.has(o))return r.get(o);const n=t.container.getNamed(e,o);return r.set(o,n),n}}}static getConstructorFactory(e,...t){return r=>{const o=new Map,n=[];return i=>{if(t.forEach((e,t)=>{n[t]||(n[t]=r.container.get(e))}),o.has(i))return new(o.get(i))(...n);const a=r.container.getNamed(e,i);return o.set(i,a),new a(...n)}}}get(e){return this.container.get(e)}getNamed(e,t){return this.container.getNamed(e,t)}load(e,t,r){this.container.bind(n.ServiceIdentifiers.ISourceCode).toDynamicValue(()=>new M.SourceCode(e,t)).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.TInputOptions).toDynamicValue(()=>r).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ILogger).to(C.Logger).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IJavaScriptObfuscator).to(I.JavaScriptObfuscator).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ICodeTransformersRunner).to(E.CodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.INodeTransformersRunner).to(T.NodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IObfuscatedCode).to(R.ObfuscatedCode),this.container.bind(n.ServiceIdentifiers.Factory__IObfuscatedCode).toFactory(e=>(t,r)=>{const o=e.container.get(n.ServiceIdentifiers.IObfuscatedCode);return o.initialize(t,r),o}),this.container.bind(n.ServiceIdentifiers.IObfuscationEventEmitter).to(v.ObfuscationEventEmitter).inSingletonScope(),this.container.load(i.analyzersModule),this.container.load(a.codeTransformersModule),this.container.load(s.controlFlowTransformersModule),this.container.load(c.convertingTransformersModule),this.container.load(l.customCodeHelpersModule),this.container.load(d.customNodesModule),this.container.load(u.finalizingTransformersModule),this.container.load(f.generatorsModule),this.container.load(p.initializingTransformersModule),this.container.load(m.minificationTransformersModule),this.container.load(g.nodeModule),this.container.load(_.nodeTransformersModule),this.container.load(S.obfuscatingTransformersModule),this.container.load(N.optionsModule),this.container.load(h.preparingTransformersModule),this.container.load(y.renamePropertiesTransformersModule),this.container.load(O.storagesModule),this.container.load(b.utilsModule)}unload(){this.container.unbindAll()}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStatementUtils=void 0;const o=r(4);class n{static getParentNodeWithStatements(e){return n.getParentNodesWithStatementsRecursive(e,1)[0]}static getParentNodesWithStatements(e){return n.getParentNodesWithStatementsRecursive(e)}static getNextSiblingStatement(e){return n.getSiblingStatementByOffset(e,1)}static getPreviousSiblingStatement(e){return n.getSiblingStatementByOffset(e,-1)}static getRootStatementOfNode(e){if(o.NodeGuards.isProgramNode(e))throw new Error("Unable to find root statement for `Program` node");const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithStatements(t)?e:n.getRootStatementOfNode(t)}static getScopeOfNode(e){const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithStatements(t)?t:n.getScopeOfNode(t)}static getParentNodesWithStatementsRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return(o.NodeGuards.isProgramNode(e)||o.NodeGuards.isNodeWithLexicalScopeStatements(e,a)&&i>0)&&r.push(e),e!==a?n.getParentNodesWithStatementsRecursive(a,t,r,++i):r}static getSiblingStatementByOffset(e,t){const r=n.getScopeOfNode(e),i=o.NodeGuards.isSwitchCaseNode(r)?r.consequent:r.body,a=i.indexOf(e);return i[a+t]||null}}t.NodeStatementUtils=n},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(2),N=r(3),h=r(128),y=r(129);let O=o=class{constructor(e,t,r,o,n){this.cachedNode=null,this.identifierNamesGenerator=e(n),this.customCodeHelperFormatter=t,this.customCodeHelperObfuscator=r,this.randomGenerator=o,this.options=n}getNode(){if(!this.cachedNode){const e=this.getCodeHelperTemplate();this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(e))}return this.cachedNode}getGlobalVariableTemplate(){return this.randomGenerator.getRandomGenerator().pickone(o.globalVariableTemplateFunctions)}getCodeHelperTemplate(){return""}};O.globalVariableTemplateFunctions=[h.GlobalVariableTemplate1(),y.GlobalVariableTemplate2()],O=o=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==S.IOptions&&S.IOptions)?c:Object])],O),t.AbstractCustomCodeHelper=O},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeMetadata=void 0;class o{static set(e,t){var r;e.metadata=Object.assign(null!==(r=e.metadata)&&void 0!==r?r:{},t)}static get(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}static isIgnoredNode(e){return!0===o.get(e,"ignoredNode")}static isReplacedLiteral(e){return!0===o.get(e,"replacedLiteral")}}t.NodeMetadata=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationTarget=void 0;const o=r(31);t.ObfuscationTarget=o.MakeEnum({Browser:"browser",BrowserNoEval:"browser-no-eval",Node:"node"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowCustomNode=void 0,function(e){e.BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",e.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",e.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",e.CallExpressionFunctionNode="CallExpressionFunctionNode",e.ControlFlowStorageNode="ControlFlowStorageNode",e.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",e.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",e.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode",e.StringLiteralNode="StringLiteralNode"}(t.ControlFlowCustomNode||(t.ControlFlowCustomNode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeAppender=void 0;const o=r(4);class n{static append(e,t){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...n.getScopeStatements(e),...t])}static appendToOptimalBlockScope(e,t,r,o=0){const i=e.length?n.getOptimalBlockScope(e,o):t;n.prepend(i,r)}static getOptimalBlockScope(e,t,r=1/0){const o=e[t];if(r<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return r>1&&o.callsGraph.length?n.getOptimalBlockScope(o.callsGraph,0,--r):o.callee}static insertBefore(e,t,r){const o=n.getScopeStatements(e).indexOf(r);n.insertAtIndex(e,t,o)}static insertAfter(e,t,r){const o=n.getScopeStatements(e).indexOf(r);n.insertAtIndex(e,t,o+1)}static insertAtIndex(e,t,r){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...n.getScopeStatements(e).slice(0,r),...t,...n.getScopeStatements(e).slice(r)])}static prepend(e,t){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...t,...n.getScopeStatements(e)])}static getScopeStatements(e){return o.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}static parentizeScopeStatementsBeforeAppend(e,t){return t.forEach(t=>{t.parentNode=e}),t}static setScopeStatements(e,t){o.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}t.NodeAppender=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLexicalScopeUtils=void 0;const o=r(4);class n{static getLexicalScope(e){return n.getLexicalScopesRecursive(e,1)[0]}static getLexicalScopes(e){return n.getLexicalScopesRecursive(e)}static getLexicalScopesRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithLexicalScope(e)&&r.push(e),e!==a?n.getLexicalScopesRecursive(a,t,r,++i):r}}t.NodeLexicalScopeUtils=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEvent=void 0,function(e){e.AfterObfuscation="afterObfuscation",e.BeforeObfuscation="beforeObfuscation"}(t.ObfuscationEvent||(t.ObfuscationEvent={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=void 0;class o{static buildVersionMessage(e,t){if(!e||!t)return"unknown";return`${e}_${new Date(parseInt(t,10)).toISOString()}`}static extractDomainFrom(e){let t;return t=e.includes("://")||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0],t=t.split(":")[0],t}static getIdentifiersPrefixForMultipleSources(e,t){return`${e||o.baseMultipleSourcesIdentifiersPrefix}${t}`}}t.Utils=o,o.baseMultipleSourcesIdentifiersPrefix="a",o.hexadecimalPrefix="0x"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelper=void 0,function(e){e.CallsControllerFunction="CallsControllerFunction",e.ConsoleOutputDisable="ConsoleOutputDisable",e.DebugProtectionFunctionCall="DebugProtectionFunctionCall",e.DebugProtectionFunctionInterval="DebugProtectionFunctionInterval",e.DebugProtectionFunction="DebugProtectionFunction",e.DomainLock="DomainLock",e.SelfDefendingUnicode="SelfDefendingUnicode",e.StringArrayCallsWrapper="StringArrayCallsWrapper",e.StringArray="StringArray",e.StringArrayRotateFunction="StringArrayRotateFunction"}(t.CustomCodeHelper||(t.CustomCodeHelper={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncoding=void 0;const o=r(31);t.StringArrayEncoding=o.MakeEnum({Base64:"base64",Rc4:"rc4"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelperGroup=void 0;const l=r(0),d=r(1),u=r(5),f=r(2),p=r(3);let m=class{constructor(e,t,r){this.identifierNamesGenerator=e(r),this.randomGenerator=t,this.options=r}getAppendEvent(){return this.appendEvent}getCustomCodeHelpers(){return this.customCodeHelpers}appendCustomNodeIfExist(e,t){const r=this.customCodeHelpers.get(e);r&&t(r)}getRandomCallsGraphIndex(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}};m=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),c(1,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(2,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object])],m),t.AbstractCustomCodeHelperGroup=m},function(e,t){e.exports=require("@gradecam/tsenum")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapMode=void 0;const o=r(31);t.SourceMapMode=o.MakeEnum({Inline:"inline",Separate:"separate"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetString=void 0,t.alphabetString="abcdefghijklmnopqrstuvwxyz"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesGenerator=void 0;const o=r(31);t.IdentifierNamesGenerator=o.MakeEnum({DictionaryIdentifierNamesGenerator:"dictionary",HexadecimalIdentifierNamesGenerator:"hexadecimal",MangledIdentifierNamesGenerator:"mangled"})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=void 0,function(e){e.ArrayExpression="ArrayExpression",e.ArrayPattern="ArrayPattern",e.ArrowFunctionExpression="ArrowFunctionExpression",e.AssignmentExpression="AssignmentExpression",e.AssignmentPattern="AssignmentPattern",e.AwaitExpression="AwaitExpression",e.BinaryExpression="BinaryExpression",e.BlockStatement="BlockStatement",e.BreakStatement="BreakStatement",e.CallExpression="CallExpression",e.CatchClause="CatchClause",e.ClassDeclaration="ClassDeclaration",e.ConditionalExpression="ConditionalExpression",e.ContinueStatement="ContinueStatement",e.ExportNamedDeclaration="ExportNamedDeclaration",e.ExpressionStatement="ExpressionStatement",e.ForStatement="ForStatement",e.ForInStatement="ForInStatement",e.ForOfStatement="ForOfStatement",e.FunctionDeclaration="FunctionDeclaration",e.FunctionExpression="FunctionExpression",e.Identifier="Identifier",e.IfStatement="IfStatement",e.ImportDeclaration="ImportDeclaration",e.ImportDefaultSpecifier="ImportDefaultSpecifier",e.ImportNamespaceSpecifier="ImportNamespaceSpecifier",e.ImportSpecifier="ImportSpecifier",e.LabeledStatement="LabeledStatement",e.Literal="Literal",e.LogicalExpression="LogicalExpression",e.MemberExpression="MemberExpression",e.MethodDefinition="MethodDefinition",e.ObjectExpression="ObjectExpression",e.ObjectPattern="ObjectPattern",e.Program="Program",e.Property="Property",e.RestElement="RestElement",e.ReturnStatement="ReturnStatement",e.SequenceExpression="SequenceExpression",e.Super="Super",e.SwitchCase="SwitchCase",e.SwitchStatement="SwitchStatement",e.TaggedTemplateExpression="TaggedTemplateExpression",e.TemplateLiteral="TemplateLiteral",e.TryStatement="TryStatement",e.UnaryExpression="UnaryExpression",e.UpdateExpression="UpdateExpression",e.VariableDeclaration="VariableDeclaration",e.VariableDeclarator="VariableDeclarator",e.WhileStatement="WhileStatement"}(t.NodeType||(t.NodeType={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableNoEvalTemplate=void 0,t.GlobalVariableNoEvalTemplate=function(){return"\n const that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetStringUppercase=void 0;const o=r(33);t.alphabetStringUppercase=o.alphabetString.toUpperCase()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberUtils=void 0;const o=r(26);t.NumberUtils=class{static toHex(e){const t="number"==typeof e?e.toString(16):`${e.toString(16)}n`;return`${o.Utils.hexadecimalPrefix}${t}`}static isCeil(e){return"number"!=typeof e||e%1==0}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierObfuscatingReplacer=void 0,function(e){e.BaseIdentifierObfuscatingReplacer="BaseIdentifierObfuscatingReplacer"}(t.IdentifierObfuscatingReplacer||(t.IdentifierObfuscatingReplacer={}))},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractObfuscatingReplacer=void 0;const s=r(0),c=r(1),l=r(2);let d=class{constructor(e){this.options=e}};d=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IOptions&&l.IOptions)?o:Object])],d),t.AbstractObfuscatingReplacer=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PRESET=void 0;const o=r(34),n=r(20),i=r(32);t.DEFAULT_PRESET=Object.freeze({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],inputFileName:"",log:!1,minify:!0,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!0,seed:0,selfDefending:!1,shuffleStringArray:!0,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:10,stringArray:!0,stringArrayEncoding:!1,stringArrayThreshold:.75,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringSeparator=void 0,function(e){e.Dot=".",e.Comma=","}(t.StringSeparator||(t.StringSeparator={}))},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCalleeDataExtractor=void 0;let n=class{};n=o([r(0).injectable()],n),t.AbstractCalleeDataExtractor=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ecmaVersion=void 0,t.ecmaVersion=11},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLiteralUtils=void 0;const o=r(4);t.NodeLiteralUtils=class{static isProhibitedLiteralNode(e,t){return!(!o.NodeGuards.isPropertyNode(t)||t.computed||t.key!==e)||!!o.NodeGuards.isImportDeclarationNode(t)}}},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3);let g=o=class{constructor(e,t,r){this.replacerDataByControlFlowStorageId=new Map,this.controlFlowCustomNodeFactory=e,this.randomGenerator=t,this.options=r}static getStorageKeysByIdForCurrentStorage(e,t){let r;return r=e.has(t)?e.get(t):new Map,r}insertCustomNodeToControlFlowStorage(e,t,r,n){const i=t.getStorageId(),a=o.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId,i),s=a.get(r);if(this.randomGenerator.getMathRandom(){const r=this.randomGenerator.getRandomString(e);return t.getStorage().has(r)?c(e):r},l=c(5);return a.set(r,[l]),this.replacerDataByControlFlowStorageId.set(i,a),t.set(l,e),l}};g=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],g),t.AbstractControlFlowReplacer=g},function(e,t){e.exports=require("escodegen")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.numbersString=void 0,t.numbersString="0123456789"},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractIdentifierNamesGenerator=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(4);let p=class{constructor(e,t){this.preservedNamesSet=new Set,this.lexicalScopesPreservedNamesMap=new Map,this.randomGenerator=e,this.options=t}generate(e,t){return f.NodeGuards.isProgramNode(e)?this.generateForGlobalScope():this.generateForLexicalScope(e)}preserveName(e){this.preservedNamesSet.add(e)}preserveNameForLexicalScope(e,t){var r;const o=null!==(r=this.lexicalScopesPreservedNamesMap.get(t))&&void 0!==r?r:new Set;o.add(e),this.lexicalScopesPreservedNamesMap.set(t,o)}isValidIdentifierName(e){return this.notReservedName(e)&&!this.preservedNamesSet.has(e)}isValidIdentifierNameInLexicalScopes(e,t){var r;if(!this.isValidIdentifierName(e))return!1;for(const o of t){const t=null!==(r=this.lexicalScopesPreservedNamesMap.get(o))&&void 0!==r?r:null;if(t&&t.has(e))return!1}return!0}notReservedName(e){return!this.options.reservedNames.length||!this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}};p=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],p),t.AbstractIdentifierNamesGenerator=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MapStorage=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(8);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}initialize(){this.storage=new Map,this.storageId=this.randomGenerator.getRandomString(6)}get(e){return this.storage.get(e)}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in map storage with key \`${e}\``);return t}getKeyOf(e){for(const[t,r]of this.storage)if(e===r)return t;return null}getLength(){return this.storage.size}getStorage(){return this.storage}getStorageId(){return this.storageId}has(e){return this.storage.has(e)}mergeWith(e,t=!1){this.storage=new Map([...this.storage,...e.getStorage()]),t&&(this.storageId=e.getStorageId())}set(e,t){this.storage.set(e,t)}};a([p.initializable(),s("design:type",String)],m.prototype,"storageId",void 0),a([p.initializable(),s("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],m.prototype,"storage",void 0),a([l.postConstruct(),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],m.prototype,"initialize",null),m=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],m),t.MapStorage=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0,r(79);const o=r(1),n=r(16),i=r(26);class a{static obfuscate(e,t={}){const r=new n.InversifyContainerFacade;r.load(e,"",t);const i=r.get(o.ServiceIdentifiers.IJavaScriptObfuscator).obfuscate(e);return r.unload(),i}static obfuscateMultiple(e,t={}){if("object"!=typeof e)throw new Error("Source codes object should be a plain object");return Object.keys(e).reduce((r,o,n)=>{const s=i.Utils.getIdentifiersPrefixForMultipleSources(t.identifiersPrefix,n),c=e[o],l=Object.assign(Object.assign({},t),{identifiersPrefix:s});return Object.assign(Object.assign({},r),{[o]:a.obfuscate(c,l)})},{})}}t.JavaScriptObfuscator=a,a.version=null!=="1.3.0"?"1.3.0":"unknown"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CalleeDataExtractor=void 0,function(e){e.FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",e.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",e.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"}(t.CalleeDataExtractor||(t.CalleeDataExtractor={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformer=void 0,function(e){e.HashbangOperatorTransformer="HashbangOperatorTransformer"}(t.CodeTransformer||(t.CodeTransformer={}))},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTransformerNamesGroupsBuilder=void 0;const s=r(0),c=r(1),l=r(94);let d=class{constructor(e){this.levelledTopologicalSorter=e}build(e){const t=Object.keys(e),r=this.buildTransformersRelationEdges(t,e);for(const[e,t]of r)this.levelledTopologicalSorter.add(e,t);return this.levelledTopologicalSorter.sortByGroups()}buildTransformersRelationEdges(e,t){const r=[];for(const o of e){const e=t[o].runAfter;if(e&&e.length)for(const n of e){void 0===t[n]?r.push([o,null]):r.push([n,o])}else r.push([o,null])}return r}};d=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.ILevelledTopologicalSorter)),i("design:paramtypes",["function"==typeof(o=void 0!==l.ILevelledTopologicalSorter&&l.ILevelledTopologicalSorter)?o:Object])],d),t.AbstractTransformerNamesGroupsBuilder=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformationStage=void 0,function(e){e.PreparingTransformers="PreparingTransformers",e.FinalizingTransformers="FinalizingTransformers"}(t.CodeTransformationStage||(t.CodeTransformationStage={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowReplacer=void 0,function(e){e.BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",e.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",e.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",e.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"}(t.ControlFlowReplacer||(t.ControlFlowReplacer={}))},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowReplacer=void 0;const l=r(0),d=r(1),u=r(21),f=r(2),p=r(3),m=r(22),g=r(49),_=r(4);let S=class extends g.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}getControlFlowStorageCallNode(e,t,r,o){const n=this.controlFlowCustomNodeFactory(m.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);n.initialize(e,t,r,o);const i=n.getNode()[0];if(!i||!_.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};S=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.Factory__IControlFlowCustomNode)),c(1,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(2,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TControlFlowCustomNodeFactory&&u.TControlFlowCustomNodeFactory)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object])],S),t.ExpressionWithOperatorControlFlowReplacer=S},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ASTParserFacade=void 0;const s=i(r(100)),c=a(r(64));class l{static parse(e,t){const r=l.sourceTypes.length;for(let o=0;o"),s=`...${o.substring(n,i).replace(/^\s+/,"")}...`;throw new Error(`ERROR at line ${r.line}: ${t}\n${a} ${s}`)}}t.ASTParserFacade=l,l.colorError=c.default.red,l.nearestSymbolsCount=15,l.sourceTypes=["script","module"]},function(e,t){e.exports=require("chalk")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionCustomNode=void 0,function(e){e.BlockStatementDeadCodeInjectionNode="BlockStatementDeadCodeInjectionNode"}(t.DeadCodeInjectionCustomNode||(t.DeadCodeInjectionCustomNode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionExtractor=void 0,function(e){e.BasePropertiesExtractor="BasePropertiesExtractor",e.ObjectExpressionToVariableDeclarationExtractor="ObjectExpressionToVariableDeclarationExtractor"}(t.ObjectExpressionExtractor||(t.ObjectExpressionExtractor={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformerCustomNode=void 0,function(e){e.ObjectExpressionVariableDeclarationHostNode="ObjectExpressionVariableDeclarationHostNode"}(t.ObjectExpressionKeysTransformerCustomNode||(t.ObjectExpressionKeysTransformerCustomNode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroup=void 0,function(e){e.ConsoleOutput="ConsoleOutput",e.DebugProtection="DebugProtection",e.DomainLock="DomainLock",e.SelfDefending="SelfDefending",e.StringArray="StringArray"}(t.CustomCodeHelperGroup||(t.CustomCodeHelperGroup={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalCommentObfuscatingGuard=void 0;const i=r(0),a=r(4);let s=o=class{constructor(){this.obfuscationAllowed=!0}static isConditionalComment(e){return o.obfuscationEnableCommentRegExp.test(e.value)||o.obfuscationDisableCommentRegExp.test(e.value)}check(e){if(!a.NodeGuards.isNodeWithComments(e))return this.obfuscationAllowed;const t=e.leadingComments;return t&&(this.obfuscationAllowed=this.checkComments(t)),this.obfuscationAllowed}checkComments(e){const t=e.length;let r=this.obfuscationAllowed;for(let n=0;n=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},d=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomGenerator=void 0;const u=r(0),f=r(1),p=d(r(247)),m=r(248),g=r(2),_=r(249),S=r(8),N=r(33),h=r(40);let y=o=class{constructor(e,t){this.sourceCode=e,this.options=t}initialize(){this.randomGenerator=new m.Chance(this.getRawSeed())}getMathRandom(){return this.getRandomInteger(0,99999)/1e5}getRandomGenerator(){return this.randomGenerator}getRandomInteger(e,t){return this.getRandomGenerator().integer({min:e,max:t})}getRandomString(e,t=o.randomGeneratorPool){return this.getRandomGenerator().string({length:e,pool:t})}getInputSeed(){return this.options.seed.toString()}getRawSeed(){const e=this.getInputSeed();return`${e}`.split("|").length>1?e:`${e}|${p.default(this.sourceCode.getSourceCode())}`}};y.randomGeneratorPool=`${N.alphabetString}${h.alphabetStringUppercase}`,s([S.initializable(),c("design:type","function"==typeof(n=void 0!==m.Chance&&m.Chance.Chance)?n:Object)],y.prototype,"randomGenerator",void 0),s([u.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],y.prototype,"initialize",null),y=o=s([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.ISourceCode)),l(1,u.inject(f.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(i=void 0!==_.ISourceCode&&_.ISourceCode)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],y),t.RandomGenerator=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t){e.exports=require("reflect-metadata")},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;const l=r(0),d=r(1),u=c(r(64)),f=r(2),p=r(81);let m=o=class{constructor(e){this.options=e}static log(e,t,r,o){const n=e(`\n${t} ${r}`);console.log(n,null!=o?o:"")}info(e,t){this.options.log&&o.log(o.colorInfo,p.LoggingPrefix.Base,e,t)}success(e,t){this.options.log&&o.log(o.colorSuccess,p.LoggingPrefix.Base,e,t)}warn(e,t){this.options.log&&o.log(o.colorWarn,p.LoggingPrefix.Base,e,t)}};m.colorInfo=u.default.cyan,m.colorSuccess=u.default.green,m.colorWarn=u.default.yellow,m=o=i([l.injectable(),s(0,l.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object])],m),t.Logger=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingPrefix=void 0,function(e){e.Base="[javascript-obfuscator]",e.CLI="[javascript-obfuscator-cli]"}(t.LoggingPrefix||(t.LoggingPrefix={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.analyzersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(57),s=r(83),c=r(85),l=r(86),d=r(87),u=r(88),f=r(89),p=r(91);t.analyzersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.ICallsGraphAnalyzer).to(s.CallsGraphAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer).to(u.PrevailingKindOfVariablesAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IScopeAnalyzer).to(f.ScopeAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IStringArrayStorageAnalyzer).to(p.StringArrayStorageAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(c.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(l.FunctionExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(d.ObjectExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICalleeDataExtractor))})},function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsGraphAnalyzer=void 0;const u=r(0),f=r(1),p=c(r(12)),m=r(84),g=r(57),_=r(4),S=r(17);let N=o=class{constructor(e){this.calleeDataExtractorFactory=e}static getLimitIndex(e){const t=e-1,r=o.limitThresholdActivationLength-1;let n=t;return t>r&&(n=Math.round(r+t*o.limitThreshold),n>t&&(n=t)),n}analyze(e){return this.analyzeRecursive(e.body)}analyzeRecursive(e){const t=o.getLimitIndex(e.length),r=[],n=e.length;for(let o=0;ot);o++){const t=e[o];p.traverse(t,{enter:o=>{if(_.NodeGuards.isCallExpressionNode(o))return t.parentNode!==S.NodeStatementUtils.getParentNodeWithStatements(o)?p.VisitorOption.Skip:void this.analyzeCallExpressionNode(r,e,o)}})}return r}analyzeCallExpressionNode(e,t,r){o.calleeDataExtractorsList.forEach(o=>{const n=this.calleeDataExtractorFactory(o).extract(t,r.callee);n&&e.push(Object.assign(Object.assign({},n),{callsGraph:this.analyzeRecursive(n.callee.body)}))})}};N.calleeDataExtractorsList=[g.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,g.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,g.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor],N.limitThresholdActivationLength=25,N.limitThreshold=.002,N=o=s([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICalleeDataExtractor)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TCalleeDataExtractorFactory&&m.TCalleeDataExtractorFactory)?n:Object])],N),t.CallsGraphAnalyzer=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionDeclarationCalleeDataExtractor=void 0;const s=r(0),c=a(r(12)),l=r(46),d=r(4),u=r(17);let f=class extends l.AbstractCalleeDataExtractor{extract(e,t){if(!d.NodeGuards.isIdentifierNode(t))return null;const r=this.getCalleeBlockStatement(u.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name);return r?{callee:r,name:t.name}:null}getCalleeBlockStatement(e,t){let r=null;return c.traverse(e,{enter:e=>{if(d.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};f=i([s.injectable()],f),t.FunctionDeclarationCalleeDataExtractor=f},function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionExpressionCalleeDataExtractor=void 0;const s=r(0),c=a(r(12)),l=r(46),d=r(4),u=r(17);let f=class extends l.AbstractCalleeDataExtractor{extract(e,t){let r=null,o=null;return d.NodeGuards.isIdentifierNode(t)?(r=t.name,o=this.getCalleeBlockStatement(u.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name)):d.NodeGuards.isFunctionExpressionNode(t)&&(r=null,o=t.body),o?{callee:o,name:r}:null}getCalleeBlockStatement(e,t){let r=null;return c.traverse(e,{enter:(e,o)=>{if(d.NodeGuards.isFunctionExpressionNode(e)&&o&&d.NodeGuards.isVariableDeclaratorNode(o)&&d.NodeGuards.isIdentifierNode(o.id)&&o.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};f=i([s.injectable()],f),t.FunctionExpressionCalleeDataExtractor=f},function(e,t,r){"use strict";var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionCalleeDataExtractor=void 0;const c=r(0),l=s(r(12)),d=r(46),u=r(4),f=r(17);let p=o=class extends d.AbstractCalleeDataExtractor{static isValidTargetPropertyNode(e,t){if(!e.key)return!1;const r=u.NodeGuards.isIdentifierNode(e.key)&&e.key.name===t,o=u.NodeGuards.isLiteralNode(e.key)&&Boolean(e.key.value)&&e.key.value===t;return r||o}extract(e,t){if(!u.NodeGuards.isMemberExpressionNode(t))return null;const r=this.createObjectMembersCallsChain([],t);if(!r.length)return null;const o=r[r.length-1],n=this.getCalleeBlockStatement(f.NodeStatementUtils.getParentNodeWithStatements(e[0]),r);return n?{callee:n,name:o}:null}createObjectMembersCallsChain(e,t){if(u.NodeGuards.isIdentifierNode(t.property)&&!t.computed)e.unshift(t.property.name);else{if(!u.NodeGuards.isLiteralNode(t.property)||"string"!=typeof t.property.value&&"number"!=typeof t.property.value)return e;e.unshift(t.property.value)}return u.NodeGuards.isMemberExpressionNode(t.object)?this.createObjectMembersCallsChain(e,t.object):(u.NodeGuards.isIdentifierNode(t.object)&&e.unshift(t.object.name),e)}getCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;let o=null;return l.traverse(e,{enter:e=>{if(u.NodeGuards.isVariableDeclaratorNode(e)&&u.NodeGuards.isIdentifierNode(e.id)&&e.init&&u.NodeGuards.isObjectExpressionNode(e.init)&&e.id.name===r)return o=this.findCalleeBlockStatement(e.init.properties,t),l.VisitorOption.Break}}),o}findCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;for(const n of e)if(u.NodeGuards.isPropertyNode(n)&&o.isValidTargetPropertyNode(n,r)){if(u.NodeGuards.isObjectExpressionNode(n.value))return this.findCalleeBlockStatement(n.value.properties,t);if(u.NodeGuards.isFunctionExpressionNode(n.value))return n.value.body}return null}};p=o=a([c.injectable()],p),t.ObjectExpressionCalleeDataExtractor=p},function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrevailingKindOfVariablesAnalyzer=void 0;const u=r(0),f=r(1),p=c(r(12)),m=r(36),g=r(4);let _=o=class{constructor(e){this.prevailingKindOfVariables=o.defaultKindOfVariables,this.arrayUtils=e}analyze(e){var t;const r=[];p.traverse(e,{enter:e=>{g.NodeGuards.isVariableDeclarationNode(e)&&r.push(e.kind)}}),this.prevailingKindOfVariables=null!==(t=this.arrayUtils.findMostOccurringElement(r))&&void 0!==t?t:o.defaultKindOfVariables}getPrevailingKind(){return this.prevailingKindOfVariables}};_.defaultKindOfVariables="var",_=o=s([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.IArrayUtils)),l("design:paramtypes",["function"==typeof(n=void 0!==m.IArrayUtils&&m.IArrayUtils)?n:Object])],_),t.PrevailingKindOfVariablesAnalyzer=_},function(e,t,r){"use strict";var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeAnalyzer=void 0;const c=r(0),l=s(r(90)),d=s(r(12)),u=r(47),f=r(4);let p=o=class{constructor(){this.scopeManager=null}static attachMissingRanges(e){d.replace(e,{enter:e=>{var t,r,n,i,a,s;return e.range||(e.range=[null!==(n=null===(r=null===(t=e.parentNode)||void 0===t?void 0:t.range)||void 0===r?void 0:r[0])&&void 0!==n?n:o.emptyRangeValue,null!==(s=null===(a=null===(i=e.parentNode)||void 0===i?void 0:i.range)||void 0===a?void 0:a[1])&&void 0!==s?s:o.emptyRangeValue]),e}})}static isRootNode(e){return f.NodeGuards.isProgramNode(e)||e.parentNode===e}analyze(e){const t=o.sourceTypes.length;o.attachMissingRanges(e);for(let r=0;r{if("class"===e.type&&e.upper){if(!e.variables.length)return;const t=e.variables[0],r=e.upper.variables.find(e=>t.defs.some(e=>"ClassName"===e.type)&&e.name===t.name);null==r||r.references.push(...e.variables[0].references)}});for(const t of e.childScopes)this.sanitizeScopes(t)}};p.eslintScopeOptions={ecmaVersion:u.ecmaVersion,optimistic:!0},p.sourceTypes=["script","module"],p.emptyRangeValue=0,p=o=a([c.injectable()],p),t.ScopeAnalyzer=p},function(e,t){e.exports=require("eslint-scope")},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorageAnalyzer=void 0;const p=r(0),m=r(1),g=d(r(12)),_=r(2),S=r(3),N=r(37),h=r(4),y=r(19),O=r(48);let b=o=class{constructor(e,t,r){this.stringArrayStorageData=new Map,this.stringArrayStorage=e,this.randomGenerator=t,this.options=r}analyze(e){this.options.stringArray&&g.traverse(e,{enter:(e,t)=>{if(t)return y.NodeMetadata.isIgnoredNode(e)?g.VisitorOption.Skip:void(h.NodeGuards.isLiteralNode(e)&&this.analyzeLiteralNode(e,t))}})}getItemDataForLiteralNode(e){return this.stringArrayStorageData.get(e)}analyzeLiteralNode(e,t){"string"==typeof e.value&&(O.NodeLiteralUtils.isProhibitedLiteralNode(e,t)||this.shouldAddValueToStringArray(e.value)&&this.stringArrayStorageData.set(e,this.stringArrayStorage.getOrThrow(e.value)))}shouldAddValueToStringArray(e){return e.length>=o.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}};b.minimumLengthForStringArray=3,b=o=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.IStringArrayStorage)),f(1,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==N.IStringArrayStorage&&N.IStringArrayStorage)?n:Object,"function"==typeof(i=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==_.IOptions&&_.IOptions)?a:Object])],b),t.StringArrayStorageAnalyzer=b},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codeTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(58),s=r(93),c=r(95);t.codeTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.Factory__ICodeTransformer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICodeTransformer)),e(i.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder).to(s.CodeTransformerNamesGroupsBuilder).inSingletonScope(),e(i.ServiceIdentifiers.ICodeTransformer).to(c.HashbangOperatorTransformer).whenTargetNamed(a.CodeTransformer.HashbangOperatorTransformer)})},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformerNamesGroupsBuilder=void 0;const n=r(0),i=r(59);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.CodeTransformerNamesGroupsBuilder=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashbangOperatorTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(60),p=r(96);let m=class extends p.AbstractCodeTransformer{constructor(e,t){super(e,t),this.hashbangOperatorLine=null}transformCode(e,t){switch(t){case f.CodeTransformationStage.PreparingTransformers:return this.removeAndSaveHashbangOperatorLine(e);case f.CodeTransformationStage.FinalizingTransformers:return this.appendSavedHashbangOperatorLine(e);default:return e}}removeAndSaveHashbangOperatorLine(e){return e.replace(/^#!.*$(\r?\n)*/m,e=>(e&&(this.hashbangOperatorLine=e),"")).trim()}appendSavedHashbangOperatorLine(e){var t;return`${null!==(t=this.hashbangOperatorLine)&&void 0!==t?t:""}${e}`}};m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],m),t.HashbangOperatorTransformer=m},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCodeTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3);let f=class{constructor(e,t){this.randomGenerator=e,this.options=t}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.AbstractCodeTransformer=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.controlFlowTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(61),s=r(13),c=r(98),l=r(99),d=r(101),u=r(102),f=r(104),p=r(107),m=r(108);t.controlFlowTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.DeadCodeInjectionTransformer).whenTargetNamed(s.NodeTransformer.DeadCodeInjectionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(c.BinaryExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(d.CallExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(p.LogicalExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(m.StringLiteralControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(i.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IControlFlowReplacer))})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3),g=r(22),_=r(62);let S=o=class extends _.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.operator,i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.BinaryExpressionFunctionNode);i.initialize(n);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}};S.usingExistingIdentifierChance=.5,S=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],S),t.BinaryExpressionControlFlowReplacer=S},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&c(t,e,r);return l(t,e),t},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowTransformer=void 0;const m=r(0),g=r(1),_=u(r(12)),S=r(21),N=r(36),h=r(2),y=r(3),O=r(22),b=r(9),E=r(11),I=r(4),C=r(6);let T=o=class extends E.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.controlFlowCustomNodeFactory=e,this.arrayUtils=t}static isProhibitedStatementNode(e){const t=I.NodeGuards.isBreakStatementNode(e)||I.NodeGuards.isContinueStatementNode(e),r=I.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),o=I.NodeGuards.isClassDeclarationNode(e);return I.NodeGuards.isFunctionDeclarationNode(e)||t||r||o}static canTransformBlockStatementNode(e){let t=!0;return _.traverse(e,{enter:e=>{if(I.NodeGuards.isWhileStatementNode(e))return _.VisitorOption.Skip;o.isProhibitedStatementNode(e)&&(t=!1)}}),e.body.length<=4&&(t=!1),t}getVisitor(e){switch(e){case b.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&I.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold||!o.canTransformBlockStatementNode(e))return e;const r=e.body,n=this.arrayUtils.createWithRange(r.length),i=this.arrayUtils.shuffle(n),a=n.map(e=>i.indexOf(e)),s=this.controlFlowCustomNodeFactory(O.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);s.initialize(r,i,a);const c=s.getNode()[0];return C.NodeUtils.parentizeNode(c,t),c}};T=o=d([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.Factory__IControlFlowCustomNode)),p(1,m.inject(g.ServiceIdentifiers.IArrayUtils)),p(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),p(3,m.inject(g.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==S.TControlFlowCustomNodeFactory&&S.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==N.IArrayUtils&&N.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object])],T),t.BlockStatementControlFlowTransformer=T},function(e,t){e.exports=require("acorn")},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3),g=r(22),_=r(49),S=r(4);let N=o=class extends _.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.callee;if(!S.NodeGuards.isIdentifierNode(n))return e;const i=String(e.arguments.length),a=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.CallExpressionFunctionNode),s=e.arguments;a.initialize(s);const c=this.insertCustomNodeToControlFlowStorage(a,r,i,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),c,n,s)}getControlFlowStorageCallNode(e,t,r,o){const n=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);n.initialize(e,t,r,o);const i=n.getNode()[0];if(!i||!S.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};N.usingExistingIdentifierChance=.5,N=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],N),t.CallExpressionControlFlowReplacer=N},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&c(t,e,r);return l(t,e),t},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionTransformer=void 0;const m=r(0),g=r(1),_=u(r(12)),S=r(103),N=r(2),h=r(3),y=r(65),O=r(66),b=r(13),E=r(35),I=r(9),C=r(11),T=r(7),v=r(4),R=r(17),M=r(6);let A=o=class extends C.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.deadCodeInjectionRootAstHostNodeSet=new Set,this.collectedBlockStatements=[],this.collectedBlockStatementsTotalLength=0,this.deadCodeInjectionCustomNodeFactory=e,this.transformersRunner=t}static isProhibitedNodeInsideCollectedBlockStatement(e){return v.NodeGuards.isBreakStatementNode(e)||v.NodeGuards.isContinueStatementNode(e)||v.NodeGuards.isAwaitExpressionNode(e)||v.NodeGuards.isSuperNode(e)}static isScopeHoistingFunctionDeclaration(e){if(!v.NodeGuards.isFunctionDeclarationNode(e))return!1;const t=R.NodeStatementUtils.getScopeOfNode(e),r=v.NodeGuards.isSwitchCaseNode(t)?t.consequent:t.body,o=r.indexOf(e);if(0===o)return!1;const n=r.slice(0,o),i=T.NodeFactory.blockStatementNode(n),a=e.id.name;let s=!1;return _.traverse(i,{enter:e=>{if(v.NodeGuards.isIdentifierNode(e)&&e.name===a)return s=!0,_.VisitorOption.Break}}),s}static isValidCollectedBlockStatementNode(e){if(!e.body.length)return!1;let t=0,r=!0;return _.traverse(e,{enter:e=>{if(v.NodeGuards.isBlockStatementNode(e)&&t++,t>o.maxNestedBlockStatementsCount||o.isProhibitedNodeInsideCollectedBlockStatement(e)||o.isScopeHoistingFunctionDeclaration(e))return r=!1,_.VisitorOption.Break}}),r}static isValidWrappedBlockStatementNode(e){if(!e.body.length)return!1;let t=!0;if(_.traverse(e,{enter:e=>{if(o.isScopeHoistingFunctionDeclaration(e))return t=!1,_.VisitorOption.Break}}),!t)return!1;return R.NodeStatementUtils.getParentNodeWithStatements(e).type!==E.NodeType.Program}getVisitor(e){switch(e){case I.NodeTransformationStage.DeadCodeInjection:return{enter:(e,t)=>{if(t&&v.NodeGuards.isProgramNode(e))return this.analyzeNode(e,t),e},leave:(e,t)=>{if(t&&v.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};case I.NodeTransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:(e,t)=>{if(t&&this.isDeadCodeInjectionRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}analyzeNode(e,t){_.traverse(e,{enter:e=>{if(!v.NodeGuards.isBlockStatementNode(e))return;const t=M.NodeUtils.clone(e);if(!o.isValidCollectedBlockStatementNode(t))return;const r=this.makeClonedBlockStatementNodeUnique(t);this.collectedBlockStatements.push(r)}}),this.collectedBlockStatementsTotalLength=this.collectedBlockStatements.length}transformNode(e,t){if(!this.collectedBlockStatements.length||this.collectedBlockStatementsTotalLengththis.options.deadCodeInjectionThreshold||!o.isValidWrappedBlockStatementNode(e))return e;const r=this.collectedBlockStatements.length-1,n=this.randomGenerator.getRandomInteger(0,r),i=this.collectedBlockStatements.splice(n,1)[0];return i===e?e:this.replaceBlockStatementNode(e,i,t)}restoreNode(e,t){const r=e.body[0];if(!v.NodeGuards.isFunctionDeclarationNode(r))throw new Error("Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node");return r.body}isDeadCodeInjectionRootAstHostNode(e){return v.NodeGuards.isBlockStatementNode(e)&&this.deadCodeInjectionRootAstHostNodeSet.has(e)}makeClonedBlockStatementNodeUnique(e){const t=T.NodeFactory.programNode([T.NodeFactory.expressionStatementNode(T.NodeFactory.functionExpressionNode([],e))]);return M.NodeUtils.parentizeAst(t),M.NodeUtils.parentizeNode(t,t),this.transformersRunner.transform(t,o.transformersToRenameBlockScopeIdentifiers,I.NodeTransformationStage.Obfuscating),e}replaceBlockStatementNode(e,t,r){const n=T.NodeFactory.blockStatementNode([T.NodeFactory.functionDeclarationNode(o.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(n);const i=this.deadCodeInjectionCustomNodeFactory(O.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);i.initialize(e,n);const a=i.getNode()[0];return M.NodeUtils.parentizeNode(a,r),a}};A.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",A.maxNestedBlockStatementsCount=4,A.minCollectedBlockStatementsCount=5,A.transformersToRenameBlockScopeIdentifiers=[b.NodeTransformer.LabeledStatementTransformer,b.NodeTransformer.ScopeIdentifiersTransformer],A=o=d([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),p(1,m.inject(g.ServiceIdentifiers.INodeTransformersRunner)),p(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),p(3,m.inject(g.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==S.TDeadNodeInjectionCustomNodeFactory&&S.TDeadNodeInjectionCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==y.INodeTransformersRunner&&y.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object])],A),t.DeadCodeInjectionTransformer=A},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),d=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},f=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&l(t,e,r);return d(t,e),t},p=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},m=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionControlFlowTransformer=void 0;const g=r(0),_=r(1),S=f(r(12)),N=r(21),h=r(105),y=r(106),O=r(2),b=r(3),E=r(22),I=r(61),C=r(35),T=r(9),v=r(11),R=r(23),M=r(4),A=r(19),F=r(17),D=r(6);let j=o=class extends v.AbstractNodeTransformer{constructor(e,t,r,o,n){super(o,n),this.controlFlowData=new Map,this.visitedFunctionNodes=new Set,this.hostNodesWithControlFlowNode=new Set,this.controlFlowStorageFactory=e,this.controlFlowReplacerFactory=t,this.controlFlowCustomNodeFactory=r}getVisitor(e){switch(e){case T.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&(M.NodeGuards.isFunctionDeclarationNode(e)||M.NodeGuards.isFunctionExpressionNode(e)||M.NodeGuards.isArrowFunctionExpressionNode(e)))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.visitedFunctionNodes.add(e),!M.NodeGuards.isBlockStatementNode(e.body))return e;const r=this.getHostNode(e.body),o=this.getControlFlowStorage(r);if(this.controlFlowData.set(r,o),this.transformFunctionBody(e.body,o),!o.getLength())return e;const n=this.controlFlowCustomNodeFactory(E.ControlFlowCustomNode.ControlFlowStorageNode);return n.initialize(o),R.NodeAppender.prepend(r,n.getNode()),this.hostNodesWithControlFlowNode.add(r),D.NodeUtils.parentizeAst(e),e}getControlFlowStorage(e){const t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&(M.NodeGuards.isSwitchCaseNode(e)?e.consequent.shift():e.body.shift());const r=this.controlFlowData.get(e);t.mergeWith(r,!0)}return t}getHostNode(e){const t=F.NodeStatementUtils.getParentNodesWithStatements(e);return 1===t.length?e:(t.pop(),t.length>o.hostNodeSearchMinDepth&&t.splice(0,o.hostNodeSearchMinDepth),t.length>o.hostNodeSearchMaxDepth&&(t.length=o.hostNodeSearchMaxDepth),this.randomGenerator.getRandomGenerator().pickone(t))}isVisitedFunctionNode(e){return(M.NodeGuards.isFunctionDeclarationNode(e)||M.NodeGuards.isFunctionExpressionNode(e)||M.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}transformFunctionBody(e,t){S.replace(e,{enter:(e,r)=>{if(A.NodeMetadata.isIgnoredNode(e))return S.VisitorOption.Skip;if(this.isVisitedFunctionNode(e)||!r)return S.VisitorOption.Skip;if(!o.controlFlowReplacersMap.has(e.type))return e;if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold)return e;const n=o.controlFlowReplacersMap.get(e.type);return void 0===n?e:Object.assign(Object.assign({},this.controlFlowReplacerFactory(n).replace(e,r,t)),{parentNode:r})}})}};j.controlFlowReplacersMap=new Map([[C.NodeType.BinaryExpression,I.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[C.NodeType.CallExpression,I.ControlFlowReplacer.CallExpressionControlFlowReplacer],[C.NodeType.LogicalExpression,I.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[C.NodeType.Literal,I.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),j.hostNodeSearchMinDepth=0,j.hostNodeSearchMaxDepth=2,j=o=u([g.injectable(),m(0,g.inject(_.ServiceIdentifiers.Factory__TControlFlowStorage)),m(1,g.inject(_.ServiceIdentifiers.Factory__IControlFlowReplacer)),m(2,g.inject(_.ServiceIdentifiers.Factory__IControlFlowCustomNode)),m(3,g.inject(_.ServiceIdentifiers.IRandomGenerator)),m(4,g.inject(_.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==y.TControlFlowStorageFactory&&y.TControlFlowStorageFactory)?n:Object,"function"==typeof(i=void 0!==h.TControlFlowReplacerFactory&&h.TControlFlowReplacerFactory)?i:Object,"function"==typeof(a=void 0!==N.TControlFlowCustomNodeFactory&&N.TControlFlowCustomNodeFactory)?a:Object,"function"==typeof(s=void 0!==b.IRandomGenerator&&b.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==O.IOptions&&O.IOptions)?c:Object])],j),t.FunctionControlFlowTransformer=j},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3),g=r(22),_=r(62),S=r(4),N=r(6);let h=o=class extends _.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(this.checkForProhibitedExpressions(e.left,e.right))return e;const n=e.operator,i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.LogicalExpressionFunctionNode);i.initialize(n);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}checkForProhibitedExpressions(e,t){return[e,t].some(e=>{let t;return t=S.NodeGuards.isUnaryExpressionNode(e)?N.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(S.NodeGuards.isLiteralNode(t)||S.NodeGuards.isIdentifierNode(t)||S.NodeGuards.isObjectExpressionNode(t)||S.NodeGuards.isExpressionStatementNode(t))})}};h.usingExistingIdentifierChance=.5,h=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],h),t.LogicalExpressionControlFlowReplacer=h},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowReplacer=void 0;const d=r(0),u=r(1),f=r(21),p=r(2),m=r(3),g=r(22),_=r(49),S=r(4);let N=o=class extends _.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(S.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if("string"!=typeof e.value||e.value.length<3)return e;const n=String(e.value),i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.StringLiteralNode);i.initialize(e.value);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a)}getControlFlowStorageCallNode(e,t){const r=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);r.initialize(e,t);const o=r.getNode()[0];if(!o||!S.NodeGuards.isExpressionStatementNode(o))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return o.expression}};N.usingExistingIdentifierChance=1,N=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],N),t.StringLiteralControlFlowReplacer=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertingTransformersModule=void 0;const o=r(0),n=r(16),i=r(1),a=r(13),s=r(67),c=r(110),l=r(112),d=r(113),u=r(114),f=r(116),p=r(117),m=r(118),g=r(119);t.convertingTransformersModule=new o.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.MemberExpressionTransformer).whenTargetNamed(a.NodeTransformer.MemberExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(d.MethodDefinitionTransformer).whenTargetNamed(a.NodeTransformer.MethodDefinitionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.ObjectExpressionKeysTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionKeysTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.ObjectExpressionTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(p.SplitStringTransformer).whenTargetNamed(a.NodeTransformer.SplitStringTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.TemplateLiteralTransformer).whenTargetNamed(a.NodeTransformer.TemplateLiteralTransformer),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(c.ObjectExpressionToVariableDeclarationExtractor).whenTargetNamed(s.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(g.BasePropertiesExtractor).whenTargetNamed(s.ObjectExpressionExtractor.BasePropertiesExtractor),e(i.ServiceIdentifiers.Factory__IObjectExpressionExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IObjectExpressionExtractor))})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionToVariableDeclarationExtractor=void 0;const s=r(0),c=r(1),l=r(111),d=r(68),u=r(23),f=r(4),p=r(17),m=r(6),g=r(24);let _=class{constructor(e){this.objectExpressionKeysTransformerCustomNodeFactory=e}extract(e,t){return this.transformObjectExpressionToVariableDeclaration(e,t)}transformObjectExpressionToVariableDeclaration(e,t){var r;const o=p.NodeStatementUtils.getScopeOfNode(t),n=f.NodeGuards.isNodeWithLexicalScope(o)?o:null!==(r=g.NodeLexicalScopeUtils.getLexicalScope(o))&&void 0!==r?r:null;if(!n)throw new Error("Cannot find lexical scope node for the host statement node");const i=e.properties,a=this.getObjectExpressionHostNode(n,i),s=[a];return u.NodeAppender.insertBefore(o,s,t),m.NodeUtils.parentizeAst(a),m.NodeUtils.parentizeNode(a,o),{nodeToReplace:this.getObjectExpressionIdentifierNode(a),objectExpressionHostStatement:a,objectExpressionNode:this.getObjectExpressionNode(a)}}getObjectExpressionHostNode(e,t){const r=this.objectExpressionKeysTransformerCustomNodeFactory(d.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);r.initialize(e,t);const o=r.getNode()[0];if(!o||!f.NodeGuards.isVariableDeclarationNode(o))throw new Error("`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node");return o}getObjectExpressionIdentifierNode(e){const t=e.declarations[0].id;if(!f.NodeGuards.isIdentifierNode(t))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property");return t}getObjectExpressionNode(e){var t;const r=null!==(t=e.declarations[0].init)&&void 0!==t?t:null;if(!r||!f.NodeGuards.isObjectExpressionNode(r))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property");return r}};_=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),i("design:paramtypes",["function"==typeof(o=void 0!==l.TObjectExpressionKeysTransformerCustomNodeFactory&&l.TObjectExpressionKeysTransformerCustomNodeFactory)?o:Object])],_),t.ObjectExpressionToVariableDeclarationExtractor=_},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MemberExpressionTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(9),p=r(11),m=r(7),g=r(4);let _=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&g.NodeGuards.isMemberExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(g.NodeGuards.isIdentifierNode(e.property)){if(e.computed)return e;e.computed=!0,e.property=m.NodeFactory.literalNode(e.property.name)}return e}};_=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],_),t.MemberExpressionTransformer=_},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MethodDefinitionTransformer=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(9),m=r(11),g=r(7),_=r(4);let S=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&_.NodeGuards.isMethodDefinitionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return _.NodeGuards.isIdentifierNode(e.key)?this.replaceIdentifierKey(e,e.key):_.NodeGuards.isLiteralNode(e.key)?this.replaceLiteralKey(e,e.key):e}replaceIdentifierKey(e,t){return o.ignoredNames.includes(t.name)||e.computed||(e.computed=!0,e.key=g.NodeFactory.literalNode(t.name)),e}replaceLiteralKey(e,t){return"string"!=typeof t.value||o.ignoredNames.includes(t.value)||e.computed||(e.computed=!0),e}};S.ignoredNames=["constructor"],S=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],S),t.MethodDefinitionTransformer=S},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformer=void 0;const p=r(0),m=r(1),g=d(r(12)),_=r(115),S=r(2),N=r(3),h=r(9),y=r(11),O=r(4),b=r(17),E=r(67);let I=o=class extends y.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.objectExpressionExtractorFactory=e}static isProhibitedHostStatement(e,t){return o.isReferencedIdentifierName(e,t)||o.isProhibitedSequenceExpression(e,t)}static isReferencedIdentifierName(e,t){const r=[];let o=!1,n=!1;return g.traverse(t,{enter:t=>{t===e&&(n=!0),O.NodeGuards.isIdentifierNode(t)&&(n?r.includes(t.name)&&(o=!0):r.push(t.name))},leave:t=>{if(t===e)return n=!1,g.VisitorOption.Break}}),o}static isProhibitedSequenceExpression(e,t){return O.NodeGuards.isExpressionStatementNode(t)&&O.NodeGuards.isSequenceExpressionNode(t.expression)&&t.expression.expressions.some(e=>O.NodeGuards.isCallExpressionNode(e)&&O.NodeGuards.isSuperNode(e.callee))}getVisitor(e){if(!this.options.transformObjectKeys)return null;switch(e){case h.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&O.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!e.properties.length)return e;const r=b.NodeStatementUtils.getRootStatementOfNode(e);return o.isProhibitedHostStatement(e,r)?e:this.applyObjectExpressionKeysExtractorsRecursive(o.objectExpressionExtractorNames,e,r)}applyObjectExpressionKeysExtractorsRecursive(e,t,r){const o=[...e],n=o.shift();if(!n)return t;const{nodeToReplace:i,objectExpressionHostStatement:a,objectExpressionNode:s}=this.objectExpressionExtractorFactory(n).extract(t,r);return this.applyObjectExpressionKeysExtractorsRecursive(o,s,a),i}};I.objectExpressionExtractorNames=[E.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,E.ObjectExpressionExtractor.BasePropertiesExtractor],I=o=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),f(1,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==_.TObjectExpressionExtractorFactory&&_.TObjectExpressionExtractorFactory)?n:Object,"function"==typeof(i=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==S.IOptions&&S.IOptions)?a:Object])],I),t.ObjectExpressionKeysTransformer=I},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(9),p=r(11),m=r(7),g=r(4);let _=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&g.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.properties.forEach(e=>{g.NodeGuards.isPropertyNode(e)&&e.key&&(e.computed?this.transformComputedProperty(e):this.transformBaseProperty(e))}),e}transformComputedProperty(e){g.NodeGuards.isLiteralNode(e.key)&&"string"==typeof e.key.value&&(e.key=m.NodeFactory.literalNode(e.key.value))}transformBaseProperty(e){e.shorthand&&(e.shorthand=!1),g.NodeGuards.isIdentifierNode(e.key)&&(e.key=m.NodeFactory.literalNode(e.key.name))}};_=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],_),t.ObjectExpressionTransformer=_},function(e,t,r){"use strict";var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringTransformer=void 0;const f=r(0),p=r(1),m=l(r(12)),g=r(2),_=r(3),S=r(13),N=r(9),h=r(11),y=r(7),O=r(4),b=r(48),E=r(6);let I=o=class extends h.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[S.NodeTransformer.ObjectExpressionKeysTransformer,S.NodeTransformer.TemplateLiteralTransformer]}static chunkString(e,t){const r=Math.ceil(e.length/t),o=[];let n=0;for(let i=0;i{if(this.options.splitStrings)return t&&O.NodeGuards.isLiteralNode(e)?this.transformNode(e,t):void 0}};default:return null}}transformNode(e,t){if(b.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=this.transformLiteralNodeByChunkLength(e,t,o.firstPassChunkLength);return m.replace(r,{enter:(e,t)=>{if(t&&O.NodeGuards.isLiteralNode(e))return this.transformLiteralNodeByChunkLength(e,t,this.options.splitStringsChunkLength)}})}transformLiteralNodeByChunkLength(e,t,r){if("string"!=typeof e.value)return e;if(r>=e.value.length)return e;const n=o.chunkString(e.value,r),i=this.transformStringChunksToBinaryExpressionNode(n);return E.NodeUtils.parentizeAst(i),E.NodeUtils.parentizeNode(i,t),i}transformStringChunksToBinaryExpressionNode(e){const t=e.shift(),r=e.shift();if(!t||!r)throw new Error("First and second chunks values should not be empty");const o=y.NodeFactory.binaryExpressionNode("+",y.NodeFactory.literalNode(t),y.NodeFactory.literalNode(r));return e.reduce((e,t)=>{const r=y.NodeFactory.literalNode(t);return y.NodeFactory.binaryExpressionNode("+",e,r)},o)}};I.firstPassChunkLength=1e3,I=o=c([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(1,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object])],I),t.SplitStringTransformer=I},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemplateLiteralTransformer=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(9),m=r(11),g=r(7),_=r(4),S=r(6);let N=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}static isLiteralNodeWithStringValue(e){return!!e&&_.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}static isValidTemplateLiteralNode(e,t){return _.NodeGuards.isTemplateLiteralNode(e)&&!_.NodeGuards.isTaggedTemplateExpressionNode(t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&o.isValidTemplateLiteralNode(e,t))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=e.expressions;let n,i=[];if(e.quasis.forEach(e=>{i.push(g.NodeFactory.literalNode(e.value.cooked));const t=r.shift();t&&i.push(t)}),i=i.filter(e=>!(_.NodeGuards.isLiteralNode(e)&&""===e.value)),o.isLiteralNodeWithStringValue(i[0])||o.isLiteralNodeWithStringValue(i[1])||i.unshift(g.NodeFactory.literalNode("")),i.length>1){let e=g.NodeFactory.binaryExpressionNode("+",i.shift(),i.shift());i.forEach(t=>{e=g.NodeFactory.binaryExpressionNode("+",e,t)}),n=e}else n=i[0];return S.NodeUtils.parentizeAst(n),S.NodeUtils.parentizeNode(n,t),n}};N=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],N),t.TemplateLiteralTransformer=N},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.BasePropertiesExtractor=void 0;const i=r(0),a=r(23),s=r(7),c=r(4),l=r(17),d=r(6);let u=o=class{static getPropertyNodeKeyName(e){const t=e.key;return!c.NodeGuards.isLiteralNode(t)||"string"!=typeof t.value&&"number"!=typeof t.value?c.NodeGuards.isIdentifierNode(t)?t.name:null:t.value.toString()}static isProhibitedPattern(e){return!e||c.NodeGuards.isObjectPatternNode(e)||c.NodeGuards.isArrayPatternNode(e)||c.NodeGuards.isAssignmentPatternNode(e)||c.NodeGuards.isRestElementNode(e)}extract(e,t){const r=e.parentNode;return r&&c.NodeGuards.isVariableDeclaratorNode(r)&&c.NodeGuards.isIdentifierNode(r.id)?this.transformObjectExpressionNode(e,t,r.id):{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}transformObjectExpressionNode(e,t,r){const o=e.properties,[n,i]=this.extractPropertiesToExpressionStatements(o,t,r),s=l.NodeStatementUtils.getScopeOfNode(t);return this.filterExtractedObjectExpressionProperties(e,i),a.NodeAppender.insertAfter(s,n,t),d.NodeUtils.parentizeAst(s),{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}extractPropertiesToExpressionStatements(e,t,r){const n=e.length,i=[],a=[];for(let l=0;l!t.includes(r))}};u=o=n([i.injectable()],u),t.BasePropertiesExtractor=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customCodeHelpersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(27),s=r(69),c=r(121),l=r(122),d=r(123),u=r(124),f=r(125),p=r(126),m=r(130),g=r(132),_=r(134),S=r(136),N=r(138),h=r(142),y=r(144),O=r(146),b=r(149),E=r(156),I=r(158);t.customCodeHelpersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.ICustomCodeHelper).to(p.ConsoleOutputDisableCodeHelper).whenTargetNamed(a.CustomCodeHelper.ConsoleOutputDisable),e(i.ServiceIdentifiers.ICustomCodeHelper).to(_.DebugProtectionFunctionCallCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionCall),e(i.ServiceIdentifiers.ICustomCodeHelper).to(S.DebugProtectionFunctionIntervalCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionInterval),e(i.ServiceIdentifiers.ICustomCodeHelper).to(N.DebugProtectionFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(h.DomainLockCodeHelper).whenTargetNamed(a.CustomCodeHelper.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelper).to(y.CallsControllerFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.CallsControllerFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(O.SelfDefendingUnicodeCodeHelper).whenTargetNamed(a.CustomCodeHelper.SelfDefendingUnicode),e(i.ServiceIdentifiers.ICustomCodeHelper).to(b.StringArrayCallsWrapperCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapper),e(i.ServiceIdentifiers.ICustomCodeHelper).to(E.StringArrayCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArray),e(i.ServiceIdentifiers.ICustomCodeHelper).to(I.StringArrayRotateFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayRotateFunction),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(c.ConsoleOutputCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.ConsoleOutput),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(l.DebugProtectionCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DebugProtection),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(d.DomainLockCustomCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(u.SelfDefendingCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.SelfDefending),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(f.StringArrayCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.StringArray),e(i.ServiceIdentifiers.Factory__ICustomCodeHelper).toFactory(o.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelper)),e(i.ServiceIdentifiers.Factory__ICustomCodeHelperGroup).toFactory(o.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelperGroup)),e(i.ServiceIdentifiers.ICustomCodeHelperFormatter).to(m.CustomCodeHelperFormatter).inSingletonScope(),e(i.ServiceIdentifiers.ICustomCodeHelperObfuscator).to(g.CustomCodeHelperObfuscator).inSingletonScope()})},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputCodeHelperGroup=void 0;const u=r(0),f=r(1),p=r(29),m=r(5),g=r(2),_=r(3),S=r(8),N=r(27),h=r(25),y=r(30),O=r(23),b=r(24),E=r(4);let I=class extends y.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=h.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.disableConsoleOutput)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?O.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?O.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=b.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a&&E.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.randomGenerator.getRandomString(5),c=a&&E.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.randomGenerator.getRandomString(5);this.appendCustomNodeIfExist(N.CustomCodeHelper.ConsoleOutputDisable,e=>{e.initialize(c,s),O.NodeAppender.prepend(n,e.getNode())}),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(this.appendEvent,c),O.NodeAppender.prepend(i,e.getNode())})}initialize(){if(this.customCodeHelpers=new Map,!this.options.disableConsoleOutput)return;const e=this.customCodeHelperFactory(N.CustomCodeHelper.ConsoleOutputDisable),t=this.customCodeHelperFactory(N.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(N.CustomCodeHelper.ConsoleOutputDisable,e),this.customCodeHelpers.set(N.CustomCodeHelper.CallsControllerFunction,t)}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.ConsoleOutputCodeHelperGroup=I},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionCodeHelperGroup=void 0;const u=r(0),f=r(1),p=r(29),m=r(5),g=r(2),_=r(3),S=r(8),N=r(27),h=r(25),y=r(30),O=r(23),b=r(4),E=r(24);let I=class extends y.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=h.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.debugProtection)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?O.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?O.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=E.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a&&b.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.randomGenerator.getRandomString(5),c=a&&b.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.randomGenerator.getRandomString(5);this.appendCustomNodeIfExist(N.CustomCodeHelper.DebugProtectionFunctionCall,e=>{e.initialize(s,c),O.NodeAppender.prepend(n,e.getNode())}),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(this.appendEvent,c),O.NodeAppender.prepend(i,e.getNode())}),this.appendCustomNodeIfExist(N.CustomCodeHelper.DebugProtectionFunction,t=>{t.initialize(s),O.NodeAppender.append(e,t.getNode())}),this.appendCustomNodeIfExist(N.CustomCodeHelper.DebugProtectionFunctionInterval,t=>{const r=b.NodeGuards.isSwitchCaseNode(e)?e.consequent.length:e.body.length,o=this.randomGenerator.getRandomInteger(0,r);t.initialize(s),O.NodeAppender.insertAtIndex(e,t.getNode(),o)})}initialize(){if(this.customCodeHelpers=new Map,!this.options.debugProtection)return;const e=this.customCodeHelperFactory(N.CustomCodeHelper.DebugProtectionFunction),t=this.customCodeHelperFactory(N.CustomCodeHelper.DebugProtectionFunctionCall),r=this.customCodeHelperFactory(N.CustomCodeHelper.DebugProtectionFunctionInterval),o=this.customCodeHelperFactory(N.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(N.CustomCodeHelper.DebugProtectionFunction,e),this.customCodeHelpers.set(N.CustomCodeHelper.DebugProtectionFunctionCall,t),this.options.debugProtectionInterval&&this.customCodeHelpers.set(N.CustomCodeHelper.DebugProtectionFunctionInterval,r),this.customCodeHelpers.set(N.CustomCodeHelper.CallsControllerFunction,o)}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.DebugProtectionCodeHelperGroup=I},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCustomCodeHelperGroup=void 0;const u=r(0),f=r(1),p=r(29),m=r(5),g=r(2),_=r(3),S=r(8),N=r(27),h=r(25),y=r(30),O=r(23),b=r(24),E=r(4);let I=class extends y.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=h.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.domainLock.length)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?O.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?O.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=b.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a&&E.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a&&E.NodeGuards.isProgramNode(a)?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(N.CustomCodeHelper.DomainLock,e=>{e.initialize(c,s),O.NodeAppender.prepend(n,e.getNode())}),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(this.appendEvent,c),O.NodeAppender.prepend(i,e.getNode())})}initialize(){if(this.customCodeHelpers=new Map,!this.options.domainLock.length)return;const e=this.customCodeHelperFactory(N.CustomCodeHelper.DomainLock),t=this.customCodeHelperFactory(N.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(N.CustomCodeHelper.DomainLock,e),this.customCodeHelpers.set(N.CustomCodeHelper.CallsControllerFunction,t)}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.DomainLockCustomCodeHelperGroup=I},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingCodeHelperGroup=void 0;const u=r(0),f=r(1),p=r(29),m=r(5),g=r(2),_=r(3),S=r(8),N=r(27),h=r(25),y=r(30),O=r(23),b=r(24);let E=class extends y.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=h.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.selfDefending)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?O.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?O.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=b.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(N.CustomCodeHelper.SelfDefendingUnicode,e=>{e.initialize(c,s),O.NodeAppender.prepend(n,e.getNode())}),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(this.appendEvent,c),O.NodeAppender.prepend(i,e.getNode())})}initialize(){if(this.customCodeHelpers=new Map,!this.options.selfDefending)return;const e=this.customCodeHelperFactory(N.CustomCodeHelper.SelfDefendingUnicode),t=this.customCodeHelperFactory(N.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(N.CustomCodeHelper.SelfDefendingUnicode,e),this.customCodeHelpers.set(N.CustomCodeHelper.CallsControllerFunction,t)}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],E.prototype,"customCodeHelpers",void 0),E=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],E),t.SelfDefendingCodeHelperGroup=E},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelperGroup=void 0;const f=r(0),p=r(1),m=r(29),g=r(5),_=r(2),S=r(3),N=r(37),h=r(8),y=r(27),O=r(25),b=r(30),E=r(23);let I=class extends b.AbstractCustomCodeHelperGroup{constructor(e,t,r,o,n){super(r,o,n),this.appendEvent=O.ObfuscationEvent.AfterObfuscation,this.customCodeHelperFactory=e,this.stringArrayStorage=t}appendNodes(e,t){this.stringArrayStorage.getLength()&&(this.appendCustomNodeIfExist(y.CustomCodeHelper.StringArray,t=>{E.NodeAppender.prepend(e,t.getNode())}),this.appendCustomNodeIfExist(y.CustomCodeHelper.StringArrayCallsWrapper,t=>{E.NodeAppender.insertAtIndex(e,t.getNode(),1)}),this.appendCustomNodeIfExist(y.CustomCodeHelper.StringArrayRotateFunction,t=>{E.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.stringArray)return;const e=this.customCodeHelperFactory(y.CustomCodeHelper.StringArray),t=this.customCodeHelperFactory(y.CustomCodeHelper.StringArrayCallsWrapper),r=this.customCodeHelperFactory(y.CustomCodeHelper.StringArrayRotateFunction),o=this.stringArrayStorage.getStorageName(),n=this.stringArrayStorage.getStorageCallsWrapperName(),i=this.stringArrayStorage.getRotationAmount();e.initialize(this.stringArrayStorage,o),t.initialize(o,n),r.initialize(o,i),this.customCodeHelpers.set(y.CustomCodeHelper.StringArray,e),this.customCodeHelpers.set(y.CustomCodeHelper.StringArrayCallsWrapper,t),this.options.rotateStringArray&&this.customCodeHelpers.set(y.CustomCodeHelper.StringArrayRotateFunction,r)}};l([h.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),u(1,f.inject(p.ServiceIdentifiers.IStringArrayStorage)),u(2,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TCustomCodeHelperFactory&&m.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==N.IStringArrayStorage&&N.IStringArrayStorage)?i:Object,"function"==typeof(a=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?a:Object,"function"==typeof(s=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==_.IOptions&&_.IOptions)?c:Object])],I),t.StringArrayCodeHelperGroup=I},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),N=r(20),h=r(127),y=r(38),O=r(8),b=r(18),E=r(6);let I=class extends b.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.callsControllerFunctionName=e,this.consoleOutputDisableFunctionName=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==N.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():y.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(h.ConsoleOutputDisableExpressionTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,consoleLogDisableFunctionName:this.consoleOutputDisableFunctionName,globalVariableTemplate:e})}};c([O.initializable(),l("design:type",String)],I.prototype,"callsControllerFunctionName",void 0),c([O.initializable(),l("design:type",String)],I.prototype,"consoleOutputDisableFunctionName",void 0),I=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],I),t.ConsoleOutputDisableCodeHelper=I},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableExpressionTemplate=void 0,t.ConsoleOutputDisableExpressionTemplate=function(){return"\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n const func = function () {};\n \n {globalVariableTemplate}\n \n if (!that.console) {\n that.console = (function (func){\n const c = {};\n \n c.log = func;\n c.warn = func;\n c.debug = func;\n c.info = func;\n c.error = func;\n c.exception = func;\n c.table = func;\n c.trace = func;\n \n return c;\n })(func);\n } else {\n that.console.log = func;\n that.console.warn = func;\n that.console.debug = func;\n that.console.info = func;\n that.console.error = func;\n that.console.exception = func;\n that.console.table = func;\n that.console.trace = func;\n }\n });\n \n {consoleLogDisableFunctionName}();\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate1=void 0,t.GlobalVariableTemplate1=function(){return"\n let that;\n \n try {\n const getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate2=void 0,t.GlobalVariableTemplate2=function(){return"\n const getGlobal = function () {\n let globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n const that = getGlobal();\n "}},function(e,t,r){"use strict";var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},d=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperFormatter=void 0;const u=r(0),f=r(1),p=s(r(12)),m=d(r(131)),g=r(70),_=r(4);let S=class{constructor(e){this.prevailingKindOfVariables=e.getPrevailingKind()}formatTemplate(e,t){return m.default(e,t)}formatStructure(e){for(const t of e)p.replace(t,{enter:e=>{if(_.NodeGuards.isVariableDeclarationNode(e))return"var"===this.prevailingKindOfVariables&&(e.kind="var"),e}});return e}};S=a([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),c("design:paramtypes",["function"==typeof(o=void 0!==g.IPrevailingKindOfVariablesAnalyzer&&g.IPrevailingKindOfVariablesAnalyzer)?o:Object])],S),t.CustomCodeHelperFormatter=S},function(e,t){e.exports=require("string-template")},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperObfuscator=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(133),p=r(56);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}obfuscateTemplate(e,t={}){return p.JavaScriptObfuscator.obfuscate(e,Object.assign(Object.assign(Object.assign({},f.NO_ADDITIONAL_NODES_PRESET),{identifierNamesGenerator:this.options.identifierNamesGenerator,identifiersDictionary:this.options.identifiersDictionary,seed:this.randomGenerator.getRawSeed()}),t)).getObfuscatedCode()}};m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],m),t.CustomCodeHelperObfuscator=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NO_ADDITIONAL_NODES_PRESET=void 0;const o=r(34),n=r(20),i=r(32);t.NO_ADDITIONAL_NODES_PRESET=Object.freeze({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],inputFileName:"",log:!1,minify:!1,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!1,seed:0,selfDefending:!1,shuffleStringArray:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:0,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),N=r(8),h=r(135),y=r(18),O=r(6);let b=class extends y.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.debugProtectionFunctionName=e,this.callsControllerFunctionName=t}getNodeStructure(e){return O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(h.DebugProtectionFunctionCallTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName,callControllerFunctionName:this.callsControllerFunctionName})}};c([N.initializable(),l("design:type",String)],b.prototype,"callsControllerFunctionName",void 0),c([N.initializable(),l("design:type",String)],b.prototype,"debugProtectionFunctionName",void 0),b=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],b),t.DebugProtectionFunctionCallCodeHelper=b},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallTemplate=void 0,t.DebugProtectionFunctionCallTemplate=function(){return"\n (function () {\n {callControllerFunctionName}(\n this,\n function () {\n const regExp1 = new RegExp('function *\\\\( *\\\\)');\n const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i');\n \n const result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n }\n )();\n })();\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),N=r(8),h=r(137),y=r(18),O=r(6);let b=class extends y.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(h.DebugProtectionFunctionIntervalTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([N.initializable(),l("design:type",String)],b.prototype,"debugProtectionFunctionName",void 0),b=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],b),t.DebugProtectionFunctionIntervalCodeHelper=b},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=void 0,t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),N=r(20),h=r(8),y=r(139),O=r(140),b=r(141),E=r(18),I=r(6);let C=class extends E.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==N.ObfuscationTarget.BrowserNoEval?y.DebuggerTemplate():O.DebuggerTemplateNoEval();return this.customCodeHelperFormatter.formatTemplate(b.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([h.initializable(),l("design:type",String)],C.prototype,"debugProtectionFunctionName",void 0),C=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],C),t.DebugProtectionFunctionCodeHelper=C},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplate=void 0,t.DebuggerTemplate=function(){return"\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplateNoEval=void 0,t.DebuggerTemplateNoEval=function(){return"\n if (typeof counter === 'string') {\n const func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionTemplate=void 0,t.DebugProtectionFunctionTemplate=function(){return"\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(51),N=r(2),h=r(3),y=r(20),O=r(8),b=r(143),E=r(38),I=r(18),C=r(6);let T=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.cryptUtils=i}initialize(e,t){this.callsControllerFunctionName=e,this.domainLockFunctionName=t}getNodeStructure(e){return C.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.domainLock.join(";"),[t,r]=this.cryptUtils.hideString(e,3*e.length),o=this.options.target!==y.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():E.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(b.DomainLockTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,domainLockFunctionName:this.domainLockFunctionName,diff:r,domains:t,globalVariableTemplate:o})}};l([O.initializable(),d("design:type",String)],T.prototype,"callsControllerFunctionName",void 0),l([O.initializable(),d("design:type",String)],T.prototype,"domainLockFunctionName",void 0),T=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),u(5,f.inject(p.ServiceIdentifiers.ICryptUtils)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object,"function"==typeof(c=void 0!==S.ICryptUtils&&S.ICryptUtils)?c:Object])],T),t.DomainLockCodeHelper=T},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockTemplate=void 0,t.DomainLockTemplate=function(){return'\n const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n const func = function () {\n return {\n key: \'item\',\n value: \'attribute\',\n getAttribute: function () {\n for (let i = 0; i < 1000; i--) {\n const isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + \'_\' + this.value + \'_\' + i;\n default:\n this.item + \'_\' + this.value;\n }\n }\n }()\n };\n };\n \n const regExp = new RegExp("[{diff}]", "g");\n const domains = "{domains}".replace(regExp, "").split(";");\n let document;\n let domain;\n let location;\n let hostname;\n\n for (let d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (let d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!("~" > domain)) {\n for (let d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (let d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n const documentDomain = that[document][domain];\n const documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n const currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n let ok = false;\n \n for (let i = 0; i < domains.length; i++) {\n const domain = domains[i];\n const position = currentDomain.length - domain.length;\n const lastIndex = currentDomain.indexOf(domain, position);\n const endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n '}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsControllerFunctionCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(14),_=r(10),S=r(2),N=r(3),h=r(25),y=r(8),O=r(145),b=r(18),E=r(6);let I=class extends b.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.appendEvent=e,this.callsControllerFunctionName=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.appendEvent===h.ObfuscationEvent.AfterObfuscation?this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(O.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})):this.customCodeHelperFormatter.formatTemplate(O.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})}};l([y.initializable(),d("design:type",String)],I.prototype,"callsControllerFunctionName",void 0),l([y.initializable(),d("design:type","function"==typeof(o=void 0!==h.ObfuscationEvent&&h.ObfuscationEvent)?o:Object)],I.prototype,"appendEvent",void 0),I=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==_.ICustomCodeHelperFormatter&&_.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==S.IOptions&&S.IOptions)?c:Object])],I),t.CallsControllerFunctionCodeHelper=I},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleCallControllerTemplate=void 0,t.SingleCallControllerTemplate=function(){return"\n const {callControllerFunctionName} = (function(){\n let firstCall = true;\n \n return function (context, fn){\n const rfn = firstCall ? function(){\n if(fn){\n const res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingUnicodeCodeHelper=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(14),_=r(2),S=r(3),N=r(20),h=r(8),y=r(147),O=r(148),b=r(18),E=r(6),I=r(38);let C=class extends b.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.callsControllerFunctionName=e,this.selfDefendingFunctionName=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==N.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():I.GlobalVariableNoEvalTemplate(),t=this.options.target!==N.ObfuscationTarget.BrowserNoEval?y.SelfDefendingTemplate():O.SelfDefendingNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(t,{callControllerFunctionName:this.callsControllerFunctionName,selfDefendingFunctionName:this.selfDefendingFunctionName,globalVariableTemplate:e})}};c([h.initializable(),l("design:type",String)],C.prototype,"callsControllerFunctionName",void 0),c([h.initializable(),l("design:type",String)],C.prototype,"selfDefendingFunctionName",void 0),C=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],C),t.SelfDefendingUnicodeCodeHelper=C},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n const test = function () {\n const regExp = test\n .constructor('return /\" + this + \"/')()\n .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingNoEvalTemplate=void 0,t.SelfDefendingNoEvalTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n \n const test = function () {\n const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(39),N=r(2),h=r(3),y=r(20),O=r(28),b=r(8),E=r(150),I=r(38),C=r(151),T=r(152),v=r(153),R=r(154),M=r(155),A=r(18),F=r(6);let D=class extends A.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t){this.stringArrayName=e,this.stringArrayCallsWrapperName=t}getNodeStructure(e){return F.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.getDecodeStringArrayTemplate(),t=[`^${this.stringArrayName}$`];return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(R.StringArrayCallsWrapperTemplate(),{decodeCodeHelperTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}),{reservedNames:t})}getDecodeStringArrayTemplate(){const e=this.options.target!==y.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():I.GlobalVariableNoEvalTemplate(),t=this.customCodeHelperFormatter.formatTemplate(E.AtobTemplate(),{globalVariableTemplate:e});let r="",o="";switch(this.options.selfDefending&&(o=this.customCodeHelperFormatter.formatTemplate(T.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName})),this.options.stringArrayEncoding){case O.StringArrayEncoding.Rc4:r=this.customCodeHelperFormatter.formatTemplate(M.StringArrayRC4DecodeTemplate(this.randomGenerator),{atobPolyfill:t,selfDefendingCode:o,rc4Polyfill:C.Rc4Template(),stringArrayCallsWrapperName:this.stringArrayCallsWrapperName});break;case O.StringArrayEncoding.Base64:r=this.customCodeHelperFormatter.formatTemplate(v.StringArrayBase64DecodeTemplate(this.randomGenerator),{atobPolyfill:t,selfDefendingCode:o,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}return r}};l([b.initializable(),d("design:type",String)],D.prototype,"stringArrayName",void 0),l([b.initializable(),d("design:type",String)],D.prototype,"stringArrayCallsWrapperName",void 0),D=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),u(5,f.inject(p.ServiceIdentifiers.IEscapeSequenceEncoder)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object,"function"==typeof(c=void 0!==S.IEscapeSequenceEncoder&&S.IEscapeSequenceEncoder)?c:Object])],D),t.StringArrayCallsWrapperCodeHelper=D},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=void 0;const o=r(40),n=r(33),i=r(52);t.AtobTemplate=function(){return`\n (function () {\n {globalVariableTemplate}\n \n const chars = '${o.alphabetStringUppercase}${n.alphabetString}${i.numbersString}+/=';\n\n that.atob || (\n that.atob = function(input) {\n const str = String(input).replace(/=+$/, '');\n let output = '';\n for (\n let bc = 0, bs, buffer, idx = 0;\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n );\n })();\n `}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Rc4Template=void 0,t.Rc4Template=function(){return"\n const rc4 = function (str, key) {\n let s = [], j = 0, x, res = '', newStr = '';\n \n str = atob(str);\n \n for (let k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n let i;\n \t \n\t for (i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (let y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e,t){const r=e.getRandomString(6),o=e.getRandomString(6),n=e.getRandomString(6),i=e.getRandomString(6),a=e.getRandomString(6),s=e.getRandomString(6),c=e.getRandomString(6),l=e.getRandomString(6),d=e.getRandomString(6);return`\n const StatesClass = function (${r}) {\n this.${r} = ${r};\n this.${o} = [1, 0, 0];\n this.${n} = function(){return 'newState';};\n this.${i} = '${t.encode("\\w+ *\\(\\) *{\\w+ *",!0)}';\n this.${a} = '${t.encode("['|\"].+['|\"];? *}",!0)}';\n };\n \n StatesClass.prototype.${s} = function () {\n const regExp = new RegExp(this.${i} + this.${a});\n const expression = regExp.test(this.${n}.toString())\n ? --this.${o}[1]\n : --this.${o}[0];\n \n return this.${c}(expression);\n };\n \n StatesClass.prototype.${c} = function (${d}) {\n if (!Boolean(~${d})) {\n return ${d};\n }\n \n return this.${l}(this.${r});\n };\n\n StatesClass.prototype.${l} = function (${r}) {\n for (let i = 0, len = this.${o}.length; i < len; i++) {\n this.${o}.push(Math.round(Math.random()));\n len = this.${o}.length;\n }\n \n return ${r}(this.${o}[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).${s}();\n `}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayBase64DecodeTemplate=void 0,t.StringArrayBase64DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),o=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.${r} = function (str) {\n const string = atob(str);\n let newStringChars = [];\n \n for (let i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.${o} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${o}[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.${r}(value);\n {stringArrayCallsWrapperName}.${o}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=void 0,t.StringArrayCallsWrapperTemplate=function(){return"\n const {stringArrayCallsWrapperName} = function (index, key) {\n index = index - 0;\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRC4DecodeTemplate=void 0,t.StringArrayRC4DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),o=e.getRandomString(6),n=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.${r} = rc4;\n \n {stringArrayCallsWrapperName}.${o} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${o}[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.${n} === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.${n} = true;\n }\n \n value = {stringArrayCallsWrapperName}.${r}(value, key);\n {stringArrayCallsWrapperName}.${o}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(2),N=r(3),h=r(37),y=r(8),O=r(157),b=r(18),E=r(6);let I=class extends b.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.stringArrayStorage=e,this.stringArrayName=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(O.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArray:this.stringArrayStorage.toString()})}};l([y.initializable(),d("design:type","function"==typeof(o=void 0!==h.IStringArrayStorage&&h.IStringArrayStorage)?o:Object)],I.prototype,"stringArrayStorage",void 0),l([y.initializable(),d("design:type",String)],I.prototype,"stringArrayName",void 0),I=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==S.IOptions&&S.IOptions)?c:Object])],I),t.StringArrayCodeHelper=I},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=void 0,t.StringArrayTemplate=function(){return"\n const {stringArrayName} = [{stringArray}];\n "}},function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionCodeHelper=void 0;const f=r(0),p=r(1),m=r(5),g=r(10),_=r(14),S=r(39),N=r(2),h=r(3),y=r(8),O=r(159),b=r(160),E=r(18),I=r(6),C=r(41);let T=class extends E.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t){this.stringArrayName=e,this.stringArrayRotationAmount=t}getNodeStructure(e){return I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.identifierNamesGenerator.generateNext(),t=this.identifierNamesGenerator.generateNext(),r=[`^${this.stringArrayName}$`];let o="";return o=this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(O.SelfDefendingTemplate(this.escapeSequenceEncoder),{timesName:e,whileFunctionName:t}):`${t}(++${e})`,this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(b.StringArrayRotateFunctionTemplate(),{code:o,timesName:e,whileFunctionName:t,stringArrayName:this.stringArrayName,stringArrayRotationAmount:C.NumberUtils.toHex(this.stringArrayRotationAmount)}),{reservedNames:r})}};l([y.initializable(),d("design:type",String)],T.prototype,"stringArrayName",void 0),l([y.initializable(),d("design:type",Number)],T.prototype,"stringArrayRotationAmount",void 0),T=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),u(5,f.inject(p.ServiceIdentifiers.IEscapeSequenceEncoder)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==_.ICustomCodeHelperObfuscator&&_.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object,"function"==typeof(c=void 0!==S.IEscapeSequenceEncoder&&S.IEscapeSequenceEncoder)?c:Object])],T),t.StringArrayRotateFunctionCodeHelper=T},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e){return`\n const selfDefendingFunc = function () {\n const object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n let updatedCookie = name + "=" + value;\n let i = 0;\n \n for (let i = 0, len = options.length; i < len; i++) {\n const propName = options[i];\n \n updatedCookie += "; " + propName;\n \n const propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += "=" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n const matches = document(new RegExp(\n "(?:^|; )" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + "=([^;]*)"\n ));\n \n const func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n const test1 = function () {\n const regExp = new RegExp('${e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0)}');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n let cookie = '';\n const result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n `}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionTemplate=void 0,t.StringArrayRotateFunctionTemplate=function(){return"\n (function (array, {timesName}) {\n const {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, {stringArrayRotationAmount});\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customNodesModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(22),s=r(66),c=r(68),l=r(162),d=r(163),u=r(164),f=r(165),p=r(166),m=r(167),g=r(168),_=r(170),S=r(171),N=r(172),h=r(173);t.customNodesModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(d.BinaryExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(u.BlockStatementControlFlowFlatteningNode).whenTargetNamed(a.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(p.CallExpressionControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(m.CallExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(g.ControlFlowStorageNode).whenTargetNamed(a.ControlFlowCustomNode.ControlFlowStorageNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(_.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(S.LogicalExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.StringLiteralNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.StringLiteralControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(f.BlockStatementDeadCodeInjectionNode).whenTargetNamed(s.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(l.ObjectExpressionVariableDeclarationHostNode).whenTargetNamed(c.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode),e(i.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions,i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),e(i.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions,i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer))})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionVariableDeclarationHostNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(15),S=r(7),N=r(4);let h=class extends _.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.lexicalScopeNode=e,this.properties=t}getNodeStructure(){const e=N.NodeGuards.isProgramNode(this.lexicalScopeNode)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);return[S.NodeFactory.variableDeclarationNode([S.NodeFactory.variableDeclaratorNode(S.NodeFactory.identifierNode(e),S.NodeFactory.objectExpressionNode(this.properties))],"const")]}};h=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.ObjectExpressionVariableDeclarationHostNode=h},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionFunctionNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(15),S=r(7),N=r(6);let h=class extends _.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=S.NodeFactory.expressionStatementNode(S.NodeFactory.functionExpressionNode([S.NodeFactory.identifierNode("x"),S.NodeFactory.identifierNode("y")],S.NodeFactory.blockStatementNode([S.NodeFactory.returnStatementNode(S.NodeFactory.binaryExpressionNode(this.operator,S.NodeFactory.identifierNode("x"),S.NodeFactory.identifierNode("y")))])));return N.NodeUtils.parentizeAst(e),[e]}};h=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.BinaryExpressionFunctionNode=h},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowFlatteningNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),N=r(7),h=r(4),y=r(6);let O=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r){this.blockStatementBody=e,this.shuffledKeys=t,this.originalKeysIndexesInShuffledArray=r}getNodeStructure(){const e=this.randomGenerator.getRandomString(6),t=this.randomGenerator.getRandomString(6),r=N.NodeFactory.blockStatementNode([N.NodeFactory.variableDeclarationNode([N.NodeFactory.variableDeclaratorNode(N.NodeFactory.identifierNode(e),N.NodeFactory.callExpressionNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join("|")),N.NodeFactory.identifierNode("split")),[N.NodeFactory.literalNode("|")]))],"const"),N.NodeFactory.variableDeclarationNode([N.NodeFactory.variableDeclaratorNode(N.NodeFactory.identifierNode(t),N.NodeFactory.literalNode(0))],"let"),N.NodeFactory.whileStatementNode(N.NodeFactory.literalNode(!0),N.NodeFactory.blockStatementNode([N.NodeFactory.switchStatementNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.identifierNode(e),N.NodeFactory.updateExpressionNode("++",N.NodeFactory.identifierNode(t)),!0),this.shuffledKeys.map((e,t)=>{const r=this.blockStatementBody[e],o=[r];return h.NodeGuards.isReturnStatementNode(r)||o.push(N.NodeFactory.continueStatement()),N.NodeFactory.switchCaseNode(N.NodeFactory.literalNode(String(t)),o)})),N.NodeFactory.breakStatement()]))]);return y.NodeUtils.parentizeAst(r),[r]}};s([_.initializable(),c("design:type",Array)],O.prototype,"blockStatementBody",void 0),s([_.initializable(),c("design:type",Array)],O.prototype,"originalKeysIndexesInShuffledArray",void 0),s([_.initializable(),c("design:type",Array)],O.prototype,"shuffledKeys",void 0),O=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],O),t.BlockStatementControlFlowFlatteningNode=O},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementDeadCodeInjectionNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(15),S=r(7),N=r(6);let h=class extends _.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.blockStatementNode=e,this.deadCodeInjectionRootAstHostNode=t}getNode(){return this.getNodeStructure()}getNodeStructure(){const e=this.randomGenerator.getMathRandom()>.5,t=this.randomGenerator.getMathRandom()>.5,r=e?"===":"!==",o=this.randomGenerator.getRandomString(5),n=t?o:this.randomGenerator.getRandomString(5),[i,a]=e===t?[this.blockStatementNode,this.deadCodeInjectionRootAstHostNode]:[this.deadCodeInjectionRootAstHostNode,this.blockStatementNode],s=S.NodeFactory.blockStatementNode([S.NodeFactory.ifStatementNode(S.NodeFactory.binaryExpressionNode(r,S.NodeFactory.literalNode(o),S.NodeFactory.literalNode(n)),i,a)]);return N.NodeUtils.parentizeAst(s),[s]}};h=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.BlockStatementDeadCodeInjectionNode=h},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowStorageCallNode=void 0;const u=r(0),f=r(1),p=r(5),m=r(10),g=r(2),_=r(3),S=r(8),N=r(15),h=r(7),y=r(6);let O=class extends N.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r,o){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.callee=r,this.expressionArguments=o}getNodeStructure(){const e=h.NodeFactory.expressionStatementNode(h.NodeFactory.callExpressionNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.identifierNode(this.controlFlowStorageName),h.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.callee,...this.expressionArguments]));return y.NodeUtils.parentizeAst(e),[e]}};c([S.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof ESTree&&ESTree.Expression)?o:Object)],O.prototype,"callee",void 0),c([S.initializable(),l("design:type",String)],O.prototype,"controlFlowStorageKey",void 0),c([S.initializable(),l("design:type",String)],O.prototype,"controlFlowStorageName",void 0),c([S.initializable(),l("design:type",Array)],O.prototype,"expressionArguments",void 0),O=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],O),t.CallExpressionControlFlowStorageCallNode=O},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionFunctionNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),N=r(7),h=r(6);let y=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.expressionArguments=e}getNodeStructure(){const e=N.NodeFactory.identifierNode("callee"),t=[],r=this.expressionArguments.length;for(let e=0;e=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorageNode=void 0;const u=r(0),f=r(1),p=r(169),m=r(5),g=r(10),_=r(2),S=r(3),N=r(8),h=r(15),y=r(7),O=r(4),b=r(6);let E=class extends h.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.controlFlowStorage=e}getNodeStructure(){const e=Array.from(this.controlFlowStorage.getStorage()).map(([e,t])=>{const r=t.getNode()[0];if(!O.NodeGuards.isExpressionStatementNode(r))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");return y.NodeFactory.propertyNode(y.NodeFactory.identifierNode(e),r.expression)});let t=y.NodeFactory.variableDeclarationNode([y.NodeFactory.variableDeclaratorNode(y.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),y.NodeFactory.objectExpressionNode(e))],"const");return t=b.NodeUtils.parentizeAst(t),[t]}};c([N.initializable(),l("design:type","function"==typeof(o=void 0!==p.TControlFlowStorage&&p.TControlFlowStorage)?o:Object)],E.prototype,"controlFlowStorage",void 0),E=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==_.IOptions&&_.IOptions)?s:Object])],E),t.ControlFlowStorageNode=E},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowStorageCallNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),N=r(7),h=r(6);let y=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r,o){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.leftValue=r,this.rightValue=o}getNodeStructure(){const e=N.NodeFactory.expressionStatementNode(N.NodeFactory.callExpressionNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.identifierNode(this.controlFlowStorageName),N.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.leftValue,this.rightValue]));return h.NodeUtils.parentizeAst(e),[e]}};s([_.initializable(),c("design:type",String)],y.prototype,"controlFlowStorageKey",void 0),s([_.initializable(),c("design:type",String)],y.prototype,"controlFlowStorageName",void 0),y=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],y),t.ExpressionWithOperatorControlFlowStorageCallNode=y},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionFunctionNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(15),S=r(7),N=r(6);let h=class extends _.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=S.NodeFactory.expressionStatementNode(S.NodeFactory.functionExpressionNode([S.NodeFactory.identifierNode("x"),S.NodeFactory.identifierNode("y")],S.NodeFactory.blockStatementNode([S.NodeFactory.returnStatementNode(S.NodeFactory.logicalExpressionNode(this.operator,S.NodeFactory.identifierNode("x"),S.NodeFactory.identifierNode("y")))])));return N.NodeUtils.parentizeAst(e),[e]}};h=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.LogicalExpressionFunctionNode=h},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowStorageCallNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),N=r(7),h=r(6);let y=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.controlFlowStorageName=e,this.controlFlowStorageKey=t}getNodeStructure(){const e=N.NodeFactory.expressionStatementNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.identifierNode(this.controlFlowStorageName),N.NodeFactory.identifierNode(this.controlFlowStorageKey)));return h.NodeUtils.parentizeAst(e),[e]}};s([_.initializable(),c("design:type",String)],y.prototype,"controlFlowStorageKey",void 0),s([_.initializable(),c("design:type",String)],y.prototype,"controlFlowStorageName",void 0),y=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],y),t.StringLiteralControlFlowStorageCallNode=y},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralNode=void 0;const d=r(0),u=r(1),f=r(5),p=r(10),m=r(2),g=r(3),_=r(8),S=r(15),N=r(7);let h=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.literalValue=e}getNodeStructure(){return[N.NodeFactory.expressionStatementNode(N.NodeFactory.literalNode(this.literalValue))]}};s([_.initializable(),c("design:type",String)],h.prototype,"literalValue",void 0),h=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.StringLiteralNode=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.finalizingTransformersModule=void 0;const o=r(0);t.finalizingTransformersModule=new o.ContainerModule(e=>{})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generatorsModule=void 0;const o=r(0),n=r(1),i=r(34),a=r(176),s=r(177),c=r(178);t.generatorsModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(a.DictionaryIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(s.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(c.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator),e(n.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function(){let e=null;return t=>r=>{if(e)return e;let o;switch(r.identifierNamesGenerator){case i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return e=o,o}}())})},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DictionaryIdentifierNamesGenerator=void 0;const d=r(0),u=r(1),f=r(36),p=r(2),m=r(3),g=r(53),_=r(24);let S=o=class extends g.AbstractIdentifierNamesGenerator{constructor(e,t,r){super(e,t),this.arrayUtils=r,this.identifierNamesSet=new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary)),this.identifiersIterator=this.identifierNamesSet.values()}static incrementIdentifierName(e){let t="",r=!1;for(const o of e)r||o!==o.toUpperCase()?r||o!==o.toLowerCase()?t+=o:(t+=o.toUpperCase(),r=!0):t+=o.toLowerCase();return r?t:null}generateNext(){const e=this.generateNewDictionaryName();return this.preserveName(e),e}generateForGlobalScope(){const e=`${this.options.identifiersPrefix?`${this.options.identifiersPrefix}`:""}${this.generateNewDictionaryName()}`;return this.isValidIdentifierName(e)?(this.preserveName(e),e):this.generateForGlobalScope()}generateForLexicalScope(e){const t=[e,..._.NodeLexicalScopeUtils.getLexicalScopes(e)],r=this.generateNewDictionaryName();return this.isValidIdentifierNameInLexicalScopes(r,t)?(this.preserveNameForLexicalScope(r,e),r):this.generateForLexicalScope(e)}generateNewDictionaryName(){if(!this.identifierNamesSet.size)throw new Error("Too many identifiers in the code, add more words to identifiers dictionary");const e=this.identifiersIterator.next();if(!e.done){const t=e.value;return this.isValidIdentifierName(t)?e.value:this.generateNewDictionaryName()}return this.identifierNamesSet=new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet])),this.identifiersIterator=this.identifierNamesSet.values(),this.generateNewDictionaryName()}getInitialIdentifierNames(e){const t=e.filter(Boolean).map(e=>e.toLowerCase());return this.arrayUtils.shuffle(t)}getIncrementedIdentifierNames(e){const t=[];for(const r of e){const e=o.incrementIdentifierName(r);e&&t.push(e)}return this.arrayUtils.shuffle(t)}};S=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(1,d.inject(u.ServiceIdentifiers.IOptions)),l(2,d.inject(u.ServiceIdentifiers.IArrayUtils)),c("design:paramtypes",["function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object,"function"==typeof(a=void 0!==f.IArrayUtils&&f.IArrayUtils)?a:Object])],S),t.DictionaryIdentifierNamesGenerator=S},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HexadecimalIdentifierNamesGenerator=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(53),m=r(41),g=r(26);let _=o=class extends p.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t)}generateNext(e){const t=this.randomGenerator.getRandomInteger(1e4,99999999),r=m.NumberUtils.toHex(t),n=g.Utils.hexadecimalPrefix.length,i=(null!=e?e:o.baseIdentifierNameLength)+n,a=`_${r.substr(0,i)}`;return this.isValidIdentifierName(a)?(this.preserveName(a),a):this.generateNext(e)}generateForGlobalScope(e){const t=this.generateNext(e);return`${this.options.identifiersPrefix}${t}`.replace("__","_")}generateForLexicalScope(e,t){return this.generateNext(t)}};_.baseIdentifierNameLength=6,_=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],_),t.HexadecimalIdentifierNamesGenerator=_},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledIdentifierNamesGenerator=void 0;const l=r(0),d=r(1),u=r(2),f=r(3),p=r(52),m=r(33),g=r(40),_=r(53),S=r(24);let N=o=class extends _.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t),this.previousMangledName=o.initMangledNameCharacter}generateNext(e){const t=this.generateNewMangledName(this.previousMangledName);return this.previousMangledName=t,this.preserveName(t),t}generateForGlobalScope(e){const t=this.options.identifiersPrefix?`${this.options.identifiersPrefix}`:"",r=this.generateNewMangledName(this.previousMangledName),o=`${t}${r}`;return this.previousMangledName=r,this.isValidIdentifierName(o)?(this.preserveName(o),o):this.generateForGlobalScope(e)}generateForLexicalScope(e,t){const r=[e,...S.NodeLexicalScopeUtils.getLexicalScopes(e)];let n=this.getLastMangledNameForScopes(r);do{n=this.generateNewMangledName(n)}while(!this.isValidIdentifierNameInLexicalScopes(n,r));return o.lastMangledNameInScopeMap.set(e,n),this.preserveNameForLexicalScope(n,e),n}isValidIdentifierName(e){return super.isValidIdentifierName(e)&&!o.reservedNamesSet.has(e)}generateNewMangledName(e){let t=(e=>{const t=o.nameSequence,r=t.length,n=e.length,i=e=>"0".repeat(e);let a=n-1;do{const o=e[a],s=t.indexOf(o);if(s!==r-1){return e.substring(0,a)+t[s+1]+i(n-(a+1))}--a}while(a>=0);return`a${i(n)}`})(e);return this.isValidIdentifierName(t)||(t=this.generateNewMangledName(t)),t}getLastMangledNameForScopes(e){var t;for(const r of e){const e=null!==(t=o.lastMangledNameInScopeMap.get(r))&&void 0!==t?t:null;if(e)return e}return o.initMangledNameCharacter}};N.initMangledNameCharacter="9",N.lastMangledNameInScopeMap=new WeakMap,N.nameSequence=`${p.numbersString}${m.alphabetString}${g.alphabetStringUppercase}`.split(""),N.reservedNamesSet=new Set(["byte","case","char","do","else","enum","eval","for","goto","if","in","int","let","long","new","null","this","true","try","var","void","with"]),N=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],N),t.MangledIdentifierNamesGenerator=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializingTransformersModule=void 0;const o=r(0),n=r(1),i=r(13),a=r(180);t.initializingTransformersModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.CommentsTransformer).whenTargetNamed(i.NodeTransformer.CommentsTransformer)})},function(e,t,r){"use strict";var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsTransformer=void 0;const f=r(0),p=r(1),m=l(r(12)),g=r(2),_=r(3),S=r(9),N=r(11),h=r(71),y=r(4);let O=o=class extends N.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Initializing:return{leave:e=>{if(y.NodeGuards.isProgramNode(e))return this.transformNode(e)}};case S.NodeTransformationStage.Finalizing:return{leave:e=>{if(y.NodeGuards.isProgramNode(e))return this.filterCommentsOnFinalizingTraverse(e)}};default:return null}}transformNode(e){if(!(e=this.filterCommentsOnPrimaryTraverse(e)).comments||!e.comments.length)return e;const t=e.comments.reverse();if(0===t.length)return e;if(!e.body.length)return e.leadingComments=t,e;let r=!0;return m.traverse(e,{enter:o=>{if(o===e)return;const n=t.findIndex(e=>e.range&&o.range&&e.range[0]=0&&((r?e:o).leadingComments=t.splice(n,t.length-n).reverse()),r=!1}}),t.length>0&&(e.trailingComments=t.reverse()),e}filterCommentsOnPrimaryTraverse(e){var t;return e.comments=null===(t=e.comments)||void 0===t?void 0:t.filter(e=>this.filterComment(e,!0)),e}filterCommentsOnFinalizingTraverse(e){return m.replace(e,{enter:e=>{var t,r;return e.leadingComments&&(e.leadingComments=null===(t=e.leadingComments)||void 0===t?void 0:t.filter(e=>this.filterComment(e,!1))),e.trailingComments&&(e.trailingComments=null===(r=e.trailingComments)||void 0===r?void 0:r.filter(e=>this.filterComment(e,!1))),e}}),e}filterComment(e,t){return!(!t||!h.ConditionalCommentObfuscatingGuard.isConditionalComment(e))||o.preservedWords.some(t=>e.value.includes(t))}};O.preservedWords=["@license","@preserve"],O=o=c([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(1,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object])],O),t.CommentsTransformer=O},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.minificationTransformersModule=void 0;const o=r(0),n=r(1),i=r(13),a=r(182),s=r(183);t.minificationTransformersModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.IfStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.IfStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.VariableDeclarationsMergeTransformer).whenTargetNamed(i.NodeTransformer.VariableDeclarationsMergeTransformer)})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IfStatementSimplifyTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(9),p=r(11),m=r(4),g=r(7);let _=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t),this.ifStatementBlockStatementsWithReturnStatementSet=new Set}getVisitor(e){switch(e){case f.NodeTransformationStage.Minification:return{leave:(e,t)=>{if(t&&m.NodeGuards.isIfStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.isValidIfStatementBlockStatementForConvert(e.consequent)){const t=this.toExpression(e.consequent.body);if(!t)return e;if(e.alternate){if(this.isValidIfStatementBlockStatementForConvert(e.alternate)){const r=this.toExpression(e.alternate.body);return r?this.ifStatementBlockStatementsWithReturnStatementSet.has(e.consequent)&&this.ifStatementBlockStatementsWithReturnStatementSet.has(e.alternate)?g.NodeFactory.returnStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t,r)):this.ifStatementBlockStatementsWithReturnStatementSet.has(e.consequent)?g.NodeFactory.ifStatementNode(e.test,g.NodeFactory.returnStatementNode(t),g.NodeFactory.expressionStatementNode(r)):this.ifStatementBlockStatementsWithReturnStatementSet.has(e.alternate)?g.NodeFactory.ifStatementNode(e.test,g.NodeFactory.expressionStatementNode(t),g.NodeFactory.returnStatementNode(r)):g.NodeFactory.expressionStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t,r)):e}return e}return this.ifStatementBlockStatementsWithReturnStatementSet.has(e.consequent)?g.NodeFactory.ifStatementNode(e.test,g.NodeFactory.returnStatementNode(t)):g.NodeFactory.expressionStatementNode(g.NodeFactory.logicalExpressionNode("&&",e.test,t))}return e}isValidIfStatementBlockStatementForConvert(e){if(!m.NodeGuards.isBlockStatementNode(e))return!1;let t=!0;for(const r of e.body){if(!m.NodeGuards.isExpressionStatementNode(r)&&!m.NodeGuards.isReturnStatementNode(r)){t=!1;break}m.NodeGuards.isReturnStatementNode(r)&&this.ifStatementBlockStatementsWithReturnStatementSet.add(e)}return t}toExpression(e){const t=e.map(e=>m.NodeGuards.isExpressionStatementNode(e)?e.expression:m.NodeGuards.isReturnStatementNode(e)?e.argument:e).filter(e=>!!e);return t.length?1===t.length?t[0]:g.NodeFactory.sequenceExpressionNode(t):null}};_=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],_),t.IfStatementSimplifyTransformer=_},function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariableDeclarationsMergeTransformer=void 0;const u=r(0),f=r(1),p=c(r(12)),m=r(2),g=r(3),_=r(9),S=r(11),N=r(4),h=r(17);let y=class extends S.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case _.NodeTransformationStage.Minification:return{enter:(e,t)=>{if(t&&N.NodeGuards.isVariableDeclarationNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!N.NodeGuards.isNodeWithStatements(t))return e;const r=h.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&N.NodeGuards.isVariableDeclarationNode(r)?e.kind!==r.kind?e:(r.declarations.push(...e.declarations),p.VisitorOption.Remove):e}};y=s([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(1,u.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==m.IOptions&&m.IOptions)?n:Object])],y),t.VariableDeclarationsMergeTransformer=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeModule=void 0;const o=r(0),n=r(1),i=r(185);t.nodeModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.IScopeIdentifiersTraverser).to(i.ScopeIdentifiersTraverser).inSingletonScope()})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTraverser=void 0;const c=r(0),l=r(1),d=r(186),u=r(4);let f=o=class{constructor(e){this.scopeAnalyzer=e}traverse(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeVariables(o,o,r)}traverseScopeVariables(e,t,r){const n=t.variableScope,i=u.NodeGuards.isNodeWithBlockLexicalScope(n.block)?n.block:null,a=o.globalScopeNames.includes(n.type);if(i){for(const s of t.variables){if(s.name===o.argumentsVariableName)continue;r({isGlobalDeclaration:a,isBubblingDeclaration:s.identifiers.some(e=>e.parentNode&&u.NodeGuards.isPropertyNode(e.parentNode)&&e.parentNode.shorthand),rootScope:e,variable:s,variableScope:n,variableLexicalScopeNode:i})}for(const o of t.childScopes)this.traverseScopeVariables(e,o,r)}}};f.argumentsVariableName="arguments",f.globalScopeNames=["global","module"],f=o=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IScopeAnalyzer)),a("design:paramtypes",["function"==typeof(n=void 0!==d.IScopeAnalyzer&&d.IScopeAnalyzer)?n:Object])],f),t.ScopeIdentifiersTraverser=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(188);t.nodeTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.Factory__INodeTransformer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeTransformer)),e(i.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder).to(a.NodeTransformerNamesGroupsBuilder).inSingletonScope()})},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformerNamesGroupsBuilder=void 0;const n=r(0),i=r(59);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.NodeTransformerNamesGroupsBuilder=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.obfuscatingTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(42),s=r(72),c=r(13),l=r(190),d=r(191),u=r(192),f=r(193),p=r(195),m=r(196),g=r(197);t.obfuscatingTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(u.LabeledStatementTransformer).whenTargetNamed(c.NodeTransformer.LabeledStatementTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.LiteralTransformer).whenTargetNamed(c.NodeTransformer.LiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ScopeIdentifiersTransformer).whenTargetNamed(c.NodeTransformer.ScopeIdentifiersTransformer),e(i.ServiceIdentifiers.IObfuscatingReplacer).to(d.BooleanLiteralObfuscatingReplacer).whenTargetNamed(s.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer),e(i.ServiceIdentifiers.IObfuscatingReplacer).to(p.NumberLiteralObfuscatingReplacer).whenTargetNamed(s.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer),e(i.ServiceIdentifiers.IObfuscatingReplacer).to(m.StringLiteralObfuscatingReplacer).whenTargetNamed(s.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer),e(i.ServiceIdentifiers.IIdentifierObfuscatingReplacer).to(l.BaseIdentifierObfuscatingReplacer).whenTargetNamed(a.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),e(i.ServiceIdentifiers.Factory__IObfuscatingReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IObfuscatingReplacer)),e(i.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IIdentifierObfuscatingReplacer))})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseIdentifierObfuscatingReplacer=void 0;const c=r(0),l=r(1),d=r(5),u=r(2),f=r(43),p=r(7);let m=class extends f.AbstractObfuscatingReplacer{constructor(e,t){super(t),this.blockScopesMap=new Map,this.identifierNamesGenerator=e(t)}replace(e,t){let r=e.name;if(this.blockScopesMap.has(t)){const e=this.blockScopesMap.get(t);e.has(r)&&(r=e.get(r))}return p.NodeFactory.identifierNode(r)}storeGlobalName(e,t){const r=e.name;if(this.isReservedName(r))return;const o=this.identifierNamesGenerator.generateForGlobalScope();this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,o)}storeLocalName(e,t){const r=e.name;if(this.isReservedName(r))return;const o=this.identifierNamesGenerator.generateForLexicalScope(t);this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,o)}preserveName(e){this.identifierNamesGenerator.preserveName(e.name)}preserveNameForLexicalScope(e,t){this.identifierNamesGenerator.preserveNameForLexicalScope(e.name,t)}isReservedName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}};m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.TIdentifierNamesGeneratorFactory&&d.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==u.IOptions&&u.IOptions)?n:Object])],m),t.BaseIdentifierObfuscatingReplacer=m},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanLiteralObfuscatingReplacer=void 0;const c=r(0),l=r(1),d=r(2),u=r(43),f=r(7);let p=o=class extends u.AbstractObfuscatingReplacer{constructor(e){super(e)}static getTrueUnaryExpressionNode(){return f.NodeFactory.unaryExpressionNode("!",o.getFalseUnaryExpressionNode())}static getFalseUnaryExpressionNode(){return f.NodeFactory.unaryExpressionNode("!",f.NodeFactory.arrayExpressionNode())}replace(e){const t=e.value;if("boolean"!=typeof t)throw new Error("`BooleanLiteralObfuscatingReplacer` should accept only literals with `boolean` value");return t?o.getTrueUnaryExpressionNode():o.getFalseUnaryExpressionNode()}};p=o=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],p),t.BooleanLiteralObfuscatingReplacer=p},function(e,t,r){"use strict";var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LabeledStatementTransformer=void 0;const f=r(0),p=r(1),m=l(r(12)),g=r(54),_=r(2),S=r(3),N=r(42),h=r(9),y=r(11),O=r(4),b=r(24);let E=class extends y.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.identifierObfuscatingReplacer=e(N.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer)}getVisitor(e){switch(e){case h.NodeTransformationStage.Obfuscating:return{enter:(e,t)=>{if(t&&O.NodeGuards.isLabeledStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=b.NodeLexicalScopeUtils.getLexicalScope(e);return r?(this.storeLabeledStatementName(e,r),this.replaceLabeledStatementName(e,r),e):e}storeLabeledStatementName(e,t){this.identifierObfuscatingReplacer.storeLocalName(e.label,t)}replaceLabeledStatementName(e,t){m.replace(e,{enter:(e,r)=>{if(r&&O.NodeGuards.isLabelIdentifierNode(e,r)){const r=this.identifierObfuscatingReplacer.replace(e,t);e.name=r.name}}})}};E=c([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),u(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(2,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierObfuscatingReplacerFactory&&g.TIdentifierObfuscatingReplacerFactory)?o:Object,"function"==typeof(n=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==_.IOptions&&_.IOptions)?i:Object])],E),t.LabeledStatementTransformer=E},function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LiteralTransformer=void 0;const u=r(0),f=r(1),p=r(194),m=r(39),g=r(2),_=r(3),S=r(73),N=r(72),h=r(9),y=r(11),O=r(7),b=r(4),E=r(48),I=r(19),C=r(6);let T=class extends y.AbstractNodeTransformer{constructor(e,t,r,o,n){super(t,r),this.literalObfuscatingReplacerFactory=e,this.stringArrayStorageAnalyzer=o,this.escapeSequenceEncoder=n}getVisitor(e){switch(e){case h.NodeTransformationStage.Obfuscating:return{enter:(e,t)=>{if(b.NodeGuards.isProgramNode(e)&&this.analyzeNode(e),t&&b.NodeGuards.isLiteralNode(e)&&!I.NodeMetadata.isReplacedLiteral(e))return this.transformNode(e,t)}};case h.NodeTransformationStage.Finalizing:return{enter:(e,t)=>{if(t&&b.NodeGuards.isLiteralNode(e))return this.encodeLiteralNodeToEscapeSequence(e,t)}};default:return null}}analyzeNode(e){this.stringArrayStorageAnalyzer.analyze(e)}transformNode(e,t){if(E.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;let r;switch(typeof e.value){case"boolean":r=this.literalObfuscatingReplacerFactory(N.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(e);break;case"number":case"bigint":r=this.literalObfuscatingReplacerFactory(N.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(e);break;case"string":r=this.literalObfuscatingReplacerFactory(N.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(e);break;default:r=e}return C.NodeUtils.parentizeNode(r,t),r}encodeLiteralNodeToEscapeSequence(e,t){return"string"!=typeof e.value?e:O.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(e.value,this.options.unicodeEscapeSequence))}};T=c([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__IObfuscatingReplacer)),d(1,u.inject(f.ServiceIdentifiers.IRandomGenerator)),d(2,u.inject(f.ServiceIdentifiers.IOptions)),d(3,u.inject(f.ServiceIdentifiers.IStringArrayStorageAnalyzer)),d(4,u.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),l("design:paramtypes",["function"==typeof(o=void 0!==p.TLiteralObfuscatingReplacerFactory&&p.TLiteralObfuscatingReplacerFactory)?o:Object,"function"==typeof(n=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object,"function"==typeof(a=void 0!==S.IStringArrayStorageAnalyzer&&S.IStringArrayStorageAnalyzer)?a:Object,"function"==typeof(s=void 0!==m.IEscapeSequenceEncoder&&m.IEscapeSequenceEncoder)?s:Object])],T),t.LiteralTransformer=T},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberLiteralObfuscatingReplacer=void 0;const s=r(0),c=r(1),l=r(2),d=r(43),u=r(7),f=r(41);let p=class extends d.AbstractObfuscatingReplacer{constructor(e){super(e),this.numberLiteralCache=new Map}replace(e){const t=e.value;if("number"!=typeof t&&"bigint"!=typeof t)throw new Error("`NumberLiteralObfuscatingReplacer` should accept only literals with `number` and `bigint` value");let r;return this.numberLiteralCache.has(t)?r=this.numberLiteralCache.get(t):(r=f.NumberUtils.isCeil(t)?f.NumberUtils.toHex(t):String(t),this.numberLiteralCache.set(t,r)),u.NodeFactory.literalNode(t,r)}};p=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IOptions&&l.IOptions)?o:Object])],p),t.NumberLiteralObfuscatingReplacer=p},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralObfuscatingReplacer=void 0;const d=r(0),u=r(1),f=r(2),p=r(37),m=r(73),g=r(28),_=r(43),S=r(19),N=r(7),h=r(41);let y=o=class extends _.AbstractObfuscatingReplacer{constructor(e,t,r){super(r),this.nodesCache=new Map,this.stringArrayStorage=e,this.stringArrayStorageAnalyzer=t}static getHexadecimalLiteralNode(e){const t=N.NodeFactory.literalNode(e);return S.NodeMetadata.set(t,{replacedLiteral:!0}),t}static getRc4KeyLiteralNode(e){const t=N.NodeFactory.literalNode(e);return S.NodeMetadata.set(t,{replacedLiteral:!0}),t}initialize(){this.options.shuffleStringArray&&this.stringArrayStorage.shuffleStorage(),this.options.rotateStringArray&&this.stringArrayStorage.rotateStorage()}replace(e){const t=e.value;if("string"!=typeof t)throw new Error("`StringLiteralObfuscatingReplacer` should accept only literals with `string` value");const r=this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(e),o=`${t}-${Boolean(r)}`;if(this.nodesCache.has(o)&&this.options.stringArrayEncoding!==g.StringArrayEncoding.Rc4)return this.nodesCache.get(o);const n=r?this.replaceWithStringArrayCallNode(r):this.replaceWithLiteralNode(t);return this.nodesCache.set(o,n),n}replaceWithLiteralNode(e){return N.NodeFactory.literalNode(e)}replaceWithStringArrayCallNode(e){const{index:t,decodeKey:r}=e,n=h.NumberUtils.toHex(t),i=[o.getHexadecimalLiteralNode(n)];r&&i.push(o.getRc4KeyLiteralNode(r));const a=N.NodeFactory.identifierNode(this.stringArrayStorage.getStorageCallsWrapperName());return N.NodeFactory.callExpressionNode(a,i)}};s([d.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],y.prototype,"initialize",null),y=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IStringArrayStorage)),l(1,d.inject(u.ServiceIdentifiers.IStringArrayStorageAnalyzer)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.IStringArrayStorage&&p.IStringArrayStorage)?n:Object,"function"==typeof(i=void 0!==m.IStringArrayStorageAnalyzer&&m.IStringArrayStorageAnalyzer)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],y),t.StringLiteralObfuscatingReplacer=y},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTransformer=void 0;const p=r(0),m=r(1),g=d(r(12)),_=r(54),S=r(2),N=r(3),h=r(74),y=r(42),O=r(9),b=r(11),E=r(4),I=r(19);let C=class extends b.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.lexicalScopesWithObjectPatternWithoutDeclarationMap=new Map,this.identifierObfuscatingReplacer=e(y.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case O.NodeTransformationStage.Obfuscating:return{enter:(e,t)=>{if(t&&E.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverse(e,t,e=>{const{isGlobalDeclaration:t,variable:r,variableLexicalScopeNode:o}=e;if(!this.options.renameGlobals&&t){if(!r.defs.every(e=>"ImportBinding"===e.type||"CatchClause"===e.type))return}this.transformScopeVariableIdentifiers(r,o,t)}),e}transformScopeVariableIdentifiers(e,t,r){var o;const n=null!==(o=e.identifiers[0])&&void 0!==o?o:null;n&&this.isReplaceableIdentifierNode(n,t,e)&&(this.storeIdentifierName(n,t,r),this.replaceIdentifierName(n,t,e))}storeIdentifierName(e,t,r){r?this.identifierObfuscatingReplacer.storeGlobalName(e,t):this.identifierObfuscatingReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierObfuscatingReplacer.replace(e,t);r.identifiers.forEach(e=>{e.name=o.name}),r.references.forEach(t=>{t.identifier.name=e.name})}isReplaceableIdentifierNode(e,t,r){const o=e.parentNode;return!(!o||I.NodeMetadata.isIgnoredNode(e)||this.isProhibitedPropertyNode(e,o)||this.isProhibitedClassDeclarationNameIdentifierNode(r,e,o)||this.isProhibitedExportNamedClassDeclarationIdentifierNode(e,o)||this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,o)||this.isProhibitedExportNamedVariableDeclarationIdentifierNode(e,o)||this.isProhibitedImportSpecifierNode(e,o)||this.isProhibitedVariableNameUsedInObjectPatternNode(r,e,t)||E.NodeGuards.isLabelIdentifierNode(e,o))}isProhibitedClassDeclarationNameIdentifierNode(e,t,r){return E.NodeGuards.isClassDeclarationNode(e.scope.block)&&E.NodeGuards.isClassDeclarationNode(r)&&r.id===t}isProhibitedExportNamedClassDeclarationIdentifierNode(e,t){return E.NodeGuards.isClassDeclarationNode(t)&&t.id===e&&!!t.parentNode&&E.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,t){return E.NodeGuards.isFunctionDeclarationNode(t)&&t.id===e&&!!t.parentNode&&E.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedVariableDeclarationIdentifierNode(e,t){return E.NodeGuards.isVariableDeclaratorNode(t)&&t.id===e&&!!t.parentNode&&E.NodeGuards.isVariableDeclarationNode(t.parentNode)&&!!t.parentNode.parentNode&&E.NodeGuards.isExportNamedDeclarationNode(t.parentNode.parentNode)}isProhibitedImportSpecifierNode(e,t){return E.NodeGuards.isImportSpecifierNode(t)&&t.imported.name===t.local.name}isProhibitedPropertyNode(e,t){const r=E.NodeGuards.isPropertyNode(t)&&!t.computed&&t.key===e,o=E.NodeGuards.isAssignmentPatternNode(t)&&t.left===e&&!!t.parentNode&&E.NodeGuards.isPropertyNode(t.parentNode)&&t.left===t.parentNode.key;return r||o}isProhibitedVariableNameUsedInObjectPatternNode(e,t,r){let o=this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(r);if(!1===o)return!1;if(!e.defs.some(e=>"var"===e.kind))return!1;let n=!1;return g.traverse(r,{enter:(e,r)=>{if(E.NodeGuards.isObjectPatternNode(e)&&r&&E.NodeGuards.isAssignmentExpressionNode(r)){o=!0;const r=e.properties;for(const e of r)if(E.NodeGuards.isPropertyNode(e)&&!e.computed&&e.shorthand&&E.NodeGuards.isIdentifierNode(e.key)&&t.name===e.key.name)return n=!0,g.VisitorOption.Break}}}),this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(r,null!=o&&o),n}};C=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),f(1,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(m.ServiceIdentifiers.IOptions)),f(3,p.inject(m.ServiceIdentifiers.IScopeIdentifiersTraverser)),u("design:paramtypes",["function"==typeof(o=void 0!==_.TIdentifierObfuscatingReplacerFactory&&_.TIdentifierObfuscatingReplacerFactory)?o:Object,"function"==typeof(n=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object,"function"==typeof(a=void 0!==h.IScopeIdentifiersTraverser&&h.IScopeIdentifiersTraverser)?a:Object])],C),t.ScopeIdentifiersTransformer=C},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.optionsModule=void 0;const o=r(0),n=r(1),i=r(199),a=r(206);t.optionsModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.IOptions).to(i.Options).inSingletonScope(),e(n.ServiceIdentifiers.IOptionsNormalizer).to(a.OptionsNormalizer).inSingletonScope()})},function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Options=void 0;const p=r(31),m=r(0),g=r(1),_=r(75),S=r(200),N=r(201),h=r(202),y=r(34),O=r(20),b=r(32),E=r(28),I=r(44),C=r(203),T=r(204);let v=o=class{constructor(e,t){Object.assign(this,I.DEFAULT_PRESET,e);const r=_.validateSync(this,o.validatorOptions);if(r.length)throw new ReferenceError(`Validation failed. errors:\n${C.ValidationErrorsFormatter.format(r)}`);Object.assign(this,t.normalize(this))}};v.validatorOptions={validationError:{target:!1}},d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"compact",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"controlFlowFlattening",void 0),d([_.IsNumber(),_.Min(0),_.Max(1),u("design:type",Number)],v.prototype,"controlFlowFlatteningThreshold",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"deadCodeInjection",void 0),d([_.IsNumber(),u("design:type",Number)],v.prototype,"deadCodeInjectionThreshold",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"debugProtection",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"debugProtectionInterval",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"disableConsoleOutput",void 0),d([_.IsArray(),_.ArrayUnique(),_.IsString({each:!0}),T.IsAllowedForObfuscationTargets([O.ObfuscationTarget.Browser,O.ObfuscationTarget.BrowserNoEval]),u("design:type",Array)],v.prototype,"domainLock",void 0),d([_.IsIn([y.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,y.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,y.IdentifierNamesGenerator.MangledIdentifierNamesGenerator]),u("design:type","function"==typeof(n=void 0!==p.TypeFromEnum&&p.TypeFromEnum)?n:Object)],v.prototype,"identifierNamesGenerator",void 0),d([_.IsString(),u("design:type",String)],v.prototype,"identifiersPrefix",void 0),d([_.IsArray(),_.ArrayUnique(),_.IsString({each:!0}),_.ValidateIf(e=>e.identifierNamesGenerator===y.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),_.ArrayNotEmpty(),u("design:type",Array)],v.prototype,"identifiersDictionary",void 0),d([_.IsString(),u("design:type",String)],v.prototype,"inputFileName",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"log",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"minify",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"renameGlobals",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"renameProperties",void 0),d([_.IsArray(),_.ArrayUnique(),_.IsString({each:!0}),u("design:type",Array)],v.prototype,"reservedNames",void 0),d([_.IsArray(),_.ArrayUnique(),_.IsString({each:!0}),u("design:type",Array)],v.prototype,"reservedStrings",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"rotateStringArray",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"selfDefending",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"shuffleStringArray",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"sourceMap",void 0),d([_.IsString(),_.ValidateIf(e=>Boolean(e.sourceMapBaseUrl)),_.IsUrl({require_protocol:!0,require_tld:!1,require_valid_protocol:!0}),u("design:type",String)],v.prototype,"sourceMapBaseUrl",void 0),d([_.IsString(),u("design:type",String)],v.prototype,"sourceMapFileName",void 0),d([_.IsIn([b.SourceMapMode.Inline,b.SourceMapMode.Separate]),u("design:type","function"==typeof(i=void 0!==p.TypeFromEnum&&p.TypeFromEnum)?i:Object)],v.prototype,"sourceMapMode",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"splitStrings",void 0),d([_.IsNumber(),_.ValidateIf(e=>Boolean(e.splitStrings)),_.Min(1),u("design:type",Number)],v.prototype,"splitStringsChunkLength",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"stringArray",void 0),d([_.IsIn([!0,!1,E.StringArrayEncoding.Base64,E.StringArrayEncoding.Rc4]),u("design:type","function"==typeof(a=void 0!==N.TStringArrayEncoding&&N.TStringArrayEncoding)?a:Object)],v.prototype,"stringArrayEncoding",void 0),d([_.IsNumber(),_.Min(0),_.Max(1),u("design:type",Number)],v.prototype,"stringArrayThreshold",void 0),d([_.IsIn([O.ObfuscationTarget.Browser,O.ObfuscationTarget.BrowserNoEval,O.ObfuscationTarget.Node]),u("design:type","function"==typeof(s=void 0!==p.TypeFromEnum&&p.TypeFromEnum)?s:Object)],v.prototype,"target",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"transformObjectKeys",void 0),d([_.IsBoolean(),u("design:type",Boolean)],v.prototype,"unicodeEscapeSequence",void 0),v=o=d([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.TInputOptions)),f(1,m.inject(g.ServiceIdentifiers.IOptionsNormalizer)),u("design:paramtypes",["function"==typeof(c=void 0!==S.TInputOptions&&S.TInputOptions)?c:Object,"function"==typeof(l=void 0!==h.IOptionsNormalizer&&h.IOptionsNormalizer)?l:Object])],v),t.Options=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationErrorsFormatter=void 0;class o{static format(e){return e.reduce((e,t)=>[...e,o.formatWithNestedConstraints(t)],[]).join("\n")}static formatWithNestedConstraints(e){const t=e.constraints;return t?`${`\`${e.property}\` errors:\n`}${Object.keys(t).map(e=>` - ${t[e]}\n`).join()}`:`\`${e.property}\` error\n`}}t.ValidationErrorsFormatter=o},function(e,t,r){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IsAllowedForObfuscationTargets=void 0;const n=r(75),i=o(r(205)),a=r(45),s=r(44);t.IsAllowedForObfuscationTargets=function(e,t){return(r,o)=>{n.registerDecorator({propertyName:o,constraints:[e],name:"IsAllowedForObfuscationTargets",options:t,target:r.constructor,validator:{validate(t,r){const n=r.object,a=s.DEFAULT_PRESET[o];return i.default(t,a)||e.includes(n.target)},defaultMessage:t=>`This option allowed only for obfuscation targets: ${e.join(`${a.StringSeparator.Comma} `)}`}})}}},function(e,t){e.exports=require("fast-deep-equal")},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsNormalizer=void 0;const i=r(0),a=r(207),s=r(208),c=r(209),l=r(210),d=r(211),u=r(212),f=r(213),p=r(214),m=r(215),g=r(216),_=r(217),S=r(218),N=r(219);let h=o=class{normalize(e){let t=Object.assign({},e);for(const e of o.normalizerRules)t=e(t);return t}};h.normalizerRules=[a.ControlFlowFlatteningThresholdRule,s.DeadCodeInjectionRule,c.DeadCodeInjectionThresholdRule,l.DomainLockRule,d.InputFileNameRule,u.SeedRule,f.SelfDefendingRule,p.SourceMapBaseUrlRule,m.SourceMapFileNameRule,g.SplitStringsChunkLengthRule,_.StringArrayRule,S.StringArrayEncodingRule,N.StringArrayThresholdRule],h=o=n([i.injectable()],h),t.OptionsNormalizer=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowFlatteningThresholdRule=void 0,t.ControlFlowFlatteningThresholdRule=e=>(0===e.controlFlowFlatteningThreshold&&(e=Object.assign(Object.assign({},e),{controlFlowFlattening:!1,controlFlowFlatteningThreshold:0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionRule=void 0;const o=r(44);t.DeadCodeInjectionRule=e=>(e.deadCodeInjection&&((e=Object.assign(Object.assign({},e),{deadCodeInjection:!0,stringArray:!0})).stringArrayThreshold||(e=Object.assign(Object.assign({},e),{stringArray:!0,stringArrayThreshold:o.DEFAULT_PRESET.stringArrayThreshold}))),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionThresholdRule=void 0,t.DeadCodeInjectionThresholdRule=e=>(0===e.deadCodeInjectionThreshold&&(e=Object.assign(Object.assign({},e),{deadCodeInjection:!1,deadCodeInjectionThreshold:0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockRule=void 0;const o=r(26);t.DomainLockRule=e=>{if(e.domainLock.length){const t=[];for(const r of e.domainLock)t.push(o.Utils.extractDomainFrom(r));e=Object.assign(Object.assign({},e),{domainLock:t})}return e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputFileNameRule=void 0;const o=r(45);t.InputFileNameRule=e=>{let{inputFileName:t}=e;return t&&(t=t.replace(/^\/+/,"").split(o.StringSeparator.Dot).slice(0,-1).join(o.StringSeparator.Dot)||t,e=Object.assign(Object.assign({},e),{inputFileName:`${t}.js`})),e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SeedRule=void 0,t.SeedRule=e=>{if(e.seed)return Object.assign(Object.assign({},e),{seed:e.seed});return Object.assign(Object.assign({},e),{seed:(t=0,r=999999999,Math.floor(Math.random()*(r-t+1)+t))});var t,r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingRule=void 0,t.SelfDefendingRule=e=>(e.selfDefending&&(e=Object.assign(Object.assign({},e),{compact:!0,selfDefending:!0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapBaseUrlRule=void 0,t.SourceMapBaseUrlRule=e=>{const{sourceMapBaseUrl:t}=e;return e.sourceMapFileName?(t&&!t.endsWith("/")&&(e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:`${t}/`})),e):e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:""})}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapFileNameRule=void 0;const o=r(45);t.SourceMapFileNameRule=e=>{let{sourceMapFileName:t}=e;if(t){t=t.replace(/^\/+/,"").replace(/(?:\.js)?(?:\.map)?$/,"");let r=t.split(o.StringSeparator.Dot);const n=r.length,i=r[n-1];n>1&&i.length<=3&&(r=r.slice(0,-1)),t=r.join(o.StringSeparator.Dot),e=Object.assign(Object.assign({},e),{sourceMapFileName:`${t}.js.map`})}return e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringsChunkLengthRule=void 0,t.SplitStringsChunkLengthRule=e=>e=0===e.splitStringsChunkLength?Object.assign(Object.assign({},e),{splitStrings:!1,splitStringsChunkLength:0}):Object.assign(Object.assign({},e),{splitStringsChunkLength:Math.floor(e.splitStringsChunkLength)})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRule=void 0,t.StringArrayRule=e=>(e.stringArray||(e=Object.assign(Object.assign({},e),{rotateStringArray:!1,shuffleStringArray:!1,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncodingRule=void 0;const o=r(28);t.StringArrayEncodingRule=e=>(!0===e.stringArrayEncoding&&(e=Object.assign(Object.assign({},e),{stringArrayEncoding:o.StringArrayEncoding.Base64})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayThresholdRule=void 0,t.StringArrayThresholdRule=e=>(0===e.stringArrayThreshold&&(e=Object.assign(Object.assign({},e),{rotateStringArray:!1,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0})),e)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preparingTransformersModule=void 0;const o=r(16),n=r(0),i=r(1),a=r(13),s=r(76),c=r(221),l=r(71),d=r(222),u=r(226),f=r(228),p=r(229),m=r(231),g=r(232),_=r(233);t.preparingTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(d.CustomCodeHelpersTransformer).whenTargetNamed(a.NodeTransformer.CustomCodeHelpersTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.EvalCallExpressionTransformer).whenTargetNamed(a.NodeTransformer.EvalCallExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.MetadataTransformer).whenTargetNamed(a.NodeTransformer.MetadataTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(p.ObfuscatingGuardsTransformer).whenTargetNamed(a.NodeTransformer.ObfuscatingGuardsTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.ParentificationTransformer).whenTargetNamed(a.NodeTransformer.ParentificationTransformer),e(i.ServiceIdentifiers.INodeGuard).to(c.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.BlackListObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(l.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ConditionalCommentObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(g.ReservedStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ReservedStringObfuscatingGuard),e(i.ServiceIdentifiers.INodeTransformer).to(_.VariablePreserveTransformer).whenTargetNamed(a.NodeTransformer.VariablePreserveTransformer),e(i.ServiceIdentifiers.Factory__INodeGuard).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeGuard))})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.BlackListObfuscatingGuard=void 0;const a=r(0),s=r(4);let c=o=class{constructor(){this.blackListGuardsLength=o.blackListGuards.length}check(e){for(let t=0;t=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelpersTransformer=void 0;const f=r(0),p=r(1),m=r(223),g=r(224),_=r(2),S=r(3),N=r(225),h=r(70),y=r(13),O=r(25),b=r(9),E=r(11),I=r(4);let C=class extends E.AbstractNodeTransformer{constructor(e,t,r,o,n,i){super(n,i),this.runAfter=[y.NodeTransformer.ParentificationTransformer,y.NodeTransformer.VariablePreserveTransformer],this.callsGraphData=[],this.callsGraphAnalyzer=e,this.prevailingKindOfVariablesAnalyzer=t,this.obfuscationEventEmitter=r,this.customCodeHelperGroupStorage=o}getVisitor(e){switch(e){case b.NodeTransformationStage.Preparing:return{leave:(e,t)=>{if(I.NodeGuards.isProgramNode(e))return this.analyzeNode(e,t),this.appendCustomNodesBeforeObfuscation(e,t),this.transformNode(e,t)}};case b.NodeTransformationStage.Finalizing:return{leave:(e,t)=>{I.NodeGuards.isProgramNode(e)&&this.appendCustomNodesAfterObfuscation(e,t)}};default:return null}}analyzeNode(e,t){this.callsGraphData=this.callsGraphAnalyzer.analyze(e),this.prevailingKindOfVariablesAnalyzer.analyze(e)}transformNode(e,t){return e}appendCustomNodesBeforeObfuscation(e,t){this.customCodeHelperGroupStorage.getStorage().forEach(e=>{e.initialize(),this.obfuscationEventEmitter.once(e.getAppendEvent(),e.appendNodes.bind(e))}),this.obfuscationEventEmitter.emit(O.ObfuscationEvent.BeforeObfuscation,e,this.callsGraphData)}appendCustomNodesAfterObfuscation(e,t){this.obfuscationEventEmitter.emit(O.ObfuscationEvent.AfterObfuscation,e,this.callsGraphData)}};C=l([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.ICallsGraphAnalyzer)),u(1,f.inject(p.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),u(2,f.inject(p.ServiceIdentifiers.IObfuscationEventEmitter)),u(3,f.inject(p.ServiceIdentifiers.TCustomNodeGroupStorage)),u(4,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(5,f.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==N.ICallsGraphAnalyzer&&N.ICallsGraphAnalyzer)?o:Object,"function"==typeof(n=void 0!==h.IPrevailingKindOfVariablesAnalyzer&&h.IPrevailingKindOfVariablesAnalyzer)?n:Object,"function"==typeof(i=void 0!==g.IObfuscationEventEmitter&&g.IObfuscationEventEmitter)?i:Object,"function"==typeof(a=void 0!==m.TCustomCodeHelperGroupStorage&&m.TCustomCodeHelperGroupStorage)?a:Object,"function"==typeof(s=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==_.IOptions&&_.IOptions)?c:Object])],C),t.CustomCodeHelpersTransformer=C},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.EvalCallExpressionTransformer=void 0;const d=r(0),u=r(1),f=l(r(227)),p=r(2),m=r(3),g=r(13),_=r(9),S=r(11),N=r(7),h=r(4),y=r(6);let O=o=class extends S.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[g.NodeTransformer.ParentificationTransformer,g.NodeTransformer.VariablePreserveTransformer],this.evalRootAstHostNodeSet=new Set}static extractEvalStringFromCallExpressionArgument(e){return h.NodeGuards.isLiteralNode(e)?o.extractEvalStringFromLiteralNode(e):h.NodeGuards.isTemplateLiteralNode(e)?o.extractEvalStringFromTemplateLiteralNode(e):null}static extractEvalStringFromLiteralNode(e){return"string"==typeof e.value?e.value:null}static extractEvalStringFromTemplateLiteralNode(e){const t=e.quasis;return 1!==t.length||e.expressions.length?null:t[0].value.cooked}getVisitor(e){switch(e){case _.NodeTransformationStage.Preparing:return{enter:(e,t)=>{if(t&&h.NodeGuards.isCallExpressionNode(e)&&h.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return this.transformNode(e,t)}};case _.NodeTransformationStage.Finalizing:return this.evalRootAstHostNodeSet.size?{leave:(e,t)=>{if(t&&this.isEvalRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}transformNode(e,t){const r=e.arguments[0];if(!r)return e;const n=o.extractEvalStringFromCallExpressionArgument(r);if(!n)return e;let i;try{i=y.NodeUtils.convertCodeToStructure(n)}catch(t){return e}const a=N.NodeFactory.functionExpressionNode([],N.NodeFactory.blockStatementNode(i));return y.NodeUtils.parentizeAst(a),y.NodeUtils.parentizeNode(a,t),this.evalRootAstHostNodeSet.add(a),a}restoreNode(e,t){const r=e.body.body,o=y.NodeUtils.convertStructureToCode(r);return N.NodeFactory.callExpressionNode(N.NodeFactory.identifierNode("eval"),[N.NodeFactory.literalNode(f.default(o))])}isEvalRootAstHostNode(e){return h.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}};O=o=a([d.injectable(),c(0,d.inject(u.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(u.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],O),t.EvalCallExpressionTransformer=O},function(e,t){e.exports=require("js-string-escape")},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MetadataTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(13),p=r(9),m=r(11),g=r(4),_=r(19);let S=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.ParentificationTransformer,f.NodeTransformer.VariablePreserveTransformer]}getVisitor(e){switch(e){case p.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return _.NodeMetadata.set(e,{ignoredNode:!1}),g.NodeGuards.isLiteralNode(e)&&_.NodeMetadata.set(e,{replacedLiteral:!1}),e}};S=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],S),t.MetadataTransformer=S},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardsTransformer=void 0;const d=r(0),u=r(1),f=r(230),p=r(2),m=r(3),g=r(13),_=r(76),S=r(9),N=r(11),h=r(4),y=r(19);let O=o=class extends N.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer,g.NodeTransformer.VariablePreserveTransformer],this.obfuscatingGuards=o.obfuscatingGuardsList.map(e)}getVisitor(e){switch(e){case S.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){const r=this.obfuscatingGuards.every(t=>t.check(e));return y.NodeMetadata.set(e,{ignoredNode:!(h.NodeGuards.isProgramNode(e)||r)}),e}};O.obfuscatingGuardsList=[_.ObfuscatingGuard.BlackListObfuscatingGuard,_.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,_.ObfuscatingGuard.ReservedStringObfuscatingGuard],O=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__INodeGuard)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TObfuscatingGuardFactory&&f.TObfuscatingGuardFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],O),t.ObfuscatingGuardsTransformer=O},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ParentificationTransformer=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(9),p=r(11),m=r(6);let g=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return m.NodeUtils.parentizeNode(e,t)}};g=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],g),t.ParentificationTransformer=g},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReservedStringObfuscatingGuard=void 0;const s=r(0),c=r(2),l=r(1),d=r(4);let u=class{constructor(e){this.options=e}check(e){return!this.options.reservedStrings.length||!d.NodeGuards.isLiteralNode(e)||"string"!=typeof e.value||!this.isReservedString(e.value)}isReservedString(e){return this.options.reservedStrings.some(t=>null!==new RegExp(t,"g").exec(e))}};u=n([s.injectable(),a(0,s.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],u),t.ReservedStringObfuscatingGuard=u},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariablePreserveTransformer=void 0;const d=r(0),u=r(54),f=r(2),p=r(3),m=r(74),g=r(13),_=r(1),S=r(9),N=r(11),h=r(42),y=r(4);let O=class extends N.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer],this.identifierObfuscatingReplacer=e(h.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),this.scopeIdentifiersTraverser=o,this.preserveScopeVariableIdentifiers=this.preserveScopeVariableIdentifiers.bind(this)}getVisitor(e){switch(e){case S.NodeTransformationStage.Preparing:case S.NodeTransformationStage.Converting:case S.NodeTransformationStage.Obfuscating:return{enter:(e,t)=>{if(t&&y.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverse(e,t,this.preserveScopeVariableIdentifiers),e}preserveScopeVariableIdentifiers(e){const{isGlobalDeclaration:t,isBubblingDeclaration:r,variable:o,variableScope:n}=e;for(const e of o.identifiers)t||r?this.preserveIdentifierNameForRootLexicalScope(e):this.preserveIdentifierNameForLexicalScope(e,n)}preserveIdentifierNameForRootLexicalScope(e){this.identifierObfuscatingReplacer.preserveName(e)}preserveIdentifierNameForLexicalScope(e,t){const r=y.NodeGuards.isNodeWithLexicalScope(t.block)?t.block:null;r&&this.identifierObfuscatingReplacer.preserveNameForLexicalScope(e,r)}};O=s([d.injectable(),l(0,d.inject(_.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),l(1,d.inject(_.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(_.ServiceIdentifiers.IOptions)),l(3,d.inject(_.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierObfuscatingReplacerFactory&&u.TIdentifierObfuscatingReplacerFactory)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object,"function"==typeof(a=void 0!==m.IScopeIdentifiersTraverser&&m.IScopeIdentifiersTraverser)?a:Object])],O),t.VariablePreserveTransformer=O},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renamePropertiesTransformersModule=void 0;const o=r(0),n=r(1),i=r(13),a=r(235),s=r(237);t.renamePropertiesTransformersModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.RenamePropertiesTransformer).whenTargetNamed(i.NodeTransformer.RenamePropertiesTransformer),e(n.ServiceIdentifiers.IRenamePropertiesReplacer).to(a.RenamePropertiesReplacer)})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesReplacer=void 0;const l=r(0),d=r(1),u=r(5),f=r(2),p=c(r(236)),m=r(4),g=r(7);let _=class{constructor(e,t){this.propertyNamesMap=new Map,this.reservedDomPropertiesList=new Set(p.default),this.identifierNamesGenerator=e(t),this.options=t}replace(e){return m.NodeGuards.isIdentifierNode(e)?g.NodeFactory.identifierNode(this.replacePropertyName(e.name)):m.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value?g.NodeFactory.literalNode(this.replacePropertyName(e.value)):e}replacePropertyName(e){var t;if(this.isReservedName(e))return e;let r=null!==(t=this.propertyNamesMap.get(e))&&void 0!==t?t:null;return null!==r||(r=this.identifierNamesGenerator.generateNext(),this.propertyNamesMap.set(e,r)),r}isReservedName(e){return this.isReservedOptionName(e)||this.isReservedDomPropertyName(e)}isReservedOptionName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}isReservedDomPropertyName(e){return this.reservedDomPropertiesList.has(e)}};_=i([l.injectable(),s(0,l.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,l.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object])],_),t.RenamePropertiesReplacer=_},function(e){e.exports=JSON.parse('["$&","$\'","$*","$+","$1","$2","$3","$4","$5","$6","$7","$8","$9","$_","$`","$input","@@iterator","ABORT_ERR","ACTIVE","ACTIVE_ATTRIBUTES","ACTIVE_TEXTURE","ACTIVE_UNIFORMS","ADDITION","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALLOW_KEYBOARD_INPUT","ALLPASS","ALPHA","ALPHA_BITS","ALT_MASK","ALWAYS","ANY_TYPE","ANY_UNORDERED_NODE_TYPE","ARRAY_BUFFER","ARRAY_BUFFER_BINDING","ATTACHED_SHADERS","ATTRIBUTE_NODE","AT_TARGET","AddSearchProvider","AnalyserNode","AnimationEvent","AnonXMLHttpRequest","ApplicationCache","ApplicationCacheErrorEvent","Array","ArrayBuffer","Attr","Audio","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioListener","AudioNode","AudioParam","AudioProcessingEvent","AudioStreamTrack","AutocompleteErrorEvent","BACK","BAD_BOUNDARYPOINTS_ERR","BANDPASS","BLEND","BLEND_COLOR","BLEND_DST_ALPHA","BLEND_DST_RGB","BLEND_EQUATION","BLEND_EQUATION_ALPHA","BLEND_EQUATION_RGB","BLEND_SRC_ALPHA","BLEND_SRC_RGB","BLUE_BITS","BLUR","BOOL","BOOLEAN_TYPE","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","BOTH","BROWSER_DEFAULT_WEBGL","BUBBLING_PHASE","BUFFER_SIZE","BUFFER_USAGE","BYTE","BYTES_PER_ELEMENT","BarProp","BaseHref","BatteryManager","BeforeLoadEvent","BeforeUnloadEvent","BiquadFilterNode","Blob","BlobEvent","Boolean","CAPTURING_PHASE","CCW","CDATASection","CDATA_SECTION_NODE","CHANGE","CHARSET_RULE","CHECKING","CLAMP_TO_EDGE","CLICK","CLOSED","CLOSING","COLOR_ATTACHMENT0","COLOR_BUFFER_BIT","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","COMMENT_NODE","COMPILE_STATUS","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_TEXTURE_FORMATS","CONNECTING","CONSTANT_ALPHA","CONSTANT_COLOR","CONSTRAINT_ERR","CONTEXT_LOST_WEBGL","CONTROL_MASK","COUNTER_STYLE_RULE","CSS","CSS2Properties","CSSCharsetRule","CSSConditionRule","CSSCounterStyleRule","CSSFontFaceRule","CSSFontFeatureValuesRule","CSSGroupingRule","CSSImportRule","CSSKeyframeRule","CSSKeyframesRule","CSSMediaRule","CSSMozDocumentRule","CSSNameSpaceRule","CSSPageRule","CSSPrimitiveValue","CSSRule","CSSRuleList","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSSupportsRule","CSSUnknownRule","CSSValue","CSSValueList","CSSVariablesDeclaration","CSSVariablesRule","CSSViewportRule","CSS_ATTR","CSS_CM","CSS_COUNTER","CSS_CUSTOM","CSS_DEG","CSS_DIMENSION","CSS_EMS","CSS_EXS","CSS_FILTER_BLUR","CSS_FILTER_BRIGHTNESS","CSS_FILTER_CONTRAST","CSS_FILTER_CUSTOM","CSS_FILTER_DROP_SHADOW","CSS_FILTER_GRAYSCALE","CSS_FILTER_HUE_ROTATE","CSS_FILTER_INVERT","CSS_FILTER_OPACITY","CSS_FILTER_REFERENCE","CSS_FILTER_SATURATE","CSS_FILTER_SEPIA","CSS_GRAD","CSS_HZ","CSS_IDENT","CSS_IN","CSS_INHERIT","CSS_KHZ","CSS_MATRIX","CSS_MATRIX3D","CSS_MM","CSS_MS","CSS_NUMBER","CSS_PC","CSS_PERCENTAGE","CSS_PERSPECTIVE","CSS_PRIMITIVE_VALUE","CSS_PT","CSS_PX","CSS_RAD","CSS_RECT","CSS_RGBCOLOR","CSS_ROTATE","CSS_ROTATE3D","CSS_ROTATEX","CSS_ROTATEY","CSS_ROTATEZ","CSS_S","CSS_SCALE","CSS_SCALE3D","CSS_SCALEX","CSS_SCALEY","CSS_SCALEZ","CSS_SKEW","CSS_SKEWX","CSS_SKEWY","CSS_STRING","CSS_TRANSLATE","CSS_TRANSLATE3D","CSS_TRANSLATEX","CSS_TRANSLATEY","CSS_TRANSLATEZ","CSS_UNKNOWN","CSS_URI","CSS_VALUE_LIST","CSS_VH","CSS_VMAX","CSS_VMIN","CSS_VW","CULL_FACE","CULL_FACE_MODE","CURRENT_PROGRAM","CURRENT_VERTEX_ATTRIB","CUSTOM","CW","CanvasGradient","CanvasPattern","CanvasRenderingContext2D","CaretPosition","ChannelMergerNode","ChannelSplitterNode","CharacterData","ClientRect","ClientRectList","Clipboard","ClipboardEvent","CloseEvent","Collator","CommandEvent","Comment","CompositionEvent","Console","Controllers","ConvolverNode","Counter","Crypto","CryptoKey","CustomEvent","DATABASE_ERR","DATA_CLONE_ERR","DATA_ERR","DBLCLICK","DECR","DECR_WRAP","DELETE_STATUS","DEPTH_ATTACHMENT","DEPTH_BITS","DEPTH_BUFFER_BIT","DEPTH_CLEAR_VALUE","DEPTH_COMPONENT","DEPTH_COMPONENT16","DEPTH_FUNC","DEPTH_RANGE","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_TEST","DEPTH_WRITEMASK","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DISABLED","DISPATCH_REQUEST_ERR","DITHER","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC","DOCUMENT_POSITION_PRECEDING","DOCUMENT_TYPE_NODE","DOMCursor","DOMError","DOMException","DOMImplementation","DOMImplementationLS","DOMMatrix","DOMMatrixReadOnly","DOMParser","DOMPoint","DOMPointReadOnly","DOMQuad","DOMRect","DOMRectList","DOMRectReadOnly","DOMRequest","DOMSTRING_SIZE_ERR","DOMSettableTokenList","DOMStringList","DOMStringMap","DOMTokenList","DOMTransactionEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","DOM_INPUT_METHOD_DROP","DOM_INPUT_METHOD_HANDWRITING","DOM_INPUT_METHOD_IME","DOM_INPUT_METHOD_KEYBOARD","DOM_INPUT_METHOD_MULTIMODAL","DOM_INPUT_METHOD_OPTION","DOM_INPUT_METHOD_PASTE","DOM_INPUT_METHOD_SCRIPT","DOM_INPUT_METHOD_UNKNOWN","DOM_INPUT_METHOD_VOICE","DOM_KEY_LOCATION_JOYSTICK","DOM_KEY_LOCATION_LEFT","DOM_KEY_LOCATION_MOBILE","DOM_KEY_LOCATION_NUMPAD","DOM_KEY_LOCATION_RIGHT","DOM_KEY_LOCATION_STANDARD","DOM_VK_0","DOM_VK_1","DOM_VK_2","DOM_VK_3","DOM_VK_4","DOM_VK_5","DOM_VK_6","DOM_VK_7","DOM_VK_8","DOM_VK_9","DOM_VK_A","DOM_VK_ACCEPT","DOM_VK_ADD","DOM_VK_ALT","DOM_VK_ALTGR","DOM_VK_AMPERSAND","DOM_VK_ASTERISK","DOM_VK_AT","DOM_VK_ATTN","DOM_VK_B","DOM_VK_BACKSPACE","DOM_VK_BACK_QUOTE","DOM_VK_BACK_SLASH","DOM_VK_BACK_SPACE","DOM_VK_C","DOM_VK_CANCEL","DOM_VK_CAPS_LOCK","DOM_VK_CIRCUMFLEX","DOM_VK_CLEAR","DOM_VK_CLOSE_BRACKET","DOM_VK_CLOSE_CURLY_BRACKET","DOM_VK_CLOSE_PAREN","DOM_VK_COLON","DOM_VK_COMMA","DOM_VK_CONTEXT_MENU","DOM_VK_CONTROL","DOM_VK_CONVERT","DOM_VK_CRSEL","DOM_VK_CTRL","DOM_VK_D","DOM_VK_DECIMAL","DOM_VK_DELETE","DOM_VK_DIVIDE","DOM_VK_DOLLAR","DOM_VK_DOUBLE_QUOTE","DOM_VK_DOWN","DOM_VK_E","DOM_VK_EISU","DOM_VK_END","DOM_VK_ENTER","DOM_VK_EQUALS","DOM_VK_EREOF","DOM_VK_ESCAPE","DOM_VK_EXCLAMATION","DOM_VK_EXECUTE","DOM_VK_EXSEL","DOM_VK_F","DOM_VK_F1","DOM_VK_F10","DOM_VK_F11","DOM_VK_F12","DOM_VK_F13","DOM_VK_F14","DOM_VK_F15","DOM_VK_F16","DOM_VK_F17","DOM_VK_F18","DOM_VK_F19","DOM_VK_F2","DOM_VK_F20","DOM_VK_F21","DOM_VK_F22","DOM_VK_F23","DOM_VK_F24","DOM_VK_F25","DOM_VK_F26","DOM_VK_F27","DOM_VK_F28","DOM_VK_F29","DOM_VK_F3","DOM_VK_F30","DOM_VK_F31","DOM_VK_F32","DOM_VK_F33","DOM_VK_F34","DOM_VK_F35","DOM_VK_F36","DOM_VK_F4","DOM_VK_F5","DOM_VK_F6","DOM_VK_F7","DOM_VK_F8","DOM_VK_F9","DOM_VK_FINAL","DOM_VK_FRONT","DOM_VK_G","DOM_VK_GREATER_THAN","DOM_VK_H","DOM_VK_HANGUL","DOM_VK_HANJA","DOM_VK_HASH","DOM_VK_HELP","DOM_VK_HK_TOGGLE","DOM_VK_HOME","DOM_VK_HYPHEN_MINUS","DOM_VK_I","DOM_VK_INSERT","DOM_VK_J","DOM_VK_JUNJA","DOM_VK_K","DOM_VK_KANA","DOM_VK_KANJI","DOM_VK_L","DOM_VK_LEFT","DOM_VK_LEFT_TAB","DOM_VK_LESS_THAN","DOM_VK_M","DOM_VK_META","DOM_VK_MODECHANGE","DOM_VK_MULTIPLY","DOM_VK_N","DOM_VK_NONCONVERT","DOM_VK_NUMPAD0","DOM_VK_NUMPAD1","DOM_VK_NUMPAD2","DOM_VK_NUMPAD3","DOM_VK_NUMPAD4","DOM_VK_NUMPAD5","DOM_VK_NUMPAD6","DOM_VK_NUMPAD7","DOM_VK_NUMPAD8","DOM_VK_NUMPAD9","DOM_VK_NUM_LOCK","DOM_VK_O","DOM_VK_OEM_1","DOM_VK_OEM_102","DOM_VK_OEM_2","DOM_VK_OEM_3","DOM_VK_OEM_4","DOM_VK_OEM_5","DOM_VK_OEM_6","DOM_VK_OEM_7","DOM_VK_OEM_8","DOM_VK_OEM_COMMA","DOM_VK_OEM_MINUS","DOM_VK_OEM_PERIOD","DOM_VK_OEM_PLUS","DOM_VK_OPEN_BRACKET","DOM_VK_OPEN_CURLY_BRACKET","DOM_VK_OPEN_PAREN","DOM_VK_P","DOM_VK_PA1","DOM_VK_PAGEDOWN","DOM_VK_PAGEUP","DOM_VK_PAGE_DOWN","DOM_VK_PAGE_UP","DOM_VK_PAUSE","DOM_VK_PERCENT","DOM_VK_PERIOD","DOM_VK_PIPE","DOM_VK_PLAY","DOM_VK_PLUS","DOM_VK_PRINT","DOM_VK_PRINTSCREEN","DOM_VK_PROCESSKEY","DOM_VK_PROPERITES","DOM_VK_Q","DOM_VK_QUESTION_MARK","DOM_VK_QUOTE","DOM_VK_R","DOM_VK_REDO","DOM_VK_RETURN","DOM_VK_RIGHT","DOM_VK_S","DOM_VK_SCROLL_LOCK","DOM_VK_SELECT","DOM_VK_SEMICOLON","DOM_VK_SEPARATOR","DOM_VK_SHIFT","DOM_VK_SLASH","DOM_VK_SLEEP","DOM_VK_SPACE","DOM_VK_SUBTRACT","DOM_VK_T","DOM_VK_TAB","DOM_VK_TILDE","DOM_VK_U","DOM_VK_UNDERSCORE","DOM_VK_UNDO","DOM_VK_UNICODE","DOM_VK_UP","DOM_VK_V","DOM_VK_VOLUME_DOWN","DOM_VK_VOLUME_MUTE","DOM_VK_VOLUME_UP","DOM_VK_W","DOM_VK_WIN","DOM_VK_WINDOW","DOM_VK_WIN_ICO_00","DOM_VK_WIN_ICO_CLEAR","DOM_VK_WIN_ICO_HELP","DOM_VK_WIN_OEM_ATTN","DOM_VK_WIN_OEM_AUTO","DOM_VK_WIN_OEM_BACKTAB","DOM_VK_WIN_OEM_CLEAR","DOM_VK_WIN_OEM_COPY","DOM_VK_WIN_OEM_CUSEL","DOM_VK_WIN_OEM_ENLW","DOM_VK_WIN_OEM_FINISH","DOM_VK_WIN_OEM_FJ_JISHO","DOM_VK_WIN_OEM_FJ_LOYA","DOM_VK_WIN_OEM_FJ_MASSHOU","DOM_VK_WIN_OEM_FJ_ROYA","DOM_VK_WIN_OEM_FJ_TOUROKU","DOM_VK_WIN_OEM_JUMP","DOM_VK_WIN_OEM_PA1","DOM_VK_WIN_OEM_PA2","DOM_VK_WIN_OEM_PA3","DOM_VK_WIN_OEM_RESET","DOM_VK_WIN_OEM_WSCTRL","DOM_VK_X","DOM_VK_XF86XK_ADD_FAVORITE","DOM_VK_XF86XK_APPLICATION_LEFT","DOM_VK_XF86XK_APPLICATION_RIGHT","DOM_VK_XF86XK_AUDIO_CYCLE_TRACK","DOM_VK_XF86XK_AUDIO_FORWARD","DOM_VK_XF86XK_AUDIO_LOWER_VOLUME","DOM_VK_XF86XK_AUDIO_MEDIA","DOM_VK_XF86XK_AUDIO_MUTE","DOM_VK_XF86XK_AUDIO_NEXT","DOM_VK_XF86XK_AUDIO_PAUSE","DOM_VK_XF86XK_AUDIO_PLAY","DOM_VK_XF86XK_AUDIO_PREV","DOM_VK_XF86XK_AUDIO_RAISE_VOLUME","DOM_VK_XF86XK_AUDIO_RANDOM_PLAY","DOM_VK_XF86XK_AUDIO_RECORD","DOM_VK_XF86XK_AUDIO_REPEAT","DOM_VK_XF86XK_AUDIO_REWIND","DOM_VK_XF86XK_AUDIO_STOP","DOM_VK_XF86XK_AWAY","DOM_VK_XF86XK_BACK","DOM_VK_XF86XK_BACK_FORWARD","DOM_VK_XF86XK_BATTERY","DOM_VK_XF86XK_BLUE","DOM_VK_XF86XK_BLUETOOTH","DOM_VK_XF86XK_BOOK","DOM_VK_XF86XK_BRIGHTNESS_ADJUST","DOM_VK_XF86XK_CALCULATOR","DOM_VK_XF86XK_CALENDAR","DOM_VK_XF86XK_CD","DOM_VK_XF86XK_CLOSE","DOM_VK_XF86XK_COMMUNITY","DOM_VK_XF86XK_CONTRAST_ADJUST","DOM_VK_XF86XK_COPY","DOM_VK_XF86XK_CUT","DOM_VK_XF86XK_CYCLE_ANGLE","DOM_VK_XF86XK_DISPLAY","DOM_VK_XF86XK_DOCUMENTS","DOM_VK_XF86XK_DOS","DOM_VK_XF86XK_EJECT","DOM_VK_XF86XK_EXCEL","DOM_VK_XF86XK_EXPLORER","DOM_VK_XF86XK_FAVORITES","DOM_VK_XF86XK_FINANCE","DOM_VK_XF86XK_FORWARD","DOM_VK_XF86XK_FRAME_BACK","DOM_VK_XF86XK_FRAME_FORWARD","DOM_VK_XF86XK_GAME","DOM_VK_XF86XK_GO","DOM_VK_XF86XK_GREEN","DOM_VK_XF86XK_HIBERNATE","DOM_VK_XF86XK_HISTORY","DOM_VK_XF86XK_HOME_PAGE","DOM_VK_XF86XK_HOT_LINKS","DOM_VK_XF86XK_I_TOUCH","DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN","DOM_VK_XF86XK_KBD_BRIGHTNESS_UP","DOM_VK_XF86XK_KBD_LIGHT_ON_OFF","DOM_VK_XF86XK_LAUNCH0","DOM_VK_XF86XK_LAUNCH1","DOM_VK_XF86XK_LAUNCH2","DOM_VK_XF86XK_LAUNCH3","DOM_VK_XF86XK_LAUNCH4","DOM_VK_XF86XK_LAUNCH5","DOM_VK_XF86XK_LAUNCH6","DOM_VK_XF86XK_LAUNCH7","DOM_VK_XF86XK_LAUNCH8","DOM_VK_XF86XK_LAUNCH9","DOM_VK_XF86XK_LAUNCH_A","DOM_VK_XF86XK_LAUNCH_B","DOM_VK_XF86XK_LAUNCH_C","DOM_VK_XF86XK_LAUNCH_D","DOM_VK_XF86XK_LAUNCH_E","DOM_VK_XF86XK_LAUNCH_F","DOM_VK_XF86XK_LIGHT_BULB","DOM_VK_XF86XK_LOG_OFF","DOM_VK_XF86XK_MAIL","DOM_VK_XF86XK_MAIL_FORWARD","DOM_VK_XF86XK_MARKET","DOM_VK_XF86XK_MEETING","DOM_VK_XF86XK_MEMO","DOM_VK_XF86XK_MENU_KB","DOM_VK_XF86XK_MENU_PB","DOM_VK_XF86XK_MESSENGER","DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN","DOM_VK_XF86XK_MON_BRIGHTNESS_UP","DOM_VK_XF86XK_MUSIC","DOM_VK_XF86XK_MY_COMPUTER","DOM_VK_XF86XK_MY_SITES","DOM_VK_XF86XK_NEW","DOM_VK_XF86XK_NEWS","DOM_VK_XF86XK_OFFICE_HOME","DOM_VK_XF86XK_OPEN","DOM_VK_XF86XK_OPEN_URL","DOM_VK_XF86XK_OPTION","DOM_VK_XF86XK_PASTE","DOM_VK_XF86XK_PHONE","DOM_VK_XF86XK_PICTURES","DOM_VK_XF86XK_POWER_DOWN","DOM_VK_XF86XK_POWER_OFF","DOM_VK_XF86XK_RED","DOM_VK_XF86XK_REFRESH","DOM_VK_XF86XK_RELOAD","DOM_VK_XF86XK_REPLY","DOM_VK_XF86XK_ROCKER_DOWN","DOM_VK_XF86XK_ROCKER_ENTER","DOM_VK_XF86XK_ROCKER_UP","DOM_VK_XF86XK_ROTATE_WINDOWS","DOM_VK_XF86XK_ROTATION_KB","DOM_VK_XF86XK_ROTATION_PB","DOM_VK_XF86XK_SAVE","DOM_VK_XF86XK_SCREEN_SAVER","DOM_VK_XF86XK_SCROLL_CLICK","DOM_VK_XF86XK_SCROLL_DOWN","DOM_VK_XF86XK_SCROLL_UP","DOM_VK_XF86XK_SEARCH","DOM_VK_XF86XK_SEND","DOM_VK_XF86XK_SHOP","DOM_VK_XF86XK_SPELL","DOM_VK_XF86XK_SPLIT_SCREEN","DOM_VK_XF86XK_STANDBY","DOM_VK_XF86XK_START","DOM_VK_XF86XK_STOP","DOM_VK_XF86XK_SUBTITLE","DOM_VK_XF86XK_SUPPORT","DOM_VK_XF86XK_SUSPEND","DOM_VK_XF86XK_TASK_PANE","DOM_VK_XF86XK_TERMINAL","DOM_VK_XF86XK_TIME","DOM_VK_XF86XK_TOOLS","DOM_VK_XF86XK_TOP_MENU","DOM_VK_XF86XK_TO_DO_LIST","DOM_VK_XF86XK_TRAVEL","DOM_VK_XF86XK_USER1KB","DOM_VK_XF86XK_USER2KB","DOM_VK_XF86XK_USER_PB","DOM_VK_XF86XK_UWB","DOM_VK_XF86XK_VENDOR_HOME","DOM_VK_XF86XK_VIDEO","DOM_VK_XF86XK_VIEW","DOM_VK_XF86XK_WAKE_UP","DOM_VK_XF86XK_WEB_CAM","DOM_VK_XF86XK_WHEEL_BUTTON","DOM_VK_XF86XK_WLAN","DOM_VK_XF86XK_WORD","DOM_VK_XF86XK_WWW","DOM_VK_XF86XK_XFER","DOM_VK_XF86XK_YELLOW","DOM_VK_XF86XK_ZOOM_IN","DOM_VK_XF86XK_ZOOM_OUT","DOM_VK_Y","DOM_VK_Z","DOM_VK_ZOOM","DONE","DONT_CARE","DOWNLOADING","DRAGDROP","DST_ALPHA","DST_COLOR","DYNAMIC_DRAW","DataChannel","DataTransfer","DataTransferItem","DataTransferItemList","DataView","Date","DateTimeFormat","DelayNode","DesktopNotification","DesktopNotificationCenter","DeviceLightEvent","DeviceMotionEvent","DeviceOrientationEvent","DeviceProximityEvent","DeviceStorage","DeviceStorageChangeEvent","Document","DocumentFragment","DocumentType","DragEvent","DynamicsCompressorNode","E","ELEMENT_ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER_BINDING","ELEMENT_NODE","EMPTY","ENCODING_ERR","ENDED","END_TO_END","END_TO_START","ENTITY_NODE","ENTITY_REFERENCE_NODE","EPSILON","EQUAL","EQUALPOWER","ERROR","EXPONENTIAL_DISTANCE","Element","ElementQuery","Entity","EntityReference","Error","ErrorEvent","EvalError","Event","EventException","EventSource","EventTarget","External","FASTEST","FIDOSDK","FILTER_ACCEPT","FILTER_INTERRUPT","FILTER_REJECT","FILTER_SKIP","FINISHED_STATE","FIRST_ORDERED_NODE_TYPE","FLOAT","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","FOCUS","FONT_FACE_RULE","FONT_FEATURE_VALUES_RULE","FRAGMENT_SHADER","FRAGMENT_SHADER_DERIVATIVE_HINT_OES","FRAMEBUFFER","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_BINDING","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_UNSUPPORTED","FRONT","FRONT_AND_BACK","FRONT_FACE","FUNC_ADD","FUNC_REVERSE_SUBTRACT","FUNC_SUBTRACT","Feed","FeedEntry","File","FileError","FileList","FileReader","FindInPage","Float32Array","Float64Array","FocusEvent","FontFace","FormData","Function","GENERATE_MIPMAP_HINT","GEQUAL","GREATER","GREEN_BITS","GainNode","Gamepad","GamepadButton","GamepadEvent","GestureEvent","HAVE_CURRENT_DATA","HAVE_ENOUGH_DATA","HAVE_FUTURE_DATA","HAVE_METADATA","HAVE_NOTHING","HEADERS_RECEIVED","HIDDEN","HIERARCHY_REQUEST_ERR","HIGHPASS","HIGHSHELF","HIGH_FLOAT","HIGH_INT","HORIZONTAL","HORIZONTAL_AXIS","HRTF","HTMLAllCollection","HTMLAnchorElement","HTMLAppletElement","HTMLAreaElement","HTMLAudioElement","HTMLBRElement","HTMLBaseElement","HTMLBaseFontElement","HTMLBlockquoteElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLCommandElement","HTMLContentElement","HTMLDListElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDirectoryElement","HTMLDivElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormControlsCollection","HTMLFormElement","HTMLFrameElement","HTMLFrameSetElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLIsIndexElement","HTMLKeygenElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement","HTMLLinkElement","HTMLMapElement","HTMLMarqueeElement","HTMLMediaElement","HTMLMenuElement","HTMLMenuItemElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLOListElement","HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLPropertiesCollection","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLShadowElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","HashChangeEvent","Headers","History","ICE_CHECKING","ICE_CLOSED","ICE_COMPLETED","ICE_CONNECTED","ICE_FAILED","ICE_GATHERING","ICE_WAITING","IDBCursor","IDBCursorWithValue","IDBDatabase","IDBDatabaseException","IDBFactory","IDBFileHandle","IDBFileRequest","IDBIndex","IDBKeyRange","IDBMutableFile","IDBObjectStore","IDBOpenDBRequest","IDBRequest","IDBTransaction","IDBVersionChangeEvent","IDLE","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","IMPORT_RULE","INCR","INCR_WRAP","INDEX_SIZE_ERR","INT","INT_VEC2","INT_VEC3","INT_VEC4","INUSE_ATTRIBUTE_ERR","INVALID_ACCESS_ERR","INVALID_CHARACTER_ERR","INVALID_ENUM","INVALID_EXPRESSION_ERR","INVALID_FRAMEBUFFER_OPERATION","INVALID_MODIFICATION_ERR","INVALID_NODE_TYPE_ERR","INVALID_OPERATION","INVALID_STATE_ERR","INVALID_VALUE","INVERSE_DISTANCE","INVERT","IceCandidate","Image","ImageBitmap","ImageData","Infinity","InputEvent","InputMethodContext","InstallTrigger","Int16Array","Int32Array","Int8Array","Intent","InternalError","Intl","IsSearchProviderInstalled","Iterator","JSON","KEEP","KEYDOWN","KEYFRAMES_RULE","KEYFRAME_RULE","KEYPRESS","KEYUP","KeyEvent","KeyboardEvent","LENGTHADJUST_SPACING","LENGTHADJUST_SPACINGANDGLYPHS","LENGTHADJUST_UNKNOWN","LEQUAL","LESS","LINEAR","LINEAR_DISTANCE","LINEAR_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINES","LINE_LOOP","LINE_STRIP","LINE_WIDTH","LINK_STATUS","LIVE","LN10","LN2","LOADED","LOADING","LOG10E","LOG2E","LOWPASS","LOWSHELF","LOW_FLOAT","LOW_INT","LSException","LSParserFilter","LUMINANCE","LUMINANCE_ALPHA","LocalMediaStream","Location","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_RENDERBUFFER_SIZE","MAX_SAFE_INTEGER","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_TEXTURE_SIZE","MAX_VALUE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MEDIA_ERR_ABORTED","MEDIA_ERR_DECODE","MEDIA_ERR_ENCRYPTED","MEDIA_ERR_NETWORK","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_KEYERR_CLIENT","MEDIA_KEYERR_DOMAIN","MEDIA_KEYERR_HARDWARECHANGE","MEDIA_KEYERR_OUTPUT","MEDIA_KEYERR_SERVICE","MEDIA_KEYERR_UNKNOWN","MEDIA_RULE","MEDIUM_FLOAT","MEDIUM_INT","META_MASK","MIN_SAFE_INTEGER","MIN_VALUE","MIRRORED_REPEAT","MODE_ASYNCHRONOUS","MODE_SYNCHRONOUS","MODIFICATION","MOUSEDOWN","MOUSEDRAG","MOUSEMOVE","MOUSEOUT","MOUSEOVER","MOUSEUP","MOZ_KEYFRAMES_RULE","MOZ_KEYFRAME_RULE","MOZ_SOURCE_CURSOR","MOZ_SOURCE_ERASER","MOZ_SOURCE_KEYBOARD","MOZ_SOURCE_MOUSE","MOZ_SOURCE_PEN","MOZ_SOURCE_TOUCH","MOZ_SOURCE_UNKNOWN","MSGESTURE_FLAG_BEGIN","MSGESTURE_FLAG_CANCEL","MSGESTURE_FLAG_END","MSGESTURE_FLAG_INERTIA","MSGESTURE_FLAG_NONE","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_PEN","MSPOINTER_TYPE_TOUCH","MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE","MS_ASYNC_CALLBACK_STATUS_CANCEL","MS_ASYNC_CALLBACK_STATUS_CHOOSEANY","MS_ASYNC_CALLBACK_STATUS_ERROR","MS_ASYNC_CALLBACK_STATUS_JOIN","MS_ASYNC_OP_STATUS_CANCELED","MS_ASYNC_OP_STATUS_ERROR","MS_ASYNC_OP_STATUS_SUCCESS","MS_MANIPULATION_STATE_ACTIVE","MS_MANIPULATION_STATE_CANCELLED","MS_MANIPULATION_STATE_COMMITTED","MS_MANIPULATION_STATE_DRAGGING","MS_MANIPULATION_STATE_INERTIA","MS_MANIPULATION_STATE_PRESELECT","MS_MANIPULATION_STATE_SELECTING","MS_MANIPULATION_STATE_STOPPED","MS_MEDIA_ERR_ENCRYPTED","MS_MEDIA_KEYERR_CLIENT","MS_MEDIA_KEYERR_DOMAIN","MS_MEDIA_KEYERR_HARDWARECHANGE","MS_MEDIA_KEYERR_OUTPUT","MS_MEDIA_KEYERR_SERVICE","MS_MEDIA_KEYERR_UNKNOWN","Map","Math","MediaController","MediaDevices","MediaElementAudioSourceNode","MediaEncryptedEvent","MediaError","MediaKeyError","MediaKeyEvent","MediaKeyMessageEvent","MediaKeyNeededEvent","MediaKeySession","MediaKeyStatusMap","MediaKeySystemAccess","MediaKeys","MediaList","MediaQueryList","MediaQueryListEvent","MediaRecorder","MediaSource","MediaStream","MediaStreamAudioDestinationNode","MediaStreamAudioSourceNode","MediaStreamEvent","MediaStreamTrack","MediaStreamTrackEvent","MessageChannel","MessageEvent","MessagePort","Methods","MimeType","MimeTypeArray","MouseEvent","MouseScrollEvent","MozAnimation","MozAnimationDelay","MozAnimationDirection","MozAnimationDuration","MozAnimationFillMode","MozAnimationIterationCount","MozAnimationName","MozAnimationPlayState","MozAnimationTimingFunction","MozAppearance","MozBackfaceVisibility","MozBinding","MozBorderBottomColors","MozBorderEnd","MozBorderEndColor","MozBorderEndStyle","MozBorderEndWidth","MozBorderImage","MozBorderLeftColors","MozBorderRightColors","MozBorderStart","MozBorderStartColor","MozBorderStartStyle","MozBorderStartWidth","MozBorderTopColors","MozBoxAlign","MozBoxDirection","MozBoxFlex","MozBoxOrdinalGroup","MozBoxOrient","MozBoxPack","MozBoxSizing","MozCSSKeyframeRule","MozCSSKeyframesRule","MozColumnCount","MozColumnFill","MozColumnGap","MozColumnRule","MozColumnRuleColor","MozColumnRuleStyle","MozColumnRuleWidth","MozColumnWidth","MozColumns","MozContactChangeEvent","MozFloatEdge","MozFontFeatureSettings","MozFontLanguageOverride","MozForceBrokenImageIcon","MozHyphens","MozImageRegion","MozMarginEnd","MozMarginStart","MozMmsEvent","MozMmsMessage","MozMobileMessageThread","MozOSXFontSmoothing","MozOrient","MozOutlineRadius","MozOutlineRadiusBottomleft","MozOutlineRadiusBottomright","MozOutlineRadiusTopleft","MozOutlineRadiusTopright","MozPaddingEnd","MozPaddingStart","MozPerspective","MozPerspectiveOrigin","MozPowerManager","MozSettingsEvent","MozSmsEvent","MozSmsMessage","MozStackSizing","MozTabSize","MozTextAlignLast","MozTextDecorationColor","MozTextDecorationLine","MozTextDecorationStyle","MozTextSizeAdjust","MozTransform","MozTransformOrigin","MozTransformStyle","MozTransition","MozTransitionDelay","MozTransitionDuration","MozTransitionProperty","MozTransitionTimingFunction","MozUserFocus","MozUserInput","MozUserModify","MozUserSelect","MozWindowDragging","MozWindowShadow","MutationEvent","MutationObserver","MutationRecord","NAMESPACE_ERR","NAMESPACE_RULE","NEAREST","NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","NEGATIVE_INFINITY","NETWORK_EMPTY","NETWORK_ERR","NETWORK_IDLE","NETWORK_LOADED","NETWORK_LOADING","NETWORK_NO_SOURCE","NEVER","NEW","NEXT","NEXT_NO_DUPLICATE","NICEST","NODE_AFTER","NODE_BEFORE","NODE_BEFORE_AND_AFTER","NODE_INSIDE","NONE","NON_TRANSIENT_ERR","NOTATION_NODE","NOTCH","NOTEQUAL","NOT_ALLOWED_ERR","NOT_FOUND_ERR","NOT_READABLE_ERR","NOT_SUPPORTED_ERR","NO_DATA_ALLOWED_ERR","NO_ERR","NO_ERROR","NO_MODIFICATION_ALLOWED_ERR","NUMBER_TYPE","NUM_COMPRESSED_TEXTURE_FORMATS","NaN","NamedNodeMap","Navigator","NearbyLinks","NetworkInformation","Node","NodeFilter","NodeIterator","NodeList","Notation","Notification","NotifyPaintEvent","Number","NumberFormat","OBSOLETE","ONE","ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_COLOR","ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_SRC_COLOR","OPEN","OPENED","OPENING","ORDERED_NODE_ITERATOR_TYPE","ORDERED_NODE_SNAPSHOT_TYPE","OUT_OF_MEMORY","Object","OfflineAudioCompletionEvent","OfflineAudioContext","OfflineResourceList","Option","OscillatorNode","OverflowEvent","PACK_ALIGNMENT","PAGE_RULE","PARSE_ERR","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_CLOSEPATH","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_UNKNOWN","PATH_EXISTS_ERR","PEAKING","PERMISSION_DENIED","PERSISTENT","PI","PLAYING_STATE","POINTS","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_FILL","POLYGON_OFFSET_UNITS","POSITION_UNAVAILABLE","POSITIVE_INFINITY","PREV","PREV_NO_DUPLICATE","PROCESSING_INSTRUCTION_NODE","PageChangeEvent","PageTransitionEvent","PaintRequest","PaintRequestList","PannerNode","Path2D","Performance","PerformanceEntry","PerformanceMark","PerformanceMeasure","PerformanceNavigation","PerformanceResourceTiming","PerformanceTiming","PeriodicWave","Plugin","PluginArray","PopStateEvent","PopupBlockedEvent","ProcessingInstruction","ProgressEvent","Promise","PropertyNodeList","Proxy","PushManager","PushSubscription","Q","QUOTA_ERR","QUOTA_EXCEEDED_ERR","QueryInterface","READ_ONLY","READ_ONLY_ERR","READ_WRITE","RED_BITS","REMOVAL","RENDERBUFFER","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_BINDING","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_STENCIL_SIZE","RENDERBUFFER_WIDTH","RENDERER","RENDERING_INTENT_ABSOLUTE_COLORIMETRIC","RENDERING_INTENT_AUTO","RENDERING_INTENT_PERCEPTUAL","RENDERING_INTENT_RELATIVE_COLORIMETRIC","RENDERING_INTENT_SATURATION","RENDERING_INTENT_UNKNOWN","REPEAT","REPLACE","RGB","RGB565","RGB5_A1","RGBA","RGBA4","RGBColor","ROTATION_CLOCKWISE","ROTATION_COUNTERCLOCKWISE","RTCDataChannelEvent","RTCIceCandidate","RTCPeerConnectionIceEvent","RTCRtpReceiver","RTCRtpSender","RTCSessionDescription","RTCStatsReport","RadioNodeList","Range","RangeError","RangeException","RecordErrorEvent","Rect","ReferenceError","RegExp","Request","Response","SAMPLER_2D","SAMPLER_CUBE","SAMPLES","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_BUFFERS","SAMPLE_COVERAGE","SAMPLE_COVERAGE_INVERT","SAMPLE_COVERAGE_VALUE","SAWTOOTH","SCHEDULED_STATE","SCISSOR_BOX","SCISSOR_TEST","SCROLL_PAGE_DOWN","SCROLL_PAGE_UP","SDP_ANSWER","SDP_OFFER","SDP_PRANSWER","SECURITY_ERR","SELECT","SERIALIZE_ERR","SEVERITY_ERROR","SEVERITY_FATAL_ERROR","SEVERITY_WARNING","SHADER_COMPILER","SHADER_TYPE","SHADING_LANGUAGE_VERSION","SHIFT_MASK","SHORT","SHOWING","SHOW_ALL","SHOW_ATTRIBUTE","SHOW_CDATA_SECTION","SHOW_COMMENT","SHOW_DOCUMENT","SHOW_DOCUMENT_FRAGMENT","SHOW_DOCUMENT_TYPE","SHOW_ELEMENT","SHOW_ENTITY","SHOW_ENTITY_REFERENCE","SHOW_NOTATION","SHOW_PROCESSING_INSTRUCTION","SHOW_TEXT","SINE","SOUNDFIELD","SQLException","SQRT1_2","SQRT2","SQUARE","SRC_ALPHA","SRC_ALPHA_SATURATE","SRC_COLOR","START_TO_END","START_TO_START","STATIC_DRAW","STENCIL_ATTACHMENT","STENCIL_BACK_FAIL","STENCIL_BACK_FUNC","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","STENCIL_BITS","STENCIL_BUFFER_BIT","STENCIL_CLEAR_VALUE","STENCIL_FAIL","STENCIL_FUNC","STENCIL_INDEX","STENCIL_INDEX8","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_TEST","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STREAM_DRAW","STRING_TYPE","STYLE_RULE","SUBPIXEL_BITS","SUPPORTS_RULE","SVGAElement","SVGAltGlyphDefElement","SVGAltGlyphElement","SVGAltGlyphItemElement","SVGAngle","SVGAnimateColorElement","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimatedAngle","SVGAnimatedBoolean","SVGAnimatedEnumeration","SVGAnimatedInteger","SVGAnimatedLength","SVGAnimatedLengthList","SVGAnimatedNumber","SVGAnimatedNumberList","SVGAnimatedPreserveAspectRatio","SVGAnimatedRect","SVGAnimatedString","SVGAnimatedTransformList","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGColor","SVGComponentTransferFunctionElement","SVGCursorElement","SVGDefsElement","SVGDescElement","SVGDiscardElement","SVGDocument","SVGElement","SVGElementInstance","SVGElementInstanceList","SVGEllipseElement","SVGException","SVGFEBlendElement","SVGFEColorMatrixElement","SVGFEComponentTransferElement","SVGFECompositeElement","SVGFEConvolveMatrixElement","SVGFEDiffuseLightingElement","SVGFEDisplacementMapElement","SVGFEDistantLightElement","SVGFEDropShadowElement","SVGFEFloodElement","SVGFEFuncAElement","SVGFEFuncBElement","SVGFEFuncGElement","SVGFEFuncRElement","SVGFEGaussianBlurElement","SVGFEImageElement","SVGFEMergeElement","SVGFEMergeNodeElement","SVGFEMorphologyElement","SVGFEOffsetElement","SVGFEPointLightElement","SVGFESpecularLightingElement","SVGFESpotLightElement","SVGFETileElement","SVGFETurbulenceElement","SVGFilterElement","SVGFontElement","SVGFontFaceElement","SVGFontFaceFormatElement","SVGFontFaceNameElement","SVGFontFaceSrcElement","SVGFontFaceUriElement","SVGForeignObjectElement","SVGGElement","SVGGeometryElement","SVGGlyphElement","SVGGlyphRefElement","SVGGradientElement","SVGGraphicsElement","SVGHKernElement","SVGImageElement","SVGLength","SVGLengthList","SVGLineElement","SVGLinearGradientElement","SVGMPathElement","SVGMarkerElement","SVGMaskElement","SVGMatrix","SVGMetadataElement","SVGMissingGlyphElement","SVGNumber","SVGNumberList","SVGPaint","SVGPathElement","SVGPathSeg","SVGPathSegArcAbs","SVGPathSegArcRel","SVGPathSegClosePath","SVGPathSegCurvetoCubicAbs","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathSegLinetoAbs","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegList","SVGPathSegMovetoAbs","SVGPathSegMovetoRel","SVGPatternElement","SVGPoint","SVGPointList","SVGPolygonElement","SVGPolylineElement","SVGPreserveAspectRatio","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGRenderingIntent","SVGSVGElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStringList","SVGStyleElement","SVGSwitchElement","SVGSymbolElement","SVGTRefElement","SVGTSpanElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGUnitTypes","SVGUseElement","SVGVKernElement","SVGViewElement","SVGViewSpec","SVGZoomAndPan","SVGZoomEvent","SVG_ANGLETYPE_DEG","SVG_ANGLETYPE_GRAD","SVG_ANGLETYPE_RAD","SVG_ANGLETYPE_UNKNOWN","SVG_ANGLETYPE_UNSPECIFIED","SVG_CHANNEL_A","SVG_CHANNEL_B","SVG_CHANNEL_G","SVG_CHANNEL_R","SVG_CHANNEL_UNKNOWN","SVG_COLORTYPE_CURRENTCOLOR","SVG_COLORTYPE_RGBCOLOR","SVG_COLORTYPE_RGBCOLOR_ICCCOLOR","SVG_COLORTYPE_UNKNOWN","SVG_EDGEMODE_DUPLICATE","SVG_EDGEMODE_NONE","SVG_EDGEMODE_UNKNOWN","SVG_EDGEMODE_WRAP","SVG_FEBLEND_MODE_COLOR","SVG_FEBLEND_MODE_COLOR_BURN","SVG_FEBLEND_MODE_COLOR_DODGE","SVG_FEBLEND_MODE_DARKEN","SVG_FEBLEND_MODE_DIFFERENCE","SVG_FEBLEND_MODE_EXCLUSION","SVG_FEBLEND_MODE_HARD_LIGHT","SVG_FEBLEND_MODE_HUE","SVG_FEBLEND_MODE_LIGHTEN","SVG_FEBLEND_MODE_LUMINOSITY","SVG_FEBLEND_MODE_MULTIPLY","SVG_FEBLEND_MODE_NORMAL","SVG_FEBLEND_MODE_OVERLAY","SVG_FEBLEND_MODE_SATURATION","SVG_FEBLEND_MODE_SCREEN","SVG_FEBLEND_MODE_SOFT_LIGHT","SVG_FEBLEND_MODE_UNKNOWN","SVG_FECOLORMATRIX_TYPE_HUEROTATE","SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA","SVG_FECOLORMATRIX_TYPE_MATRIX","SVG_FECOLORMATRIX_TYPE_SATURATE","SVG_FECOLORMATRIX_TYPE_UNKNOWN","SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE","SVG_FECOMPONENTTRANSFER_TYPE_GAMMA","SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY","SVG_FECOMPONENTTRANSFER_TYPE_LINEAR","SVG_FECOMPONENTTRANSFER_TYPE_TABLE","SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_ARITHMETIC","SVG_FECOMPOSITE_OPERATOR_ATOP","SVG_FECOMPOSITE_OPERATOR_IN","SVG_FECOMPOSITE_OPERATOR_OUT","SVG_FECOMPOSITE_OPERATOR_OVER","SVG_FECOMPOSITE_OPERATOR_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_XOR","SVG_INVALID_VALUE_ERR","SVG_LENGTHTYPE_CM","SVG_LENGTHTYPE_EMS","SVG_LENGTHTYPE_EXS","SVG_LENGTHTYPE_IN","SVG_LENGTHTYPE_MM","SVG_LENGTHTYPE_NUMBER","SVG_LENGTHTYPE_PC","SVG_LENGTHTYPE_PERCENTAGE","SVG_LENGTHTYPE_PT","SVG_LENGTHTYPE_PX","SVG_LENGTHTYPE_UNKNOWN","SVG_MARKERUNITS_STROKEWIDTH","SVG_MARKERUNITS_UNKNOWN","SVG_MARKERUNITS_USERSPACEONUSE","SVG_MARKER_ORIENT_ANGLE","SVG_MARKER_ORIENT_AUTO","SVG_MARKER_ORIENT_UNKNOWN","SVG_MASKTYPE_ALPHA","SVG_MASKTYPE_LUMINANCE","SVG_MATRIX_NOT_INVERTABLE","SVG_MEETORSLICE_MEET","SVG_MEETORSLICE_SLICE","SVG_MEETORSLICE_UNKNOWN","SVG_MORPHOLOGY_OPERATOR_DILATE","SVG_MORPHOLOGY_OPERATOR_ERODE","SVG_MORPHOLOGY_OPERATOR_UNKNOWN","SVG_PAINTTYPE_CURRENTCOLOR","SVG_PAINTTYPE_NONE","SVG_PAINTTYPE_RGBCOLOR","SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR","SVG_PAINTTYPE_UNKNOWN","SVG_PAINTTYPE_URI","SVG_PAINTTYPE_URI_CURRENTCOLOR","SVG_PAINTTYPE_URI_NONE","SVG_PAINTTYPE_URI_RGBCOLOR","SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR","SVG_PRESERVEASPECTRATIO_NONE","SVG_PRESERVEASPECTRATIO_UNKNOWN","SVG_PRESERVEASPECTRATIO_XMAXYMAX","SVG_PRESERVEASPECTRATIO_XMAXYMID","SVG_PRESERVEASPECTRATIO_XMAXYMIN","SVG_PRESERVEASPECTRATIO_XMIDYMAX","SVG_PRESERVEASPECTRATIO_XMIDYMID","SVG_PRESERVEASPECTRATIO_XMIDYMIN","SVG_PRESERVEASPECTRATIO_XMINYMAX","SVG_PRESERVEASPECTRATIO_XMINYMID","SVG_PRESERVEASPECTRATIO_XMINYMIN","SVG_SPREADMETHOD_PAD","SVG_SPREADMETHOD_REFLECT","SVG_SPREADMETHOD_REPEAT","SVG_SPREADMETHOD_UNKNOWN","SVG_STITCHTYPE_NOSTITCH","SVG_STITCHTYPE_STITCH","SVG_STITCHTYPE_UNKNOWN","SVG_TRANSFORM_MATRIX","SVG_TRANSFORM_ROTATE","SVG_TRANSFORM_SCALE","SVG_TRANSFORM_SKEWX","SVG_TRANSFORM_SKEWY","SVG_TRANSFORM_TRANSLATE","SVG_TRANSFORM_UNKNOWN","SVG_TURBULENCE_TYPE_FRACTALNOISE","SVG_TURBULENCE_TYPE_TURBULENCE","SVG_TURBULENCE_TYPE_UNKNOWN","SVG_UNIT_TYPE_OBJECTBOUNDINGBOX","SVG_UNIT_TYPE_UNKNOWN","SVG_UNIT_TYPE_USERSPACEONUSE","SVG_WRONG_TYPE_ERR","SVG_ZOOMANDPAN_DISABLE","SVG_ZOOMANDPAN_MAGNIFY","SVG_ZOOMANDPAN_UNKNOWN","SYNTAX_ERR","SavedPages","Screen","ScreenOrientation","Script","ScriptProcessorNode","ScrollAreaEvent","SecurityPolicyViolationEvent","Selection","ServiceWorker","ServiceWorkerContainer","ServiceWorkerRegistration","SessionDescription","Set","ShadowRoot","SharedWorker","SimpleGestureEvent","SpeechSynthesisEvent","SpeechSynthesisUtterance","StopIteration","Storage","StorageEvent","String","StyleSheet","StyleSheetList","SubtleCrypto","Symbol","SyntaxError","TEMPORARY","TEXTPATH_METHODTYPE_ALIGN","TEXTPATH_METHODTYPE_STRETCH","TEXTPATH_METHODTYPE_UNKNOWN","TEXTPATH_SPACINGTYPE_AUTO","TEXTPATH_SPACINGTYPE_EXACT","TEXTPATH_SPACINGTYPE_UNKNOWN","TEXTURE","TEXTURE0","TEXTURE1","TEXTURE10","TEXTURE11","TEXTURE12","TEXTURE13","TEXTURE14","TEXTURE15","TEXTURE16","TEXTURE17","TEXTURE18","TEXTURE19","TEXTURE2","TEXTURE20","TEXTURE21","TEXTURE22","TEXTURE23","TEXTURE24","TEXTURE25","TEXTURE26","TEXTURE27","TEXTURE28","TEXTURE29","TEXTURE3","TEXTURE30","TEXTURE31","TEXTURE4","TEXTURE5","TEXTURE6","TEXTURE7","TEXTURE8","TEXTURE9","TEXTURE_2D","TEXTURE_BINDING_2D","TEXTURE_BINDING_CUBE_MAP","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Z","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_MAG_FILTER","TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXT_NODE","TIMEOUT","TIMEOUT_ERR","TOO_LARGE_ERR","TRANSACTION_INACTIVE_ERR","TRIANGLE","TRIANGLES","TRIANGLE_FAN","TRIANGLE_STRIP","TYPE_BACK_FORWARD","TYPE_ERR","TYPE_MISMATCH_ERR","TYPE_NAVIGATE","TYPE_RELOAD","TYPE_RESERVED","Text","TextDecoder","TextEncoder","TextEvent","TextMetrics","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TimeEvent","TimeRanges","Touch","TouchEvent","TouchList","TrackEvent","TransitionEvent","TreeWalker","TypeError","UIEvent","UNCACHED","UNKNOWN_ERR","UNKNOWN_RULE","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","UNORDERED_NODE_ITERATOR_TYPE","UNORDERED_NODE_SNAPSHOT_TYPE","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNSCHEDULED_STATE","UNSENT","UNSIGNED_BYTE","UNSIGNED_INT","UNSIGNED_SHORT","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","UNSPECIFIED_EVENT_TYPE_ERR","UPDATEREADY","URIError","URL","URLSearchParams","URLUnencoded","URL_MISMATCH_ERR","UTC","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","UserMessageHandler","UserMessageHandlersNamespace","UserProximityEvent","VALIDATE_STATUS","VALIDATION_ERR","VARIABLES_RULE","VENDOR","VERSION","VERSION_CHANGE","VERSION_ERR","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_SHADER","VERTICAL","VERTICAL_AXIS","VER_ERR","VIEWPORT","VIEWPORT_RULE","VTTCue","VTTRegion","ValidityState","VideoStreamTrack","WEBKIT_FILTER_RULE","WEBKIT_KEYFRAMES_RULE","WEBKIT_KEYFRAME_RULE","WEBKIT_REGION_RULE","WRONG_DOCUMENT_ERR","WaveShaperNode","WeakMap","WeakSet","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLRenderingContext","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArray","WebKitAnimationEvent","WebKitBlobBuilder","WebKitCSSFilterRule","WebKitCSSFilterValue","WebKitCSSKeyframeRule","WebKitCSSKeyframesRule","WebKitCSSMatrix","WebKitCSSRegionRule","WebKitCSSTransformValue","WebKitDataCue","WebKitGamepad","WebKitMediaKeyError","WebKitMediaKeyMessageEvent","WebKitMediaKeySession","WebKitMediaKeys","WebKitMediaSource","WebKitMutationObserver","WebKitNamespace","WebKitPlaybackTargetAvailabilityEvent","WebKitPoint","WebKitShadowRoot","WebKitSourceBuffer","WebKitSourceBufferList","WebKitTransitionEvent","WebSocket","WheelEvent","Window","Worker","XMLDocument","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestException","XMLHttpRequestProgressEvent","XMLHttpRequestUpload","XMLSerializer","XMLStylesheetProcessingInstruction","XPathEvaluator","XPathException","XPathExpression","XPathNSResolver","XPathResult","XSLTProcessor","ZERO","_XD0M_","_YD0M_","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","__opera","__proto__","_browserjsran","a","aLink","abbr","abort","abs","absolute","acceleration","accelerationIncludingGravity","accelerator","accept","acceptCharset","acceptNode","accessKey","accessKeyLabel","accuracy","acos","acosh","action","actionURL","active","activeCues","activeElement","activeSourceBuffers","activeSourceCount","activeTexture","add","addBehavior","addCandidate","addColorStop","addCue","addElement","addEventListener","addFilter","addFromString","addFromUri","addIceCandidate","addImport","addListener","addNamed","addPageRule","addPath","addPointer","addRange","addRegion","addRule","addSearchEngine","addSourceBuffer","addStream","addTextTrack","addTrack","addWakeLockListener","addedNodes","additionalName","additiveSymbols","addons","adoptNode","adr","advance","alert","algorithm","align","align-content","align-items","align-self","alignContent","alignItems","alignSelf","alignmentBaseline","alinkColor","all","allSettled","allowFullscreen","allowedDirections","alpha","alt","altGraphKey","altHtml","altKey","altLeft","altitude","altitudeAccuracy","amplitude","ancestorOrigins","anchor","anchorNode","anchorOffset","anchors","angle","animVal","animate","animatedInstanceRoot","animatedNormalizedPathSegList","animatedPathSegList","animatedPoints","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationStartTime","animationTimingFunction","animationsPaused","anniversary","any","app","appCodeName","appMinorVersion","appName","appNotifications","appVersion","append","appendBuffer","appendChild","appendData","appendItem","appendMedium","appendNamed","appendRule","appendStream","appendWindowEnd","appendWindowStart","applets","applicationCache","apply","applyElement","arc","arcTo","archive","areas","arguments","arrayBuffer","asin","asinh","assert","assign","async","atEnd","atan","atan2","atanh","atob","attachEvent","attachShader","attachShadow","attachments","attack","attrChange","attrName","attributeFilter","attributeName","attributeNamespace","attributeOldValue","attributes","audioTracks","autoIncrement","autobuffer","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","availHeight","availLeft","availTop","availWidth","availability","available","aversion","axes","axis","azimuth","b","back","backface-visibility","backfaceVisibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","badInput","balance","baseFrequencyX","baseFrequencyY","baseNode","baseOffset","baseURI","baseVal","baselineShift","battery","bday","beginElement","beginElementAt","beginPath","behavior","behaviorCookie","behaviorPart","behaviorUrns","beta","bezierCurveTo","bgColor","bgProperties","bias","big","binaryType","bind","bindAttribLocation","bindBuffer","bindFramebuffer","bindRenderbuffer","bindTexture","blendColor","blendEquation","blendEquationSeparate","blendFunc","blendFuncSeparate","blink","blob","blockDirection","blue","blur","body","bodyUsed","bold","bookmarks","booleanValue","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderCollapse","borderColor","borderColorDark","borderColorLight","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","bottomMargin","bound","boundElements","boundingClientRect","boundingHeight","boundingLeft","boundingTop","boundingWidth","bounds","box-decoration-break","box-shadow","box-sizing","boxDecorationBreak","boxShadow","boxSizing","breakAfter","breakBefore","breakInside","browserLanguage","btoa","bubbles","buffer","bufferData","bufferDepth","bufferSize","bufferSubData","buffered","bufferedAmount","buildID","buildNumber","button","buttonID","buttons","byteLength","byteOffset","c","call","caller","canBeFormatted","canBeMounted","canBeShared","canHaveChildren","canHaveHTML","canPlayType","cancel","cancelAnimationFrame","cancelBubble","cancelScheduledValues","cancelable","candidate","canvas","caption","caption-side","captionSide","capture","captureEvents","captureStackTrace","caretPositionFromPoint","caretRangeFromPoint","cast","catch","category","cbrt","cd","ceil","cellIndex","cellPadding","cellSpacing","cells","ch","chOff","chain","challenge","changedTouches","channel","channelCount","channelCountMode","channelInterpretation","char","charAt","charCode","charCodeAt","charIndex","characterData","characterDataOldValue","characterSet","charging","chargingTime","charset","checkEnclosure","checkFramebufferStatus","checkIntersection","checkValidity","checked","childElementCount","childList","childNodes","children","chrome","ciphertext","cite","classList","className","classid","clear","clearAttributes","clearColor","clearData","clearDepth","clearImmediate","clearInterval","clearMarks","clearMeasures","clearParameters","clearRect","clearResourceTimings","clearShadow","clearStencil","clearTimeout","clearWatch","click","clickCount","clientHeight","clientInformation","clientLeft","clientRect","clientRects","clientTop","clientWidth","clientX","clientY","clip","clip-path","clip-rule","clipBottom","clipLeft","clipPath","clipPathUnits","clipRight","clipRule","clipTop","clipboardData","clone","cloneContents","cloneNode","cloneRange","close","closePath","closed","closest","clz","clz32","cmp","code","codeBase","codePointAt","codeType","colSpan","collapse","collapseToEnd","collapseToStart","collapsed","collect","colno","color","color-interpolation","color-interpolation-filters","colorDepth","colorInterpolation","colorInterpolationFilters","colorMask","colorType","cols","columnCount","columnFill","columnGap","columnNumber","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","command","commitPreferences","commonAncestorContainer","compact","compareBoundaryPoints","compareDocumentPosition","compareEndPoints","compareNode","comparePoint","compatMode","compatible","compile","compileShader","complete","componentFromPoint","compositionEndOffset","compositionStartOffset","compressedTexImage2D","compressedTexSubImage2D","concat","conditionText","coneInnerAngle","coneOuterAngle","coneOuterGain","confirm","confirmComposition","confirmSiteSpecificTrackingException","confirmWebWideTrackingException","connect","connectEnd","connectStart","connected","connection","connectionSpeed","console","consolidate","constrictionActive","constructor","contactID","contains","containsNode","content","contentDocument","contentEditable","contentOverflow","contentScriptType","contentStyleType","contentType","contentWindow","context","contextMenu","contextmenu","continue","continuous","control","controller","controls","convertToSpecifiedUnits","cookie","cookieEnabled","coords","copyFromChannel","copyTexImage2D","copyTexSubImage2D","copyToChannel","copyWithin","correspondingElement","correspondingUseElement","cos","cosh","count","counter-increment","counter-reset","counterIncrement","counterReset","cpuClass","cpuSleepAllowed","create","createAnalyser","createAnswer","createAttribute","createAttributeNS","createBiquadFilter","createBuffer","createBufferSource","createCDATASection","createCSSStyleSheet","createCaption","createChannelMerger","createChannelSplitter","createComment","createContextualFragment","createControlRange","createConvolver","createDTMFSender","createDataChannel","createDelay","createDelayNode","createDocument","createDocumentFragment","createDocumentType","createDynamicsCompressor","createElement","createElementNS","createEntityReference","createEvent","createEventObject","createExpression","createFramebuffer","createFunction","createGain","createGainNode","createHTMLDocument","createImageBitmap","createImageData","createIndex","createJavaScriptNode","createLinearGradient","createMediaElementSource","createMediaKeys","createMediaStreamDestination","createMediaStreamSource","createMutableFile","createNSResolver","createNodeIterator","createNotification","createObjectStore","createObjectURL","createOffer","createOscillator","createPanner","createPattern","createPeriodicWave","createPopup","createProcessingInstruction","createProgram","createRadialGradient","createRange","createRangeCollection","createRenderbuffer","createSVGAngle","createSVGLength","createSVGMatrix","createSVGNumber","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegClosePath","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPoint","createSVGRect","createSVGTransform","createSVGTransformFromMatrix","createScriptProcessor","createSession","createShader","createShadowRoot","createStereoPanner","createStyleSheet","createTBody","createTFoot","createTHead","createTextNode","createTextRange","createTexture","createTouch","createTouchList","createTreeWalker","createWaveShaper","creationTime","crossOrigin","crypto","csi","cssFloat","cssRules","cssText","cssValueType","ctrlKey","ctrlLeft","cues","cullFace","currentNode","currentPage","currentScale","currentScript","currentSrc","currentState","currentStyle","currentTarget","currentTime","currentTranslate","currentView","cursor","curve","customError","cx","cy","d","data","dataFld","dataFormatAs","dataPageSize","dataSrc","dataTransfer","database","dataset","dateTime","db","debug","debuggerEnabled","declare","decode","decodeAudioData","decodeURI","decodeURIComponent","decodingInfo","decrypt","default","defaultCharset","defaultChecked","defaultMuted","defaultPlaybackRate","defaultPrevented","defaultSelected","defaultStatus","defaultURL","defaultValue","defaultView","defaultstatus","defer","defineMagicFunction","defineMagicVariable","defineProperties","defineProperty","delayTime","delete","deleteBuffer","deleteCaption","deleteCell","deleteContents","deleteData","deleteDatabase","deleteFramebuffer","deleteFromDocument","deleteIndex","deleteMedium","deleteObjectStore","deleteProgram","deleteRenderbuffer","deleteRow","deleteRule","deleteShader","deleteTFoot","deleteTHead","deleteTexture","deliverChangeRecords","delivery","deliveryInfo","deliveryStatus","deliveryTimestamp","delta","deltaMode","deltaX","deltaY","deltaZ","depthFunc","depthMask","depthRange","deriveBits","deriveKey","description","deselectAll","designMode","destination","destinationURL","detach","detachEvent","detachShader","detail","detune","devicePixelRatio","deviceXDPI","deviceYDPI","diffuseConstant","digest","dimensions","dir","dirName","direction","dirxml","disable","disableVertexAttribArray","disabled","dischargingTime","disconnect","dispatchEvent","display","distanceModel","divisor","djsapi","djsproxy","doImport","doNotTrack","doScroll","doctype","document","documentElement","documentMode","documentURI","dolphin","dolphinGameCenter","dolphininfo","dolphinmeta","domComplete","domContentLoadedEventEnd","domContentLoadedEventStart","domInteractive","domLoading","domain","domainLookupEnd","domainLookupStart","dominant-baseline","dominantBaseline","done","dopplerFactor","download","dragDrop","draggable","drawArrays","drawArraysInstancedANGLE","drawCustomFocusRing","drawElements","drawElementsInstancedANGLE","drawFocusIfNeeded","drawImage","drawImageFromRect","drawSystemFocusRing","drawingBufferHeight","drawingBufferWidth","dropEffect","droppedVideoFrames","dropzone","dump","duplicate","duration","dvname","dvnum","dx","dy","dynsrc","e","edgeMode","effectAllowed","elapsedTime","elementFromPoint","elements","elevation","ellipse","email","embeds","empty","empty-cells","emptyCells","enable","enableBackground","enableStyleSheetsForSet","enableVertexAttribArray","enabled","enabledPlugin","encode","encodeURI","encodeURIComponent","encoding","encrypt","enctype","end","endContainer","endElement","endElementAt","endOfStream","endOffset","endTime","ended","endsWith","entities","entries","entryType","enumerate","enumerateEditable","error","errorCode","escape","eval","evaluate","event","eventPhase","every","exception","exec","execCommand","execCommandShowHelp","execScript","exitFullscreen","exitPointerLock","exp","expand","expandEntityReferences","expando","expansion","expiryDate","explicitOriginalTarget","expm1","exponent","exponentialRampToValueAtTime","exportKey","extend","extensions","extentNode","extentOffset","external","externalResourcesRequired","extractContents","extractable","f","face","factoryReset","fallback","familyName","farthestViewportElement","fastSeek","fatal","fetch","fetchStart","fftSize","fgColor","fileCreatedDate","fileHandle","fileModifiedDate","fileName","fileSize","fileUpdatedDate","filename","files","fill","fill-opacity","fill-rule","fillOpacity","fillRect","fillRule","fillStyle","fillText","filter","filterResX","filterResY","filterUnits","filters","finally","find","findIndex","findRule","findText","finish","fireEvent","firstChild","firstElementChild","firstPage","fixed","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","flipX","flipY","float","flood-color","flood-opacity","floodColor","floodOpacity","floor","flush","focus","focusNode","focusOffset","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontSize","fontSizeAdjust","fontSmoothingEnabled","fontStretch","fontStyle","fontSynthesis","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontWeight","fontcolor","fonts","fontsize","for","forEach","forceRedraw","form","formAction","formEnctype","formMethod","formNoValidate","formTarget","format","formatToParts","forms","forward","fr","frame","frameBorder","frameElement","frameSpacing","framebufferRenderbuffer","framebufferTexture2D","frames","freeSpace","freeze","frequency","frequencyBinCount","from","fromCharCode","fromCodePoint","fromElement","frontFace","fround","fullScreen","fullscreenElement","fullscreenEnabled","fx","fy","gain","gamepad","gamma","genderIdentity","generateKey","generateMipmap","generateRequest","geolocation","gestureObject","get","getActiveAttrib","getActiveUniform","getAdjacentText","getAll","getAllResponseHeaders","getAsFile","getAsString","getAttachedShaders","getAttribLocation","getAttribute","getAttributeNS","getAttributeNode","getAttributeNodeNS","getAudioTracks","getBBox","getBattery","getBlob","getBookmark","getBoundingClientRect","getBufferParameter","getByteFrequencyData","getByteTimeDomainData","getCSSCanvasContext","getCTM","getCandidateWindowClientRect","getChannelData","getCharNumAtPosition","getClientRect","getClientRects","getCompositionAlternatives","getComputedStyle","getComputedTextLength","getConfiguration","getContext","getContextAttributes","getCounterValue","getCueAsHTML","getCueById","getCurrentPosition","getCurrentTime","getData","getDatabaseNames","getDate","getDay","getDefaultComputedStyle","getDestinationInsertionPoints","getDistributedNodes","getEditable","getElementById","getElementsByClassName","getElementsByName","getElementsByTagName","getElementsByTagNameNS","getEnclosureList","getEndPositionOfChar","getEntries","getEntriesByName","getEntriesByType","getError","getExtension","getExtentOfChar","getFeature","getFile","getFloat32","getFloat64","getFloatFrequencyData","getFloatTimeDomainData","getFloatValue","getFramebufferAttachmentParameter","getFrequencyResponse","getFullYear","getGamepads","getHours","getImageData","getInt16","getInt32","getInt8","getIntersectionList","getItem","getItems","getKey","getLineDash","getLocalStreams","getMarks","getMatchedCSSRules","getMeasures","getMetadata","getMilliseconds","getMinutes","getModifierState","getMonth","getNamedItem","getNamedItemNS","getNotifier","getNumberOfChars","getOverrideHistoryNavigationMode","getOverrideStyle","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getParameter","getPathSegAtLength","getPointAtLength","getPreference","getPreferenceDefault","getPresentationAttribute","getPreventDefault","getProgramInfoLog","getProgramParameter","getPropertyCSSValue","getPropertyPriority","getPropertyShorthand","getPropertyValue","getPrototypeOf","getRGBColorValue","getRandomValues","getRangeAt","getReceivers","getRectValue","getRegistration","getRemoteStreams","getRenderbufferParameter","getResponseHeader","getRoot","getRotationOfChar","getSVGDocument","getScreenCTM","getSeconds","getSelection","getSenders","getShaderInfoLog","getShaderParameter","getShaderPrecisionFormat","getShaderSource","getSimpleDuration","getSiteIcons","getSources","getSpeculativeParserUrls","getStartPositionOfChar","getStartTime","getStats","getStorageUpdates","getStreamById","getStringValue","getSubStringLength","getSubscription","getSupportedExtensions","getTexParameter","getTime","getTimezoneOffset","getTotalLength","getTrackById","getTracks","getTransformToElement","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getUint16","getUint32","getUint8","getUniform","getUniformLocation","getUserMedia","getValues","getVarDate","getVariableValue","getVertexAttrib","getVertexAttribOffset","getVideoPlaybackQuality","getVideoTracks","getWakeLockState","getYear","givenName","global","globalAlpha","globalCompositeOperation","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","go","gradientTransform","gradientUnits","grammars","green","group","groupCollapsed","groupEnd","hardwareConcurrency","has","hasAttribute","hasAttributeNS","hasAttributes","hasChildNodes","hasComposition","hasExtension","hasFeature","hasFocus","hasLayout","hasOwnProperty","hash","head","headers","heading","height","hidden","hide","hideFocus","high","hint","history","honorificPrefix","honorificSuffix","horizontalOverflow","host","hostname","href","hreflang","hspace","html5TagCheckInerface","htmlFor","htmlText","httpEquiv","hwTimestamp","hypot","iccId","iceConnectionState","iceGatheringState","icon","id","identifier","identity","ignoreBOM","ignoreCase","image-orientation","image-rendering","imageOrientation","imageRendering","images","ime-mode","imeMode","implementation","importKey","importNode","importStylesheet","imports","impp","imul","in1","in2","inBandMetadataTrackDispatchType","inRange","includes","incremental","indeterminate","index","indexNames","indexOf","indexedDB","inertiaDestinationX","inertiaDestinationY","info","init","initAnimationEvent","initBeforeLoadEvent","initClipboardEvent","initCloseEvent","initCommandEvent","initCompositionEvent","initCustomEvent","initData","initDeviceMotionEvent","initDeviceOrientationEvent","initDragEvent","initErrorEvent","initEvent","initFocusEvent","initGestureEvent","initHashChangeEvent","initKeyEvent","initKeyboardEvent","initMSManipulationEvent","initMessageEvent","initMouseEvent","initMouseScrollEvent","initMouseWheelEvent","initMutationEvent","initNSMouseEvent","initOverflowEvent","initPageEvent","initPageTransitionEvent","initPointerEvent","initPopStateEvent","initProgressEvent","initScrollAreaEvent","initSimpleGestureEvent","initStorageEvent","initTextEvent","initTimeEvent","initTouchEvent","initTransitionEvent","initUIEvent","initWebKitAnimationEvent","initWebKitTransitionEvent","initWebKitWheelEvent","initWheelEvent","initialTime","initialize","initiatorType","inner","innerHTML","innerHeight","innerText","innerWidth","input","inputBuffer","inputEncoding","inputMethod","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","insertCell","insertData","insertItemBefore","insertNode","insertRow","insertRule","instanceRoot","intercept","interimResults","internalSubset","intersectsNode","interval","invalidIteratorState","inverse","invertSelf","is","is2D","isAlternate","isArray","isBingCurrentSearchDefault","isBuffer","isCandidateWindowVisible","isChar","isCollapsed","isComposing","isContentEditable","isContentHandlerRegistered","isContextLost","isDefaultNamespace","isDisabled","isEnabled","isEqual","isEqualNode","isExtensible","isFinite","isFramebuffer","isFrozen","isGenerator","isId","isInjected","isInteger","isMap","isMultiLine","isNaN","isOpen","isPointInFill","isPointInPath","isPointInRange","isPointInStroke","isPrefAlternate","isPrimary","isProgram","isPropertyImplicit","isProtocolHandlerRegistered","isPrototypeOf","isRenderbuffer","isSafeInteger","isSameNode","isSealed","isShader","isSupported","isTextEdit","isTexture","isTrusted","isTypeSupported","isView","isolation","italics","item","itemId","itemProp","itemRef","itemScope","itemType","itemValue","iterateNext","iterator","javaEnabled","jobTitle","join","json","justify-content","justifyContent","k1","k2","k3","k4","kernelMatrix","kernelUnitLengthX","kernelUnitLengthY","kerning","key","keyCode","keyFor","keyIdentifier","keyLightEnabled","keyLocation","keyPath","keySystem","keyText","keyUsage","keys","keytype","kind","knee","label","labels","lang","language","languages","largeArcFlag","lastChild","lastElementChild","lastEventId","lastIndex","lastIndexOf","lastMatch","lastMessageSubject","lastMessageType","lastModified","lastModifiedDate","lastPage","lastParen","lastState","lastStyleSheetSet","latitude","layerX","layerY","layoutFlow","layoutGrid","layoutGridChar","layoutGridLine","layoutGridMode","layoutGridType","lbound","left","leftContext","leftMargin","length","lengthAdjust","lengthComputable","letter-spacing","letterSpacing","level","lighting-color","lightingColor","limitingConeAngle","line","line-height","lineAlign","lineBreak","lineCap","lineDashOffset","lineHeight","lineJoin","lineNumber","lineTo","lineWidth","linearRampToValueAtTime","lineno","link","linkColor","linkProgram","links","list","list-style","list-style-image","list-style-position","list-style-type","listStyle","listStyleImage","listStylePosition","listStyleType","listener","load","loadEventEnd","loadEventStart","loadTimes","loaded","localDescription","localName","localStorage","locale","localeCompare","location","locationbar","lock","lockedFile","log","log10","log1p","log2","logicalXDPI","logicalYDPI","longDesc","longitude","lookupNamespaceURI","lookupPrefix","loop","loopEnd","loopStart","looping","low","lower","lowerBound","lowerOpen","lowsrc","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","manifest","map","mapping","margin","margin-bottom","margin-left","margin-right","margin-top","marginBottom","marginHeight","marginLeft","marginRight","marginTop","marginWidth","mark","marker","marker-end","marker-mid","marker-offset","marker-start","markerEnd","markerHeight","markerMid","markerOffset","markerStart","markerUnits","markerWidth","marks","mask","mask-type","maskContentUnits","maskType","maskUnits","match","matchMedia","matchMedium","matches","matrix","matrixTransform","max","max-height","max-width","maxAlternatives","maxChannelCount","maxConnectionsPerServer","maxDecibels","maxDistance","maxHeight","maxLength","maxTouchPoints","maxValue","maxWidth","measure","measureText","media","mediaCapabilities","mediaDevices","mediaElement","mediaGroup","mediaKeys","mediaText","meetOrSlice","memory","menubar","mergeAttributes","message","messageClass","messageHandlers","metaKey","method","mimeType","mimeTypes","min","min-height","min-width","minDecibels","minHeight","minValue","minWidth","miterLimit","mix-blend-mode","mixBlendMode","mode","modify","mount","move","moveBy","moveEnd","moveFirst","moveFocusDown","moveFocusLeft","moveFocusRight","moveFocusUp","moveNext","moveRow","moveStart","moveTo","moveToBookmark","moveToElementText","moveToPoint","mozAdd","mozAnimationStartTime","mozAnon","mozApps","mozAudioCaptured","mozAudioChannelType","mozAutoplayEnabled","mozCancelAnimationFrame","mozCancelFullScreen","mozCancelRequestAnimationFrame","mozCaptureStream","mozCaptureStreamUntilEnded","mozClearDataAt","mozContact","mozContacts","mozCreateFileHandle","mozCurrentTransform","mozCurrentTransformInverse","mozCursor","mozDash","mozDashOffset","mozDecodedFrames","mozExitPointerLock","mozFillRule","mozFragmentEnd","mozFrameDelay","mozFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozGetAll","mozGetAllKeys","mozGetAsFile","mozGetDataAt","mozGetMetadata","mozGetUserMedia","mozHasAudio","mozHasItem","mozHidden","mozImageSmoothingEnabled","mozIndexedDB","mozInnerScreenX","mozInnerScreenY","mozInputSource","mozIsTextField","mozItem","mozItemCount","mozItems","mozLength","mozLockOrientation","mozMatchesSelector","mozMovementX","mozMovementY","mozOpaque","mozOrientation","mozPaintCount","mozPaintedFrames","mozParsedFrames","mozPay","mozPointerLockElement","mozPresentedFrames","mozPreservesPitch","mozPressure","mozPrintCallback","mozRTCIceCandidate","mozRTCPeerConnection","mozRTCSessionDescription","mozRemove","mozRequestAnimationFrame","mozRequestFullScreen","mozRequestPointerLock","mozSetDataAt","mozSetImageElement","mozSourceNode","mozSrcObject","mozSystem","mozTCPSocket","mozTextStyle","mozTypesAt","mozUnlockOrientation","mozUserCancelled","mozVisibilityState","msAnimation","msAnimationDelay","msAnimationDirection","msAnimationDuration","msAnimationFillMode","msAnimationIterationCount","msAnimationName","msAnimationPlayState","msAnimationStartTime","msAnimationTimingFunction","msBackfaceVisibility","msBlockProgression","msCSSOMElementFloatMetrics","msCaching","msCachingEnabled","msCancelRequestAnimationFrame","msCapsLockWarningOff","msClearImmediate","msClose","msContentZoomChaining","msContentZoomFactor","msContentZoomLimit","msContentZoomLimitMax","msContentZoomLimitMin","msContentZoomSnap","msContentZoomSnapPoints","msContentZoomSnapType","msContentZooming","msConvertURL","msCrypto","msDoNotTrack","msElementsFromPoint","msElementsFromRect","msExitFullscreen","msExtendedCode","msFillRule","msFirstPaint","msFlex","msFlexAlign","msFlexDirection","msFlexFlow","msFlexItemAlign","msFlexLinePack","msFlexNegative","msFlexOrder","msFlexPack","msFlexPositive","msFlexPreferredSize","msFlexWrap","msFlowFrom","msFlowInto","msFontFeatureSettings","msFullscreenElement","msFullscreenEnabled","msGetInputContext","msGetRegionContent","msGetUntransformedBounds","msGraphicsTrustStatus","msGridColumn","msGridColumnAlign","msGridColumnSpan","msGridColumns","msGridRow","msGridRowAlign","msGridRowSpan","msGridRows","msHidden","msHighContrastAdjust","msHyphenateLimitChars","msHyphenateLimitLines","msHyphenateLimitZone","msHyphens","msImageSmoothingEnabled","msImeAlign","msIndexedDB","msInterpolationMode","msIsStaticHTML","msKeySystem","msKeys","msLaunchUri","msLockOrientation","msManipulationViewsEnabled","msMatchMedia","msMatchesSelector","msMaxTouchPoints","msOrientation","msOverflowStyle","msPerspective","msPerspectiveOrigin","msPlayToDisabled","msPlayToPreferredSourceUri","msPlayToPrimary","msPointerEnabled","msRegionOverflow","msReleasePointerCapture","msRequestAnimationFrame","msRequestFullscreen","msSaveBlob","msSaveOrOpenBlob","msScrollChaining","msScrollLimit","msScrollLimitXMax","msScrollLimitXMin","msScrollLimitYMax","msScrollLimitYMin","msScrollRails","msScrollSnapPointsX","msScrollSnapPointsY","msScrollSnapType","msScrollSnapX","msScrollSnapY","msScrollTranslation","msSetImmediate","msSetMediaKeys","msSetPointerCapture","msTextCombineHorizontal","msTextSizeAdjust","msToBlob","msTouchAction","msTouchSelect","msTraceAsyncCallbackCompleted","msTraceAsyncCallbackStarting","msTraceAsyncOperationCompleted","msTraceAsyncOperationStarting","msTransform","msTransformOrigin","msTransformStyle","msTransition","msTransitionDelay","msTransitionDuration","msTransitionProperty","msTransitionTimingFunction","msUnlockOrientation","msUpdateAsyncCallbackRelation","msUserSelect","msVisibilityState","msWrapFlow","msWrapMargin","msWrapThrough","msWriteProfilerMark","msZoom","msZoomTo","mt","multiEntry","multiSelectionObj","multiline","multiple","multiply","multiplySelf","mutableFile","muted","n","name","nameProp","namedItem","namedRecordset","names","namespaceURI","namespaces","naturalHeight","naturalWidth","navigate","navigation","navigationMode","navigationStart","navigator","near","nearestViewportElement","negative","netscape","networkState","newScale","newTranslate","newURL","newValue","newValueSpecifiedUnits","newVersion","newhome","next","nextElementSibling","nextNode","nextPage","nextSibling","nickname","noHref","noResize","noShade","noValidate","noWrap","nodeName","nodeType","nodeValue","normalize","normalizedPathSegList","notationName","notations","note","noteGrainOn","noteOff","noteOn","now","numOctaves","number","numberOfChannels","numberOfInputs","numberOfItems","numberOfOutputs","numberValue","oMatchesSelector","object","object-fit","object-position","objectFit","objectPosition","objectStore","objectStoreNames","observe","of","offscreenBuffering","offset","offsetHeight","offsetLeft","offsetNode","offsetParent","offsetTop","offsetWidth","offsetX","offsetY","ok","oldURL","oldValue","oldVersion","olderShadowRoot","onLine","onabort","onactivate","onactive","onaddstream","onaddtrack","onafterprint","onafterscriptexecute","onafterupdate","onaudioend","onaudioprocess","onaudiostart","onautocomplete","onautocompleteerror","onbeforeactivate","onbeforecopy","onbeforecut","onbeforedeactivate","onbeforeeditfocus","onbeforepaste","onbeforeprint","onbeforescriptexecute","onbeforeunload","onbeforeupdate","onblocked","onblur","onbounce","onboundary","oncached","oncancel","oncandidatewindowhide","oncandidatewindowshow","oncandidatewindowupdate","oncanplay","oncanplaythrough","once","oncellchange","onchange","onchargingchange","onchargingtimechange","onchecking","onclick","onclose","oncompassneedscalibration","oncomplete","oncontextmenu","oncontrolselect","oncopy","oncuechange","oncut","ondataavailable","ondatachannel","ondatasetchanged","ondatasetcomplete","ondblclick","ondeactivate","ondevicelight","ondevicemotion","ondeviceorientation","ondeviceproximity","ondischargingtimechange","ondisplay","ondownloading","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onencrypted","onend","onended","onenter","onerror","onerrorupdate","onexit","onfilterchange","onfinish","onfocus","onfocusin","onfocusout","onfullscreenchange","onfullscreenerror","ongesturechange","ongestureend","ongesturestart","ongotpointercapture","onhashchange","onhelp","onicecandidate","oniceconnectionstatechange","oninactive","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onlayoutcomplete","onlevelchange","onload","onloadeddata","onloadedmetadata","onloadend","onloadstart","onlosecapture","onlostpointercapture","only","onmark","onmessage","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onmove","onmoveend","onmovestart","onmozfullscreenchange","onmozfullscreenerror","onmozorientationchange","onmozpointerlockchange","onmozpointerlockerror","onmscontentzoom","onmsfullscreenchange","onmsfullscreenerror","onmsgesturechange","onmsgesturedoubletap","onmsgestureend","onmsgesturehold","onmsgesturestart","onmsgesturetap","onmsgotpointercapture","onmsinertiastart","onmslostpointercapture","onmsmanipulationstatechanged","onmsneedkey","onmsorientationchange","onmspointercancel","onmspointerdown","onmspointerenter","onmspointerhover","onmspointerleave","onmspointermove","onmspointerout","onmspointerover","onmspointerup","onmssitemodejumplistitemremoved","onmsthumbnailclick","onnegotiationneeded","onnomatch","onnoupdate","onobsolete","onoffline","ononline","onopen","onorientationchange","onpagechange","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpluginstreamstart","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointerlockchange","onpointerlockerror","onpointermove","onpointerout","onpointerover","onpointerup","onpopstate","onprogress","onpropertychange","onratechange","onreadystatechange","onremovestream","onremovetrack","onreset","onresize","onresizeend","onresizestart","onresourcetimingbufferfull","onresult","onresume","onrowenter","onrowexit","onrowsdelete","onrowsinserted","onscroll","onsearch","onseeked","onseeking","onselect","onselectionchange","onselectstart","onshow","onsignalingstatechange","onsoundend","onsoundstart","onspeechend","onspeechstart","onstalled","onstart","onstatechange","onstop","onstorage","onstoragecommit","onsubmit","onsuccess","onsuspend","ontextinput","ontimeout","ontimeupdate","ontoggle","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontransitionend","onunload","onupdateready","onupgradeneeded","onuserproximity","onversionchange","onvoiceschanged","onvolumechange","onwaiting","onwarning","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkitcurrentplaybacktargetiswirelesschanged","onwebkitfullscreenchange","onwebkitfullscreenerror","onwebkitkeyadded","onwebkitkeyerror","onwebkitkeymessage","onwebkitneedkey","onwebkitorientationchange","onwebkitplaybacktargetavailabilitychanged","onwebkitpointerlockchange","onwebkitpointerlockerror","onwebkitresourcetimingbufferfull","onwebkittransitionend","onwheel","onzoom","opacity","open","openCursor","openDatabase","openKeyCursor","opener","opera","operationType","operator","opr","optimum","options","order","orderX","orderY","ordered","org","orient","orientAngle","orientType","orientation","origin","originalTarget","orphans","oscpu","outerHTML","outerHeight","outerText","outerWidth","outline","outline-color","outline-offset","outline-style","outline-width","outlineColor","outlineOffset","outlineStyle","outlineWidth","outputBuffer","overflow","overflow-x","overflow-y","overflowX","overflowY","overrideMimeType","oversample","ownerDocument","ownerElement","ownerNode","ownerRule","ownerSVGElement","owningElement","p1","p2","p3","p4","pad","padding","padding-bottom","padding-left","padding-right","padding-top","paddingBottom","paddingLeft","paddingRight","paddingTop","page","page-break-after","page-break-before","page-break-inside","pageBreakAfter","pageBreakBefore","pageBreakInside","pageCount","pageX","pageXOffset","pageY","pageYOffset","pages","paint-order","paintOrder","paintRequests","paintType","palette","panningModel","parent","parentElement","parentNode","parentRule","parentStyleSheet","parentTextEdit","parentWindow","parse","parseFloat","parseFromString","parseInt","participants","passive","password","pasteHTML","path","pathLength","pathSegList","pathSegType","pathSegTypeAsLetter","pathname","pattern","patternContentUnits","patternMismatch","patternTransform","patternUnits","pause","pauseAnimations","pauseOnExit","paused","pending","performance","permission","persisted","personalbar","perspective","perspective-origin","perspectiveOrigin","phoneticFamilyName","phoneticGivenName","photo","ping","pitch","pixelBottom","pixelDepth","pixelHeight","pixelLeft","pixelRight","pixelStorei","pixelTop","pixelUnitToMillimeterX","pixelUnitToMillimeterY","pixelWidth","placeholder","platform","play","playbackRate","playbackState","playbackTime","played","plugins","pluginspage","pname","pointer-events","pointerBeforeReferenceNode","pointerEnabled","pointerEvents","pointerId","pointerLockElement","pointerType","points","pointsAtX","pointsAtY","pointsAtZ","polygonOffset","pop","popupWindowFeatures","popupWindowName","popupWindowURI","port","port1","port2","ports","posBottom","posHeight","posLeft","posRight","posTop","posWidth","position","positionAlign","postError","postMessage","poster","pow","powerOff","preMultiplySelf","precision","preferredStyleSheetSet","preferredStylesheetSet","prefix","preload","prepend","preserveAlpha","preserveAspectRatio","preserveAspectRatioString","pressed","pressure","prevValue","preventDefault","preventExtensions","previousElementSibling","previousNode","previousPage","previousScale","previousSibling","previousTranslate","primaryKey","primitiveType","primitiveUnits","principals","print","privateKey","probablySupportsContext","process","processIceMessage","product","productSub","profile","profileEnd","profiles","prompt","properties","propertyIsEnumerable","propertyName","protocol","protocolLong","prototype","pseudoClass","pseudoElement","publicId","publicKey","published","push","pushNotification","pushState","put","putImageData","quadraticCurveTo","qualifier","queryCommandEnabled","queryCommandIndeterm","queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","querySelector","querySelectorAll","quote","quotes","r","r1","r2","race","radiogroup","radiusX","radiusY","random","range","rangeCount","rangeMax","rangeMin","rangeOffset","rangeOverflow","rangeParent","rangeUnderflow","rate","ratio","raw","read","readAsArrayBuffer","readAsBinaryString","readAsBlob","readAsDataURL","readAsText","readOnly","readPixels","readReportRequested","readyState","reason","reboot","receiver","receivers","recordNumber","recordset","rect","red","redirectCount","redirectEnd","redirectStart","reduce","reduceRight","reduction","refDistance","refX","refY","referenceNode","referrer","refresh","region","regionAnchorX","regionAnchorY","regionId","regions","register","registerContentHandler","registerElement","registerProtocolHandler","reject","rel","relList","relatedNode","relatedTarget","release","releaseCapture","releaseEvents","releasePointerCapture","releaseShaderCompiler","reliable","reload","remainingSpace","remoteDescription","remove","removeAllRanges","removeAttribute","removeAttributeNS","removeAttributeNode","removeBehavior","removeChild","removeCue","removeEventListener","removeFilter","removeImport","removeItem","removeListener","removeNamedItem","removeNamedItemNS","removeNode","removeParameter","removeProperty","removeRange","removeRegion","removeRule","removeSiteSpecificTrackingException","removeSourceBuffer","removeStream","removeTrack","removeVariable","removeWakeLockListener","removeWebWideTrackingException","removedNodes","renderbufferStorage","renderedBuffer","renderingMode","repeat","replace","replaceAdjacentText","replaceChild","replaceData","replaceId","replaceItem","replaceNode","replaceState","replaceTrack","replaceWholeText","reportValidity","requestAnimationFrame","requestAutocomplete","requestData","requestFullscreen","requestMediaKeySystemAccess","requestPermission","requestPointerLock","requestStart","requestingWindow","required","requiredExtensions","requiredFeatures","reset","resetTransform","resize","resizeBy","resizeTo","resolve","response","responseBody","responseEnd","responseStart","responseText","responseType","responseURL","responseXML","restore","result","resultType","resume","returnValue","rev","reverse","reversed","revocable","revokeObjectURL","rgbColor","right","rightContext","rightMargin","rolloffFactor","root","rootElement","rotate","rotateAxisAngle","rotateAxisAngleSelf","rotateFromVector","rotateFromVectorSelf","rotateSelf","rotation","rotationRate","round","rowIndex","rowSpan","rows","rubyAlign","rubyOverhang","rubyPosition","rules","runtime","runtimeStyle","rx","ry","safari","sampleCoverage","sampleRate","sandbox","save","scale","scale3d","scale3dSelf","scaleNonUniform","scaleNonUniformSelf","scaleSelf","scheme","scissor","scope","scopeName","scoped","screen","screenBrightness","screenEnabled","screenLeft","screenPixelToMillimeterX","screenPixelToMillimeterY","screenTop","screenX","screenY","scripts","scroll","scroll-behavior","scrollAmount","scrollBehavior","scrollBy","scrollByLines","scrollByPages","scrollDelay","scrollHeight","scrollIntoView","scrollIntoViewIfNeeded","scrollLeft","scrollLeftMax","scrollMaxX","scrollMaxY","scrollTo","scrollTop","scrollTopMax","scrollWidth","scrollX","scrollY","scrollbar3dLightColor","scrollbarArrowColor","scrollbarBaseColor","scrollbarDarkShadowColor","scrollbarFaceColor","scrollbarHighlightColor","scrollbarShadowColor","scrollbarTrackColor","scrollbars","scrolling","sdp","sdpMLineIndex","sdpMid","seal","search","searchBox","searchBoxJavaBridge_","searchParams","sectionRowIndex","secureConnectionStart","security","seed","seekable","seeking","select","selectAllChildren","selectNode","selectNodeContents","selectNodes","selectSingleNode","selectSubString","selected","selectedIndex","selectedOptions","selectedStyleSheetSet","selectedStylesheetSet","selection","selectionDirection","selectionEnd","selectionStart","selector","selectorText","self","send","sendAsBinary","sendBeacon","sender","sentTimestamp","separator","serializeToString","serviceWorker","sessionId","sessionStorage","set","setActive","setAlpha","setAttribute","setAttributeNS","setAttributeNode","setAttributeNodeNS","setBaseAndExtent","setBingCurrentSearchDefault","setCapture","setColor","setCompositeOperation","setCurrentTime","setCustomValidity","setData","setDate","setDragImage","setEnd","setEndAfter","setEndBefore","setEndPoint","setFillColor","setFilterRes","setFloat32","setFloat64","setFloatValue","setFullYear","setHours","setImmediate","setInt16","setInt32","setInt8","setInterval","setItem","setLineCap","setLineDash","setLineJoin","setLineWidth","setLocalDescription","setMatrix","setMatrixValue","setMediaKeys","setMilliseconds","setMinutes","setMiterLimit","setMonth","setNamedItem","setNamedItemNS","setNonUserCodeExceptions","setOrientToAngle","setOrientToAuto","setOrientation","setOverrideHistoryNavigationMode","setPaint","setParameter","setPeriodicWave","setPointerCapture","setPosition","setPreference","setProperty","setPrototypeOf","setRGBColor","setRGBColorICCColor","setRadius","setRangeText","setRemoteDescription","setRequestHeader","setResizable","setResourceTimingBufferSize","setRotate","setScale","setSeconds","setSelectionRange","setServerCertificate","setShadow","setSkewX","setSkewY","setStart","setStartAfter","setStartBefore","setStdDeviation","setStringValue","setStrokeColor","setSuggestResult","setTargetAtTime","setTargetValueAtTime","setTime","setTimeout","setTransform","setTranslate","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setUint16","setUint32","setUint8","setUri","setValueAtTime","setValueCurveAtTime","setVariable","setVelocity","setVersion","setYear","settingName","settingValue","sex","shaderSource","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","shadowRoot","shape","shape-rendering","shapeRendering","sheet","shift","shiftKey","shiftLeft","show","showHelp","showModal","showModalDialog","showModelessDialog","showNotification","sidebar","sign","signalingState","sin","singleNodeValue","sinh","size","sizeToContent","sizes","skewX","skewXSelf","skewY","skewYSelf","slice","slope","small","smil","smooth","smoothingTimeConstant","snapToLines","snapshotItem","snapshotLength","some","sort","source","sourceBuffer","sourceBuffers","sourceIndex","spacing","span","speakAs","speaking","specified","specularConstant","specularExponent","speechSynthesis","speed","speedOfSound","spellcheck","splice","split","splitText","spreadMethod","sqrt","src","srcElement","srcFilter","srcUrn","srcdoc","srclang","srcset","stack","stackTraceLimit","stacktrace","standalone","standby","start","startContainer","startIce","startOffset","startRendering","startTime","startsWith","state","status","statusMessage","statusText","statusbar","stdDeviationX","stdDeviationY","stencilFunc","stencilFuncSeparate","stencilMask","stencilMaskSeparate","stencilOp","stencilOpSeparate","step","stepDown","stepMismatch","stepUp","sticky","stitchTiles","stop","stop-color","stop-opacity","stopColor","stopImmediatePropagation","stopOpacity","stopPropagation","storageArea","storageName","storageStatus","storeSiteSpecificTrackingException","storeWebWideTrackingException","stpVersion","stream","strike","stringValue","stringify","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeRect","strokeStyle","strokeText","strokeWidth","style","styleFloat","styleMedia","styleSheet","styleSheetSets","styleSheets","sub","subarray","subject","submit","subscribe","substr","substring","substringData","subtle","subtree","suffix","suffixes","summary","sup","supports","surfaceScale","surroundContents","suspend","suspendRedraw","swapCache","swapNode","sweepFlag","symbols","system","systemCode","systemId","systemLanguage","systemXDPI","systemYDPI","tBodies","tFoot","tHead","tabIndex","table","table-layout","tableLayout","tableValues","tag","tagName","tagUrn","tags","taintEnabled","takeRecords","tan","tanh","target","targetElement","targetTouches","targetX","targetY","tel","terminate","test","texImage2D","texParameterf","texParameteri","texSubImage2D","text","text-align","text-anchor","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","textAlign","textAlignLast","textAnchor","textAutospace","textBaseline","textContent","textDecoration","textDecorationBlink","textDecorationColor","textDecorationLine","textDecorationLineThrough","textDecorationNone","textDecorationOverline","textDecorationStyle","textDecorationUnderline","textIndent","textJustify","textJustifyTrim","textKashida","textKashidaSpace","textLength","textOverflow","textRendering","textShadow","textTracks","textTransform","textUnderlinePosition","then","threadId","threshold","tiltX","tiltY","time","timeEnd","timeStamp","timeout","timestamp","timestampOffset","timing","title","toArray","toBlob","toDataURL","toDateString","toElement","toExponential","toFixed","toFloat32Array","toFloat64Array","toGMTString","toISOString","toJSON","toLocaleDateString","toLocaleFormat","toLocaleLowerCase","toLocaleString","toLocaleTimeString","toLocaleUpperCase","toLowerCase","toMethod","toPrecision","toSdp","toSource","toStaticHTML","toString","toStringTag","toTimeString","toUTCString","toUpperCase","toggle","toggleLongPressEnabled","tooLong","toolbar","top","topMargin","total","totalFrameDelay","totalVideoFrames","touchAction","touches","trace","track","transaction","transactions","transform","transform-origin","transform-style","transformOrigin","transformPoint","transformString","transformStyle","transformToDocument","transformToFragment","transition","transition-delay","transition-duration","transition-property","transition-timing-function","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","translate","translateSelf","translationX","translationY","trim","trimLeft","trimRight","trueSpeed","trunc","truncate","type","typeDetail","typeMismatch","typeMustMatch","types","ubound","undefined","unescape","uneval","unicode-bidi","unicodeBidi","uniform1f","uniform1fv","uniform1i","uniform1iv","uniform2f","uniform2fv","uniform2i","uniform2iv","uniform3f","uniform3fv","uniform3i","uniform3iv","uniform4f","uniform4fv","uniform4i","uniform4iv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","unique","uniqueID","uniqueNumber","unitType","units","unloadEventEnd","unloadEventStart","unlock","unmount","unobserve","unpause","unpauseAnimations","unreadCount","unregister","unregisterContentHandler","unregisterProtocolHandler","unscopables","unselectable","unshift","unsubscribe","unsuspendRedraw","unsuspendRedrawAll","unwatch","unwrapKey","update","updateCommands","updateIce","updateInterval","updateSettings","updated","updating","upload","upper","upperBound","upperOpen","uri","url","urn","urns","usages","useCurrentView","useMap","useProgram","usedSpace","userAgent","userLanguage","username","v8BreakIterator","vAlign","vLink","valid","validateProgram","validationMessage","validity","value","valueAsDate","valueAsNumber","valueAsString","valueInSpecifiedUnits","valueMissing","valueOf","valueText","valueType","values","vector-effect","vectorEffect","velocityAngular","velocityExpansion","velocityX","velocityY","vendor","vendorSub","verify","version","vertexAttrib1f","vertexAttrib1fv","vertexAttrib2f","vertexAttrib2fv","vertexAttrib3f","vertexAttrib3fv","vertexAttrib4f","vertexAttrib4fv","vertexAttribDivisorANGLE","vertexAttribPointer","vertical","vertical-align","verticalAlign","verticalOverflow","vibrate","videoHeight","videoTracks","videoWidth","view","viewBox","viewBoxString","viewTarget","viewTargetString","viewport","viewportAnchorX","viewportAnchorY","viewportElement","visibility","visibilityState","visible","vlinkColor","voice","volume","vrml","vspace","w","wand","warn","wasClean","watch","watchPosition","webdriver","webkitAddKey","webkitAnimation","webkitAnimationDelay","webkitAnimationDirection","webkitAnimationDuration","webkitAnimationFillMode","webkitAnimationIterationCount","webkitAnimationName","webkitAnimationPlayState","webkitAnimationTimingFunction","webkitAppearance","webkitAudioContext","webkitAudioDecodedByteCount","webkitAudioPannerNode","webkitBackfaceVisibility","webkitBackground","webkitBackgroundAttachment","webkitBackgroundClip","webkitBackgroundColor","webkitBackgroundImage","webkitBackgroundOrigin","webkitBackgroundPosition","webkitBackgroundPositionX","webkitBackgroundPositionY","webkitBackgroundRepeat","webkitBackgroundSize","webkitBackingStorePixelRatio","webkitBorderImage","webkitBorderImageOutset","webkitBorderImageRepeat","webkitBorderImageSlice","webkitBorderImageSource","webkitBorderImageWidth","webkitBoxAlign","webkitBoxDirection","webkitBoxFlex","webkitBoxOrdinalGroup","webkitBoxOrient","webkitBoxPack","webkitBoxSizing","webkitCancelAnimationFrame","webkitCancelFullScreen","webkitCancelKeyRequest","webkitCancelRequestAnimationFrame","webkitClearResourceTimings","webkitClosedCaptionsVisible","webkitConvertPointFromNodeToPage","webkitConvertPointFromPageToNode","webkitCreateShadowRoot","webkitCurrentFullScreenElement","webkitCurrentPlaybackTargetIsWireless","webkitDirectionInvertedFromDevice","webkitDisplayingFullscreen","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen","webkitExitPointerLock","webkitFullScreenKeyboardInputAllowed","webkitFullscreenElement","webkitFullscreenEnabled","webkitGenerateKeyRequest","webkitGetAsEntry","webkitGetDatabaseNames","webkitGetEntries","webkitGetEntriesByName","webkitGetEntriesByType","webkitGetFlowByName","webkitGetGamepads","webkitGetImageDataHD","webkitGetNamedFlows","webkitGetRegionFlowRanges","webkitGetUserMedia","webkitHasClosedCaptions","webkitHidden","webkitIDBCursor","webkitIDBDatabase","webkitIDBDatabaseError","webkitIDBDatabaseException","webkitIDBFactory","webkitIDBIndex","webkitIDBKeyRange","webkitIDBObjectStore","webkitIDBRequest","webkitIDBTransaction","webkitImageSmoothingEnabled","webkitIndexedDB","webkitInitMessageEvent","webkitIsFullScreen","webkitKeys","webkitLineDashOffset","webkitLockOrientation","webkitMatchesSelector","webkitMediaStream","webkitNotifications","webkitOfflineAudioContext","webkitOrientation","webkitPeerConnection00","webkitPersistentStorage","webkitPointerLockElement","webkitPostMessage","webkitPreservesPitch","webkitPutImageDataHD","webkitRTCPeerConnection","webkitRegionOverset","webkitRequestAnimationFrame","webkitRequestFileSystem","webkitRequestFullScreen","webkitRequestFullscreen","webkitRequestPointerLock","webkitResolveLocalFileSystemURL","webkitSetMediaKeys","webkitSetResourceTimingBufferSize","webkitShadowRoot","webkitShowPlaybackTargetPicker","webkitSlice","webkitSpeechGrammar","webkitSpeechGrammarList","webkitSpeechRecognition","webkitSpeechRecognitionError","webkitSpeechRecognitionEvent","webkitStorageInfo","webkitSupportsFullscreen","webkitTemporaryStorage","webkitTextSizeAdjust","webkitTransform","webkitTransformOrigin","webkitTransition","webkitTransitionDelay","webkitTransitionDuration","webkitTransitionProperty","webkitTransitionTimingFunction","webkitURL","webkitUnlockOrientation","webkitUserSelect","webkitVideoDecodedByteCount","webkitVisibilityState","webkitWirelessVideoPlaybackDisabled","webkitdropzone","webstore","weight","whatToShow","wheelDelta","wheelDeltaX","wheelDeltaY","which","white-space","whiteSpace","wholeText","widows","width","will-change","willChange","willValidate","window","withCredentials","word-break","word-spacing","word-wrap","wordBreak","wordSpacing","wordWrap","wrap","wrapKey","write","writeln","writingMode","x","x1","x2","xChannelSelector","xmlEncoding","xmlStandalone","xmlVersion","xmlbase","xmllang","xmlspace","y","y1","y2","yChannelSelector","yandex","z","z-index","zIndex","zoom","zoomAndPan","zoomRectScreen"]')},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesTransformer=void 0;const d=r(0),u=r(1),f=r(238),p=r(2),m=r(3),g=r(9),_=r(11),S=r(4);let N=o=class extends _.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.renamePropertiesReplacer=e}static isValidPropertyNode(e,t){return(!S.NodeGuards.isIdentifierNode(t)||!e.computed)&&(S.NodeGuards.isIdentifierNode(t)||S.NodeGuards.isLiteralNode(t))}getVisitor(e){switch(e){case g.NodeTransformationStage.RenameProperties:return{enter:(e,t)=>{if(t)return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isPropertyNode(e)?this.transformPropertyNode(e):S.NodeGuards.isMemberExpressionNode(e)?this.transformMemberExpressionNode(e):S.NodeGuards.isMethodDefinitionNode(e)?this.transformMethodDefinitionNode(e):e}transformPropertyNode(e){const t=e.key;return o.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t),e.shorthand=!1),e}transformMemberExpressionNode(e){const t=e.property;return o.isValidPropertyNode(e,t)&&(e.property=this.renamePropertiesReplacer.replace(t)),e}transformMethodDefinitionNode(e){const t=e.key;return o.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t)),e}};N=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IRenamePropertiesReplacer)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.IRenamePropertiesReplacer&&f.IRenamePropertiesReplacer)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],N),t.RenamePropertiesTransformer=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.storagesModule=void 0;const o=r(0),n=r(1),i=r(240),a=r(241),s=r(243);t.storagesModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.TCustomNodeGroupStorage).to(a.CustomCodeHelperGroupStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayStorage).to(s.StringArrayStorage).inSingletonScope(),e(n.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(i.ControlFlowStorage),e(n.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(e=>()=>{const t=new(e.container.get(n.ServiceIdentifiers.Newable__TControlFlowStorage))(e.container.get(n.ServiceIdentifiers.IRandomGenerator),e.container.get(n.ServiceIdentifiers.IOptions));return t.initialize(),t})})},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorage=void 0;const c=r(0),l=r(1),d=r(2),u=r(3),f=r(55);let p=class extends f.MapStorage{constructor(e,t){super(e,t)}};p=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],p),t.ControlFlowStorage=p},function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroupStorage=void 0;const d=r(0),u=r(1),f=r(242),p=r(2),m=r(3),g=r(69),_=r(55);let S=o=class extends _.MapStorage{constructor(e,t,r){super(t,r),this.customCodeHelperGroupFactory=e}initialize(){super.initialize(),o.customCodeHelperGroupsList.forEach(e=>{const t=this.customCodeHelperGroupFactory(e);this.storage.set(e,t)})}};S.customCodeHelperGroupsList=[g.CustomCodeHelperGroup.ConsoleOutput,g.CustomCodeHelperGroup.DebugProtection,g.CustomCodeHelperGroup.DomainLock,g.CustomCodeHelperGroup.SelfDefending,g.CustomCodeHelperGroup.StringArray],s([d.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],S.prototype,"initialize",null),S=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperGroupFactory&&f.TCustomCodeHelperGroupFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],S),t.CustomCodeHelperGroupStorage=S},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorage=void 0;const p=r(0),m=r(1),g=r(5),_=r(36),S=r(51),N=r(39),h=r(2),y=r(3),O=r(28),b=r(55);let E=o=class extends b.MapStorage{constructor(e,t,r,n,i,a){super(r,n),this.rc4EncodedValuesSourcesCache=new Map,this.rotationAmount=0,this.identifierNamesGenerator=e(n),this.arrayUtils=t,this.cryptUtils=i,this.escapeSequenceEncoder=a,this.rc4Keys=this.randomGenerator.getRandomGenerator().n(()=>this.randomGenerator.getRandomGenerator().string({length:o.rc4KeyLength}),o.rc4KeysCount)}initialize(){super.initialize(),this.rotationAmount=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(o.minimumRotationAmount,o.maximumRotationAmount):0}get(e){return this.getOrSetIfDoesNotExist(e)}getRotationAmount(){return this.rotationAmount}getStorageName(){return this.getStorageId()}getStorageId(){return this.stringArrayStorageName||(this.stringArrayStorageName=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength)),this.stringArrayStorageName}getStorageCallsWrapperName(){return this.stringArrayStorageCallsWrapperName||(this.stringArrayStorageCallsWrapperName=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength)),this.stringArrayStorageCallsWrapperName}rotateStorage(){this.getLength()&&(this.storage=new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()),this.rotationAmount)))}shuffleStorage(){this.storage=new Map(this.arrayUtils.shuffle(Array.from(this.storage.entries())).map(([e,t],r)=>(t.index=r,[e,t])).sort(([,e],[,t])=>e.index-t.index))}toString(){return Array.from(this.storage.values()).map(e=>`'${this.escapeSequenceEncoder.encode(e.encodedValue,this.options.unicodeEscapeSequence)}'`).toString()}getOrSetIfDoesNotExist(e){const{encodedValue:t,decodeKey:r}=this.getEncodedValue(e),o=this.storage.get(t);if(o)return o;const n={encodedValue:t,decodeKey:r,value:e,index:this.getLength()};return this.storage.set(t,n),n}getEncodedValue(e){var t;switch(this.options.stringArrayEncoding){case O.StringArrayEncoding.Rc4:{const r=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),o=this.cryptUtils.btoa(this.cryptUtils.rc4(e,r)),n=null!==(t=this.rc4EncodedValuesSourcesCache.get(o))&&void 0!==t?t:[];let i=n.length;return(!i||!n.includes(e))&&(n.push(e),i++),this.rc4EncodedValuesSourcesCache.set(o,n),i>1?this.getEncodedValue(e):{encodedValue:o,decodeKey:r}}case O.StringArrayEncoding.Base64:{const t=null;return{encodedValue:this.cryptUtils.btoa(e),decodeKey:t}}default:return{encodedValue:e,decodeKey:null}}}};E.minimumRotationAmount=100,E.maximumRotationAmount=500,E.rc4KeyLength=4,E.rc4KeysCount=50,E.stringArrayNameLength=4,d([p.postConstruct(),u("design:type",Function),u("design:paramtypes",[]),u("design:returntype",void 0)],E.prototype,"initialize",null),E=o=d([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,p.inject(m.ServiceIdentifiers.IArrayUtils)),f(2,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(3,p.inject(m.ServiceIdentifiers.IOptions)),f(4,p.inject(m.ServiceIdentifiers.ICryptUtils)),f(5,p.inject(m.ServiceIdentifiers.IEscapeSequenceEncoder)),u("design:paramtypes",["function"==typeof(n=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==_.IArrayUtils&&_.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object,"function"==typeof(c=void 0!==S.ICryptUtils&&S.ICryptUtils)?c:Object,"function"==typeof(l=void 0!==N.IEscapeSequenceEncoder&&N.IEscapeSequenceEncoder)?l:Object])],E),t.StringArrayStorage=E},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.utilsModule=void 0;const o=r(0),n=r(1),i=r(245),a=r(246),s=r(250),c=r(251),l=r(77);t.utilsModule=new o.ContainerModule(e=>{e(n.ServiceIdentifiers.IArrayUtils).to(i.ArrayUtils).inSingletonScope(),e(n.ServiceIdentifiers.IRandomGenerator).to(l.RandomGenerator).inSingletonScope(),e(n.ServiceIdentifiers.ICryptUtils).to(a.CryptUtils).inSingletonScope(),e(n.ServiceIdentifiers.IEscapeSequenceEncoder).to(s.EscapeSequenceEncoder).inSingletonScope(),e(n.ServiceIdentifiers.ILevelledTopologicalSorter).to(c.LevelledTopologicalSorter)})},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayUtils=void 0;const s=r(0),c=r(1),l=r(3);let d=class{constructor(e){this.randomGenerator=e}createWithRange(e){const t=[];for(let r=0;rn&&(o=i,n=e),r[i]=e}return o}rotate(e,t){if(!e.length)throw new ReferenceError("Cannot rotate empty array.");if(t<=0)return e;const r=e;let o;for(;t--;)o=r.pop(),o&&r.unshift(o);return r}shuffle(e){const t=[...e];for(let e=t.length;e;e--){const r=Math.floor(this.randomGenerator.getMathRandom()*e);[t[e-1],t[r]]=[t[r],t[e-1]]}return t}};d=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object])],d),t.ArrayUtils=d},function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtils=void 0;const s=r(0),c=r(1),l=r(3),d=r(40),u=r(33),f=r(52),p=r(77),m=r(26);let g=class{constructor(e){this.randomGenerator=e}btoa(e){const t=`${d.alphabetStringUppercase}${u.alphabetString}${f.numbersString}+/=`;let r="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(`${m.Utils.hexadecimalPrefix}${t}`,16)));for(let o,n,i=0,a=t;e.charAt(0|i)||(a="=",i%1);r+=a.charAt(63&o>>8-i%1*8)){if(n=e.charCodeAt(i+=3/4),n>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");o=o<<8|n}return r}hideString(e,t){let r=this.randomGenerator.getRandomGenerator().string({length:t,pool:p.RandomGenerator.randomGeneratorPool}).replace(new RegExp(`[${o=e,o.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}]`,"g"),"");var o;const n=r.split("");return this.randomGenerator.getRandomGenerator().shuffle(n),r=n.join(""),[((e,t)=>{let r=-1,o=-1,n="";for(;r=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceEncoder=void 0;let n=class{constructor(){this.stringsCache=new Map}encode(e,t){const r=`${e}-${String(t)}`;if(this.stringsCache.has(r))return this.stringsCache.get(r);const o=new RegExp("[\\s\\S]","g"),n=new RegExp("['\"\\\\\\s]"),i=new RegExp("[\\x00-\\x7F]");let a,s;const c=e.replace(o,e=>t||n.exec(e)?(i.exec(e)?(a="\\x",s="00"):(a="\\u",s="0000"),`${a}${(s+e.charCodeAt(0).toString(16)).slice(-s.length)}`):e);return this.stringsCache.set(r,c),this.stringsCache.set(`${c}-${String(t)}`,c),c}};n=o([r(0).injectable()],n),t.EscapeSequenceEncoder=n},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.LevelledTopologicalSorter=void 0;let n=class{constructor(){this.graph=new Map}add(e,t=null){return null!==t?this.link(e,t):this.register(e)}sort(){const e=Array.from(this.graph.keys()),t=[],r={};for(const o of e)void 0===r[o]&&this.visit(t,r,o);return t}sortByGroups(){this.sort();const e=[];for(;this.hasNodes();){const t=this.findRootNodes();e.push(t);for(const e of t)this.delete(e)}return e}delete(e){if(this.getPrecedents(e).length)throw new Error(`Unable to remove non-root node: ${e}`);this.graph.delete(e);const t=Array.from(this.graph.values());for(const r of t){for(let t=r.length-1;t>=0;t-=1)r[t]===e&&r.splice(t,1)}}findRootNodes(){const e=Array.from(this.graph.keys()),t=[];for(const r of e)this.hasPrecedents(r)||t.push(r);return t}getPrecedents(e){const t=this.graph.get(e);if(!t)throw new Error(`Unknown node: ${e}`);return t}hasNodes(){return this.graph.size>0}hasPrecedents(e){return this.getPrecedents(e).length>0}link(e,t){this.register(e),this.register(t);const r=this.graph.get(t);return r&&!r.includes(e)&&r.push(e),this}register(e){return this.graph.has(e)||this.graph.set(e,[]),this}visit(e,t,r){const o=t[r];if("visiting"===o)throw new Error(`Detected cycle involving node: ${r}`);if(o)return;t[r]="visiting";const n=this.getPrecedents(r);for(const r of n)this.visit(e,t,r);t[r]="ok",e.push(r)}};n=o([r(0).injectable()],n),t.LevelledTopologicalSorter=n},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformersRunner=void 0;const c=r(0),l=r(1),d=r(253),u=r(78);let f=class{constructor(e,t){this.codeTransformerFactory=e,this.codeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const o=this.buildNormalizedCodeTransformers(t,r),n=this.codeTransformerNamesGroupsBuilder.build(o);for(const t of n)for(const n of t){e=o[n].transformCode(e,r)}return e}buildNormalizedCodeTransformers(e,t){return e.reduce((e,t)=>{const r=this.codeTransformerFactory(t);return Object.assign(Object.assign({},e),{[t]:r})},{})}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.Factory__ICodeTransformer)),s(1,c.inject(l.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),a("design:paramtypes",["function"==typeof(o=void 0!==d.TCodeTransformerFactory&&d.TCodeTransformerFactory)?o:Object,"function"==typeof(n=void 0!==u.ITransformerNamesGroupsBuilder&&u.ITransformerNamesGroupsBuilder)?n:Object])],f),t.CodeTransformersRunner=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),f=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},p=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&d(t,e,r);return u(t,e),t},m=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},g=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0;const _=r(0),S=r(1),N=p(r(50)),h=r(255),y=r(256),O=r(257),b=r(2),E=r(3),I=r(65),C=r(58),T=r(60),v=r(258),R=r(13),M=r(9),A=r(47),F=r(63),D=r(4),j=r(26);let P=o=class{constructor(e,t,r,o,n,i){this.codeTransformersRunner=e,this.nodeTransformersRunner=t,this.randomGenerator=r,this.obfuscatedCodeFactory=o,this.logger=n,this.options=i}obfuscate(e){"string"!=typeof e&&(e="");const t=Date.now();this.logger.info(v.LoggingMessage.Version,j.Utils.buildVersionMessage("1.3.0",1593340838479)),this.logger.info(v.LoggingMessage.ObfuscationStarted),this.logger.info(v.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getInputSeed()),e=this.runCodeTransformationStage(e,T.CodeTransformationStage.PreparingTransformers);const r=this.parseCode(e),o=this.transformAstTree(r),n=this.generateCode(e,o);n.code=this.runCodeTransformationStage(n.code,T.CodeTransformationStage.FinalizingTransformers);const i=(Date.now()-t)/1e3;return this.logger.success(v.LoggingMessage.ObfuscationCompleted,i),this.getObfuscatedCode(n)}parseCode(e){return F.ASTParserFacade.parse(e,o.parseOptions)}transformAstTree(e){return e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Initializing),!D.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.ControlFlowFlattening)),this.options.renameProperties&&(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.RenameProperties)),e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Converting),e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Obfuscating),this.options.minify&&(e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Minification)),e=this.runNodeTransformationStage(e,M.NodeTransformationStage.Finalizing)):(this.logger.warn(v.LoggingMessage.EmptySourceCode),e)}generateCode(e,t){const r=Object.assign({},o.escodegenParams);this.options.sourceMap&&(r.sourceMap=this.options.inputFileName||"sourceMap",r.sourceContent=e);const n=N.generate(t,Object.assign(Object.assign({},r),{format:{compact:this.options.compact}}));return n.map=n.map?n.map.toString():"",n}getObfuscatedCode(e){return this.obfuscatedCodeFactory(e.code,e.map)}runCodeTransformationStage(e,t){return this.logger.info(v.LoggingMessage.CodeTransformationStage,t),this.codeTransformersRunner.transform(e,o.codeTransformersList,t)}runNodeTransformationStage(e,t){return this.logger.info(v.LoggingMessage.NodeTransformationStage,t),this.nodeTransformersRunner.transform(e,o.nodeTransformersList,t)}};P.parseOptions={ecmaVersion:A.ecmaVersion,allowHashBang:!0,allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,locations:!0,ranges:!0},P.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},P.codeTransformersList=[C.CodeTransformer.HashbangOperatorTransformer],P.nodeTransformersList=[R.NodeTransformer.BlockStatementControlFlowTransformer,R.NodeTransformer.CommentsTransformer,R.NodeTransformer.CustomCodeHelpersTransformer,R.NodeTransformer.DeadCodeInjectionTransformer,R.NodeTransformer.EvalCallExpressionTransformer,R.NodeTransformer.FunctionControlFlowTransformer,R.NodeTransformer.IfStatementSimplifyTransformer,R.NodeTransformer.LabeledStatementTransformer,R.NodeTransformer.LiteralTransformer,R.NodeTransformer.RenamePropertiesTransformer,R.NodeTransformer.MemberExpressionTransformer,R.NodeTransformer.MetadataTransformer,R.NodeTransformer.MethodDefinitionTransformer,R.NodeTransformer.ObfuscatingGuardsTransformer,R.NodeTransformer.ObjectExpressionKeysTransformer,R.NodeTransformer.ObjectExpressionTransformer,R.NodeTransformer.ParentificationTransformer,R.NodeTransformer.ScopeIdentifiersTransformer,R.NodeTransformer.SplitStringTransformer,R.NodeTransformer.TemplateLiteralTransformer,R.NodeTransformer.VariableDeclarationsMergeTransformer,R.NodeTransformer.VariablePreserveTransformer],P=o=f([_.injectable(),g(0,_.inject(S.ServiceIdentifiers.ICodeTransformersRunner)),g(1,_.inject(S.ServiceIdentifiers.INodeTransformersRunner)),g(2,_.inject(S.ServiceIdentifiers.IRandomGenerator)),g(3,_.inject(S.ServiceIdentifiers.Factory__IObfuscatedCode)),g(4,_.inject(S.ServiceIdentifiers.ILogger)),g(5,_.inject(S.ServiceIdentifiers.IOptions)),m("design:paramtypes",["function"==typeof(n=void 0!==y.ICodeTransformersRunner&&y.ICodeTransformersRunner)?n:Object,"function"==typeof(i=void 0!==I.INodeTransformersRunner&&I.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==E.IRandomGenerator&&E.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.TObfuscatedCodeFactory&&h.TObfuscatedCodeFactory)?s:Object,"function"==typeof(c=void 0!==O.ILogger&&O.ILogger)?c:Object,"function"==typeof(l=void 0!==b.IOptions&&b.IOptions)?l:Object])],P),t.JavaScriptObfuscator=P},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingMessage=void 0,function(e){e.EmptySourceCode="Empty source code. Obfuscation canceled...",e.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",e.ObfuscationStarted="Obfuscation started...",e.RandomGeneratorSeed="Random generator seed: %s...",e.CodeTransformationStage="Code transformation stage: %s...",e.NodeTransformationStage="AST transformation stage: %s...",e.Version="Version: %s"}(t.LoggingMessage||(t.LoggingMessage={}))},function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformersRunner=void 0;const u=r(0),f=r(1),p=c(r(12)),m=r(260),g=r(78),_=r(261),S=r(4),N=r(19);let h=class{constructor(e,t){this.nodeTransformerFactory=e,this.nodeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const o=this.buildNormalizedNodeTransformers(t,r),n=this.nodeTransformerNamesGroupsBuilder.build(o);for(const t of n){const n=[],i=[];for(const e of t){const t=o[e].getVisitor(r);t&&(t.enter&&n.push({enter:t.enter}),t.leave&&i.push({leave:t.leave}))}(n.length||i.length)&&p.replace(e,{enter:this.mergeVisitorsForDirection(n,_.VisitorDirection.Enter),leave:this.mergeVisitorsForDirection(i,_.VisitorDirection.Leave)})}return e}buildNormalizedNodeTransformers(e,t){return e.reduce((e,r)=>{const o=this.nodeTransformerFactory(r);return o.getVisitor(t)?Object.assign(Object.assign({},e),{[r]:o}):e},{})}mergeVisitorsForDirection(e,t){const r=e.length;return r?(o,n)=>{if(N.NodeMetadata.isIgnoredNode(o))return p.VisitorOption.Skip;for(let i=0;ie}};h=s([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.Factory__INodeTransformer)),d(1,u.inject(f.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),l("design:paramtypes",["function"==typeof(o=void 0!==m.TNodeTransformerFactory&&m.TNodeTransformerFactory)?o:Object,"function"==typeof(n=void 0!==g.ITransformerNamesGroupsBuilder&&g.ITransformerNamesGroupsBuilder)?n:Object])],h),t.NodeTransformersRunner=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VisitorDirection=void 0,function(e){e.Enter="enter",e.Leave="leave"}(t.VisitorDirection||(t.VisitorDirection={}))},function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEventEmitter=void 0;const i=r(0),a=n(r(263));i.decorate(i.injectable(),a.default);let s=class extends a.default{};s=o([i.injectable()],s),t.ObfuscationEventEmitter=s},function(e,t){e.exports=require("eventemitter3")},function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatedCode=void 0;const c=r(0),l=r(1),d=r(51),u=r(8),f=r(32),p=r(2);let m=class{constructor(e,t){this.cryptUtils=e,this.options=t}initialize(e,t){this.obfuscatedCode=e,this.sourceMap=t}getObfuscatedCode(){return this.correctObfuscatedCode()}getSourceMap(){return this.sourceMap}toString(){return this.obfuscatedCode}correctObfuscatedCode(){if(!this.sourceMap)return this.obfuscatedCode;const e=this.options.sourceMapBaseUrl+this.options.sourceMapFileName;let t="//# sourceMappingURL=";switch(this.options.sourceMapMode){case f.SourceMapMode.Inline:t+=`data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`;break;case f.SourceMapMode.Separate:default:if(!e)return this.obfuscatedCode;t+=e}return`${this.obfuscatedCode}\n${t}`}};i([u.initializable(),a("design:type",String)],m.prototype,"obfuscatedCode",void 0),i([u.initializable(),a("design:type",String)],m.prototype,"sourceMap",void 0),m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.ICryptUtils)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.ICryptUtils&&d.ICryptUtils)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object])],m),t.ObfuscatedCode=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceCode=void 0;t.SourceCode=class{constructor(e,t){this.sourceCode=e,this.sourceMap=t}getSourceCode(){return this.sourceCode}getSourceMap(){return this.sourceMap}toString(){return this.sourceCode}}},,,,function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const o=r(56);e.exports=o.JavaScriptObfuscator}]); + +require("source-map-support").install(); + + +module.exports = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./index.ts"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./index.ts": +/*!******************!*\ + !*** ./index.ts ***! + \******************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +const JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ./src/JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); +module.exports = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator; + + +/***/ }), + +/***/ "./src/ASTParserFacade.ts": +/*!********************************!*\ + !*** ./src/ASTParserFacade.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ASTParserFacade = void 0; +const acorn = __importStar(__webpack_require__(/*! acorn */ "acorn")); +const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk")); +class ASTParserFacade { + static parse(sourceCode, config) { + const sourceTypeLength = ASTParserFacade.sourceTypes.length; + for (let i = 0; i < sourceTypeLength; i++) { + try { + return ASTParserFacade.parseType(sourceCode, config, ASTParserFacade.sourceTypes[i]); + } + catch (error) { + if (i < sourceTypeLength - 1) { + continue; + } + throw new Error(ASTParserFacade.processParsingError(sourceCode, error.message, error.loc)); + } + } + throw new Error('Acorn parsing error'); + } + static parseType(sourceCode, inputConfig, sourceType) { + const comments = []; + const config = Object.assign(Object.assign({}, inputConfig), { onComment: comments, sourceType }); + const program = acorn + .parse(sourceCode, config); + if (comments.length) { + program.comments = comments; + } + return program; + } + static processParsingError(sourceCode, errorMessage, position) { + if (!position || !position.line || !position.column) { + throw new Error(errorMessage); + } + const sourceCodeLines = sourceCode.split(/\r?\n/); + const errorLine = sourceCodeLines[position.line - 1]; + if (!errorLine) { + throw new Error(errorMessage); + } + const startErrorIndex = Math.max(0, position.column - ASTParserFacade.nearestSymbolsCount); + const endErrorIndex = Math.min(errorLine.length, position.column + ASTParserFacade.nearestSymbolsCount); + const formattedPointer = ASTParserFacade.colorError('>'); + const formattedCodeSlice = `...${errorLine.substring(startErrorIndex, endErrorIndex).replace(/^\s+/, '')}...`; + throw new Error(`ERROR at line ${position.line}: ${errorMessage}\n${formattedPointer} ${formattedCodeSlice}`); + } +} +exports.ASTParserFacade = ASTParserFacade; +ASTParserFacade.colorError = chalk_1.default.red; +ASTParserFacade.nearestSymbolsCount = 15; +ASTParserFacade.sourceTypes = [ + 'script', + 'module' +]; + + +/***/ }), + +/***/ "./src/JavaScriptObfuscator.ts": +/*!*************************************!*\ + !*** ./src/JavaScriptObfuscator.ts ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var JavaScriptObfuscator_1, _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JavaScriptObfuscator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const escodegen = __importStar(__webpack_require__(/*! escodegen */ "escodegen")); +const TObfuscatedCodeFactory_1 = __webpack_require__(/*! ./types/container/source-code/TObfuscatedCodeFactory */ "./src/types/container/source-code/TObfuscatedCodeFactory.ts"); +const ICodeTransformersRunner_1 = __webpack_require__(/*! ./interfaces/code-transformers/ICodeTransformersRunner */ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts"); +const ILogger_1 = __webpack_require__(/*! ./interfaces/logger/ILogger */ "./src/interfaces/logger/ILogger.ts"); +const IOptions_1 = __webpack_require__(/*! ./interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ./interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const INodeTransformersRunner_1 = __webpack_require__(/*! ./interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts"); +const CodeTransformer_1 = __webpack_require__(/*! ./enums/code-transformers/CodeTransformer */ "./src/enums/code-transformers/CodeTransformer.ts"); +const CodeTransformationStage_1 = __webpack_require__(/*! ./enums/code-transformers/CodeTransformationStage */ "./src/enums/code-transformers/CodeTransformationStage.ts"); +const LoggingMessage_1 = __webpack_require__(/*! ./enums/logger/LoggingMessage */ "./src/enums/logger/LoggingMessage.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const EcmaVersion_1 = __webpack_require__(/*! ./constants/EcmaVersion */ "./src/constants/EcmaVersion.ts"); +const ASTParserFacade_1 = __webpack_require__(/*! ./ASTParserFacade */ "./src/ASTParserFacade.ts"); +const NodeGuards_1 = __webpack_require__(/*! ./node/NodeGuards */ "./src/node/NodeGuards.ts"); +const Utils_1 = __webpack_require__(/*! ./utils/Utils */ "./src/utils/Utils.ts"); +let JavaScriptObfuscator = JavaScriptObfuscator_1 = class JavaScriptObfuscator { + constructor(codeTransformersRunner, nodeTransformersRunner, randomGenerator, obfuscatedCodeFactory, logger, options) { + this.codeTransformersRunner = codeTransformersRunner; + this.nodeTransformersRunner = nodeTransformersRunner; + this.randomGenerator = randomGenerator; + this.obfuscatedCodeFactory = obfuscatedCodeFactory; + this.logger = logger; + this.options = options; + } + obfuscate(sourceCode) { + if (typeof sourceCode !== 'string') { + sourceCode = ''; + } + const timeStart = Date.now(); + this.logger.info(LoggingMessage_1.LoggingMessage.Version, Utils_1.Utils.buildVersionMessage("1.3.0", 1593367787211)); + this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted); + this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getInputSeed()); + sourceCode = this.runCodeTransformationStage(sourceCode, CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers); + const astTree = this.parseCode(sourceCode); + const obfuscatedAstTree = this.transformAstTree(astTree); + const generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree); + generatorOutput.code = this.runCodeTransformationStage(generatorOutput.code, CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers); + const obfuscationTime = (Date.now() - timeStart) / 1000; + this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime); + return this.getObfuscatedCode(generatorOutput); + } + parseCode(sourceCode) { + return ASTParserFacade_1.ASTParserFacade.parse(sourceCode, JavaScriptObfuscator_1.parseOptions); + } + transformAstTree(astTree) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Initializing); + const isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree) + && !astTree.body.length + && !astTree.leadingComments + && !astTree.trailingComments; + if (isEmptyAstTree) { + this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode); + return astTree; + } + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Preparing); + if (this.options.deadCodeInjection) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection); + } + if (this.options.controlFlowFlattening) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening); + } + if (this.options.renameProperties) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameProperties); + } + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Converting); + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Obfuscating); + if (this.options.minify) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Minification); + } + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Finalizing); + return astTree; + } + generateCode(sourceCode, astTree) { + const escodegenParams = Object.assign({}, JavaScriptObfuscator_1.escodegenParams); + if (this.options.sourceMap) { + escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap'; + escodegenParams.sourceContent = sourceCode; + } + const generatorOutput = escodegen.generate(astTree, Object.assign(Object.assign({}, escodegenParams), { format: { + compact: this.options.compact + } })); + generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : ''; + return generatorOutput; + } + getObfuscatedCode(generatorOutput) { + return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map); + } + runCodeTransformationStage(code, codeTransformationStage) { + this.logger.info(LoggingMessage_1.LoggingMessage.CodeTransformationStage, codeTransformationStage); + return this.codeTransformersRunner.transform(code, JavaScriptObfuscator_1.codeTransformersList, codeTransformationStage); + } + runNodeTransformationStage(astTree, nodeTransformationStage) { + this.logger.info(LoggingMessage_1.LoggingMessage.NodeTransformationStage, nodeTransformationStage); + return this.nodeTransformersRunner.transform(astTree, JavaScriptObfuscator_1.nodeTransformersList, nodeTransformationStage); + } +}; +JavaScriptObfuscator.parseOptions = { + ecmaVersion: EcmaVersion_1.ecmaVersion, + allowHashBang: true, + allowImportExportEverywhere: true, + allowReturnOutsideFunction: true, + locations: true, + ranges: true +}; +JavaScriptObfuscator.escodegenParams = { + comment: true, + verbatim: 'x-verbatim-property', + sourceMapWithCode: true +}; +JavaScriptObfuscator.codeTransformersList = [ + CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer +]; +JavaScriptObfuscator.nodeTransformersList = [ + NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer, + NodeTransformer_1.NodeTransformer.CommentsTransformer, + NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer, + NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer, + NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer, + NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer, + NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer, + NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, + NodeTransformer_1.NodeTransformer.LiteralTransformer, + NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer, + NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, + NodeTransformer_1.NodeTransformer.MetadataTransformer, + NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer, + NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer, + NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, + NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer, + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer, + NodeTransformer_1.NodeTransformer.SplitStringTransformer, + NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer, + NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer +]; +JavaScriptObfuscator = JavaScriptObfuscator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof ICodeTransformersRunner_1.ICodeTransformersRunner !== "undefined" && ICodeTransformersRunner_1.ICodeTransformersRunner) === "function" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof TObfuscatedCodeFactory_1.TObfuscatedCodeFactory !== "undefined" && TObfuscatedCodeFactory_1.TObfuscatedCodeFactory) === "function" ? _d : Object, typeof (_e = typeof ILogger_1.ILogger !== "undefined" && ILogger_1.ILogger) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], JavaScriptObfuscator); +exports.JavaScriptObfuscator = JavaScriptObfuscator; + + +/***/ }), + +/***/ "./src/JavaScriptObfuscatorFacade.ts": +/*!*******************************************!*\ + !*** ./src/JavaScriptObfuscatorFacade.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JavaScriptObfuscator = void 0; +__webpack_require__(/*! reflect-metadata */ "reflect-metadata"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const InversifyContainerFacade_1 = __webpack_require__(/*! ./container/InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const Utils_1 = __webpack_require__(/*! ./utils/Utils */ "./src/utils/Utils.ts"); +class JavaScriptObfuscatorFacade { + static obfuscate(sourceCode, inputOptions = {}) { + const inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade(); + inversifyContainerFacade.load(sourceCode, '', inputOptions); + const javaScriptObfuscator = inversifyContainerFacade + .get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator); + const obfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode); + inversifyContainerFacade.unload(); + return obfuscatedCode; + } + static obfuscateMultiple(sourceCodesObject, inputOptions = {}) { + if (typeof sourceCodesObject !== 'object') { + throw new Error('Source codes object should be a plain object'); + } + return Object + .keys(sourceCodesObject) + .reduce((acc, sourceCodeIdentifier, index) => { + const identifiersPrefix = Utils_1.Utils.getIdentifiersPrefixForMultipleSources(inputOptions.identifiersPrefix, index); + const sourceCode = sourceCodesObject[sourceCodeIdentifier]; + const sourceCodeOptions = Object.assign(Object.assign({}, inputOptions), { identifiersPrefix }); + return Object.assign(Object.assign({}, acc), { [sourceCodeIdentifier]: JavaScriptObfuscatorFacade.obfuscate(sourceCode, sourceCodeOptions) }); + }, {}); + } +} +exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade; +JavaScriptObfuscatorFacade.version = (_a = "1.3.0") !== null && _a !== void 0 ? _a : 'unknown'; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts": +/*!******************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var CallsGraphAnalyzer_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallsGraphAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TCalleeDataExtractorFactory_1 = __webpack_require__(/*! ../../types/container/calls-graph-analyzer/TCalleeDataExtractorFactory */ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts"); +const CalleeDataExtractor_1 = __webpack_require__(/*! ../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let CallsGraphAnalyzer = CallsGraphAnalyzer_1 = class CallsGraphAnalyzer { + constructor(calleeDataExtractorFactory) { + this.calleeDataExtractorFactory = calleeDataExtractorFactory; + } + static getLimitIndex(blockScopeBodyLength) { + const lastIndex = blockScopeBodyLength - 1; + const limitThresholdActivationIndex = CallsGraphAnalyzer_1.limitThresholdActivationLength - 1; + let limitIndex = lastIndex; + if (lastIndex > limitThresholdActivationIndex) { + limitIndex = Math.round(limitThresholdActivationIndex + (lastIndex * CallsGraphAnalyzer_1.limitThreshold)); + if (limitIndex > lastIndex) { + limitIndex = lastIndex; + } + } + return limitIndex; + } + analyze(astTree) { + return this.analyzeRecursive(astTree.body); + } + analyzeRecursive(blockScopeBody) { + const limitIndex = CallsGraphAnalyzer_1.getLimitIndex(blockScopeBody.length); + const callsGraphData = []; + const blockScopeBodyLength = blockScopeBody.length; + for (let index = 0; index < blockScopeBodyLength; index++) { + if (index > limitIndex) { + break; + } + const blockScopeBodyNode = blockScopeBody[index]; + estraverse.traverse(blockScopeBodyNode, { + enter: (node) => { + if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) { + return; + } + if (blockScopeBodyNode.parentNode !== NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(node)) { + return estraverse.VisitorOption.Skip; + } + this.analyzeCallExpressionNode(callsGraphData, blockScopeBody, node); + } + }); + } + return callsGraphData; + } + analyzeCallExpressionNode(callsGraphData, blockScopeBody, callExpressionNode) { + CallsGraphAnalyzer_1.calleeDataExtractorsList.forEach((calleeDataExtractorName) => { + const calleeData = this.calleeDataExtractorFactory(calleeDataExtractorName) + .extract(blockScopeBody, callExpressionNode.callee); + if (!calleeData) { + return; + } + callsGraphData.push(Object.assign(Object.assign({}, calleeData), { callsGraph: this.analyzeRecursive(calleeData.callee.body) })); + }); + } +}; +CallsGraphAnalyzer.calleeDataExtractorsList = [ + CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor, + CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor, + CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor +]; +CallsGraphAnalyzer.limitThresholdActivationLength = 25; +CallsGraphAnalyzer.limitThreshold = 0.002; +CallsGraphAnalyzer = CallsGraphAnalyzer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)), + __metadata("design:paramtypes", [typeof (_a = typeof TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory !== "undefined" && TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory) === "function" ? _a : Object]) +], CallsGraphAnalyzer); +exports.CallsGraphAnalyzer = CallsGraphAnalyzer; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts": +/*!**************************************************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts ***! + \**************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCalleeDataExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +let AbstractCalleeDataExtractor = class AbstractCalleeDataExtractor { +}; +AbstractCalleeDataExtractor = __decorate([ + inversify_1.injectable() +], AbstractCalleeDataExtractor); +exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FunctionDeclarationCalleeDataExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let FunctionDeclarationCalleeDataExtractor = class FunctionDeclarationCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor { + extract(blockScopeBody, callee) { + if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + return null; + } + const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name); + if (!calleeBlockStatement) { + return null; + } + return { + callee: calleeBlockStatement, + name: callee.name + }; + } + getCalleeBlockStatement(targetNode, name) { + let calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) { + calleeBlockStatement = node.body; + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } +}; +FunctionDeclarationCalleeDataExtractor = __decorate([ + inversify_1.injectable() +], FunctionDeclarationCalleeDataExtractor); +exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts": +/*!************************************************************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FunctionExpressionCalleeDataExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let FunctionExpressionCalleeDataExtractor = class FunctionExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor { + extract(blockScopeBody, callee) { + let calleeName = null; + let calleeBlockStatement = null; + if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + calleeName = callee.name; + calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name); + } + else if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) { + calleeName = null; + calleeBlockStatement = callee.body; + } + if (!calleeBlockStatement) { + return null; + } + return { + callee: calleeBlockStatement, + name: calleeName + }; + } + getCalleeBlockStatement(targetNode, name) { + let calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && + parentNode && + NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) && + NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) && + parentNode.id.name === name) { + calleeBlockStatement = node.body; + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } +}; +FunctionExpressionCalleeDataExtractor = __decorate([ + inversify_1.injectable() +], FunctionExpressionCalleeDataExtractor); +exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var ObjectExpressionCalleeDataExtractor_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionCalleeDataExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = class ObjectExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor { + static isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) { + if (!propertyNode.key) { + return false; + } + const isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain; + const isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) && + Boolean(propertyNode.key.value) && + propertyNode.key.value === nextItemInCallsChain; + return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey; + } + extract(blockScopeBody, callee) { + if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) { + return null; + } + const objectMembersCallsChain = this.createObjectMembersCallsChain([], callee); + if (!objectMembersCallsChain.length) { + return null; + } + const functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1]; + const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), objectMembersCallsChain); + if (!calleeBlockStatement) { + return null; + } + return { + callee: calleeBlockStatement, + name: functionExpressionName + }; + } + createObjectMembersCallsChain(currentChain, memberExpression) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && !memberExpression.computed) { + currentChain.unshift(memberExpression.property.name); + } + else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) && + (typeof memberExpression.property.value === 'string' || + typeof memberExpression.property.value === 'number')) { + currentChain.unshift(memberExpression.property.value); + } + else { + return currentChain; + } + if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) { + return this.createObjectMembersCallsChain(currentChain, memberExpression.object); + } + else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) { + currentChain.unshift(memberExpression.object.name); + } + return currentChain; + } + getCalleeBlockStatement(targetNode, objectMembersCallsChain) { + const objectName = objectMembersCallsChain.shift(); + if (!objectName) { + return null; + } + let calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) && + NodeGuards_1.NodeGuards.isIdentifierNode(node.id) && + node.init && + NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) && + node.id.name === objectName) { + calleeBlockStatement = this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain); + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } + findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) { + const nextItemInCallsChain = objectMembersCallsChain.shift(); + if (!nextItemInCallsChain) { + return null; + } + for (const propertyNode of objectExpressionProperties) { + if (!NodeGuards_1.NodeGuards.isPropertyNode(propertyNode)) { + continue; + } + if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) { + continue; + } + if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) { + return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain); + } + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) { + return propertyNode.value.body; + } + } + return null; + } +}; +ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = __decorate([ + inversify_1.injectable() +], ObjectExpressionCalleeDataExtractor); +exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor; + + +/***/ }), + +/***/ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts": +/*!**************************************************************************************************!*\ + !*** ./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts ***! + \**************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var PrevailingKindOfVariablesAnalyzer_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PrevailingKindOfVariablesAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = class PrevailingKindOfVariablesAnalyzer { + constructor(arrayUtils) { + this.prevailingKindOfVariables = PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables; + this.arrayUtils = arrayUtils; + } + analyze(astTree) { + var _a; + const variableKinds = []; + estraverse.traverse(astTree, { + enter: (node) => { + if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) { + return; + } + variableKinds.push(node.kind); + } + }); + this.prevailingKindOfVariables = (_a = this.arrayUtils.findMostOccurringElement(variableKinds)) !== null && _a !== void 0 ? _a : PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables; + } + getPrevailingKind() { + return this.prevailingKindOfVariables; + } +}; +PrevailingKindOfVariablesAnalyzer.defaultKindOfVariables = 'var'; +PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __metadata("design:paramtypes", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _a : Object]) +], PrevailingKindOfVariablesAnalyzer); +exports.PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer; + + +/***/ }), + +/***/ "./src/analyzers/scope-analyzer/ScopeAnalyzer.ts": +/*!*******************************************************!*\ + !*** ./src/analyzers/scope-analyzer/ScopeAnalyzer.ts ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var ScopeAnalyzer_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ScopeAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const eslintScope = __importStar(__webpack_require__(/*! eslint-scope */ "eslint-scope")); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const EcmaVersion_1 = __webpack_require__(/*! ../../constants/EcmaVersion */ "./src/constants/EcmaVersion.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ScopeAnalyzer = ScopeAnalyzer_1 = class ScopeAnalyzer { + constructor() { + this.scopeManager = null; + } + static attachMissingRanges(astTree) { + estraverse.replace(astTree, { + enter: (node) => { + var _a, _b, _c, _d, _e, _f; + if (!node.range) { + node.range = [ + (_c = (_b = (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.range) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : ScopeAnalyzer_1.emptyRangeValue, + (_f = (_e = (_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.range) === null || _e === void 0 ? void 0 : _e[1]) !== null && _f !== void 0 ? _f : ScopeAnalyzer_1.emptyRangeValue + ]; + } + return node; + } + }); + } + static isRootNode(node) { + return NodeGuards_1.NodeGuards.isProgramNode(node) || node.parentNode === node; + } + analyze(astTree) { + const sourceTypeLength = ScopeAnalyzer_1.sourceTypes.length; + ScopeAnalyzer_1.attachMissingRanges(astTree); + for (let i = 0; i < sourceTypeLength; i++) { + try { + this.scopeManager = eslintScope.analyze(astTree, Object.assign(Object.assign({}, ScopeAnalyzer_1.eslintScopeOptions), { sourceType: ScopeAnalyzer_1.sourceTypes[i] })); + return; + } + catch (error) { + if (i < sourceTypeLength - 1) { + continue; + } + throw new Error(error); + } + } + throw new Error('Scope analyzing error'); + } + acquireScope(node) { + if (!this.scopeManager) { + throw new Error('Scope manager is not defined'); + } + const scope = this.scopeManager.acquire(node, ScopeAnalyzer_1.isRootNode(node)); + if (!scope) { + throw new Error('Cannot acquire scope for node'); + } + this.sanitizeScopes(scope); + return scope; + } + sanitizeScopes(scope) { + scope.childScopes.forEach((childScope) => { + if (childScope.type === 'class' && childScope.upper) { + if (!childScope.variables.length) { + return; + } + const classNameVariable = childScope.variables[0]; + const upperVariable = childScope.upper.variables + .find((variable) => { + const isValidClassNameVariable = classNameVariable.defs + .some((definition) => definition.type === 'ClassName'); + return isValidClassNameVariable && variable.name === classNameVariable.name; + }); + upperVariable === null || upperVariable === void 0 ? void 0 : upperVariable.references.push(...childScope.variables[0].references); + } + }); + for (const childScope of scope.childScopes) { + this.sanitizeScopes(childScope); + } + } +}; +ScopeAnalyzer.eslintScopeOptions = { + ecmaVersion: EcmaVersion_1.ecmaVersion, + optimistic: true +}; +ScopeAnalyzer.sourceTypes = [ + 'script', + 'module' +]; +ScopeAnalyzer.emptyRangeValue = 0; +ScopeAnalyzer = ScopeAnalyzer_1 = __decorate([ + inversify_1.injectable() +], ScopeAnalyzer); +exports.ScopeAnalyzer = ScopeAnalyzer; + + +/***/ }), + +/***/ "./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts": +/*!***********************************************************************************!*\ + !*** ./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var StringArrayStorageAnalyzer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayStorageAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +let StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = class StringArrayStorageAnalyzer { + constructor(stringArrayStorage, randomGenerator, options) { + this.stringArrayStorageData = new Map(); + this.stringArrayStorage = stringArrayStorage; + this.randomGenerator = randomGenerator; + this.options = options; + } + analyze(astTree) { + if (!this.options.stringArray) { + return; + } + estraverse.traverse(astTree, { + enter: (node, parentNode) => { + if (!parentNode) { + return; + } + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + if (!NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return; + } + this.analyzeLiteralNode(node, parentNode); + } + }); + } + getItemDataForLiteralNode(literalNode) { + return this.stringArrayStorageData.get(literalNode); + } + analyzeLiteralNode(literalNode, parentNode) { + if (typeof literalNode.value !== 'string') { + return; + } + if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return; + } + if (!this.shouldAddValueToStringArray(literalNode.value)) { + return; + } + this.stringArrayStorageData.set(literalNode, this.stringArrayStorage.getOrThrow(literalNode.value)); + } + shouldAddValueToStringArray(value) { + return value.length >= StringArrayStorageAnalyzer_1.minimumLengthForStringArray + && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold; + } +}; +StringArrayStorageAnalyzer.minimumLengthForStringArray = 3; +StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], StringArrayStorageAnalyzer); +exports.StringArrayStorageAnalyzer = StringArrayStorageAnalyzer; + + +/***/ }), + +/***/ "./src/code-transformers/AbstractCodeTransformer.ts": +/*!**********************************************************!*\ + !*** ./src/code-transformers/AbstractCodeTransformer.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCodeTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractCodeTransformer = class AbstractCodeTransformer { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } +}; +AbstractCodeTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], AbstractCodeTransformer); +exports.AbstractCodeTransformer = AbstractCodeTransformer; + + +/***/ }), + +/***/ "./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts": +/*!********************************************************************!*\ + !*** ./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CodeTransformerNamesGroupsBuilder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const AbstractTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../utils/AbstractTransformerNamesGroupsBuilder */ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts"); +let CodeTransformerNamesGroupsBuilder = class CodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder { +}; +CodeTransformerNamesGroupsBuilder = __decorate([ + inversify_1.injectable() +], CodeTransformerNamesGroupsBuilder); +exports.CodeTransformerNamesGroupsBuilder = CodeTransformerNamesGroupsBuilder; + + +/***/ }), + +/***/ "./src/code-transformers/CodeTransformersRunner.ts": +/*!*********************************************************!*\ + !*** ./src/code-transformers/CodeTransformersRunner.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CodeTransformersRunner = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCodeTransformerFactory_1 = __webpack_require__(/*! ../types/container/code-transformers/TCodeTransformerFactory */ "./src/types/container/code-transformers/TCodeTransformerFactory.ts"); +const ITransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../interfaces/utils/ITransformerNamesGroupsBuilder */ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts"); +let CodeTransformersRunner = class CodeTransformersRunner { + constructor(codeTransformerFactory, codeTransformerNamesGroupsBuilder) { + this.codeTransformerFactory = codeTransformerFactory; + this.codeTransformerNamesGroupsBuilder = codeTransformerNamesGroupsBuilder; + } + transform(code, codeTransformerNames, codeTransformationStage) { + if (!codeTransformerNames.length) { + return code; + } + const normalizedCodeTransformers = this.buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage); + const codeTransformerNamesGroups = this.codeTransformerNamesGroupsBuilder.build(normalizedCodeTransformers); + for (const nodeTransformerNamesGroup of codeTransformerNamesGroups) { + for (const nodeTransformerName of nodeTransformerNamesGroup) { + const codeTransformer = normalizedCodeTransformers[nodeTransformerName]; + code = codeTransformer.transformCode(code, codeTransformationStage); + } + } + return code; + } + buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage) { + return codeTransformerNames + .reduce((acc, codeTransformerName) => { + const codeTransformer = this.codeTransformerFactory(codeTransformerName); + return Object.assign(Object.assign({}, acc), { [codeTransformerName]: codeTransformer }); + }, {}); + } +}; +CodeTransformersRunner = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)), + __metadata("design:paramtypes", [typeof (_a = typeof TCodeTransformerFactory_1.TCodeTransformerFactory !== "undefined" && TCodeTransformerFactory_1.TCodeTransformerFactory) === "function" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== "undefined" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === "function" ? _b : Object]) +], CodeTransformersRunner); +exports.CodeTransformersRunner = CodeTransformersRunner; + + +/***/ }), + +/***/ "./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HashbangOperatorTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const CodeTransformationStage_1 = __webpack_require__(/*! ../../enums/code-transformers/CodeTransformationStage */ "./src/enums/code-transformers/CodeTransformationStage.ts"); +const AbstractCodeTransformer_1 = __webpack_require__(/*! ../AbstractCodeTransformer */ "./src/code-transformers/AbstractCodeTransformer.ts"); +let HashbangOperatorTransformer = class HashbangOperatorTransformer extends AbstractCodeTransformer_1.AbstractCodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.hashbangOperatorLine = null; + } + transformCode(code, codeTransformationStage) { + switch (codeTransformationStage) { + case CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers: + return this.removeAndSaveHashbangOperatorLine(code); + case CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers: + return this.appendSavedHashbangOperatorLine(code); + default: + return code; + } + } + removeAndSaveHashbangOperatorLine(code) { + return code + .replace(/^#!.*$(\r?\n)*/m, (substring) => { + if (substring) { + this.hashbangOperatorLine = substring; + } + return ''; + }) + .trim(); + } + appendSavedHashbangOperatorLine(code) { + var _a; + return `${(_a = this.hashbangOperatorLine) !== null && _a !== void 0 ? _a : ''}${code}`; + } +}; +HashbangOperatorTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], HashbangOperatorTransformer); +exports.HashbangOperatorTransformer = HashbangOperatorTransformer; + + +/***/ }), + +/***/ "./src/constants/AlphabetString.ts": +/*!*****************************************!*\ + !*** ./src/constants/AlphabetString.ts ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.alphabetString = void 0; +exports.alphabetString = 'abcdefghijklmnopqrstuvwxyz'; + + +/***/ }), + +/***/ "./src/constants/AlphabetStringUppercase.ts": +/*!**************************************************!*\ + !*** ./src/constants/AlphabetStringUppercase.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.alphabetStringUppercase = void 0; +const AlphabetString_1 = __webpack_require__(/*! ./AlphabetString */ "./src/constants/AlphabetString.ts"); +exports.alphabetStringUppercase = AlphabetString_1.alphabetString.toUpperCase(); + + +/***/ }), + +/***/ "./src/constants/EcmaVersion.ts": +/*!**************************************!*\ + !*** ./src/constants/EcmaVersion.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ecmaVersion = void 0; +exports.ecmaVersion = 11; + + +/***/ }), + +/***/ "./src/constants/NumbersString.ts": +/*!****************************************!*\ + !*** ./src/constants/NumbersString.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.numbersString = void 0; +exports.numbersString = '0123456789'; + + +/***/ }), + +/***/ "./src/container/InversifyContainerFacade.ts": +/*!***************************************************!*\ + !*** ./src/container/InversifyContainerFacade.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.InversifyContainerFacade = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ./ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const AnalyzersModule_1 = __webpack_require__(/*! ./modules/analyzers/AnalyzersModule */ "./src/container/modules/analyzers/AnalyzersModule.ts"); +const CodeTransformersModule_1 = __webpack_require__(/*! ./modules/code-transformers/CodeTransformersModule */ "./src/container/modules/code-transformers/CodeTransformersModule.ts"); +const ControlFlowTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ControlFlowTransformersModule */ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts"); +const ConvertingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ConvertingTransformersModule */ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts"); +const CustomCodeHelpersModule_1 = __webpack_require__(/*! ./modules/custom-code-helpers/CustomCodeHelpersModule */ "./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts"); +const CustomNodesModule_1 = __webpack_require__(/*! ./modules/custom-nodes/CustomNodesModule */ "./src/container/modules/custom-nodes/CustomNodesModule.ts"); +const FinalizingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/FinalizingTransformersModule */ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts"); +const GeneratorsModule_1 = __webpack_require__(/*! ./modules/generators/GeneratorsModule */ "./src/container/modules/generators/GeneratorsModule.ts"); +const InitializingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/InitializingTransformersModule */ "./src/container/modules/node-transformers/InitializingTransformersModule.ts"); +const MinificationTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/MinificationTransformersModule */ "./src/container/modules/node-transformers/MinificationTransformersModule.ts"); +const NodeModule_1 = __webpack_require__(/*! ./modules/node/NodeModule */ "./src/container/modules/node/NodeModule.ts"); +const NodeTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/NodeTransformersModule */ "./src/container/modules/node-transformers/NodeTransformersModule.ts"); +const ObfuscatingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ObfuscatingTransformersModule */ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts"); +const OptionsModule_1 = __webpack_require__(/*! ./modules/options/OptionsModule */ "./src/container/modules/options/OptionsModule.ts"); +const PreparingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/PreparingTransformersModule */ "./src/container/modules/node-transformers/PreparingTransformersModule.ts"); +const RenamePropertiesTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/RenamePropertiesTransformersModule */ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts"); +const StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts"); +const UtilsModule_1 = __webpack_require__(/*! ./modules/utils/UtilsModule */ "./src/container/modules/utils/UtilsModule.ts"); +const CodeTransformersRunner_1 = __webpack_require__(/*! ../code-transformers/CodeTransformersRunner */ "./src/code-transformers/CodeTransformersRunner.ts"); +const JavaScriptObfuscator_1 = __webpack_require__(/*! ../JavaScriptObfuscator */ "./src/JavaScriptObfuscator.ts"); +const Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts"); +const NodeTransformersRunner_1 = __webpack_require__(/*! ../node-transformers/NodeTransformersRunner */ "./src/node-transformers/NodeTransformersRunner.ts"); +const ObfuscationEventEmitter_1 = __webpack_require__(/*! ../event-emitters/ObfuscationEventEmitter */ "./src/event-emitters/ObfuscationEventEmitter.ts"); +const ObfuscatedCode_1 = __webpack_require__(/*! ../source-code/ObfuscatedCode */ "./src/source-code/ObfuscatedCode.ts"); +const SourceCode_1 = __webpack_require__(/*! ../source-code/SourceCode */ "./src/source-code/SourceCode.ts"); +class InversifyContainerFacade { + constructor() { + this.container = new inversify_1.Container(); + } + static getFactory(serviceIdentifier) { + return (context) => { + return (bindingName) => { + return context.container.getNamed(serviceIdentifier, bindingName); + }; + }; + } + static getCacheFactory(serviceIdentifier) { + return (context) => { + const cache = new Map(); + return (bindingName) => { + if (cache.has(bindingName)) { + return cache.get(bindingName); + } + const object = context.container.getNamed(serviceIdentifier, bindingName); + cache.set(bindingName, object); + return object; + }; + }; + } + static getConstructorFactory(serviceIdentifier, ...dependencies) { + return (context) => { + const cache = new Map(); + const cachedDependencies = []; + return (bindingName) => { + dependencies.forEach((dependency, index) => { + if (!cachedDependencies[index]) { + cachedDependencies[index] = context.container.get(dependency); + } + }); + if (cache.has(bindingName)) { + return new (cache.get(bindingName))(...cachedDependencies); + } + const constructor = context.container + .getNamed(serviceIdentifier, bindingName); + cache.set(bindingName, constructor); + return new constructor(...cachedDependencies); + }; + }; + } + get(serviceIdentifier) { + return this.container.get(serviceIdentifier); + } + getNamed(serviceIdentifier, named) { + return this.container.getNamed(serviceIdentifier, named); + } + load(sourceCode, sourceMap, options) { + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode) + .toDynamicValue(() => new SourceCode_1.SourceCode(sourceCode, sourceMap)) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions) + .toDynamicValue(() => options) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger) + .to(Logger_1.Logger) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator) + .to(JavaScriptObfuscator_1.JavaScriptObfuscator) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner) + .to(CodeTransformersRunner_1.CodeTransformersRunner) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner) + .to(NodeTransformersRunner_1.NodeTransformersRunner) + .inSingletonScope(); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode) + .to(ObfuscatedCode_1.ObfuscatedCode); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode) + .toFactory((context) => { + return (obfuscatedCodeAsString, sourceMapAsString) => { + const obfuscatedCode = context.container + .get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode); + obfuscatedCode.initialize(obfuscatedCodeAsString, sourceMapAsString); + return obfuscatedCode; + }; + }); + this.container + .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter) + .to(ObfuscationEventEmitter_1.ObfuscationEventEmitter) + .inSingletonScope(); + this.container.load(AnalyzersModule_1.analyzersModule); + this.container.load(CodeTransformersModule_1.codeTransformersModule); + this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule); + this.container.load(ConvertingTransformersModule_1.convertingTransformersModule); + this.container.load(CustomCodeHelpersModule_1.customCodeHelpersModule); + this.container.load(CustomNodesModule_1.customNodesModule); + this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule); + this.container.load(GeneratorsModule_1.generatorsModule); + this.container.load(InitializingTransformersModule_1.initializingTransformersModule); + this.container.load(MinificationTransformersModule_1.minificationTransformersModule); + this.container.load(NodeModule_1.nodeModule); + this.container.load(NodeTransformersModule_1.nodeTransformersModule); + this.container.load(ObfuscatingTransformersModule_1.obfuscatingTransformersModule); + this.container.load(OptionsModule_1.optionsModule); + this.container.load(PreparingTransformersModule_1.preparingTransformersModule); + this.container.load(RenamePropertiesTransformersModule_1.renamePropertiesTransformersModule); + this.container.load(StoragesModule_1.storagesModule); + this.container.load(UtilsModule_1.utilsModule); + } + unload() { + this.container.unbindAll(); + } +} +exports.InversifyContainerFacade = InversifyContainerFacade; + + +/***/ }), + +/***/ "./src/container/ServiceIdentifiers.ts": +/*!*********************************************!*\ + !*** ./src/container/ServiceIdentifiers.ts ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ServiceIdentifiers = void 0; +var ServiceIdentifiers; +(function (ServiceIdentifiers) { + ServiceIdentifiers["Factory__ICalleeDataExtractor"] = "Factory"; + ServiceIdentifiers["Factory__ICodeTransformer"] = "Factory"; + ServiceIdentifiers["Factory__IControlFlowCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IControlFlowReplacer"] = "Factory"; + ServiceIdentifiers["Factory__ICustomCodeHelper"] = "Factory"; + ServiceIdentifiers["Factory__ICustomCodeHelperGroup"] = "Factory"; + ServiceIdentifiers["Factory__IDeadCodeInjectionCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IIdentifierNamesGenerator"] = "Factory"; + ServiceIdentifiers["Factory__IIdentifierObfuscatingReplacer"] = "Factory"; + ServiceIdentifiers["Factory__INodeGuard"] = "Factory"; + ServiceIdentifiers["Factory__INodeTransformer"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscatedCode"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscatingReplacer"] = "Factory"; + ServiceIdentifiers["Factory__IObjectExpressionKeysTransformerCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IObjectExpressionExtractor"] = "Factory"; + ServiceIdentifiers["Factory__TControlFlowStorage"] = "Factory"; + ServiceIdentifiers["IArrayUtils"] = "IArrayUtils"; + ServiceIdentifiers["ICalleeDataExtractor"] = "ICalleeDataExtractor"; + ServiceIdentifiers["ICallsGraphAnalyzer"] = "ICallsGraphAnalyzer"; + ServiceIdentifiers["ICodeTransformer"] = "ICodeTransformer"; + ServiceIdentifiers["ICodeTransformerNamesGroupsBuilder"] = "ICodeTransformerNamesGroupsBuilder"; + ServiceIdentifiers["ICodeTransformersRunner"] = "ICodeTransformersRunner"; + ServiceIdentifiers["ICryptUtils"] = "ICryptUtils"; + ServiceIdentifiers["ICustomCodeHelper"] = "ICustomCodeHelper"; + ServiceIdentifiers["ICustomCodeHelperGroup"] = "ICustomCodeHelperGroup"; + ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer"; + ServiceIdentifiers["ICustomCodeHelperFormatter"] = "ICustomCodeHelperFormatter"; + ServiceIdentifiers["ICustomCodeHelperObfuscator"] = "ICustomCodeHelperObfuscator"; + ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder"; + ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator"; + ServiceIdentifiers["IIdentifierObfuscatingReplacer"] = "IIdentifierObfuscatingReplacer"; + ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator"; + ServiceIdentifiers["ILevelledTopologicalSorter"] = "ILevelledTopologicalSorter"; + ServiceIdentifiers["ILogger"] = "ILogger"; + ServiceIdentifiers["INodeGuard"] = "INodeGuard"; + ServiceIdentifiers["INodeTransformer"] = "INodeTransformer"; + ServiceIdentifiers["INodeTransformerNamesGroupsBuilder"] = "INodeTransformerNamesGroupsBuilder"; + ServiceIdentifiers["IObfuscationEventEmitter"] = "IObfuscationEventEmitter"; + ServiceIdentifiers["IObfuscatedCode"] = "IObfuscatedCode"; + ServiceIdentifiers["IOptions"] = "IOptions"; + ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer"; + ServiceIdentifiers["IObfuscatingReplacer"] = "IObfuscatingReplacer"; + ServiceIdentifiers["IPrevailingKindOfVariablesAnalyzer"] = "IPrevailingKindOfVariablesAnalyzer"; + ServiceIdentifiers["IObjectExpressionExtractor"] = "IObjectExpressionExtractor"; + ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator"; + ServiceIdentifiers["IRenamePropertiesReplacer"] = "IRenamePropertiesReplacer"; + ServiceIdentifiers["IScopeIdentifiersTraverser"] = "IScopeIdentifiersTraverser"; + ServiceIdentifiers["ISourceCode"] = "ISourceCode"; + ServiceIdentifiers["IScopeAnalyzer"] = "IScopeAnalyzer"; + ServiceIdentifiers["IStringArrayStorage"] = "IStringArrayStorage"; + ServiceIdentifiers["IStringArrayStorageAnalyzer"] = "IStringArrayStorageAnalyzer"; + ServiceIdentifiers["INodeTransformersRunner"] = "INodeTransformersRunner"; + ServiceIdentifiers["Newable__ICustomNode"] = "Newable"; + ServiceIdentifiers["Newable__TControlFlowStorage"] = "Newable"; + ServiceIdentifiers["TCustomNodeGroupStorage"] = "TCustomNodeGroupStorage"; + ServiceIdentifiers["TInputOptions"] = "TInputOptions"; +})(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {})); + + +/***/ }), + +/***/ "./src/container/modules/analyzers/AnalyzersModule.ts": +/*!************************************************************!*\ + !*** ./src/container/modules/analyzers/AnalyzersModule.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.analyzersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const CalleeDataExtractor_1 = __webpack_require__(/*! ../../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts"); +const CallsGraphAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/CallsGraphAnalyzer */ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts"); +const FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts"); +const FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts"); +const ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor */ "./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts"); +const PrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer */ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts"); +const ScopeAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/scope-analyzer/ScopeAnalyzer */ "./src/analyzers/scope-analyzer/ScopeAnalyzer.ts"); +const StringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer */ "./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts"); +exports.analyzersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer) + .to(CallsGraphAnalyzer_1.CallsGraphAnalyzer) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer) + .to(PrevailingKindOfVariablesAnalyzer_1.PrevailingKindOfVariablesAnalyzer) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer) + .to(ScopeAnalyzer_1.ScopeAnalyzer) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer) + .to(StringArrayStorageAnalyzer_1.StringArrayStorageAnalyzer) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor) + .to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor) + .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor) + .to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor) + .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor) + .to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor) + .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)); +}); + + +/***/ }), + +/***/ "./src/container/modules/code-transformers/CodeTransformersModule.ts": +/*!***************************************************************************!*\ + !*** ./src/container/modules/code-transformers/CodeTransformersModule.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.codeTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const CodeTransformer_1 = __webpack_require__(/*! ../../../enums/code-transformers/CodeTransformer */ "./src/enums/code-transformers/CodeTransformer.ts"); +const CodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../code-transformers/CodeTransformerNamesGroupsBuilder */ "./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts"); +const HashbangOperatorTransformer_1 = __webpack_require__(/*! ../../../code-transformers/preparing-transformers/HashbangOperatorTransformer */ "./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts"); +exports.codeTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder) + .to(CodeTransformerNamesGroupsBuilder_1.CodeTransformerNamesGroupsBuilder) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer) + .to(HashbangOperatorTransformer_1.HashbangOperatorTransformer) + .whenTargetNamed(CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts": +/*!******************************************************************************!*\ + !*** ./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.customCodeHelpersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const CustomCodeHelperGroup_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelperGroup */ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts"); +const ConsoleOutputCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup */ "./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts"); +const DebugProtectionCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup */ "./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts"); +const DomainLockCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup */ "./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts"); +const SelfDefendingCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup */ "./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts"); +const StringArrayCodeHelperGroup_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/group/StringArrayCodeHelperGroup */ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts"); +const ConsoleOutputDisableCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper */ "./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts"); +const CustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../custom-code-helpers/CustomCodeHelperFormatter */ "./src/custom-code-helpers/CustomCodeHelperFormatter.ts"); +const CustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../../custom-code-helpers/CustomCodeHelperObfuscator */ "./src/custom-code-helpers/CustomCodeHelperObfuscator.ts"); +const DebugProtectionFunctionCallCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts"); +const DebugProtectionFunctionIntervalCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts"); +const DebugProtectionFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper */ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts"); +const DomainLockCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/domain-lock/DomainLockCodeHelper */ "./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts"); +const CallsControllerFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper */ "./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts"); +const SelfDefendingUnicodeCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper */ "./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts"); +const StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts"); +const StringArrayCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts"); +const StringArrayRotateFunctionCodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts"); +exports.customCodeHelpersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(ConsoleOutputDisableCodeHelper_1.ConsoleOutputDisableCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(DebugProtectionFunctionCallCodeHelper_1.DebugProtectionFunctionCallCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(DebugProtectionFunctionIntervalCodeHelper_1.DebugProtectionFunctionIntervalCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(DebugProtectionFunctionCodeHelper_1.DebugProtectionFunctionCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(DomainLockCodeHelper_1.DomainLockCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DomainLock); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(CallsControllerFunctionCodeHelper_1.CallsControllerFunctionCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(SelfDefendingUnicodeCodeHelper_1.SelfDefendingUnicodeCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(StringArrayCodeHelper_1.StringArrayCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArray); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(StringArrayRotateFunctionCodeHelper_1.StringArrayRotateFunctionCodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(ConsoleOutputCodeHelperGroup_1.ConsoleOutputCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(DebugProtectionCodeHelperGroup_1.DebugProtectionCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(DomainLockCustomCodeHelperGroup_1.DomainLockCustomCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(SelfDefendingCodeHelperGroup_1.SelfDefendingCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup) + .to(StringArrayCodeHelperGroup_1.StringArrayCodeHelperGroup) + .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter) + .to(CustomCodeHelperFormatter_1.CustomCodeHelperFormatter) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator) + .to(CustomCodeHelperObfuscator_1.CustomCodeHelperObfuscator) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/custom-nodes/CustomNodesModule.ts": +/*!*****************************************************************!*\ + !*** ./src/container/modules/custom-nodes/CustomNodesModule.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.customNodesModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts"); +const ObjectExpressionKeysTransformerCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode */ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts"); +const ObjectExpressionVariableDeclarationHostNode_1 = __webpack_require__(/*! ../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode */ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts"); +const BinaryExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts"); +const BlockStatementControlFlowFlatteningNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode */ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts"); +const BlockStatementDeadCodeInjectionNode_1 = __webpack_require__(/*! ../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode */ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts"); +const CallExpressionControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts"); +const CallExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts"); +const ControlFlowStorageNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts"); +const ExpressionWithOperatorControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts"); +const LogicalExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts"); +const StringLiteralControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts"); +const StringLiteralNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode */ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts"); +exports.customNodesModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(StringLiteralNode_1.StringLiteralNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode) + .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode) + .whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(ObjectExpressionVariableDeclarationHostNode_1.ObjectExpressionVariableDeclarationHostNode) + .whenTargetNamed(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions, ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions, ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)); +}); + + +/***/ }), + +/***/ "./src/container/modules/generators/GeneratorsModule.ts": +/*!**************************************************************!*\ + !*** ./src/container/modules/generators/GeneratorsModule.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.generatorsModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +const DictionaryIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts"); +const HexadecimalIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts"); +const MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts"); +exports.generatorsModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator) + .to(DictionaryIdentifierNamesGenerator_1.DictionaryIdentifierNamesGenerator) + .inSingletonScope() + .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator) + .to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator) + .inSingletonScope() + .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator) + .to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator) + .inSingletonScope() + .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator); + function identifierNameGeneratorFactory() { + let cachedIdentifierNamesGenerator = null; + return (context) => (options) => { + if (cachedIdentifierNamesGenerator) { + return cachedIdentifierNamesGenerator; + } + let identifierNamesGenerator; + switch (options.identifierNamesGenerator) { + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator); + break; + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator); + break; + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator: + default: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator); + } + cachedIdentifierNamesGenerator = identifierNamesGenerator; + return identifierNamesGenerator; + }; + } + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator) + .toFactory(identifierNameGeneratorFactory()); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ControlFlowTransformersModule.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.controlFlowTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ControlFlowReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const BinaryExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts"); +const BlockStatementControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts"); +const CallExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts"); +const DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts"); +const FunctionControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts"); +const LogicalExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts"); +const StringLiteralControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts"); +exports.controlFlowTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer) + .to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer) + .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer) + .to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer) + .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer) + .to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer) + .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer) + .to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer) + .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ConvertingTransformersModule.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.convertingTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts"); +const ObjectExpressionToVariableDeclarationExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts"); +const MemberExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MemberExpressionTransformer */ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts"); +const MethodDefinitionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MethodDefinitionTransformer */ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts"); +const ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts"); +const ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts"); +const SplitStringTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/SplitStringTransformer */ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts"); +const TemplateLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/TemplateLiteralTransformer */ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts"); +const BasePropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts"); +exports.convertingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(MemberExpressionTransformer_1.MemberExpressionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(MethodDefinitionTransformer_1.MethodDefinitionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ObjectExpressionTransformer_1.ObjectExpressionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(SplitStringTransformer_1.SplitStringTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.SplitStringTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(TemplateLiteralTransformer_1.TemplateLiteralTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor) + .to(ObjectExpressionToVariableDeclarationExtractor_1.ObjectExpressionToVariableDeclarationExtractor) + .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor) + .to(BasePropertiesExtractor_1.BasePropertiesExtractor) + .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.finalizingTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +exports.finalizingTransformersModule = new inversify_1.ContainerModule((bind) => { +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/InitializingTransformersModule.ts": +/*!***********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/InitializingTransformersModule.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.initializingTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const CommentsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/initializing-transformers/CommentsTransformer */ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts"); +exports.initializingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(CommentsTransformer_1.CommentsTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/MinificationTransformersModule.ts": +/*!***********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/MinificationTransformersModule.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.minificationTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const IfStatementSimplifyTransformer_1 = __webpack_require__(/*! ../../../node-transformers/minification-transformers/IfStatementSimplifyTransformer */ "./src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts"); +const VariableDeclarationsMergeTransformer_1 = __webpack_require__(/*! ../../../node-transformers/minification-transformers/VariableDeclarationsMergeTransformer */ "./src/node-transformers/minification-transformers/VariableDeclarationsMergeTransformer.ts"); +exports.minificationTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(IfStatementSimplifyTransformer_1.IfStatementSimplifyTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(VariableDeclarationsMergeTransformer_1.VariableDeclarationsMergeTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/NodeTransformersModule.ts": +/*!***************************************************************************!*\ + !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.nodeTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../../../node-transformers/NodeTransformerNamesGroupsBuilder */ "./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts"); +exports.nodeTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder) + .to(NodeTransformerNamesGroupsBuilder_1.NodeTransformerNamesGroupsBuilder) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.obfuscatingTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); +const LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const BaseIdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts"); +const BooleanLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts"); +const LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer */ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts"); +const LiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LiteralTransformer */ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts"); +const NumberLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts"); +const StringLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts"); +const ScopeIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer */ "./src/node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer.ts"); +exports.obfuscatingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(LabeledStatementTransformer_1.LabeledStatementTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(LiteralTransformer_1.LiteralTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.LiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ScopeIdentifiersTransformer_1.ScopeIdentifiersTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer) + .to(BooleanLiteralObfuscatingReplacer_1.BooleanLiteralObfuscatingReplacer) + .whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer) + .to(NumberLiteralObfuscatingReplacer_1.NumberLiteralObfuscatingReplacer) + .whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer) + .to(StringLiteralObfuscatingReplacer_1.StringLiteralObfuscatingReplacer) + .whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer) + .to(BaseIdentifierObfuscatingReplacer_1.BaseIdentifierObfuscatingReplacer) + .whenTargetNamed(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/PreparingTransformersModule.ts": +/*!********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.preparingTransformersModule = void 0; +const InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ObfuscatingGuard_1 = __webpack_require__(/*! ../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts"); +const BlackListObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts"); +const ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts"); +const CustomCodeHelpersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer */ "./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts"); +const EvalCallExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer */ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts"); +const MetadataTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/MetadataTransformer */ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts"); +const ObfuscatingGuardsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer */ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts"); +const ParentificationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ParentificationTransformer */ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts"); +const ReservedStringObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts"); +const VariablePreserveTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/VariablePreserveTransformer */ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts"); +exports.preparingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(CustomCodeHelpersTransformer_1.CustomCodeHelpersTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(EvalCallExpressionTransformer_1.EvalCallExpressionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(MetadataTransformer_1.MetadataTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ParentificationTransformer_1.ParentificationTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(ReservedStringObfuscatingGuard_1.ReservedStringObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(VariablePreserveTransformer_1.VariablePreserveTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts": +/*!***************************************************************************************!*\ + !*** ./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.renamePropertiesTransformersModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const RenamePropertiesReplacer_1 = __webpack_require__(/*! ../../../node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer */ "./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts"); +const RenamePropertiesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-properties-transformers/RenamePropertiesTransformer */ "./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts"); +exports.renamePropertiesTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(RenamePropertiesTransformer_1.RenamePropertiesTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer) + .to(RenamePropertiesReplacer_1.RenamePropertiesReplacer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node/NodeModule.ts": +/*!**************************************************!*\ + !*** ./src/container/modules/node/NodeModule.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.nodeModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../../node/ScopeIdentifiersTraverser */ "./src/node/ScopeIdentifiersTraverser.ts"); +exports.nodeModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser) + .to(ScopeIdentifiersTraverser_1.ScopeIdentifiersTraverser) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/options/OptionsModule.ts": +/*!********************************************************!*\ + !*** ./src/container/modules/options/OptionsModule.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.optionsModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const Options_1 = __webpack_require__(/*! ../../../options/Options */ "./src/options/Options.ts"); +const OptionsNormalizer_1 = __webpack_require__(/*! ../../../options/OptionsNormalizer */ "./src/options/OptionsNormalizer.ts"); +exports.optionsModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions) + .to(Options_1.Options) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer) + .to(OptionsNormalizer_1.OptionsNormalizer) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/storages/StoragesModule.ts": +/*!**********************************************************!*\ + !*** ./src/container/modules/storages/StoragesModule.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.storagesModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ControlFlowStorage_1 = __webpack_require__(/*! ../../../storages/custom-nodes/ControlFlowStorage */ "./src/storages/custom-nodes/ControlFlowStorage.ts"); +const CustomCodeHelperGroupStorage_1 = __webpack_require__(/*! ../../../storages/custom-code-helpers/CustomCodeHelperGroupStorage */ "./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts"); +const StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array/StringArrayStorage */ "./src/storages/string-array/StringArrayStorage.ts"); +exports.storagesModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage) + .to(CustomCodeHelperGroupStorage_1.CustomCodeHelperGroupStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage) + .to(StringArrayStorage_1.StringArrayStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage) + .toConstructor(ControlFlowStorage_1.ControlFlowStorage); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage) + .toFactory((context) => { + return () => { + const constructor = context.container + .get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage); + const randomGenerator = context.container + .get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator); + const options = context.container + .get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions); + const storage = new constructor(randomGenerator, options); + storage.initialize(); + return storage; + }; + }); +}); + + +/***/ }), + +/***/ "./src/container/modules/utils/UtilsModule.ts": +/*!****************************************************!*\ + !*** ./src/container/modules/utils/UtilsModule.ts ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.utilsModule = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ArrayUtils_1 = __webpack_require__(/*! ../../../utils/ArrayUtils */ "./src/utils/ArrayUtils.ts"); +const CryptUtils_1 = __webpack_require__(/*! ../../../utils/CryptUtils */ "./src/utils/CryptUtils.ts"); +const EscapeSequenceEncoder_1 = __webpack_require__(/*! ../../../utils/EscapeSequenceEncoder */ "./src/utils/EscapeSequenceEncoder.ts"); +const LevelledTopologicalSorter_1 = __webpack_require__(/*! ../../../utils/LevelledTopologicalSorter */ "./src/utils/LevelledTopologicalSorter.ts"); +const RandomGenerator_1 = __webpack_require__(/*! ../../../utils/RandomGenerator */ "./src/utils/RandomGenerator.ts"); +exports.utilsModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils) + .to(ArrayUtils_1.ArrayUtils) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator) + .to(RandomGenerator_1.RandomGenerator) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils) + .to(CryptUtils_1.CryptUtils) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder) + .to(EscapeSequenceEncoder_1.EscapeSequenceEncoder) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter) + .to(LevelledTopologicalSorter_1.LevelledTopologicalSorter); +}); + + +/***/ }), + +/***/ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts": +/*!*************************************************************!*\ + !*** ./src/custom-code-helpers/AbstractCustomCodeHelper.ts ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var AbstractCustomCodeHelper_1, _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCustomCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const GlobalVariableTemplate1_1 = __webpack_require__(/*! ./common/templates/GlobalVariableTemplate1 */ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts"); +const GlobalVariableTemplate2_1 = __webpack_require__(/*! ./common/templates/GlobalVariableTemplate2 */ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts"); +let AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = class AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + this.cachedNode = null; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.customCodeHelperFormatter = customCodeHelperFormatter; + this.customCodeHelperObfuscator = customCodeHelperObfuscator; + this.randomGenerator = randomGenerator; + this.options = options; + } + getNode() { + if (!this.cachedNode) { + const codeHelperTemplate = this.getCodeHelperTemplate(); + this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(codeHelperTemplate)); + } + return this.cachedNode; + } + getGlobalVariableTemplate() { + return this.randomGenerator + .getRandomGenerator() + .pickone(AbstractCustomCodeHelper_1.globalVariableTemplateFunctions); + } + getCodeHelperTemplate() { + return ''; + } +}; +AbstractCustomCodeHelper.globalVariableTemplateFunctions = [ + GlobalVariableTemplate1_1.GlobalVariableTemplate1(), + GlobalVariableTemplate2_1.GlobalVariableTemplate2() +]; +AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], AbstractCustomCodeHelper); +exports.AbstractCustomCodeHelper = AbstractCustomCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts": +/*!******************************************************************!*\ + !*** ./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCustomCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractCustomCodeHelperGroup = class AbstractCustomCodeHelperGroup { + constructor(identifierNamesGeneratorFactory, randomGenerator, options) { + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.randomGenerator = randomGenerator; + this.options = options; + } + getAppendEvent() { + return this.appendEvent; + } + getCustomCodeHelpers() { + return this.customCodeHelpers; + } + appendCustomNodeIfExist(customCodeHelperName, callback) { + const customCodeHelper = this.customCodeHelpers.get(customCodeHelperName); + if (!customCodeHelper) { + return; + } + callback(customCodeHelper); + } + getRandomCallsGraphIndex(callsGraphLength) { + return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(callsGraphLength - 1))); + } +}; +AbstractCustomCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], AbstractCustomCodeHelperGroup); +exports.AbstractCustomCodeHelperGroup = AbstractCustomCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/CustomCodeHelperFormatter.ts": +/*!**************************************************************!*\ + !*** ./src/custom-code-helpers/CustomCodeHelperFormatter.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelperFormatter = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const string_template_1 = __importDefault(__webpack_require__(/*! string-template */ "string-template")); +const IPrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let CustomCodeHelperFormatter = class CustomCodeHelperFormatter { + constructor(prevailingKindOfVariablesAnalyzer) { + this.prevailingKindOfVariables = prevailingKindOfVariablesAnalyzer.getPrevailingKind(); + } + formatTemplate(template, mapping) { + return string_template_1.default(template, mapping); + } + formatStructure(statements) { + for (const statement of statements) { + estraverse.replace(statement, { + enter: (node) => { + if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) { + return; + } + if (this.prevailingKindOfVariables === 'var') { + node.kind = 'var'; + } + return node; + } + }); + } + return statements; + } +}; +CustomCodeHelperFormatter = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)), + __metadata("design:paramtypes", [typeof (_a = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== "undefined" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === "function" ? _a : Object]) +], CustomCodeHelperFormatter); +exports.CustomCodeHelperFormatter = CustomCodeHelperFormatter; + + +/***/ }), + +/***/ "./src/custom-code-helpers/CustomCodeHelperObfuscator.ts": +/*!***************************************************************!*\ + !*** ./src/custom-code-helpers/CustomCodeHelperObfuscator.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelperObfuscator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NoCustomNodes_1 = __webpack_require__(/*! ../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); +const JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); +let CustomCodeHelperObfuscator = class CustomCodeHelperObfuscator { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } + obfuscateTemplate(template, additionalOptions = {}) { + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(template, Object.assign(Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), { identifierNamesGenerator: this.options.identifierNamesGenerator, identifiersDictionary: this.options.identifiersDictionary, seed: this.randomGenerator.getRawSeed() }), additionalOptions)).getObfuscatedCode(); + } +}; +CustomCodeHelperObfuscator = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], CustomCodeHelperObfuscator); +exports.CustomCodeHelperObfuscator = CustomCodeHelperObfuscator; + + +/***/ }), + +/***/ "./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts": +/*!***************************************************************************************!*\ + !*** ./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallsControllerFunctionCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const SingleCallControllerTemplate_1 = __webpack_require__(/*! ../common/templates/SingleCallControllerTemplate */ "./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let CallsControllerFunctionCodeHelper = class CallsControllerFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(appendEvent, callsControllerFunctionName) { + this.appendEvent = appendEvent; + this.callsControllerFunctionName = callsControllerFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) { + return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), { + callControllerFunctionName: this.callsControllerFunctionName + })); + } + return this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), { + callControllerFunctionName: this.callsControllerFunctionName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], CallsControllerFunctionCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof ObfuscationEvent_1.ObfuscationEvent !== "undefined" && ObfuscationEvent_1.ObfuscationEvent) === "function" ? _a : Object) +], CallsControllerFunctionCodeHelper.prototype, "appendEvent", void 0); +CallsControllerFunctionCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], CallsControllerFunctionCodeHelper); +exports.CallsControllerFunctionCodeHelper = CallsControllerFunctionCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GlobalVariableNoEvalTemplate = void 0; +function GlobalVariableNoEvalTemplate() { + return ` + const that = (typeof window !== 'undefined' + ? window + : (typeof process === 'object' && + typeof require === 'function' && + typeof global === 'object') + ? global + : this); + `; +} +exports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GlobalVariableTemplate1 = void 0; +function GlobalVariableTemplate1() { + return ` + let that; + + try { + const getGlobal = Function('return (function() ' + '{}.constructor("return this")( )' + ');'); + + that = getGlobal(); + } catch (e) { + that = window; + } + `; +} +exports.GlobalVariableTemplate1 = GlobalVariableTemplate1; + + +/***/ }), + +/***/ "./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GlobalVariableTemplate2 = void 0; +function GlobalVariableTemplate2() { + return ` + const getGlobal = function () { + let globalObject; + + try { + globalObject = Function('return (function() ' + '{}.constructor("return this")( )' + ');')(); + } catch (e) { + globalObject = window; + } + + return globalObject; + }; + const that = getGlobal(); + `; +} +exports.GlobalVariableTemplate2 = GlobalVariableTemplate2; + + +/***/ }), + +/***/ "./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SingleCallControllerTemplate = void 0; +function SingleCallControllerTemplate() { + return ` + const {callControllerFunctionName} = (function(){ + let firstCall = true; + + return function (context, fn){ + const rfn = firstCall ? function(){ + if(fn){ + const res = fn.apply(context, arguments); + fn = null; + return res; + } + } : function(){} + + firstCall = false; + + return rfn; + } + })(); + `; +} +exports.SingleCallControllerTemplate = SingleCallControllerTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ConsoleOutputDisableCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(/*! ./templates/ConsoleOutputDisableExpressionTemplate */ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableExpressionTemplate.ts"); +const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ConsoleOutputDisableCodeHelper = class ConsoleOutputDisableCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(callsControllerFunctionName, consoleOutputDisableFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + this.consoleOutputDisableFunctionName = consoleOutputDisableFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? this.getGlobalVariableTemplate() + : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + return this.customCodeHelperFormatter.formatTemplate(ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate(), { + callControllerFunctionName: this.callsControllerFunctionName, + consoleLogDisableFunctionName: this.consoleOutputDisableFunctionName, + globalVariableTemplate + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ConsoleOutputDisableCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ConsoleOutputDisableCodeHelper.prototype, "consoleOutputDisableFunctionName", void 0); +ConsoleOutputDisableCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], ConsoleOutputDisableCodeHelper); +exports.ConsoleOutputDisableCodeHelper = ConsoleOutputDisableCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ConsoleOutputCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ConsoleOutputCodeHelperGroup = class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendNodes(nodeWithStatements, callsGraphData) { + var _a; + if (!this.options.disableConsoleOutput) { + return; + } + const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length); + const consoleOutputDisableHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex) + : nodeWithStatements; + const callsControllerHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1) + : nodeWithStatements; + const consoleOutputDisableLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils + .getLexicalScope(consoleOutputDisableHostNode)) !== null && _a !== void 0 ? _a : null; + const consoleOutputDisableFunctionName = consoleOutputDisableLexicalScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(consoleOutputDisableLexicalScopeNode) + ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode) + : this.randomGenerator.getRandomString(5); + const callsControllerFunctionName = consoleOutputDisableLexicalScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(consoleOutputDisableLexicalScopeNode) + ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode) + : this.randomGenerator.getRandomString(5); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, (customCodeHelper) => { + customCodeHelper.initialize(callsControllerFunctionName, consoleOutputDisableFunctionName); + NodeAppender_1.NodeAppender.prepend(consoleOutputDisableHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => { + customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode()); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.disableConsoleOutput) { + return; + } + const consoleOutputDisableExpressionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable); + const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, consoleOutputDisableExpressionCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], ConsoleOutputCodeHelperGroup.prototype, "customCodeHelpers", void 0); +ConsoleOutputCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], ConsoleOutputCodeHelperGroup); +exports.ConsoleOutputCodeHelperGroup = ConsoleOutputCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableExpressionTemplate.ts": +/*!****************************************************************************************************!*\ + !*** ./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableExpressionTemplate.ts ***! + \****************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ConsoleOutputDisableExpressionTemplate = void 0; +function ConsoleOutputDisableExpressionTemplate() { + return ` + const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () { + const func = function () {}; + + {globalVariableTemplate} + + if (!that.console) { + that.console = (function (func){ + const c = {}; + + c.log = func; + c.warn = func; + c.debug = func; + c.info = func; + c.error = func; + c.exception = func; + c.table = func; + c.trace = func; + + return c; + })(func); + } else { + that.console.log = func; + that.console.warn = func; + that.console.debug = func; + that.console.info = func; + that.console.error = func; + that.console.exception = func; + that.console.table = func; + that.console.trace = func; + } + }); + + {consoleLogDisableFunctionName}(); + `; +} +exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts": +/*!*******************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionCallCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const DebugProtectionFunctionCallTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DebugProtectionFunctionCallCodeHelper = class DebugProtectionFunctionCallCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(debugProtectionFunctionName, callsControllerFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + this.callsControllerFunctionName = callsControllerFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), { + debugProtectionFunctionName: this.debugProtectionFunctionName, + callControllerFunctionName: this.callsControllerFunctionName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DebugProtectionFunctionCallCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DebugProtectionFunctionCallCodeHelper.prototype, "debugProtectionFunctionName", void 0); +DebugProtectionFunctionCallCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DebugProtectionFunctionCallCodeHelper); +exports.DebugProtectionFunctionCallCodeHelper = DebugProtectionFunctionCallCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts": +/*!***************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const DebuggerTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebuggerTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts"); +const DebuggerTemplateNoEval_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebuggerTemplateNoEval */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts"); +const DebugProtectionFunctionTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function/DebugProtectionFunctionTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DebugProtectionFunctionCodeHelper = class DebugProtectionFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(debugProtectionFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? DebuggerTemplate_1.DebuggerTemplate() + : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval(); + return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), { + debuggerTemplate, + debugProtectionFunctionName: this.debugProtectionFunctionName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DebugProtectionFunctionCodeHelper.prototype, "debugProtectionFunctionName", void 0); +DebugProtectionFunctionCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DebugProtectionFunctionCodeHelper); +exports.DebugProtectionFunctionCodeHelper = DebugProtectionFunctionCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts": +/*!***********************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts ***! + \***********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionIntervalCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(/*! ./templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate */ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DebugProtectionFunctionIntervalCodeHelper = class DebugProtectionFunctionIntervalCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(debugProtectionFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), { + debugProtectionFunctionName: this.debugProtectionFunctionName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DebugProtectionFunctionIntervalCodeHelper.prototype, "debugProtectionFunctionName", void 0); +DebugProtectionFunctionIntervalCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DebugProtectionFunctionIntervalCodeHelper); +exports.DebugProtectionFunctionIntervalCodeHelper = DebugProtectionFunctionIntervalCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts": +/*!******************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let DebugProtectionCodeHelperGroup = class DebugProtectionCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendNodes(nodeWithStatements, callsGraphData) { + var _a; + if (!this.options.debugProtection) { + return; + } + const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length); + const debugProtectionFunctionCallHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex) + : nodeWithStatements; + const callsControllerHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1) + : nodeWithStatements; + const debugProtectionFunctionCallScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils + .getLexicalScope(debugProtectionFunctionCallHostNode)) !== null && _a !== void 0 ? _a : null; + const debugProtectionFunctionName = debugProtectionFunctionCallScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(debugProtectionFunctionCallScopeNode) + ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode) + : this.randomGenerator.getRandomString(5); + const callsControllerFunctionName = debugProtectionFunctionCallScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(debugProtectionFunctionCallScopeNode) + ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode) + : this.randomGenerator.getRandomString(5); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, (customCodeHelper) => { + customCodeHelper.initialize(debugProtectionFunctionName, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(debugProtectionFunctionCallHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => { + customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, (customCodeHelper) => { + customCodeHelper.initialize(debugProtectionFunctionName); + NodeAppender_1.NodeAppender.append(nodeWithStatements, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, (customCodeHelper) => { + const programBodyLength = NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements) + ? nodeWithStatements.consequent.length + : nodeWithStatements.body.length; + const randomIndex = this.randomGenerator.getRandomInteger(0, programBodyLength); + customCodeHelper.initialize(debugProtectionFunctionName); + NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), randomIndex); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.debugProtection) { + return; + } + const debugProtectionFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction); + const debugProtectionFunctionCallCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall); + const debugProtectionFunctionIntervalCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval); + const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, debugProtectionFunctionCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, debugProtectionFunctionCallCodeHelper); + if (this.options.debugProtectionInterval) { + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, debugProtectionFunctionIntervalCodeHelper); + } + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], DebugProtectionCodeHelperGroup.prototype, "customCodeHelpers", void 0); +DebugProtectionCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DebugProtectionCodeHelperGroup); +exports.DebugProtectionCodeHelperGroup = DebugProtectionCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts": +/*!**********************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts ***! + \**********************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionCallTemplate = void 0; +function DebugProtectionFunctionCallTemplate() { + return ` + (function () { + {callControllerFunctionName}( + this, + function () { + const regExp1 = new RegExp('function *\\\\( *\\\\)'); + const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i'); + + const result = {debugProtectionFunctionName}('init'); + + if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) { + result('0'); + } else { + {debugProtectionFunctionName}(); + } + } + )(); + })(); + `; +} +exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts": +/*!******************************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts ***! + \******************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionIntervalTemplate = void 0; +function DebugProtectionFunctionIntervalTemplate() { + return ` + setInterval(function () { + {debugProtectionFunctionName}(); + }, 4000); + `; +} +exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts": +/*!*************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts ***! + \*************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebugProtectionFunctionTemplate = void 0; +function DebugProtectionFunctionTemplate() { + return ` + function {debugProtectionFunctionName} (ret) { + function debuggerProtection (counter) { + + {debuggerTemplate} + + debuggerProtection(++counter); + } + + try { + if (ret) { + return debuggerProtection; + } else { + debuggerProtection(0); + } + } catch (y) {} + } + `; +} +exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebuggerTemplate = void 0; +function DebuggerTemplate() { + return ` + if (typeof counter === 'string') { + return (function (arg) {}.constructor('while (true) {}').apply('counter')); + } else { + if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) { + (function () {return true;}.constructor('debu' + 'gger').call('action')); + } else { + (function () {return false;}.constructor('debu' + 'gger').apply('stateObject')); + } + + } + `; +} +exports.DebuggerTemplate = DebuggerTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts": +/*!****************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts ***! + \****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DebuggerTemplateNoEval = void 0; +function DebuggerTemplateNoEval() { + return ` + if (typeof counter === 'string') { + const func = function () { + while (true) {} + }; + + return func(); + } else { + if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) { + debugger; + } else { + debugger; + } + + } + `; +} +exports.DebuggerTemplateNoEval = DebuggerTemplateNoEval; + + +/***/ }), + +/***/ "./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts": +/*!*********************************************************************!*\ + !*** ./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DomainLockCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const ICryptUtils_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const DomainLockTemplate_1 = __webpack_require__(/*! ./templates/DomainLockTemplate */ "./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts"); +const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DomainLockCodeHelper = class DomainLockCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, cryptUtils) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + this.cryptUtils = cryptUtils; + } + initialize(callsControllerFunctionName, domainLockFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + this.domainLockFunctionName = domainLockFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const domainsString = this.options.domainLock.join(';'); + const [hiddenDomainsString, diff] = this.cryptUtils.hideString(domainsString, domainsString.length * 3); + const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? this.getGlobalVariableTemplate() + : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + return this.customCodeHelperFormatter.formatTemplate(DomainLockTemplate_1.DomainLockTemplate(), { + callControllerFunctionName: this.callsControllerFunctionName, + domainLockFunctionName: this.domainLockFunctionName, + diff, + domains: hiddenDomainsString, + globalVariableTemplate + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DomainLockCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], DomainLockCodeHelper.prototype, "domainLockFunctionName", void 0); +DomainLockCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _f : Object]) +], DomainLockCodeHelper); +exports.DomainLockCodeHelper = DomainLockCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DomainLockCustomCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let DomainLockCustomCodeHelperGroup = class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendNodes(nodeWithStatements, callsGraphData) { + var _a; + if (!this.options.domainLock.length) { + return; + } + const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length); + const domainLockFunctionHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex) + : nodeWithStatements; + const callsControllerHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1) + : nodeWithStatements; + const domainLockFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils + .getLexicalScope(domainLockFunctionHostNode)) !== null && _a !== void 0 ? _a : null; + const domainLockFunctionName = domainLockFunctionLexicalScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(domainLockFunctionLexicalScopeNode) + ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = domainLockFunctionLexicalScopeNode + && NodeGuards_1.NodeGuards.isProgramNode(domainLockFunctionLexicalScopeNode) + ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DomainLock, (customCodeHelper) => { + customCodeHelper.initialize(callsControllerFunctionName, domainLockFunctionName); + NodeAppender_1.NodeAppender.prepend(domainLockFunctionHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => { + customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode()); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.domainLock.length) { + return; + } + const domainLockCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DomainLock); + const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DomainLock, domainLockCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], DomainLockCustomCodeHelperGroup.prototype, "customCodeHelpers", void 0); +DomainLockCustomCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], DomainLockCustomCodeHelperGroup); +exports.DomainLockCustomCodeHelperGroup = DomainLockCustomCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DomainLockTemplate = void 0; +function DomainLockTemplate() { + return ` + const {domainLockFunctionName} = {callControllerFunctionName}(this, function () { + + {globalVariableTemplate} + + const func = function () { + return { + key: 'item', + value: 'attribute', + getAttribute: function () { + for (let i = 0; i < 1000; i--) { + const isPositive = i > 0; + + switch (isPositive) { + case true: + return this.item + '_' + this.value + '_' + i; + default: + this.item + '_' + this.value; + } + } + }() + }; + }; + + const regExp = new RegExp("[{diff}]", "g"); + const domains = "{domains}".replace(regExp, "").split(";"); + let document; + let domain; + let location; + let hostname; + + for (let d in that) { + if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) { + document = d; + + break; + } + } + + for (let d1 in that[document]) { + if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) { + domain = d1; + + break; + } + } + + if (!("~" > domain)) { + for (let d2 in that[document]) { + if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) { + location = d2; + + break; + } + } + + for (let d3 in that[document][location]) { + if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) { + hostname = d3; + + break; + } + } + } + + if (!document || !that[document]) { + return; + } + + const documentDomain = that[document][domain]; + const documentLocationHostName = !!that[document][location] && that[document][location][hostname]; + const currentDomain = documentDomain || documentLocationHostName; + + if (!currentDomain) { + return; + } + + let ok = false; + + for (let i = 0; i < domains.length; i++) { + const domain = domains[i]; + const position = currentDomain.length - domain.length; + const lastIndex = currentDomain.indexOf(domain, position); + const endsWith = lastIndex !== -1 && lastIndex === position; + + if (endsWith) { + if (currentDomain.length == domain.length || domain.indexOf(".") === 0) { + ok = true; + } + } + } + + if (!ok) { + data; + } else { + return; + } + + func(); + }); + + {domainLockFunctionName}(); + `; +} +exports.DomainLockTemplate = DomainLockTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingUnicodeCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/SelfDefendingTemplate */ "./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts"); +const SelfDefendingNoEvalTemplate_1 = __webpack_require__(/*! ./templates/SelfDefendingNoEvalTemplate */ "./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts"); +let SelfDefendingUnicodeCodeHelper = class SelfDefendingUnicodeCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(callsControllerFunctionName, selfDefendingFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + this.selfDefendingFunctionName = selfDefendingFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? this.getGlobalVariableTemplate() + : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + const selfDefendingTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? SelfDefendingTemplate_1.SelfDefendingTemplate() + : SelfDefendingNoEvalTemplate_1.SelfDefendingNoEvalTemplate(); + return this.customCodeHelperFormatter.formatTemplate(selfDefendingTemplate, { + callControllerFunctionName: this.callsControllerFunctionName, + selfDefendingFunctionName: this.selfDefendingFunctionName, + globalVariableTemplate + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], SelfDefendingUnicodeCodeHelper.prototype, "callsControllerFunctionName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], SelfDefendingUnicodeCodeHelper.prototype, "selfDefendingFunctionName", void 0); +SelfDefendingUnicodeCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], SelfDefendingUnicodeCodeHelper); +exports.SelfDefendingUnicodeCodeHelper = SelfDefendingUnicodeCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let SelfDefendingCodeHelperGroup = class SelfDefendingCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendNodes(nodeWithStatements, callsGraphData) { + var _a; + if (!this.options.selfDefending) { + return; + } + const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length); + const selfDefendingFunctionHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex) + : nodeWithStatements; + const callsControllerHostNode = callsGraphData.length + ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1) + : nodeWithStatements; + const selfDefendingFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils + .getLexicalScope(selfDefendingFunctionHostNode)) !== null && _a !== void 0 ? _a : null; + const selfDefendingFunctionName = selfDefendingFunctionLexicalScopeNode + ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = selfDefendingFunctionLexicalScopeNode + ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, (customCodeHelper) => { + customCodeHelper.initialize(callsControllerFunctionName, selfDefendingFunctionName); + NodeAppender_1.NodeAppender.prepend(selfDefendingFunctionHostNode, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => { + customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName); + NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode()); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.selfDefending) { + return; + } + const selfDefendingUnicodeCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode); + const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, selfDefendingUnicodeCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], SelfDefendingCodeHelperGroup.prototype, "customCodeHelpers", void 0); +SelfDefendingCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], SelfDefendingCodeHelperGroup); +exports.SelfDefendingCodeHelperGroup = SelfDefendingCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingNoEvalTemplate = void 0; +function SelfDefendingNoEvalTemplate() { + return ` + const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () { + {globalVariableTemplate} + + const test = function () { + const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}'); + + return !regExp.test({selfDefendingFunctionName}); + }; + + return test(); + }); + + {selfDefendingFunctionName}(); + `; +} +exports.SelfDefendingNoEvalTemplate = SelfDefendingNoEvalTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts": +/*!***********************************************************************************!*\ + !*** ./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingTemplate = void 0; +function SelfDefendingTemplate() { + return ` + const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () { + const test = function () { + const regExp = test + .constructor('return /" + this + "/')() + .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}'); + + return !regExp.test({selfDefendingFunctionName}); + }; + + return test(); + }); + + {selfDefendingFunctionName}(); + `; +} +exports.SelfDefendingTemplate = SelfDefendingTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts": +/*!***********************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayCallsWrapperCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AtobTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/AtobTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts"); +const GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../common/templates/GlobalVariableNoEvalTemplate */ "./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts"); +const Rc4Template_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/Rc4Template */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts"); +const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/SelfDefendingTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts"); +const StringArrayBase64DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts"); +const StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts"); +const StringArrayRC4DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayCallsWrapperCodeHelper = class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + this.escapeSequenceEncoder = escapeSequenceEncoder; + } + initialize(stringArrayName, stringArrayCallsWrapperName) { + this.stringArrayName = stringArrayName; + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const decodeCodeHelperTemplate = this.getDecodeStringArrayTemplate(); + const preservedNames = [`^${this.stringArrayName}$`]; + return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), { + decodeCodeHelperTemplate, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }), { + reservedNames: preservedNames + }); + } + getDecodeStringArrayTemplate() { + const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval + ? this.getGlobalVariableTemplate() + : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), { globalVariableTemplate }); + let decodeStringArrayTemplate = ''; + let selfDefendingCode = ''; + if (this.options.selfDefending) { + selfDefendingCode = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), { + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }); + } + switch (this.options.stringArrayEncoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: + decodeStringArrayTemplate = this.customCodeHelperFormatter.formatTemplate(StringArrayRC4DecodeTemplate_1.StringArrayRC4DecodeTemplate(this.randomGenerator), { + atobPolyfill, + selfDefendingCode, + rc4Polyfill: Rc4Template_1.Rc4Template(), + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + break; + case StringArrayEncoding_1.StringArrayEncoding.Base64: + decodeStringArrayTemplate = this.customCodeHelperFormatter.formatTemplate(StringArrayBase64DecodeTemplate_1.StringArrayBase64DecodeTemplate(this.randomGenerator), { + atobPolyfill, + selfDefendingCode, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + } + return decodeStringArrayTemplate; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayCallsWrapperCodeHelper.prototype, "stringArrayName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayCallsWrapperCodeHelper.prototype, "stringArrayCallsWrapperName", void 0); +StringArrayCallsWrapperCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object]) +], StringArrayCallsWrapperCodeHelper); +exports.StringArrayCallsWrapperCodeHelper = StringArrayCallsWrapperCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts": +/*!***********************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const StringArrayTemplate_1 = __webpack_require__(/*! ./templates/string-array/StringArrayTemplate */ "./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayCodeHelper = class StringArrayCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(stringArrayStorage, stringArrayName) { + this.stringArrayStorage = stringArrayStorage; + this.stringArrayName = stringArrayName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + return this.customCodeHelperFormatter.formatTemplate(StringArrayTemplate_1.StringArrayTemplate(), { + stringArrayName: this.stringArrayName, + stringArray: this.stringArrayStorage.toString() + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object) +], StringArrayCodeHelper.prototype, "stringArrayStorage", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayCodeHelper.prototype, "stringArrayName", void 0); +StringArrayCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], StringArrayCodeHelper); +exports.StringArrayCodeHelper = StringArrayCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts": +/*!*************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayRotateFunctionCodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const ICustomCodeHelperObfuscator_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts"); +const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const SelfDefendingTemplate_1 = __webpack_require__(/*! ./templates/string-array-rotate-function/SelfDefendingTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts"); +const StringArrayRotateFunctionTemplate_1 = __webpack_require__(/*! ./templates/string-array-rotate-function/StringArrayRotateFunctionTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts"); +const AbstractCustomCodeHelper_1 = __webpack_require__(/*! ../AbstractCustomCodeHelper */ "./src/custom-code-helpers/AbstractCustomCodeHelper.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let StringArrayRotateFunctionCodeHelper = class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + this.escapeSequenceEncoder = escapeSequenceEncoder; + } + initialize(stringArrayName, stringArrayRotationAmount) { + this.stringArrayName = stringArrayName; + this.stringArrayRotationAmount = stringArrayRotationAmount; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const timesName = this.identifierNamesGenerator.generateNext(); + const whileFunctionName = this.identifierNamesGenerator.generateNext(); + const preservedNames = [`^${this.stringArrayName}$`]; + let code = ''; + if (this.options.selfDefending) { + code = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), { + timesName, + whileFunctionName + }); + } + else { + code = `${whileFunctionName}(++${timesName})`; + } + return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), { + code, + timesName, + whileFunctionName, + stringArrayName: this.stringArrayName, + stringArrayRotationAmount: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotationAmount) + }), { + reservedNames: preservedNames + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayRotateFunctionCodeHelper.prototype, "stringArrayName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayRotateFunctionCodeHelper.prototype, "stringArrayRotationAmount", void 0); +StringArrayRotateFunctionCodeHelper = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== "undefined" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object]) +], StringArrayRotateFunctionCodeHelper); +exports.StringArrayRotateFunctionCodeHelper = StringArrayRotateFunctionCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayCodeHelperGroup = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const AbstractCustomCodeHelperGroup_1 = __webpack_require__(/*! ../../AbstractCustomCodeHelperGroup */ "./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +let StringArrayCodeHelperGroup = class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation; + this.customCodeHelperFactory = customCodeHelperFactory; + this.stringArrayStorage = stringArrayStorage; + } + appendNodes(nodeWithStatements, callsGraphData) { + if (!this.stringArrayStorage.getLength()) { + return; + } + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArray, (customCodeHelper) => { + NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode()); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper, (customCodeHelper) => { + NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1); + }); + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, (customCodeHelper) => { + NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1); + }); + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.stringArray) { + return; + } + const stringArrayCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArray); + const stringArrayCallsWrapperCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper); + const stringArrayRotateFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction); + const stringArrayName = this.stringArrayStorage.getStorageName(); + const stringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(); + const stringArrayRotationAmount = this.stringArrayStorage.getRotationAmount(); + stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName); + stringArrayCallsWrapperCodeHelper.initialize(stringArrayName, stringArrayCallsWrapperName); + stringArrayRotateFunctionCodeHelper.initialize(stringArrayName, stringArrayRotationAmount); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArray, stringArrayCodeHelper); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper, stringArrayCallsWrapperCodeHelper); + if (this.options.rotateStringArray) { + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, stringArrayRotateFunctionCodeHelper); + } + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], StringArrayCodeHelperGroup.prototype, "customCodeHelpers", void 0); +StringArrayCodeHelperGroup = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _b : Object, typeof (_c = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _c : Object, typeof (_d = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], StringArrayCodeHelperGroup); +exports.StringArrayCodeHelperGroup = StringArrayCodeHelperGroup; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts": +/*!***************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AtobTemplate = void 0; +const AlphabetStringUppercase_1 = __webpack_require__(/*! ../../../../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AlphabetString_1 = __webpack_require__(/*! ../../../../constants/AlphabetString */ "./src/constants/AlphabetString.ts"); +const NumbersString_1 = __webpack_require__(/*! ../../../../constants/NumbersString */ "./src/constants/NumbersString.ts"); +function AtobTemplate() { + return ` + (function () { + {globalVariableTemplate} + + const chars = '${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/='; + + that.atob || ( + that.atob = function(input) { + const str = String(input).replace(/=+$/, ''); + let output = ''; + for ( + let bc = 0, bs, buffer, idx = 0; + buffer = str.charAt(idx++); + ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, + bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0 + ) { + buffer = chars.indexOf(buffer); + } + return output; + } + ); + })(); + `; +} +exports.AtobTemplate = AtobTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts": +/*!**************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts ***! + \**************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Rc4Template = void 0; +function Rc4Template() { + return ` + const rc4 = function (str, key) { + let s = [], j = 0, x, res = '', newStr = ''; + + str = atob(str); + + for (let k = 0, length = str.length; k < length; k++) { + newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2); + } + + str = decodeURIComponent(newStr); + + let i; + + for (i = 0; i < 256; i++) { + s[i] = i; + } + + for (i = 0; i < 256; i++) { + j = (j + s[i] + key.charCodeAt(i % key.length)) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + } + + i = 0; + j = 0; + + for (let y = 0; y < str.length; y++) { + i = (i + 1) % 256; + j = (j + s[i]) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]); + } + + return res; + } + `; +} +exports.Rc4Template = Rc4Template; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts": +/*!************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingTemplate = void 0; +function SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) { + const identifierLength = 6; + const rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength); + const statesIdentifier = randomGenerator.getRandomString(identifierLength); + const newStateIdentifier = randomGenerator.getRandomString(identifierLength); + const firstStateIdentifier = randomGenerator.getRandomString(identifierLength); + const secondStateIdentifier = randomGenerator.getRandomString(identifierLength); + const checkStateIdentifier = randomGenerator.getRandomString(identifierLength); + const runStateIdentifier = randomGenerator.getRandomString(identifierLength); + const getStateIdentifier = randomGenerator.getRandomString(identifierLength); + const stateResultIdentifier = randomGenerator.getRandomString(identifierLength); + return ` + const StatesClass = function (${rc4BytesIdentifier}) { + this.${rc4BytesIdentifier} = ${rc4BytesIdentifier}; + this.${statesIdentifier} = [1, 0, 0]; + this.${newStateIdentifier} = function(){return 'newState';}; + this.${firstStateIdentifier} = '${escapeSequenceEncoder.encode('\\w+ *\\(\\) *{\\w+ *', true)}'; + this.${secondStateIdentifier} = '${escapeSequenceEncoder.encode('[\'|"].+[\'|"];? *}', true)}'; + }; + + StatesClass.prototype.${checkStateIdentifier} = function () { + const regExp = new RegExp(this.${firstStateIdentifier} + this.${secondStateIdentifier}); + const expression = regExp.test(this.${newStateIdentifier}.toString()) + ? --this.${statesIdentifier}[1] + : --this.${statesIdentifier}[0]; + + return this.${runStateIdentifier}(expression); + }; + + StatesClass.prototype.${runStateIdentifier} = function (${stateResultIdentifier}) { + if (!Boolean(~${stateResultIdentifier})) { + return ${stateResultIdentifier}; + } + + return this.${getStateIdentifier}(this.${rc4BytesIdentifier}); + }; + + StatesClass.prototype.${getStateIdentifier} = function (${rc4BytesIdentifier}) { + for (let i = 0, len = this.${statesIdentifier}.length; i < len; i++) { + this.${statesIdentifier}.push(Math.round(Math.random())); + len = this.${statesIdentifier}.length; + } + + return ${rc4BytesIdentifier}(this.${statesIdentifier}[0]); + }; + + new StatesClass({stringArrayCallsWrapperName}).${checkStateIdentifier}(); + `; +} +exports.SelfDefendingTemplate = SelfDefendingTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts": +/*!**********************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts ***! + \**********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayBase64DecodeTemplate = void 0; +function StringArrayBase64DecodeTemplate(randomGenerator) { + const identifierLength = 6; + const initializedIdentifier = randomGenerator.getRandomString(identifierLength); + const base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength); + const dataIdentifier = randomGenerator.getRandomString(identifierLength); + return ` + if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) { + {atobPolyfill} + + {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier} = function (str) { + const string = atob(str); + let newStringChars = []; + + for (let i = 0, length = string.length; i < length; i++) { + newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2); + } + + return decodeURIComponent(newStringChars); + }; + + {stringArrayCallsWrapperName}.${dataIdentifier} = {}; + + {stringArrayCallsWrapperName}.${initializedIdentifier} = true; + } + + const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; + + if (cachedValue === undefined) { + {selfDefendingCode} + + value = {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier}(value); + {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value; + } else { + value = cachedValue; + } + `; +} +exports.StringArrayBase64DecodeTemplate = StringArrayBase64DecodeTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts": +/*!**********************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts ***! + \**********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayCallsWrapperTemplate = void 0; +function StringArrayCallsWrapperTemplate() { + return ` + const {stringArrayCallsWrapperName} = function (index, key) { + index = index - 0; + + let value = {stringArrayName}[index]; + + {decodeCodeHelperTemplate} + + return value; + }; + `; +} +exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts": +/*!*******************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts ***! + \*******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayRC4DecodeTemplate = void 0; +function StringArrayRC4DecodeTemplate(randomGenerator) { + const identifierLength = 6; + const initializedIdentifier = randomGenerator.getRandomString(identifierLength); + const rc4Identifier = randomGenerator.getRandomString(identifierLength); + const dataIdentifier = randomGenerator.getRandomString(identifierLength); + const onceIdentifier = randomGenerator.getRandomString(identifierLength); + return ` + if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) { + {atobPolyfill} + + {rc4Polyfill} + {stringArrayCallsWrapperName}.${rc4Identifier} = rc4; + + {stringArrayCallsWrapperName}.${dataIdentifier} = {}; + + {stringArrayCallsWrapperName}.${initializedIdentifier} = true; + } + + const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; + + if (cachedValue === undefined) { + if ({stringArrayCallsWrapperName}.${onceIdentifier} === undefined) { + {selfDefendingCode} + + {stringArrayCallsWrapperName}.${onceIdentifier} = true; + } + + value = {stringArrayCallsWrapperName}.${rc4Identifier}(value, key); + {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value; + } else { + value = cachedValue; + } + `; +} +exports.StringArrayRC4DecodeTemplate = StringArrayRC4DecodeTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts": +/*!**************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts ***! + \**************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingTemplate = void 0; +function SelfDefendingTemplate(escapeSequenceEncoder) { + return ` + const selfDefendingFunc = function () { + const object = { + data: { + key: 'cookie', + value: 'timeout' + }, + setCookie: function (options, name, value, document) { + document = document || {}; + + let updatedCookie = name + "=" + value; + let i = 0; + + for (let i = 0, len = options.length; i < len; i++) { + const propName = options[i]; + + updatedCookie += "; " + propName; + + const propValue = options[propName]; + + options.push(propValue); + len = options.length; + + if (propValue !== true) { + updatedCookie += "=" + propValue; + } + } + + document['cookie'] = updatedCookie; + }, + removeCookie: function(){return 'dev';}, + getCookie: function (document, name) { + document = document || function (value) { return value }; + const matches = document(new RegExp( + "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" + )); + + const func = function (param1, param2) { + param1(++param2); + }; + + func({whileFunctionName}, {timesName}); + + return matches ? decodeURIComponent(matches[1]) : undefined; + } + }; + + const test1 = function () { + const regExp = new RegExp('${escapeSequenceEncoder.encode('\\w+ *\\(\\) *{\\w+ *[\'|"].+[\'|"];? *}', true)}'); + + return regExp.test(object.removeCookie.toString()); + }; + + object['updateCookie'] = test1; + + let cookie = ''; + const result = object['updateCookie'](); + + if (!result) { + object['setCookie'](['*'], 'counter', 1); + } else if (result) { + cookie = object['getCookie'](null, 'counter'); + } else { + object['removeCookie'](); + } + }; + + selfDefendingFunc(); + `; +} +exports.SelfDefendingTemplate = SelfDefendingTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts": +/*!**************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts ***! + \**************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayRotateFunctionTemplate = void 0; +function StringArrayRotateFunctionTemplate() { + return ` + (function (array, {timesName}) { + const {whileFunctionName} = function (times) { + while (--times) { + array['push'](array['shift']()); + } + }; + + {code} + })({stringArrayName}, {stringArrayRotationAmount}); + `; +} +exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts": +/*!********************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts ***! + \********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayTemplate = void 0; +function StringArrayTemplate() { + return ` + const {stringArrayName} = [{stringArray}]; + `; +} +exports.StringArrayTemplate = StringArrayTemplate; + + +/***/ }), + +/***/ "./src/custom-nodes/AbstractCustomNode.ts": +/*!************************************************!*\ + !*** ./src/custom-nodes/AbstractCustomNode.ts ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractCustomNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractCustomNode = class AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + this.cachedNode = null; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.customCodeHelperFormatter = customCodeHelperFormatter; + this.randomGenerator = randomGenerator; + this.options = options; + } + getNode() { + if (!this.cachedNode) { + this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure()); + } + return this.cachedNode; + } +}; +AbstractCustomNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], AbstractCustomNode); +exports.AbstractCustomNode = AbstractCustomNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts": +/*!****************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BinaryExpressionFunctionNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BinaryExpressionFunctionNode = class BinaryExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(operator) { + this.operator = operator; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([ + NodeFactory_1.NodeFactory.identifierNode('x'), + NodeFactory_1.NodeFactory.identifierNode('y') + ], NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y'))) + ]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +BinaryExpressionFunctionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], BinaryExpressionFunctionNode); +exports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts": +/*!***************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BlockStatementControlFlowFlatteningNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BlockStatementControlFlowFlatteningNode = class BlockStatementControlFlowFlatteningNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) { + this.blockStatementBody = blockStatementBody; + this.shuffledKeys = shuffledKeys; + this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray; + } + getNodeStructure() { + const controllerIdentifierName = this.randomGenerator.getRandomString(6); + const indexIdentifierName = this.randomGenerator.getRandomString(6); + const structure = NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join('|')), NodeFactory_1.NodeFactory.identifierNode('split')), [ + NodeFactory_1.NodeFactory.literalNode('|') + ])) + ], 'const'), + NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0)) + ], 'let'), + NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.switchStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.updateExpressionNode('++', NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName)), true), this.shuffledKeys.map((key, index) => { + const statement = this.blockStatementBody[key]; + const consequent = [statement]; + if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) { + consequent.push(NodeFactory_1.NodeFactory.continueStatement()); + } + return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent); + })), + NodeFactory_1.NodeFactory.breakStatement() + ])) + ]); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], BlockStatementControlFlowFlatteningNode.prototype, "blockStatementBody", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], BlockStatementControlFlowFlatteningNode.prototype, "originalKeysIndexesInShuffledArray", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], BlockStatementControlFlowFlatteningNode.prototype, "shuffledKeys", void 0); +BlockStatementControlFlowFlatteningNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], BlockStatementControlFlowFlatteningNode); +exports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallExpressionFunctionNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let CallExpressionFunctionNode = class CallExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(expressionArguments) { + this.expressionArguments = expressionArguments; + } + getNodeStructure() { + const calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee'); + const params = []; + const argumentsLength = this.expressionArguments.length; + for (let i = 0; i < argumentsLength; i++) { + params.push(NodeFactory_1.NodeFactory.identifierNode(`param${i + 1}`)); + } + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([ + calleeIdentifier, + ...params + ], NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params)) + ]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], CallExpressionFunctionNode.prototype, "expressionArguments", void 0); +CallExpressionFunctionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], CallExpressionFunctionNode); +exports.CallExpressionFunctionNode = CallExpressionFunctionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LogicalExpressionFunctionNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let LogicalExpressionFunctionNode = class LogicalExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(operator) { + this.operator = operator; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([ + NodeFactory_1.NodeFactory.identifierNode('x'), + NodeFactory_1.NodeFactory.identifierNode('y') + ], NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y'))) + ]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +LogicalExpressionFunctionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], LogicalExpressionFunctionNode); +exports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringLiteralNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let StringLiteralNode = class StringLiteralNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(literalValue) { + this.literalValue = literalValue; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue)); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringLiteralNode.prototype, "literalValue", void 0); +StringLiteralNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], StringLiteralNode); +exports.StringLiteralNode = StringLiteralNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts": +/*!*******************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts ***! + \*******************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallExpressionControlFlowStorageCallNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let CallExpressionControlFlowStorageCallNode = class CallExpressionControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + this.callee = callee; + this.expressionArguments = expressionArguments; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [ + this.callee, + ...this.expressionArguments + ])); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof ESTree !== "undefined" && ESTree.Expression) === "function" ? _a : Object) +], CallExpressionControlFlowStorageCallNode.prototype, "callee", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], CallExpressionControlFlowStorageCallNode.prototype, "expressionArguments", void 0); +CallExpressionControlFlowStorageCallNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], CallExpressionControlFlowStorageCallNode); +exports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowStorageNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowStorage_1 = __webpack_require__(/*! ../../../types/storages/TControlFlowStorage */ "./src/types/storages/TControlFlowStorage.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ControlFlowStorageNode = class ControlFlowStorageNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(controlFlowStorage) { + this.controlFlowStorage = controlFlowStorage; + } + getNodeStructure() { + const propertyNodes = Array + .from(this.controlFlowStorage.getStorage()) + .map(([key, value]) => { + const node = value.getNode()[0]; + if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) { + throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!'); + } + return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression); + }); + let structure = NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes)) + ], 'const'); + structure = NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof TControlFlowStorage_1.TControlFlowStorage !== "undefined" && TControlFlowStorage_1.TControlFlowStorage) === "function" ? _a : Object) +], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0); +ControlFlowStorageNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], ControlFlowStorageNode); +exports.ControlFlowStorageNode = ControlFlowStorageNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts": +/*!***************************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts ***! + \***************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ExpressionWithOperatorControlFlowStorageCallNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ExpressionWithOperatorControlFlowStorageCallNode = class ExpressionWithOperatorControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + this.leftValue = leftValue; + this.rightValue = rightValue; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [ + this.leftValue, + this.rightValue + ])); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); +ExpressionWithOperatorControlFlowStorageCallNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], ExpressionWithOperatorControlFlowStorageCallNode); +exports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts": +/*!******************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts ***! + \******************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringLiteralControlFlowStorageCallNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringLiteralControlFlowStorageCallNode = class StringLiteralControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(controlFlowStorageName, controlFlowStorageKey) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); +StringLiteralControlFlowStorageCallNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], StringLiteralControlFlowStorageCallNode); +exports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts": +/*!*******************************************************************************************!*\ + !*** ./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BlockStatementDeadCodeInjectionNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BlockStatementDeadCodeInjectionNode = class BlockStatementDeadCodeInjectionNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) { + this.blockStatementNode = blockStatementNode; + this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode; + } + getNode() { + return this.getNodeStructure(); + } + getNodeStructure() { + const random1 = this.randomGenerator.getMathRandom() > 0.5; + const random2 = this.randomGenerator.getMathRandom() > 0.5; + const operator = random1 ? '===' : '!=='; + const leftString = this.randomGenerator.getRandomString(5); + const rightString = random2 ? leftString : this.randomGenerator.getRandomString(5); + const [consequent, alternate] = random1 === random2 + ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode] + : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode]; + const structure = NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate) + ]); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +BlockStatementDeadCodeInjectionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], BlockStatementDeadCodeInjectionNode); +exports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts": +/*!******************************************************************************************************************!*\ + !*** ./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts ***! + \******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionVariableDeclarationHostNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const ICustomCodeHelperFormatter_1 = __webpack_require__(/*! ../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter */ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ObjectExpressionVariableDeclarationHostNode = class ObjectExpressionVariableDeclarationHostNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + } + initialize(lexicalScopeNode, properties) { + this.lexicalScopeNode = lexicalScopeNode; + this.properties = properties; + } + getNodeStructure() { + const variableDeclarationName = NodeGuards_1.NodeGuards.isProgramNode(this.lexicalScopeNode) + ? this.identifierNamesGenerator.generateForGlobalScope() + : this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode); + const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(variableDeclarationName), NodeFactory_1.NodeFactory.objectExpressionNode(this.properties)) + ], 'const'); + return [structure]; + } +}; +ObjectExpressionVariableDeclarationHostNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], ObjectExpressionVariableDeclarationHostNode); +exports.ObjectExpressionVariableDeclarationHostNode = ObjectExpressionVariableDeclarationHostNode; + + +/***/ }), + +/***/ "./src/decorators/Initializable.ts": +/*!*****************************************!*\ + !*** ./src/decorators/Initializable.ts ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.initializable = void 0; +const defaultDescriptor = { + configurable: true, + enumerable: true +}; +const initializedTargetMetadataKey = '_initialized'; +const initializablePropertiesSetMetadataKey = '_initializablePropertiesSet'; +const wrappedMethodsSetMetadataKey = '_wrappedMethodsSet'; +const constructorMethodName = 'constructor'; +function initializable(initializeMethodName = 'initialize') { + const decoratorName = Object.keys(this)[0]; + return (target, propertyKey) => { + const initializeMethod = target[initializeMethodName]; + if (!initializeMethod || typeof initializeMethod !== 'function') { + throw new Error(`\`${initializeMethodName}\` method with initialization logic not ` + + `found. \`@${decoratorName}\` decorator requires \`${initializeMethodName}\` method`); + } + initializeTargetMetadata(initializedTargetMetadataKey, false, target); + initializeTargetMetadata(initializablePropertiesSetMetadataKey, new Set(), target); + initializeTargetMetadata(wrappedMethodsSetMetadataKey, new Set(), target); + wrapTargetMethodsInInitializedCheck(target, initializeMethodName); + wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey); + return wrapInitializableProperty(target, propertyKey); + }; +} +exports.initializable = initializable; +function initializeTargetMetadata(metadataKey, metadataValue, target) { + const hasInitializedMetadata = Reflect.hasMetadata(metadataKey, target); + if (!hasInitializedMetadata) { + Reflect.defineMetadata(metadataKey, metadataValue, target); + } +} +function wrapTargetMethodsInInitializedCheck(target, initializeMethodName) { + const ownPropertyNames = Object.getOwnPropertyNames(target); + const prohibitedPropertyNames = [initializeMethodName, constructorMethodName]; + ownPropertyNames.forEach((propertyName) => { + var _a; + const initializablePropertiesSet = Reflect + .getMetadata(initializablePropertiesSetMetadataKey, target); + const wrappedMethodsSet = Reflect + .getMetadata(wrappedMethodsSetMetadataKey, target); + const isProhibitedPropertyName = prohibitedPropertyNames.includes(propertyName) + || initializablePropertiesSet.has(propertyName) + || wrappedMethodsSet.has(propertyName); + if (isProhibitedPropertyName) { + return; + } + const targetProperty = target[propertyName]; + if (typeof targetProperty !== 'function') { + return; + } + const methodDescriptor = (_a = Object + .getOwnPropertyDescriptor(target, propertyName)) !== null && _a !== void 0 ? _a : defaultDescriptor; + const originalMethod = methodDescriptor.value; + Object.defineProperty(target, propertyName, Object.assign(Object.assign({}, methodDescriptor), { value() { + if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) { + throw new Error(`Class should be initialized with \`${initializeMethodName}()\` method`); + } + return originalMethod.apply(this, arguments); + } })); + wrappedMethodsSet.add(propertyName); + }); +} +function wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) { + var _a; + const methodDescriptor = (_a = Object + .getOwnPropertyDescriptor(target, initializeMethodName)) !== null && _a !== void 0 ? _a : defaultDescriptor; + const originalMethod = methodDescriptor.value; + Object.defineProperty(target, initializeMethodName, Object.assign(Object.assign({}, methodDescriptor), { value: function () { + Reflect.defineMetadata(initializedTargetMetadataKey, true, this); + const result = originalMethod.apply(this, arguments); + if (this[propertyKey]) { } + return result; + } })); +} +function wrapInitializableProperty(target, propertyKey) { + var _a; + const initializablePropertiesSet = Reflect + .getMetadata(initializablePropertiesSetMetadataKey, target); + initializablePropertiesSet.add(propertyKey); + const initializablePropertyMetadataKey = `_${propertyKey.toString()}`; + const propertyDescriptor = (_a = Object + .getOwnPropertyDescriptor(target, initializablePropertyMetadataKey)) !== null && _a !== void 0 ? _a : defaultDescriptor; + Object.defineProperty(target, propertyKey, Object.assign(Object.assign({}, propertyDescriptor), { get: function () { + if (this[initializablePropertyMetadataKey] === undefined) { + throw new Error(`Property \`${propertyKey.toString()}\` is not initialized! Initialize it first!`); + } + return this[initializablePropertyMetadataKey]; + }, set: function (newVal) { + this[initializablePropertyMetadataKey] = newVal; + } })); + return propertyDescriptor; +} + + +/***/ }), + +/***/ "./src/enums/ObfuscationTarget.ts": +/*!****************************************!*\ + !*** ./src/enums/ObfuscationTarget.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscationTarget = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +exports.ObfuscationTarget = tsenum_1.MakeEnum({ + Browser: 'browser', + BrowserNoEval: 'browser-no-eval', + Node: 'node' +}); + + +/***/ }), + +/***/ "./src/enums/StringArrayEncoding.ts": +/*!******************************************!*\ + !*** ./src/enums/StringArrayEncoding.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayEncoding = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +exports.StringArrayEncoding = tsenum_1.MakeEnum({ + Base64: 'base64', + Rc4: 'rc4' +}); + + +/***/ }), + +/***/ "./src/enums/StringSeparator.ts": +/*!**************************************!*\ + !*** ./src/enums/StringSeparator.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringSeparator = void 0; +var StringSeparator; +(function (StringSeparator) { + StringSeparator["Dot"] = "."; + StringSeparator["Comma"] = ","; +})(StringSeparator = exports.StringSeparator || (exports.StringSeparator = {})); + + +/***/ }), + +/***/ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts": +/*!*************************************************************************!*\ + !*** ./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CalleeDataExtractor = void 0; +var CalleeDataExtractor; +(function (CalleeDataExtractor) { + CalleeDataExtractor["FunctionDeclarationCalleeDataExtractor"] = "FunctionDeclarationCalleeDataExtractor"; + CalleeDataExtractor["FunctionExpressionCalleeDataExtractor"] = "FunctionExpressionCalleeDataExtractor"; + CalleeDataExtractor["ObjectExpressionCalleeDataExtractor"] = "ObjectExpressionCalleeDataExtractor"; +})(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {})); + + +/***/ }), + +/***/ "./src/enums/code-transformers/CodeTransformationStage.ts": +/*!****************************************************************!*\ + !*** ./src/enums/code-transformers/CodeTransformationStage.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CodeTransformationStage = void 0; +var CodeTransformationStage; +(function (CodeTransformationStage) { + CodeTransformationStage["PreparingTransformers"] = "PreparingTransformers"; + CodeTransformationStage["FinalizingTransformers"] = "FinalizingTransformers"; +})(CodeTransformationStage = exports.CodeTransformationStage || (exports.CodeTransformationStage = {})); + + +/***/ }), + +/***/ "./src/enums/code-transformers/CodeTransformer.ts": +/*!********************************************************!*\ + !*** ./src/enums/code-transformers/CodeTransformer.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CodeTransformer = void 0; +var CodeTransformer; +(function (CodeTransformer) { + CodeTransformer["HashbangOperatorTransformer"] = "HashbangOperatorTransformer"; +})(CodeTransformer = exports.CodeTransformer || (exports.CodeTransformer = {})); + + +/***/ }), + +/***/ "./src/enums/custom-code-helpers/CustomCodeHelper.ts": +/*!***********************************************************!*\ + !*** ./src/enums/custom-code-helpers/CustomCodeHelper.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelper = void 0; +var CustomCodeHelper; +(function (CustomCodeHelper) { + CustomCodeHelper["CallsControllerFunction"] = "CallsControllerFunction"; + CustomCodeHelper["ConsoleOutputDisable"] = "ConsoleOutputDisable"; + CustomCodeHelper["DebugProtectionFunctionCall"] = "DebugProtectionFunctionCall"; + CustomCodeHelper["DebugProtectionFunctionInterval"] = "DebugProtectionFunctionInterval"; + CustomCodeHelper["DebugProtectionFunction"] = "DebugProtectionFunction"; + CustomCodeHelper["DomainLock"] = "DomainLock"; + CustomCodeHelper["SelfDefendingUnicode"] = "SelfDefendingUnicode"; + CustomCodeHelper["StringArrayCallsWrapper"] = "StringArrayCallsWrapper"; + CustomCodeHelper["StringArray"] = "StringArray"; + CustomCodeHelper["StringArrayRotateFunction"] = "StringArrayRotateFunction"; +})(CustomCodeHelper = exports.CustomCodeHelper || (exports.CustomCodeHelper = {})); + + +/***/ }), + +/***/ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts": +/*!****************************************************************!*\ + !*** ./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelperGroup = void 0; +var CustomCodeHelperGroup; +(function (CustomCodeHelperGroup) { + CustomCodeHelperGroup["ConsoleOutput"] = "ConsoleOutput"; + CustomCodeHelperGroup["DebugProtection"] = "DebugProtection"; + CustomCodeHelperGroup["DomainLock"] = "DomainLock"; + CustomCodeHelperGroup["SelfDefending"] = "SelfDefending"; + CustomCodeHelperGroup["StringArray"] = "StringArray"; +})(CustomCodeHelperGroup = exports.CustomCodeHelperGroup || (exports.CustomCodeHelperGroup = {})); + + +/***/ }), + +/***/ "./src/enums/custom-nodes/ControlFlowCustomNode.ts": +/*!*********************************************************!*\ + !*** ./src/enums/custom-nodes/ControlFlowCustomNode.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowCustomNode = void 0; +var ControlFlowCustomNode; +(function (ControlFlowCustomNode) { + ControlFlowCustomNode["BinaryExpressionFunctionNode"] = "BinaryExpressionFunctionNode"; + ControlFlowCustomNode["BlockStatementControlFlowFlatteningNode"] = "BlockStatementControlFlowFlatteningNode"; + ControlFlowCustomNode["CallExpressionControlFlowStorageCallNode"] = "CallExpressionControlFlowStorageCallNode"; + ControlFlowCustomNode["CallExpressionFunctionNode"] = "CallExpressionFunctionNode"; + ControlFlowCustomNode["ControlFlowStorageNode"] = "ControlFlowStorageNode"; + ControlFlowCustomNode["ExpressionWithOperatorControlFlowStorageCallNode"] = "ExpressionWithOperatorControlFlowStorageCallNode"; + ControlFlowCustomNode["LogicalExpressionFunctionNode"] = "LogicalExpressionFunctionNode"; + ControlFlowCustomNode["StringLiteralControlFlowStorageCallNode"] = "StringLiteralControlFlowStorageCallNode"; + ControlFlowCustomNode["StringLiteralNode"] = "StringLiteralNode"; +})(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {})); + + +/***/ }), + +/***/ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts": +/*!***************************************************************!*\ + !*** ./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DeadCodeInjectionCustomNode = void 0; +var DeadCodeInjectionCustomNode; +(function (DeadCodeInjectionCustomNode) { + DeadCodeInjectionCustomNode["BlockStatementDeadCodeInjectionNode"] = "BlockStatementDeadCodeInjectionNode"; +})(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {})); + + +/***/ }), + +/***/ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts": +/*!*****************************************************************************!*\ + !*** ./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionKeysTransformerCustomNode = void 0; +var ObjectExpressionKeysTransformerCustomNode; +(function (ObjectExpressionKeysTransformerCustomNode) { + ObjectExpressionKeysTransformerCustomNode["ObjectExpressionVariableDeclarationHostNode"] = "ObjectExpressionVariableDeclarationHostNode"; +})(ObjectExpressionKeysTransformerCustomNode = exports.ObjectExpressionKeysTransformerCustomNode || (exports.ObjectExpressionKeysTransformerCustomNode = {})); + + +/***/ }), + +/***/ "./src/enums/event-emitters/ObfuscationEvent.ts": +/*!******************************************************!*\ + !*** ./src/enums/event-emitters/ObfuscationEvent.ts ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscationEvent = void 0; +var ObfuscationEvent; +(function (ObfuscationEvent) { + ObfuscationEvent["AfterObfuscation"] = "afterObfuscation"; + ObfuscationEvent["BeforeObfuscation"] = "beforeObfuscation"; +})(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {})); + + +/***/ }), + +/***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts": +/*!**************************************************************************************!*\ + !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IdentifierNamesGenerator = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +exports.IdentifierNamesGenerator = tsenum_1.MakeEnum({ + DictionaryIdentifierNamesGenerator: 'dictionary', + HexadecimalIdentifierNamesGenerator: 'hexadecimal', + MangledIdentifierNamesGenerator: 'mangled' +}); + + +/***/ }), + +/***/ "./src/enums/logger/LoggingMessage.ts": +/*!********************************************!*\ + !*** ./src/enums/logger/LoggingMessage.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LoggingMessage = void 0; +var LoggingMessage; +(function (LoggingMessage) { + LoggingMessage["EmptySourceCode"] = "Empty source code. Obfuscation canceled..."; + LoggingMessage["ObfuscationCompleted"] = "Obfuscation completed. Total time: %s sec."; + LoggingMessage["ObfuscationStarted"] = "Obfuscation started..."; + LoggingMessage["RandomGeneratorSeed"] = "Random generator seed: %s..."; + LoggingMessage["CodeTransformationStage"] = "Code transformation stage: %s..."; + LoggingMessage["NodeTransformationStage"] = "AST transformation stage: %s..."; + LoggingMessage["Version"] = "Version: %s"; +})(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {})); + + +/***/ }), + +/***/ "./src/enums/logger/LoggingPrefix.ts": +/*!*******************************************!*\ + !*** ./src/enums/logger/LoggingPrefix.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LoggingPrefix = void 0; +var LoggingPrefix; +(function (LoggingPrefix) { + LoggingPrefix["Base"] = "[javascript-obfuscator]"; + LoggingPrefix["CLI"] = "[javascript-obfuscator-cli]"; +})(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/NodeTransformationStage.ts": +/*!****************************************************************!*\ + !*** ./src/enums/node-transformers/NodeTransformationStage.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeTransformationStage = void 0; +var NodeTransformationStage; +(function (NodeTransformationStage) { + NodeTransformationStage["Initializing"] = "Initializing"; + NodeTransformationStage["Preparing"] = "Preparing"; + NodeTransformationStage["DeadCodeInjection"] = "DeadCodeInjection"; + NodeTransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening"; + NodeTransformationStage["RenameProperties"] = "RenameProperties"; + NodeTransformationStage["Converting"] = "Converting"; + NodeTransformationStage["Obfuscating"] = "Obfuscating"; + NodeTransformationStage["Minification"] = "Minification"; + NodeTransformationStage["Finalizing"] = "Finalizing"; +})(NodeTransformationStage = exports.NodeTransformationStage || (exports.NodeTransformationStage = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/NodeTransformer.ts": +/*!********************************************************!*\ + !*** ./src/enums/node-transformers/NodeTransformer.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeTransformer = void 0; +var NodeTransformer; +(function (NodeTransformer) { + NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer"; + NodeTransformer["CommentsTransformer"] = "CommentsTransformer"; + NodeTransformer["CustomCodeHelpersTransformer"] = "CustomCodeHelpersTransformer"; + NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer"; + NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer"; + NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer"; + NodeTransformer["IfStatementSimplifyTransformer"] = "IfStatementSimplifyTransformer"; + NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer"; + NodeTransformer["LiteralTransformer"] = "LiteralTransformer"; + NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer"; + NodeTransformer["MetadataTransformer"] = "MetadataTransformer"; + NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer"; + NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer"; + NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer"; + NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer"; + NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer"; + NodeTransformer["RenamePropertiesTransformer"] = "RenamePropertiesTransformer"; + NodeTransformer["ScopeIdentifiersTransformer"] = "ScopeIdentifiersTransformer"; + NodeTransformer["SplitStringTransformer"] = "SplitStringTransformer"; + NodeTransformer["TemplateLiteralTransformer"] = "TemplateLiteralTransformer"; + NodeTransformer["VariableDeclarationsMergeTransformer"] = "VariableDeclarationsMergeTransformer"; + NodeTransformer["VariablePreserveTransformer"] = "VariablePreserveTransformer"; +})(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/VisitorDirection.ts": +/*!*********************************************************!*\ + !*** ./src/enums/node-transformers/VisitorDirection.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VisitorDirection = void 0; +var VisitorDirection; +(function (VisitorDirection) { + VisitorDirection["Enter"] = "enter"; + VisitorDirection["Leave"] = "leave"; +})(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts": +/*!****************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts ***! + \****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionExtractor = void 0; +var ObjectExpressionExtractor; +(function (ObjectExpressionExtractor) { + ObjectExpressionExtractor["BasePropertiesExtractor"] = "BasePropertiesExtractor"; + ObjectExpressionExtractor["ObjectExpressionToVariableDeclarationExtractor"] = "ObjectExpressionToVariableDeclarationExtractor"; +})(ObjectExpressionExtractor = exports.ObjectExpressionExtractor || (exports.ObjectExpressionExtractor = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts": +/*!***********************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts ***! + \***********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowReplacer = void 0; +var ControlFlowReplacer; +(function (ControlFlowReplacer) { + ControlFlowReplacer["BinaryExpressionControlFlowReplacer"] = "BinaryExpressionControlFlowReplacer"; + ControlFlowReplacer["CallExpressionControlFlowReplacer"] = "CallExpressionControlFlowReplacer"; + ControlFlowReplacer["LogicalExpressionControlFlowReplacer"] = "LogicalExpressionControlFlowReplacer"; + ControlFlowReplacer["StringLiteralControlFlowReplacer"] = "StringLiteralControlFlowReplacer"; +})(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts": +/*!*********************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IdentifierObfuscatingReplacer = void 0; +var IdentifierObfuscatingReplacer; +(function (IdentifierObfuscatingReplacer) { + IdentifierObfuscatingReplacer["BaseIdentifierObfuscatingReplacer"] = "BaseIdentifierObfuscatingReplacer"; +})(IdentifierObfuscatingReplacer = exports.IdentifierObfuscatingReplacer || (exports.IdentifierObfuscatingReplacer = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts": +/*!******************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts ***! + \******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LiteralObfuscatingReplacer = void 0; +var LiteralObfuscatingReplacer; +(function (LiteralObfuscatingReplacer) { + LiteralObfuscatingReplacer["BooleanLiteralObfuscatingReplacer"] = "BooleanLiteralObfuscatingReplacer"; + LiteralObfuscatingReplacer["NumberLiteralObfuscatingReplacer"] = "NumberLiteralObfuscatingReplacer"; + LiteralObfuscatingReplacer["StringLiteralObfuscatingReplacer"] = "StringLiteralObfuscatingReplacer"; +})(LiteralObfuscatingReplacer = exports.LiteralObfuscatingReplacer || (exports.LiteralObfuscatingReplacer = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts": +/*!***************************************************************************************************!*\ + !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscatingGuard = void 0; +var ObfuscatingGuard; +(function (ObfuscatingGuard) { + ObfuscatingGuard["BlackListObfuscatingGuard"] = "BlackListObfuscatingGuard"; + ObfuscatingGuard["ConditionalCommentObfuscatingGuard"] = "ConditionalCommentObfuscatingGuard"; + ObfuscatingGuard["ReservedStringObfuscatingGuard"] = "ReservedStringObfuscatingGuard"; +})(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {})); + + +/***/ }), + +/***/ "./src/enums/node/NodeType.ts": +/*!************************************!*\ + !*** ./src/enums/node/NodeType.ts ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeType = void 0; +var NodeType; +(function (NodeType) { + NodeType["ArrayExpression"] = "ArrayExpression"; + NodeType["ArrayPattern"] = "ArrayPattern"; + NodeType["ArrowFunctionExpression"] = "ArrowFunctionExpression"; + NodeType["AssignmentExpression"] = "AssignmentExpression"; + NodeType["AssignmentPattern"] = "AssignmentPattern"; + NodeType["AwaitExpression"] = "AwaitExpression"; + NodeType["BinaryExpression"] = "BinaryExpression"; + NodeType["BlockStatement"] = "BlockStatement"; + NodeType["BreakStatement"] = "BreakStatement"; + NodeType["CallExpression"] = "CallExpression"; + NodeType["CatchClause"] = "CatchClause"; + NodeType["ClassDeclaration"] = "ClassDeclaration"; + NodeType["ConditionalExpression"] = "ConditionalExpression"; + NodeType["ContinueStatement"] = "ContinueStatement"; + NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration"; + NodeType["ExpressionStatement"] = "ExpressionStatement"; + NodeType["ForStatement"] = "ForStatement"; + NodeType["ForInStatement"] = "ForInStatement"; + NodeType["ForOfStatement"] = "ForOfStatement"; + NodeType["FunctionDeclaration"] = "FunctionDeclaration"; + NodeType["FunctionExpression"] = "FunctionExpression"; + NodeType["Identifier"] = "Identifier"; + NodeType["IfStatement"] = "IfStatement"; + NodeType["ImportDeclaration"] = "ImportDeclaration"; + NodeType["ImportDefaultSpecifier"] = "ImportDefaultSpecifier"; + NodeType["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier"; + NodeType["ImportSpecifier"] = "ImportSpecifier"; + NodeType["LabeledStatement"] = "LabeledStatement"; + NodeType["Literal"] = "Literal"; + NodeType["LogicalExpression"] = "LogicalExpression"; + NodeType["MemberExpression"] = "MemberExpression"; + NodeType["MethodDefinition"] = "MethodDefinition"; + NodeType["ObjectExpression"] = "ObjectExpression"; + NodeType["ObjectPattern"] = "ObjectPattern"; + NodeType["Program"] = "Program"; + NodeType["Property"] = "Property"; + NodeType["RestElement"] = "RestElement"; + NodeType["ReturnStatement"] = "ReturnStatement"; + NodeType["SequenceExpression"] = "SequenceExpression"; + NodeType["Super"] = "Super"; + NodeType["SwitchCase"] = "SwitchCase"; + NodeType["SwitchStatement"] = "SwitchStatement"; + NodeType["TaggedTemplateExpression"] = "TaggedTemplateExpression"; + NodeType["TemplateLiteral"] = "TemplateLiteral"; + NodeType["TryStatement"] = "TryStatement"; + NodeType["UnaryExpression"] = "UnaryExpression"; + NodeType["UpdateExpression"] = "UpdateExpression"; + NodeType["VariableDeclaration"] = "VariableDeclaration"; + NodeType["VariableDeclarator"] = "VariableDeclarator"; + NodeType["WhileStatement"] = "WhileStatement"; +})(NodeType = exports.NodeType || (exports.NodeType = {})); + + +/***/ }), + +/***/ "./src/enums/source-map/SourceMapMode.ts": +/*!***********************************************!*\ + !*** ./src/enums/source-map/SourceMapMode.ts ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceMapMode = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +exports.SourceMapMode = tsenum_1.MakeEnum({ + Inline: 'inline', + Separate: 'separate' +}); + + +/***/ }), + +/***/ "./src/event-emitters/ObfuscationEventEmitter.ts": +/*!*******************************************************!*\ + !*** ./src/event-emitters/ObfuscationEventEmitter.ts ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscationEventEmitter = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const eventemitter3_1 = __importDefault(__webpack_require__(/*! eventemitter3 */ "eventemitter3")); +inversify_1.decorate(inversify_1.injectable(), eventemitter3_1.default); +let ObfuscationEventEmitter = class ObfuscationEventEmitter extends eventemitter3_1.default { +}; +ObfuscationEventEmitter = __decorate([ + inversify_1.injectable() +], ObfuscationEventEmitter); +exports.ObfuscationEventEmitter = ObfuscationEventEmitter; + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts": +/*!****************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractIdentifierNamesGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let AbstractIdentifierNamesGenerator = class AbstractIdentifierNamesGenerator { + constructor(randomGenerator, options) { + this.preservedNamesSet = new Set(); + this.lexicalScopesPreservedNamesMap = new Map(); + this.randomGenerator = randomGenerator; + this.options = options; + } + generate(lexicalScopeNode, nameLength) { + return NodeGuards_1.NodeGuards.isProgramNode(lexicalScopeNode) + ? this.generateForGlobalScope() + : this.generateForLexicalScope(lexicalScopeNode); + } + preserveName(name) { + this.preservedNamesSet.add(name); + } + preserveNameForLexicalScope(name, lexicalScopeNode) { + var _a; + const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScopeNode)) !== null && _a !== void 0 ? _a : new Set(); + preservedNamesForLexicalScopeSet.add(name); + this.lexicalScopesPreservedNamesMap.set(lexicalScopeNode, preservedNamesForLexicalScopeSet); + } + isValidIdentifierName(name) { + return this.notReservedName(name) && !this.preservedNamesSet.has(name); + } + isValidIdentifierNameInLexicalScopes(name, lexicalScopeNodes) { + var _a; + if (!this.isValidIdentifierName(name)) { + return false; + } + for (const lexicalScope of lexicalScopeNodes) { + const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScope)) !== null && _a !== void 0 ? _a : null; + if (!preservedNamesForLexicalScopeSet) { + continue; + } + if (preservedNamesForLexicalScopeSet.has(name)) { + return false; + } + } + return true; + } + notReservedName(name) { + return this.options.reservedNames.length + ? !this.options.reservedNames.some((reservedName) => new RegExp(reservedName, 'g').exec(name) !== null) + : true; + } +}; +AbstractIdentifierNamesGenerator = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], AbstractIdentifierNamesGenerator); +exports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts": +/*!******************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var DictionaryIdentifierNamesGenerator_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DictionaryIdentifierNamesGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = class DictionaryIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator { + constructor(randomGenerator, options, arrayUtils) { + super(randomGenerator, options); + this.arrayUtils = arrayUtils; + this.identifierNamesSet = new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary)); + this.identifiersIterator = this.identifierNamesSet.values(); + } + static incrementIdentifierName(identifierName) { + let newIdentifierName = ''; + let isSuccess = false; + for (const character of identifierName) { + if (!isSuccess && character === character.toUpperCase()) { + newIdentifierName += character.toLowerCase(); + } + else if (!isSuccess && character === character.toLowerCase()) { + newIdentifierName += character.toUpperCase(); + isSuccess = true; + } + else { + newIdentifierName += character; + } + } + if (isSuccess) { + return newIdentifierName; + } + return null; + } + generateNext() { + const identifierName = this.generateNewDictionaryName(); + this.preserveName(identifierName); + return identifierName; + } + generateForGlobalScope() { + const prefix = this.options.identifiersPrefix ? + `${this.options.identifiersPrefix}` + : ''; + const identifierName = this.generateNewDictionaryName(); + const identifierNameWithPrefix = `${prefix}${identifierName}`; + if (!this.isValidIdentifierName(identifierNameWithPrefix)) { + return this.generateForGlobalScope(); + } + this.preserveName(identifierNameWithPrefix); + return identifierNameWithPrefix; + } + generateForLexicalScope(lexicalScopeNode) { + const lexicalScopes = [ + lexicalScopeNode, + ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode) + ]; + const identifierName = this.generateNewDictionaryName(); + if (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)) { + return this.generateForLexicalScope(lexicalScopeNode); + } + this.preserveNameForLexicalScope(identifierName, lexicalScopeNode); + return identifierName; + } + generateNewDictionaryName() { + if (!this.identifierNamesSet.size) { + throw new Error('Too many identifiers in the code, add more words to identifiers dictionary'); + } + const iteratorResult = this.identifiersIterator.next(); + if (!iteratorResult.done) { + const identifierName = iteratorResult.value; + if (!this.isValidIdentifierName(identifierName)) { + return this.generateNewDictionaryName(); + } + return iteratorResult.value; + } + this.identifierNamesSet = new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet])); + this.identifiersIterator = this.identifierNamesSet.values(); + return this.generateNewDictionaryName(); + } + getInitialIdentifierNames(identifierNames) { + const formattedIdentifierNames = identifierNames + .filter(Boolean) + .map((identifierName) => identifierName.toLowerCase()); + return this.arrayUtils.shuffle(formattedIdentifierNames); + } + getIncrementedIdentifierNames(identifierNames) { + const formattedIdentifierNames = []; + for (const identifierName of identifierNames) { + const newIdentifierName = DictionaryIdentifierNamesGenerator_1 + .incrementIdentifierName(identifierName); + if (newIdentifierName) { + formattedIdentifierNames.push(newIdentifierName); + } + } + return this.arrayUtils.shuffle(formattedIdentifierNames); + } +}; +DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object, typeof (_c = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _c : Object]) +], DictionaryIdentifierNamesGenerator); +exports.DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts": +/*!*******************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var HexadecimalIdentifierNamesGenerator_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HexadecimalIdentifierNamesGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); +let HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = class HexadecimalIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + generateNext(nameLength) { + const rangeMinInteger = 10000; + const rangeMaxInteger = 99999999; + const randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger); + const hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger); + const prefixLength = Utils_1.Utils.hexadecimalPrefix.length; + const baseNameLength = (nameLength !== null && nameLength !== void 0 ? nameLength : HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength) + + prefixLength; + const baseIdentifierName = hexadecimalNumber.substr(0, baseNameLength); + const identifierName = `_${baseIdentifierName}`; + if (!this.isValidIdentifierName(identifierName)) { + return this.generateNext(nameLength); + } + this.preserveName(identifierName); + return identifierName; + } + generateForGlobalScope(nameLength) { + const identifierName = this.generateNext(nameLength); + return `${this.options.identifiersPrefix}${identifierName}`.replace('__', '_'); + } + generateForLexicalScope(lexicalScopeNode, nameLength) { + return this.generateNext(nameLength); + } +}; +HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6; +HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], HexadecimalIdentifierNamesGenerator); +exports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts": +/*!***************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var MangledIdentifierNamesGenerator_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MangledIdentifierNamesGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NumbersString_1 = __webpack_require__(/*! ../../constants/NumbersString */ "./src/constants/NumbersString.ts"); +const AlphabetString_1 = __webpack_require__(/*! ../../constants/AlphabetString */ "./src/constants/AlphabetString.ts"); +const AlphabetStringUppercase_1 = __webpack_require__(/*! ../../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter; + } + generateNext(nameLength) { + const identifierName = this.generateNewMangledName(this.previousMangledName); + this.previousMangledName = identifierName; + this.preserveName(identifierName); + return identifierName; + } + generateForGlobalScope(nameLength) { + const prefix = this.options.identifiersPrefix ? + `${this.options.identifiersPrefix}` + : ''; + const identifierName = this.generateNewMangledName(this.previousMangledName); + const identifierNameWithPrefix = `${prefix}${identifierName}`; + this.previousMangledName = identifierName; + if (!this.isValidIdentifierName(identifierNameWithPrefix)) { + return this.generateForGlobalScope(nameLength); + } + this.preserveName(identifierNameWithPrefix); + return identifierNameWithPrefix; + } + generateForLexicalScope(lexicalScopeNode, nameLength) { + const lexicalScopes = [ + lexicalScopeNode, + ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode) + ]; + const lastMangledNameForScope = this.getLastMangledNameForScopes(lexicalScopes); + let identifierName = lastMangledNameForScope; + do { + identifierName = this.generateNewMangledName(identifierName); + } while (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)); + MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName); + this.preserveNameForLexicalScope(identifierName, lexicalScopeNode); + return identifierName; + } + isValidIdentifierName(mangledName) { + return super.isValidIdentifierName(mangledName) + && !MangledIdentifierNamesGenerator_1.reservedNamesSet.has(mangledName); + } + generateNewMangledName(previousMangledName) { + const generateNewMangledName = (name) => { + const nameSequence = MangledIdentifierNamesGenerator_1.nameSequence; + const nameSequenceLength = nameSequence.length; + const nameLength = name.length; + const zeroSequence = (num) => { + return '0'.repeat(num); + }; + let index = nameLength - 1; + do { + const character = name[index]; + const indexInSequence = nameSequence.indexOf(character); + const lastNameSequenceIndex = nameSequenceLength - 1; + if (indexInSequence !== lastNameSequenceIndex) { + const previousNamePart = name.substring(0, index); + const nextCharacter = nameSequence[indexInSequence + 1]; + const zeroSequenceLength = nameLength - (index + 1); + const zeroSequenceCharacters = zeroSequence(zeroSequenceLength); + return previousNamePart + nextCharacter + zeroSequenceCharacters; + } + --index; + } while (index >= 0); + return `a${zeroSequence(nameLength)}`; + }; + let newMangledName = generateNewMangledName(previousMangledName); + if (!this.isValidIdentifierName(newMangledName)) { + newMangledName = this.generateNewMangledName(newMangledName); + } + return newMangledName; + } + getLastMangledNameForScopes(lexicalScopeNodes) { + var _a; + for (const lexicalScope of lexicalScopeNodes) { + const lastMangledName = (_a = MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap + .get(lexicalScope)) !== null && _a !== void 0 ? _a : null; + if (!lastMangledName) { + continue; + } + return lastMangledName; + } + return MangledIdentifierNamesGenerator_1.initMangledNameCharacter; + } +}; +MangledIdentifierNamesGenerator.initMangledNameCharacter = '9'; +MangledIdentifierNamesGenerator.lastMangledNameInScopeMap = new WeakMap(); +MangledIdentifierNamesGenerator.nameSequence = `${NumbersString_1.numbersString}${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`.split(''); +MangledIdentifierNamesGenerator.reservedNamesSet = new Set([ + 'byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto', + 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try', + 'var', 'void', 'with' +]); +MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], MangledIdentifierNamesGenerator); +exports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts": +/*!******************************************************************************!*\ + !*** ./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts ***! + \*********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts": +/*!*******************************************************************!*\ + !*** ./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts": +/*!***********************************************************************************************!*\ + !*** ./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts ***! + \***********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts": +/*!*********************************************************************!*\ + !*** ./src/interfaces/code-transformers/ICodeTransformersRunner.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts": +/*!**************************************************************************!*\ + !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts": +/*!***************************************************************************!*\ + !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/event-emitters/IObfuscationEventEmitter.ts": +/*!*******************************************************************!*\ + !*** ./src/interfaces/event-emitters/IObfuscationEventEmitter.ts ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/logger/ILogger.ts": +/*!******************************************!*\ + !*** ./src/interfaces/logger/ILogger.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/node-transformers/INodeTransformersRunner.ts": +/*!*********************************************************************!*\ + !*** ./src/interfaces/node-transformers/INodeTransformersRunner.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/node/IScopeIdentifiersTraverser.ts": +/*!***********************************************************!*\ + !*** ./src/interfaces/node/IScopeIdentifiersTraverser.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/options/IOptions.ts": +/*!********************************************!*\ + !*** ./src/interfaces/options/IOptions.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/options/IOptionsNormalizer.ts": +/*!******************************************************!*\ + !*** ./src/interfaces/options/IOptionsNormalizer.ts ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/source-code/ISourceCode.ts": +/*!***************************************************!*\ + !*** ./src/interfaces/source-code/ISourceCode.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts": +/*!*****************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/IArrayUtils.ts": +/*!*********************************************!*\ + !*** ./src/interfaces/utils/IArrayUtils.ts ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/ICryptUtils.ts": +/*!*********************************************!*\ + !*** ./src/interfaces/utils/ICryptUtils.ts ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/IEscapeSequenceEncoder.ts": +/*!********************************************************!*\ + !*** ./src/interfaces/utils/IEscapeSequenceEncoder.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/ILevelledTopologicalSorter.ts": +/*!************************************************************!*\ + !*** ./src/interfaces/utils/ILevelledTopologicalSorter.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/IRandomGenerator.ts": +/*!**************************************************!*\ + !*** ./src/interfaces/utils/IRandomGenerator.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts": +/*!****************************************************************!*\ + !*** ./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/logger/Logger.ts": +/*!******************************!*\ + !*** ./src/logger/Logger.ts ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var Logger_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Logger = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk")); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts"); +let Logger = Logger_1 = class Logger { + constructor(options) { + this.options = options; + } + static log(loggingLevelColor, loggingPrefix, loggingMessage, value) { + const processedMessage = loggingLevelColor(`\n${loggingPrefix} ${loggingMessage}`); + console.log(processedMessage, value !== null && value !== void 0 ? value : ''); + } + info(loggingMessage, value) { + if (!this.options.log) { + return; + } + Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + success(loggingMessage, value) { + if (!this.options.log) { + return; + } + Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + warn(loggingMessage, value) { + if (!this.options.log) { + return; + } + Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } +}; +Logger.colorInfo = chalk_1.default.cyan; +Logger.colorSuccess = chalk_1.default.green; +Logger.colorWarn = chalk_1.default.yellow; +Logger = Logger_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], Logger); +exports.Logger = Logger; + + +/***/ }), + +/***/ "./src/node-transformers/AbstractNodeTransformer.ts": +/*!**********************************************************!*\ + !*** ./src/node-transformers/AbstractNodeTransformer.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractNodeTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractNodeTransformer = class AbstractNodeTransformer { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } +}; +AbstractNodeTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], AbstractNodeTransformer); +exports.AbstractNodeTransformer = AbstractNodeTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts": +/*!********************************************************************!*\ + !*** ./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeTransformerNamesGroupsBuilder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const AbstractTransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../utils/AbstractTransformerNamesGroupsBuilder */ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts"); +let NodeTransformerNamesGroupsBuilder = class NodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder { +}; +NodeTransformerNamesGroupsBuilder = __decorate([ + inversify_1.injectable() +], NodeTransformerNamesGroupsBuilder); +exports.NodeTransformerNamesGroupsBuilder = NodeTransformerNamesGroupsBuilder; + + +/***/ }), + +/***/ "./src/node-transformers/NodeTransformersRunner.ts": +/*!*********************************************************!*\ + !*** ./src/node-transformers/NodeTransformersRunner.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeTransformersRunner = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TNodeTransformerFactory_1 = __webpack_require__(/*! ../types/container/node-transformers/TNodeTransformerFactory */ "./src/types/container/node-transformers/TNodeTransformerFactory.ts"); +const ITransformerNamesGroupsBuilder_1 = __webpack_require__(/*! ../interfaces/utils/ITransformerNamesGroupsBuilder */ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts"); +const VisitorDirection_1 = __webpack_require__(/*! ../enums/node-transformers/VisitorDirection */ "./src/enums/node-transformers/VisitorDirection.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +let NodeTransformersRunner = class NodeTransformersRunner { + constructor(nodeTransformerFactory, nodeTransformerNamesGroupsBuilder) { + this.nodeTransformerFactory = nodeTransformerFactory; + this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder; + } + transform(astTree, nodeTransformerNames, nodeTransformationStage) { + if (!nodeTransformerNames.length) { + return astTree; + } + const normalizedNodeTransformers = this.buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage); + const nodeTransformerNamesGroups = this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers); + for (const nodeTransformerNamesGroup of nodeTransformerNamesGroups) { + const enterVisitors = []; + const leaveVisitors = []; + for (const nodeTransformerName of nodeTransformerNamesGroup) { + const nodeTransformer = normalizedNodeTransformers[nodeTransformerName]; + const visitor = nodeTransformer.getVisitor(nodeTransformationStage); + if (!visitor) { + continue; + } + if (visitor.enter) { + enterVisitors.push({ enter: visitor.enter }); + } + if (visitor.leave) { + leaveVisitors.push({ leave: visitor.leave }); + } + } + if (!enterVisitors.length && !leaveVisitors.length) { + continue; + } + estraverse.replace(astTree, { + enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter), + leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave) + }); + } + return astTree; + } + buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage) { + return nodeTransformerNames + .reduce((acc, nodeTransformerName) => { + const nodeTransformer = this.nodeTransformerFactory(nodeTransformerName); + if (!nodeTransformer.getVisitor(nodeTransformationStage)) { + return acc; + } + return Object.assign(Object.assign({}, acc), { [nodeTransformerName]: nodeTransformer }); + }, {}); + } + mergeVisitorsForDirection(visitors, direction) { + const visitorsLength = visitors.length; + if (!visitorsLength) { + return (node, parentNode) => node; + } + return (node, parentNode) => { + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + for (let i = 0; i < visitorsLength; i++) { + const visitorFunction = visitors[i][direction]; + if (!visitorFunction) { + continue; + } + const visitorResult = visitorFunction(node, parentNode); + if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) { + continue; + } + node = visitorResult; + } + return node; + }; + } +}; +NodeTransformersRunner = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)), + __metadata("design:paramtypes", [typeof (_a = typeof TNodeTransformerFactory_1.TNodeTransformerFactory !== "undefined" && TNodeTransformerFactory_1.TNodeTransformerFactory) === "function" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== "undefined" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === "function" ? _b : Object]) +], NodeTransformersRunner); +exports.NodeTransformersRunner = NodeTransformersRunner; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var BlockStatementControlFlowTransformer_1, _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BlockStatementControlFlowTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = class BlockStatementControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) { + super(randomGenerator, options); + this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + this.arrayUtils = arrayUtils; + } + static isProhibitedStatementNode(node) { + const isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(node) + || NodeGuards_1.NodeGuards.isContinueStatementNode(node); + const isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(node) + && (node.kind === 'const' || node.kind === 'let'); + const isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(node); + return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) + || isBreakOrContinueStatement + || isVariableDeclarationWithLetOrConstKind + || isClassDeclaration; + } + static canTransformBlockStatementNode(blockStatementNode) { + let canTransform = true; + estraverse.traverse(blockStatementNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) { + return estraverse.VisitorOption.Skip; + } + if (BlockStatementControlFlowTransformer_1.isProhibitedStatementNode(node)) { + canTransform = false; + } + } + }); + if (blockStatementNode.body.length <= 4) { + canTransform = false; + } + return canTransform; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(blockStatementNode, parentNode) { + if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold || + !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) { + return blockStatementNode; + } + const blockStatementBody = blockStatementNode.body; + const originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length); + const shuffledKeys = this.arrayUtils.shuffle(originalKeys); + const originalKeysIndexesInShuffledArray = originalKeys.map((key) => shuffledKeys.indexOf(key)); + const blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode); + blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray); + const newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0]; + NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode); + return newBlockStatementNode; + } +}; +BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], BlockStatementControlFlowTransformer); +exports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts": +/*!*******************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var FunctionControlFlowTransformer_1, _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FunctionControlFlowTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const TControlFlowReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TControlFlowReplacerFactory */ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts"); +const TControlFlowStorageFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TControlFlowStorageFactory */ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const ControlFlowReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts"); +const NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = class FunctionControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) { + super(randomGenerator, options); + this.controlFlowData = new Map(); + this.visitedFunctionNodes = new Set(); + this.hostNodesWithControlFlowNode = new Set(); + this.controlFlowStorageFactory = controlFlowStorageFactory; + this.controlFlowReplacerFactory = controlFlowReplacerFactory; + this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening: + return { + leave: (node, parentNode) => { + if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || + NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || + NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(functionNode, parentNode) { + this.visitedFunctionNodes.add(functionNode); + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) { + return functionNode; + } + const hostNode = this.getHostNode(functionNode.body); + const controlFlowStorage = this.getControlFlowStorage(hostNode); + this.controlFlowData.set(hostNode, controlFlowStorage); + this.transformFunctionBody(functionNode.body, controlFlowStorage); + if (!controlFlowStorage.getLength()) { + return functionNode; + } + const controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode); + controlFlowStorageCustomNode.initialize(controlFlowStorage); + NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode()); + this.hostNodesWithControlFlowNode.add(hostNode); + NodeUtils_1.NodeUtils.parentizeAst(functionNode); + return functionNode; + } + getControlFlowStorage(hostNode) { + const controlFlowStorage = this.controlFlowStorageFactory(); + if (this.controlFlowData.has(hostNode)) { + if (this.hostNodesWithControlFlowNode.has(hostNode)) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(hostNode)) { + hostNode.consequent.shift(); + } + else { + hostNode.body.shift(); + } + } + const hostControlFlowStorage = this.controlFlowData.get(hostNode); + controlFlowStorage.mergeWith(hostControlFlowStorage, true); + } + return controlFlowStorage; + } + getHostNode(functionNodeBody) { + const blockScopesOfNode = NodeStatementUtils_1.NodeStatementUtils.getParentNodesWithStatements(functionNodeBody); + if (blockScopesOfNode.length === 1) { + return functionNodeBody; + } + else { + blockScopesOfNode.pop(); + } + if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) { + blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth); + } + if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) { + blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth; + } + return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode); + } + isVisitedFunctionNode(node) { + return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || + NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || + NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node); + } + transformFunctionBody(functionNodeBody, controlFlowStorage) { + estraverse.replace(functionNodeBody, { + enter: (node, parentNode) => { + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + if (this.isVisitedFunctionNode(node) || !parentNode) { + return estraverse.VisitorOption.Skip; + } + if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) { + return node; + } + if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold) { + return node; + } + const controlFlowReplacerName = FunctionControlFlowTransformer_1 + .controlFlowReplacersMap.get(node.type); + if (controlFlowReplacerName === undefined) { + return node; + } + return Object.assign(Object.assign({}, this.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage)), { parentNode }); + } + }); + } +}; +FunctionControlFlowTransformer.controlFlowReplacersMap = new Map([ + [NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer], + [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer], + [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer], + [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer] +]); +FunctionControlFlowTransformer.hostNodeSearchMinDepth = 0; +FunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2; +FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowStorageFactory_1.TControlFlowStorageFactory !== "undefined" && TControlFlowStorageFactory_1.TControlFlowStorageFactory) === "function" ? _a : Object, typeof (_b = typeof TControlFlowReplacerFactory_1.TControlFlowReplacerFactory !== "undefined" && TControlFlowReplacerFactory_1.TControlFlowReplacerFactory) === "function" ? _b : Object, typeof (_c = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _e : Object]) +], FunctionControlFlowTransformer); +exports.FunctionControlFlowTransformer = FunctionControlFlowTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var AbstractControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = class AbstractControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + this.replacerDataByControlFlowStorageId = new Map(); + this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + this.randomGenerator = randomGenerator; + this.options = options; + } + static getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) { + let storageKeysById; + if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) { + storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId); + } + else { + storageKeysById = new Map(); + } + return storageKeysById; + } + insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) { + const controlFlowStorageId = controlFlowStorage.getStorageId(); + const storageKeysById = AbstractControlFlowReplacer_1 + .getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId); + const storageKeysForCurrentId = storageKeysById.get(replacerId); + if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance && + storageKeysForCurrentId && + storageKeysForCurrentId.length) { + return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId); + } + const generateStorageKey = (length) => { + const key = this.randomGenerator.getRandomString(length); + if (controlFlowStorage.getStorage().has(key)) { + return generateStorageKey(length); + } + return key; + }; + const storageKey = generateStorageKey(5); + storageKeysById.set(replacerId, [storageKey]); + this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById); + controlFlowStorage.set(storageKey, customNode); + return storageKey; + } +}; +AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], AbstractControlFlowReplacer); +exports.AbstractControlFlowReplacer = AbstractControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts": +/*!***********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts ***! + \***********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var BinaryExpressionControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BinaryExpressionControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts"); +let BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = class BinaryExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + replace(binaryExpressionNode, parentNode, controlFlowStorage) { + const operator = binaryExpressionNode.operator; + const binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode); + binaryExpressionFunctionCustomNode.initialize(operator); + const storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, operator, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right); + } +}; +BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], BinaryExpressionControlFlowReplacer); +exports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts": +/*!*********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var CallExpressionControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CallExpressionControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = class CallExpressionControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + replace(callExpressionNode, parentNode, controlFlowStorage) { + const callee = callExpressionNode.callee; + if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + return callExpressionNode; + } + const replacerId = String(callExpressionNode.arguments.length); + const callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode); + const expressionArguments = callExpressionNode.arguments; + callExpressionFunctionCustomNode.initialize(expressionArguments); + const storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments); + } + getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) { + const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments); + const statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node'); + } + return statementNode.expression; + } +}; +CallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], CallExpressionControlFlowReplacer); +exports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts": +/*!*****************************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts ***! + \*****************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ExpressionWithOperatorControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ExpressionWithOperatorControlFlowReplacer = class ExpressionWithOperatorControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) { + const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression); + const statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node'); + } + return statementNode.expression; + } +}; +ExpressionWithOperatorControlFlowReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], ExpressionWithOperatorControlFlowReplacer); +exports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts": +/*!************************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts ***! + \************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var LogicalExpressionControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LogicalExpressionControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = class LogicalExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + replace(logicalExpressionNode, parentNode, controlFlowStorage) { + if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) { + return logicalExpressionNode; + } + const operator = logicalExpressionNode.operator; + const logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode); + logicalExpressionFunctionCustomNode.initialize(operator); + const storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, operator, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right); + } + checkForProhibitedExpressions(leftExpression, rightExpression) { + return [leftExpression, rightExpression].some((expressionNode) => { + let nodeForCheck; + if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) { + nodeForCheck = expressionNode; + } + else { + nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode); + } + return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) && + !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) && + !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) && + !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck); + }); + } +}; +LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], LogicalExpressionControlFlowReplacer); +exports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts": +/*!********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts ***! + \********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var StringLiteralControlFlowReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringLiteralControlFlowReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TControlFlowCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TControlFlowCustomNodeFactory */ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); +const AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = class StringLiteralControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer { + constructor(controlFlowCustomNodeFactory, randomGenerator, options) { + super(controlFlowCustomNodeFactory, randomGenerator, options); + } + replace(literalNode, parentNode, controlFlowStorage) { + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) { + return literalNode; + } + if (typeof literalNode.value !== 'string' || literalNode.value.length < 3) { + return literalNode; + } + const replacerId = String(literalNode.value); + const literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode); + literalFunctionCustomNode.initialize(literalNode.value); + const storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey); + } + getControlFlowStorageCallNode(controlFlowStorageId, storageKey) { + const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey); + const statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node'); + } + return statementNode.expression; + } +}; +StringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1; +StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== "undefined" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], StringLiteralControlFlowReplacer); +exports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MemberExpressionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let MemberExpressionTransformer = class MemberExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(memberExpressionNode, parentNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) { + if (memberExpressionNode.computed) { + return memberExpressionNode; + } + memberExpressionNode.computed = true; + memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name); + } + return memberExpressionNode; + } +}; +MemberExpressionTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], MemberExpressionTransformer); +exports.MemberExpressionTransformer = MemberExpressionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var MethodDefinitionTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MethodDefinitionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let MethodDefinitionTransformer = MethodDefinitionTransformer_1 = class MethodDefinitionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(methodDefinitionNode, parentNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key)) { + return this.replaceIdentifierKey(methodDefinitionNode, methodDefinitionNode.key); + } + if (NodeGuards_1.NodeGuards.isLiteralNode(methodDefinitionNode.key)) { + return this.replaceLiteralKey(methodDefinitionNode, methodDefinitionNode.key); + } + return methodDefinitionNode; + } + replaceIdentifierKey(methodDefinitionNode, keyNode) { + if (!MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.name) + && !methodDefinitionNode.computed) { + methodDefinitionNode.computed = true; + methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(keyNode.name); + } + return methodDefinitionNode; + } + replaceLiteralKey(methodDefinitionNode, keyNode) { + if (typeof keyNode.value === 'string' + && !MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.value) + && !methodDefinitionNode.computed) { + methodDefinitionNode.computed = true; + } + return methodDefinitionNode; + } +}; +MethodDefinitionTransformer.ignoredNames = ['constructor']; +MethodDefinitionTransformer = MethodDefinitionTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], MethodDefinitionTransformer); +exports.MethodDefinitionTransformer = MethodDefinitionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var ObjectExpressionKeysTransformer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionKeysTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TObjectExpressionExtractorFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TObjectExpressionExtractorFactory */ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts"); +let ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = class ObjectExpressionKeysTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(objectExpressionExtractorFactory, randomGenerator, options) { + super(randomGenerator, options); + this.objectExpressionExtractorFactory = objectExpressionExtractorFactory; + } + static isProhibitedHostStatement(objectExpressionNode, hostStatement) { + return ObjectExpressionKeysTransformer_1.isReferencedIdentifierName(objectExpressionNode, hostStatement) + || ObjectExpressionKeysTransformer_1.isProhibitedSequenceExpression(objectExpressionNode, hostStatement); + } + static isReferencedIdentifierName(objectExpressionNode, hostNode) { + const identifierNamesSet = []; + let isReferencedIdentifierName = false; + let isCurrentNode = false; + estraverse.traverse(hostNode, { + enter: (node) => { + if (node === objectExpressionNode) { + isCurrentNode = true; + } + if (!NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + return; + } + if (!isCurrentNode) { + identifierNamesSet.push(node.name); + return; + } + if (identifierNamesSet.includes(node.name)) { + isReferencedIdentifierName = true; + } + }, + leave: (node) => { + if (node === objectExpressionNode) { + isCurrentNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + return isReferencedIdentifierName; + } + static isProhibitedSequenceExpression(objectExpressionNode, hostNode) { + return NodeGuards_1.NodeGuards.isExpressionStatementNode(hostNode) + && NodeGuards_1.NodeGuards.isSequenceExpressionNode(hostNode.expression) + && hostNode.expression.expressions.some((expressionNode) => NodeGuards_1.NodeGuards.isCallExpressionNode(expressionNode) + && NodeGuards_1.NodeGuards.isSuperNode(expressionNode.callee)); + } + getVisitor(nodeTransformationStage) { + if (!this.options.transformObjectKeys) { + return null; + } + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + leave: (node, parentNode) => { + if (parentNode + && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(objectExpressionNode, parentNode) { + if (!objectExpressionNode.properties.length) { + return objectExpressionNode; + } + const hostStatement = NodeStatementUtils_1.NodeStatementUtils.getRootStatementOfNode(objectExpressionNode); + if (ObjectExpressionKeysTransformer_1.isProhibitedHostStatement(objectExpressionNode, hostStatement)) { + return objectExpressionNode; + } + return this.applyObjectExpressionKeysExtractorsRecursive(ObjectExpressionKeysTransformer_1.objectExpressionExtractorNames, objectExpressionNode, hostStatement); + } + applyObjectExpressionKeysExtractorsRecursive(objectExpressionExtractorNames, objectExpressionNode, hostStatement) { + const newObjectExpressionExtractorNames = [...objectExpressionExtractorNames]; + const objectExpressionExtractor = newObjectExpressionExtractorNames.shift(); + if (!objectExpressionExtractor) { + return objectExpressionNode; + } + const { nodeToReplace, objectExpressionHostStatement: newObjectExpressionHostStatement, objectExpressionNode: newObjectExpressionNode } = this.objectExpressionExtractorFactory(objectExpressionExtractor) + .extract(objectExpressionNode, hostStatement); + this.applyObjectExpressionKeysExtractorsRecursive(newObjectExpressionExtractorNames, newObjectExpressionNode, newObjectExpressionHostStatement); + return nodeToReplace; + } +}; +ObjectExpressionKeysTransformer.objectExpressionExtractorNames = [ + ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor, + ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor +]; +ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory !== "undefined" && TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], ObjectExpressionKeysTransformer); +exports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ObjectExpressionTransformer = class ObjectExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(objectExpressionNode, parentNode) { + objectExpressionNode.properties + .forEach((property) => { + if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) { + return; + } + if (!property.key) { + return; + } + if (property.computed) { + this.transformComputedProperty(property); + } + else { + this.transformBaseProperty(property); + } + }); + return objectExpressionNode; + } + transformComputedProperty(property) { + if (!NodeGuards_1.NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) { + return; + } + property.key = NodeFactory_1.NodeFactory.literalNode(property.key.value); + } + transformBaseProperty(property) { + if (property.shorthand) { + property.shorthand = false; + } + if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) { + return; + } + property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name); + } +}; +ObjectExpressionTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], ObjectExpressionTransformer); +exports.ObjectExpressionTransformer = ObjectExpressionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts": +/*!*********************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/SplitStringTransformer.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var SplitStringTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SplitStringTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let SplitStringTransformer = SplitStringTransformer_1 = class SplitStringTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, + NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer + ]; + } + static chunkString(string, chunkSize) { + const chunksCount = Math.ceil(string.length / chunkSize); + const chunks = []; + let nextChunkStartIndex = 0; + for (let chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) { + chunks[chunkIndex] = string.substr(nextChunkStartIndex, chunkSize); + } + return chunks; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (!this.options.splitStrings) { + return; + } + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return literalNode; + } + const firstPassChunksNode = this.transformLiteralNodeByChunkLength(literalNode, parentNode, SplitStringTransformer_1.firstPassChunkLength); + const secondPassChunksNode = estraverse.replace(firstPassChunksNode, { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformLiteralNodeByChunkLength(node, parentNode, this.options.splitStringsChunkLength); + } + } + }); + return secondPassChunksNode; + } + transformLiteralNodeByChunkLength(literalNode, parentNode, chunkLength) { + if (typeof literalNode.value !== 'string') { + return literalNode; + } + if (chunkLength >= literalNode.value.length) { + return literalNode; + } + const stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, chunkLength); + const binaryExpressionNode = this.transformStringChunksToBinaryExpressionNode(stringChunks); + NodeUtils_1.NodeUtils.parentizeAst(binaryExpressionNode); + NodeUtils_1.NodeUtils.parentizeNode(binaryExpressionNode, parentNode); + return binaryExpressionNode; + } + transformStringChunksToBinaryExpressionNode(chunks) { + const firstChunk = chunks.shift(); + const secondChunk = chunks.shift(); + if (!firstChunk || !secondChunk) { + throw new Error('First and second chunks values should not be empty'); + } + const initialBinaryExpressionNode = NodeFactory_1.NodeFactory.binaryExpressionNode('+', NodeFactory_1.NodeFactory.literalNode(firstChunk), NodeFactory_1.NodeFactory.literalNode(secondChunk)); + return chunks.reduce((binaryExpressionNode, chunk) => { + const chunkLiteralNode = NodeFactory_1.NodeFactory.literalNode(chunk); + return NodeFactory_1.NodeFactory.binaryExpressionNode('+', binaryExpressionNode, chunkLiteralNode); + }, initialBinaryExpressionNode); + } +}; +SplitStringTransformer.firstPassChunkLength = 1000; +SplitStringTransformer = SplitStringTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], SplitStringTransformer); +exports.SplitStringTransformer = SplitStringTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var TemplateLiteralTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TemplateLiteralTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let TemplateLiteralTransformer = TemplateLiteralTransformer_1 = class TemplateLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + static isLiteralNodeWithStringValue(node) { + return !!node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string'; + } + static isValidTemplateLiteralNode(node, parentNode) { + return NodeGuards_1.NodeGuards.isTemplateLiteralNode(node) && !NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && TemplateLiteralTransformer_1.isValidTemplateLiteralNode(node, parentNode)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(templateLiteralNode, parentNode) { + const templateLiteralExpressions = templateLiteralNode.expressions; + let nodes = []; + templateLiteralNode.quasis.forEach((templateElement) => { + nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked)); + const expression = templateLiteralExpressions.shift(); + if (!expression) { + return; + } + nodes.push(expression); + }); + nodes = nodes.filter((node) => { + return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === ''); + }); + if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) && + !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) { + nodes.unshift(NodeFactory_1.NodeFactory.literalNode('')); + } + let transformedNode; + if (nodes.length > 1) { + let root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift()); + nodes.forEach((node) => { + root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node); + }); + transformedNode = root; + } + else { + transformedNode = nodes[0]; + } + NodeUtils_1.NodeUtils.parentizeAst(transformedNode); + NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode); + return transformedNode; + } +}; +TemplateLiteralTransformer = TemplateLiteralTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], TemplateLiteralTransformer); +exports.TemplateLiteralTransformer = TemplateLiteralTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var BasePropertiesExtractor_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BasePropertiesExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BasePropertiesExtractor = BasePropertiesExtractor_1 = class BasePropertiesExtractor { + static getPropertyNodeKeyName(propertyNode) { + const propertyKeyNode = propertyNode.key; + if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode) + && (typeof propertyKeyNode.value === 'string' + || typeof propertyKeyNode.value === 'number')) { + return propertyKeyNode.value.toString(); + } + if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) { + return propertyKeyNode.name; + } + return null; + } + static isProhibitedPattern(node) { + return !node + || NodeGuards_1.NodeGuards.isObjectPatternNode(node) + || NodeGuards_1.NodeGuards.isArrayPatternNode(node) + || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) + || NodeGuards_1.NodeGuards.isRestElementNode(node); + } + extract(objectExpressionNode, hostStatement) { + const hostNode = objectExpressionNode.parentNode; + if (hostNode + && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(hostNode) + && NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id)) { + return this.transformObjectExpressionNode(objectExpressionNode, hostStatement, hostNode.id); + } + return { + nodeToReplace: objectExpressionNode, + objectExpressionHostStatement: hostStatement, + objectExpressionNode: objectExpressionNode + }; + } + transformObjectExpressionNode(objectExpressionNode, hostStatement, memberExpressionHostNode) { + const properties = objectExpressionNode.properties; + const [expressionStatements, removablePropertyIds] = this + .extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode); + const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement); + this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds); + NodeAppender_1.NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement); + NodeUtils_1.NodeUtils.parentizeAst(hostNodeWithStatements); + return { + nodeToReplace: objectExpressionNode, + objectExpressionHostStatement: hostStatement, + objectExpressionNode: objectExpressionNode + }; + } + extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode) { + const propertiesLength = properties.length; + const expressionStatements = []; + const removablePropertyIds = []; + for (let i = 0; i < propertiesLength; i++) { + const property = properties[i]; + if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) { + continue; + } + const propertyValue = property.value; + if (BasePropertiesExtractor_1.isProhibitedPattern(propertyValue)) { + continue; + } + const propertyKeyName = BasePropertiesExtractor_1.getPropertyNodeKeyName(property); + if (!propertyKeyName) { + continue; + } + const shouldCreateLiteralNode = !property.computed + || (property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key)); + const memberExpressionProperty = shouldCreateLiteralNode + ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName) + : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName); + const memberExpressionNode = NodeFactory_1.NodeFactory + .memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true); + const expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue)); + if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) { + this.transformObjectExpressionNode(property.value, hostStatement, memberExpressionNode); + } + expressionStatements.push(expressionStatementNode); + removablePropertyIds.push(i); + } + return [expressionStatements, removablePropertyIds]; + } + filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) { + objectExpressionNode.properties = objectExpressionNode.properties + .filter((property, index) => !removablePropertyIds.includes(index)); + } +}; +BasePropertiesExtractor = BasePropertiesExtractor_1 = __decorate([ + inversify_1.injectable() +], BasePropertiesExtractor); +exports.BasePropertiesExtractor = BasePropertiesExtractor; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts": +/*!**************************************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts ***! + \**************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObjectExpressionToVariableDeclarationExtractor = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TObjectExpressionKeysTransformerCustomNodeFactory_1 = __webpack_require__(/*! ../../../types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory */ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts"); +const ObjectExpressionKeysTransformerCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode */ "./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts"); +const NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let ObjectExpressionToVariableDeclarationExtractor = class ObjectExpressionToVariableDeclarationExtractor { + constructor(objectExpressionKeysTransformerCustomNodeFactory) { + this.objectExpressionKeysTransformerCustomNodeFactory = objectExpressionKeysTransformerCustomNodeFactory; + } + extract(objectExpressionNode, hostStatement) { + return this.transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement); + } + transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement) { + var _a; + const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement); + const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(hostNodeWithStatements) + ? hostNodeWithStatements + : (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(hostNodeWithStatements)) !== null && _a !== void 0 ? _a : null; + if (!lexicalScopeNode) { + throw new Error('Cannot find lexical scope node for the host statement node'); + } + const properties = objectExpressionNode.properties; + const newObjectExpressionHostStatement = this.getObjectExpressionHostNode(lexicalScopeNode, properties); + const statementsToInsert = [newObjectExpressionHostStatement]; + NodeAppender_1.NodeAppender.insertBefore(hostNodeWithStatements, statementsToInsert, hostStatement); + NodeUtils_1.NodeUtils.parentizeAst(newObjectExpressionHostStatement); + NodeUtils_1.NodeUtils.parentizeNode(newObjectExpressionHostStatement, hostNodeWithStatements); + const newObjectExpressionIdentifier = this.getObjectExpressionIdentifierNode(newObjectExpressionHostStatement); + const newObjectExpressionNode = this.getObjectExpressionNode(newObjectExpressionHostStatement); + return { + nodeToReplace: newObjectExpressionIdentifier, + objectExpressionHostStatement: newObjectExpressionHostStatement, + objectExpressionNode: newObjectExpressionNode + }; + } + getObjectExpressionHostNode(lexicalScopeNode, properties) { + const variableDeclarationHostNodeCustomNode = this.objectExpressionKeysTransformerCustomNodeFactory(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode); + variableDeclarationHostNodeCustomNode.initialize(lexicalScopeNode, properties); + const statementNode = variableDeclarationHostNodeCustomNode.getNode()[0]; + if (!statementNode + || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(statementNode)) { + throw new Error('`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node'); + } + return statementNode; + } + getObjectExpressionIdentifierNode(objectExpressionHostNode) { + const newObjectExpressionIdentifierNode = objectExpressionHostNode.declarations[0].id; + if (!NodeGuards_1.NodeGuards.isIdentifierNode(newObjectExpressionIdentifierNode)) { + throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property'); + } + return newObjectExpressionIdentifierNode; + } + getObjectExpressionNode(objectExpressionHostNode) { + var _a; + const newObjectExpressionNode = (_a = objectExpressionHostNode.declarations[0].init) !== null && _a !== void 0 ? _a : null; + if (!newObjectExpressionNode || !NodeGuards_1.NodeGuards.isObjectExpressionNode(newObjectExpressionNode)) { + throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property'); + } + return newObjectExpressionNode; + } +}; +ObjectExpressionToVariableDeclarationExtractor = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)), + __metadata("design:paramtypes", [typeof (_a = typeof TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory !== "undefined" && TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory) === "function" ? _a : Object]) +], ObjectExpressionToVariableDeclarationExtractor); +exports.ObjectExpressionToVariableDeclarationExtractor = ObjectExpressionToVariableDeclarationExtractor; + + +/***/ }), + +/***/ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts ***! + \************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var DeadCodeInjectionTransformer_1, _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DeadCodeInjectionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TDeadNodeInjectionCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory */ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const INodeTransformersRunner_1 = __webpack_require__(/*! ../../interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts"); +const DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = class DeadCodeInjectionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) { + super(randomGenerator, options); + this.deadCodeInjectionRootAstHostNodeSet = new Set(); + this.collectedBlockStatements = []; + this.collectedBlockStatementsTotalLength = 0; + this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory; + this.transformersRunner = transformersRunner; + } + static isProhibitedNodeInsideCollectedBlockStatement(targetNode) { + return NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode) + || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode) + || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode) + || NodeGuards_1.NodeGuards.isSuperNode(targetNode); + } + static isScopeHoistingFunctionDeclaration(targetNode) { + if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) { + return false; + } + const scopeNode = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(targetNode); + const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) + ? scopeNode.body + : scopeNode.consequent; + const indexInScope = scopeBody.indexOf(targetNode); + if (indexInScope === 0) { + return false; + } + const slicedBody = scopeBody.slice(0, indexInScope); + const hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody); + const functionDeclarationName = targetNode.id.name; + let isScopeHoistedFunctionDeclaration = false; + estraverse.traverse(hostBlockStatementNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) { + isScopeHoistedFunctionDeclaration = true; + return estraverse.VisitorOption.Break; + } + } + }); + return isScopeHoistedFunctionDeclaration; + } + static isValidCollectedBlockStatementNode(blockStatementNode) { + if (!blockStatementNode.body.length) { + return false; + } + let nestedBlockStatementsCount = 0; + let isValidBlockStatementNode = true; + estraverse.traverse(blockStatementNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + nestedBlockStatementsCount++; + } + if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount + || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node) + || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) { + isValidBlockStatementNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + return isValidBlockStatementNode; + } + static isValidWrappedBlockStatementNode(blockStatementNode) { + if (!blockStatementNode.body.length) { + return false; + } + let isValidBlockStatementNode = true; + estraverse.traverse(blockStatementNode, { + enter: (node) => { + if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) { + isValidBlockStatementNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + if (!isValidBlockStatementNode) { + return false; + } + const parentNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils + .getParentNodeWithStatements(blockStatementNode); + return parentNodeWithStatements.type !== NodeType_1.NodeType.Program; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.analyzeNode(node, parentNode); + return node; + } + }, + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + if (!this.deadCodeInjectionRootAstHostNodeSet.size) { + return null; + } + return { + enter: (node, parentNode) => { + if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) { + return this.restoreNode(node, parentNode); + } + } + }; + default: + return null; + } + } + analyzeNode(programNode, parentNode) { + estraverse.traverse(programNode, { + enter: (node) => { + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return; + } + const clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node); + if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) { + return; + } + const transformedBlockStatementNode = this.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode); + this.collectedBlockStatements.push(transformedBlockStatementNode); + } + }); + this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length; + } + transformNode(blockStatementNode, parentNode) { + const canBreakTraverse = !this.collectedBlockStatements.length + || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount; + if (canBreakTraverse) { + return estraverse.VisitorOption.Break; + } + if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold + || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) { + return blockStatementNode; + } + const minInteger = 0; + const maxInteger = this.collectedBlockStatements.length - 1; + const randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger); + const randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0]; + const isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode; + if (isDuplicateBlockStatementNodes) { + return blockStatementNode; + } + return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode); + } + restoreNode(deadCodeInjectionRootAstHostNode, parentNode) { + const hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0]; + if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) { + throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node'); + } + return hostNodeFirstStatement.body; + } + isDeadCodeInjectionRootAstHostNode(node) { + return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node); + } + makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) { + const hostNode = NodeFactory_1.NodeFactory.programNode([ + NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([], clonedBlockStatementNode)) + ]); + NodeUtils_1.NodeUtils.parentizeAst(hostNode); + NodeUtils_1.NodeUtils.parentizeNode(hostNode, hostNode); + this.transformersRunner.transform(hostNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, NodeTransformationStage_1.NodeTransformationStage.Obfuscating); + return clonedBlockStatementNode; + } + replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) { + const deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode) + ]); + this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode); + const blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode); + blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode); + const newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0]; + NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode); + return newBlockStatementNode; + } +}; +DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode'; +DeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4; +DeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5; +DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [ + NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, + NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer +]; +DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory !== "undefined" && TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory) === "function" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object]) +], DeadCodeInjectionTransformer); +exports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts": +/*!********************************************************************************!*\ + !*** ./src/node-transformers/initializing-transformers/CommentsTransformer.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var CommentsTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CommentsTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let CommentsTransformer = CommentsTransformer_1 = class CommentsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Initializing: + return { + leave: (node) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + return { + leave: (node) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.filterCommentsOnFinalizingTraverse(node); + } + } + }; + default: + return null; + } + } + transformNode(rootNode) { + rootNode = this.filterCommentsOnPrimaryTraverse(rootNode); + if (!rootNode.comments || !rootNode.comments.length) { + return rootNode; + } + const comments = rootNode.comments.reverse(); + if (comments.length === 0) { + return rootNode; + } + if (!rootNode.body.length) { + rootNode.leadingComments = comments; + return rootNode; + } + let isFirstNode = true; + estraverse.traverse(rootNode, { + enter: (node) => { + if (node === rootNode) { + return; + } + const commentIdx = comments.findIndex((comment) => comment.range && node.range && comment.range[0] < node.range[0]); + if (commentIdx >= 0) { + (isFirstNode ? rootNode : node).leadingComments = + comments.splice(commentIdx, comments.length - commentIdx).reverse(); + } + isFirstNode = false; + } + }); + if (comments.length > 0) { + rootNode.trailingComments = comments.reverse(); + } + return rootNode; + } + filterCommentsOnPrimaryTraverse(rootNode) { + var _a; + rootNode.comments = (_a = rootNode.comments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, true)); + return rootNode; + } + filterCommentsOnFinalizingTraverse(rootNode) { + estraverse.replace(rootNode, { + enter: (node) => { + var _a, _b; + if (node.leadingComments) { + node.leadingComments = (_a = node.leadingComments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, false)); + } + if (node.trailingComments) { + node.trailingComments = (_b = node.trailingComments) === null || _b === void 0 ? void 0 : _b.filter((comment) => this.filterComment(comment, false)); + } + return node; + } + }); + return rootNode; + } + filterComment(comment, keepConditionalComment) { + if (keepConditionalComment && ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard.isConditionalComment(comment)) { + return true; + } + return CommentsTransformer_1.preservedWords + .some((preservedWord) => comment.value.includes(preservedWord)); + } +}; +CommentsTransformer.preservedWords = [ + '@license', + '@preserve' +]; +CommentsTransformer = CommentsTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], CommentsTransformer); +exports.CommentsTransformer = CommentsTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts": +/*!*******************************************************************************************!*\ + !*** ./src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IfStatementSimplifyTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let IfStatementSimplifyTransformer = class IfStatementSimplifyTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.branchStatementsWithReturnStatementSet = new Set(); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Minification: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isIfStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(ifStatementNode, parentNode) { + const consequentExpression = this.convertBranchStatementToExpression(ifStatementNode.consequent); + if (!consequentExpression) { + return ifStatementNode; + } + const isConsequentWithReturnStatement = this.branchStatementsWithReturnStatementSet + .has(ifStatementNode.consequent); + if (!ifStatementNode.alternate) { + if (isConsequentWithReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, NodeFactory_1.NodeFactory.returnStatementNode(consequentExpression)); + } + return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode('&&', ifStatementNode.test, consequentExpression)); + } + const alternateExpression = this.convertBranchStatementToExpression(ifStatementNode.alternate); + if (!alternateExpression) { + return ifStatementNode; + } + const isAlternateWithReturnStatement = this.branchStatementsWithReturnStatementSet + .has(ifStatementNode.alternate); + if (isConsequentWithReturnStatement && isAlternateWithReturnStatement) { + return NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentExpression, alternateExpression)); + } + if (isConsequentWithReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, NodeFactory_1.NodeFactory.returnStatementNode(consequentExpression), NodeFactory_1.NodeFactory.expressionStatementNode(alternateExpression)); + } + if (isAlternateWithReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, NodeFactory_1.NodeFactory.expressionStatementNode(consequentExpression), NodeFactory_1.NodeFactory.returnStatementNode(alternateExpression)); + } + return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentExpression, alternateExpression)); + } + convertBranchStatementToExpression(statementNode) { + if (!this.isValidBranchStatementStatementForConvert(statementNode)) { + return null; + } + const unwrappedExpressions = statementNode + .body + .reduce((acc, statementBodyStatementNode) => { + if (NodeGuards_1.NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) { + return [ + ...acc, + statementBodyStatementNode.expression + ]; + } + if (NodeGuards_1.NodeGuards.isReturnStatementNode(statementBodyStatementNode) + && statementBodyStatementNode.argument) { + return [ + ...acc, + statementBodyStatementNode.argument + ]; + } + return acc; + }, []); + if (!unwrappedExpressions.length) { + return null; + } + return unwrappedExpressions.length === 1 + ? unwrappedExpressions[0] + : NodeFactory_1.NodeFactory.sequenceExpressionNode(unwrappedExpressions); + } + isValidBranchStatementStatementForConvert(statementNode) { + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(statementNode)) { + return false; + } + let isValidStatementNode = true; + for (const statement of statementNode.body) { + if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(statement) + && !NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) { + isValidStatementNode = false; + break; + } + else if (NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) { + this.branchStatementsWithReturnStatementSet.add(statementNode); + } + } + return isValidStatementNode; + } +}; +IfStatementSimplifyTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], IfStatementSimplifyTransformer); +exports.IfStatementSimplifyTransformer = IfStatementSimplifyTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/minification-transformers/VariableDeclarationsMergeTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/minification-transformers/VariableDeclarationsMergeTransformer.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VariableDeclarationsMergeTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeStatementUtils_1 = __webpack_require__(/*! ../../node/NodeStatementUtils */ "./src/node/NodeStatementUtils.ts"); +let VariableDeclarationsMergeTransformer = class VariableDeclarationsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Minification: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(variableDeclarationNode, parentNode) { + if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) { + return variableDeclarationNode; + } + const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(variableDeclarationNode); + if (!prevStatement || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(prevStatement)) { + return variableDeclarationNode; + } + if (variableDeclarationNode.kind !== prevStatement.kind) { + return variableDeclarationNode; + } + prevStatement.declarations.push(...variableDeclarationNode.declarations); + return estraverse.VisitorOption.Remove; + } +}; +VariableDeclarationsMergeTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], VariableDeclarationsMergeTransformer); +exports.VariableDeclarationsMergeTransformer = VariableDeclarationsMergeTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LabeledStatementTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TIdentifierObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let LabeledStatementTransformer = class LabeledStatementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierObfuscatingReplacerFactory, randomGenerator, options) { + super(randomGenerator, options); + this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Obfuscating: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(labeledStatementNode, parentNode) { + const lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode); + if (!lexicalScopeNode) { + return labeledStatementNode; + } + this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode); + this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode); + return labeledStatementNode; + } + storeLabeledStatementName(labeledStatementNode, lexicalScopeNode) { + this.identifierObfuscatingReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode); + } + replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) { + estraverse.replace(labeledStatementNode, { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) { + const newIdentifier = this.identifierObfuscatingReplacer + .replace(node, lexicalScopeNode); + node.name = newIdentifier.name; + } + } + }); + } +}; +LabeledStatementTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory !== "undefined" && TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], LabeledStatementTransformer); +exports.LabeledStatementTransformer = LabeledStatementTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts": +/*!******************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LiteralTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TLiteralObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TLiteralObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TLiteralObfuscatingReplacerFactory.ts"); +const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts"); +const LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let LiteralTransformer = class LiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(literalObfuscatingReplacerFactory, randomGenerator, options, stringArrayStorageAnalyzer, escapeSequenceEncoder) { + super(randomGenerator, options); + this.literalObfuscatingReplacerFactory = literalObfuscatingReplacerFactory; + this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer; + this.escapeSequenceEncoder = escapeSequenceEncoder; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Obfuscating: + return { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.analyzeNode(node); + } + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) { + return this.transformNode(node, parentNode); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.encodeLiteralNodeToEscapeSequence(node, parentNode); + } + } + }; + default: + return null; + } + } + analyzeNode(programNode) { + this.stringArrayStorageAnalyzer.analyze(programNode); + } + transformNode(literalNode, parentNode) { + if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return literalNode; + } + let newLiteralNode; + switch (typeof literalNode.value) { + case 'boolean': + newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(literalNode); + break; + case 'number': + case 'bigint': + newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(literalNode); + break; + case 'string': + newLiteralNode = this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(literalNode); + break; + default: + newLiteralNode = literalNode; + } + NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode); + return newLiteralNode; + } + encodeLiteralNodeToEscapeSequence(literalNode, parentNode) { + if (typeof literalNode.value !== 'string') { + return literalNode; + } + return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(literalNode.value, this.options.unicodeEscapeSequence)); + } +}; +LiteralTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), + __metadata("design:paramtypes", [typeof (_a = typeof TLiteralObfuscatingReplacerFactory_1.TLiteralObfuscatingReplacerFactory !== "undefined" && TLiteralObfuscatingReplacerFactory_1.TLiteralObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _d : Object, typeof (_e = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _e : Object]) +], LiteralTransformer); +exports.LiteralTransformer = LiteralTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/ScopeIdentifiersTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ScopeIdentifiersTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const TIdentifierObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts"); +const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +let ScopeIdentifiersTransformer = class ScopeIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierObfuscatingReplacerFactory, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.lexicalScopesWithObjectPatternWithoutDeclarationMap = new Map(); + this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + this.scopeIdentifiersTraverser = scopeIdentifiersTraverser; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Obfuscating: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverse(programNode, parentNode, (data) => { + const { isGlobalDeclaration, variable, variableLexicalScopeNode } = data; + if (!this.options.renameGlobals && isGlobalDeclaration) { + const isImportBindingOrCatchClauseIdentifier = variable.defs + .every((definition) => definition.type === 'ImportBinding' + || definition.type === 'CatchClause'); + if (!isImportBindingOrCatchClauseIdentifier) { + return; + } + } + this.transformScopeVariableIdentifiers(variable, variableLexicalScopeNode, isGlobalDeclaration); + }); + return programNode; + } + transformScopeVariableIdentifiers(variable, lexicalScopeNode, isGlobalDeclaration) { + var _a; + const firstIdentifier = (_a = variable.identifiers[0]) !== null && _a !== void 0 ? _a : null; + if (!firstIdentifier) { + return; + } + if (!this.isReplaceableIdentifierNode(firstIdentifier, lexicalScopeNode, variable)) { + return; + } + this.storeIdentifierName(firstIdentifier, lexicalScopeNode, isGlobalDeclaration); + this.replaceIdentifierName(firstIdentifier, lexicalScopeNode, variable); + } + storeIdentifierName(identifierNode, lexicalScopeNode, isGlobalDeclaration) { + if (isGlobalDeclaration) { + this.identifierObfuscatingReplacer.storeGlobalName(identifierNode, lexicalScopeNode); + } + else { + this.identifierObfuscatingReplacer.storeLocalName(identifierNode, lexicalScopeNode); + } + } + replaceIdentifierName(identifierNode, lexicalScopeNode, variable) { + const newIdentifier = this.identifierObfuscatingReplacer + .replace(identifierNode, lexicalScopeNode); + variable.identifiers.forEach((identifier) => { + identifier.name = newIdentifier.name; + }); + variable.references.forEach((reference) => { + reference.identifier.name = identifierNode.name; + }); + } + isReplaceableIdentifierNode(identifierNode, lexicalScopeNode, variable) { + const parentNode = identifierNode.parentNode; + return !!parentNode + && !NodeMetadata_1.NodeMetadata.isIgnoredNode(identifierNode) + && !this.isProhibitedPropertyNode(identifierNode, parentNode) + && !this.isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode) + && !this.isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode) + && !this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode) + && !this.isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode) + && !this.isProhibitedImportSpecifierNode(identifierNode, parentNode) + && !this.isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode) + && !NodeGuards_1.NodeGuards.isLabelIdentifierNode(identifierNode, parentNode); + } + isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isClassDeclarationNode(variable.scope.block) + && NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode) + && parentNode.id === identifierNode; + } + isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode) + && parentNode.id === identifierNode + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode); + } + isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(parentNode) + && parentNode.id === identifierNode + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode); + } + isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) + && parentNode.id === identifierNode + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode.parentNode) + && !!parentNode.parentNode.parentNode + && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode.parentNode); + } + isProhibitedImportSpecifierNode(identifierNode, parentNode) { + return NodeGuards_1.NodeGuards.isImportSpecifierNode(parentNode) + && parentNode.imported.name === parentNode.local.name; + } + isProhibitedPropertyNode(node, parentNode) { + const isProhibitedPropertyIdentifier = NodeGuards_1.NodeGuards.isPropertyNode(parentNode) + && !parentNode.computed + && parentNode.key === node; + const isProhibitedPropertyAssignmentPatternIdentifier = NodeGuards_1.NodeGuards.isAssignmentPatternNode(parentNode) + && parentNode.left === node + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isPropertyNode(parentNode.parentNode) + && parentNode.left === parentNode.parentNode.key; + return isProhibitedPropertyIdentifier + || isProhibitedPropertyAssignmentPatternIdentifier; + } + isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode) { + let isLexicalScopeHasObjectPatternWithoutDeclaration = this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(lexicalScopeNode); + if (isLexicalScopeHasObjectPatternWithoutDeclaration === false) { + return false; + } + const hasVarDefinitions = variable.defs.some((definition) => definition.kind === 'var'); + if (!hasVarDefinitions) { + return false; + } + let isProhibitedVariableDeclaration = false; + estraverse.traverse(lexicalScopeNode, { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isObjectPatternNode(node) + && parentNode + && NodeGuards_1.NodeGuards.isAssignmentExpressionNode(parentNode)) { + isLexicalScopeHasObjectPatternWithoutDeclaration = true; + const properties = node.properties; + for (const property of properties) { + if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) { + continue; + } + if (property.computed || !property.shorthand) { + continue; + } + if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) { + continue; + } + if (identifierNode.name !== property.key.name) { + continue; + } + isProhibitedVariableDeclaration = true; + return estraverse.VisitorOption.Break; + } + } + } + }); + this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(lexicalScopeNode, isLexicalScopeHasObjectPatternWithoutDeclaration !== null && isLexicalScopeHasObjectPatternWithoutDeclaration !== void 0 ? isLexicalScopeHasObjectPatternWithoutDeclaration : false); + return isProhibitedVariableDeclaration; + } +}; +ScopeIdentifiersTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory !== "undefined" && TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _d : Object]) +], ScopeIdentifiersTransformer); +exports.ScopeIdentifiersTransformer = ScopeIdentifiersTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +let AbstractObfuscatingReplacer = class AbstractObfuscatingReplacer { + constructor(options) { + this.options = options; + } +}; +AbstractObfuscatingReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], AbstractObfuscatingReplacer); +exports.AbstractObfuscatingReplacer = AbstractObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts": +/*!****************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts ***! + \****************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BaseIdentifierObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let BaseIdentifierObfuscatingReplacer = class BaseIdentifierObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer { + constructor(identifierNamesGeneratorFactory, options) { + super(options); + this.blockScopesMap = new Map(); + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + } + replace(identifierNode, lexicalScopeNode) { + let identifierName = identifierNode.name; + if (this.blockScopesMap.has(lexicalScopeNode)) { + const namesMap = this.blockScopesMap.get(lexicalScopeNode); + if (namesMap.has(identifierName)) { + identifierName = namesMap.get(identifierName); + } + } + return NodeFactory_1.NodeFactory.identifierNode(identifierName); + } + storeGlobalName(identifierNode, lexicalScopeNode) { + const identifierName = identifierNode.name; + if (this.isReservedName(identifierName)) { + return; + } + const newIdentifierName = this.identifierNamesGenerator.generateForGlobalScope(); + if (!this.blockScopesMap.has(lexicalScopeNode)) { + this.blockScopesMap.set(lexicalScopeNode, new Map()); + } + const namesMap = this.blockScopesMap.get(lexicalScopeNode); + namesMap.set(identifierName, newIdentifierName); + } + storeLocalName(identifierNode, lexicalScopeNode) { + const identifierName = identifierNode.name; + if (this.isReservedName(identifierName)) { + return; + } + const newIdentifierName = this.identifierNamesGenerator.generateForLexicalScope(lexicalScopeNode); + if (!this.blockScopesMap.has(lexicalScopeNode)) { + this.blockScopesMap.set(lexicalScopeNode, new Map()); + } + const namesMap = this.blockScopesMap.get(lexicalScopeNode); + namesMap.set(identifierName, newIdentifierName); + } + preserveName(identifierNode) { + this.identifierNamesGenerator.preserveName(identifierNode.name); + } + preserveNameForLexicalScope(identifierNode, lexicalScopeNode) { + this.identifierNamesGenerator.preserveNameForLexicalScope(identifierNode.name, lexicalScopeNode); + } + isReservedName(name) { + if (!this.options.reservedNames.length) { + return false; + } + return this.options.reservedNames + .some((reservedName) => { + return new RegExp(reservedName, 'g').exec(name) !== null; + }); + } +}; +BaseIdentifierObfuscatingReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], BaseIdentifierObfuscatingReplacer); +exports.BaseIdentifierObfuscatingReplacer = BaseIdentifierObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts": +/*!*************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts ***! + \*************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var BooleanLiteralObfuscatingReplacer_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BooleanLiteralObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = class BooleanLiteralObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer { + constructor(options) { + super(options); + } + static getTrueUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode()); + } + static getFalseUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode()); + } + replace(literalNode) { + const literalValue = literalNode.value; + if (typeof literalValue !== 'boolean') { + throw new Error('`BooleanLiteralObfuscatingReplacer` should accept only literals with `boolean` value'); + } + return literalValue + ? BooleanLiteralObfuscatingReplacer_1.getTrueUnaryExpressionNode() + : BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode(); + } +}; +BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], BooleanLiteralObfuscatingReplacer); +exports.BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts": +/*!************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts ***! + \************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NumberLiteralObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let NumberLiteralObfuscatingReplacer = class NumberLiteralObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer { + constructor(options) { + super(options); + this.numberLiteralCache = new Map(); + } + replace(literalNode) { + const literalValue = literalNode.value; + if (typeof literalValue !== 'number' && typeof literalValue !== 'bigint') { + throw new Error('`NumberLiteralObfuscatingReplacer` should accept only literals with `number` and `bigint` value'); + } + let rawValue; + if (this.numberLiteralCache.has(literalValue)) { + rawValue = this.numberLiteralCache.get(literalValue); + } + else { + if (NumberUtils_1.NumberUtils.isCeil(literalValue)) { + rawValue = NumberUtils_1.NumberUtils.toHex(literalValue); + } + else { + rawValue = String(literalValue); + } + this.numberLiteralCache.set(literalValue, rawValue); + } + return NodeFactory_1.NodeFactory.literalNode(literalValue, rawValue); + } +}; +NumberLiteralObfuscatingReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], NumberLiteralObfuscatingReplacer); +exports.NumberLiteralObfuscatingReplacer = NumberLiteralObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts": +/*!************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts ***! + \************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var StringLiteralObfuscatingReplacer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringLiteralObfuscatingReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../../../interfaces/storages/string-array-storage/IStringArrayStorage */ "./src/interfaces/storages/string-array-storage/IStringArrayStorage.ts"); +const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +const AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = class StringLiteralObfuscatingReplacer extends AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer { + constructor(stringArrayStorage, stringArrayStorageAnalyzer, options) { + super(options); + this.nodesCache = new Map(); + this.stringArrayStorage = stringArrayStorage; + this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer; + } + static getHexadecimalLiteralNode(hexadecimalIndex) { + const hexadecimalLiteralNode = NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex); + NodeMetadata_1.NodeMetadata.set(hexadecimalLiteralNode, { replacedLiteral: true }); + return hexadecimalLiteralNode; + } + static getRc4KeyLiteralNode(literalValue) { + const rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(literalValue); + NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true }); + return rc4KeyLiteralNode; + } + initialize() { + if (this.options.shuffleStringArray) { + this.stringArrayStorage.shuffleStorage(); + } + if (this.options.rotateStringArray) { + this.stringArrayStorage.rotateStorage(); + } + } + replace(literalNode) { + const literalValue = literalNode.value; + if (typeof literalValue !== 'string') { + throw new Error('`StringLiteralObfuscatingReplacer` should accept only literals with `string` value'); + } + const stringArrayStorageItemData = this.stringArrayStorageAnalyzer + .getItemDataForLiteralNode(literalNode); + const cacheKey = `${literalValue}-${Boolean(stringArrayStorageItemData)}`; + const useCachedValue = this.nodesCache.has(cacheKey) && this.options.stringArrayEncoding !== StringArrayEncoding_1.StringArrayEncoding.Rc4; + if (useCachedValue) { + return this.nodesCache.get(cacheKey); + } + const resultNode = stringArrayStorageItemData + ? this.replaceWithStringArrayCallNode(stringArrayStorageItemData) + : this.replaceWithLiteralNode(literalValue); + this.nodesCache.set(cacheKey, resultNode); + return resultNode; + } + replaceWithLiteralNode(value) { + return NodeFactory_1.NodeFactory.literalNode(value); + } + replaceWithStringArrayCallNode(stringArrayStorageItemData) { + const { index, decodeKey } = stringArrayStorageItemData; + const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index); + const callExpressionArgs = [ + StringLiteralObfuscatingReplacer_1.getHexadecimalLiteralNode(hexadecimalIndex) + ]; + if (decodeKey) { + callExpressionArgs.push(StringLiteralObfuscatingReplacer_1.getRc4KeyLiteralNode(decodeKey)); + } + const stringArrayIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.stringArrayStorage.getStorageCallsWrapperName()); + return NodeFactory_1.NodeFactory.callExpressionNode(stringArrayIdentifierNode, callExpressionArgs); + } +}; +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], StringLiteralObfuscatingReplacer.prototype, "initialize", null); +StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _a : Object, typeof (_b = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], StringLiteralObfuscatingReplacer); +exports.StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelpersTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperGroupStorage_1 = __webpack_require__(/*! ../../types/storages/TCustomCodeHelperGroupStorage */ "./src/types/storages/TCustomCodeHelperGroupStorage.ts"); +const IObfuscationEventEmitter_1 = __webpack_require__(/*! ../../interfaces/event-emitters/IObfuscationEventEmitter */ "./src/interfaces/event-emitters/IObfuscationEventEmitter.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ICallsGraphAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts"); +const IPrevailingKindOfVariablesAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer */ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let CustomCodeHelpersTransformer = class CustomCodeHelpersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(callsGraphAnalyzer, prevailingKindOfVariablesAnalyzer, obfuscationEventEmitter, customCodeHelperGroupStorage, randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer + ]; + this.callsGraphData = []; + this.callsGraphAnalyzer = callsGraphAnalyzer; + this.prevailingKindOfVariablesAnalyzer = prevailingKindOfVariablesAnalyzer; + this.obfuscationEventEmitter = obfuscationEventEmitter; + this.customCodeHelperGroupStorage = customCodeHelperGroupStorage; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + leave: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.analyzeNode(node, parentNode); + this.appendCustomNodesBeforeObfuscation(node, parentNode); + return this.transformNode(node, parentNode); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + return { + leave: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.appendCustomNodesAfterObfuscation(node, parentNode); + } + } + }; + default: + return null; + } + } + analyzeNode(node, parentNode) { + this.callsGraphData = this.callsGraphAnalyzer.analyze(node); + this.prevailingKindOfVariablesAnalyzer.analyze(node); + } + transformNode(node, parentNode) { + return node; + } + appendCustomNodesBeforeObfuscation(node, parentNode) { + this.customCodeHelperGroupStorage + .getStorage() + .forEach((customCodeHelperGroup) => { + customCodeHelperGroup.initialize(); + this.obfuscationEventEmitter.once(customCodeHelperGroup.getAppendEvent(), customCodeHelperGroup.appendNodes.bind(customCodeHelperGroup)); + }); + this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.callsGraphData); + } + appendCustomNodesAfterObfuscation(node, parentNode) { + this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.callsGraphData); + } +}; +CustomCodeHelpersTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof ICallsGraphAnalyzer_1.ICallsGraphAnalyzer !== "undefined" && ICallsGraphAnalyzer_1.ICallsGraphAnalyzer) === "function" ? _a : Object, typeof (_b = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== "undefined" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === "function" ? _b : Object, typeof (_c = typeof IObfuscationEventEmitter_1.IObfuscationEventEmitter !== "undefined" && IObfuscationEventEmitter_1.IObfuscationEventEmitter) === "function" ? _c : Object, typeof (_d = typeof TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage !== "undefined" && TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage) === "function" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _f : Object]) +], CustomCodeHelpersTransformer); +exports.CustomCodeHelpersTransformer = CustomCodeHelpersTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var EvalCallExpressionTransformer_1, _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EvalCallExpressionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const js_string_escape_1 = __importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape")); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = class EvalCallExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer + ]; + this.evalRootAstHostNodeSet = new Set(); + } + static extractEvalStringFromCallExpressionArgument(node) { + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return EvalCallExpressionTransformer_1 + .extractEvalStringFromLiteralNode(node); + } + if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) { + return EvalCallExpressionTransformer_1 + .extractEvalStringFromTemplateLiteralNode(node); + } + return null; + } + static extractEvalStringFromLiteralNode(node) { + return typeof node.value === 'string' ? node.value : null; + } + static extractEvalStringFromTemplateLiteralNode(node) { + const quasis = node.quasis; + const allowedQuasisLength = 1; + if (quasis.length !== allowedQuasisLength || node.expressions.length) { + return null; + } + return quasis[0].value.cooked; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + enter: (node, parentNode) => { + if (parentNode + && NodeGuards_1.NodeGuards.isCallExpressionNode(node) + && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee) + && node.callee.name === 'eval') { + return this.transformNode(node, parentNode); + } + } + }; + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + if (!this.evalRootAstHostNodeSet.size) { + return null; + } + return { + leave: (node, parentNode) => { + if (parentNode && this.isEvalRootAstHostNode(node)) { + return this.restoreNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(callExpressionNode, parentNode) { + const callExpressionFirstArgument = callExpressionNode.arguments[0]; + if (!callExpressionFirstArgument) { + return callExpressionNode; + } + const evalString = EvalCallExpressionTransformer_1 + .extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument); + if (!evalString) { + return callExpressionNode; + } + let ast; + try { + ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString); + } + catch (_a) { + return callExpressionNode; + } + const evalRootAstHostNode = NodeFactory_1.NodeFactory + .functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast)); + NodeUtils_1.NodeUtils.parentizeAst(evalRootAstHostNode); + NodeUtils_1.NodeUtils.parentizeNode(evalRootAstHostNode, parentNode); + this.evalRootAstHostNodeSet.add(evalRootAstHostNode); + return evalRootAstHostNode; + } + restoreNode(evalRootAstHostNode, parentNode) { + const targetAst = evalRootAstHostNode.body.body; + const obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst); + return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [ + NodeFactory_1.NodeFactory.literalNode(js_string_escape_1.default(obfuscatedCode)) + ]); + } + isEvalRootAstHostNode(node) { + return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node); + } +}; +EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], EvalCallExpressionTransformer); +exports.EvalCallExpressionTransformer = EvalCallExpressionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts": +/*!*****************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/MetadataTransformer.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MetadataTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +let MetadataTransformer = class MetadataTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer + ]; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + enter: (node, parentNode) => { + return this.transformNode(node, parentNode); + } + }; + default: + return null; + } + } + transformNode(node, parentNode) { + NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false }); + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + NodeMetadata_1.NodeMetadata.set(node, { replacedLiteral: false }); + } + return node; + } +}; +MetadataTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], MetadataTransformer); +exports.MetadataTransformer = MetadataTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var ObfuscatingGuardsTransformer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscatingGuardsTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TObfuscatingGuardFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TObfuscatingGuardFactory */ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ObfuscatingGuard_1 = __webpack_require__(/*! ../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +let ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = class ObfuscatingGuardsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(obfuscatingGuardFactory, randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.VariablePreserveTransformer + ]; + this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + enter: (node, parentNode) => { + return this.transformNode(node, parentNode); + } + }; + default: + return null; + } + } + transformNode(node, parentNode) { + const obfuscationAllowed = this.obfuscatingGuards + .every((nodeGuard) => nodeGuard.check(node)); + NodeMetadata_1.NodeMetadata.set(node, { + ignoredNode: !(NodeGuards_1.NodeGuards.isProgramNode(node) || obfuscationAllowed) + }); + return node; + } +}; +ObfuscatingGuardsTransformer.obfuscatingGuardsList = [ + ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard +]; +ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TObfuscatingGuardFactory_1.TObfuscatingGuardFactory !== "undefined" && TObfuscatingGuardFactory_1.TObfuscatingGuardFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], ObfuscatingGuardsTransformer); +exports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts": +/*!************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/ParentificationTransformer.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ParentificationTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ParentificationTransformer = class ParentificationTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + enter: (node, parentNode) => { + return this.transformNode(node, parentNode); + } + }; + default: + return null; + } + } + transformNode(node, parentNode) { + return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode); + } +}; +ParentificationTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], ParentificationTransformer); +exports.ParentificationTransformer = ParentificationTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c, _d; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.VariablePreserveTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const TIdentifierObfuscatingReplacerFactory_1 = __webpack_require__(/*! ../../types/container/node-transformers/TIdentifierObfuscatingReplacerFactory */ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const IScopeIdentifiersTraverser_1 = __webpack_require__(/*! ../../interfaces/node/IScopeIdentifiersTraverser */ "./src/interfaces/node/IScopeIdentifiersTraverser.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let VariablePreserveTransformer = class VariablePreserveTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierObfuscatingReplacerFactory, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer + ]; + this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + this.scopeIdentifiersTraverser = scopeIdentifiersTraverser; + this.preserveScopeVariableIdentifiers = this.preserveScopeVariableIdentifiers.bind(this); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + case NodeTransformationStage_1.NodeTransformationStage.Converting: + case NodeTransformationStage_1.NodeTransformationStage.Obfuscating: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverse(programNode, parentNode, this.preserveScopeVariableIdentifiers); + return programNode; + } + preserveScopeVariableIdentifiers(data) { + const { isGlobalDeclaration, isBubblingDeclaration, variable, variableScope } = data; + for (const identifier of variable.identifiers) { + if (isGlobalDeclaration || isBubblingDeclaration) { + this.preserveIdentifierNameForRootLexicalScope(identifier); + } + else { + this.preserveIdentifierNameForLexicalScope(identifier, variableScope); + } + } + } + preserveIdentifierNameForRootLexicalScope(identifierNode) { + this.identifierObfuscatingReplacer.preserveName(identifierNode); + } + preserveIdentifierNameForLexicalScope(identifierNode, variableScope) { + const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(variableScope.block) + ? variableScope.block + : null; + if (!lexicalScopeNode) { + return; + } + this.identifierObfuscatingReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode); + } +}; +VariablePreserveTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory !== "undefined" && TIdentifierObfuscatingReplacerFactory_1.TIdentifierObfuscatingReplacerFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== "undefined" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === "function" ? _d : Object]) +], VariablePreserveTransformer); +exports.VariablePreserveTransformer = VariablePreserveTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts": +/*!******************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts ***! + \******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var BlackListObfuscatingGuard_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BlackListObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = class BlackListObfuscatingGuard { + constructor() { + this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length; + } + check(node) { + for (let i = 0; i < this.blackListGuardsLength; i++) { + if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) { + return false; + } + } + return true; + } +}; +BlackListObfuscatingGuard.blackListGuards = [ + NodeGuards_1.NodeGuards.isUseStrictOperator +]; +BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = __decorate([ + inversify_1.injectable(), + __metadata("design:paramtypes", []) +], BlackListObfuscatingGuard); +exports.BlackListObfuscatingGuard = BlackListObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var ConditionalCommentObfuscatingGuard_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ConditionalCommentObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = class ConditionalCommentObfuscatingGuard { + constructor() { + this.obfuscationAllowed = true; + } + static isConditionalComment(comment) { + return ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value) || + ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value); + } + check(node) { + if (!NodeGuards_1.NodeGuards.isNodeWithComments(node)) { + return this.obfuscationAllowed; + } + const leadingComments = node.leadingComments; + if (leadingComments) { + this.obfuscationAllowed = this.checkComments(leadingComments); + } + return this.obfuscationAllowed; + } + checkComments(comments) { + const commentsLength = comments.length; + let obfuscationAllowed = this.obfuscationAllowed; + for (let i = 0; i < commentsLength; i++) { + const comment = comments[i]; + if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) { + obfuscationAllowed = true; + continue; + } + if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) { + obfuscationAllowed = false; + } + } + return obfuscationAllowed; + } +}; +ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable'); +ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable'); +ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = __decorate([ + inversify_1.injectable() +], ConditionalCommentObfuscatingGuard); +exports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts": +/*!***********************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts ***! + \***********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ReservedStringObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ReservedStringObfuscatingGuard = class ReservedStringObfuscatingGuard { + constructor(options) { + this.options = options; + } + check(node) { + if (this.options.reservedStrings.length + && NodeGuards_1.NodeGuards.isLiteralNode(node) + && typeof node.value === 'string') { + return !this.isReservedString(node.value); + } + return true; + } + isReservedString(value) { + return this.options.reservedStrings + .some((reservedString) => { + return new RegExp(reservedString, 'g').exec(value) !== null; + }); + } +}; +ReservedStringObfuscatingGuard = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _a : Object]) +], ReservedStringObfuscatingGuard); +exports.ReservedStringObfuscatingGuard = ReservedStringObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts ***! + \*********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var RenamePropertiesTransformer_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RenamePropertiesTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IRenamePropertiesReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer */ "./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let RenamePropertiesTransformer = RenamePropertiesTransformer_1 = class RenamePropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(renamePropertiesReplacer, randomGenerator, options) { + super(randomGenerator, options); + this.renamePropertiesReplacer = renamePropertiesReplacer; + } + static isValidPropertyNode(propertyNode, propertyKeyNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) && propertyNode.computed) { + return false; + } + return NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) || NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.RenameProperties: + return { + enter: (node, parentNode) => { + if (parentNode) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(node, parentNode) { + if (NodeGuards_1.NodeGuards.isPropertyNode(node)) { + return this.transformPropertyNode(node); + } + if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) { + return this.transformMemberExpressionNode(node); + } + if (NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) { + return this.transformMethodDefinitionNode(node); + } + return node; + } + transformPropertyNode(propertyNode) { + const propertyKeyNode = propertyNode.key; + if (RenamePropertiesTransformer_1.isValidPropertyNode(propertyNode, propertyKeyNode)) { + propertyNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode); + propertyNode.shorthand = false; + } + return propertyNode; + } + transformMemberExpressionNode(memberExpressionNode) { + const propertyKeyNode = memberExpressionNode.property; + if (RenamePropertiesTransformer_1.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) { + memberExpressionNode.property = this.renamePropertiesReplacer.replace(propertyKeyNode); + } + return memberExpressionNode; + } + transformMethodDefinitionNode(methodDefinitionNode) { + const propertyKeyNode = methodDefinitionNode.key; + if (RenamePropertiesTransformer_1.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) { + methodDefinitionNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode); + } + return methodDefinitionNode; + } +}; +RenamePropertiesTransformer = RenamePropertiesTransformer_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRenamePropertiesReplacer_1.IRenamePropertiesReplacer !== "undefined" && IRenamePropertiesReplacer_1.IRenamePropertiesReplacer) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], RenamePropertiesTransformer); +exports.RenamePropertiesTransformer = RenamePropertiesTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts": +/*!***************************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RenamePropertiesReplacer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ReservedDomProperties_json_1 = __importDefault(__webpack_require__(/*! ./ReservedDomProperties.json */ "./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json")); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let RenamePropertiesReplacer = class RenamePropertiesReplacer { + constructor(identifierNamesGeneratorFactory, options) { + this.propertyNamesMap = new Map(); + this.reservedDomPropertiesList = new Set(ReservedDomProperties_json_1.default); + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.options = options; + } + replace(node) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + return NodeFactory_1.NodeFactory.identifierNode(this.replacePropertyName(node.name)); + } + if (NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string') { + return NodeFactory_1.NodeFactory.literalNode(this.replacePropertyName(node.value)); + } + return node; + } + replacePropertyName(propertyName) { + var _a; + if (this.isReservedName(propertyName)) { + return propertyName; + } + let renamedPropertyName = (_a = this.propertyNamesMap.get(propertyName)) !== null && _a !== void 0 ? _a : null; + if (renamedPropertyName !== null) { + return renamedPropertyName; + } + renamedPropertyName = this.identifierNamesGenerator.generateNext(); + this.propertyNamesMap.set(propertyName, renamedPropertyName); + return renamedPropertyName; + } + isReservedName(name) { + return this.isReservedOptionName(name) + || this.isReservedDomPropertyName(name); + } + isReservedOptionName(name) { + if (!this.options.reservedNames.length) { + return false; + } + return this.options.reservedNames + .some((reservedName) => { + return new RegExp(reservedName, 'g').exec(name) !== null; + }); + } + isReservedDomPropertyName(name) { + return this.reservedDomPropertiesList.has(name); + } +}; +RenamePropertiesReplacer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], RenamePropertiesReplacer); +exports.RenamePropertiesReplacer = RenamePropertiesReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json": +/*!**************************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json ***! + \**************************************************************************************************/ +/*! exports provided: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, default */ +/***/ (function(module) { + +module.exports = JSON.parse("[\"$&\",\"$'\",\"$*\",\"$+\",\"$1\",\"$2\",\"$3\",\"$4\",\"$5\",\"$6\",\"$7\",\"$8\",\"$9\",\"$_\",\"$`\",\"$input\",\"@@iterator\",\"ABORT_ERR\",\"ACTIVE\",\"ACTIVE_ATTRIBUTES\",\"ACTIVE_TEXTURE\",\"ACTIVE_UNIFORMS\",\"ADDITION\",\"ALIASED_LINE_WIDTH_RANGE\",\"ALIASED_POINT_SIZE_RANGE\",\"ALLOW_KEYBOARD_INPUT\",\"ALLPASS\",\"ALPHA\",\"ALPHA_BITS\",\"ALT_MASK\",\"ALWAYS\",\"ANY_TYPE\",\"ANY_UNORDERED_NODE_TYPE\",\"ARRAY_BUFFER\",\"ARRAY_BUFFER_BINDING\",\"ATTACHED_SHADERS\",\"ATTRIBUTE_NODE\",\"AT_TARGET\",\"AddSearchProvider\",\"AnalyserNode\",\"AnimationEvent\",\"AnonXMLHttpRequest\",\"ApplicationCache\",\"ApplicationCacheErrorEvent\",\"Array\",\"ArrayBuffer\",\"Attr\",\"Audio\",\"AudioBuffer\",\"AudioBufferSourceNode\",\"AudioContext\",\"AudioDestinationNode\",\"AudioListener\",\"AudioNode\",\"AudioParam\",\"AudioProcessingEvent\",\"AudioStreamTrack\",\"AutocompleteErrorEvent\",\"BACK\",\"BAD_BOUNDARYPOINTS_ERR\",\"BANDPASS\",\"BLEND\",\"BLEND_COLOR\",\"BLEND_DST_ALPHA\",\"BLEND_DST_RGB\",\"BLEND_EQUATION\",\"BLEND_EQUATION_ALPHA\",\"BLEND_EQUATION_RGB\",\"BLEND_SRC_ALPHA\",\"BLEND_SRC_RGB\",\"BLUE_BITS\",\"BLUR\",\"BOOL\",\"BOOLEAN_TYPE\",\"BOOL_VEC2\",\"BOOL_VEC3\",\"BOOL_VEC4\",\"BOTH\",\"BROWSER_DEFAULT_WEBGL\",\"BUBBLING_PHASE\",\"BUFFER_SIZE\",\"BUFFER_USAGE\",\"BYTE\",\"BYTES_PER_ELEMENT\",\"BarProp\",\"BaseHref\",\"BatteryManager\",\"BeforeLoadEvent\",\"BeforeUnloadEvent\",\"BiquadFilterNode\",\"Blob\",\"BlobEvent\",\"Boolean\",\"CAPTURING_PHASE\",\"CCW\",\"CDATASection\",\"CDATA_SECTION_NODE\",\"CHANGE\",\"CHARSET_RULE\",\"CHECKING\",\"CLAMP_TO_EDGE\",\"CLICK\",\"CLOSED\",\"CLOSING\",\"COLOR_ATTACHMENT0\",\"COLOR_BUFFER_BIT\",\"COLOR_CLEAR_VALUE\",\"COLOR_WRITEMASK\",\"COMMENT_NODE\",\"COMPILE_STATUS\",\"COMPRESSED_RGBA_S3TC_DXT1_EXT\",\"COMPRESSED_RGBA_S3TC_DXT3_EXT\",\"COMPRESSED_RGBA_S3TC_DXT5_EXT\",\"COMPRESSED_RGB_S3TC_DXT1_EXT\",\"COMPRESSED_TEXTURE_FORMATS\",\"CONNECTING\",\"CONSTANT_ALPHA\",\"CONSTANT_COLOR\",\"CONSTRAINT_ERR\",\"CONTEXT_LOST_WEBGL\",\"CONTROL_MASK\",\"COUNTER_STYLE_RULE\",\"CSS\",\"CSS2Properties\",\"CSSCharsetRule\",\"CSSConditionRule\",\"CSSCounterStyleRule\",\"CSSFontFaceRule\",\"CSSFontFeatureValuesRule\",\"CSSGroupingRule\",\"CSSImportRule\",\"CSSKeyframeRule\",\"CSSKeyframesRule\",\"CSSMediaRule\",\"CSSMozDocumentRule\",\"CSSNameSpaceRule\",\"CSSPageRule\",\"CSSPrimitiveValue\",\"CSSRule\",\"CSSRuleList\",\"CSSStyleDeclaration\",\"CSSStyleRule\",\"CSSStyleSheet\",\"CSSSupportsRule\",\"CSSUnknownRule\",\"CSSValue\",\"CSSValueList\",\"CSSVariablesDeclaration\",\"CSSVariablesRule\",\"CSSViewportRule\",\"CSS_ATTR\",\"CSS_CM\",\"CSS_COUNTER\",\"CSS_CUSTOM\",\"CSS_DEG\",\"CSS_DIMENSION\",\"CSS_EMS\",\"CSS_EXS\",\"CSS_FILTER_BLUR\",\"CSS_FILTER_BRIGHTNESS\",\"CSS_FILTER_CONTRAST\",\"CSS_FILTER_CUSTOM\",\"CSS_FILTER_DROP_SHADOW\",\"CSS_FILTER_GRAYSCALE\",\"CSS_FILTER_HUE_ROTATE\",\"CSS_FILTER_INVERT\",\"CSS_FILTER_OPACITY\",\"CSS_FILTER_REFERENCE\",\"CSS_FILTER_SATURATE\",\"CSS_FILTER_SEPIA\",\"CSS_GRAD\",\"CSS_HZ\",\"CSS_IDENT\",\"CSS_IN\",\"CSS_INHERIT\",\"CSS_KHZ\",\"CSS_MATRIX\",\"CSS_MATRIX3D\",\"CSS_MM\",\"CSS_MS\",\"CSS_NUMBER\",\"CSS_PC\",\"CSS_PERCENTAGE\",\"CSS_PERSPECTIVE\",\"CSS_PRIMITIVE_VALUE\",\"CSS_PT\",\"CSS_PX\",\"CSS_RAD\",\"CSS_RECT\",\"CSS_RGBCOLOR\",\"CSS_ROTATE\",\"CSS_ROTATE3D\",\"CSS_ROTATEX\",\"CSS_ROTATEY\",\"CSS_ROTATEZ\",\"CSS_S\",\"CSS_SCALE\",\"CSS_SCALE3D\",\"CSS_SCALEX\",\"CSS_SCALEY\",\"CSS_SCALEZ\",\"CSS_SKEW\",\"CSS_SKEWX\",\"CSS_SKEWY\",\"CSS_STRING\",\"CSS_TRANSLATE\",\"CSS_TRANSLATE3D\",\"CSS_TRANSLATEX\",\"CSS_TRANSLATEY\",\"CSS_TRANSLATEZ\",\"CSS_UNKNOWN\",\"CSS_URI\",\"CSS_VALUE_LIST\",\"CSS_VH\",\"CSS_VMAX\",\"CSS_VMIN\",\"CSS_VW\",\"CULL_FACE\",\"CULL_FACE_MODE\",\"CURRENT_PROGRAM\",\"CURRENT_VERTEX_ATTRIB\",\"CUSTOM\",\"CW\",\"CanvasGradient\",\"CanvasPattern\",\"CanvasRenderingContext2D\",\"CaretPosition\",\"ChannelMergerNode\",\"ChannelSplitterNode\",\"CharacterData\",\"ClientRect\",\"ClientRectList\",\"Clipboard\",\"ClipboardEvent\",\"CloseEvent\",\"Collator\",\"CommandEvent\",\"Comment\",\"CompositionEvent\",\"Console\",\"Controllers\",\"ConvolverNode\",\"Counter\",\"Crypto\",\"CryptoKey\",\"CustomEvent\",\"DATABASE_ERR\",\"DATA_CLONE_ERR\",\"DATA_ERR\",\"DBLCLICK\",\"DECR\",\"DECR_WRAP\",\"DELETE_STATUS\",\"DEPTH_ATTACHMENT\",\"DEPTH_BITS\",\"DEPTH_BUFFER_BIT\",\"DEPTH_CLEAR_VALUE\",\"DEPTH_COMPONENT\",\"DEPTH_COMPONENT16\",\"DEPTH_FUNC\",\"DEPTH_RANGE\",\"DEPTH_STENCIL\",\"DEPTH_STENCIL_ATTACHMENT\",\"DEPTH_TEST\",\"DEPTH_WRITEMASK\",\"DIRECTION_DOWN\",\"DIRECTION_LEFT\",\"DIRECTION_RIGHT\",\"DIRECTION_UP\",\"DISABLED\",\"DISPATCH_REQUEST_ERR\",\"DITHER\",\"DOCUMENT_FRAGMENT_NODE\",\"DOCUMENT_NODE\",\"DOCUMENT_POSITION_CONTAINED_BY\",\"DOCUMENT_POSITION_CONTAINS\",\"DOCUMENT_POSITION_DISCONNECTED\",\"DOCUMENT_POSITION_FOLLOWING\",\"DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\",\"DOCUMENT_POSITION_PRECEDING\",\"DOCUMENT_TYPE_NODE\",\"DOMCursor\",\"DOMError\",\"DOMException\",\"DOMImplementation\",\"DOMImplementationLS\",\"DOMMatrix\",\"DOMMatrixReadOnly\",\"DOMParser\",\"DOMPoint\",\"DOMPointReadOnly\",\"DOMQuad\",\"DOMRect\",\"DOMRectList\",\"DOMRectReadOnly\",\"DOMRequest\",\"DOMSTRING_SIZE_ERR\",\"DOMSettableTokenList\",\"DOMStringList\",\"DOMStringMap\",\"DOMTokenList\",\"DOMTransactionEvent\",\"DOM_DELTA_LINE\",\"DOM_DELTA_PAGE\",\"DOM_DELTA_PIXEL\",\"DOM_INPUT_METHOD_DROP\",\"DOM_INPUT_METHOD_HANDWRITING\",\"DOM_INPUT_METHOD_IME\",\"DOM_INPUT_METHOD_KEYBOARD\",\"DOM_INPUT_METHOD_MULTIMODAL\",\"DOM_INPUT_METHOD_OPTION\",\"DOM_INPUT_METHOD_PASTE\",\"DOM_INPUT_METHOD_SCRIPT\",\"DOM_INPUT_METHOD_UNKNOWN\",\"DOM_INPUT_METHOD_VOICE\",\"DOM_KEY_LOCATION_JOYSTICK\",\"DOM_KEY_LOCATION_LEFT\",\"DOM_KEY_LOCATION_MOBILE\",\"DOM_KEY_LOCATION_NUMPAD\",\"DOM_KEY_LOCATION_RIGHT\",\"DOM_KEY_LOCATION_STANDARD\",\"DOM_VK_0\",\"DOM_VK_1\",\"DOM_VK_2\",\"DOM_VK_3\",\"DOM_VK_4\",\"DOM_VK_5\",\"DOM_VK_6\",\"DOM_VK_7\",\"DOM_VK_8\",\"DOM_VK_9\",\"DOM_VK_A\",\"DOM_VK_ACCEPT\",\"DOM_VK_ADD\",\"DOM_VK_ALT\",\"DOM_VK_ALTGR\",\"DOM_VK_AMPERSAND\",\"DOM_VK_ASTERISK\",\"DOM_VK_AT\",\"DOM_VK_ATTN\",\"DOM_VK_B\",\"DOM_VK_BACKSPACE\",\"DOM_VK_BACK_QUOTE\",\"DOM_VK_BACK_SLASH\",\"DOM_VK_BACK_SPACE\",\"DOM_VK_C\",\"DOM_VK_CANCEL\",\"DOM_VK_CAPS_LOCK\",\"DOM_VK_CIRCUMFLEX\",\"DOM_VK_CLEAR\",\"DOM_VK_CLOSE_BRACKET\",\"DOM_VK_CLOSE_CURLY_BRACKET\",\"DOM_VK_CLOSE_PAREN\",\"DOM_VK_COLON\",\"DOM_VK_COMMA\",\"DOM_VK_CONTEXT_MENU\",\"DOM_VK_CONTROL\",\"DOM_VK_CONVERT\",\"DOM_VK_CRSEL\",\"DOM_VK_CTRL\",\"DOM_VK_D\",\"DOM_VK_DECIMAL\",\"DOM_VK_DELETE\",\"DOM_VK_DIVIDE\",\"DOM_VK_DOLLAR\",\"DOM_VK_DOUBLE_QUOTE\",\"DOM_VK_DOWN\",\"DOM_VK_E\",\"DOM_VK_EISU\",\"DOM_VK_END\",\"DOM_VK_ENTER\",\"DOM_VK_EQUALS\",\"DOM_VK_EREOF\",\"DOM_VK_ESCAPE\",\"DOM_VK_EXCLAMATION\",\"DOM_VK_EXECUTE\",\"DOM_VK_EXSEL\",\"DOM_VK_F\",\"DOM_VK_F1\",\"DOM_VK_F10\",\"DOM_VK_F11\",\"DOM_VK_F12\",\"DOM_VK_F13\",\"DOM_VK_F14\",\"DOM_VK_F15\",\"DOM_VK_F16\",\"DOM_VK_F17\",\"DOM_VK_F18\",\"DOM_VK_F19\",\"DOM_VK_F2\",\"DOM_VK_F20\",\"DOM_VK_F21\",\"DOM_VK_F22\",\"DOM_VK_F23\",\"DOM_VK_F24\",\"DOM_VK_F25\",\"DOM_VK_F26\",\"DOM_VK_F27\",\"DOM_VK_F28\",\"DOM_VK_F29\",\"DOM_VK_F3\",\"DOM_VK_F30\",\"DOM_VK_F31\",\"DOM_VK_F32\",\"DOM_VK_F33\",\"DOM_VK_F34\",\"DOM_VK_F35\",\"DOM_VK_F36\",\"DOM_VK_F4\",\"DOM_VK_F5\",\"DOM_VK_F6\",\"DOM_VK_F7\",\"DOM_VK_F8\",\"DOM_VK_F9\",\"DOM_VK_FINAL\",\"DOM_VK_FRONT\",\"DOM_VK_G\",\"DOM_VK_GREATER_THAN\",\"DOM_VK_H\",\"DOM_VK_HANGUL\",\"DOM_VK_HANJA\",\"DOM_VK_HASH\",\"DOM_VK_HELP\",\"DOM_VK_HK_TOGGLE\",\"DOM_VK_HOME\",\"DOM_VK_HYPHEN_MINUS\",\"DOM_VK_I\",\"DOM_VK_INSERT\",\"DOM_VK_J\",\"DOM_VK_JUNJA\",\"DOM_VK_K\",\"DOM_VK_KANA\",\"DOM_VK_KANJI\",\"DOM_VK_L\",\"DOM_VK_LEFT\",\"DOM_VK_LEFT_TAB\",\"DOM_VK_LESS_THAN\",\"DOM_VK_M\",\"DOM_VK_META\",\"DOM_VK_MODECHANGE\",\"DOM_VK_MULTIPLY\",\"DOM_VK_N\",\"DOM_VK_NONCONVERT\",\"DOM_VK_NUMPAD0\",\"DOM_VK_NUMPAD1\",\"DOM_VK_NUMPAD2\",\"DOM_VK_NUMPAD3\",\"DOM_VK_NUMPAD4\",\"DOM_VK_NUMPAD5\",\"DOM_VK_NUMPAD6\",\"DOM_VK_NUMPAD7\",\"DOM_VK_NUMPAD8\",\"DOM_VK_NUMPAD9\",\"DOM_VK_NUM_LOCK\",\"DOM_VK_O\",\"DOM_VK_OEM_1\",\"DOM_VK_OEM_102\",\"DOM_VK_OEM_2\",\"DOM_VK_OEM_3\",\"DOM_VK_OEM_4\",\"DOM_VK_OEM_5\",\"DOM_VK_OEM_6\",\"DOM_VK_OEM_7\",\"DOM_VK_OEM_8\",\"DOM_VK_OEM_COMMA\",\"DOM_VK_OEM_MINUS\",\"DOM_VK_OEM_PERIOD\",\"DOM_VK_OEM_PLUS\",\"DOM_VK_OPEN_BRACKET\",\"DOM_VK_OPEN_CURLY_BRACKET\",\"DOM_VK_OPEN_PAREN\",\"DOM_VK_P\",\"DOM_VK_PA1\",\"DOM_VK_PAGEDOWN\",\"DOM_VK_PAGEUP\",\"DOM_VK_PAGE_DOWN\",\"DOM_VK_PAGE_UP\",\"DOM_VK_PAUSE\",\"DOM_VK_PERCENT\",\"DOM_VK_PERIOD\",\"DOM_VK_PIPE\",\"DOM_VK_PLAY\",\"DOM_VK_PLUS\",\"DOM_VK_PRINT\",\"DOM_VK_PRINTSCREEN\",\"DOM_VK_PROCESSKEY\",\"DOM_VK_PROPERITES\",\"DOM_VK_Q\",\"DOM_VK_QUESTION_MARK\",\"DOM_VK_QUOTE\",\"DOM_VK_R\",\"DOM_VK_REDO\",\"DOM_VK_RETURN\",\"DOM_VK_RIGHT\",\"DOM_VK_S\",\"DOM_VK_SCROLL_LOCK\",\"DOM_VK_SELECT\",\"DOM_VK_SEMICOLON\",\"DOM_VK_SEPARATOR\",\"DOM_VK_SHIFT\",\"DOM_VK_SLASH\",\"DOM_VK_SLEEP\",\"DOM_VK_SPACE\",\"DOM_VK_SUBTRACT\",\"DOM_VK_T\",\"DOM_VK_TAB\",\"DOM_VK_TILDE\",\"DOM_VK_U\",\"DOM_VK_UNDERSCORE\",\"DOM_VK_UNDO\",\"DOM_VK_UNICODE\",\"DOM_VK_UP\",\"DOM_VK_V\",\"DOM_VK_VOLUME_DOWN\",\"DOM_VK_VOLUME_MUTE\",\"DOM_VK_VOLUME_UP\",\"DOM_VK_W\",\"DOM_VK_WIN\",\"DOM_VK_WINDOW\",\"DOM_VK_WIN_ICO_00\",\"DOM_VK_WIN_ICO_CLEAR\",\"DOM_VK_WIN_ICO_HELP\",\"DOM_VK_WIN_OEM_ATTN\",\"DOM_VK_WIN_OEM_AUTO\",\"DOM_VK_WIN_OEM_BACKTAB\",\"DOM_VK_WIN_OEM_CLEAR\",\"DOM_VK_WIN_OEM_COPY\",\"DOM_VK_WIN_OEM_CUSEL\",\"DOM_VK_WIN_OEM_ENLW\",\"DOM_VK_WIN_OEM_FINISH\",\"DOM_VK_WIN_OEM_FJ_JISHO\",\"DOM_VK_WIN_OEM_FJ_LOYA\",\"DOM_VK_WIN_OEM_FJ_MASSHOU\",\"DOM_VK_WIN_OEM_FJ_ROYA\",\"DOM_VK_WIN_OEM_FJ_TOUROKU\",\"DOM_VK_WIN_OEM_JUMP\",\"DOM_VK_WIN_OEM_PA1\",\"DOM_VK_WIN_OEM_PA2\",\"DOM_VK_WIN_OEM_PA3\",\"DOM_VK_WIN_OEM_RESET\",\"DOM_VK_WIN_OEM_WSCTRL\",\"DOM_VK_X\",\"DOM_VK_XF86XK_ADD_FAVORITE\",\"DOM_VK_XF86XK_APPLICATION_LEFT\",\"DOM_VK_XF86XK_APPLICATION_RIGHT\",\"DOM_VK_XF86XK_AUDIO_CYCLE_TRACK\",\"DOM_VK_XF86XK_AUDIO_FORWARD\",\"DOM_VK_XF86XK_AUDIO_LOWER_VOLUME\",\"DOM_VK_XF86XK_AUDIO_MEDIA\",\"DOM_VK_XF86XK_AUDIO_MUTE\",\"DOM_VK_XF86XK_AUDIO_NEXT\",\"DOM_VK_XF86XK_AUDIO_PAUSE\",\"DOM_VK_XF86XK_AUDIO_PLAY\",\"DOM_VK_XF86XK_AUDIO_PREV\",\"DOM_VK_XF86XK_AUDIO_RAISE_VOLUME\",\"DOM_VK_XF86XK_AUDIO_RANDOM_PLAY\",\"DOM_VK_XF86XK_AUDIO_RECORD\",\"DOM_VK_XF86XK_AUDIO_REPEAT\",\"DOM_VK_XF86XK_AUDIO_REWIND\",\"DOM_VK_XF86XK_AUDIO_STOP\",\"DOM_VK_XF86XK_AWAY\",\"DOM_VK_XF86XK_BACK\",\"DOM_VK_XF86XK_BACK_FORWARD\",\"DOM_VK_XF86XK_BATTERY\",\"DOM_VK_XF86XK_BLUE\",\"DOM_VK_XF86XK_BLUETOOTH\",\"DOM_VK_XF86XK_BOOK\",\"DOM_VK_XF86XK_BRIGHTNESS_ADJUST\",\"DOM_VK_XF86XK_CALCULATOR\",\"DOM_VK_XF86XK_CALENDAR\",\"DOM_VK_XF86XK_CD\",\"DOM_VK_XF86XK_CLOSE\",\"DOM_VK_XF86XK_COMMUNITY\",\"DOM_VK_XF86XK_CONTRAST_ADJUST\",\"DOM_VK_XF86XK_COPY\",\"DOM_VK_XF86XK_CUT\",\"DOM_VK_XF86XK_CYCLE_ANGLE\",\"DOM_VK_XF86XK_DISPLAY\",\"DOM_VK_XF86XK_DOCUMENTS\",\"DOM_VK_XF86XK_DOS\",\"DOM_VK_XF86XK_EJECT\",\"DOM_VK_XF86XK_EXCEL\",\"DOM_VK_XF86XK_EXPLORER\",\"DOM_VK_XF86XK_FAVORITES\",\"DOM_VK_XF86XK_FINANCE\",\"DOM_VK_XF86XK_FORWARD\",\"DOM_VK_XF86XK_FRAME_BACK\",\"DOM_VK_XF86XK_FRAME_FORWARD\",\"DOM_VK_XF86XK_GAME\",\"DOM_VK_XF86XK_GO\",\"DOM_VK_XF86XK_GREEN\",\"DOM_VK_XF86XK_HIBERNATE\",\"DOM_VK_XF86XK_HISTORY\",\"DOM_VK_XF86XK_HOME_PAGE\",\"DOM_VK_XF86XK_HOT_LINKS\",\"DOM_VK_XF86XK_I_TOUCH\",\"DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN\",\"DOM_VK_XF86XK_KBD_BRIGHTNESS_UP\",\"DOM_VK_XF86XK_KBD_LIGHT_ON_OFF\",\"DOM_VK_XF86XK_LAUNCH0\",\"DOM_VK_XF86XK_LAUNCH1\",\"DOM_VK_XF86XK_LAUNCH2\",\"DOM_VK_XF86XK_LAUNCH3\",\"DOM_VK_XF86XK_LAUNCH4\",\"DOM_VK_XF86XK_LAUNCH5\",\"DOM_VK_XF86XK_LAUNCH6\",\"DOM_VK_XF86XK_LAUNCH7\",\"DOM_VK_XF86XK_LAUNCH8\",\"DOM_VK_XF86XK_LAUNCH9\",\"DOM_VK_XF86XK_LAUNCH_A\",\"DOM_VK_XF86XK_LAUNCH_B\",\"DOM_VK_XF86XK_LAUNCH_C\",\"DOM_VK_XF86XK_LAUNCH_D\",\"DOM_VK_XF86XK_LAUNCH_E\",\"DOM_VK_XF86XK_LAUNCH_F\",\"DOM_VK_XF86XK_LIGHT_BULB\",\"DOM_VK_XF86XK_LOG_OFF\",\"DOM_VK_XF86XK_MAIL\",\"DOM_VK_XF86XK_MAIL_FORWARD\",\"DOM_VK_XF86XK_MARKET\",\"DOM_VK_XF86XK_MEETING\",\"DOM_VK_XF86XK_MEMO\",\"DOM_VK_XF86XK_MENU_KB\",\"DOM_VK_XF86XK_MENU_PB\",\"DOM_VK_XF86XK_MESSENGER\",\"DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN\",\"DOM_VK_XF86XK_MON_BRIGHTNESS_UP\",\"DOM_VK_XF86XK_MUSIC\",\"DOM_VK_XF86XK_MY_COMPUTER\",\"DOM_VK_XF86XK_MY_SITES\",\"DOM_VK_XF86XK_NEW\",\"DOM_VK_XF86XK_NEWS\",\"DOM_VK_XF86XK_OFFICE_HOME\",\"DOM_VK_XF86XK_OPEN\",\"DOM_VK_XF86XK_OPEN_URL\",\"DOM_VK_XF86XK_OPTION\",\"DOM_VK_XF86XK_PASTE\",\"DOM_VK_XF86XK_PHONE\",\"DOM_VK_XF86XK_PICTURES\",\"DOM_VK_XF86XK_POWER_DOWN\",\"DOM_VK_XF86XK_POWER_OFF\",\"DOM_VK_XF86XK_RED\",\"DOM_VK_XF86XK_REFRESH\",\"DOM_VK_XF86XK_RELOAD\",\"DOM_VK_XF86XK_REPLY\",\"DOM_VK_XF86XK_ROCKER_DOWN\",\"DOM_VK_XF86XK_ROCKER_ENTER\",\"DOM_VK_XF86XK_ROCKER_UP\",\"DOM_VK_XF86XK_ROTATE_WINDOWS\",\"DOM_VK_XF86XK_ROTATION_KB\",\"DOM_VK_XF86XK_ROTATION_PB\",\"DOM_VK_XF86XK_SAVE\",\"DOM_VK_XF86XK_SCREEN_SAVER\",\"DOM_VK_XF86XK_SCROLL_CLICK\",\"DOM_VK_XF86XK_SCROLL_DOWN\",\"DOM_VK_XF86XK_SCROLL_UP\",\"DOM_VK_XF86XK_SEARCH\",\"DOM_VK_XF86XK_SEND\",\"DOM_VK_XF86XK_SHOP\",\"DOM_VK_XF86XK_SPELL\",\"DOM_VK_XF86XK_SPLIT_SCREEN\",\"DOM_VK_XF86XK_STANDBY\",\"DOM_VK_XF86XK_START\",\"DOM_VK_XF86XK_STOP\",\"DOM_VK_XF86XK_SUBTITLE\",\"DOM_VK_XF86XK_SUPPORT\",\"DOM_VK_XF86XK_SUSPEND\",\"DOM_VK_XF86XK_TASK_PANE\",\"DOM_VK_XF86XK_TERMINAL\",\"DOM_VK_XF86XK_TIME\",\"DOM_VK_XF86XK_TOOLS\",\"DOM_VK_XF86XK_TOP_MENU\",\"DOM_VK_XF86XK_TO_DO_LIST\",\"DOM_VK_XF86XK_TRAVEL\",\"DOM_VK_XF86XK_USER1KB\",\"DOM_VK_XF86XK_USER2KB\",\"DOM_VK_XF86XK_USER_PB\",\"DOM_VK_XF86XK_UWB\",\"DOM_VK_XF86XK_VENDOR_HOME\",\"DOM_VK_XF86XK_VIDEO\",\"DOM_VK_XF86XK_VIEW\",\"DOM_VK_XF86XK_WAKE_UP\",\"DOM_VK_XF86XK_WEB_CAM\",\"DOM_VK_XF86XK_WHEEL_BUTTON\",\"DOM_VK_XF86XK_WLAN\",\"DOM_VK_XF86XK_WORD\",\"DOM_VK_XF86XK_WWW\",\"DOM_VK_XF86XK_XFER\",\"DOM_VK_XF86XK_YELLOW\",\"DOM_VK_XF86XK_ZOOM_IN\",\"DOM_VK_XF86XK_ZOOM_OUT\",\"DOM_VK_Y\",\"DOM_VK_Z\",\"DOM_VK_ZOOM\",\"DONE\",\"DONT_CARE\",\"DOWNLOADING\",\"DRAGDROP\",\"DST_ALPHA\",\"DST_COLOR\",\"DYNAMIC_DRAW\",\"DataChannel\",\"DataTransfer\",\"DataTransferItem\",\"DataTransferItemList\",\"DataView\",\"Date\",\"DateTimeFormat\",\"DelayNode\",\"DesktopNotification\",\"DesktopNotificationCenter\",\"DeviceLightEvent\",\"DeviceMotionEvent\",\"DeviceOrientationEvent\",\"DeviceProximityEvent\",\"DeviceStorage\",\"DeviceStorageChangeEvent\",\"Document\",\"DocumentFragment\",\"DocumentType\",\"DragEvent\",\"DynamicsCompressorNode\",\"E\",\"ELEMENT_ARRAY_BUFFER\",\"ELEMENT_ARRAY_BUFFER_BINDING\",\"ELEMENT_NODE\",\"EMPTY\",\"ENCODING_ERR\",\"ENDED\",\"END_TO_END\",\"END_TO_START\",\"ENTITY_NODE\",\"ENTITY_REFERENCE_NODE\",\"EPSILON\",\"EQUAL\",\"EQUALPOWER\",\"ERROR\",\"EXPONENTIAL_DISTANCE\",\"Element\",\"ElementQuery\",\"Entity\",\"EntityReference\",\"Error\",\"ErrorEvent\",\"EvalError\",\"Event\",\"EventException\",\"EventSource\",\"EventTarget\",\"External\",\"FASTEST\",\"FIDOSDK\",\"FILTER_ACCEPT\",\"FILTER_INTERRUPT\",\"FILTER_REJECT\",\"FILTER_SKIP\",\"FINISHED_STATE\",\"FIRST_ORDERED_NODE_TYPE\",\"FLOAT\",\"FLOAT_MAT2\",\"FLOAT_MAT3\",\"FLOAT_MAT4\",\"FLOAT_VEC2\",\"FLOAT_VEC3\",\"FLOAT_VEC4\",\"FOCUS\",\"FONT_FACE_RULE\",\"FONT_FEATURE_VALUES_RULE\",\"FRAGMENT_SHADER\",\"FRAGMENT_SHADER_DERIVATIVE_HINT_OES\",\"FRAMEBUFFER\",\"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\",\"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE\",\"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE\",\"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL\",\"FRAMEBUFFER_BINDING\",\"FRAMEBUFFER_COMPLETE\",\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\",\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\",\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\",\"FRAMEBUFFER_UNSUPPORTED\",\"FRONT\",\"FRONT_AND_BACK\",\"FRONT_FACE\",\"FUNC_ADD\",\"FUNC_REVERSE_SUBTRACT\",\"FUNC_SUBTRACT\",\"Feed\",\"FeedEntry\",\"File\",\"FileError\",\"FileList\",\"FileReader\",\"FindInPage\",\"Float32Array\",\"Float64Array\",\"FocusEvent\",\"FontFace\",\"FormData\",\"Function\",\"GENERATE_MIPMAP_HINT\",\"GEQUAL\",\"GREATER\",\"GREEN_BITS\",\"GainNode\",\"Gamepad\",\"GamepadButton\",\"GamepadEvent\",\"GestureEvent\",\"HAVE_CURRENT_DATA\",\"HAVE_ENOUGH_DATA\",\"HAVE_FUTURE_DATA\",\"HAVE_METADATA\",\"HAVE_NOTHING\",\"HEADERS_RECEIVED\",\"HIDDEN\",\"HIERARCHY_REQUEST_ERR\",\"HIGHPASS\",\"HIGHSHELF\",\"HIGH_FLOAT\",\"HIGH_INT\",\"HORIZONTAL\",\"HORIZONTAL_AXIS\",\"HRTF\",\"HTMLAllCollection\",\"HTMLAnchorElement\",\"HTMLAppletElement\",\"HTMLAreaElement\",\"HTMLAudioElement\",\"HTMLBRElement\",\"HTMLBaseElement\",\"HTMLBaseFontElement\",\"HTMLBlockquoteElement\",\"HTMLBodyElement\",\"HTMLButtonElement\",\"HTMLCanvasElement\",\"HTMLCollection\",\"HTMLCommandElement\",\"HTMLContentElement\",\"HTMLDListElement\",\"HTMLDataElement\",\"HTMLDataListElement\",\"HTMLDetailsElement\",\"HTMLDialogElement\",\"HTMLDirectoryElement\",\"HTMLDivElement\",\"HTMLDocument\",\"HTMLElement\",\"HTMLEmbedElement\",\"HTMLFieldSetElement\",\"HTMLFontElement\",\"HTMLFormControlsCollection\",\"HTMLFormElement\",\"HTMLFrameElement\",\"HTMLFrameSetElement\",\"HTMLHRElement\",\"HTMLHeadElement\",\"HTMLHeadingElement\",\"HTMLHtmlElement\",\"HTMLIFrameElement\",\"HTMLImageElement\",\"HTMLInputElement\",\"HTMLIsIndexElement\",\"HTMLKeygenElement\",\"HTMLLIElement\",\"HTMLLabelElement\",\"HTMLLegendElement\",\"HTMLLinkElement\",\"HTMLMapElement\",\"HTMLMarqueeElement\",\"HTMLMediaElement\",\"HTMLMenuElement\",\"HTMLMenuItemElement\",\"HTMLMetaElement\",\"HTMLMeterElement\",\"HTMLModElement\",\"HTMLOListElement\",\"HTMLObjectElement\",\"HTMLOptGroupElement\",\"HTMLOptionElement\",\"HTMLOptionsCollection\",\"HTMLOutputElement\",\"HTMLParagraphElement\",\"HTMLParamElement\",\"HTMLPictureElement\",\"HTMLPreElement\",\"HTMLProgressElement\",\"HTMLPropertiesCollection\",\"HTMLQuoteElement\",\"HTMLScriptElement\",\"HTMLSelectElement\",\"HTMLShadowElement\",\"HTMLSourceElement\",\"HTMLSpanElement\",\"HTMLStyleElement\",\"HTMLTableCaptionElement\",\"HTMLTableCellElement\",\"HTMLTableColElement\",\"HTMLTableElement\",\"HTMLTableRowElement\",\"HTMLTableSectionElement\",\"HTMLTemplateElement\",\"HTMLTextAreaElement\",\"HTMLTimeElement\",\"HTMLTitleElement\",\"HTMLTrackElement\",\"HTMLUListElement\",\"HTMLUnknownElement\",\"HTMLVideoElement\",\"HashChangeEvent\",\"Headers\",\"History\",\"ICE_CHECKING\",\"ICE_CLOSED\",\"ICE_COMPLETED\",\"ICE_CONNECTED\",\"ICE_FAILED\",\"ICE_GATHERING\",\"ICE_WAITING\",\"IDBCursor\",\"IDBCursorWithValue\",\"IDBDatabase\",\"IDBDatabaseException\",\"IDBFactory\",\"IDBFileHandle\",\"IDBFileRequest\",\"IDBIndex\",\"IDBKeyRange\",\"IDBMutableFile\",\"IDBObjectStore\",\"IDBOpenDBRequest\",\"IDBRequest\",\"IDBTransaction\",\"IDBVersionChangeEvent\",\"IDLE\",\"IMPLEMENTATION_COLOR_READ_FORMAT\",\"IMPLEMENTATION_COLOR_READ_TYPE\",\"IMPORT_RULE\",\"INCR\",\"INCR_WRAP\",\"INDEX_SIZE_ERR\",\"INT\",\"INT_VEC2\",\"INT_VEC3\",\"INT_VEC4\",\"INUSE_ATTRIBUTE_ERR\",\"INVALID_ACCESS_ERR\",\"INVALID_CHARACTER_ERR\",\"INVALID_ENUM\",\"INVALID_EXPRESSION_ERR\",\"INVALID_FRAMEBUFFER_OPERATION\",\"INVALID_MODIFICATION_ERR\",\"INVALID_NODE_TYPE_ERR\",\"INVALID_OPERATION\",\"INVALID_STATE_ERR\",\"INVALID_VALUE\",\"INVERSE_DISTANCE\",\"INVERT\",\"IceCandidate\",\"Image\",\"ImageBitmap\",\"ImageData\",\"Infinity\",\"InputEvent\",\"InputMethodContext\",\"InstallTrigger\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Intent\",\"InternalError\",\"Intl\",\"IsSearchProviderInstalled\",\"Iterator\",\"JSON\",\"KEEP\",\"KEYDOWN\",\"KEYFRAMES_RULE\",\"KEYFRAME_RULE\",\"KEYPRESS\",\"KEYUP\",\"KeyEvent\",\"KeyboardEvent\",\"LENGTHADJUST_SPACING\",\"LENGTHADJUST_SPACINGANDGLYPHS\",\"LENGTHADJUST_UNKNOWN\",\"LEQUAL\",\"LESS\",\"LINEAR\",\"LINEAR_DISTANCE\",\"LINEAR_MIPMAP_LINEAR\",\"LINEAR_MIPMAP_NEAREST\",\"LINES\",\"LINE_LOOP\",\"LINE_STRIP\",\"LINE_WIDTH\",\"LINK_STATUS\",\"LIVE\",\"LN10\",\"LN2\",\"LOADED\",\"LOADING\",\"LOG10E\",\"LOG2E\",\"LOWPASS\",\"LOWSHELF\",\"LOW_FLOAT\",\"LOW_INT\",\"LSException\",\"LSParserFilter\",\"LUMINANCE\",\"LUMINANCE_ALPHA\",\"LocalMediaStream\",\"Location\",\"MAX_COMBINED_TEXTURE_IMAGE_UNITS\",\"MAX_CUBE_MAP_TEXTURE_SIZE\",\"MAX_FRAGMENT_UNIFORM_VECTORS\",\"MAX_RENDERBUFFER_SIZE\",\"MAX_SAFE_INTEGER\",\"MAX_TEXTURE_IMAGE_UNITS\",\"MAX_TEXTURE_MAX_ANISOTROPY_EXT\",\"MAX_TEXTURE_SIZE\",\"MAX_VALUE\",\"MAX_VARYING_VECTORS\",\"MAX_VERTEX_ATTRIBS\",\"MAX_VERTEX_TEXTURE_IMAGE_UNITS\",\"MAX_VERTEX_UNIFORM_VECTORS\",\"MAX_VIEWPORT_DIMS\",\"MEDIA_ERR_ABORTED\",\"MEDIA_ERR_DECODE\",\"MEDIA_ERR_ENCRYPTED\",\"MEDIA_ERR_NETWORK\",\"MEDIA_ERR_SRC_NOT_SUPPORTED\",\"MEDIA_KEYERR_CLIENT\",\"MEDIA_KEYERR_DOMAIN\",\"MEDIA_KEYERR_HARDWARECHANGE\",\"MEDIA_KEYERR_OUTPUT\",\"MEDIA_KEYERR_SERVICE\",\"MEDIA_KEYERR_UNKNOWN\",\"MEDIA_RULE\",\"MEDIUM_FLOAT\",\"MEDIUM_INT\",\"META_MASK\",\"MIN_SAFE_INTEGER\",\"MIN_VALUE\",\"MIRRORED_REPEAT\",\"MODE_ASYNCHRONOUS\",\"MODE_SYNCHRONOUS\",\"MODIFICATION\",\"MOUSEDOWN\",\"MOUSEDRAG\",\"MOUSEMOVE\",\"MOUSEOUT\",\"MOUSEOVER\",\"MOUSEUP\",\"MOZ_KEYFRAMES_RULE\",\"MOZ_KEYFRAME_RULE\",\"MOZ_SOURCE_CURSOR\",\"MOZ_SOURCE_ERASER\",\"MOZ_SOURCE_KEYBOARD\",\"MOZ_SOURCE_MOUSE\",\"MOZ_SOURCE_PEN\",\"MOZ_SOURCE_TOUCH\",\"MOZ_SOURCE_UNKNOWN\",\"MSGESTURE_FLAG_BEGIN\",\"MSGESTURE_FLAG_CANCEL\",\"MSGESTURE_FLAG_END\",\"MSGESTURE_FLAG_INERTIA\",\"MSGESTURE_FLAG_NONE\",\"MSPOINTER_TYPE_MOUSE\",\"MSPOINTER_TYPE_PEN\",\"MSPOINTER_TYPE_TOUCH\",\"MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE\",\"MS_ASYNC_CALLBACK_STATUS_CANCEL\",\"MS_ASYNC_CALLBACK_STATUS_CHOOSEANY\",\"MS_ASYNC_CALLBACK_STATUS_ERROR\",\"MS_ASYNC_CALLBACK_STATUS_JOIN\",\"MS_ASYNC_OP_STATUS_CANCELED\",\"MS_ASYNC_OP_STATUS_ERROR\",\"MS_ASYNC_OP_STATUS_SUCCESS\",\"MS_MANIPULATION_STATE_ACTIVE\",\"MS_MANIPULATION_STATE_CANCELLED\",\"MS_MANIPULATION_STATE_COMMITTED\",\"MS_MANIPULATION_STATE_DRAGGING\",\"MS_MANIPULATION_STATE_INERTIA\",\"MS_MANIPULATION_STATE_PRESELECT\",\"MS_MANIPULATION_STATE_SELECTING\",\"MS_MANIPULATION_STATE_STOPPED\",\"MS_MEDIA_ERR_ENCRYPTED\",\"MS_MEDIA_KEYERR_CLIENT\",\"MS_MEDIA_KEYERR_DOMAIN\",\"MS_MEDIA_KEYERR_HARDWARECHANGE\",\"MS_MEDIA_KEYERR_OUTPUT\",\"MS_MEDIA_KEYERR_SERVICE\",\"MS_MEDIA_KEYERR_UNKNOWN\",\"Map\",\"Math\",\"MediaController\",\"MediaDevices\",\"MediaElementAudioSourceNode\",\"MediaEncryptedEvent\",\"MediaError\",\"MediaKeyError\",\"MediaKeyEvent\",\"MediaKeyMessageEvent\",\"MediaKeyNeededEvent\",\"MediaKeySession\",\"MediaKeyStatusMap\",\"MediaKeySystemAccess\",\"MediaKeys\",\"MediaList\",\"MediaQueryList\",\"MediaQueryListEvent\",\"MediaRecorder\",\"MediaSource\",\"MediaStream\",\"MediaStreamAudioDestinationNode\",\"MediaStreamAudioSourceNode\",\"MediaStreamEvent\",\"MediaStreamTrack\",\"MediaStreamTrackEvent\",\"MessageChannel\",\"MessageEvent\",\"MessagePort\",\"Methods\",\"MimeType\",\"MimeTypeArray\",\"MouseEvent\",\"MouseScrollEvent\",\"MozAnimation\",\"MozAnimationDelay\",\"MozAnimationDirection\",\"MozAnimationDuration\",\"MozAnimationFillMode\",\"MozAnimationIterationCount\",\"MozAnimationName\",\"MozAnimationPlayState\",\"MozAnimationTimingFunction\",\"MozAppearance\",\"MozBackfaceVisibility\",\"MozBinding\",\"MozBorderBottomColors\",\"MozBorderEnd\",\"MozBorderEndColor\",\"MozBorderEndStyle\",\"MozBorderEndWidth\",\"MozBorderImage\",\"MozBorderLeftColors\",\"MozBorderRightColors\",\"MozBorderStart\",\"MozBorderStartColor\",\"MozBorderStartStyle\",\"MozBorderStartWidth\",\"MozBorderTopColors\",\"MozBoxAlign\",\"MozBoxDirection\",\"MozBoxFlex\",\"MozBoxOrdinalGroup\",\"MozBoxOrient\",\"MozBoxPack\",\"MozBoxSizing\",\"MozCSSKeyframeRule\",\"MozCSSKeyframesRule\",\"MozColumnCount\",\"MozColumnFill\",\"MozColumnGap\",\"MozColumnRule\",\"MozColumnRuleColor\",\"MozColumnRuleStyle\",\"MozColumnRuleWidth\",\"MozColumnWidth\",\"MozColumns\",\"MozContactChangeEvent\",\"MozFloatEdge\",\"MozFontFeatureSettings\",\"MozFontLanguageOverride\",\"MozForceBrokenImageIcon\",\"MozHyphens\",\"MozImageRegion\",\"MozMarginEnd\",\"MozMarginStart\",\"MozMmsEvent\",\"MozMmsMessage\",\"MozMobileMessageThread\",\"MozOSXFontSmoothing\",\"MozOrient\",\"MozOutlineRadius\",\"MozOutlineRadiusBottomleft\",\"MozOutlineRadiusBottomright\",\"MozOutlineRadiusTopleft\",\"MozOutlineRadiusTopright\",\"MozPaddingEnd\",\"MozPaddingStart\",\"MozPerspective\",\"MozPerspectiveOrigin\",\"MozPowerManager\",\"MozSettingsEvent\",\"MozSmsEvent\",\"MozSmsMessage\",\"MozStackSizing\",\"MozTabSize\",\"MozTextAlignLast\",\"MozTextDecorationColor\",\"MozTextDecorationLine\",\"MozTextDecorationStyle\",\"MozTextSizeAdjust\",\"MozTransform\",\"MozTransformOrigin\",\"MozTransformStyle\",\"MozTransition\",\"MozTransitionDelay\",\"MozTransitionDuration\",\"MozTransitionProperty\",\"MozTransitionTimingFunction\",\"MozUserFocus\",\"MozUserInput\",\"MozUserModify\",\"MozUserSelect\",\"MozWindowDragging\",\"MozWindowShadow\",\"MutationEvent\",\"MutationObserver\",\"MutationRecord\",\"NAMESPACE_ERR\",\"NAMESPACE_RULE\",\"NEAREST\",\"NEAREST_MIPMAP_LINEAR\",\"NEAREST_MIPMAP_NEAREST\",\"NEGATIVE_INFINITY\",\"NETWORK_EMPTY\",\"NETWORK_ERR\",\"NETWORK_IDLE\",\"NETWORK_LOADED\",\"NETWORK_LOADING\",\"NETWORK_NO_SOURCE\",\"NEVER\",\"NEW\",\"NEXT\",\"NEXT_NO_DUPLICATE\",\"NICEST\",\"NODE_AFTER\",\"NODE_BEFORE\",\"NODE_BEFORE_AND_AFTER\",\"NODE_INSIDE\",\"NONE\",\"NON_TRANSIENT_ERR\",\"NOTATION_NODE\",\"NOTCH\",\"NOTEQUAL\",\"NOT_ALLOWED_ERR\",\"NOT_FOUND_ERR\",\"NOT_READABLE_ERR\",\"NOT_SUPPORTED_ERR\",\"NO_DATA_ALLOWED_ERR\",\"NO_ERR\",\"NO_ERROR\",\"NO_MODIFICATION_ALLOWED_ERR\",\"NUMBER_TYPE\",\"NUM_COMPRESSED_TEXTURE_FORMATS\",\"NaN\",\"NamedNodeMap\",\"Navigator\",\"NearbyLinks\",\"NetworkInformation\",\"Node\",\"NodeFilter\",\"NodeIterator\",\"NodeList\",\"Notation\",\"Notification\",\"NotifyPaintEvent\",\"Number\",\"NumberFormat\",\"OBSOLETE\",\"ONE\",\"ONE_MINUS_CONSTANT_ALPHA\",\"ONE_MINUS_CONSTANT_COLOR\",\"ONE_MINUS_DST_ALPHA\",\"ONE_MINUS_DST_COLOR\",\"ONE_MINUS_SRC_ALPHA\",\"ONE_MINUS_SRC_COLOR\",\"OPEN\",\"OPENED\",\"OPENING\",\"ORDERED_NODE_ITERATOR_TYPE\",\"ORDERED_NODE_SNAPSHOT_TYPE\",\"OUT_OF_MEMORY\",\"Object\",\"OfflineAudioCompletionEvent\",\"OfflineAudioContext\",\"OfflineResourceList\",\"Option\",\"OscillatorNode\",\"OverflowEvent\",\"PACK_ALIGNMENT\",\"PAGE_RULE\",\"PARSE_ERR\",\"PATHSEG_ARC_ABS\",\"PATHSEG_ARC_REL\",\"PATHSEG_CLOSEPATH\",\"PATHSEG_CURVETO_CUBIC_ABS\",\"PATHSEG_CURVETO_CUBIC_REL\",\"PATHSEG_CURVETO_CUBIC_SMOOTH_ABS\",\"PATHSEG_CURVETO_CUBIC_SMOOTH_REL\",\"PATHSEG_CURVETO_QUADRATIC_ABS\",\"PATHSEG_CURVETO_QUADRATIC_REL\",\"PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS\",\"PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL\",\"PATHSEG_LINETO_ABS\",\"PATHSEG_LINETO_HORIZONTAL_ABS\",\"PATHSEG_LINETO_HORIZONTAL_REL\",\"PATHSEG_LINETO_REL\",\"PATHSEG_LINETO_VERTICAL_ABS\",\"PATHSEG_LINETO_VERTICAL_REL\",\"PATHSEG_MOVETO_ABS\",\"PATHSEG_MOVETO_REL\",\"PATHSEG_UNKNOWN\",\"PATH_EXISTS_ERR\",\"PEAKING\",\"PERMISSION_DENIED\",\"PERSISTENT\",\"PI\",\"PLAYING_STATE\",\"POINTS\",\"POLYGON_OFFSET_FACTOR\",\"POLYGON_OFFSET_FILL\",\"POLYGON_OFFSET_UNITS\",\"POSITION_UNAVAILABLE\",\"POSITIVE_INFINITY\",\"PREV\",\"PREV_NO_DUPLICATE\",\"PROCESSING_INSTRUCTION_NODE\",\"PageChangeEvent\",\"PageTransitionEvent\",\"PaintRequest\",\"PaintRequestList\",\"PannerNode\",\"Path2D\",\"Performance\",\"PerformanceEntry\",\"PerformanceMark\",\"PerformanceMeasure\",\"PerformanceNavigation\",\"PerformanceResourceTiming\",\"PerformanceTiming\",\"PeriodicWave\",\"Plugin\",\"PluginArray\",\"PopStateEvent\",\"PopupBlockedEvent\",\"ProcessingInstruction\",\"ProgressEvent\",\"Promise\",\"PropertyNodeList\",\"Proxy\",\"PushManager\",\"PushSubscription\",\"Q\",\"QUOTA_ERR\",\"QUOTA_EXCEEDED_ERR\",\"QueryInterface\",\"READ_ONLY\",\"READ_ONLY_ERR\",\"READ_WRITE\",\"RED_BITS\",\"REMOVAL\",\"RENDERBUFFER\",\"RENDERBUFFER_ALPHA_SIZE\",\"RENDERBUFFER_BINDING\",\"RENDERBUFFER_BLUE_SIZE\",\"RENDERBUFFER_DEPTH_SIZE\",\"RENDERBUFFER_GREEN_SIZE\",\"RENDERBUFFER_HEIGHT\",\"RENDERBUFFER_INTERNAL_FORMAT\",\"RENDERBUFFER_RED_SIZE\",\"RENDERBUFFER_STENCIL_SIZE\",\"RENDERBUFFER_WIDTH\",\"RENDERER\",\"RENDERING_INTENT_ABSOLUTE_COLORIMETRIC\",\"RENDERING_INTENT_AUTO\",\"RENDERING_INTENT_PERCEPTUAL\",\"RENDERING_INTENT_RELATIVE_COLORIMETRIC\",\"RENDERING_INTENT_SATURATION\",\"RENDERING_INTENT_UNKNOWN\",\"REPEAT\",\"REPLACE\",\"RGB\",\"RGB565\",\"RGB5_A1\",\"RGBA\",\"RGBA4\",\"RGBColor\",\"ROTATION_CLOCKWISE\",\"ROTATION_COUNTERCLOCKWISE\",\"RTCDataChannelEvent\",\"RTCIceCandidate\",\"RTCPeerConnectionIceEvent\",\"RTCRtpReceiver\",\"RTCRtpSender\",\"RTCSessionDescription\",\"RTCStatsReport\",\"RadioNodeList\",\"Range\",\"RangeError\",\"RangeException\",\"RecordErrorEvent\",\"Rect\",\"ReferenceError\",\"RegExp\",\"Request\",\"Response\",\"SAMPLER_2D\",\"SAMPLER_CUBE\",\"SAMPLES\",\"SAMPLE_ALPHA_TO_COVERAGE\",\"SAMPLE_BUFFERS\",\"SAMPLE_COVERAGE\",\"SAMPLE_COVERAGE_INVERT\",\"SAMPLE_COVERAGE_VALUE\",\"SAWTOOTH\",\"SCHEDULED_STATE\",\"SCISSOR_BOX\",\"SCISSOR_TEST\",\"SCROLL_PAGE_DOWN\",\"SCROLL_PAGE_UP\",\"SDP_ANSWER\",\"SDP_OFFER\",\"SDP_PRANSWER\",\"SECURITY_ERR\",\"SELECT\",\"SERIALIZE_ERR\",\"SEVERITY_ERROR\",\"SEVERITY_FATAL_ERROR\",\"SEVERITY_WARNING\",\"SHADER_COMPILER\",\"SHADER_TYPE\",\"SHADING_LANGUAGE_VERSION\",\"SHIFT_MASK\",\"SHORT\",\"SHOWING\",\"SHOW_ALL\",\"SHOW_ATTRIBUTE\",\"SHOW_CDATA_SECTION\",\"SHOW_COMMENT\",\"SHOW_DOCUMENT\",\"SHOW_DOCUMENT_FRAGMENT\",\"SHOW_DOCUMENT_TYPE\",\"SHOW_ELEMENT\",\"SHOW_ENTITY\",\"SHOW_ENTITY_REFERENCE\",\"SHOW_NOTATION\",\"SHOW_PROCESSING_INSTRUCTION\",\"SHOW_TEXT\",\"SINE\",\"SOUNDFIELD\",\"SQLException\",\"SQRT1_2\",\"SQRT2\",\"SQUARE\",\"SRC_ALPHA\",\"SRC_ALPHA_SATURATE\",\"SRC_COLOR\",\"START_TO_END\",\"START_TO_START\",\"STATIC_DRAW\",\"STENCIL_ATTACHMENT\",\"STENCIL_BACK_FAIL\",\"STENCIL_BACK_FUNC\",\"STENCIL_BACK_PASS_DEPTH_FAIL\",\"STENCIL_BACK_PASS_DEPTH_PASS\",\"STENCIL_BACK_REF\",\"STENCIL_BACK_VALUE_MASK\",\"STENCIL_BACK_WRITEMASK\",\"STENCIL_BITS\",\"STENCIL_BUFFER_BIT\",\"STENCIL_CLEAR_VALUE\",\"STENCIL_FAIL\",\"STENCIL_FUNC\",\"STENCIL_INDEX\",\"STENCIL_INDEX8\",\"STENCIL_PASS_DEPTH_FAIL\",\"STENCIL_PASS_DEPTH_PASS\",\"STENCIL_REF\",\"STENCIL_TEST\",\"STENCIL_VALUE_MASK\",\"STENCIL_WRITEMASK\",\"STREAM_DRAW\",\"STRING_TYPE\",\"STYLE_RULE\",\"SUBPIXEL_BITS\",\"SUPPORTS_RULE\",\"SVGAElement\",\"SVGAltGlyphDefElement\",\"SVGAltGlyphElement\",\"SVGAltGlyphItemElement\",\"SVGAngle\",\"SVGAnimateColorElement\",\"SVGAnimateElement\",\"SVGAnimateMotionElement\",\"SVGAnimateTransformElement\",\"SVGAnimatedAngle\",\"SVGAnimatedBoolean\",\"SVGAnimatedEnumeration\",\"SVGAnimatedInteger\",\"SVGAnimatedLength\",\"SVGAnimatedLengthList\",\"SVGAnimatedNumber\",\"SVGAnimatedNumberList\",\"SVGAnimatedPreserveAspectRatio\",\"SVGAnimatedRect\",\"SVGAnimatedString\",\"SVGAnimatedTransformList\",\"SVGAnimationElement\",\"SVGCircleElement\",\"SVGClipPathElement\",\"SVGColor\",\"SVGComponentTransferFunctionElement\",\"SVGCursorElement\",\"SVGDefsElement\",\"SVGDescElement\",\"SVGDiscardElement\",\"SVGDocument\",\"SVGElement\",\"SVGElementInstance\",\"SVGElementInstanceList\",\"SVGEllipseElement\",\"SVGException\",\"SVGFEBlendElement\",\"SVGFEColorMatrixElement\",\"SVGFEComponentTransferElement\",\"SVGFECompositeElement\",\"SVGFEConvolveMatrixElement\",\"SVGFEDiffuseLightingElement\",\"SVGFEDisplacementMapElement\",\"SVGFEDistantLightElement\",\"SVGFEDropShadowElement\",\"SVGFEFloodElement\",\"SVGFEFuncAElement\",\"SVGFEFuncBElement\",\"SVGFEFuncGElement\",\"SVGFEFuncRElement\",\"SVGFEGaussianBlurElement\",\"SVGFEImageElement\",\"SVGFEMergeElement\",\"SVGFEMergeNodeElement\",\"SVGFEMorphologyElement\",\"SVGFEOffsetElement\",\"SVGFEPointLightElement\",\"SVGFESpecularLightingElement\",\"SVGFESpotLightElement\",\"SVGFETileElement\",\"SVGFETurbulenceElement\",\"SVGFilterElement\",\"SVGFontElement\",\"SVGFontFaceElement\",\"SVGFontFaceFormatElement\",\"SVGFontFaceNameElement\",\"SVGFontFaceSrcElement\",\"SVGFontFaceUriElement\",\"SVGForeignObjectElement\",\"SVGGElement\",\"SVGGeometryElement\",\"SVGGlyphElement\",\"SVGGlyphRefElement\",\"SVGGradientElement\",\"SVGGraphicsElement\",\"SVGHKernElement\",\"SVGImageElement\",\"SVGLength\",\"SVGLengthList\",\"SVGLineElement\",\"SVGLinearGradientElement\",\"SVGMPathElement\",\"SVGMarkerElement\",\"SVGMaskElement\",\"SVGMatrix\",\"SVGMetadataElement\",\"SVGMissingGlyphElement\",\"SVGNumber\",\"SVGNumberList\",\"SVGPaint\",\"SVGPathElement\",\"SVGPathSeg\",\"SVGPathSegArcAbs\",\"SVGPathSegArcRel\",\"SVGPathSegClosePath\",\"SVGPathSegCurvetoCubicAbs\",\"SVGPathSegCurvetoCubicRel\",\"SVGPathSegCurvetoCubicSmoothAbs\",\"SVGPathSegCurvetoCubicSmoothRel\",\"SVGPathSegCurvetoQuadraticAbs\",\"SVGPathSegCurvetoQuadraticRel\",\"SVGPathSegCurvetoQuadraticSmoothAbs\",\"SVGPathSegCurvetoQuadraticSmoothRel\",\"SVGPathSegLinetoAbs\",\"SVGPathSegLinetoHorizontalAbs\",\"SVGPathSegLinetoHorizontalRel\",\"SVGPathSegLinetoRel\",\"SVGPathSegLinetoVerticalAbs\",\"SVGPathSegLinetoVerticalRel\",\"SVGPathSegList\",\"SVGPathSegMovetoAbs\",\"SVGPathSegMovetoRel\",\"SVGPatternElement\",\"SVGPoint\",\"SVGPointList\",\"SVGPolygonElement\",\"SVGPolylineElement\",\"SVGPreserveAspectRatio\",\"SVGRadialGradientElement\",\"SVGRect\",\"SVGRectElement\",\"SVGRenderingIntent\",\"SVGSVGElement\",\"SVGScriptElement\",\"SVGSetElement\",\"SVGStopElement\",\"SVGStringList\",\"SVGStyleElement\",\"SVGSwitchElement\",\"SVGSymbolElement\",\"SVGTRefElement\",\"SVGTSpanElement\",\"SVGTextContentElement\",\"SVGTextElement\",\"SVGTextPathElement\",\"SVGTextPositioningElement\",\"SVGTitleElement\",\"SVGTransform\",\"SVGTransformList\",\"SVGUnitTypes\",\"SVGUseElement\",\"SVGVKernElement\",\"SVGViewElement\",\"SVGViewSpec\",\"SVGZoomAndPan\",\"SVGZoomEvent\",\"SVG_ANGLETYPE_DEG\",\"SVG_ANGLETYPE_GRAD\",\"SVG_ANGLETYPE_RAD\",\"SVG_ANGLETYPE_UNKNOWN\",\"SVG_ANGLETYPE_UNSPECIFIED\",\"SVG_CHANNEL_A\",\"SVG_CHANNEL_B\",\"SVG_CHANNEL_G\",\"SVG_CHANNEL_R\",\"SVG_CHANNEL_UNKNOWN\",\"SVG_COLORTYPE_CURRENTCOLOR\",\"SVG_COLORTYPE_RGBCOLOR\",\"SVG_COLORTYPE_RGBCOLOR_ICCCOLOR\",\"SVG_COLORTYPE_UNKNOWN\",\"SVG_EDGEMODE_DUPLICATE\",\"SVG_EDGEMODE_NONE\",\"SVG_EDGEMODE_UNKNOWN\",\"SVG_EDGEMODE_WRAP\",\"SVG_FEBLEND_MODE_COLOR\",\"SVG_FEBLEND_MODE_COLOR_BURN\",\"SVG_FEBLEND_MODE_COLOR_DODGE\",\"SVG_FEBLEND_MODE_DARKEN\",\"SVG_FEBLEND_MODE_DIFFERENCE\",\"SVG_FEBLEND_MODE_EXCLUSION\",\"SVG_FEBLEND_MODE_HARD_LIGHT\",\"SVG_FEBLEND_MODE_HUE\",\"SVG_FEBLEND_MODE_LIGHTEN\",\"SVG_FEBLEND_MODE_LUMINOSITY\",\"SVG_FEBLEND_MODE_MULTIPLY\",\"SVG_FEBLEND_MODE_NORMAL\",\"SVG_FEBLEND_MODE_OVERLAY\",\"SVG_FEBLEND_MODE_SATURATION\",\"SVG_FEBLEND_MODE_SCREEN\",\"SVG_FEBLEND_MODE_SOFT_LIGHT\",\"SVG_FEBLEND_MODE_UNKNOWN\",\"SVG_FECOLORMATRIX_TYPE_HUEROTATE\",\"SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA\",\"SVG_FECOLORMATRIX_TYPE_MATRIX\",\"SVG_FECOLORMATRIX_TYPE_SATURATE\",\"SVG_FECOLORMATRIX_TYPE_UNKNOWN\",\"SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE\",\"SVG_FECOMPONENTTRANSFER_TYPE_GAMMA\",\"SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY\",\"SVG_FECOMPONENTTRANSFER_TYPE_LINEAR\",\"SVG_FECOMPONENTTRANSFER_TYPE_TABLE\",\"SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN\",\"SVG_FECOMPOSITE_OPERATOR_ARITHMETIC\",\"SVG_FECOMPOSITE_OPERATOR_ATOP\",\"SVG_FECOMPOSITE_OPERATOR_IN\",\"SVG_FECOMPOSITE_OPERATOR_OUT\",\"SVG_FECOMPOSITE_OPERATOR_OVER\",\"SVG_FECOMPOSITE_OPERATOR_UNKNOWN\",\"SVG_FECOMPOSITE_OPERATOR_XOR\",\"SVG_INVALID_VALUE_ERR\",\"SVG_LENGTHTYPE_CM\",\"SVG_LENGTHTYPE_EMS\",\"SVG_LENGTHTYPE_EXS\",\"SVG_LENGTHTYPE_IN\",\"SVG_LENGTHTYPE_MM\",\"SVG_LENGTHTYPE_NUMBER\",\"SVG_LENGTHTYPE_PC\",\"SVG_LENGTHTYPE_PERCENTAGE\",\"SVG_LENGTHTYPE_PT\",\"SVG_LENGTHTYPE_PX\",\"SVG_LENGTHTYPE_UNKNOWN\",\"SVG_MARKERUNITS_STROKEWIDTH\",\"SVG_MARKERUNITS_UNKNOWN\",\"SVG_MARKERUNITS_USERSPACEONUSE\",\"SVG_MARKER_ORIENT_ANGLE\",\"SVG_MARKER_ORIENT_AUTO\",\"SVG_MARKER_ORIENT_UNKNOWN\",\"SVG_MASKTYPE_ALPHA\",\"SVG_MASKTYPE_LUMINANCE\",\"SVG_MATRIX_NOT_INVERTABLE\",\"SVG_MEETORSLICE_MEET\",\"SVG_MEETORSLICE_SLICE\",\"SVG_MEETORSLICE_UNKNOWN\",\"SVG_MORPHOLOGY_OPERATOR_DILATE\",\"SVG_MORPHOLOGY_OPERATOR_ERODE\",\"SVG_MORPHOLOGY_OPERATOR_UNKNOWN\",\"SVG_PAINTTYPE_CURRENTCOLOR\",\"SVG_PAINTTYPE_NONE\",\"SVG_PAINTTYPE_RGBCOLOR\",\"SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR\",\"SVG_PAINTTYPE_UNKNOWN\",\"SVG_PAINTTYPE_URI\",\"SVG_PAINTTYPE_URI_CURRENTCOLOR\",\"SVG_PAINTTYPE_URI_NONE\",\"SVG_PAINTTYPE_URI_RGBCOLOR\",\"SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR\",\"SVG_PRESERVEASPECTRATIO_NONE\",\"SVG_PRESERVEASPECTRATIO_UNKNOWN\",\"SVG_PRESERVEASPECTRATIO_XMAXYMAX\",\"SVG_PRESERVEASPECTRATIO_XMAXYMID\",\"SVG_PRESERVEASPECTRATIO_XMAXYMIN\",\"SVG_PRESERVEASPECTRATIO_XMIDYMAX\",\"SVG_PRESERVEASPECTRATIO_XMIDYMID\",\"SVG_PRESERVEASPECTRATIO_XMIDYMIN\",\"SVG_PRESERVEASPECTRATIO_XMINYMAX\",\"SVG_PRESERVEASPECTRATIO_XMINYMID\",\"SVG_PRESERVEASPECTRATIO_XMINYMIN\",\"SVG_SPREADMETHOD_PAD\",\"SVG_SPREADMETHOD_REFLECT\",\"SVG_SPREADMETHOD_REPEAT\",\"SVG_SPREADMETHOD_UNKNOWN\",\"SVG_STITCHTYPE_NOSTITCH\",\"SVG_STITCHTYPE_STITCH\",\"SVG_STITCHTYPE_UNKNOWN\",\"SVG_TRANSFORM_MATRIX\",\"SVG_TRANSFORM_ROTATE\",\"SVG_TRANSFORM_SCALE\",\"SVG_TRANSFORM_SKEWX\",\"SVG_TRANSFORM_SKEWY\",\"SVG_TRANSFORM_TRANSLATE\",\"SVG_TRANSFORM_UNKNOWN\",\"SVG_TURBULENCE_TYPE_FRACTALNOISE\",\"SVG_TURBULENCE_TYPE_TURBULENCE\",\"SVG_TURBULENCE_TYPE_UNKNOWN\",\"SVG_UNIT_TYPE_OBJECTBOUNDINGBOX\",\"SVG_UNIT_TYPE_UNKNOWN\",\"SVG_UNIT_TYPE_USERSPACEONUSE\",\"SVG_WRONG_TYPE_ERR\",\"SVG_ZOOMANDPAN_DISABLE\",\"SVG_ZOOMANDPAN_MAGNIFY\",\"SVG_ZOOMANDPAN_UNKNOWN\",\"SYNTAX_ERR\",\"SavedPages\",\"Screen\",\"ScreenOrientation\",\"Script\",\"ScriptProcessorNode\",\"ScrollAreaEvent\",\"SecurityPolicyViolationEvent\",\"Selection\",\"ServiceWorker\",\"ServiceWorkerContainer\",\"ServiceWorkerRegistration\",\"SessionDescription\",\"Set\",\"ShadowRoot\",\"SharedWorker\",\"SimpleGestureEvent\",\"SpeechSynthesisEvent\",\"SpeechSynthesisUtterance\",\"StopIteration\",\"Storage\",\"StorageEvent\",\"String\",\"StyleSheet\",\"StyleSheetList\",\"SubtleCrypto\",\"Symbol\",\"SyntaxError\",\"TEMPORARY\",\"TEXTPATH_METHODTYPE_ALIGN\",\"TEXTPATH_METHODTYPE_STRETCH\",\"TEXTPATH_METHODTYPE_UNKNOWN\",\"TEXTPATH_SPACINGTYPE_AUTO\",\"TEXTPATH_SPACINGTYPE_EXACT\",\"TEXTPATH_SPACINGTYPE_UNKNOWN\",\"TEXTURE\",\"TEXTURE0\",\"TEXTURE1\",\"TEXTURE10\",\"TEXTURE11\",\"TEXTURE12\",\"TEXTURE13\",\"TEXTURE14\",\"TEXTURE15\",\"TEXTURE16\",\"TEXTURE17\",\"TEXTURE18\",\"TEXTURE19\",\"TEXTURE2\",\"TEXTURE20\",\"TEXTURE21\",\"TEXTURE22\",\"TEXTURE23\",\"TEXTURE24\",\"TEXTURE25\",\"TEXTURE26\",\"TEXTURE27\",\"TEXTURE28\",\"TEXTURE29\",\"TEXTURE3\",\"TEXTURE30\",\"TEXTURE31\",\"TEXTURE4\",\"TEXTURE5\",\"TEXTURE6\",\"TEXTURE7\",\"TEXTURE8\",\"TEXTURE9\",\"TEXTURE_2D\",\"TEXTURE_BINDING_2D\",\"TEXTURE_BINDING_CUBE_MAP\",\"TEXTURE_CUBE_MAP\",\"TEXTURE_CUBE_MAP_NEGATIVE_X\",\"TEXTURE_CUBE_MAP_NEGATIVE_Y\",\"TEXTURE_CUBE_MAP_NEGATIVE_Z\",\"TEXTURE_CUBE_MAP_POSITIVE_X\",\"TEXTURE_CUBE_MAP_POSITIVE_Y\",\"TEXTURE_CUBE_MAP_POSITIVE_Z\",\"TEXTURE_MAG_FILTER\",\"TEXTURE_MAX_ANISOTROPY_EXT\",\"TEXTURE_MIN_FILTER\",\"TEXTURE_WRAP_S\",\"TEXTURE_WRAP_T\",\"TEXT_NODE\",\"TIMEOUT\",\"TIMEOUT_ERR\",\"TOO_LARGE_ERR\",\"TRANSACTION_INACTIVE_ERR\",\"TRIANGLE\",\"TRIANGLES\",\"TRIANGLE_FAN\",\"TRIANGLE_STRIP\",\"TYPE_BACK_FORWARD\",\"TYPE_ERR\",\"TYPE_MISMATCH_ERR\",\"TYPE_NAVIGATE\",\"TYPE_RELOAD\",\"TYPE_RESERVED\",\"Text\",\"TextDecoder\",\"TextEncoder\",\"TextEvent\",\"TextMetrics\",\"TextTrack\",\"TextTrackCue\",\"TextTrackCueList\",\"TextTrackList\",\"TimeEvent\",\"TimeRanges\",\"Touch\",\"TouchEvent\",\"TouchList\",\"TrackEvent\",\"TransitionEvent\",\"TreeWalker\",\"TypeError\",\"UIEvent\",\"UNCACHED\",\"UNKNOWN_ERR\",\"UNKNOWN_RULE\",\"UNMASKED_RENDERER_WEBGL\",\"UNMASKED_VENDOR_WEBGL\",\"UNORDERED_NODE_ITERATOR_TYPE\",\"UNORDERED_NODE_SNAPSHOT_TYPE\",\"UNPACK_ALIGNMENT\",\"UNPACK_COLORSPACE_CONVERSION_WEBGL\",\"UNPACK_FLIP_Y_WEBGL\",\"UNPACK_PREMULTIPLY_ALPHA_WEBGL\",\"UNSCHEDULED_STATE\",\"UNSENT\",\"UNSIGNED_BYTE\",\"UNSIGNED_INT\",\"UNSIGNED_SHORT\",\"UNSIGNED_SHORT_4_4_4_4\",\"UNSIGNED_SHORT_5_5_5_1\",\"UNSIGNED_SHORT_5_6_5\",\"UNSPECIFIED_EVENT_TYPE_ERR\",\"UPDATEREADY\",\"URIError\",\"URL\",\"URLSearchParams\",\"URLUnencoded\",\"URL_MISMATCH_ERR\",\"UTC\",\"Uint16Array\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"UserMessageHandler\",\"UserMessageHandlersNamespace\",\"UserProximityEvent\",\"VALIDATE_STATUS\",\"VALIDATION_ERR\",\"VARIABLES_RULE\",\"VENDOR\",\"VERSION\",\"VERSION_CHANGE\",\"VERSION_ERR\",\"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING\",\"VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE\",\"VERTEX_ATTRIB_ARRAY_ENABLED\",\"VERTEX_ATTRIB_ARRAY_NORMALIZED\",\"VERTEX_ATTRIB_ARRAY_POINTER\",\"VERTEX_ATTRIB_ARRAY_SIZE\",\"VERTEX_ATTRIB_ARRAY_STRIDE\",\"VERTEX_ATTRIB_ARRAY_TYPE\",\"VERTEX_SHADER\",\"VERTICAL\",\"VERTICAL_AXIS\",\"VER_ERR\",\"VIEWPORT\",\"VIEWPORT_RULE\",\"VTTCue\",\"VTTRegion\",\"ValidityState\",\"VideoStreamTrack\",\"WEBKIT_FILTER_RULE\",\"WEBKIT_KEYFRAMES_RULE\",\"WEBKIT_KEYFRAME_RULE\",\"WEBKIT_REGION_RULE\",\"WRONG_DOCUMENT_ERR\",\"WaveShaperNode\",\"WeakMap\",\"WeakSet\",\"WebGLActiveInfo\",\"WebGLBuffer\",\"WebGLContextEvent\",\"WebGLFramebuffer\",\"WebGLProgram\",\"WebGLRenderbuffer\",\"WebGLRenderingContext\",\"WebGLShader\",\"WebGLShaderPrecisionFormat\",\"WebGLTexture\",\"WebGLUniformLocation\",\"WebGLVertexArray\",\"WebKitAnimationEvent\",\"WebKitBlobBuilder\",\"WebKitCSSFilterRule\",\"WebKitCSSFilterValue\",\"WebKitCSSKeyframeRule\",\"WebKitCSSKeyframesRule\",\"WebKitCSSMatrix\",\"WebKitCSSRegionRule\",\"WebKitCSSTransformValue\",\"WebKitDataCue\",\"WebKitGamepad\",\"WebKitMediaKeyError\",\"WebKitMediaKeyMessageEvent\",\"WebKitMediaKeySession\",\"WebKitMediaKeys\",\"WebKitMediaSource\",\"WebKitMutationObserver\",\"WebKitNamespace\",\"WebKitPlaybackTargetAvailabilityEvent\",\"WebKitPoint\",\"WebKitShadowRoot\",\"WebKitSourceBuffer\",\"WebKitSourceBufferList\",\"WebKitTransitionEvent\",\"WebSocket\",\"WheelEvent\",\"Window\",\"Worker\",\"XMLDocument\",\"XMLHttpRequest\",\"XMLHttpRequestEventTarget\",\"XMLHttpRequestException\",\"XMLHttpRequestProgressEvent\",\"XMLHttpRequestUpload\",\"XMLSerializer\",\"XMLStylesheetProcessingInstruction\",\"XPathEvaluator\",\"XPathException\",\"XPathExpression\",\"XPathNSResolver\",\"XPathResult\",\"XSLTProcessor\",\"ZERO\",\"_XD0M_\",\"_YD0M_\",\"__defineGetter__\",\"__defineSetter__\",\"__lookupGetter__\",\"__lookupSetter__\",\"__opera\",\"__proto__\",\"_browserjsran\",\"a\",\"aLink\",\"abbr\",\"abort\",\"abs\",\"absolute\",\"acceleration\",\"accelerationIncludingGravity\",\"accelerator\",\"accept\",\"acceptCharset\",\"acceptNode\",\"accessKey\",\"accessKeyLabel\",\"accuracy\",\"acos\",\"acosh\",\"action\",\"actionURL\",\"active\",\"activeCues\",\"activeElement\",\"activeSourceBuffers\",\"activeSourceCount\",\"activeTexture\",\"add\",\"addBehavior\",\"addCandidate\",\"addColorStop\",\"addCue\",\"addElement\",\"addEventListener\",\"addFilter\",\"addFromString\",\"addFromUri\",\"addIceCandidate\",\"addImport\",\"addListener\",\"addNamed\",\"addPageRule\",\"addPath\",\"addPointer\",\"addRange\",\"addRegion\",\"addRule\",\"addSearchEngine\",\"addSourceBuffer\",\"addStream\",\"addTextTrack\",\"addTrack\",\"addWakeLockListener\",\"addedNodes\",\"additionalName\",\"additiveSymbols\",\"addons\",\"adoptNode\",\"adr\",\"advance\",\"alert\",\"algorithm\",\"align\",\"align-content\",\"align-items\",\"align-self\",\"alignContent\",\"alignItems\",\"alignSelf\",\"alignmentBaseline\",\"alinkColor\",\"all\",\"allSettled\",\"allowFullscreen\",\"allowedDirections\",\"alpha\",\"alt\",\"altGraphKey\",\"altHtml\",\"altKey\",\"altLeft\",\"altitude\",\"altitudeAccuracy\",\"amplitude\",\"ancestorOrigins\",\"anchor\",\"anchorNode\",\"anchorOffset\",\"anchors\",\"angle\",\"animVal\",\"animate\",\"animatedInstanceRoot\",\"animatedNormalizedPathSegList\",\"animatedPathSegList\",\"animatedPoints\",\"animation\",\"animation-delay\",\"animation-direction\",\"animation-duration\",\"animation-fill-mode\",\"animation-iteration-count\",\"animation-name\",\"animation-play-state\",\"animation-timing-function\",\"animationDelay\",\"animationDirection\",\"animationDuration\",\"animationFillMode\",\"animationIterationCount\",\"animationName\",\"animationPlayState\",\"animationStartTime\",\"animationTimingFunction\",\"animationsPaused\",\"anniversary\",\"any\",\"app\",\"appCodeName\",\"appMinorVersion\",\"appName\",\"appNotifications\",\"appVersion\",\"append\",\"appendBuffer\",\"appendChild\",\"appendData\",\"appendItem\",\"appendMedium\",\"appendNamed\",\"appendRule\",\"appendStream\",\"appendWindowEnd\",\"appendWindowStart\",\"applets\",\"applicationCache\",\"apply\",\"applyElement\",\"arc\",\"arcTo\",\"archive\",\"areas\",\"arguments\",\"arrayBuffer\",\"asin\",\"asinh\",\"assert\",\"assign\",\"async\",\"atEnd\",\"atan\",\"atan2\",\"atanh\",\"atob\",\"attachEvent\",\"attachShader\",\"attachShadow\",\"attachments\",\"attack\",\"attrChange\",\"attrName\",\"attributeFilter\",\"attributeName\",\"attributeNamespace\",\"attributeOldValue\",\"attributes\",\"audioTracks\",\"autoIncrement\",\"autobuffer\",\"autocapitalize\",\"autocomplete\",\"autocorrect\",\"autofocus\",\"autoplay\",\"availHeight\",\"availLeft\",\"availTop\",\"availWidth\",\"availability\",\"available\",\"aversion\",\"axes\",\"axis\",\"azimuth\",\"b\",\"back\",\"backface-visibility\",\"backfaceVisibility\",\"background\",\"background-attachment\",\"background-blend-mode\",\"background-clip\",\"background-color\",\"background-image\",\"background-origin\",\"background-position\",\"background-repeat\",\"background-size\",\"backgroundAttachment\",\"backgroundBlendMode\",\"backgroundClip\",\"backgroundColor\",\"backgroundImage\",\"backgroundOrigin\",\"backgroundPosition\",\"backgroundPositionX\",\"backgroundPositionY\",\"backgroundRepeat\",\"backgroundSize\",\"badInput\",\"balance\",\"baseFrequencyX\",\"baseFrequencyY\",\"baseNode\",\"baseOffset\",\"baseURI\",\"baseVal\",\"baselineShift\",\"battery\",\"bday\",\"beginElement\",\"beginElementAt\",\"beginPath\",\"behavior\",\"behaviorCookie\",\"behaviorPart\",\"behaviorUrns\",\"beta\",\"bezierCurveTo\",\"bgColor\",\"bgProperties\",\"bias\",\"big\",\"binaryType\",\"bind\",\"bindAttribLocation\",\"bindBuffer\",\"bindFramebuffer\",\"bindRenderbuffer\",\"bindTexture\",\"blendColor\",\"blendEquation\",\"blendEquationSeparate\",\"blendFunc\",\"blendFuncSeparate\",\"blink\",\"blob\",\"blockDirection\",\"blue\",\"blur\",\"body\",\"bodyUsed\",\"bold\",\"bookmarks\",\"booleanValue\",\"border\",\"border-bottom\",\"border-bottom-color\",\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-bottom-style\",\"border-bottom-width\",\"border-collapse\",\"border-color\",\"border-image\",\"border-image-outset\",\"border-image-repeat\",\"border-image-slice\",\"border-image-source\",\"border-image-width\",\"border-left\",\"border-left-color\",\"border-left-style\",\"border-left-width\",\"border-radius\",\"border-right\",\"border-right-color\",\"border-right-style\",\"border-right-width\",\"border-spacing\",\"border-style\",\"border-top\",\"border-top-color\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-top-style\",\"border-top-width\",\"border-width\",\"borderBottom\",\"borderBottomColor\",\"borderBottomLeftRadius\",\"borderBottomRightRadius\",\"borderBottomStyle\",\"borderBottomWidth\",\"borderCollapse\",\"borderColor\",\"borderColorDark\",\"borderColorLight\",\"borderImage\",\"borderImageOutset\",\"borderImageRepeat\",\"borderImageSlice\",\"borderImageSource\",\"borderImageWidth\",\"borderLeft\",\"borderLeftColor\",\"borderLeftStyle\",\"borderLeftWidth\",\"borderRadius\",\"borderRight\",\"borderRightColor\",\"borderRightStyle\",\"borderRightWidth\",\"borderSpacing\",\"borderStyle\",\"borderTop\",\"borderTopColor\",\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderTopStyle\",\"borderTopWidth\",\"borderWidth\",\"bottom\",\"bottomMargin\",\"bound\",\"boundElements\",\"boundingClientRect\",\"boundingHeight\",\"boundingLeft\",\"boundingTop\",\"boundingWidth\",\"bounds\",\"box-decoration-break\",\"box-shadow\",\"box-sizing\",\"boxDecorationBreak\",\"boxShadow\",\"boxSizing\",\"breakAfter\",\"breakBefore\",\"breakInside\",\"browserLanguage\",\"btoa\",\"bubbles\",\"buffer\",\"bufferData\",\"bufferDepth\",\"bufferSize\",\"bufferSubData\",\"buffered\",\"bufferedAmount\",\"buildID\",\"buildNumber\",\"button\",\"buttonID\",\"buttons\",\"byteLength\",\"byteOffset\",\"c\",\"call\",\"caller\",\"canBeFormatted\",\"canBeMounted\",\"canBeShared\",\"canHaveChildren\",\"canHaveHTML\",\"canPlayType\",\"cancel\",\"cancelAnimationFrame\",\"cancelBubble\",\"cancelScheduledValues\",\"cancelable\",\"candidate\",\"canvas\",\"caption\",\"caption-side\",\"captionSide\",\"capture\",\"captureEvents\",\"captureStackTrace\",\"caretPositionFromPoint\",\"caretRangeFromPoint\",\"cast\",\"catch\",\"category\",\"cbrt\",\"cd\",\"ceil\",\"cellIndex\",\"cellPadding\",\"cellSpacing\",\"cells\",\"ch\",\"chOff\",\"chain\",\"challenge\",\"changedTouches\",\"channel\",\"channelCount\",\"channelCountMode\",\"channelInterpretation\",\"char\",\"charAt\",\"charCode\",\"charCodeAt\",\"charIndex\",\"characterData\",\"characterDataOldValue\",\"characterSet\",\"charging\",\"chargingTime\",\"charset\",\"checkEnclosure\",\"checkFramebufferStatus\",\"checkIntersection\",\"checkValidity\",\"checked\",\"childElementCount\",\"childList\",\"childNodes\",\"children\",\"chrome\",\"ciphertext\",\"cite\",\"classList\",\"className\",\"classid\",\"clear\",\"clearAttributes\",\"clearColor\",\"clearData\",\"clearDepth\",\"clearImmediate\",\"clearInterval\",\"clearMarks\",\"clearMeasures\",\"clearParameters\",\"clearRect\",\"clearResourceTimings\",\"clearShadow\",\"clearStencil\",\"clearTimeout\",\"clearWatch\",\"click\",\"clickCount\",\"clientHeight\",\"clientInformation\",\"clientLeft\",\"clientRect\",\"clientRects\",\"clientTop\",\"clientWidth\",\"clientX\",\"clientY\",\"clip\",\"clip-path\",\"clip-rule\",\"clipBottom\",\"clipLeft\",\"clipPath\",\"clipPathUnits\",\"clipRight\",\"clipRule\",\"clipTop\",\"clipboardData\",\"clone\",\"cloneContents\",\"cloneNode\",\"cloneRange\",\"close\",\"closePath\",\"closed\",\"closest\",\"clz\",\"clz32\",\"cmp\",\"code\",\"codeBase\",\"codePointAt\",\"codeType\",\"colSpan\",\"collapse\",\"collapseToEnd\",\"collapseToStart\",\"collapsed\",\"collect\",\"colno\",\"color\",\"color-interpolation\",\"color-interpolation-filters\",\"colorDepth\",\"colorInterpolation\",\"colorInterpolationFilters\",\"colorMask\",\"colorType\",\"cols\",\"columnCount\",\"columnFill\",\"columnGap\",\"columnNumber\",\"columnRule\",\"columnRuleColor\",\"columnRuleStyle\",\"columnRuleWidth\",\"columnSpan\",\"columnWidth\",\"columns\",\"command\",\"commitPreferences\",\"commonAncestorContainer\",\"compact\",\"compareBoundaryPoints\",\"compareDocumentPosition\",\"compareEndPoints\",\"compareNode\",\"comparePoint\",\"compatMode\",\"compatible\",\"compile\",\"compileShader\",\"complete\",\"componentFromPoint\",\"compositionEndOffset\",\"compositionStartOffset\",\"compressedTexImage2D\",\"compressedTexSubImage2D\",\"concat\",\"conditionText\",\"coneInnerAngle\",\"coneOuterAngle\",\"coneOuterGain\",\"confirm\",\"confirmComposition\",\"confirmSiteSpecificTrackingException\",\"confirmWebWideTrackingException\",\"connect\",\"connectEnd\",\"connectStart\",\"connected\",\"connection\",\"connectionSpeed\",\"console\",\"consolidate\",\"constrictionActive\",\"constructor\",\"contactID\",\"contains\",\"containsNode\",\"content\",\"contentDocument\",\"contentEditable\",\"contentOverflow\",\"contentScriptType\",\"contentStyleType\",\"contentType\",\"contentWindow\",\"context\",\"contextMenu\",\"contextmenu\",\"continue\",\"continuous\",\"control\",\"controller\",\"controls\",\"convertToSpecifiedUnits\",\"cookie\",\"cookieEnabled\",\"coords\",\"copyFromChannel\",\"copyTexImage2D\",\"copyTexSubImage2D\",\"copyToChannel\",\"copyWithin\",\"correspondingElement\",\"correspondingUseElement\",\"cos\",\"cosh\",\"count\",\"counter-increment\",\"counter-reset\",\"counterIncrement\",\"counterReset\",\"cpuClass\",\"cpuSleepAllowed\",\"create\",\"createAnalyser\",\"createAnswer\",\"createAttribute\",\"createAttributeNS\",\"createBiquadFilter\",\"createBuffer\",\"createBufferSource\",\"createCDATASection\",\"createCSSStyleSheet\",\"createCaption\",\"createChannelMerger\",\"createChannelSplitter\",\"createComment\",\"createContextualFragment\",\"createControlRange\",\"createConvolver\",\"createDTMFSender\",\"createDataChannel\",\"createDelay\",\"createDelayNode\",\"createDocument\",\"createDocumentFragment\",\"createDocumentType\",\"createDynamicsCompressor\",\"createElement\",\"createElementNS\",\"createEntityReference\",\"createEvent\",\"createEventObject\",\"createExpression\",\"createFramebuffer\",\"createFunction\",\"createGain\",\"createGainNode\",\"createHTMLDocument\",\"createImageBitmap\",\"createImageData\",\"createIndex\",\"createJavaScriptNode\",\"createLinearGradient\",\"createMediaElementSource\",\"createMediaKeys\",\"createMediaStreamDestination\",\"createMediaStreamSource\",\"createMutableFile\",\"createNSResolver\",\"createNodeIterator\",\"createNotification\",\"createObjectStore\",\"createObjectURL\",\"createOffer\",\"createOscillator\",\"createPanner\",\"createPattern\",\"createPeriodicWave\",\"createPopup\",\"createProcessingInstruction\",\"createProgram\",\"createRadialGradient\",\"createRange\",\"createRangeCollection\",\"createRenderbuffer\",\"createSVGAngle\",\"createSVGLength\",\"createSVGMatrix\",\"createSVGNumber\",\"createSVGPathSegArcAbs\",\"createSVGPathSegArcRel\",\"createSVGPathSegClosePath\",\"createSVGPathSegCurvetoCubicAbs\",\"createSVGPathSegCurvetoCubicRel\",\"createSVGPathSegCurvetoCubicSmoothAbs\",\"createSVGPathSegCurvetoCubicSmoothRel\",\"createSVGPathSegCurvetoQuadraticAbs\",\"createSVGPathSegCurvetoQuadraticRel\",\"createSVGPathSegCurvetoQuadraticSmoothAbs\",\"createSVGPathSegCurvetoQuadraticSmoothRel\",\"createSVGPathSegLinetoAbs\",\"createSVGPathSegLinetoHorizontalAbs\",\"createSVGPathSegLinetoHorizontalRel\",\"createSVGPathSegLinetoRel\",\"createSVGPathSegLinetoVerticalAbs\",\"createSVGPathSegLinetoVerticalRel\",\"createSVGPathSegMovetoAbs\",\"createSVGPathSegMovetoRel\",\"createSVGPoint\",\"createSVGRect\",\"createSVGTransform\",\"createSVGTransformFromMatrix\",\"createScriptProcessor\",\"createSession\",\"createShader\",\"createShadowRoot\",\"createStereoPanner\",\"createStyleSheet\",\"createTBody\",\"createTFoot\",\"createTHead\",\"createTextNode\",\"createTextRange\",\"createTexture\",\"createTouch\",\"createTouchList\",\"createTreeWalker\",\"createWaveShaper\",\"creationTime\",\"crossOrigin\",\"crypto\",\"csi\",\"cssFloat\",\"cssRules\",\"cssText\",\"cssValueType\",\"ctrlKey\",\"ctrlLeft\",\"cues\",\"cullFace\",\"currentNode\",\"currentPage\",\"currentScale\",\"currentScript\",\"currentSrc\",\"currentState\",\"currentStyle\",\"currentTarget\",\"currentTime\",\"currentTranslate\",\"currentView\",\"cursor\",\"curve\",\"customError\",\"cx\",\"cy\",\"d\",\"data\",\"dataFld\",\"dataFormatAs\",\"dataPageSize\",\"dataSrc\",\"dataTransfer\",\"database\",\"dataset\",\"dateTime\",\"db\",\"debug\",\"debuggerEnabled\",\"declare\",\"decode\",\"decodeAudioData\",\"decodeURI\",\"decodeURIComponent\",\"decodingInfo\",\"decrypt\",\"default\",\"defaultCharset\",\"defaultChecked\",\"defaultMuted\",\"defaultPlaybackRate\",\"defaultPrevented\",\"defaultSelected\",\"defaultStatus\",\"defaultURL\",\"defaultValue\",\"defaultView\",\"defaultstatus\",\"defer\",\"defineMagicFunction\",\"defineMagicVariable\",\"defineProperties\",\"defineProperty\",\"delayTime\",\"delete\",\"deleteBuffer\",\"deleteCaption\",\"deleteCell\",\"deleteContents\",\"deleteData\",\"deleteDatabase\",\"deleteFramebuffer\",\"deleteFromDocument\",\"deleteIndex\",\"deleteMedium\",\"deleteObjectStore\",\"deleteProgram\",\"deleteRenderbuffer\",\"deleteRow\",\"deleteRule\",\"deleteShader\",\"deleteTFoot\",\"deleteTHead\",\"deleteTexture\",\"deliverChangeRecords\",\"delivery\",\"deliveryInfo\",\"deliveryStatus\",\"deliveryTimestamp\",\"delta\",\"deltaMode\",\"deltaX\",\"deltaY\",\"deltaZ\",\"depthFunc\",\"depthMask\",\"depthRange\",\"deriveBits\",\"deriveKey\",\"description\",\"deselectAll\",\"designMode\",\"destination\",\"destinationURL\",\"detach\",\"detachEvent\",\"detachShader\",\"detail\",\"detune\",\"devicePixelRatio\",\"deviceXDPI\",\"deviceYDPI\",\"diffuseConstant\",\"digest\",\"dimensions\",\"dir\",\"dirName\",\"direction\",\"dirxml\",\"disable\",\"disableVertexAttribArray\",\"disabled\",\"dischargingTime\",\"disconnect\",\"dispatchEvent\",\"display\",\"distanceModel\",\"divisor\",\"djsapi\",\"djsproxy\",\"doImport\",\"doNotTrack\",\"doScroll\",\"doctype\",\"document\",\"documentElement\",\"documentMode\",\"documentURI\",\"dolphin\",\"dolphinGameCenter\",\"dolphininfo\",\"dolphinmeta\",\"domComplete\",\"domContentLoadedEventEnd\",\"domContentLoadedEventStart\",\"domInteractive\",\"domLoading\",\"domain\",\"domainLookupEnd\",\"domainLookupStart\",\"dominant-baseline\",\"dominantBaseline\",\"done\",\"dopplerFactor\",\"download\",\"dragDrop\",\"draggable\",\"drawArrays\",\"drawArraysInstancedANGLE\",\"drawCustomFocusRing\",\"drawElements\",\"drawElementsInstancedANGLE\",\"drawFocusIfNeeded\",\"drawImage\",\"drawImageFromRect\",\"drawSystemFocusRing\",\"drawingBufferHeight\",\"drawingBufferWidth\",\"dropEffect\",\"droppedVideoFrames\",\"dropzone\",\"dump\",\"duplicate\",\"duration\",\"dvname\",\"dvnum\",\"dx\",\"dy\",\"dynsrc\",\"e\",\"edgeMode\",\"effectAllowed\",\"elapsedTime\",\"elementFromPoint\",\"elements\",\"elevation\",\"ellipse\",\"email\",\"embeds\",\"empty\",\"empty-cells\",\"emptyCells\",\"enable\",\"enableBackground\",\"enableStyleSheetsForSet\",\"enableVertexAttribArray\",\"enabled\",\"enabledPlugin\",\"encode\",\"encodeURI\",\"encodeURIComponent\",\"encoding\",\"encrypt\",\"enctype\",\"end\",\"endContainer\",\"endElement\",\"endElementAt\",\"endOfStream\",\"endOffset\",\"endTime\",\"ended\",\"endsWith\",\"entities\",\"entries\",\"entryType\",\"enumerate\",\"enumerateEditable\",\"error\",\"errorCode\",\"escape\",\"eval\",\"evaluate\",\"event\",\"eventPhase\",\"every\",\"exception\",\"exec\",\"execCommand\",\"execCommandShowHelp\",\"execScript\",\"exitFullscreen\",\"exitPointerLock\",\"exp\",\"expand\",\"expandEntityReferences\",\"expando\",\"expansion\",\"expiryDate\",\"explicitOriginalTarget\",\"expm1\",\"exponent\",\"exponentialRampToValueAtTime\",\"exportKey\",\"extend\",\"extensions\",\"extentNode\",\"extentOffset\",\"external\",\"externalResourcesRequired\",\"extractContents\",\"extractable\",\"f\",\"face\",\"factoryReset\",\"fallback\",\"familyName\",\"farthestViewportElement\",\"fastSeek\",\"fatal\",\"fetch\",\"fetchStart\",\"fftSize\",\"fgColor\",\"fileCreatedDate\",\"fileHandle\",\"fileModifiedDate\",\"fileName\",\"fileSize\",\"fileUpdatedDate\",\"filename\",\"files\",\"fill\",\"fill-opacity\",\"fill-rule\",\"fillOpacity\",\"fillRect\",\"fillRule\",\"fillStyle\",\"fillText\",\"filter\",\"filterResX\",\"filterResY\",\"filterUnits\",\"filters\",\"finally\",\"find\",\"findIndex\",\"findRule\",\"findText\",\"finish\",\"fireEvent\",\"firstChild\",\"firstElementChild\",\"firstPage\",\"fixed\",\"flex\",\"flex-basis\",\"flex-direction\",\"flex-flow\",\"flex-grow\",\"flex-shrink\",\"flex-wrap\",\"flexBasis\",\"flexDirection\",\"flexFlow\",\"flexGrow\",\"flexShrink\",\"flexWrap\",\"flipX\",\"flipY\",\"float\",\"flood-color\",\"flood-opacity\",\"floodColor\",\"floodOpacity\",\"floor\",\"flush\",\"focus\",\"focusNode\",\"focusOffset\",\"font\",\"font-family\",\"font-feature-settings\",\"font-kerning\",\"font-language-override\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-synthesis\",\"font-variant\",\"font-variant-alternates\",\"font-variant-caps\",\"font-variant-east-asian\",\"font-variant-ligatures\",\"font-variant-numeric\",\"font-variant-position\",\"font-weight\",\"fontFamily\",\"fontFeatureSettings\",\"fontKerning\",\"fontLanguageOverride\",\"fontSize\",\"fontSizeAdjust\",\"fontSmoothingEnabled\",\"fontStretch\",\"fontStyle\",\"fontSynthesis\",\"fontVariant\",\"fontVariantAlternates\",\"fontVariantCaps\",\"fontVariantEastAsian\",\"fontVariantLigatures\",\"fontVariantNumeric\",\"fontVariantPosition\",\"fontWeight\",\"fontcolor\",\"fonts\",\"fontsize\",\"for\",\"forEach\",\"forceRedraw\",\"form\",\"formAction\",\"formEnctype\",\"formMethod\",\"formNoValidate\",\"formTarget\",\"format\",\"formatToParts\",\"forms\",\"forward\",\"fr\",\"frame\",\"frameBorder\",\"frameElement\",\"frameSpacing\",\"framebufferRenderbuffer\",\"framebufferTexture2D\",\"frames\",\"freeSpace\",\"freeze\",\"frequency\",\"frequencyBinCount\",\"from\",\"fromCharCode\",\"fromCodePoint\",\"fromElement\",\"frontFace\",\"fround\",\"fullScreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fx\",\"fy\",\"gain\",\"gamepad\",\"gamma\",\"genderIdentity\",\"generateKey\",\"generateMipmap\",\"generateRequest\",\"geolocation\",\"gestureObject\",\"get\",\"getActiveAttrib\",\"getActiveUniform\",\"getAdjacentText\",\"getAll\",\"getAllResponseHeaders\",\"getAsFile\",\"getAsString\",\"getAttachedShaders\",\"getAttribLocation\",\"getAttribute\",\"getAttributeNS\",\"getAttributeNode\",\"getAttributeNodeNS\",\"getAudioTracks\",\"getBBox\",\"getBattery\",\"getBlob\",\"getBookmark\",\"getBoundingClientRect\",\"getBufferParameter\",\"getByteFrequencyData\",\"getByteTimeDomainData\",\"getCSSCanvasContext\",\"getCTM\",\"getCandidateWindowClientRect\",\"getChannelData\",\"getCharNumAtPosition\",\"getClientRect\",\"getClientRects\",\"getCompositionAlternatives\",\"getComputedStyle\",\"getComputedTextLength\",\"getConfiguration\",\"getContext\",\"getContextAttributes\",\"getCounterValue\",\"getCueAsHTML\",\"getCueById\",\"getCurrentPosition\",\"getCurrentTime\",\"getData\",\"getDatabaseNames\",\"getDate\",\"getDay\",\"getDefaultComputedStyle\",\"getDestinationInsertionPoints\",\"getDistributedNodes\",\"getEditable\",\"getElementById\",\"getElementsByClassName\",\"getElementsByName\",\"getElementsByTagName\",\"getElementsByTagNameNS\",\"getEnclosureList\",\"getEndPositionOfChar\",\"getEntries\",\"getEntriesByName\",\"getEntriesByType\",\"getError\",\"getExtension\",\"getExtentOfChar\",\"getFeature\",\"getFile\",\"getFloat32\",\"getFloat64\",\"getFloatFrequencyData\",\"getFloatTimeDomainData\",\"getFloatValue\",\"getFramebufferAttachmentParameter\",\"getFrequencyResponse\",\"getFullYear\",\"getGamepads\",\"getHours\",\"getImageData\",\"getInt16\",\"getInt32\",\"getInt8\",\"getIntersectionList\",\"getItem\",\"getItems\",\"getKey\",\"getLineDash\",\"getLocalStreams\",\"getMarks\",\"getMatchedCSSRules\",\"getMeasures\",\"getMetadata\",\"getMilliseconds\",\"getMinutes\",\"getModifierState\",\"getMonth\",\"getNamedItem\",\"getNamedItemNS\",\"getNotifier\",\"getNumberOfChars\",\"getOverrideHistoryNavigationMode\",\"getOverrideStyle\",\"getOwnPropertyDescriptor\",\"getOwnPropertyNames\",\"getOwnPropertySymbols\",\"getParameter\",\"getPathSegAtLength\",\"getPointAtLength\",\"getPreference\",\"getPreferenceDefault\",\"getPresentationAttribute\",\"getPreventDefault\",\"getProgramInfoLog\",\"getProgramParameter\",\"getPropertyCSSValue\",\"getPropertyPriority\",\"getPropertyShorthand\",\"getPropertyValue\",\"getPrototypeOf\",\"getRGBColorValue\",\"getRandomValues\",\"getRangeAt\",\"getReceivers\",\"getRectValue\",\"getRegistration\",\"getRemoteStreams\",\"getRenderbufferParameter\",\"getResponseHeader\",\"getRoot\",\"getRotationOfChar\",\"getSVGDocument\",\"getScreenCTM\",\"getSeconds\",\"getSelection\",\"getSenders\",\"getShaderInfoLog\",\"getShaderParameter\",\"getShaderPrecisionFormat\",\"getShaderSource\",\"getSimpleDuration\",\"getSiteIcons\",\"getSources\",\"getSpeculativeParserUrls\",\"getStartPositionOfChar\",\"getStartTime\",\"getStats\",\"getStorageUpdates\",\"getStreamById\",\"getStringValue\",\"getSubStringLength\",\"getSubscription\",\"getSupportedExtensions\",\"getTexParameter\",\"getTime\",\"getTimezoneOffset\",\"getTotalLength\",\"getTrackById\",\"getTracks\",\"getTransformToElement\",\"getUTCDate\",\"getUTCDay\",\"getUTCFullYear\",\"getUTCHours\",\"getUTCMilliseconds\",\"getUTCMinutes\",\"getUTCMonth\",\"getUTCSeconds\",\"getUint16\",\"getUint32\",\"getUint8\",\"getUniform\",\"getUniformLocation\",\"getUserMedia\",\"getValues\",\"getVarDate\",\"getVariableValue\",\"getVertexAttrib\",\"getVertexAttribOffset\",\"getVideoPlaybackQuality\",\"getVideoTracks\",\"getWakeLockState\",\"getYear\",\"givenName\",\"global\",\"globalAlpha\",\"globalCompositeOperation\",\"glyphOrientationHorizontal\",\"glyphOrientationVertical\",\"glyphRef\",\"go\",\"gradientTransform\",\"gradientUnits\",\"grammars\",\"green\",\"group\",\"groupCollapsed\",\"groupEnd\",\"hardwareConcurrency\",\"has\",\"hasAttribute\",\"hasAttributeNS\",\"hasAttributes\",\"hasChildNodes\",\"hasComposition\",\"hasExtension\",\"hasFeature\",\"hasFocus\",\"hasLayout\",\"hasOwnProperty\",\"hash\",\"head\",\"headers\",\"heading\",\"height\",\"hidden\",\"hide\",\"hideFocus\",\"high\",\"hint\",\"history\",\"honorificPrefix\",\"honorificSuffix\",\"horizontalOverflow\",\"host\",\"hostname\",\"href\",\"hreflang\",\"hspace\",\"html5TagCheckInerface\",\"htmlFor\",\"htmlText\",\"httpEquiv\",\"hwTimestamp\",\"hypot\",\"iccId\",\"iceConnectionState\",\"iceGatheringState\",\"icon\",\"id\",\"identifier\",\"identity\",\"ignoreBOM\",\"ignoreCase\",\"image-orientation\",\"image-rendering\",\"imageOrientation\",\"imageRendering\",\"images\",\"ime-mode\",\"imeMode\",\"implementation\",\"importKey\",\"importNode\",\"importStylesheet\",\"imports\",\"impp\",\"imul\",\"in1\",\"in2\",\"inBandMetadataTrackDispatchType\",\"inRange\",\"includes\",\"incremental\",\"indeterminate\",\"index\",\"indexNames\",\"indexOf\",\"indexedDB\",\"inertiaDestinationX\",\"inertiaDestinationY\",\"info\",\"init\",\"initAnimationEvent\",\"initBeforeLoadEvent\",\"initClipboardEvent\",\"initCloseEvent\",\"initCommandEvent\",\"initCompositionEvent\",\"initCustomEvent\",\"initData\",\"initDeviceMotionEvent\",\"initDeviceOrientationEvent\",\"initDragEvent\",\"initErrorEvent\",\"initEvent\",\"initFocusEvent\",\"initGestureEvent\",\"initHashChangeEvent\",\"initKeyEvent\",\"initKeyboardEvent\",\"initMSManipulationEvent\",\"initMessageEvent\",\"initMouseEvent\",\"initMouseScrollEvent\",\"initMouseWheelEvent\",\"initMutationEvent\",\"initNSMouseEvent\",\"initOverflowEvent\",\"initPageEvent\",\"initPageTransitionEvent\",\"initPointerEvent\",\"initPopStateEvent\",\"initProgressEvent\",\"initScrollAreaEvent\",\"initSimpleGestureEvent\",\"initStorageEvent\",\"initTextEvent\",\"initTimeEvent\",\"initTouchEvent\",\"initTransitionEvent\",\"initUIEvent\",\"initWebKitAnimationEvent\",\"initWebKitTransitionEvent\",\"initWebKitWheelEvent\",\"initWheelEvent\",\"initialTime\",\"initialize\",\"initiatorType\",\"inner\",\"innerHTML\",\"innerHeight\",\"innerText\",\"innerWidth\",\"input\",\"inputBuffer\",\"inputEncoding\",\"inputMethod\",\"insertAdjacentElement\",\"insertAdjacentHTML\",\"insertAdjacentText\",\"insertBefore\",\"insertCell\",\"insertData\",\"insertItemBefore\",\"insertNode\",\"insertRow\",\"insertRule\",\"instanceRoot\",\"intercept\",\"interimResults\",\"internalSubset\",\"intersectsNode\",\"interval\",\"invalidIteratorState\",\"inverse\",\"invertSelf\",\"is\",\"is2D\",\"isAlternate\",\"isArray\",\"isBingCurrentSearchDefault\",\"isBuffer\",\"isCandidateWindowVisible\",\"isChar\",\"isCollapsed\",\"isComposing\",\"isContentEditable\",\"isContentHandlerRegistered\",\"isContextLost\",\"isDefaultNamespace\",\"isDisabled\",\"isEnabled\",\"isEqual\",\"isEqualNode\",\"isExtensible\",\"isFinite\",\"isFramebuffer\",\"isFrozen\",\"isGenerator\",\"isId\",\"isInjected\",\"isInteger\",\"isMap\",\"isMultiLine\",\"isNaN\",\"isOpen\",\"isPointInFill\",\"isPointInPath\",\"isPointInRange\",\"isPointInStroke\",\"isPrefAlternate\",\"isPrimary\",\"isProgram\",\"isPropertyImplicit\",\"isProtocolHandlerRegistered\",\"isPrototypeOf\",\"isRenderbuffer\",\"isSafeInteger\",\"isSameNode\",\"isSealed\",\"isShader\",\"isSupported\",\"isTextEdit\",\"isTexture\",\"isTrusted\",\"isTypeSupported\",\"isView\",\"isolation\",\"italics\",\"item\",\"itemId\",\"itemProp\",\"itemRef\",\"itemScope\",\"itemType\",\"itemValue\",\"iterateNext\",\"iterator\",\"javaEnabled\",\"jobTitle\",\"join\",\"json\",\"justify-content\",\"justifyContent\",\"k1\",\"k2\",\"k3\",\"k4\",\"kernelMatrix\",\"kernelUnitLengthX\",\"kernelUnitLengthY\",\"kerning\",\"key\",\"keyCode\",\"keyFor\",\"keyIdentifier\",\"keyLightEnabled\",\"keyLocation\",\"keyPath\",\"keySystem\",\"keyText\",\"keyUsage\",\"keys\",\"keytype\",\"kind\",\"knee\",\"label\",\"labels\",\"lang\",\"language\",\"languages\",\"largeArcFlag\",\"lastChild\",\"lastElementChild\",\"lastEventId\",\"lastIndex\",\"lastIndexOf\",\"lastMatch\",\"lastMessageSubject\",\"lastMessageType\",\"lastModified\",\"lastModifiedDate\",\"lastPage\",\"lastParen\",\"lastState\",\"lastStyleSheetSet\",\"latitude\",\"layerX\",\"layerY\",\"layoutFlow\",\"layoutGrid\",\"layoutGridChar\",\"layoutGridLine\",\"layoutGridMode\",\"layoutGridType\",\"lbound\",\"left\",\"leftContext\",\"leftMargin\",\"length\",\"lengthAdjust\",\"lengthComputable\",\"letter-spacing\",\"letterSpacing\",\"level\",\"lighting-color\",\"lightingColor\",\"limitingConeAngle\",\"line\",\"line-height\",\"lineAlign\",\"lineBreak\",\"lineCap\",\"lineDashOffset\",\"lineHeight\",\"lineJoin\",\"lineNumber\",\"lineTo\",\"lineWidth\",\"linearRampToValueAtTime\",\"lineno\",\"link\",\"linkColor\",\"linkProgram\",\"links\",\"list\",\"list-style\",\"list-style-image\",\"list-style-position\",\"list-style-type\",\"listStyle\",\"listStyleImage\",\"listStylePosition\",\"listStyleType\",\"listener\",\"load\",\"loadEventEnd\",\"loadEventStart\",\"loadTimes\",\"loaded\",\"localDescription\",\"localName\",\"localStorage\",\"locale\",\"localeCompare\",\"location\",\"locationbar\",\"lock\",\"lockedFile\",\"log\",\"log10\",\"log1p\",\"log2\",\"logicalXDPI\",\"logicalYDPI\",\"longDesc\",\"longitude\",\"lookupNamespaceURI\",\"lookupPrefix\",\"loop\",\"loopEnd\",\"loopStart\",\"looping\",\"low\",\"lower\",\"lowerBound\",\"lowerOpen\",\"lowsrc\",\"m11\",\"m12\",\"m13\",\"m14\",\"m21\",\"m22\",\"m23\",\"m24\",\"m31\",\"m32\",\"m33\",\"m34\",\"m41\",\"m42\",\"m43\",\"m44\",\"manifest\",\"map\",\"mapping\",\"margin\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"marginBottom\",\"marginHeight\",\"marginLeft\",\"marginRight\",\"marginTop\",\"marginWidth\",\"mark\",\"marker\",\"marker-end\",\"marker-mid\",\"marker-offset\",\"marker-start\",\"markerEnd\",\"markerHeight\",\"markerMid\",\"markerOffset\",\"markerStart\",\"markerUnits\",\"markerWidth\",\"marks\",\"mask\",\"mask-type\",\"maskContentUnits\",\"maskType\",\"maskUnits\",\"match\",\"matchMedia\",\"matchMedium\",\"matches\",\"matrix\",\"matrixTransform\",\"max\",\"max-height\",\"max-width\",\"maxAlternatives\",\"maxChannelCount\",\"maxConnectionsPerServer\",\"maxDecibels\",\"maxDistance\",\"maxHeight\",\"maxLength\",\"maxTouchPoints\",\"maxValue\",\"maxWidth\",\"measure\",\"measureText\",\"media\",\"mediaCapabilities\",\"mediaDevices\",\"mediaElement\",\"mediaGroup\",\"mediaKeys\",\"mediaText\",\"meetOrSlice\",\"memory\",\"menubar\",\"mergeAttributes\",\"message\",\"messageClass\",\"messageHandlers\",\"metaKey\",\"method\",\"mimeType\",\"mimeTypes\",\"min\",\"min-height\",\"min-width\",\"minDecibels\",\"minHeight\",\"minValue\",\"minWidth\",\"miterLimit\",\"mix-blend-mode\",\"mixBlendMode\",\"mode\",\"modify\",\"mount\",\"move\",\"moveBy\",\"moveEnd\",\"moveFirst\",\"moveFocusDown\",\"moveFocusLeft\",\"moveFocusRight\",\"moveFocusUp\",\"moveNext\",\"moveRow\",\"moveStart\",\"moveTo\",\"moveToBookmark\",\"moveToElementText\",\"moveToPoint\",\"mozAdd\",\"mozAnimationStartTime\",\"mozAnon\",\"mozApps\",\"mozAudioCaptured\",\"mozAudioChannelType\",\"mozAutoplayEnabled\",\"mozCancelAnimationFrame\",\"mozCancelFullScreen\",\"mozCancelRequestAnimationFrame\",\"mozCaptureStream\",\"mozCaptureStreamUntilEnded\",\"mozClearDataAt\",\"mozContact\",\"mozContacts\",\"mozCreateFileHandle\",\"mozCurrentTransform\",\"mozCurrentTransformInverse\",\"mozCursor\",\"mozDash\",\"mozDashOffset\",\"mozDecodedFrames\",\"mozExitPointerLock\",\"mozFillRule\",\"mozFragmentEnd\",\"mozFrameDelay\",\"mozFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozGetAll\",\"mozGetAllKeys\",\"mozGetAsFile\",\"mozGetDataAt\",\"mozGetMetadata\",\"mozGetUserMedia\",\"mozHasAudio\",\"mozHasItem\",\"mozHidden\",\"mozImageSmoothingEnabled\",\"mozIndexedDB\",\"mozInnerScreenX\",\"mozInnerScreenY\",\"mozInputSource\",\"mozIsTextField\",\"mozItem\",\"mozItemCount\",\"mozItems\",\"mozLength\",\"mozLockOrientation\",\"mozMatchesSelector\",\"mozMovementX\",\"mozMovementY\",\"mozOpaque\",\"mozOrientation\",\"mozPaintCount\",\"mozPaintedFrames\",\"mozParsedFrames\",\"mozPay\",\"mozPointerLockElement\",\"mozPresentedFrames\",\"mozPreservesPitch\",\"mozPressure\",\"mozPrintCallback\",\"mozRTCIceCandidate\",\"mozRTCPeerConnection\",\"mozRTCSessionDescription\",\"mozRemove\",\"mozRequestAnimationFrame\",\"mozRequestFullScreen\",\"mozRequestPointerLock\",\"mozSetDataAt\",\"mozSetImageElement\",\"mozSourceNode\",\"mozSrcObject\",\"mozSystem\",\"mozTCPSocket\",\"mozTextStyle\",\"mozTypesAt\",\"mozUnlockOrientation\",\"mozUserCancelled\",\"mozVisibilityState\",\"msAnimation\",\"msAnimationDelay\",\"msAnimationDirection\",\"msAnimationDuration\",\"msAnimationFillMode\",\"msAnimationIterationCount\",\"msAnimationName\",\"msAnimationPlayState\",\"msAnimationStartTime\",\"msAnimationTimingFunction\",\"msBackfaceVisibility\",\"msBlockProgression\",\"msCSSOMElementFloatMetrics\",\"msCaching\",\"msCachingEnabled\",\"msCancelRequestAnimationFrame\",\"msCapsLockWarningOff\",\"msClearImmediate\",\"msClose\",\"msContentZoomChaining\",\"msContentZoomFactor\",\"msContentZoomLimit\",\"msContentZoomLimitMax\",\"msContentZoomLimitMin\",\"msContentZoomSnap\",\"msContentZoomSnapPoints\",\"msContentZoomSnapType\",\"msContentZooming\",\"msConvertURL\",\"msCrypto\",\"msDoNotTrack\",\"msElementsFromPoint\",\"msElementsFromRect\",\"msExitFullscreen\",\"msExtendedCode\",\"msFillRule\",\"msFirstPaint\",\"msFlex\",\"msFlexAlign\",\"msFlexDirection\",\"msFlexFlow\",\"msFlexItemAlign\",\"msFlexLinePack\",\"msFlexNegative\",\"msFlexOrder\",\"msFlexPack\",\"msFlexPositive\",\"msFlexPreferredSize\",\"msFlexWrap\",\"msFlowFrom\",\"msFlowInto\",\"msFontFeatureSettings\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"msGetInputContext\",\"msGetRegionContent\",\"msGetUntransformedBounds\",\"msGraphicsTrustStatus\",\"msGridColumn\",\"msGridColumnAlign\",\"msGridColumnSpan\",\"msGridColumns\",\"msGridRow\",\"msGridRowAlign\",\"msGridRowSpan\",\"msGridRows\",\"msHidden\",\"msHighContrastAdjust\",\"msHyphenateLimitChars\",\"msHyphenateLimitLines\",\"msHyphenateLimitZone\",\"msHyphens\",\"msImageSmoothingEnabled\",\"msImeAlign\",\"msIndexedDB\",\"msInterpolationMode\",\"msIsStaticHTML\",\"msKeySystem\",\"msKeys\",\"msLaunchUri\",\"msLockOrientation\",\"msManipulationViewsEnabled\",\"msMatchMedia\",\"msMatchesSelector\",\"msMaxTouchPoints\",\"msOrientation\",\"msOverflowStyle\",\"msPerspective\",\"msPerspectiveOrigin\",\"msPlayToDisabled\",\"msPlayToPreferredSourceUri\",\"msPlayToPrimary\",\"msPointerEnabled\",\"msRegionOverflow\",\"msReleasePointerCapture\",\"msRequestAnimationFrame\",\"msRequestFullscreen\",\"msSaveBlob\",\"msSaveOrOpenBlob\",\"msScrollChaining\",\"msScrollLimit\",\"msScrollLimitXMax\",\"msScrollLimitXMin\",\"msScrollLimitYMax\",\"msScrollLimitYMin\",\"msScrollRails\",\"msScrollSnapPointsX\",\"msScrollSnapPointsY\",\"msScrollSnapType\",\"msScrollSnapX\",\"msScrollSnapY\",\"msScrollTranslation\",\"msSetImmediate\",\"msSetMediaKeys\",\"msSetPointerCapture\",\"msTextCombineHorizontal\",\"msTextSizeAdjust\",\"msToBlob\",\"msTouchAction\",\"msTouchSelect\",\"msTraceAsyncCallbackCompleted\",\"msTraceAsyncCallbackStarting\",\"msTraceAsyncOperationCompleted\",\"msTraceAsyncOperationStarting\",\"msTransform\",\"msTransformOrigin\",\"msTransformStyle\",\"msTransition\",\"msTransitionDelay\",\"msTransitionDuration\",\"msTransitionProperty\",\"msTransitionTimingFunction\",\"msUnlockOrientation\",\"msUpdateAsyncCallbackRelation\",\"msUserSelect\",\"msVisibilityState\",\"msWrapFlow\",\"msWrapMargin\",\"msWrapThrough\",\"msWriteProfilerMark\",\"msZoom\",\"msZoomTo\",\"mt\",\"multiEntry\",\"multiSelectionObj\",\"multiline\",\"multiple\",\"multiply\",\"multiplySelf\",\"mutableFile\",\"muted\",\"n\",\"name\",\"nameProp\",\"namedItem\",\"namedRecordset\",\"names\",\"namespaceURI\",\"namespaces\",\"naturalHeight\",\"naturalWidth\",\"navigate\",\"navigation\",\"navigationMode\",\"navigationStart\",\"navigator\",\"near\",\"nearestViewportElement\",\"negative\",\"netscape\",\"networkState\",\"newScale\",\"newTranslate\",\"newURL\",\"newValue\",\"newValueSpecifiedUnits\",\"newVersion\",\"newhome\",\"next\",\"nextElementSibling\",\"nextNode\",\"nextPage\",\"nextSibling\",\"nickname\",\"noHref\",\"noResize\",\"noShade\",\"noValidate\",\"noWrap\",\"nodeName\",\"nodeType\",\"nodeValue\",\"normalize\",\"normalizedPathSegList\",\"notationName\",\"notations\",\"note\",\"noteGrainOn\",\"noteOff\",\"noteOn\",\"now\",\"numOctaves\",\"number\",\"numberOfChannels\",\"numberOfInputs\",\"numberOfItems\",\"numberOfOutputs\",\"numberValue\",\"oMatchesSelector\",\"object\",\"object-fit\",\"object-position\",\"objectFit\",\"objectPosition\",\"objectStore\",\"objectStoreNames\",\"observe\",\"of\",\"offscreenBuffering\",\"offset\",\"offsetHeight\",\"offsetLeft\",\"offsetNode\",\"offsetParent\",\"offsetTop\",\"offsetWidth\",\"offsetX\",\"offsetY\",\"ok\",\"oldURL\",\"oldValue\",\"oldVersion\",\"olderShadowRoot\",\"onLine\",\"onabort\",\"onactivate\",\"onactive\",\"onaddstream\",\"onaddtrack\",\"onafterprint\",\"onafterscriptexecute\",\"onafterupdate\",\"onaudioend\",\"onaudioprocess\",\"onaudiostart\",\"onautocomplete\",\"onautocompleteerror\",\"onbeforeactivate\",\"onbeforecopy\",\"onbeforecut\",\"onbeforedeactivate\",\"onbeforeeditfocus\",\"onbeforepaste\",\"onbeforeprint\",\"onbeforescriptexecute\",\"onbeforeunload\",\"onbeforeupdate\",\"onblocked\",\"onblur\",\"onbounce\",\"onboundary\",\"oncached\",\"oncancel\",\"oncandidatewindowhide\",\"oncandidatewindowshow\",\"oncandidatewindowupdate\",\"oncanplay\",\"oncanplaythrough\",\"once\",\"oncellchange\",\"onchange\",\"onchargingchange\",\"onchargingtimechange\",\"onchecking\",\"onclick\",\"onclose\",\"oncompassneedscalibration\",\"oncomplete\",\"oncontextmenu\",\"oncontrolselect\",\"oncopy\",\"oncuechange\",\"oncut\",\"ondataavailable\",\"ondatachannel\",\"ondatasetchanged\",\"ondatasetcomplete\",\"ondblclick\",\"ondeactivate\",\"ondevicelight\",\"ondevicemotion\",\"ondeviceorientation\",\"ondeviceproximity\",\"ondischargingtimechange\",\"ondisplay\",\"ondownloading\",\"ondrag\",\"ondragend\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onencrypted\",\"onend\",\"onended\",\"onenter\",\"onerror\",\"onerrorupdate\",\"onexit\",\"onfilterchange\",\"onfinish\",\"onfocus\",\"onfocusin\",\"onfocusout\",\"onfullscreenchange\",\"onfullscreenerror\",\"ongesturechange\",\"ongestureend\",\"ongesturestart\",\"ongotpointercapture\",\"onhashchange\",\"onhelp\",\"onicecandidate\",\"oniceconnectionstatechange\",\"oninactive\",\"oninput\",\"oninvalid\",\"onkeydown\",\"onkeypress\",\"onkeyup\",\"onlanguagechange\",\"onlayoutcomplete\",\"onlevelchange\",\"onload\",\"onloadeddata\",\"onloadedmetadata\",\"onloadend\",\"onloadstart\",\"onlosecapture\",\"onlostpointercapture\",\"only\",\"onmark\",\"onmessage\",\"onmousedown\",\"onmouseenter\",\"onmouseleave\",\"onmousemove\",\"onmouseout\",\"onmouseover\",\"onmouseup\",\"onmousewheel\",\"onmove\",\"onmoveend\",\"onmovestart\",\"onmozfullscreenchange\",\"onmozfullscreenerror\",\"onmozorientationchange\",\"onmozpointerlockchange\",\"onmozpointerlockerror\",\"onmscontentzoom\",\"onmsfullscreenchange\",\"onmsfullscreenerror\",\"onmsgesturechange\",\"onmsgesturedoubletap\",\"onmsgestureend\",\"onmsgesturehold\",\"onmsgesturestart\",\"onmsgesturetap\",\"onmsgotpointercapture\",\"onmsinertiastart\",\"onmslostpointercapture\",\"onmsmanipulationstatechanged\",\"onmsneedkey\",\"onmsorientationchange\",\"onmspointercancel\",\"onmspointerdown\",\"onmspointerenter\",\"onmspointerhover\",\"onmspointerleave\",\"onmspointermove\",\"onmspointerout\",\"onmspointerover\",\"onmspointerup\",\"onmssitemodejumplistitemremoved\",\"onmsthumbnailclick\",\"onnegotiationneeded\",\"onnomatch\",\"onnoupdate\",\"onobsolete\",\"onoffline\",\"ononline\",\"onopen\",\"onorientationchange\",\"onpagechange\",\"onpagehide\",\"onpageshow\",\"onpaste\",\"onpause\",\"onplay\",\"onplaying\",\"onpluginstreamstart\",\"onpointercancel\",\"onpointerdown\",\"onpointerenter\",\"onpointerleave\",\"onpointerlockchange\",\"onpointerlockerror\",\"onpointermove\",\"onpointerout\",\"onpointerover\",\"onpointerup\",\"onpopstate\",\"onprogress\",\"onpropertychange\",\"onratechange\",\"onreadystatechange\",\"onremovestream\",\"onremovetrack\",\"onreset\",\"onresize\",\"onresizeend\",\"onresizestart\",\"onresourcetimingbufferfull\",\"onresult\",\"onresume\",\"onrowenter\",\"onrowexit\",\"onrowsdelete\",\"onrowsinserted\",\"onscroll\",\"onsearch\",\"onseeked\",\"onseeking\",\"onselect\",\"onselectionchange\",\"onselectstart\",\"onshow\",\"onsignalingstatechange\",\"onsoundend\",\"onsoundstart\",\"onspeechend\",\"onspeechstart\",\"onstalled\",\"onstart\",\"onstatechange\",\"onstop\",\"onstorage\",\"onstoragecommit\",\"onsubmit\",\"onsuccess\",\"onsuspend\",\"ontextinput\",\"ontimeout\",\"ontimeupdate\",\"ontoggle\",\"ontouchcancel\",\"ontouchend\",\"ontouchmove\",\"ontouchstart\",\"ontransitionend\",\"onunload\",\"onupdateready\",\"onupgradeneeded\",\"onuserproximity\",\"onversionchange\",\"onvoiceschanged\",\"onvolumechange\",\"onwaiting\",\"onwarning\",\"onwebkitanimationend\",\"onwebkitanimationiteration\",\"onwebkitanimationstart\",\"onwebkitcurrentplaybacktargetiswirelesschanged\",\"onwebkitfullscreenchange\",\"onwebkitfullscreenerror\",\"onwebkitkeyadded\",\"onwebkitkeyerror\",\"onwebkitkeymessage\",\"onwebkitneedkey\",\"onwebkitorientationchange\",\"onwebkitplaybacktargetavailabilitychanged\",\"onwebkitpointerlockchange\",\"onwebkitpointerlockerror\",\"onwebkitresourcetimingbufferfull\",\"onwebkittransitionend\",\"onwheel\",\"onzoom\",\"opacity\",\"open\",\"openCursor\",\"openDatabase\",\"openKeyCursor\",\"opener\",\"opera\",\"operationType\",\"operator\",\"opr\",\"optimum\",\"options\",\"order\",\"orderX\",\"orderY\",\"ordered\",\"org\",\"orient\",\"orientAngle\",\"orientType\",\"orientation\",\"origin\",\"originalTarget\",\"orphans\",\"oscpu\",\"outerHTML\",\"outerHeight\",\"outerText\",\"outerWidth\",\"outline\",\"outline-color\",\"outline-offset\",\"outline-style\",\"outline-width\",\"outlineColor\",\"outlineOffset\",\"outlineStyle\",\"outlineWidth\",\"outputBuffer\",\"overflow\",\"overflow-x\",\"overflow-y\",\"overflowX\",\"overflowY\",\"overrideMimeType\",\"oversample\",\"ownerDocument\",\"ownerElement\",\"ownerNode\",\"ownerRule\",\"ownerSVGElement\",\"owningElement\",\"p1\",\"p2\",\"p3\",\"p4\",\"pad\",\"padding\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"paddingBottom\",\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"page\",\"page-break-after\",\"page-break-before\",\"page-break-inside\",\"pageBreakAfter\",\"pageBreakBefore\",\"pageBreakInside\",\"pageCount\",\"pageX\",\"pageXOffset\",\"pageY\",\"pageYOffset\",\"pages\",\"paint-order\",\"paintOrder\",\"paintRequests\",\"paintType\",\"palette\",\"panningModel\",\"parent\",\"parentElement\",\"parentNode\",\"parentRule\",\"parentStyleSheet\",\"parentTextEdit\",\"parentWindow\",\"parse\",\"parseFloat\",\"parseFromString\",\"parseInt\",\"participants\",\"passive\",\"password\",\"pasteHTML\",\"path\",\"pathLength\",\"pathSegList\",\"pathSegType\",\"pathSegTypeAsLetter\",\"pathname\",\"pattern\",\"patternContentUnits\",\"patternMismatch\",\"patternTransform\",\"patternUnits\",\"pause\",\"pauseAnimations\",\"pauseOnExit\",\"paused\",\"pending\",\"performance\",\"permission\",\"persisted\",\"personalbar\",\"perspective\",\"perspective-origin\",\"perspectiveOrigin\",\"phoneticFamilyName\",\"phoneticGivenName\",\"photo\",\"ping\",\"pitch\",\"pixelBottom\",\"pixelDepth\",\"pixelHeight\",\"pixelLeft\",\"pixelRight\",\"pixelStorei\",\"pixelTop\",\"pixelUnitToMillimeterX\",\"pixelUnitToMillimeterY\",\"pixelWidth\",\"placeholder\",\"platform\",\"play\",\"playbackRate\",\"playbackState\",\"playbackTime\",\"played\",\"plugins\",\"pluginspage\",\"pname\",\"pointer-events\",\"pointerBeforeReferenceNode\",\"pointerEnabled\",\"pointerEvents\",\"pointerId\",\"pointerLockElement\",\"pointerType\",\"points\",\"pointsAtX\",\"pointsAtY\",\"pointsAtZ\",\"polygonOffset\",\"pop\",\"popupWindowFeatures\",\"popupWindowName\",\"popupWindowURI\",\"port\",\"port1\",\"port2\",\"ports\",\"posBottom\",\"posHeight\",\"posLeft\",\"posRight\",\"posTop\",\"posWidth\",\"position\",\"positionAlign\",\"postError\",\"postMessage\",\"poster\",\"pow\",\"powerOff\",\"preMultiplySelf\",\"precision\",\"preferredStyleSheetSet\",\"preferredStylesheetSet\",\"prefix\",\"preload\",\"prepend\",\"preserveAlpha\",\"preserveAspectRatio\",\"preserveAspectRatioString\",\"pressed\",\"pressure\",\"prevValue\",\"preventDefault\",\"preventExtensions\",\"previousElementSibling\",\"previousNode\",\"previousPage\",\"previousScale\",\"previousSibling\",\"previousTranslate\",\"primaryKey\",\"primitiveType\",\"primitiveUnits\",\"principals\",\"print\",\"privateKey\",\"probablySupportsContext\",\"process\",\"processIceMessage\",\"product\",\"productSub\",\"profile\",\"profileEnd\",\"profiles\",\"prompt\",\"properties\",\"propertyIsEnumerable\",\"propertyName\",\"protocol\",\"protocolLong\",\"prototype\",\"pseudoClass\",\"pseudoElement\",\"publicId\",\"publicKey\",\"published\",\"push\",\"pushNotification\",\"pushState\",\"put\",\"putImageData\",\"quadraticCurveTo\",\"qualifier\",\"queryCommandEnabled\",\"queryCommandIndeterm\",\"queryCommandState\",\"queryCommandSupported\",\"queryCommandText\",\"queryCommandValue\",\"querySelector\",\"querySelectorAll\",\"quote\",\"quotes\",\"r\",\"r1\",\"r2\",\"race\",\"radiogroup\",\"radiusX\",\"radiusY\",\"random\",\"range\",\"rangeCount\",\"rangeMax\",\"rangeMin\",\"rangeOffset\",\"rangeOverflow\",\"rangeParent\",\"rangeUnderflow\",\"rate\",\"ratio\",\"raw\",\"read\",\"readAsArrayBuffer\",\"readAsBinaryString\",\"readAsBlob\",\"readAsDataURL\",\"readAsText\",\"readOnly\",\"readPixels\",\"readReportRequested\",\"readyState\",\"reason\",\"reboot\",\"receiver\",\"receivers\",\"recordNumber\",\"recordset\",\"rect\",\"red\",\"redirectCount\",\"redirectEnd\",\"redirectStart\",\"reduce\",\"reduceRight\",\"reduction\",\"refDistance\",\"refX\",\"refY\",\"referenceNode\",\"referrer\",\"refresh\",\"region\",\"regionAnchorX\",\"regionAnchorY\",\"regionId\",\"regions\",\"register\",\"registerContentHandler\",\"registerElement\",\"registerProtocolHandler\",\"reject\",\"rel\",\"relList\",\"relatedNode\",\"relatedTarget\",\"release\",\"releaseCapture\",\"releaseEvents\",\"releasePointerCapture\",\"releaseShaderCompiler\",\"reliable\",\"reload\",\"remainingSpace\",\"remoteDescription\",\"remove\",\"removeAllRanges\",\"removeAttribute\",\"removeAttributeNS\",\"removeAttributeNode\",\"removeBehavior\",\"removeChild\",\"removeCue\",\"removeEventListener\",\"removeFilter\",\"removeImport\",\"removeItem\",\"removeListener\",\"removeNamedItem\",\"removeNamedItemNS\",\"removeNode\",\"removeParameter\",\"removeProperty\",\"removeRange\",\"removeRegion\",\"removeRule\",\"removeSiteSpecificTrackingException\",\"removeSourceBuffer\",\"removeStream\",\"removeTrack\",\"removeVariable\",\"removeWakeLockListener\",\"removeWebWideTrackingException\",\"removedNodes\",\"renderbufferStorage\",\"renderedBuffer\",\"renderingMode\",\"repeat\",\"replace\",\"replaceAdjacentText\",\"replaceChild\",\"replaceData\",\"replaceId\",\"replaceItem\",\"replaceNode\",\"replaceState\",\"replaceTrack\",\"replaceWholeText\",\"reportValidity\",\"requestAnimationFrame\",\"requestAutocomplete\",\"requestData\",\"requestFullscreen\",\"requestMediaKeySystemAccess\",\"requestPermission\",\"requestPointerLock\",\"requestStart\",\"requestingWindow\",\"required\",\"requiredExtensions\",\"requiredFeatures\",\"reset\",\"resetTransform\",\"resize\",\"resizeBy\",\"resizeTo\",\"resolve\",\"response\",\"responseBody\",\"responseEnd\",\"responseStart\",\"responseText\",\"responseType\",\"responseURL\",\"responseXML\",\"restore\",\"result\",\"resultType\",\"resume\",\"returnValue\",\"rev\",\"reverse\",\"reversed\",\"revocable\",\"revokeObjectURL\",\"rgbColor\",\"right\",\"rightContext\",\"rightMargin\",\"rolloffFactor\",\"root\",\"rootElement\",\"rotate\",\"rotateAxisAngle\",\"rotateAxisAngleSelf\",\"rotateFromVector\",\"rotateFromVectorSelf\",\"rotateSelf\",\"rotation\",\"rotationRate\",\"round\",\"rowIndex\",\"rowSpan\",\"rows\",\"rubyAlign\",\"rubyOverhang\",\"rubyPosition\",\"rules\",\"runtime\",\"runtimeStyle\",\"rx\",\"ry\",\"safari\",\"sampleCoverage\",\"sampleRate\",\"sandbox\",\"save\",\"scale\",\"scale3d\",\"scale3dSelf\",\"scaleNonUniform\",\"scaleNonUniformSelf\",\"scaleSelf\",\"scheme\",\"scissor\",\"scope\",\"scopeName\",\"scoped\",\"screen\",\"screenBrightness\",\"screenEnabled\",\"screenLeft\",\"screenPixelToMillimeterX\",\"screenPixelToMillimeterY\",\"screenTop\",\"screenX\",\"screenY\",\"scripts\",\"scroll\",\"scroll-behavior\",\"scrollAmount\",\"scrollBehavior\",\"scrollBy\",\"scrollByLines\",\"scrollByPages\",\"scrollDelay\",\"scrollHeight\",\"scrollIntoView\",\"scrollIntoViewIfNeeded\",\"scrollLeft\",\"scrollLeftMax\",\"scrollMaxX\",\"scrollMaxY\",\"scrollTo\",\"scrollTop\",\"scrollTopMax\",\"scrollWidth\",\"scrollX\",\"scrollY\",\"scrollbar3dLightColor\",\"scrollbarArrowColor\",\"scrollbarBaseColor\",\"scrollbarDarkShadowColor\",\"scrollbarFaceColor\",\"scrollbarHighlightColor\",\"scrollbarShadowColor\",\"scrollbarTrackColor\",\"scrollbars\",\"scrolling\",\"sdp\",\"sdpMLineIndex\",\"sdpMid\",\"seal\",\"search\",\"searchBox\",\"searchBoxJavaBridge_\",\"searchParams\",\"sectionRowIndex\",\"secureConnectionStart\",\"security\",\"seed\",\"seekable\",\"seeking\",\"select\",\"selectAllChildren\",\"selectNode\",\"selectNodeContents\",\"selectNodes\",\"selectSingleNode\",\"selectSubString\",\"selected\",\"selectedIndex\",\"selectedOptions\",\"selectedStyleSheetSet\",\"selectedStylesheetSet\",\"selection\",\"selectionDirection\",\"selectionEnd\",\"selectionStart\",\"selector\",\"selectorText\",\"self\",\"send\",\"sendAsBinary\",\"sendBeacon\",\"sender\",\"sentTimestamp\",\"separator\",\"serializeToString\",\"serviceWorker\",\"sessionId\",\"sessionStorage\",\"set\",\"setActive\",\"setAlpha\",\"setAttribute\",\"setAttributeNS\",\"setAttributeNode\",\"setAttributeNodeNS\",\"setBaseAndExtent\",\"setBingCurrentSearchDefault\",\"setCapture\",\"setColor\",\"setCompositeOperation\",\"setCurrentTime\",\"setCustomValidity\",\"setData\",\"setDate\",\"setDragImage\",\"setEnd\",\"setEndAfter\",\"setEndBefore\",\"setEndPoint\",\"setFillColor\",\"setFilterRes\",\"setFloat32\",\"setFloat64\",\"setFloatValue\",\"setFullYear\",\"setHours\",\"setImmediate\",\"setInt16\",\"setInt32\",\"setInt8\",\"setInterval\",\"setItem\",\"setLineCap\",\"setLineDash\",\"setLineJoin\",\"setLineWidth\",\"setLocalDescription\",\"setMatrix\",\"setMatrixValue\",\"setMediaKeys\",\"setMilliseconds\",\"setMinutes\",\"setMiterLimit\",\"setMonth\",\"setNamedItem\",\"setNamedItemNS\",\"setNonUserCodeExceptions\",\"setOrientToAngle\",\"setOrientToAuto\",\"setOrientation\",\"setOverrideHistoryNavigationMode\",\"setPaint\",\"setParameter\",\"setPeriodicWave\",\"setPointerCapture\",\"setPosition\",\"setPreference\",\"setProperty\",\"setPrototypeOf\",\"setRGBColor\",\"setRGBColorICCColor\",\"setRadius\",\"setRangeText\",\"setRemoteDescription\",\"setRequestHeader\",\"setResizable\",\"setResourceTimingBufferSize\",\"setRotate\",\"setScale\",\"setSeconds\",\"setSelectionRange\",\"setServerCertificate\",\"setShadow\",\"setSkewX\",\"setSkewY\",\"setStart\",\"setStartAfter\",\"setStartBefore\",\"setStdDeviation\",\"setStringValue\",\"setStrokeColor\",\"setSuggestResult\",\"setTargetAtTime\",\"setTargetValueAtTime\",\"setTime\",\"setTimeout\",\"setTransform\",\"setTranslate\",\"setUTCDate\",\"setUTCFullYear\",\"setUTCHours\",\"setUTCMilliseconds\",\"setUTCMinutes\",\"setUTCMonth\",\"setUTCSeconds\",\"setUint16\",\"setUint32\",\"setUint8\",\"setUri\",\"setValueAtTime\",\"setValueCurveAtTime\",\"setVariable\",\"setVelocity\",\"setVersion\",\"setYear\",\"settingName\",\"settingValue\",\"sex\",\"shaderSource\",\"shadowBlur\",\"shadowColor\",\"shadowOffsetX\",\"shadowOffsetY\",\"shadowRoot\",\"shape\",\"shape-rendering\",\"shapeRendering\",\"sheet\",\"shift\",\"shiftKey\",\"shiftLeft\",\"show\",\"showHelp\",\"showModal\",\"showModalDialog\",\"showModelessDialog\",\"showNotification\",\"sidebar\",\"sign\",\"signalingState\",\"sin\",\"singleNodeValue\",\"sinh\",\"size\",\"sizeToContent\",\"sizes\",\"skewX\",\"skewXSelf\",\"skewY\",\"skewYSelf\",\"slice\",\"slope\",\"small\",\"smil\",\"smooth\",\"smoothingTimeConstant\",\"snapToLines\",\"snapshotItem\",\"snapshotLength\",\"some\",\"sort\",\"source\",\"sourceBuffer\",\"sourceBuffers\",\"sourceIndex\",\"spacing\",\"span\",\"speakAs\",\"speaking\",\"specified\",\"specularConstant\",\"specularExponent\",\"speechSynthesis\",\"speed\",\"speedOfSound\",\"spellcheck\",\"splice\",\"split\",\"splitText\",\"spreadMethod\",\"sqrt\",\"src\",\"srcElement\",\"srcFilter\",\"srcUrn\",\"srcdoc\",\"srclang\",\"srcset\",\"stack\",\"stackTraceLimit\",\"stacktrace\",\"standalone\",\"standby\",\"start\",\"startContainer\",\"startIce\",\"startOffset\",\"startRendering\",\"startTime\",\"startsWith\",\"state\",\"status\",\"statusMessage\",\"statusText\",\"statusbar\",\"stdDeviationX\",\"stdDeviationY\",\"stencilFunc\",\"stencilFuncSeparate\",\"stencilMask\",\"stencilMaskSeparate\",\"stencilOp\",\"stencilOpSeparate\",\"step\",\"stepDown\",\"stepMismatch\",\"stepUp\",\"sticky\",\"stitchTiles\",\"stop\",\"stop-color\",\"stop-opacity\",\"stopColor\",\"stopImmediatePropagation\",\"stopOpacity\",\"stopPropagation\",\"storageArea\",\"storageName\",\"storageStatus\",\"storeSiteSpecificTrackingException\",\"storeWebWideTrackingException\",\"stpVersion\",\"stream\",\"strike\",\"stringValue\",\"stringify\",\"stroke\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"strokeDasharray\",\"strokeDashoffset\",\"strokeLinecap\",\"strokeLinejoin\",\"strokeMiterlimit\",\"strokeOpacity\",\"strokeRect\",\"strokeStyle\",\"strokeText\",\"strokeWidth\",\"style\",\"styleFloat\",\"styleMedia\",\"styleSheet\",\"styleSheetSets\",\"styleSheets\",\"sub\",\"subarray\",\"subject\",\"submit\",\"subscribe\",\"substr\",\"substring\",\"substringData\",\"subtle\",\"subtree\",\"suffix\",\"suffixes\",\"summary\",\"sup\",\"supports\",\"surfaceScale\",\"surroundContents\",\"suspend\",\"suspendRedraw\",\"swapCache\",\"swapNode\",\"sweepFlag\",\"symbols\",\"system\",\"systemCode\",\"systemId\",\"systemLanguage\",\"systemXDPI\",\"systemYDPI\",\"tBodies\",\"tFoot\",\"tHead\",\"tabIndex\",\"table\",\"table-layout\",\"tableLayout\",\"tableValues\",\"tag\",\"tagName\",\"tagUrn\",\"tags\",\"taintEnabled\",\"takeRecords\",\"tan\",\"tanh\",\"target\",\"targetElement\",\"targetTouches\",\"targetX\",\"targetY\",\"tel\",\"terminate\",\"test\",\"texImage2D\",\"texParameterf\",\"texParameteri\",\"texSubImage2D\",\"text\",\"text-align\",\"text-anchor\",\"text-decoration\",\"text-decoration-color\",\"text-decoration-line\",\"text-decoration-style\",\"text-indent\",\"text-overflow\",\"text-rendering\",\"text-shadow\",\"text-transform\",\"textAlign\",\"textAlignLast\",\"textAnchor\",\"textAutospace\",\"textBaseline\",\"textContent\",\"textDecoration\",\"textDecorationBlink\",\"textDecorationColor\",\"textDecorationLine\",\"textDecorationLineThrough\",\"textDecorationNone\",\"textDecorationOverline\",\"textDecorationStyle\",\"textDecorationUnderline\",\"textIndent\",\"textJustify\",\"textJustifyTrim\",\"textKashida\",\"textKashidaSpace\",\"textLength\",\"textOverflow\",\"textRendering\",\"textShadow\",\"textTracks\",\"textTransform\",\"textUnderlinePosition\",\"then\",\"threadId\",\"threshold\",\"tiltX\",\"tiltY\",\"time\",\"timeEnd\",\"timeStamp\",\"timeout\",\"timestamp\",\"timestampOffset\",\"timing\",\"title\",\"toArray\",\"toBlob\",\"toDataURL\",\"toDateString\",\"toElement\",\"toExponential\",\"toFixed\",\"toFloat32Array\",\"toFloat64Array\",\"toGMTString\",\"toISOString\",\"toJSON\",\"toLocaleDateString\",\"toLocaleFormat\",\"toLocaleLowerCase\",\"toLocaleString\",\"toLocaleTimeString\",\"toLocaleUpperCase\",\"toLowerCase\",\"toMethod\",\"toPrecision\",\"toSdp\",\"toSource\",\"toStaticHTML\",\"toString\",\"toStringTag\",\"toTimeString\",\"toUTCString\",\"toUpperCase\",\"toggle\",\"toggleLongPressEnabled\",\"tooLong\",\"toolbar\",\"top\",\"topMargin\",\"total\",\"totalFrameDelay\",\"totalVideoFrames\",\"touchAction\",\"touches\",\"trace\",\"track\",\"transaction\",\"transactions\",\"transform\",\"transform-origin\",\"transform-style\",\"transformOrigin\",\"transformPoint\",\"transformString\",\"transformStyle\",\"transformToDocument\",\"transformToFragment\",\"transition\",\"transition-delay\",\"transition-duration\",\"transition-property\",\"transition-timing-function\",\"transitionDelay\",\"transitionDuration\",\"transitionProperty\",\"transitionTimingFunction\",\"translate\",\"translateSelf\",\"translationX\",\"translationY\",\"trim\",\"trimLeft\",\"trimRight\",\"trueSpeed\",\"trunc\",\"truncate\",\"type\",\"typeDetail\",\"typeMismatch\",\"typeMustMatch\",\"types\",\"ubound\",\"undefined\",\"unescape\",\"uneval\",\"unicode-bidi\",\"unicodeBidi\",\"uniform1f\",\"uniform1fv\",\"uniform1i\",\"uniform1iv\",\"uniform2f\",\"uniform2fv\",\"uniform2i\",\"uniform2iv\",\"uniform3f\",\"uniform3fv\",\"uniform3i\",\"uniform3iv\",\"uniform4f\",\"uniform4fv\",\"uniform4i\",\"uniform4iv\",\"uniformMatrix2fv\",\"uniformMatrix3fv\",\"uniformMatrix4fv\",\"unique\",\"uniqueID\",\"uniqueNumber\",\"unitType\",\"units\",\"unloadEventEnd\",\"unloadEventStart\",\"unlock\",\"unmount\",\"unobserve\",\"unpause\",\"unpauseAnimations\",\"unreadCount\",\"unregister\",\"unregisterContentHandler\",\"unregisterProtocolHandler\",\"unscopables\",\"unselectable\",\"unshift\",\"unsubscribe\",\"unsuspendRedraw\",\"unsuspendRedrawAll\",\"unwatch\",\"unwrapKey\",\"update\",\"updateCommands\",\"updateIce\",\"updateInterval\",\"updateSettings\",\"updated\",\"updating\",\"upload\",\"upper\",\"upperBound\",\"upperOpen\",\"uri\",\"url\",\"urn\",\"urns\",\"usages\",\"useCurrentView\",\"useMap\",\"useProgram\",\"usedSpace\",\"userAgent\",\"userLanguage\",\"username\",\"v8BreakIterator\",\"vAlign\",\"vLink\",\"valid\",\"validateProgram\",\"validationMessage\",\"validity\",\"value\",\"valueAsDate\",\"valueAsNumber\",\"valueAsString\",\"valueInSpecifiedUnits\",\"valueMissing\",\"valueOf\",\"valueText\",\"valueType\",\"values\",\"vector-effect\",\"vectorEffect\",\"velocityAngular\",\"velocityExpansion\",\"velocityX\",\"velocityY\",\"vendor\",\"vendorSub\",\"verify\",\"version\",\"vertexAttrib1f\",\"vertexAttrib1fv\",\"vertexAttrib2f\",\"vertexAttrib2fv\",\"vertexAttrib3f\",\"vertexAttrib3fv\",\"vertexAttrib4f\",\"vertexAttrib4fv\",\"vertexAttribDivisorANGLE\",\"vertexAttribPointer\",\"vertical\",\"vertical-align\",\"verticalAlign\",\"verticalOverflow\",\"vibrate\",\"videoHeight\",\"videoTracks\",\"videoWidth\",\"view\",\"viewBox\",\"viewBoxString\",\"viewTarget\",\"viewTargetString\",\"viewport\",\"viewportAnchorX\",\"viewportAnchorY\",\"viewportElement\",\"visibility\",\"visibilityState\",\"visible\",\"vlinkColor\",\"voice\",\"volume\",\"vrml\",\"vspace\",\"w\",\"wand\",\"warn\",\"wasClean\",\"watch\",\"watchPosition\",\"webdriver\",\"webkitAddKey\",\"webkitAnimation\",\"webkitAnimationDelay\",\"webkitAnimationDirection\",\"webkitAnimationDuration\",\"webkitAnimationFillMode\",\"webkitAnimationIterationCount\",\"webkitAnimationName\",\"webkitAnimationPlayState\",\"webkitAnimationTimingFunction\",\"webkitAppearance\",\"webkitAudioContext\",\"webkitAudioDecodedByteCount\",\"webkitAudioPannerNode\",\"webkitBackfaceVisibility\",\"webkitBackground\",\"webkitBackgroundAttachment\",\"webkitBackgroundClip\",\"webkitBackgroundColor\",\"webkitBackgroundImage\",\"webkitBackgroundOrigin\",\"webkitBackgroundPosition\",\"webkitBackgroundPositionX\",\"webkitBackgroundPositionY\",\"webkitBackgroundRepeat\",\"webkitBackgroundSize\",\"webkitBackingStorePixelRatio\",\"webkitBorderImage\",\"webkitBorderImageOutset\",\"webkitBorderImageRepeat\",\"webkitBorderImageSlice\",\"webkitBorderImageSource\",\"webkitBorderImageWidth\",\"webkitBoxAlign\",\"webkitBoxDirection\",\"webkitBoxFlex\",\"webkitBoxOrdinalGroup\",\"webkitBoxOrient\",\"webkitBoxPack\",\"webkitBoxSizing\",\"webkitCancelAnimationFrame\",\"webkitCancelFullScreen\",\"webkitCancelKeyRequest\",\"webkitCancelRequestAnimationFrame\",\"webkitClearResourceTimings\",\"webkitClosedCaptionsVisible\",\"webkitConvertPointFromNodeToPage\",\"webkitConvertPointFromPageToNode\",\"webkitCreateShadowRoot\",\"webkitCurrentFullScreenElement\",\"webkitCurrentPlaybackTargetIsWireless\",\"webkitDirectionInvertedFromDevice\",\"webkitDisplayingFullscreen\",\"webkitEnterFullScreen\",\"webkitEnterFullscreen\",\"webkitExitFullScreen\",\"webkitExitFullscreen\",\"webkitExitPointerLock\",\"webkitFullScreenKeyboardInputAllowed\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitGenerateKeyRequest\",\"webkitGetAsEntry\",\"webkitGetDatabaseNames\",\"webkitGetEntries\",\"webkitGetEntriesByName\",\"webkitGetEntriesByType\",\"webkitGetFlowByName\",\"webkitGetGamepads\",\"webkitGetImageDataHD\",\"webkitGetNamedFlows\",\"webkitGetRegionFlowRanges\",\"webkitGetUserMedia\",\"webkitHasClosedCaptions\",\"webkitHidden\",\"webkitIDBCursor\",\"webkitIDBDatabase\",\"webkitIDBDatabaseError\",\"webkitIDBDatabaseException\",\"webkitIDBFactory\",\"webkitIDBIndex\",\"webkitIDBKeyRange\",\"webkitIDBObjectStore\",\"webkitIDBRequest\",\"webkitIDBTransaction\",\"webkitImageSmoothingEnabled\",\"webkitIndexedDB\",\"webkitInitMessageEvent\",\"webkitIsFullScreen\",\"webkitKeys\",\"webkitLineDashOffset\",\"webkitLockOrientation\",\"webkitMatchesSelector\",\"webkitMediaStream\",\"webkitNotifications\",\"webkitOfflineAudioContext\",\"webkitOrientation\",\"webkitPeerConnection00\",\"webkitPersistentStorage\",\"webkitPointerLockElement\",\"webkitPostMessage\",\"webkitPreservesPitch\",\"webkitPutImageDataHD\",\"webkitRTCPeerConnection\",\"webkitRegionOverset\",\"webkitRequestAnimationFrame\",\"webkitRequestFileSystem\",\"webkitRequestFullScreen\",\"webkitRequestFullscreen\",\"webkitRequestPointerLock\",\"webkitResolveLocalFileSystemURL\",\"webkitSetMediaKeys\",\"webkitSetResourceTimingBufferSize\",\"webkitShadowRoot\",\"webkitShowPlaybackTargetPicker\",\"webkitSlice\",\"webkitSpeechGrammar\",\"webkitSpeechGrammarList\",\"webkitSpeechRecognition\",\"webkitSpeechRecognitionError\",\"webkitSpeechRecognitionEvent\",\"webkitStorageInfo\",\"webkitSupportsFullscreen\",\"webkitTemporaryStorage\",\"webkitTextSizeAdjust\",\"webkitTransform\",\"webkitTransformOrigin\",\"webkitTransition\",\"webkitTransitionDelay\",\"webkitTransitionDuration\",\"webkitTransitionProperty\",\"webkitTransitionTimingFunction\",\"webkitURL\",\"webkitUnlockOrientation\",\"webkitUserSelect\",\"webkitVideoDecodedByteCount\",\"webkitVisibilityState\",\"webkitWirelessVideoPlaybackDisabled\",\"webkitdropzone\",\"webstore\",\"weight\",\"whatToShow\",\"wheelDelta\",\"wheelDeltaX\",\"wheelDeltaY\",\"which\",\"white-space\",\"whiteSpace\",\"wholeText\",\"widows\",\"width\",\"will-change\",\"willChange\",\"willValidate\",\"window\",\"withCredentials\",\"word-break\",\"word-spacing\",\"word-wrap\",\"wordBreak\",\"wordSpacing\",\"wordWrap\",\"wrap\",\"wrapKey\",\"write\",\"writeln\",\"writingMode\",\"x\",\"x1\",\"x2\",\"xChannelSelector\",\"xmlEncoding\",\"xmlStandalone\",\"xmlVersion\",\"xmlbase\",\"xmllang\",\"xmlspace\",\"y\",\"y1\",\"y2\",\"yChannelSelector\",\"yandex\",\"z\",\"z-index\",\"zIndex\",\"zoom\",\"zoomAndPan\",\"zoomRectScreen\"]"); + +/***/ }), + +/***/ "./src/node/NodeAppender.ts": +/*!**********************************!*\ + !*** ./src/node/NodeAppender.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeAppender = void 0; +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +class NodeAppender { + static append(nodeWithStatements, statements) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements); + NodeAppender.setScopeStatements(nodeWithStatements, [ + ...NodeAppender.getScopeStatements(nodeWithStatements), + ...statements + ]); + } + static appendToOptimalBlockScope(callsGraphData, nodeWithStatements, bodyStatements, index = 0) { + const targetBlockScope = callsGraphData.length + ? NodeAppender.getOptimalBlockScope(callsGraphData, index) + : nodeWithStatements; + NodeAppender.prepend(targetBlockScope, bodyStatements); + } + static getOptimalBlockScope(callsGraphData, index, deep = Infinity) { + const firstCall = callsGraphData[index]; + if (deep <= 0) { + throw new Error('Invalid `deep` argument value. Value should be bigger then 0.'); + } + if (deep > 1 && firstCall.callsGraph.length) { + return NodeAppender.getOptimalBlockScope(firstCall.callsGraph, 0, --deep); + } + else { + return firstCall.callee; + } + } + static insertBefore(nodeWithStatements, statements, target) { + const indexInScopeStatement = NodeAppender + .getScopeStatements(nodeWithStatements) + .indexOf(target); + NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement); + } + static insertAfter(nodeWithStatements, statements, target) { + const indexInScopeStatement = NodeAppender + .getScopeStatements(nodeWithStatements) + .indexOf(target); + NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1); + } + static insertAtIndex(nodeWithStatements, statements, index) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements); + NodeAppender.setScopeStatements(nodeWithStatements, [ + ...NodeAppender.getScopeStatements(nodeWithStatements).slice(0, index), + ...statements, + ...NodeAppender.getScopeStatements(nodeWithStatements).slice(index) + ]); + } + static prepend(nodeWithStatements, statements) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements); + NodeAppender.setScopeStatements(nodeWithStatements, [ + ...statements, + ...NodeAppender.getScopeStatements(nodeWithStatements), + ]); + } + static getScopeStatements(nodeWithStatements) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) { + return nodeWithStatements.consequent; + } + return nodeWithStatements.body; + } + static parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements) { + statements.forEach((statement) => { + statement.parentNode = nodeWithStatements; + }); + return statements; + } + static setScopeStatements(nodeWithStatements, statements) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) { + nodeWithStatements.consequent = statements; + return; + } + nodeWithStatements.body = statements; + } +} +exports.NodeAppender = NodeAppender; + + +/***/ }), + +/***/ "./src/node/NodeFactory.ts": +/*!*********************************!*\ + !*** ./src/node/NodeFactory.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeFactory = void 0; +const escodegen = __importStar(__webpack_require__(/*! escodegen */ "escodegen")); +const NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); +class NodeFactory { + static programNode(body = []) { + return { + type: NodeType_1.NodeType.Program, + body, + sourceType: 'script', + metadata: { ignoredNode: false } + }; + } + static arrayExpressionNode(elements = []) { + return { + type: NodeType_1.NodeType.ArrayExpression, + elements, + metadata: { ignoredNode: false } + }; + } + static assignmentExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.AssignmentExpression, + operator, + left, + right, + metadata: { ignoredNode: false } + }; + } + static binaryExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.BinaryExpression, + operator, + left, + right, + metadata: { ignoredNode: false } + }; + } + static blockStatementNode(body = []) { + return { + type: NodeType_1.NodeType.BlockStatement, + body, + metadata: { ignoredNode: false } + }; + } + static breakStatement(label) { + return { + type: NodeType_1.NodeType.BreakStatement, + label, + metadata: { ignoredNode: false } + }; + } + static callExpressionNode(callee, args = []) { + return { + type: NodeType_1.NodeType.CallExpression, + callee, + arguments: args, + metadata: { ignoredNode: false } + }; + } + static conditionalExpressionNode(test, consequent, alternate) { + return { + type: NodeType_1.NodeType.ConditionalExpression, + test, + consequent, + alternate, + metadata: { ignoredNode: false } + }; + } + static continueStatement(label) { + return { + type: NodeType_1.NodeType.ContinueStatement, + label, + metadata: { ignoredNode: false } + }; + } + static directiveNode(expression, directive) { + return { + type: NodeType_1.NodeType.ExpressionStatement, + expression, + directive, + metadata: { ignoredNode: false } + }; + } + static expressionStatementNode(expression) { + return { + type: NodeType_1.NodeType.ExpressionStatement, + expression, + metadata: { ignoredNode: false } + }; + } + static functionDeclarationNode(functionName, params, body) { + return { + type: NodeType_1.NodeType.FunctionDeclaration, + id: NodeFactory.identifierNode(functionName), + params, + body, + generator: false, + metadata: { ignoredNode: false } + }; + } + static functionExpressionNode(params, body) { + return { + type: NodeType_1.NodeType.FunctionExpression, + params, + body, + generator: false, + metadata: { ignoredNode: false } + }; + } + static ifStatementNode(test, consequent, alternate) { + return Object.assign(Object.assign({ type: NodeType_1.NodeType.IfStatement, test, + consequent }, alternate && { alternate }), { metadata: { ignoredNode: false } }); + } + static identifierNode(name) { + return { + type: NodeType_1.NodeType.Identifier, + name, + metadata: { ignoredNode: false } + }; + } + static importDeclarationNode(specifiers, source) { + return { + type: NodeType_1.NodeType.ImportDeclaration, + specifiers, + source, + metadata: { ignoredNode: false } + }; + } + static literalNode(value, raw) { + raw = raw !== undefined ? raw : `'${value}'`; + return { + type: NodeType_1.NodeType.Literal, + value, + raw, + 'x-verbatim-property': { + content: raw, + precedence: escodegen.Precedence.Primary + }, + metadata: { ignoredNode: false } + }; + } + static logicalExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.LogicalExpression, + operator, + left, + right, + metadata: { ignoredNode: false } + }; + } + static memberExpressionNode(object, property, computed = false) { + return { + type: NodeType_1.NodeType.MemberExpression, + computed, + object, + property, + metadata: { ignoredNode: false } + }; + } + static objectExpressionNode(properties) { + return { + type: NodeType_1.NodeType.ObjectExpression, + properties, + metadata: { ignoredNode: false } + }; + } + static propertyNode(key, value, computed = false) { + return { + type: NodeType_1.NodeType.Property, + key, + value, + kind: 'init', + method: false, + shorthand: false, + computed, + metadata: { ignoredNode: false } + }; + } + static returnStatementNode(argument) { + return { + type: NodeType_1.NodeType.ReturnStatement, + argument, + metadata: { ignoredNode: false } + }; + } + static sequenceExpressionNode(expressions) { + return { + type: NodeType_1.NodeType.SequenceExpression, + expressions, + metadata: { ignoredNode: false } + }; + } + static switchStatementNode(discriminant, cases) { + return { + type: NodeType_1.NodeType.SwitchStatement, + discriminant, + cases, + metadata: { ignoredNode: false } + }; + } + static switchCaseNode(test, consequent) { + return { + type: NodeType_1.NodeType.SwitchCase, + test, + consequent, + metadata: { ignoredNode: false } + }; + } + static unaryExpressionNode(operator, argument, prefix = true) { + return { + type: NodeType_1.NodeType.UnaryExpression, + operator, + argument, + prefix, + metadata: { ignoredNode: false } + }; + } + static updateExpressionNode(operator, argumentExpr) { + return { + type: NodeType_1.NodeType.UpdateExpression, + operator, + argument: argumentExpr, + prefix: false, + metadata: { ignoredNode: false } + }; + } + static variableDeclarationNode(declarations = [], kind = 'var') { + return { + type: NodeType_1.NodeType.VariableDeclaration, + declarations, + kind, + metadata: { ignoredNode: false } + }; + } + static variableDeclaratorNode(id, init) { + return { + type: NodeType_1.NodeType.VariableDeclarator, + id, + init, + metadata: { ignoredNode: false } + }; + } + static whileStatementNode(test, body) { + return { + type: NodeType_1.NodeType.WhileStatement, + test, + body, + metadata: { ignoredNode: false } + }; + } +} +exports.NodeFactory = NodeFactory; + + +/***/ }), + +/***/ "./src/node/NodeGuards.ts": +/*!********************************!*\ + !*** ./src/node/NodeGuards.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeGuards = void 0; +const NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); +class NodeGuards { + static isArrayPatternNode(node) { + return node.type === NodeType_1.NodeType.ArrayPattern; + } + static isArrowFunctionExpressionNode(node) { + return node.type === NodeType_1.NodeType.ArrowFunctionExpression; + } + static isAssignmentExpressionNode(node) { + return node.type === NodeType_1.NodeType.AssignmentExpression; + } + static isAssignmentPatternNode(node) { + return node.type === NodeType_1.NodeType.AssignmentPattern; + } + static isAwaitExpressionNode(node) { + return node.type === NodeType_1.NodeType.AwaitExpression; + } + static isBigIntLiteralNode(node) { + return NodeGuards.isLiteralNode(node) && !!node.bigint; + } + static isBlockStatementNode(node) { + return node.type === NodeType_1.NodeType.BlockStatement; + } + static isBreakStatementNode(node) { + return node.type === NodeType_1.NodeType.BreakStatement; + } + static isCallExpressionNode(node) { + return node.type === NodeType_1.NodeType.CallExpression; + } + static isClassDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ClassDeclaration && node.id !== null; + } + static isContinueStatementNode(node) { + return node.type === NodeType_1.NodeType.ContinueStatement; + } + static isDirectiveNode(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement + && 'directive' in node; + } + static isExportNamedDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ExportNamedDeclaration; + } + static isExpressionStatementNode(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement + && !('directive' in node); + } + static isFunctionNode(node) { + return NodeGuards.isFunctionDeclarationNode(node) || + NodeGuards.isFunctionExpressionNode(node) || + NodeGuards.isArrowFunctionExpressionNode(node); + } + static isFunctionDeclarationNode(node) { + return node.type === NodeType_1.NodeType.FunctionDeclaration && node.id !== null; + } + static isFunctionExpressionNode(node) { + return node.type === NodeType_1.NodeType.FunctionExpression; + } + static isIdentifierNode(node) { + return node.type === NodeType_1.NodeType.Identifier; + } + static isIfStatementNode(node) { + return node.type === NodeType_1.NodeType.IfStatement; + } + static isImportDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ImportDeclaration; + } + static isImportSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ImportSpecifier; + } + static isLabelIdentifierNode(node, parentNode) { + const parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node; + const parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node; + const parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node; + return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode; + } + static isLabeledStatementNode(node) { + return node.type === NodeType_1.NodeType.LabeledStatement; + } + static isLiteralNode(node) { + return node.type === NodeType_1.NodeType.Literal; + } + static isMemberExpressionNode(node) { + return node.type === NodeType_1.NodeType.MemberExpression; + } + static isMethodDefinitionNode(node) { + return node.type === NodeType_1.NodeType.MethodDefinition; + } + static isNode(object) { + return object && !object.type !== undefined; + } + static isNodeWithLexicalScope(node) { + return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node); + } + static isNodeWithBlockLexicalScope(node) { + return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node); + } + static isNodeWithLexicalScopeStatements(node, parentNode) { + return NodeGuards.isProgramNode(node) + || (NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type)); + } + static isNodeWithStatements(node) { + return NodeGuards.isProgramNode(node) + || NodeGuards.isBlockStatementNode(node) + || NodeGuards.isSwitchCaseNode(node); + } + static isNodeWithComments(node) { + return Boolean(node.leadingComments) || Boolean(node.trailingComments); + } + static isObjectPatternNode(node) { + return node.type === NodeType_1.NodeType.ObjectPattern; + } + static isObjectExpressionNode(node) { + return node.type === NodeType_1.NodeType.ObjectExpression; + } + static isProgramNode(node) { + return node.type === NodeType_1.NodeType.Program; + } + static isPropertyNode(node) { + return node.type === NodeType_1.NodeType.Property; + } + static isRestElementNode(node) { + return node.type === NodeType_1.NodeType.RestElement; + } + static isReturnStatementNode(node) { + return node.type === NodeType_1.NodeType.ReturnStatement; + } + static isSequenceExpressionNode(node) { + return node.type === NodeType_1.NodeType.SequenceExpression; + } + static isSuperNode(node) { + return node.type === NodeType_1.NodeType.Super; + } + static isSwitchCaseNode(node) { + return node.type === NodeType_1.NodeType.SwitchCase; + } + static isTaggedTemplateExpressionNode(node) { + return node.type === NodeType_1.NodeType.TaggedTemplateExpression; + } + static isTemplateLiteralNode(node) { + return node.type === NodeType_1.NodeType.TemplateLiteral; + } + static isUnaryExpressionNode(node) { + return node.type === NodeType_1.NodeType.UnaryExpression; + } + static isUseStrictOperator(node) { + return NodeGuards.isDirectiveNode(node) + && node.directive === 'use strict'; + } + static isVariableDeclarationNode(node) { + return node.type === NodeType_1.NodeType.VariableDeclaration; + } + static isVariableDeclaratorNode(node) { + return node.type === NodeType_1.NodeType.VariableDeclarator; + } + static isWhileStatementNode(node) { + return node.type === NodeType_1.NodeType.WhileStatement; + } +} +exports.NodeGuards = NodeGuards; +NodeGuards.nodesWithLexicalStatements = [ + NodeType_1.NodeType.ArrowFunctionExpression, + NodeType_1.NodeType.FunctionDeclaration, + NodeType_1.NodeType.FunctionExpression, + NodeType_1.NodeType.MethodDefinition, +]; + + +/***/ }), + +/***/ "./src/node/NodeLexicalScopeUtils.ts": +/*!*******************************************!*\ + !*** ./src/node/NodeLexicalScopeUtils.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeLexicalScopeUtils = void 0; +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +class NodeLexicalScopeUtils { + static getLexicalScope(node) { + return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0]; + } + static getLexicalScopes(node) { + return NodeLexicalScopeUtils.getLexicalScopesRecursive(node); + } + static getLexicalScopesRecursive(node, maxSize = Infinity, nodesWithLexicalScope = [], depth = 0) { + if (nodesWithLexicalScope.length >= maxSize) { + return nodesWithLexicalScope; + } + const parentNode = node.parentNode; + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + if (NodeGuards_1.NodeGuards.isNodeWithLexicalScope(node)) { + nodesWithLexicalScope.push(node); + } + if (node !== parentNode) { + return NodeLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth); + } + return nodesWithLexicalScope; + } +} +exports.NodeLexicalScopeUtils = NodeLexicalScopeUtils; + + +/***/ }), + +/***/ "./src/node/NodeLiteralUtils.ts": +/*!**************************************!*\ + !*** ./src/node/NodeLiteralUtils.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeLiteralUtils = void 0; +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +class NodeLiteralUtils { + static isProhibitedLiteralNode(literalNode, parentNode) { + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) { + return true; + } + if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) { + return true; + } + return false; + } +} +exports.NodeLiteralUtils = NodeLiteralUtils; + + +/***/ }), + +/***/ "./src/node/NodeMetadata.ts": +/*!**********************************!*\ + !*** ./src/node/NodeMetadata.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeMetadata = void 0; +class NodeMetadata { + static set(node, metadata) { + var _a; + node.metadata = Object.assign((_a = node.metadata) !== null && _a !== void 0 ? _a : {}, metadata); + } + static get(node, metadataKey) { + return node.metadata !== undefined + ? node.metadata[metadataKey] + : undefined; + } + static isIgnoredNode(node) { + return NodeMetadata.get(node, 'ignoredNode') === true; + } + static isReplacedLiteral(literalNode) { + return NodeMetadata.get(literalNode, 'replacedLiteral') === true; + } +} +exports.NodeMetadata = NodeMetadata; + + +/***/ }), + +/***/ "./src/node/NodeStatementUtils.ts": +/*!****************************************!*\ + !*** ./src/node/NodeStatementUtils.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeStatementUtils = void 0; +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +class NodeStatementUtils { + static getParentNodeWithStatements(node) { + return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0]; + } + static getParentNodesWithStatements(node) { + return NodeStatementUtils.getParentNodesWithStatementsRecursive(node); + } + static getNextSiblingStatement(statement) { + return NodeStatementUtils.getSiblingStatementByOffset(statement, 1); + } + static getPreviousSiblingStatement(statement) { + return NodeStatementUtils.getSiblingStatementByOffset(statement, -1); + } + static getRootStatementOfNode(node) { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + throw new Error('Unable to find root statement for `Program` node'); + } + const parentNode = node.parentNode; + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) { + return NodeStatementUtils.getRootStatementOfNode(parentNode); + } + return node; + } + static getScopeOfNode(node) { + const parentNode = node.parentNode; + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) { + return NodeStatementUtils.getScopeOfNode(parentNode); + } + return parentNode; + } + static getParentNodesWithStatementsRecursive(node, maxSize = Infinity, nodesWithStatements = [], depth = 0) { + if (nodesWithStatements.length >= maxSize) { + return nodesWithStatements; + } + const parentNode = node.parentNode; + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + if (NodeGuards_1.NodeGuards.isProgramNode(node) || + (NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode) && depth > 0)) { + nodesWithStatements.push(node); + } + if (node !== parentNode) { + return NodeStatementUtils.getParentNodesWithStatementsRecursive(parentNode, maxSize, nodesWithStatements, ++depth); + } + return nodesWithStatements; + } + static getSiblingStatementByOffset(statement, offset) { + const scopeNode = NodeStatementUtils.getScopeOfNode(statement); + const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) + ? scopeNode.body + : scopeNode.consequent; + const indexInScope = scopeBody.indexOf(statement); + return scopeBody[indexInScope + offset] || null; + } +} +exports.NodeStatementUtils = NodeStatementUtils; + + +/***/ }), + +/***/ "./src/node/NodeUtils.ts": +/*!*******************************!*\ + !*** ./src/node/NodeUtils.ts ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeUtils = void 0; +const escodegen = __importStar(__webpack_require__(/*! escodegen */ "escodegen")); +const estraverse = __importStar(__webpack_require__(/*! estraverse */ "estraverse")); +const EcmaVersion_1 = __webpack_require__(/*! ../constants/EcmaVersion */ "./src/constants/EcmaVersion.ts"); +const ASTParserFacade_1 = __webpack_require__(/*! ../ASTParserFacade */ "./src/ASTParserFacade.ts"); +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ./NodeMetadata */ "./src/node/NodeMetadata.ts"); +class NodeUtils { + static addXVerbatimPropertyTo(literalNode) { + literalNode['x-verbatim-property'] = { + content: literalNode.raw, + precedence: escodegen.Precedence.Primary + }; + return literalNode; + } + static clone(astTree) { + return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree)); + } + static convertCodeToStructure(code) { + const structure = ASTParserFacade_1.ASTParserFacade.parse(code, { + ecmaVersion: EcmaVersion_1.ecmaVersion, + sourceType: 'script' + }); + estraverse.replace(structure, { + enter: (node, parentNode) => { + NodeUtils.parentizeNode(node, parentNode); + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + NodeUtils.addXVerbatimPropertyTo(node); + } + NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false }); + return node; + } + }); + return structure.body; + } + static convertStructureToCode(structure) { + return structure.reduce((code, node) => { + return code + escodegen.generate(node, { + sourceMapWithCode: true + }).code; + }, ''); + } + static getUnaryExpressionArgumentNode(unaryExpressionNode) { + if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) { + return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument); + } + return unaryExpressionNode.argument; + } + static parentizeAst(astTree) { + var _a; + const parentNode = (_a = astTree.parentNode) !== null && _a !== void 0 ? _a : null; + estraverse.replace(astTree, { + enter: NodeUtils.parentizeNode + }); + if (parentNode) { + astTree.parentNode = parentNode; + } + return astTree; + } + static parentizeNode(node, parentNode) { + node.parentNode = parentNode !== null && parentNode !== void 0 ? parentNode : node; + return node; + } + static cloneRecursive(node) { + if (node === null) { + return node; + } + const copy = {}; + const nodeKeys = Object.keys(node); + nodeKeys + .forEach((property) => { + if (property === 'parentNode') { + return; + } + const value = node[property]; + let clonedValue; + if (value === null || value instanceof RegExp) { + clonedValue = value; + } + else if (Array.isArray(value)) { + clonedValue = value.map(NodeUtils.cloneRecursive); + } + else if (typeof value === 'object') { + clonedValue = NodeUtils.cloneRecursive(value); + } + else { + clonedValue = value; + } + copy[property] = clonedValue; + }); + return copy; + } +} +exports.NodeUtils = NodeUtils; + + +/***/ }), + +/***/ "./src/node/ScopeIdentifiersTraverser.ts": +/*!***********************************************!*\ + !*** ./src/node/ScopeIdentifiersTraverser.ts ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var ScopeIdentifiersTraverser_1, _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ScopeIdentifiersTraverser = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IScopeAnalyzer_1 = __webpack_require__(/*! ../interfaces/analyzers/scope-analyzer/IScopeAnalyzer */ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +let ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = class ScopeIdentifiersTraverser { + constructor(scopeAnalyzer) { + this.scopeAnalyzer = scopeAnalyzer; + } + traverse(programNode, parentNode, callback) { + this.scopeAnalyzer.analyze(programNode); + const globalScope = this.scopeAnalyzer.acquireScope(programNode); + this.traverseScopeVariables(globalScope, globalScope, callback); + } + traverseScopeVariables(rootScope, currentScope, callback) { + const variableScope = currentScope.variableScope; + const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block) + ? variableScope.block + : null; + const isGlobalDeclaration = ScopeIdentifiersTraverser_1.globalScopeNames.includes(variableScope.type); + if (!variableLexicalScopeNode) { + return; + } + for (const variable of currentScope.variables) { + if (variable.name === ScopeIdentifiersTraverser_1.argumentsVariableName) { + continue; + } + const isBubblingDeclaration = variable + .identifiers + .some((identifier) => identifier.parentNode + && NodeGuards_1.NodeGuards.isPropertyNode(identifier.parentNode) + && identifier.parentNode.shorthand); + callback({ + isGlobalDeclaration, + isBubblingDeclaration, + rootScope, + variable, + variableScope, + variableLexicalScopeNode + }); + } + for (const childScope of currentScope.childScopes) { + this.traverseScopeVariables(rootScope, childScope, callback); + } + } +}; +ScopeIdentifiersTraverser.argumentsVariableName = 'arguments'; +ScopeIdentifiersTraverser.globalScopeNames = [ + 'global', + 'module' +]; +ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)), + __metadata("design:paramtypes", [typeof (_a = typeof IScopeAnalyzer_1.IScopeAnalyzer !== "undefined" && IScopeAnalyzer_1.IScopeAnalyzer) === "function" ? _a : Object]) +], ScopeIdentifiersTraverser); +exports.ScopeIdentifiersTraverser = ScopeIdentifiersTraverser; + + +/***/ }), + +/***/ "./src/options/Options.ts": +/*!********************************!*\ + !*** ./src/options/Options.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var Options_1, _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Options = void 0; +const tsenum_1 = __webpack_require__(/*! @gradecam/tsenum */ "@gradecam/tsenum"); +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator"); +const TInputOptions_1 = __webpack_require__(/*! ../types/options/TInputOptions */ "./src/types/options/TInputOptions.ts"); +const TStringArrayEncoding_1 = __webpack_require__(/*! ../types/options/TStringArrayEncoding */ "./src/types/options/TStringArrayEncoding.ts"); +const IOptionsNormalizer_1 = __webpack_require__(/*! ../interfaces/options/IOptionsNormalizer */ "./src/interfaces/options/IOptionsNormalizer.ts"); +const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +const Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts"); +const ValidationErrorsFormatter_1 = __webpack_require__(/*! ./ValidationErrorsFormatter */ "./src/options/ValidationErrorsFormatter.ts"); +const IsAllowedForObfuscationTargets_1 = __webpack_require__(/*! ./validators/IsAllowedForObfuscationTargets */ "./src/options/validators/IsAllowedForObfuscationTargets.ts"); +let Options = Options_1 = class Options { + constructor(inputOptions, optionsNormalizer) { + Object.assign(this, Default_1.DEFAULT_PRESET, inputOptions); + const errors = class_validator_1.validateSync(this, Options_1.validatorOptions); + if (errors.length) { + throw new ReferenceError(`Validation failed. errors:\n${ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)}`); + } + Object.assign(this, optionsNormalizer.normalize(this)); + } +}; +Options.validatorOptions = { + validationError: { + target: false + } +}; +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "compact", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "controlFlowFlattening", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.Min(0), + class_validator_1.Max(1), + __metadata("design:type", Number) +], Options.prototype, "controlFlowFlatteningThreshold", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "deadCodeInjection", void 0); +__decorate([ + class_validator_1.IsNumber(), + __metadata("design:type", Number) +], Options.prototype, "deadCodeInjectionThreshold", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "debugProtection", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "debugProtectionInterval", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "disableConsoleOutput", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + IsAllowedForObfuscationTargets_1.IsAllowedForObfuscationTargets([ + ObfuscationTarget_1.ObfuscationTarget.Browser, + ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, + ]), + __metadata("design:type", Array) +], Options.prototype, "domainLock", void 0); +__decorate([ + class_validator_1.IsIn([ + IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator + ]), + __metadata("design:type", typeof (_a = typeof tsenum_1.TypeFromEnum !== "undefined" && tsenum_1.TypeFromEnum) === "function" ? _a : Object) +], Options.prototype, "identifierNamesGenerator", void 0); +__decorate([ + class_validator_1.IsString(), + __metadata("design:type", String) +], Options.prototype, "identifiersPrefix", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + class_validator_1.ValidateIf((options) => options.identifierNamesGenerator === IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator), + class_validator_1.ArrayNotEmpty(), + __metadata("design:type", Array) +], Options.prototype, "identifiersDictionary", void 0); +__decorate([ + class_validator_1.IsString(), + __metadata("design:type", String) +], Options.prototype, "inputFileName", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "log", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "minify", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "renameGlobals", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "renameProperties", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + __metadata("design:type", Array) +], Options.prototype, "reservedNames", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + __metadata("design:type", Array) +], Options.prototype, "reservedStrings", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "rotateStringArray", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "selfDefending", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "shuffleStringArray", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "sourceMap", void 0); +__decorate([ + class_validator_1.IsString(), + class_validator_1.ValidateIf((options) => Boolean(options.sourceMapBaseUrl)), + class_validator_1.IsUrl({ + require_protocol: true, + require_tld: false, + require_valid_protocol: true + }), + __metadata("design:type", String) +], Options.prototype, "sourceMapBaseUrl", void 0); +__decorate([ + class_validator_1.IsString(), + __metadata("design:type", String) +], Options.prototype, "sourceMapFileName", void 0); +__decorate([ + class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]), + __metadata("design:type", typeof (_b = typeof tsenum_1.TypeFromEnum !== "undefined" && tsenum_1.TypeFromEnum) === "function" ? _b : Object) +], Options.prototype, "sourceMapMode", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "splitStrings", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.ValidateIf((options) => Boolean(options.splitStrings)), + class_validator_1.Min(1), + __metadata("design:type", Number) +], Options.prototype, "splitStringsChunkLength", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "stringArray", void 0); +__decorate([ + class_validator_1.IsIn([true, false, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4]), + __metadata("design:type", typeof (_c = typeof TStringArrayEncoding_1.TStringArrayEncoding !== "undefined" && TStringArrayEncoding_1.TStringArrayEncoding) === "function" ? _c : Object) +], Options.prototype, "stringArrayEncoding", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.Min(0), + class_validator_1.Max(1), + __metadata("design:type", Number) +], Options.prototype, "stringArrayThreshold", void 0); +__decorate([ + class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]), + __metadata("design:type", typeof (_d = typeof tsenum_1.TypeFromEnum !== "undefined" && tsenum_1.TypeFromEnum) === "function" ? _d : Object) +], Options.prototype, "target", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "transformObjectKeys", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "unicodeEscapeSequence", void 0); +Options = Options_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)), + __metadata("design:paramtypes", [typeof (_e = typeof TInputOptions_1.TInputOptions !== "undefined" && TInputOptions_1.TInputOptions) === "function" ? _e : Object, typeof (_f = typeof IOptionsNormalizer_1.IOptionsNormalizer !== "undefined" && IOptionsNormalizer_1.IOptionsNormalizer) === "function" ? _f : Object]) +], Options); +exports.Options = Options; + + +/***/ }), + +/***/ "./src/options/OptionsNormalizer.ts": +/*!******************************************!*\ + !*** ./src/options/OptionsNormalizer.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var OptionsNormalizer_1; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.OptionsNormalizer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ControlFlowFlatteningThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/ControlFlowFlatteningThresholdRule */ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts"); +const DeadCodeInjectionRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionRule */ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts"); +const DeadCodeInjectionThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionThresholdRule */ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts"); +const DomainLockRule_1 = __webpack_require__(/*! ./normalizer-rules/DomainLockRule */ "./src/options/normalizer-rules/DomainLockRule.ts"); +const InputFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/InputFileNameRule */ "./src/options/normalizer-rules/InputFileNameRule.ts"); +const SeedRule_1 = __webpack_require__(/*! ./normalizer-rules/SeedRule */ "./src/options/normalizer-rules/SeedRule.ts"); +const SelfDefendingRule_1 = __webpack_require__(/*! ./normalizer-rules/SelfDefendingRule */ "./src/options/normalizer-rules/SelfDefendingRule.ts"); +const SourceMapBaseUrlRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapBaseUrlRule */ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts"); +const SourceMapFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapFileNameRule */ "./src/options/normalizer-rules/SourceMapFileNameRule.ts"); +const SplitStringsChunkLengthRule_1 = __webpack_require__(/*! ./normalizer-rules/SplitStringsChunkLengthRule */ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts"); +const StringArrayRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayRule */ "./src/options/normalizer-rules/StringArrayRule.ts"); +const StringArrayEncodingRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayEncodingRule */ "./src/options/normalizer-rules/StringArrayEncodingRule.ts"); +const StringArrayThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayThresholdRule */ "./src/options/normalizer-rules/StringArrayThresholdRule.ts"); +let OptionsNormalizer = OptionsNormalizer_1 = class OptionsNormalizer { + normalize(options) { + let normalizedOptions = Object.assign({}, options); + for (const normalizerRule of OptionsNormalizer_1.normalizerRules) { + normalizedOptions = normalizerRule(normalizedOptions); + } + return normalizedOptions; + } +}; +OptionsNormalizer.normalizerRules = [ + ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule, + DeadCodeInjectionRule_1.DeadCodeInjectionRule, + DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule, + DomainLockRule_1.DomainLockRule, + InputFileNameRule_1.InputFileNameRule, + SeedRule_1.SeedRule, + SelfDefendingRule_1.SelfDefendingRule, + SourceMapBaseUrlRule_1.SourceMapBaseUrlRule, + SourceMapFileNameRule_1.SourceMapFileNameRule, + SplitStringsChunkLengthRule_1.SplitStringsChunkLengthRule, + StringArrayRule_1.StringArrayRule, + StringArrayEncodingRule_1.StringArrayEncodingRule, + StringArrayThresholdRule_1.StringArrayThresholdRule, +]; +OptionsNormalizer = OptionsNormalizer_1 = __decorate([ + inversify_1.injectable() +], OptionsNormalizer); +exports.OptionsNormalizer = OptionsNormalizer; + + +/***/ }), + +/***/ "./src/options/ValidationErrorsFormatter.ts": +/*!**************************************************!*\ + !*** ./src/options/ValidationErrorsFormatter.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ValidationErrorsFormatter = void 0; +class ValidationErrorsFormatter { + static format(errors) { + return errors + .reduce((errorMessages, error) => [ + ...errorMessages, + ValidationErrorsFormatter.formatWithNestedConstraints(error) + ], []) + .join('\n'); + } + static formatWithNestedConstraints(error) { + const constraints = error.constraints; + if (!constraints) { + return `\`${error.property}\` error\n`; + } + const rootError = `\`${error.property}\` errors:\n`; + const nestedErrors = Object + .keys(constraints) + .map((constraint) => ` - ${constraints[constraint]}\n`) + .join(); + return `${rootError}${nestedErrors}`; + } +} +exports.ValidationErrorsFormatter = ValidationErrorsFormatter; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts": +/*!****************************************************************************!*\ + !*** ./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowFlatteningThresholdRule = void 0; +exports.ControlFlowFlatteningThresholdRule = (options) => { + if (options.controlFlowFlatteningThreshold === 0) { + options = Object.assign(Object.assign({}, options), { controlFlowFlattening: false, controlFlowFlatteningThreshold: 0 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DeadCodeInjectionRule = void 0; +const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts"); +exports.DeadCodeInjectionRule = (options) => { + if (options.deadCodeInjection) { + options = Object.assign(Object.assign({}, options), { deadCodeInjection: true, stringArray: true }); + if (!options.stringArrayThreshold) { + options = Object.assign(Object.assign({}, options), { stringArray: true, stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold }); + } + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts": +/*!************************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DeadCodeInjectionThresholdRule = void 0; +exports.DeadCodeInjectionThresholdRule = (options) => { + if (options.deadCodeInjectionThreshold === 0) { + options = Object.assign(Object.assign({}, options), { deadCodeInjection: false, deadCodeInjectionThreshold: 0 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DomainLockRule.ts": +/*!********************************************************!*\ + !*** ./src/options/normalizer-rules/DomainLockRule.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DomainLockRule = void 0; +const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); +exports.DomainLockRule = (options) => { + if (options.domainLock.length) { + const normalizedDomains = []; + for (const domain of options.domainLock) { + normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain)); + } + options = Object.assign(Object.assign({}, options), { domainLock: normalizedDomains }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/InputFileNameRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/InputFileNameRule.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.InputFileNameRule = void 0; +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +exports.InputFileNameRule = (options) => { + let { inputFileName } = options; + if (inputFileName) { + inputFileName = inputFileName + .replace(/^\/+/, '') + .split(StringSeparator_1.StringSeparator.Dot) + .slice(0, -1) + .join(StringSeparator_1.StringSeparator.Dot) || inputFileName; + options = Object.assign(Object.assign({}, options), { inputFileName: `${inputFileName}.js` }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SeedRule.ts": +/*!**************************************************!*\ + !*** ./src/options/normalizer-rules/SeedRule.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SeedRule = void 0; +exports.SeedRule = (options) => { + if (options.seed) { + return Object.assign(Object.assign({}, options), { seed: options.seed }); + } + const getRandomInteger = (min, max) => { + return Math.floor(Math.random() * (max - min + 1) + min); + }; + return Object.assign(Object.assign({}, options), { seed: getRandomInteger(0, 999999999) }); +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SelfDefendingRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SelfDefendingRule = void 0; +exports.SelfDefendingRule = (options) => { + if (options.selfDefending) { + options = Object.assign(Object.assign({}, options), { compact: true, selfDefending: true }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts": +/*!**************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceMapBaseUrlRule = void 0; +exports.SourceMapBaseUrlRule = (options) => { + const { sourceMapBaseUrl } = options; + if (!options.sourceMapFileName) { + options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: '' }); + return options; + } + if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) { + options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: `${sourceMapBaseUrl}/` }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceMapFileNameRule = void 0; +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +exports.SourceMapFileNameRule = (options) => { + let { sourceMapFileName } = options; + if (sourceMapFileName) { + sourceMapFileName = sourceMapFileName + .replace(/^\/+/, '') + .replace(/(?:\.js)?(?:\.map)?$/, ''); + let sourceMapFileNameParts = sourceMapFileName.split(StringSeparator_1.StringSeparator.Dot); + const sourceMapFileNamePartsCount = sourceMapFileNameParts.length; + const lastPart = sourceMapFileNameParts[sourceMapFileNamePartsCount - 1]; + if (sourceMapFileNamePartsCount > 1 && lastPart.length <= 3) { + sourceMapFileNameParts = sourceMapFileNameParts.slice(0, -1); + } + sourceMapFileName = sourceMapFileNameParts.join(StringSeparator_1.StringSeparator.Dot); + options = Object.assign(Object.assign({}, options), { sourceMapFileName: `${sourceMapFileName}.js.map` }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts": +/*!*********************************************************************!*\ + !*** ./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SplitStringsChunkLengthRule = void 0; +exports.SplitStringsChunkLengthRule = (options) => { + if (options.splitStringsChunkLength === 0) { + options = Object.assign(Object.assign({}, options), { splitStrings: false, splitStringsChunkLength: 0 }); + } + else { + options = Object.assign(Object.assign({}, options), { splitStringsChunkLength: Math.floor(options.splitStringsChunkLength) }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts": +/*!*****************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayEncodingRule = void 0; +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +exports.StringArrayEncodingRule = (options) => { + if (options.stringArrayEncoding === true) { + options = Object.assign(Object.assign({}, options), { stringArrayEncoding: StringArrayEncoding_1.StringArrayEncoding.Base64 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayRule.ts": +/*!*********************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayRule.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayRule = void 0; +exports.StringArrayRule = (options) => { + if (!options.stringArray) { + options = Object.assign(Object.assign({}, options), { rotateStringArray: false, shuffleStringArray: false, stringArray: false, stringArrayEncoding: false, stringArrayThreshold: 0 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayThresholdRule.ts": +/*!******************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayThresholdRule.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayThresholdRule = void 0; +exports.StringArrayThresholdRule = (options) => { + if (options.stringArrayThreshold === 0) { + options = Object.assign(Object.assign({}, options), { rotateStringArray: false, stringArray: false, stringArrayEncoding: false, stringArrayThreshold: 0 }); + } + return options; +}; + + +/***/ }), + +/***/ "./src/options/presets/Default.ts": +/*!****************************************!*\ + !*** ./src/options/presets/Default.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DEFAULT_PRESET = void 0; +const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +exports.DEFAULT_PRESET = Object.freeze({ + compact: true, + config: '', + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0.75, + deadCodeInjection: false, + deadCodeInjectionThreshold: 0.4, + debugProtection: false, + debugProtectionInterval: false, + disableConsoleOutput: false, + domainLock: [], + exclude: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + identifiersDictionary: [], + inputFileName: '', + log: false, + minify: true, + renameGlobals: false, + renameProperties: false, + reservedNames: [], + reservedStrings: [], + rotateStringArray: true, + seed: 0, + selfDefending: false, + shuffleStringArray: true, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + splitStrings: false, + splitStringsChunkLength: 10, + stringArray: true, + stringArrayEncoding: false, + stringArrayThreshold: 0.75, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + + +/***/ }), + +/***/ "./src/options/presets/NoCustomNodes.ts": +/*!**********************************************!*\ + !*** ./src/options/presets/NoCustomNodes.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NO_ADDITIONAL_NODES_PRESET = void 0; +const IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +exports.NO_ADDITIONAL_NODES_PRESET = Object.freeze({ + compact: true, + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0, + deadCodeInjection: false, + deadCodeInjectionThreshold: 0, + debugProtection: false, + debugProtectionInterval: false, + disableConsoleOutput: false, + domainLock: [], + exclude: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + identifiersDictionary: [], + inputFileName: '', + log: false, + minify: false, + renameGlobals: false, + renameProperties: false, + reservedNames: [], + reservedStrings: [], + rotateStringArray: false, + seed: 0, + selfDefending: false, + shuffleStringArray: false, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + splitStrings: false, + splitStringsChunkLength: 0, + stringArray: false, + stringArrayEncoding: false, + stringArrayThreshold: 0, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + + +/***/ }), + +/***/ "./src/options/validators/IsAllowedForObfuscationTargets.ts": +/*!******************************************************************!*\ + !*** ./src/options/validators/IsAllowedForObfuscationTargets.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IsAllowedForObfuscationTargets = void 0; +const class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator"); +const fast_deep_equal_1 = __importDefault(__webpack_require__(/*! fast-deep-equal */ "fast-deep-equal")); +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts"); +function IsAllowedForObfuscationTargets(obfuscationTargets, validationOptions) { + return (optionsObject, propertyName) => { + class_validator_1.registerDecorator({ + propertyName, + constraints: [obfuscationTargets], + name: 'IsAllowedForObfuscationTargets', + options: validationOptions, + target: optionsObject.constructor, + validator: { + validate(value, validationArguments) { + const options = validationArguments.object; + const defaultValue = Default_1.DEFAULT_PRESET[propertyName]; + const isDefaultValue = fast_deep_equal_1.default(value, defaultValue); + return isDefaultValue || obfuscationTargets.includes(options.target); + }, + defaultMessage(validationArguments) { + const requiredObfuscationTargetsString = obfuscationTargets.join(`${StringSeparator_1.StringSeparator.Comma} `); + return `This option allowed only for obfuscation targets: ${requiredObfuscationTargetsString}`; + } + } + }); + }; +} +exports.IsAllowedForObfuscationTargets = IsAllowedForObfuscationTargets; + + +/***/ }), + +/***/ "./src/source-code/ObfuscatedCode.ts": +/*!*******************************************!*\ + !*** ./src/source-code/ObfuscatedCode.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ObfuscatedCode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ICryptUtils_1 = __webpack_require__(/*! ../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts"); +const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +let ObfuscatedCode = class ObfuscatedCode { + constructor(cryptUtils, options) { + this.cryptUtils = cryptUtils; + this.options = options; + } + initialize(obfuscatedCode, sourceMap) { + this.obfuscatedCode = obfuscatedCode; + this.sourceMap = sourceMap; + } + getObfuscatedCode() { + return this.correctObfuscatedCode(); + } + getSourceMap() { + return this.sourceMap; + } + toString() { + return this.obfuscatedCode; + } + correctObfuscatedCode() { + if (!this.sourceMap) { + return this.obfuscatedCode; + } + const sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName; + let sourceMappingUrl = '//# sourceMappingURL='; + switch (this.options.sourceMapMode) { + case SourceMapMode_1.SourceMapMode.Inline: + sourceMappingUrl += `data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`; + break; + case SourceMapMode_1.SourceMapMode.Separate: + default: + if (!sourceMapUrl) { + return this.obfuscatedCode; + } + sourceMappingUrl += sourceMapUrl; + } + return `${this.obfuscatedCode}\n${sourceMappingUrl}`; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ObfuscatedCode.prototype, "obfuscatedCode", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ObfuscatedCode.prototype, "sourceMap", void 0); +ObfuscatedCode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], ObfuscatedCode); +exports.ObfuscatedCode = ObfuscatedCode; + + +/***/ }), + +/***/ "./src/source-code/SourceCode.ts": +/*!***************************************!*\ + !*** ./src/source-code/SourceCode.ts ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SourceCode = void 0; +class SourceCode { + constructor(sourceCode, sourceMap) { + this.sourceCode = sourceCode; + this.sourceMap = sourceMap; + } + getSourceCode() { + return this.sourceCode; + } + getSourceMap() { + return this.sourceMap; + } + toString() { + return this.sourceCode; + } +} +exports.SourceCode = SourceCode; + + +/***/ }), + +/***/ "./src/storages/MapStorage.ts": +/*!************************************!*\ + !*** ./src/storages/MapStorage.ts ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MapStorage = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); +let MapStorage = class MapStorage { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } + initialize() { + this.storage = new Map(); + this.storageId = this.randomGenerator.getRandomString(6); + } + get(key) { + return this.storage.get(key); + } + getOrThrow(key) { + const value = this.get(key); + if (!value) { + throw new Error(`No value found in map storage with key \`${key}\``); + } + return value; + } + getKeyOf(value) { + for (const [key, storageValue] of this.storage) { + if (value === storageValue) { + return key; + } + } + return null; + } + getLength() { + return this.storage.size; + } + getStorage() { + return this.storage; + } + getStorageId() { + return this.storageId; + } + has(key) { + return this.storage.has(key); + } + mergeWith(storage, mergeId = false) { + this.storage = new Map([...this.storage, ...storage.getStorage()]); + if (mergeId) { + this.storageId = storage.getStorageId(); + } + } + set(key, value) { + this.storage.set(key, value); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], MapStorage.prototype, "storageId", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], MapStorage.prototype, "storage", void 0); +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], MapStorage.prototype, "initialize", null); +MapStorage = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], MapStorage); +exports.MapStorage = MapStorage; + + +/***/ }), + +/***/ "./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts": +/*!**************************************************************************!*\ + !*** ./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var CustomCodeHelperGroupStorage_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomCodeHelperGroupStorage = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TCustomCodeHelperGroupFactory_1 = __webpack_require__(/*! ../../types/container/custom-code-helpers/TCustomCodeHelperGroupFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const CustomCodeHelperGroup_1 = __webpack_require__(/*! ../../enums/custom-code-helpers/CustomCodeHelperGroup */ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts"); +const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); +let CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = class CustomCodeHelperGroupStorage extends MapStorage_1.MapStorage { + constructor(customCodeHelperGroupFactory, randomGenerator, options) { + super(randomGenerator, options); + this.customCodeHelperGroupFactory = customCodeHelperGroupFactory; + } + initialize() { + super.initialize(); + CustomCodeHelperGroupStorage_1.customCodeHelperGroupsList.forEach((customCodeHelperGroupName) => { + const customCodeHelperGroup = this.customCodeHelperGroupFactory(customCodeHelperGroupName); + this.storage.set(customCodeHelperGroupName, customCodeHelperGroup); + }); + } +}; +CustomCodeHelperGroupStorage.customCodeHelperGroupsList = [ + CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput, + CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection, + CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock, + CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending, + CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray +]; +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], CustomCodeHelperGroupStorage.prototype, "initialize", null); +CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory !== "undefined" && TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory) === "function" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], CustomCodeHelperGroupStorage); +exports.CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage; + + +/***/ }), + +/***/ "./src/storages/custom-nodes/ControlFlowStorage.ts": +/*!*********************************************************!*\ + !*** ./src/storages/custom-nodes/ControlFlowStorage.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a, _b; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlFlowStorage = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); +let ControlFlowStorage = class ControlFlowStorage extends MapStorage_1.MapStorage { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } +}; +ControlFlowStorage = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _b : Object]) +], ControlFlowStorage); +exports.ControlFlowStorage = ControlFlowStorage; + + +/***/ }), + +/***/ "./src/storages/string-array/StringArrayStorage.ts": +/*!*********************************************************!*\ + !*** ./src/storages/string-array/StringArrayStorage.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var StringArrayStorage_1, _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StringArrayStorage = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TIdentifierNamesGeneratorFactory_1 = __webpack_require__(/*! ../../types/container/generators/TIdentifierNamesGeneratorFactory */ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +const ICryptUtils_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtils */ "./src/interfaces/utils/ICryptUtils.ts"); +const IEscapeSequenceEncoder_1 = __webpack_require__(/*! ../../interfaces/utils/IEscapeSequenceEncoder */ "./src/interfaces/utils/IEscapeSequenceEncoder.ts"); +const IOptions_1 = __webpack_require__(/*! ../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); +const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); +let StringArrayStorage = StringArrayStorage_1 = class StringArrayStorage extends MapStorage_1.MapStorage { + constructor(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options, cryptUtils, escapeSequenceEncoder) { + super(randomGenerator, options); + this.rc4EncodedValuesSourcesCache = new Map(); + this.rotationAmount = 0; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.arrayUtils = arrayUtils; + this.cryptUtils = cryptUtils; + this.escapeSequenceEncoder = escapeSequenceEncoder; + this.rc4Keys = this.randomGenerator.getRandomGenerator() + .n(() => this.randomGenerator.getRandomGenerator().string({ + length: StringArrayStorage_1.rc4KeyLength + }), StringArrayStorage_1.rc4KeysCount); + } + initialize() { + super.initialize(); + this.rotationAmount = this.options.rotateStringArray + ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumRotationAmount, StringArrayStorage_1.maximumRotationAmount) + : 0; + } + get(value) { + return this.getOrSetIfDoesNotExist(value); + } + getRotationAmount() { + return this.rotationAmount; + } + getStorageName() { + return this.getStorageId(); + } + getStorageId() { + if (!this.stringArrayStorageName) { + this.stringArrayStorageName = this.identifierNamesGenerator + .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength); + } + return this.stringArrayStorageName; + } + getStorageCallsWrapperName() { + if (!this.stringArrayStorageCallsWrapperName) { + this.stringArrayStorageCallsWrapperName = this.identifierNamesGenerator + .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength); + } + return this.stringArrayStorageCallsWrapperName; + } + rotateStorage() { + if (!this.getLength()) { + return; + } + this.storage = new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()), this.rotationAmount)); + } + shuffleStorage() { + this.storage = new Map(this.arrayUtils + .shuffle(Array.from(this.storage.entries())) + .map(([value, stringArrayStorageItemData], index) => { + stringArrayStorageItemData.index = index; + return [value, stringArrayStorageItemData]; + }) + .sort(([, stringArrayStorageItemDataA], [, stringArrayStorageItemDataB]) => stringArrayStorageItemDataA.index - stringArrayStorageItemDataB.index)); + } + toString() { + return Array + .from(this.storage.values()) + .map((stringArrayStorageItemData) => { + return `'${this.escapeSequenceEncoder.encode(stringArrayStorageItemData.encodedValue, this.options.unicodeEscapeSequence)}'`; + }).toString(); + } + getOrSetIfDoesNotExist(value) { + const { encodedValue, decodeKey } = this.getEncodedValue(value); + const storedStringArrayStorageItemData = this.storage.get(encodedValue); + if (storedStringArrayStorageItemData) { + return storedStringArrayStorageItemData; + } + const stringArrayStorageItemData = { + encodedValue, + decodeKey, + value, + index: this.getLength() + }; + this.storage.set(encodedValue, stringArrayStorageItemData); + return stringArrayStorageItemData; + } + getEncodedValue(value) { + var _a; + switch (this.options.stringArrayEncoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: { + const decodeKey = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys); + const encodedValue = this.cryptUtils.btoa(this.cryptUtils.rc4(value, decodeKey)); + const encodedValueSources = (_a = this.rc4EncodedValuesSourcesCache.get(encodedValue)) !== null && _a !== void 0 ? _a : []; + let encodedValueSourcesLength = encodedValueSources.length; + const shouldAddValueToSourcesCache = !encodedValueSourcesLength || !encodedValueSources.includes(value); + if (shouldAddValueToSourcesCache) { + encodedValueSources.push(value); + encodedValueSourcesLength++; + } + this.rc4EncodedValuesSourcesCache.set(encodedValue, encodedValueSources); + if (encodedValueSourcesLength > 1) { + return this.getEncodedValue(value); + } + return { encodedValue, decodeKey }; + } + case StringArrayEncoding_1.StringArrayEncoding.Base64: { + const decodeKey = null; + const encodedValue = this.cryptUtils.btoa(value); + return { encodedValue, decodeKey }; + } + default: { + const decodeKey = null; + const encodedValue = value; + return { encodedValue, decodeKey }; + } + } + } +}; +StringArrayStorage.minimumRotationAmount = 100; +StringArrayStorage.maximumRotationAmount = 500; +StringArrayStorage.rc4KeyLength = 4; +StringArrayStorage.rc4KeysCount = 50; +StringArrayStorage.stringArrayNameLength = 4; +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], StringArrayStorage.prototype, "initialize", null); +StringArrayStorage = StringArrayStorage_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), + __metadata("design:paramtypes", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _d : Object, typeof (_e = typeof ICryptUtils_1.ICryptUtils !== "undefined" && ICryptUtils_1.ICryptUtils) === "function" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _f : Object]) +], StringArrayStorage); +exports.StringArrayStorage = StringArrayStorage; + + +/***/ }), + +/***/ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts": +/*!*********************************************************************************!*\ + !*** ./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/code-transformers/TCodeTransformerFactory.ts": +/*!**************************************************************************!*\ + !*** ./src/types/container/code-transformers/TCodeTransformerFactory.ts ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts": +/*!*****************************************************************************!*\ + !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts": +/*!**********************************************************************************!*\ + !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts": +/*!*********************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts": +/*!***********************************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts ***! + \***********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts": +/*!****************************************************************************!*\ + !*** ./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts": +/*!******************************************************************************!*\ + !*** ./src/types/container/node-transformers/TControlFlowReplacerFactory.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts": +/*!*****************************************************************************!*\ + !*** ./src/types/container/node-transformers/TControlFlowStorageFactory.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts": +/*!****************************************************************************************!*\ + !*** ./src/types/container/node-transformers/TIdentifierObfuscatingReplacerFactory.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TLiteralObfuscatingReplacerFactory.ts": +/*!*************************************************************************************!*\ + !*** ./src/types/container/node-transformers/TLiteralObfuscatingReplacerFactory.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TNodeTransformerFactory.ts": +/*!**************************************************************************!*\ + !*** ./src/types/container/node-transformers/TNodeTransformerFactory.ts ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/node-transformers/TObfuscatingGuardFactory.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts": +/*!************************************************************************************!*\ + !*** ./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/container/source-code/TObfuscatedCodeFactory.ts": +/*!*******************************************************************!*\ + !*** ./src/types/container/source-code/TObfuscatedCodeFactory.ts ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/options/TInputOptions.ts": +/*!********************************************!*\ + !*** ./src/types/options/TInputOptions.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/options/TStringArrayEncoding.ts": +/*!***************************************************!*\ + !*** ./src/types/options/TStringArrayEncoding.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/storages/TControlFlowStorage.ts": +/*!***************************************************!*\ + !*** ./src/types/storages/TControlFlowStorage.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/types/storages/TCustomCodeHelperGroupStorage.ts": +/*!*************************************************************!*\ + !*** ./src/types/storages/TCustomCodeHelperGroupStorage.ts ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + + +/***/ }), + +/***/ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts": +/*!************************************************************!*\ + !*** ./src/utils/AbstractTransformerNamesGroupsBuilder.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AbstractTransformerNamesGroupsBuilder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const ILevelledTopologicalSorter_1 = __webpack_require__(/*! ../interfaces/utils/ILevelledTopologicalSorter */ "./src/interfaces/utils/ILevelledTopologicalSorter.ts"); +let AbstractTransformerNamesGroupsBuilder = class AbstractTransformerNamesGroupsBuilder { + constructor(levelledTopologicalSorter) { + this.levelledTopologicalSorter = levelledTopologicalSorter; + } + build(normalizedTransformers) { + const transformerNames = Object.keys(normalizedTransformers); + const relationEdges = this.buildTransformersRelationEdges(transformerNames, normalizedTransformers); + for (const [precedent, consequent] of relationEdges) { + this.levelledTopologicalSorter.add(precedent, consequent); + } + return this.levelledTopologicalSorter.sortByGroups(); + } + buildTransformersRelationEdges(transformerNames, normalizedTransformers) { + const relationEdges = []; + for (const transformerName of transformerNames) { + const transformer = normalizedTransformers[transformerName]; + const runAfterRelations = transformer.runAfter; + if (!runAfterRelations || !runAfterRelations.length) { + relationEdges.push([transformerName, null]); + continue; + } + for (const runAfterRelation of runAfterRelations) { + const isUnknownRelation = normalizedTransformers[runAfterRelation] === undefined; + if (isUnknownRelation) { + relationEdges.push([transformerName, null]); + continue; + } + relationEdges.push([runAfterRelation, transformerName]); + } + } + return relationEdges; + } +}; +AbstractTransformerNamesGroupsBuilder = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)), + __metadata("design:paramtypes", [typeof (_a = typeof ILevelledTopologicalSorter_1.ILevelledTopologicalSorter !== "undefined" && ILevelledTopologicalSorter_1.ILevelledTopologicalSorter) === "function" ? _a : Object]) +], AbstractTransformerNamesGroupsBuilder); +exports.AbstractTransformerNamesGroupsBuilder = AbstractTransformerNamesGroupsBuilder; + + +/***/ }), + +/***/ "./src/utils/ArrayUtils.ts": +/*!*********************************!*\ + !*** ./src/utils/ArrayUtils.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ArrayUtils = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +let ArrayUtils = class ArrayUtils { + constructor(randomGenerator) { + this.randomGenerator = randomGenerator; + } + createWithRange(length) { + const range = []; + for (let i = 0; i < length; i++) { + range.push(i); + } + return range; + } + findMostOccurringElement(array) { + var _a; + const arrayLength = array.length; + if (!arrayLength) { + return null; + } + const elementsMap = {}; + let mostOccurringElement = array[0]; + let mostOccurringElementCount = 1; + for (const element of array) { + const currentElementCount = (_a = elementsMap[element]) !== null && _a !== void 0 ? _a : 0; + const updatedElementCount = currentElementCount + 1; + if (updatedElementCount > mostOccurringElementCount) { + mostOccurringElement = element; + mostOccurringElementCount = updatedElementCount; + } + elementsMap[element] = updatedElementCount; + } + return mostOccurringElement; + } + rotate(array, times) { + if (!array.length) { + throw new ReferenceError('Cannot rotate empty array.'); + } + if (times <= 0) { + return array; + } + const newArray = array; + let temp; + while (times--) { + temp = newArray.pop(); + if (temp) { + newArray.unshift(temp); + } + } + return newArray; + } + shuffle(array) { + const shuffledArray = [...array]; + for (let i = shuffledArray.length; i; i--) { + const j = Math.floor(this.randomGenerator.getMathRandom() * i); + [shuffledArray[i - 1], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i - 1]]; + } + return shuffledArray; + } +}; +ArrayUtils = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object]) +], ArrayUtils); +exports.ArrayUtils = ArrayUtils; + + +/***/ }), + +/***/ "./src/utils/CryptUtils.ts": +/*!*********************************!*\ + !*** ./src/utils/CryptUtils.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CryptUtils = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IRandomGenerator_1 = __webpack_require__(/*! ../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const AlphabetStringUppercase_1 = __webpack_require__(/*! ../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AlphabetString_1 = __webpack_require__(/*! ../constants/AlphabetString */ "./src/constants/AlphabetString.ts"); +const NumbersString_1 = __webpack_require__(/*! ../constants/NumbersString */ "./src/constants/NumbersString.ts"); +const RandomGenerator_1 = __webpack_require__(/*! ./RandomGenerator */ "./src/utils/RandomGenerator.ts"); +const Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts"); +let CryptUtils = class CryptUtils { + constructor(randomGenerator) { + this.randomGenerator = randomGenerator; + } + btoa(string) { + const chars = `${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/=`; + let output = ''; + string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, (match, p1) => { + return String.fromCharCode(parseInt(`${Utils_1.Utils.hexadecimalPrefix}${p1}`, 16)); + }); + for (let block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) { + charCode = string.charCodeAt(idx += 3 / 4); + if (charCode > 0xFF) { + throw new Error('\'btoa\' failed: The string to be encoded contains characters outside of the Latin1 range.'); + } + block = block << 8 | charCode; + } + return output; + } + hideString(str, length) { + const escapeRegExp = (s) => s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + const randomMerge = (s1, s2) => { + let i1 = -1; + let i2 = -1; + let result = ''; + while (i1 < s1.length || i2 < s2.length) { + if (this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) { + result += s2.charAt(++i2); + } + else { + result += s1.charAt(++i1); + } + } + return result; + }; + const randomString = this.randomGenerator.getRandomGenerator().string({ + length: length, + pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool + }); + let randomStringDiff = randomString.replace(new RegExp(`[${escapeRegExp(str)}]`, 'g'), ''); + const randomStringDiffArray = randomStringDiff.split(''); + this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray); + randomStringDiff = randomStringDiffArray.join(''); + return [randomMerge(str, randomStringDiff), randomStringDiff]; + } + rc4(string, key) { + const s = []; + let j = 0; + let x; + let result = ''; + for (var i = 0; i < 256; i++) { + s[i] = i; + } + for (i = 0; i < 256; i++) { + j = (j + s[i] + key.charCodeAt(i % key.length)) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + } + i = 0; + j = 0; + for (let y = 0; y < string.length; y++) { + i = (i + 1) % 256; + j = (j + s[i]) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]); + } + return result; + } +}; +CryptUtils = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __metadata("design:paramtypes", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _a : Object]) +], CryptUtils); +exports.CryptUtils = CryptUtils; + + +/***/ }), + +/***/ "./src/utils/EscapeSequenceEncoder.ts": +/*!********************************************!*\ + !*** ./src/utils/EscapeSequenceEncoder.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EscapeSequenceEncoder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +let EscapeSequenceEncoder = class EscapeSequenceEncoder { + constructor() { + this.stringsCache = new Map(); + } + encode(string, encodeAllSymbols) { + const cacheKey = `${string}-${String(encodeAllSymbols)}`; + if (this.stringsCache.has(cacheKey)) { + return this.stringsCache.get(cacheKey); + } + const radix = 16; + const replaceRegExp = new RegExp('[\\s\\S]', 'g'); + const escapeSequenceRegExp = new RegExp('[\'\"\\\\\\s]'); + const regExp = new RegExp('[\\x00-\\x7F]'); + let prefix; + let template; + const result = string.replace(replaceRegExp, (character) => { + if (!encodeAllSymbols && !escapeSequenceRegExp.exec(character)) { + return character; + } + if (regExp.exec(character)) { + prefix = '\\x'; + template = '00'; + } + else { + prefix = '\\u'; + template = '0000'; + } + return `${prefix}${(template + character.charCodeAt(0).toString(radix)).slice(-template.length)}`; + }); + this.stringsCache.set(cacheKey, result); + this.stringsCache.set(`${result}-${String(encodeAllSymbols)}`, result); + return result; + } +}; +EscapeSequenceEncoder = __decorate([ + inversify_1.injectable() +], EscapeSequenceEncoder); +exports.EscapeSequenceEncoder = EscapeSequenceEncoder; + + +/***/ }), + +/***/ "./src/utils/LevelledTopologicalSorter.ts": +/*!************************************************!*\ + !*** ./src/utils/LevelledTopologicalSorter.ts ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LevelledTopologicalSorter = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +let LevelledTopologicalSorter = class LevelledTopologicalSorter { + constructor() { + this.graph = new Map(); + } + add(precedent, consequent = null) { + if (consequent !== null) { + return this.link(precedent, consequent); + } + return this.register(precedent); + } + sort() { + const consequents = Array.from(this.graph.keys()); + const results = []; + const marks = {}; + for (const consequent of consequents) { + if (marks[consequent] !== undefined) { + continue; + } + this.visit(results, marks, consequent); + } + return results; + } + sortByGroups() { + this.sort(); + const resultItemsGroups = []; + while (this.hasNodes()) { + const rootNodes = this.findRootNodes(); + resultItemsGroups.push(rootNodes); + for (const rootNode of rootNodes) { + this.delete(rootNode); + } + } + return resultItemsGroups; + } + delete(consequent) { + const precedents = this.getPrecedents(consequent); + if (precedents.length) { + throw new Error(`Unable to remove non-root node: ${consequent}`); + } + this.graph.delete(consequent); + const precedentsGroups = Array.from(this.graph.values()); + for (const precedentsGroup of precedentsGroups) { + const precedentsCount = precedentsGroup.length - 1; + for (let index = precedentsCount; index >= 0; index = index - 1) { + if (precedentsGroup[index] !== consequent) { + continue; + } + precedentsGroup.splice(index, 1); + } + } + } + findRootNodes() { + const consequents = Array.from(this.graph.keys()); + const rootNodes = []; + for (const consequent of consequents) { + if (!this.hasPrecedents(consequent)) { + rootNodes.push(consequent); + } + } + return rootNodes; + } + getPrecedents(consequent) { + const precedents = this.graph.get(consequent); + if (!precedents) { + throw new Error(`Unknown node: ${consequent}`); + } + return precedents; + } + hasNodes() { + return this.graph.size > 0; + } + hasPrecedents(consequent) { + return this.getPrecedents(consequent).length > 0; + } + link(precedent, consequent) { + this.register(precedent); + this.register(consequent); + const target = this.graph.get(consequent); + if (target && !target.includes(precedent)) { + target.push(precedent); + } + return this; + } + register(name) { + if (!this.graph.has(name)) { + this.graph.set(name, []); + } + return this; + } + visit(results, marks, name) { + const mark = marks[name]; + if (mark === 'visiting') { + throw new Error(`Detected cycle involving node: ${name}`); + } + if (mark) { + return; + } + marks[name] = 'visiting'; + const precedents = this.getPrecedents(name); + for (const precedent of precedents) { + this.visit(results, marks, precedent); + } + marks[name] = 'ok'; + results.push(name); + return; + } +}; +LevelledTopologicalSorter = __decorate([ + inversify_1.injectable() +], LevelledTopologicalSorter); +exports.LevelledTopologicalSorter = LevelledTopologicalSorter; + + +/***/ }), + +/***/ "./src/utils/NumberUtils.ts": +/*!**********************************!*\ + !*** ./src/utils/NumberUtils.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NumberUtils = void 0; +const Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts"); +class NumberUtils { + static toHex(number) { + const radix = 16; + const basePart = typeof number === 'number' + ? number.toString(radix) + : `${number.toString(radix)}n`; + return `${Utils_1.Utils.hexadecimalPrefix}${basePart}`; + } + static isCeil(number) { + return typeof number === 'number' + ? number % 1 === 0 + : true; + } +} +exports.NumberUtils = NumberUtils; + + +/***/ }), + +/***/ "./src/utils/RandomGenerator.ts": +/*!**************************************!*\ + !*** ./src/utils/RandomGenerator.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var RandomGenerator_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RandomGenerator = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const md5_1 = __importDefault(__webpack_require__(/*! md5 */ "md5")); +const chance_1 = __webpack_require__(/*! chance */ "chance"); +const IOptions_1 = __webpack_require__(/*! ../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ISourceCode_1 = __webpack_require__(/*! ../interfaces/source-code/ISourceCode */ "./src/interfaces/source-code/ISourceCode.ts"); +const Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AlphabetString_1 = __webpack_require__(/*! ../constants/AlphabetString */ "./src/constants/AlphabetString.ts"); +const AlphabetStringUppercase_1 = __webpack_require__(/*! ../constants/AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +let RandomGenerator = RandomGenerator_1 = class RandomGenerator { + constructor(sourceCode, options) { + this.sourceCode = sourceCode; + this.options = options; + } + initialize() { + this.randomGenerator = new chance_1.Chance(this.getRawSeed()); + } + getMathRandom() { + return this.getRandomInteger(0, 99999) / 100000; + } + getRandomGenerator() { + return this.randomGenerator; + } + getRandomInteger(min, max) { + return this.getRandomGenerator().integer({ + min: min, + max: max + }); + } + getRandomString(length, pool = RandomGenerator_1.randomGeneratorPool) { + return this.getRandomGenerator().string({ length, pool }); + } + getInputSeed() { + return this.options.seed.toString(); + } + getRawSeed() { + const inputSeed = this.getInputSeed(); + const inputSeedParts = `${inputSeed}`.split('|'); + if (inputSeedParts.length > 1) { + return inputSeed; + } + const sourceCodeMD5Hash = md5_1.default(this.sourceCode.getSourceCode()); + return `${inputSeed}|${sourceCodeMD5Hash}`; + } +}; +RandomGenerator.randomGeneratorPool = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof chance_1.Chance !== "undefined" && chance_1.Chance.Chance) === "function" ? _a : Object) +], RandomGenerator.prototype, "randomGenerator", void 0); +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], RandomGenerator.prototype, "initialize", null); +RandomGenerator = RandomGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_b = typeof ISourceCode_1.ISourceCode !== "undefined" && ISourceCode_1.ISourceCode) === "function" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _c : Object]) +], RandomGenerator); +exports.RandomGenerator = RandomGenerator; + + +/***/ }), + +/***/ "./src/utils/Utils.ts": +/*!****************************!*\ + !*** ./src/utils/Utils.ts ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Utils = void 0; +class Utils { + static buildVersionMessage(version, buildTimestamp) { + if (!version || !buildTimestamp) { + return 'unknown'; + } + const buildDate = new Date(parseInt(buildTimestamp, 10)).toISOString(); + return `${version}_${buildDate}`; + } + static extractDomainFrom(url) { + let domain; + if (url.includes('://') || url.indexOf('//') === 0) { + domain = url.split('/')[2]; + } + else { + domain = url.split('/')[0]; + } + domain = domain.split(':')[0]; + return domain; + } + static getIdentifiersPrefixForMultipleSources(identifiersPrefix, sourceCodeIndex) { + const baseIdentifiersPrefix = !!identifiersPrefix + ? identifiersPrefix + : Utils.baseMultipleSourcesIdentifiersPrefix; + return `${baseIdentifiersPrefix}${sourceCodeIndex}`; + } +} +exports.Utils = Utils; +Utils.baseMultipleSourcesIdentifiersPrefix = 'a'; +Utils.hexadecimalPrefix = '0x'; + + +/***/ }), + +/***/ "@gradecam/tsenum": +/*!***********************************!*\ + !*** external "@gradecam/tsenum" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@gradecam/tsenum"); + +/***/ }), + +/***/ "acorn": +/*!************************!*\ + !*** external "acorn" ***! + \************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("acorn"); + +/***/ }), + +/***/ "chalk": +/*!************************!*\ + !*** external "chalk" ***! + \************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("chalk"); + +/***/ }), + +/***/ "chance": +/*!*************************!*\ + !*** external "chance" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("chance"); + +/***/ }), + +/***/ "class-validator": +/*!**********************************!*\ + !*** external "class-validator" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("class-validator"); + +/***/ }), + +/***/ "escodegen": +/*!****************************!*\ + !*** external "escodegen" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("escodegen"); + +/***/ }), + +/***/ "eslint-scope": +/*!*******************************!*\ + !*** external "eslint-scope" ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("eslint-scope"); + +/***/ }), + +/***/ "estraverse": +/*!*****************************!*\ + !*** external "estraverse" ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("estraverse"); + +/***/ }), + +/***/ "eventemitter3": +/*!********************************!*\ + !*** external "eventemitter3" ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("eventemitter3"); + +/***/ }), + +/***/ "fast-deep-equal": +/*!**********************************!*\ + !*** external "fast-deep-equal" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("fast-deep-equal"); + +/***/ }), + +/***/ "inversify": +/*!****************************!*\ + !*** external "inversify" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("inversify"); + +/***/ }), + +/***/ "js-string-escape": +/*!***********************************!*\ + !*** external "js-string-escape" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("js-string-escape"); + +/***/ }), + +/***/ "md5": +/*!**********************!*\ + !*** external "md5" ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("md5"); + +/***/ }), + +/***/ "reflect-metadata": +/*!***********************************!*\ + !*** external "reflect-metadata" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("reflect-metadata"); + +/***/ }), + +/***/ "string-template": +/*!**********************************!*\ + !*** external "string-template" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("string-template"); + +/***/ }) + +/******/ }); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts b/src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts index a920fde4..894c6231 100644 --- a/src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts +++ b/src/node-transformers/minification-transformers/IfStatementSimplifyTransformer.ts @@ -19,9 +19,9 @@ import { NodeFactory } from '../../node/NodeFactory'; @injectable() export class IfStatementSimplifyTransformer extends AbstractNodeTransformer { /** - * @type {WeakSet} + * @type {WeakSet} */ - private readonly ifStatementBlockStatementsWithReturnStatementSet: WeakSet = new Set(); + private readonly branchStatementsWithReturnStatementSet: WeakSet = new Set(); /** * @param {IRandomGenerator} randomGenerator @@ -62,91 +62,131 @@ export class IfStatementSimplifyTransformer extends AbstractNodeTransformer { * @param {ESTree.Node} parentNode * @returns {ESTree.IfStatement} */ - // eslint-disable-next-line complexity public transformNode ( ifStatementNode: ESTree.IfStatement, parentNode: ESTree.Node ): ESTree.Node { - if (this.isValidIfStatementBlockStatementForConvert(ifStatementNode.consequent)) { - const consequentExpression: ESTree.Expression | null = this.toExpression(ifStatementNode.consequent.body); + const consequentExpression: ESTree.Expression | null = this.convertBranchStatementToExpression(ifStatementNode.consequent); - if (!consequentExpression) { - return ifStatementNode; + if (!consequentExpression) { + return ifStatementNode; + } + + const isConsequentWithReturnStatement: boolean = this.branchStatementsWithReturnStatementSet + .has(ifStatementNode.consequent); + + if (!ifStatementNode.alternate) { + if (isConsequentWithReturnStatement) { + return NodeFactory.ifStatementNode( + ifStatementNode.test, + NodeFactory.returnStatementNode(consequentExpression) + ); } - if (ifStatementNode.alternate) { - if (this.isValidIfStatementBlockStatementForConvert(ifStatementNode.alternate)) { - const alternateExpression: ESTree.Expression | null = this.toExpression(ifStatementNode.alternate.body); + return NodeFactory.expressionStatementNode( + NodeFactory.logicalExpressionNode( + '&&', + ifStatementNode.test, + consequentExpression, + ) + ); + } - if (!alternateExpression) { - return ifStatementNode; + const alternateExpression: ESTree.Expression | null = this.convertBranchStatementToExpression(ifStatementNode.alternate); + + if (!alternateExpression) { + return ifStatementNode; + } + + const isAlternateWithReturnStatement: boolean = this.branchStatementsWithReturnStatementSet + .has(ifStatementNode.alternate); + + if (isConsequentWithReturnStatement && isAlternateWithReturnStatement) { + return NodeFactory.returnStatementNode( + NodeFactory.conditionalExpressionNode( + ifStatementNode.test, + consequentExpression, + alternateExpression + ) + ); + } + + if (isConsequentWithReturnStatement) { + return NodeFactory.ifStatementNode( + ifStatementNode.test, + NodeFactory.returnStatementNode(consequentExpression), + NodeFactory.expressionStatementNode(alternateExpression) + ); + } + + if (isAlternateWithReturnStatement) { + return NodeFactory.ifStatementNode( + ifStatementNode.test, + NodeFactory.expressionStatementNode(consequentExpression), + NodeFactory.returnStatementNode(alternateExpression) + ); + } + + return NodeFactory.expressionStatementNode( + NodeFactory.conditionalExpressionNode( + ifStatementNode.test, + consequentExpression, + alternateExpression + ) + ); + } + + /** + * @param {ESTree.Statement} statementNode + * @returns {ESTree.Expression | null} + */ + private convertBranchStatementToExpression ( + statementNode: ESTree.Statement + ): ESTree.Expression | null { + if (!this.isValidBranchStatementStatementForConvert(statementNode)) { + return null; + } + + const unwrappedExpressions: ESTree.Expression[] = statementNode + .body + .reduce( + (acc: ESTree.Expression[], statementBodyStatementNode: ESTree.Statement) => { + if (NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) { + return [ + ...acc, + statementBodyStatementNode.expression + ]; } if ( - this.ifStatementBlockStatementsWithReturnStatementSet.has(ifStatementNode.consequent) - && this.ifStatementBlockStatementsWithReturnStatementSet.has(ifStatementNode.alternate) + NodeGuards.isReturnStatementNode(statementBodyStatementNode) + && statementBodyStatementNode.argument ) { - return NodeFactory.returnStatementNode( - NodeFactory.conditionalExpressionNode( - ifStatementNode.test, - consequentExpression, - alternateExpression - ) - ); + return [ + ...acc, + statementBodyStatementNode.argument + ]; } - if (this.ifStatementBlockStatementsWithReturnStatementSet.has(ifStatementNode.consequent)) { - return NodeFactory.ifStatementNode( - ifStatementNode.test, - NodeFactory.returnStatementNode(consequentExpression), - NodeFactory.expressionStatementNode(alternateExpression) - ); - } - - if (this.ifStatementBlockStatementsWithReturnStatementSet.has(ifStatementNode.alternate)) { - return NodeFactory.ifStatementNode( - ifStatementNode.test, - NodeFactory.expressionStatementNode(consequentExpression), - NodeFactory.returnStatementNode(alternateExpression) - ); - } - - return NodeFactory.expressionStatementNode( - NodeFactory.conditionalExpressionNode( - ifStatementNode.test, - consequentExpression, - alternateExpression - ) - ); - } else { - return ifStatementNode; - } - } - - return this.ifStatementBlockStatementsWithReturnStatementSet.has(ifStatementNode.consequent) - ? NodeFactory.ifStatementNode( - ifStatementNode.test, - NodeFactory.returnStatementNode(consequentExpression) - ) - : NodeFactory.expressionStatementNode( - NodeFactory.logicalExpressionNode( - '&&', - ifStatementNode.test, - consequentExpression, - ) - ); + return acc; + }, + [] + ); + if (!unwrappedExpressions.length) { + return null; } - return ifStatementNode; + return unwrappedExpressions.length === 1 + ? unwrappedExpressions[0] + : NodeFactory.sequenceExpressionNode(unwrappedExpressions); } /** * @param {ESTree.Statement} statementNode * @returns {statementNode is ESTree.BlockStatement & {body: (ESTree.ExpressionStatement | ESTree.ReturnStatement)[]}} - * @private */ - private isValidIfStatementBlockStatementForConvert ( + private isValidBranchStatementStatementForConvert ( statementNode: ESTree.Statement ): statementNode is ESTree.BlockStatement & {body: (ESTree.ExpressionStatement | ESTree.ReturnStatement)[]} { if (!NodeGuards.isBlockStatementNode(statementNode)) { @@ -164,42 +204,10 @@ export class IfStatementSimplifyTransformer extends AbstractNodeTransformer { break; } else if (NodeGuards.isReturnStatementNode(statement)) { - this.ifStatementBlockStatementsWithReturnStatementSet.add(statementNode); + this.branchStatementsWithReturnStatementSet.add(statementNode); } } return isValidStatementNode; } - - /** - * @param {(ESTree.ExpressionStatement | ESTree.ReturnStatement)[]} statementNodes - * @returns {ESTree.Expression | null} - */ - private toExpression ( - statementNodes: (ESTree.ExpressionStatement | ESTree.ReturnStatement)[] - ): ESTree.Expression | null { - const unwrappedExpressions: ESTree.Expression[] = statementNodes - .map((statementNode: ESTree.ExpressionStatement | ESTree.ReturnStatement) => { - if (NodeGuards.isExpressionStatementNode(statementNode)) { - return statementNode.expression; - } - - if (NodeGuards.isReturnStatementNode(statementNode)) { - return statementNode.argument; - } - - return statementNode; - }) - .filter((expressionNode: ESTree.Expression | null | undefined): expressionNode is ESTree.Expression => - !!expressionNode - ); - - if (!unwrappedExpressions.length) { - return null; - } - - return unwrappedExpressions.length === 1 - ? unwrappedExpressions[0] - : NodeFactory.sequenceExpressionNode(unwrappedExpressions); - } }