From efac711ce40cea34cb2747ba6bba9b7385667c6e Mon Sep 17 00:00:00 2001 From: sanex Date: Sun, 27 Dec 2020 14:14:50 +0300 Subject: [PATCH 1/6] Improved `rotateStringArray` option WIP --- CHANGELOG.md | 1 + dist/index.cli.js | 18642 +++++++++++++++- dist/index.js | 17630 ++++++++++++++- src/JavaScriptObfuscator.ts | 1 + .../StringArrayTransformersModule.ts | 5 + ...StringArrayCallsWrapperBase64CodeHelper.ts | 1 + .../StringArrayCallsWrapperRc4CodeHelper.ts | 1 + .../StringArrayRotateFunctionCodeHelper.ts | 61 +- .../group/StringArrayCodeHelperGroup.ts | 23 - .../StringArrayBase64DecodeTemplate.ts | 3 +- .../StringArrayRC4DecodeTemplate.ts | 5 +- .../SelfDefendingTemplate.ts | 81 - .../StringArrayRotateFunctionTemplate.ts | 23 +- .../node-transformers/NodeTransformer.ts | 1 + .../NumberToNumericalExpressionTransformer.ts | 99 +- .../StringArrayRotateFunctionTransformer.ts | 205 + ...StringArrayScopeCallsWrapperTransformer.ts | 8 + .../StringArrayTransformer.ts | 12 +- src/node/NodeFactory.ts | 37 + .../NumericalExpressionDataToNodeConverter.ts | 131 + src/options/Options.ts | 2 +- ...ionDataToNodeConverterLiteralNodeGetter.ts | 6 + test/dev/dev.ts | 73 +- .../JavaScriptObfuscatorRuntime.spec.ts | 24 +- 24 files changed, 36807 insertions(+), 268 deletions(-) delete mode 100644 src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts create mode 100644 src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts create mode 100644 src/node/NumericalExpressionDataToNodeConverter.ts create mode 100644 src/types/node/TNumericalExpressionDataToNodeConverterLiteralNodeGetter.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c08840f0..7568c19b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Change Log v2.10.0 --- +* `splitStringsChunkLength` minimum value is `3` now * Some internal refactoring related to node append events v2.9.4 diff --git a/dist/index.cli.js b/dist/index.cli.js index 99d690a7f..7f5ed02ec 100644 --- a/dist/index.cli.js +++ b/dist/index.cli.js @@ -1,3 +1,18641 @@ -/*! For license information please see index.cli.js.LICENSE.txt */ -require("source-map-support").install(),module.exports=(()=>{var e={7568:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const o=r(8206);e.exports=o.JavaScriptObfuscatorCLI},425: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.prototype.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(6054)),c=a(r(2242));class l{static parse(e,t){const r=l.sourceTypes.length;for(let o=0;o"),s=`...${o.slice(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"]},7086: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}),p=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.prototype.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 S=r(2991),y=r(5350),h=f(r(9385)),N=r(2596),_=r(7673),b=r(5082),O=r(4482),I=r(1403),E=r(698),v=r(7082),C=r(5670),T=r(6221),R=r(4212),A=r(8932),j=r(4941),M=r(425),F=r(4134),P=r(4741);let D=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,P.Utils.buildVersionMessage("2.10.0",1608894104436)),this.logger.info(T.LoggingMessage.ObfuscationStarted),this.logger.info(T.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getInputSeed()),e=this.runCodeTransformationStage(e,C.CodeTransformationStage.PreparingTransformers);const r=this.parseCode(e),o=this.transformAstTree(r),n=this.generateCode(e,o);n.code=this.runCodeTransformationStage(n.code,C.CodeTransformationStage.FinalizingTransformers);const i=(Date.now()-t)/1e3;return this.logger.success(T.LoggingMessage.ObfuscationCompleted,i),this.getObfuscatedCode(n)}parseCode(e){return M.ASTParserFacade.parse(e,o.parseOptions)}transformAstTree(e){return e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Initializing),!F.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.ControlFlowFlattening)),this.options.renameProperties&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.RenameProperties)),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Converting),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.RenameIdentifiers),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.StringArray),this.options.simplify&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Simplifying)),e=this.runNodeTransformationStage(e,A.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)}};D.parseOptions={ecmaVersion:j.ecmaVersion,allowHashBang:!0,allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,locations:!0,ranges:!0},D.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},D.codeTransformersList=[v.CodeTransformer.HashbangOperatorTransformer],D.nodeTransformersList=[R.NodeTransformer.BooleanLiteralTransformer,R.NodeTransformer.BlockStatementControlFlowTransformer,R.NodeTransformer.BlockStatementSimplifyTransformer,R.NodeTransformer.CommentsTransformer,R.NodeTransformer.CustomCodeHelpersTransformer,R.NodeTransformer.DeadCodeInjectionTransformer,R.NodeTransformer.EscapeSequenceTransformer,R.NodeTransformer.EvalCallExpressionTransformer,R.NodeTransformer.ExportSpecifierTransformer,R.NodeTransformer.ExpressionStatementsMergeTransformer,R.NodeTransformer.FunctionControlFlowTransformer,R.NodeTransformer.IfStatementSimplifyTransformer,R.NodeTransformer.LabeledStatementTransformer,R.NodeTransformer.RenamePropertiesTransformer,R.NodeTransformer.MemberExpressionTransformer,R.NodeTransformer.MetadataTransformer,R.NodeTransformer.MethodDefinitionTransformer,R.NodeTransformer.NumberLiteralTransformer,R.NodeTransformer.NumberToNumericalExpressionTransformer,R.NodeTransformer.ObfuscatingGuardsTransformer,R.NodeTransformer.ObjectExpressionKeysTransformer,R.NodeTransformer.ObjectExpressionTransformer,R.NodeTransformer.ObjectPatternPropertiesTransformer,R.NodeTransformer.ParentificationTransformer,R.NodeTransformer.ScopeIdentifiersTransformer,R.NodeTransformer.SplitStringTransformer,R.NodeTransformer.StringArrayScopeCallsWrapperTransformer,R.NodeTransformer.StringArrayTransformer,R.NodeTransformer.TemplateLiteralTransformer,R.NodeTransformer.VariableDeclarationsMergeTransformer,R.NodeTransformer.VariablePreserveTransformer],D=o=p([S.injectable(),g(0,S.inject(y.ServiceIdentifiers.ICodeTransformersRunner)),g(1,S.inject(y.ServiceIdentifiers.INodeTransformersRunner)),g(2,S.inject(y.ServiceIdentifiers.IRandomGenerator)),g(3,S.inject(y.ServiceIdentifiers.Factory__IObfuscatedCode)),g(4,S.inject(y.ServiceIdentifiers.ILogger)),g(5,S.inject(y.ServiceIdentifiers.IOptions)),m("design:paramtypes",["function"==typeof(n=void 0!==_.ICodeTransformersRunner&&_.ICodeTransformersRunner)?n:Object,"function"==typeof(i=void 0!==E.INodeTransformersRunner&&E.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==I.IRandomGenerator&&I.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])],D),t.JavaScriptObfuscator=D},8206:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscatorCLI=void 0,r(9906);const o=r(4161);t.JavaScriptObfuscatorCLI=class{static obfuscate(e){const t=new o.JavaScriptObfuscatorCLI(e);t.initialize(),t.run()}}},2895:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0,r(9906);const o=r(5350),n=r(1636),i=r(8516),a=r(4741);class s{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 i=a.Utils.getIdentifiersPrefixForMultipleSources(t.identifiersPrefix,n),c=e[o],l=Object.assign(Object.assign({},t),{identifiersPrefix:i});return Object.assign(Object.assign({},r),{[o]:s.obfuscate(c,l)})}),{})}static getOptionsByPreset(e){return i.Options.getOptionsByPreset(e)}}t.JavaScriptObfuscator=s,s.version=null!=="2.10.0"?"2.10.0":"unknown"},3900: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.prototype.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(2991),p=r(5350),f=c(r(4523)),m=r(8904),g=r(8657),S=r(4134),y=r(8134);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];f.traverse(t,{enter:o=>{if(S.NodeGuards.isCallExpressionNode(o))return t.parentNode!==y.NodeStatementUtils.getParentNodeWithStatements(o)?f.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(p.ServiceIdentifiers.Factory__ICalleeDataExtractor)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TCalleeDataExtractorFactory&&m.TCalleeDataExtractorFactory)?n:Object])],h),t.CallsGraphAnalyzer=h},3159: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;const n=r(2991);let i=class{};i=o([n.injectable()],i),t.AbstractCalleeDataExtractor=i},5341: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.prototype.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(2991),c=a(r(4523)),l=r(3159),d=r(4134),u=r(8134);let p=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}};p=i([s.injectable()],p),t.FunctionDeclarationCalleeDataExtractor=p},1853: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.prototype.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(2991),c=a(r(4523)),l=r(3159),d=r(4134),u=r(8134);let p=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}};p=i([s.injectable()],p),t.FunctionExpressionCalleeDataExtractor=p},5773: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.prototype.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(2991),l=s(r(4523)),d=r(3159),u=r(4134),p=r(8134);let f=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(p.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}};f=o=a([c.injectable()],f),t.ObjectExpressionCalleeDataExtractor=f},472: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.NumberNumericalExpressionAnalyzer=void 0;const c=r(2991),l=r(1403),d=r(5350),u=r(6543);let p=o=class{constructor(e){this.numberFactorsMap=new Map,this.randomGenerator=e}analyze(e){if(isNaN(e))throw new Error("Given value is NaN");return u.NumberUtils.isUnsafeNumber(e)?[e]:this.generateAdditionParts(e).map((e=>this.mixWithMultiplyParts(e)))}generateAdditionParts(e){const t=[],r=Math.min(Math.abs(2*e),Number.MAX_SAFE_INTEGER),n=Math.min(-1e4,-r),i=Math.max(1e4,r);let a=0;for(let r=0;r.5)||0===e)return e;let r=null!==(t=this.numberFactorsMap.get(e))&&void 0!==t?t:null;if(r||(r=u.NumberUtils.getFactors(e),this.numberFactorsMap.set(e,r)),!r.length)return e;const o=r[this.randomGenerator.getRandomInteger(0,r.length-1)];return[o,e/o]}};p.additionalParts=3,p=o=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),a("design:paramtypes",["function"==typeof(n=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?n:Object])],p),t.NumberNumericalExpressionAnalyzer=p},3e3: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.prototype.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(2991),p=r(5350),f=c(r(4523)),m=r(5768),g=r(4134);let S=o=class{constructor(e){this.prevailingKindOfVariables=o.defaultKindOfVariables,this.arrayUtils=e}analyze(e){var t;const r=[];f.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}};S.defaultKindOfVariables="var",S=o=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.IArrayUtils)),l("design:paramtypes",["function"==typeof(n=void 0!==m.IArrayUtils&&m.IArrayUtils)?n:Object])],S),t.PrevailingKindOfVariablesAnalyzer=S},9458: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.prototype.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(2991),l=s(r(8)),d=s(r(4523)),u=r(4941),p=r(4134);let f=o=class{constructor(){this.scopeManager=null}static attachMissingRanges(e){d.replace(e,{enter:(e,t)=>{var r,n,i,a;return e.range||(e.range=[null!==(n=null===(r=null==t?void 0:t.range)||void 0===r?void 0:r[0])&&void 0!==n?n:o.emptyRangeValue,null!==(a=null===(i=null==t?void 0:t.range)||void 0===i?void 0:i[1])&&void 0!==a?a:o.emptyRangeValue]),e}})}static isRootNode(e){return p.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)}};f.eslintScopeOptions={ecmaVersion:u.ecmaVersion,optimistic:!0},f.sourceTypes=["script","module"],f.emptyRangeValue=0,f=o=a([c.injectable()],f),t.ScopeAnalyzer=f},1190: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.prototype.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)},p=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 f=r(2991),m=r(5350),g=d(r(4523)),S=r(4482),y=r(1403),h=r(5683),N=r(4134),_=r(8241),b=r(739);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 b.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){_.NodeLiteralUtils.isStringLiteralNode(e)&&(_.NodeLiteralUtils.isProhibitedLiteralNode(e,t)||this.shouldAddValueToStringArray(e)&&this.stringArrayStorageData.set(e,this.stringArrayStorage.getOrThrow(e.value)))}shouldAddValueToStringArray(e){return!!b.NodeMetadata.isForceTransformNode(e)||e.value.length>=o.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}};O.minimumLengthForStringArray=3,O=o=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(1,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==h.IStringArrayStorage&&h.IStringArrayStorage)?n:Object,"function"==typeof(i=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==S.IOptions&&S.IOptions)?a:Object])],O),t.StringArrayStorageAnalyzer=O},4161: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.prototype.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 p=d(r(647)),f=d(r(5622)),m=r(5568),g=r(5233),S=r(3177),y=r(4469),h=r(7370),N=r(6532),_=r(6086),b=r(1137),O=r(9614),I=r(7170),E=r(2490),v=r(7495),C=r(9577),T=r(2895),R=r(7149),A=r(4791),j=r(1901),M=r(4741),F=r(6212);class P{constructor(e){this.rawArguments=e,this.arguments=e.slice(2)}static buildOptions(e){const t=P.filterOptions(e),r=e.config,o=r?f.resolve(r,"."):"",n=o?C.CLIUtils.getUserConfig(o):{};return Object.assign(Object.assign(Object.assign({},I.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=f.normalize(this.arguments[0]||""),this.commands=new p.Command,this.configureCommands(),this.configureHelp(),this.inputCLIOptions=P.buildOptions(this.commands.opts()),this.sourceCodeReader=new j.SourceCodeReader(this.inputPath,this.inputCLIOptions),this.obfuscatedCodeWriter=new A.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(M.Utils.buildVersionMessage("2.10.0",1608894104436),"-v, --version").option("-o, --output ","Output path for obfuscated code").option("--compact ","Disable one line output code compacting",v.BooleanSanitizer).option("--config ","Name of js / json config file").option("--control-flow-flattening ","Enables control flow flattening",v.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",v.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)",v.BooleanSanitizer).option("--debug-protection-interval ","Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)",v.BooleanSanitizer).option("--disable-console-output ","Allow console.log, console.info, console.error and console.warn messages output into browser console",v.BooleanSanitizer).option("--domain-lock (comma separated, without whitespaces)","Allows to run the obfuscated source code only on specific domains and/or sub-domains (comma separated)",E.ArraySanitizer).option("--exclude (comma separated, without whitespaces)","A filename or glob which indicates files to exclude from obfuscation",E.ArraySanitizer).option("--force-transform-strings (comma separated, without whitespaces)","Enables force transformation of string literals, which being matched by passed RegExp patterns (comma separated)",E.ArraySanitizer).option("--identifier-names-generator ",`Sets identifier names generator. Values: ${C.CLIUtils.stringifyOptionAvailableValues(S.IdentifierNamesGenerator)}. Default: `+S.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator).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",E.ArraySanitizer).option("--ignore-require-imports ","Prevents obfuscation of `require` imports",v.BooleanSanitizer).option("--log ","Enables logging of the information to the console",v.BooleanSanitizer).option("--numbers-to-expressions ","Enables numbers conversion to expressions",v.BooleanSanitizer).option("--options-preset ",`Allows to set options preset. Values: ${C.CLIUtils.stringifyOptionAvailableValues(N.OptionsPreset)}. Default: `+N.OptionsPreset.Default).option("--reserved-names (comma separated, without whitespaces)","Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)",E.ArraySanitizer).option("--reserved-strings (comma separated, without whitespaces)","Disables transformation of string literals, which being matched by passed RegExp patterns (comma separated)",E.ArraySanitizer).option("--rename-globals ","Allows to enable obfuscation of global variable and function names with declaration",v.BooleanSanitizer).option("--rename-properties ","UNSAFE: Enables renaming of property names. This probably WILL break your code",v.BooleanSanitizer).option("--rotate-string-array ","Enable rotation of string array values during obfuscation",v.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",v.BooleanSanitizer).option("--shuffle-string-array ","Randomly shuffles string array items",v.BooleanSanitizer).option("--simplify ","Enables additional code obfuscation through simplification",v.BooleanSanitizer).option("--source-map ","Enables source map generation",v.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: ${C.CLIUtils.stringifyOptionAvailableValues(_.SourceMapMode)}. Default: `+_.SourceMapMode.Separate).option("--split-strings ","Splits literal strings into chunks with length of `splitStringsChunkLength` option value",v.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",v.BooleanSanitizer).option("--string-array-encoding (comma separated, without whitespaces)",`Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). Values: ${C.CLIUtils.stringifyOptionAvailableValues(b.StringArrayEncoding)}. Default: `+b.StringArrayEncoding.None,E.ArraySanitizer).option("--string-array-indexes-type (comma separated, without whitespaces)",`Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). Values: ${C.CLIUtils.stringifyOptionAvailableValues(F.StringArrayIndexesType)}. Default: `+F.StringArrayIndexesType.HexadecimalNumber,E.ArraySanitizer).option("--string-array-index-shift ","Enables additional index shift for all string array calls",v.BooleanSanitizer).option("--string-array-wrappers-count ","Sets the count of wrappers for the string array inside each root or function scope",parseInt).option("--string-array-wrappers-chained-calls ","Enables the chained calls between string array wrappers",v.BooleanSanitizer).option("--string-array-wrappers-parameters-max-count ","Allows to control the maximum number of string array wrappers parameters",parseInt).option("--string-array-wrappers-type ",`Allows to select a type of the wrappers that are appending by the \`--string-array-wrappers-count\` option. Values: ${C.CLIUtils.stringifyOptionAvailableValues(O.StringArrayWrappersType)}. Default: `+O.StringArrayWrappersType.Variable).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: ${C.CLIUtils.stringifyOptionAvailableValues(h.ObfuscationTarget)}. Default: `+h.ObfuscationTarget.Browser).option("--transform-object-keys ","Enables transformation of object keys",v.BooleanSanitizer).option("--unicode-escape-sequence ","Allows to enable/disable string conversion to unicode escape sequence",v.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{R.Logger.log(R.Logger.colorInfo,y.LoggingPrefix.CLI,`Obfuscating file: ${e}...`),this.processSourceCode(t,e,o,r)}catch(t){throw R.Logger.log(R.Logger.colorInfo,y.LoggingPrefix.CLI,`Error in file: ${e}...`),t}}))}processSourceCode(e,t,r,o){const n=Object.assign(Object.assign(Object.assign({},this.inputCLIOptions),{inputFileName:f.basename(t)}),null!==o&&{identifiersPrefix:M.Utils.getIdentifiersPrefixForMultipleSources(this.inputCLIOptions.identifiersPrefix,o)});n.sourceMap?this.processSourceCodeWithSourceMap(e,r,n):this.processSourceCodeWithoutSourceMap(e,r,n)}processSourceCodeWithoutSourceMap(e,t,r){const o=T.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:f.basename(n)});const i=T.JavaScriptObfuscator.obfuscate(e,r);this.obfuscatedCodeWriter.writeFile(t,i.getObfuscatedCode()),r.sourceMapMode===_.SourceMapMode.Separate&&i.getSourceMap()&&this.obfuscatedCodeWriter.writeFile(n,i.getSourceMap())}}P.availableInputExtensions=[".js"],P.encoding="utf8",P.obfuscatedFilePrefix="-obfuscated",l([g.initializable(),u("design:type","function"==typeof(o=void 0!==p&&p.CommanderStatic)?o:Object)],P.prototype,"commands",void 0),l([g.initializable(),u("design:type","function"==typeof(n=void 0!==m.TInputCLIOptions&&m.TInputCLIOptions)?n:Object)],P.prototype,"inputCLIOptions",void 0),l([g.initializable(),u("design:type",String)],P.prototype,"inputPath",void 0),l([g.initializable(),u("design:type","function"==typeof(i=void 0!==j.SourceCodeReader&&j.SourceCodeReader)?i:Object)],P.prototype,"sourceCodeReader",void 0),l([g.initializable(),u("design:type","function"==typeof(a=void 0!==A.ObfuscatedCodeWriter&&A.ObfuscatedCodeWriter)?a:Object)],P.prototype,"obfuscatedCodeWriter",void 0),t.JavaScriptObfuscatorCLI=P},2490:(e,t)=>{"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()))}},7495:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanSanitizer=void 0,t.BooleanSanitizer=e=>"true"===e||"1"===e},9577: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.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.CLIUtils=void 0;const a=i(r(5622)),s=r(9965);class c{static getUserConfig(e){let t;const o=a.extname(e);if(!c.allowedConfigFileExtensions.includes(o))throw new ReferenceError("Given config path must be a valid `.js` or `.json` file path");try{t=r(5285)(e)}catch(r){try{t=require(e)}catch(t){throw new ReferenceError("Cannot open config file with path: "+e)}}return t}static stringifyOptionAvailableValues(e){return Object.values(e).join(s.StringSeparator.Comma+" ")}}t.CLIUtils=c,c.allowedConfigFileExtensions=[".js",".json"]},4791: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.prototype.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(5747)),s=i(r(3841)),c=i(r(5622)),l=r(9965),d=r(4161);t.ObfuscatedCodeWriter=class{constructor(e,t){this.inputPath=c.normalize(e),this.options=t}getOutputCodePath(e){const t=c.normalize(e),r=this.options.output?c.normalize(this.options.output):null;if(!r)return t.split(l.StringSeparator.Dot).map(((e,t)=>0===t?`${e}${d.JavaScriptObfuscatorCLI.obfuscatedFilePrefix}`:e)).join(l.StringSeparator.Dot);const o=a.lstatSync(this.inputPath),n=c.extname(r),i=o.isDirectory(),s=!d.JavaScriptObfuscatorCLI.availableInputExtensions.includes(n);if(i){if(s){const e=c.parse(t),o=c.join(e.dir.replace(this.inputPath,""),e.base);return c.join(r,o)}throw new Error("Output path for directory obfuscation should be a directory path")}return s?c.join(r,c.basename(e)):r}getOutputSourceMapPath(e,t=""){if(!e)throw new Error("Output code path is empty");let r=c.normalize(e),o=c.parse(r);if(!o.ext&&!t)throw new Error("Source map file name should be set when output code path is a directory path");if(t){const e=r.lastIndexOf(c.sep),n=o.ext&&e>0?r.slice(0,e):r,i=t.replace(/^[a-zA-Z]:\\*/,"");r=c.join(n,i)}return/\.js\.map$/.test(r)?/\.js$/.test(r)&&(r+=".map"):(o=c.parse(r),r=c.join(o.dir,o.name)+".js.map"),r}writeFile(e,t){s.sync(c.dirname(e)),a.writeFileSync(e,t,{encoding:d.JavaScriptObfuscatorCLI.encoding})}}},1901: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.prototype.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(5747)),c=i(r(5622)),l=a(r(768)),d=r(4161);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=c.join(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)}})),t}}t.SourceCodeReader=u},8541: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(2991),l=r(5350),d=r(4482),u=r(1403);let p=class{constructor(e,t){this.randomGenerator=e,this.options=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.AbstractCodeTransformer=p},4132: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(2991),i=r(7207);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.CodeTransformerNamesGroupsBuilder=a},8282: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(2991),l=r(5350),d=r(5127),u=r(9658);let p=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})}),{})}};p=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])],p),t.CodeTransformersRunner=p},71: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(2991),l=r(5350),d=r(4482),u=r(1403),p=r(5670),f=r(8541);let m=class extends f.AbstractCodeTransformer{constructor(e,t){super(e,t),this.hashbangOperatorLine=null}transformCode(e,t){switch(t){case p.CodeTransformationStage.PreparingTransformers:return this.removeAndSaveHashbangOperatorLine(e);case p.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},6366:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetString=void 0,t.alphabetString="abcdefghijklmnopqrstuvwxyz"},2691:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetStringUppercase=void 0;const o=r(6366);t.alphabetStringUppercase=o.alphabetString.toUpperCase()},6934:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabet=void 0;const o=r(2691),n=r(6366),i=r(2023);t.base64alphabet=`${o.alphabetStringUppercase}${n.alphabetString}${i.numbersString}+/=`},4497:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabetSwapped=void 0;const o=r(2691),n=r(6366),i=r(2023);t.base64alphabetSwapped=`${n.alphabetString}${o.alphabetStringUppercase}${i.numbersString}+/=`},4941:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ecmaVersion=void 0,t.ecmaVersion=12},2023:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.numbersString=void 0,t.numbersString="0123456789"},1636:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyContainerFacade=void 0;const o=r(2991),n=r(5350),i=r(5821),a=r(7867),s=r(9654),c=r(5602),l=r(3693),d=r(7626),u=r(8974),p=r(645),f=r(4080),m=r(4028),g=r(5424),S=r(1719),y=r(4682),h=r(1469),N=r(7817),_=r(725),b=r(1426),O=r(1466),I=r(9542),E=r(1937),v=r(8282),C=r(7086),T=r(7149),R=r(6827),A=r(8072),j=r(8589);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 j.SourceCode(e,t))).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.TInputOptions).toDynamicValue((()=>r)).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ILogger).to(T.Logger).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IJavaScriptObfuscator).to(C.JavaScriptObfuscator).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ICodeTransformersRunner).to(v.CodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.INodeTransformersRunner).to(R.NodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IObfuscatedCode).to(A.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.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.deadCodeInjectionTransformersModule),this.container.load(p.finalizingTransformersModule),this.container.load(f.generatorsModule),this.container.load(m.initializingTransformersModule),this.container.load(g.nodeModule),this.container.load(S.nodeTransformersModule),this.container.load(y.optionsModule),this.container.load(h.preparingTransformersModule),this.container.load(N.renameIdentifiersTransformersModule),this.container.load(_.renamePropertiesTransformersModule),this.container.load(b.simplifyingTransformersModule),this.container.load(O.storagesModule),this.container.load(I.stringArrayTransformersModule),this.container.load(E.utilsModule)}unload(){this.container.unbindAll()}}},5350:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceIdentifiers=void 0,(r=t.ServiceIdentifiers||(t.ServiceIdentifiers={})).Factory__ICalleeDataExtractor="Factory",r.Factory__ICodeTransformer="Factory",r.Factory__IControlFlowCustomNode="Factory",r.Factory__IControlFlowReplacer="Factory",r.Factory__ICustomCodeHelper="Factory",r.Factory__ICustomCodeHelperGroup="Factory",r.Factory__IDeadCodeInjectionCustomNode="Factory",r.Factory__IIdentifierNamesGenerator="Factory",r.Factory__INodeGuard="Factory",r.Factory__INodeTransformer="Factory",r.Factory__IObfuscatedCode="Factory",r.Factory__IObjectExpressionKeysTransformerCustomNode="Factory",r.Factory__IObjectExpressionExtractor="Factory",r.Factory__IStringArrayCustomNode="Factory",r.Factory__IStringArrayIndexNode="Factory",r.Factory__TControlFlowStorage="Factory",r.IArrayUtils="IArrayUtils",r.ICalleeDataExtractor="ICalleeDataExtractor",r.ICallsGraphAnalyzer="ICallsGraphAnalyzer",r.ICodeTransformer="ICodeTransformer",r.ICodeTransformerNamesGroupsBuilder="ICodeTransformerNamesGroupsBuilder",r.ICodeTransformersRunner="ICodeTransformersRunner",r.ICryptUtils="ICryptUtils",r.ICryptUtilsSwappedAlphabet="ICryptUtilsSwappedAlphabet",r.ICustomCodeHelper="ICustomCodeHelper",r.ICustomCodeHelperGroup="ICustomCodeHelperGroup",r.IControlFlowReplacer="IControlFlowReplacer",r.ICustomCodeHelperFormatter="ICustomCodeHelperFormatter",r.ICustomCodeHelperObfuscator="ICustomCodeHelperObfuscator",r.IEscapeSequenceEncoder="IEscapeSequenceEncoder",r.IIdentifierNamesGenerator="IIdentifierNamesGenerator",r.IIdentifierReplacer="IIdentifierReplacer",r.IJavaScriptObfuscator="IJavaScriptObfuscator",r.ILevelledTopologicalSorter="ILevelledTopologicalSorter",r.ILiteralNodesCacheStorage="ILiteralNodesCacheStorage",r.ILogger="ILogger",r.INodeGuard="INodeGuard",r.INodeTransformer="INodeTransformer",r.INodeTransformerNamesGroupsBuilder="INodeTransformerNamesGroupsBuilder",r.INodeTransformersRunner="INodeTransformersRunner",r.INumberNumericalExpressionAnalyzer="INumberNumericalExpressionAnalyzer",r.IObfuscatedCode="IObfuscatedCode",r.IOptions="IOptions",r.IOptionsNormalizer="IOptionsNormalizer",r.IPrevailingKindOfVariablesAnalyzer="IPrevailingKindOfVariablesAnalyzer",r.IObjectExpressionExtractor="IObjectExpressionExtractor",r.IRandomGenerator="IRandomGenerator",r.IRenamePropertiesReplacer="IRenamePropertiesReplacer",r.IScopeIdentifiersTraverser="IScopeIdentifiersTraverser",r.ISourceCode="ISourceCode",r.IScopeAnalyzer="IScopeAnalyzer",r.IStringArrayIndexNode="IStringArrayIndexNode",r.IStringArrayScopeCallsWrapperLexicalScopeDataStorage="IStringArrayScopeCallsWrapperLexicalScopeDataStorage",r.IStringArrayScopeCallsWrapperNamesDataStorage="IStringArrayScopeCallsWrapperNamesDataStorage",r.IStringArrayStorage="IStringArrayStorage",r.IStringArrayStorageAnalyzer="IStringArrayStorageAnalyzer",r.IVisitedLexicalScopeNodesStackStorage="IVisitedLexicalScopeNodesStackStorage",r.Newable__ICustomNode="Newable",r.Newable__TControlFlowStorage="Newable",r.TCustomNodeGroupStorage="TCustomNodeGroupStorage",r.TInputOptions="TInputOptions"},5821:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.analyzersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(8657),s=r(3900),c=r(5341),l=r(1853),d=r(472),u=r(5773),p=r(3e3),f=r(9458),m=r(1190);t.analyzersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.ICallsGraphAnalyzer).to(s.CallsGraphAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.INumberNumericalExpressionAnalyzer).to(d.NumberNumericalExpressionAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer).to(p.PrevailingKindOfVariablesAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IScopeAnalyzer).to(f.ScopeAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IStringArrayStorageAnalyzer).to(m.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(u.ObjectExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICalleeDataExtractor))}))},7867:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codeTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(7082),s=r(4132),c=r(71);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)}))},3693:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customCodeHelpersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(7295),s=r(1806),c=r(4860),l=r(1723),d=r(9673),u=r(4582),p=r(5769),f=r(5655),m=r(259),g=r(299),S=r(2628),y=r(5600),h=r(9915),N=r(5227),_=r(4400),b=r(7675),O=r(7689),I=r(9681),E=r(8352),v=r(5007),C=r(256);t.customCodeHelpersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.ICustomCodeHelper).to(f.ConsoleOutputDisableCodeHelper).whenTargetNamed(a.CustomCodeHelper.ConsoleOutputDisable),e(i.ServiceIdentifiers.ICustomCodeHelper).to(S.DebugProtectionFunctionCallCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionCall),e(i.ServiceIdentifiers.ICustomCodeHelper).to(y.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(_.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(I.StringArrayCallsWrapperBase64CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperBase64),e(i.ServiceIdentifiers.ICustomCodeHelper).to(E.StringArrayCallsWrapperRc4CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperRc4),e(i.ServiceIdentifiers.ICustomCodeHelper).to(v.StringArrayCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArray),e(i.ServiceIdentifiers.ICustomCodeHelper).to(C.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(p.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()}))},7626:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customNodesModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(1280),s=r(2620),c=r(9809),l=r(294),d=r(1597),u=r(5540),p=r(9193),f=r(8105),m=r(1984),g=r(9372),S=r(8807),y=r(2088),h=r(8866),N=r(9826),_=r(398),b=r(6379),O=r(8064),I=r(573),E=r(9867),v=r(6512),C=r(7388);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(f.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(S.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(y.LogicalExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(C.StringLiteralNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(v.StringLiteralControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(p.BlockStatementDeadCodeInjectionNode).whenTargetNamed(s.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.ObjectExpressionVariableDeclarationHostNode).whenTargetNamed(c.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.StringArrayCallNode).whenTargetNamed(l.StringArrayCustomNode.StringArrayCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(I.StringArrayScopeCallsWrapperFunctionNode).whenTargetNamed(l.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(E.StringArrayScopeCallsWrapperVariableNode).whenTargetNamed(l.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(_.StringArrayHexadecimalNumberIndexNode).inSingletonScope().whenTargetNamed(O.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(b.StringArrayHexadecimalNumericStringIndexNode).inSingletonScope().whenTargetNamed(O.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode),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)),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)),e(i.ServiceIdentifiers.Factory__IStringArrayCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.Factory__IStringArrayIndexNode,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IStringArrayStorage,i.ServiceIdentifiers.IArrayUtils,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IStringArrayIndexNode).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IStringArrayIndexNode))}))},4080:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generatorsModule=void 0;const o=r(2991),n=r(5350),i=r(3177),a=r(8370),s=r(5932),c=r(3119),l=r(2677);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.IIdentifierNamesGenerator).to(l.MangledShuffledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator),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.MangledShuffledIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return e=o,o}}())}))},9654:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.controlFlowTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(4015),s=r(4212),c=r(3358),l=r(5912),d=r(5760),u=r(9749),p=r(6522),f=r(270);t.controlFlowTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.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(f.StringLiteralControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(i.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IControlFlowReplacer))}))},5602:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertingTransformersModule=void 0;const o=r(2991),n=r(1636),i=r(5350),a=r(4212),s=r(9946),c=r(8539),l=r(2337),d=r(9912),u=r(9139),p=r(6037),f=r(9467),m=r(3393),g=r(122),S=r(7834),y=r(626),h=r(6312),N=r(5869),_=r(810);t.convertingTransformersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.BooleanLiteralTransformer).whenTargetNamed(a.NodeTransformer.BooleanLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(d.ExportSpecifierTransformer).whenTargetNamed(a.NodeTransformer.ExportSpecifierTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.MemberExpressionTransformer).whenTargetNamed(a.NodeTransformer.MemberExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(p.MethodDefinitionTransformer).whenTargetNamed(a.NodeTransformer.MethodDefinitionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.NumberLiteralTransformer).whenTargetNamed(a.NodeTransformer.NumberLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.NumberToNumericalExpressionTransformer).whenTargetNamed(a.NodeTransformer.NumberToNumericalExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ObjectExpressionKeysTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionKeysTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(y.ObjectExpressionTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(h.ObjectPatternPropertiesTransformer).whenTargetNamed(a.NodeTransformer.ObjectPatternPropertiesTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(N.SplitStringTransformer).whenTargetNamed(a.NodeTransformer.SplitStringTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(_.TemplateLiteralTransformer).whenTargetNamed(a.NodeTransformer.TemplateLiteralTransformer),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(S.ObjectExpressionToVariableDeclarationExtractor).whenTargetNamed(s.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(c.BasePropertiesExtractor).whenTargetNamed(s.ObjectExpressionExtractor.BasePropertiesExtractor),e(i.ServiceIdentifiers.Factory__IObjectExpressionExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IObjectExpressionExtractor))}))},8974:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deadCodeInjectionTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(8043);t.deadCodeInjectionTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.DeadCodeInjectionTransformer).whenTargetNamed(i.NodeTransformer.DeadCodeInjectionTransformer)}))},645:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.finalizingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(4837);t.finalizingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.EscapeSequenceTransformer).whenTargetNamed(i.NodeTransformer.EscapeSequenceTransformer)}))},4028:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(5289);t.initializingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.CommentsTransformer).whenTargetNamed(i.NodeTransformer.CommentsTransformer)}))},1719:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(5419);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()}))},1469:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preparingTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(4212),s=r(4361),c=r(5878),l=r(6955),d=r(4996),u=r(3449),p=r(4935),f=r(147),m=r(8049),g=r(1581),S=r(774),y=r(7985),h=r(2616);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(m.MetadataTransformer).whenTargetNamed(a.NodeTransformer.MetadataTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ObfuscatingGuardsTransformer).whenTargetNamed(a.NodeTransformer.ObfuscatingGuardsTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(S.ParentificationTransformer).whenTargetNamed(a.NodeTransformer.ParentificationTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(h.VariablePreserveTransformer).whenTargetNamed(a.NodeTransformer.VariablePreserveTransformer),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(p.ForceTransformStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ForceTransformStringObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(f.IgnoredRequireImportObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(y.ReservedStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ReservedStringObfuscatingGuard),e(i.ServiceIdentifiers.Factory__INodeGuard).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeGuard))}))},7817:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renameIdentifiersTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(6181),s=r(8869),c=r(5806),l=r(7247);t.renameIdentifiersTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.LabeledStatementTransformer).whenTargetNamed(i.NodeTransformer.LabeledStatementTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(c.ScopeIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeIdentifiersTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(l.ScopeThroughIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeThroughIdentifiersTransformer),e(n.ServiceIdentifiers.IIdentifierReplacer).to(a.IdentifierReplacer).inSingletonScope()}))},725:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renamePropertiesTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(7889),s=r(2143);t.renamePropertiesTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.RenamePropertiesTransformer).whenTargetNamed(i.NodeTransformer.RenamePropertiesTransformer),e(n.ServiceIdentifiers.IRenamePropertiesReplacer).to(a.RenamePropertiesReplacer)}))},1426:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.simplifyingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(2838),s=r(1226),c=r(8821),l=r(3115);t.simplifyingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.BlockStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.BlockStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.ExpressionStatementsMergeTransformer).whenTargetNamed(i.NodeTransformer.ExpressionStatementsMergeTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(c.IfStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.IfStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(l.VariableDeclarationsMergeTransformer).whenTargetNamed(i.NodeTransformer.VariableDeclarationsMergeTransformer)}))},9542:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringArrayTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(4123),s=r(4940);t.stringArrayTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.StringArrayScopeCallsWrapperTransformer).whenTargetNamed(i.NodeTransformer.StringArrayScopeCallsWrapperTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.StringArrayTransformer).whenTargetNamed(i.NodeTransformer.StringArrayTransformer)}))},5424:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeModule=void 0;const o=r(2991),n=r(5350),i=r(2551);t.nodeModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IScopeIdentifiersTraverser).to(i.ScopeIdentifiersTraverser).inSingletonScope()}))},4682:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.optionsModule=void 0;const o=r(2991),n=r(5350),i=r(8516),a=r(6248);t.optionsModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IOptions).to(i.Options).inSingletonScope(),e(n.ServiceIdentifiers.IOptionsNormalizer).to(a.OptionsNormalizer).inSingletonScope()}))},1466:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.storagesModule=void 0;const o=r(2991),n=r(5350),i=r(646),a=r(1951),s=r(3464),c=r(1453),l=r(995),d=r(1860),u=r(1891);t.storagesModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.TCustomNodeGroupStorage).to(a.CustomCodeHelperGroupStorage).inSingletonScope(),e(n.ServiceIdentifiers.ILiteralNodesCacheStorage).to(s.LiteralNodesCacheStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayStorage).to(d.StringArrayStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage).to(c.StringArrayScopeCallsWrapperLexicalScopeDataStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage).to(l.StringArrayScopeCallsWrapperNamesDataStorage).inSingletonScope(),e(n.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage).to(u.VisitedLexicalScopeNodesStackStorage).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}))}))},1937:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.utilsModule=void 0;const o=r(2991),n=r(5350),i=r(3087),a=r(5579),s=r(6913),c=r(1622),l=r(7248),d=r(3697);t.utilsModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IArrayUtils).to(i.ArrayUtils).inSingletonScope(),e(n.ServiceIdentifiers.IRandomGenerator).to(d.RandomGenerator).inSingletonScope(),e(n.ServiceIdentifiers.ICryptUtils).to(a.CryptUtils).inSingletonScope(),e(n.ServiceIdentifiers.ICryptUtilsSwappedAlphabet).to(s.CryptUtilsSwappedAlphabet).inSingletonScope(),e(n.ServiceIdentifiers.IEscapeSequenceEncoder).to(c.EscapeSequenceEncoder).inSingletonScope(),e(n.ServiceIdentifiers.ILevelledTopologicalSorter).to(l.LevelledTopologicalSorter)}))},8920: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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(4482),h=r(1403),N=r(8837),_=r(699);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(),_.GlobalVariableTemplate2()],b=o=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.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!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],b),t.AbstractCustomCodeHelper=b},9834: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(2991),d=r(5350),u=r(9416),p=r(4482),f=r(1403);let m=class{constructor(e,t,r){this.identifierNamesGenerator=e(r),this.randomGenerator=t,this.options=r}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!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],m),t.AbstractCustomCodeHelperGroup=m},259: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.prototype.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(2991),p=r(5350),f=s(r(4523)),m=d(r(8655)),g=r(3499),S=r(4134);let y=class{constructor(e){this.prevailingKindOfVariables=e.getPrevailingKind()}formatTemplate(e,t){return m.default(e,t)}formatStructure(e){for(const t of e)f.replace(t,{enter:e=>{if(S.NodeGuards.isVariableDeclarationNode(e))return"var"===this.prevailingKindOfVariables&&(e.kind="var"),e}});return e}};y=a([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),c("design:paramtypes",["function"==typeof(o=void 0!==g.IPrevailingKindOfVariablesAnalyzer&&g.IPrevailingKindOfVariablesAnalyzer)?o:Object])],y),t.CustomCodeHelperFormatter=y},299: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(2991),l=r(5350),d=r(4482),u=r(1403),p=r(3685),f=r(2895);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}obfuscateTemplate(e,t={}){return f.JavaScriptObfuscator.obfuscate(e,Object.assign(Object.assign(Object.assign({},p.NO_ADDITIONAL_NODES_PRESET),{identifierNamesGenerator:this.options.identifierNamesGenerator,identifiersDictionary:this.options.identifiersDictionary,numbersToExpressions:this.options.numbersToExpressions,simplify:this.options.simplify,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},4400: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 p=r(2991),f=r(5350),m=r(9416),g=r(6871),S=r(6949),y=r(4482),h=r(1403),N=r(8932),_=r(5233),b=r(5423),O=r(8920),I=r(2361);let E=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.nodeTransformationStage=e,this.callsControllerFunctionName=t}getNodeStructure(e){return I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.nodeTransformationStage===N.NodeTransformationStage.Finalizing?this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(b.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})):this.customCodeHelperFormatter.formatTemplate(b.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})}};l([_.initializable(),d("design:type",String)],E.prototype,"callsControllerFunctionName",void 0),l([_.initializable(),d("design:type","function"==typeof(o=void 0!==N.NodeTransformationStage&&N.NodeTransformationStage)?o:Object)],E.prototype,"nodeTransformationStage",void 0),E=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperFormatter&&S.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!==y.IOptions&&y.IOptions)?c:Object])],E),t.CallsControllerFunctionCodeHelper=E},484:(e,t)=>{"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 "}},8837:(e,t)=>{"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 "}},699:(e,t)=>{"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 "}},5423:(e,t)=>{"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 "}},5655: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(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(7370),N=r(1848),_=r(484),b=r(5233),O=r(8920),I=r(2361);let E=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 I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==h.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():_.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(N.ConsoleOutputDisableTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,consoleLogDisableFunctionName:this.consoleOutputDisableFunctionName,globalVariableTemplate:e})}};c([b.initializable(),l("design:type",String)],E.prototype,"callsControllerFunctionName",void 0),c([b.initializable(),l("design:type",String)],E.prototype,"consoleOutputDisableFunctionName",void 0),E=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],E),t.ConsoleOutputDisableCodeHelper=E},4860: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(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),h=r(7295),N=r(8932),_=r(9834),b=r(7678),O=r(1534);let I=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.customCodeHelperFactory=e}appendOnPreparing(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?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(h.CustomCodeHelper.ConsoleOutputDisable,(e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(N.NodeTransformationStage.Preparing,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([y.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(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.ConsoleOutputCodeHelperGroup=I},1848:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableTemplate=void 0,t.ConsoleOutputDisableTemplate=function(){return"\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n\n const consoleObject = (that.console = that.console || {});\n const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];\n\n for (let index = 0; index < methods.length; index++){\n const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});\n const methodName = methods[index];\n const originalFunction = consoleObject[methodName] || func;\n\n func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});\n func.toString = originalFunction.toString.bind(originalFunction);\n \n consoleObject[methodName] = func;\n }\n });\n\n {consoleLogDisableFunctionName}();\n "}},2628: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(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(5233),N=r(8125),_=r(8920),b=r(2361);let O=class extends _.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(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],O),t.DebugProtectionFunctionCallCodeHelper=O},9915: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(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(7370),N=r(5233),_=r(2415),b=r(176),O=r(6927),I=r(8920),E=r(2361);let v=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==h.ObfuscationTarget.BrowserNoEval?_.DebuggerTemplate():b.DebuggerTemplateNoEval();return this.customCodeHelperFormatter.formatTemplate(O.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([N.initializable(),l("design:type",String)],v.prototype,"debugProtectionFunctionName",void 0),v=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],v),t.DebugProtectionFunctionCodeHelper=v},5600: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(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(5233),N=r(5987),_=r(8920),b=r(2361);let O=class extends _.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(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],O),t.DebugProtectionFunctionIntervalCodeHelper=O},1723: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(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),h=r(7295),N=r(8932),_=r(9834),b=r(7678),O=r(4134),I=r(1534);let E=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.customCodeHelperFactory=e}appendOnPreparing(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=I.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.DebugProtectionFunctionCall,(e=>{e.initialize(s,c),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(N.NodeTransformationStage.Preparing,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([y.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(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],E),t.DebugProtectionCodeHelperGroup=E},8125:(e,t)=>{"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 "}},5987:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=void 0,t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},6927:(e,t)=>{"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 "}},2415:(e,t)=>{"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 "}},176:(e,t)=>{"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 "}},5227: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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(5591),h=r(4482),N=r(1403),_=r(7370),b=r(5233),O=r(3762),I=r(484),E=r(8920),v=r(2361);let C=class extends E.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 v.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.domainLock.join(";"),[t,r]=this.cryptUtils.hideString(e,3*e.length),o=this.options.target!==_.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():I.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)],C.prototype,"callsControllerFunctionName",void 0),l([b.initializable(),d("design:type",String)],C.prototype,"domainLockFunctionName",void 0),C=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),u(5,p.inject(f.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!==S.ICustomCodeHelperObfuscator&&S.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!==y.ICryptUtils&&y.ICryptUtils)?c:Object])],C),t.DomainLockCodeHelper=C},9673: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(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),h=r(7295),N=r(8932),_=r(9834),b=r(7678),O=r(1534);let I=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.customCodeHelperFactory=e}appendOnPreparing(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?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=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(N.NodeTransformationStage.Preparing,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([y.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(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.DomainLockCustomCodeHelperGroup=I},3762:(e,t)=>{"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 domainNormalized = domain[0] === String.fromCharCode(46)\n ? domain.slice(1)\n : domain;\n const position = currentDomain.length - domainNormalized.length;\n const lastIndex = currentDomain.indexOf(domainNormalized, 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 '}},7675: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(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(7370),N=r(5233),_=r(6739),b=r(3957),O=r(8920),I=r(2361),E=r(484);let v=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 I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==h.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():E.GlobalVariableNoEvalTemplate(),t=this.options.target!==h.ObfuscationTarget.BrowserNoEval?_.SelfDefendingTemplate():b.SelfDefendingNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(t,{callControllerFunctionName:this.callsControllerFunctionName,selfDefendingFunctionName:this.selfDefendingFunctionName,globalVariableTemplate:e})}};c([N.initializable(),l("design:type",String)],v.prototype,"callsControllerFunctionName",void 0),c([N.initializable(),l("design:type",String)],v.prototype,"selfDefendingFunctionName",void 0),v=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],v),t.SelfDefendingUnicodeCodeHelper=v},4582: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(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),h=r(7295),N=r(8932),_=r(9834),b=r(7678),O=r(1534);let I=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.customCodeHelperFactory=e}appendOnPreparing(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(N.NodeTransformationStage.Preparing,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([y.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(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.SelfDefendingCodeHelperGroup=I},3957:(e,t)=>{"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 "}},6739:(e,t)=>{"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 "}},9681: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.StringArrayCallsWrapperBase64CodeHelper=void 0;const n=r(2991),i=r(893),a=r(2267),s=r(7689);let c=class extends s.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(a.StringArrayBase64DecodeTemplate(this.randomGenerator),{atobPolyfill:t,atobFunctionName:e,selfDefendingCode:r,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};c=o([n.injectable()],c),t.StringArrayCallsWrapperBase64CodeHelper=c},7689: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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(2747),h=r(4482),N=r(1403),_=r(5233),b=r(5534),O=r(7927),I=r(8920),E=r(2361);let v=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t,r){this.stringArrayName=e,this.stringArrayCallsWrapperName=t,this.indexShiftAmount=r}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.getDecodeStringArrayTemplate(),t=[`^${this.stringArrayName}$`];return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(O.StringArrayCallsWrapperTemplate(),{decodeCodeHelperTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName,indexShiftAmount:this.indexShiftAmount}),{reservedNames:t})}getDecodeStringArrayTemplate(){return""}getSelfDefendingTemplate(){return this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(b.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}):""}};l([_.initializable(),d("design:type",Number)],v.prototype,"indexShiftAmount",void 0),l([_.initializable(),d("design:type",String)],v.prototype,"stringArrayName",void 0),l([_.initializable(),d("design:type",String)],v.prototype,"stringArrayCallsWrapperName",void 0),v=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),u(5,p.inject(f.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!==S.ICustomCodeHelperObfuscator&&S.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!==y.IEscapeSequenceEncoder&&y.IEscapeSequenceEncoder)?c:Object])],v),t.StringArrayCallsWrapperCodeHelper=v},8352: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.StringArrayCallsWrapperRc4CodeHelper=void 0;const n=r(2991),i=r(893),a=r(2099),s=r(9913),c=r(7689);let l=class extends c.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.customCodeHelperFormatter.formatTemplate(a.Rc4Template(),{atobFunctionName:e}),o=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(s.StringArrayRC4DecodeTemplate(this.randomGenerator),{atobPolyfill:t,rc4Polyfill:r,selfDefendingCode:o,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};l=o([n.injectable()],l),t.StringArrayCallsWrapperRc4CodeHelper=l},5007: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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(4482),h=r(1403),N=r(5683),_=r(5233),b=r(5819),O=r(8920),I=r(2361),E=r(2161);let v=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 I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(b.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArrayStorageItems:this.getEncodedStringArrayStorageItems()})}getEncodedStringArrayStorageItems(){return Array.from(this.stringArrayStorage.getStorage().values()).map((e=>`'${E.StringUtils.escapeJsString(e.encodedValue)}'`)).toString()}};l([_.initializable(),d("design:type","function"==typeof(o=void 0!==N.IStringArrayStorage&&N.IStringArrayStorage)?o:Object)],v.prototype,"stringArrayStorage",void 0),l([_.initializable(),d("design:type",String)],v.prototype,"stringArrayName",void 0),v=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.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!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],v),t.StringArrayCodeHelper=v},256: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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(2747),h=r(4482),N=r(1403),_=r(5233),b=r(3099),O=r(4016),I=r(8920),E=r(2361),v=r(6543);let C=class extends I.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 E.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:v.NumberUtils.toHex(this.stringArrayRotationAmount)}),{reservedNames:r})}};l([_.initializable(),d("design:type",String)],C.prototype,"stringArrayName",void 0),l([_.initializable(),d("design:type",Number)],C.prototype,"stringArrayRotationAmount",void 0),C=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),u(5,p.inject(f.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!==S.ICustomCodeHelperObfuscator&&S.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!==y.IEscapeSequenceEncoder&&y.IEscapeSequenceEncoder)?c:Object])],C),t.StringArrayRotateFunctionCodeHelper=C},5769: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)},p=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(2991),m=r(5350),g=r(8820),S=r(9416),y=r(4482),h=r(1403),N=r(5683),_=r(5233),b=r(7295),O=r(1137),I=r(9834),E=r(7678);let v=o=class extends I.AbstractCustomCodeHelperGroup{constructor(e,t,r,o,n){super(r,o,n),this.customCodeHelperFactory=e,this.stringArrayStorage=t}appendOnFinalizing(e,t){if(!this.stringArrayStorage.getLength())return;this.appendCustomNodeIfExist(b.CustomCodeHelper.StringArray,(t=>{E.NodeAppender.prepend(e,t.getNode())}));const r=this.options.stringArrayEncoding.length;for(let t=0;t{E.NodeAppender.insertAtIndex(e,r.getNode(),t+1)}))}this.appendCustomNodeIfExist(b.CustomCodeHelper.StringArrayRotateFunction,(t=>{E.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.stringArray)return;const e=this.customCodeHelperFactory(b.CustomCodeHelper.StringArray),t=this.stringArrayStorage.getStorageName();e.initialize(this.stringArrayStorage,t),this.customCodeHelpers.set(b.CustomCodeHelper.StringArray,e);for(const e of this.options.stringArrayEncoding){const r=this.getStringArrayCallsWrapperCodeHelperName(e),o=this.customCodeHelperFactory(r),n=this.stringArrayStorage.getStorageCallsWrapperName(e);o.initialize(t,n,this.stringArrayStorage.getIndexShiftAmount()),this.customCodeHelpers.set(r,o)}const r=this.customCodeHelperFactory(b.CustomCodeHelper.StringArrayRotateFunction);r.initialize(t,this.stringArrayStorage.getRotationAmount()),this.options.rotateStringArray&&this.customCodeHelpers.set(b.CustomCodeHelper.StringArrayRotateFunction,r)}getStringArrayCallsWrapperCodeHelperName(e){var t;return null!==(t=o.stringArrayCallsWrapperCodeHelperMap.get(e))&&void 0!==t?t:b.CustomCodeHelper.StringArrayCallsWrapper}};v.stringArrayCallsWrapperCodeHelperMap=new Map([[O.StringArrayEncoding.None,b.CustomCodeHelper.StringArrayCallsWrapper],[O.StringArrayEncoding.Base64,b.CustomCodeHelper.StringArrayCallsWrapperBase64],[O.StringArrayEncoding.Rc4,b.CustomCodeHelper.StringArrayCallsWrapperRc4]]),d([_.initializable(),u("design:type","function"==typeof(n="undefined"!=typeof Map&&Map)?n:Object)],v.prototype,"customCodeHelpers",void 0),v=o=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__ICustomCodeHelper)),p(1,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(2,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(3,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(4,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(i=void 0!==g.TCustomCodeHelperFactory&&g.TCustomCodeHelperFactory)?i:Object,"function"==typeof(a=void 0!==N.IStringArrayStorage&&N.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==S.TIdentifierNamesGeneratorFactory&&S.TIdentifierNamesGeneratorFactory)?s:Object,"function"==typeof(c=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?c:Object,"function"==typeof(l=void 0!==y.IOptions&&y.IOptions)?l:Object])],v),t.StringArrayCodeHelperGroup=v},893:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=void 0;const o=r(4497);t.AtobTemplate=function(){return`\n var {atobFunctionName} = function (input) {\n const chars = '${o.base64alphabetSwapped}';\n\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 `}},2099:(e,t)=>{"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 = {atobFunctionName}(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 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 "}},5534:(e,t)=>{"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 `}},2267:(e,t)=>{"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 = {atobFunctionName}(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 `}},7927:(e,t)=>{"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 - {indexShiftAmount};\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n "}},9913:(e,t)=>{"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 `}},3099:(e,t)=>{"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 `}},4016:(e,t)=>{"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 "}},5819:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=void 0,t.StringArrayTemplate=function(){return"\n const {stringArrayName} = [{stringArrayStorageItems}];\n "}},3088: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(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403);let S=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=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!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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])],S),t.AbstractCustomNode=S},1597: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(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),h=r(2361);let N=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=y.NodeFactory.expressionStatementNode(y.NodeFactory.functionExpressionNode([y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")],y.NodeFactory.blockStatementNode([y.NodeFactory.returnStatementNode(y.NodeFactory.binaryExpressionNode(this.operator,y.NodeFactory.identifierNode("x"),y.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!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},5540: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(2991),u=r(5350),p=r(9416),f=r(9965),m=r(6949),g=r(4482),S=r(1403),y=r(5233),h=r(3088),N=r(9376),_=r(4134),b=r(2361);let O=class extends h.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(f.StringSeparator.VerticalLine)),N.NodeFactory.identifierNode("split")),[N.NodeFactory.literalNode(f.StringSeparator.VerticalLine)]))],"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 _.NodeGuards.isReturnStatementNode(r)||o.push(N.NodeFactory.continueStatement()),N.NodeFactory.switchCaseNode(N.NodeFactory.literalNode(String(t)),o)}))),N.NodeFactory.breakStatement()]))]);return b.NodeUtils.parentizeAst(r),[r]}};s([y.initializable(),c("design:type",Array)],O.prototype,"blockStatementBody",void 0),s([y.initializable(),c("design:type",Array)],O.prototype,"originalKeysIndexesInShuffledArray",void 0),s([y.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!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],O),t.BlockStatementControlFlowFlatteningNode=O},1984: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(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),h=r(9376),N=r(2361);let _=class extends y.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},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(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),h=r(2361);let N=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=y.NodeFactory.expressionStatementNode(y.NodeFactory.functionExpressionNode([y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")],y.NodeFactory.blockStatementNode([y.NodeFactory.returnStatementNode(y.NodeFactory.logicalExpressionNode(this.operator,y.NodeFactory.identifierNode("x"),y.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!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},7388: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(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),h=r(9376);let N=class extends y.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([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!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},8105: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(2991),p=r(5350),f=r(9416),m=r(6949),g=r(4482),S=r(1403),y=r(5233),h=r(3088),N=r(9376),_=r(2361);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 _.NodeUtils.parentizeAst(e),[e]}};c([y.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof ESTree&&ESTree.Expression)?o:Object)],b.prototype,"callee",void 0),c([y.initializable(),l("design:type",String)],b.prototype,"controlFlowStorageKey",void 0),c([y.initializable(),l("design:type",String)],b.prototype,"controlFlowStorageName",void 0),c([y.initializable(),l("design:type",Array)],b.prototype,"expressionArguments",void 0),b=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],b),t.CallExpressionControlFlowStorageCallNode=b},9372: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.ControlFlowStorageNode=void 0;const u=r(2991),p=r(5350),f=r(138),m=r(9416),g=r(6949),S=r(4482),y=r(1403),h=r(5233),N=r(3088),_=r(9376),b=r(4134),O=r(2361);let I=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 _.NodeFactory.propertyNode(_.NodeFactory.identifierNode(e),r.expression)}));let t=_.NodeFactory.variableDeclarationNode([_.NodeFactory.variableDeclaratorNode(_.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),_.NodeFactory.objectExpressionNode(e))],"const");return t=O.NodeUtils.parentizeAst(t),[t]}};c([h.initializable(),l("design:type","function"==typeof(o=void 0!==f.TControlFlowStorage&&f.TControlFlowStorage)?o:Object)],I.prototype,"controlFlowStorage",void 0),I=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],I),t.ControlFlowStorageNode=I},8807: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(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),h=r(9376),N=r(2361);let _=class extends y.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([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageKey",void 0),s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageName",void 0),_=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!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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.ExpressionWithOperatorControlFlowStorageCallNode=_},6512: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(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),h=r(9376),N=r(2361);let _=class extends y.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([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageKey",void 0),s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageName",void 0),_=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!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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.StringLiteralControlFlowStorageCallNode=_},9193: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(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),h=r(2361);let N=class extends S.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=y.NodeFactory.blockStatementNode([y.NodeFactory.ifStatementNode(y.NodeFactory.binaryExpressionNode(r,y.NodeFactory.literalNode(o),y.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!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},8866: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(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),h=r(4134);let N=class extends S.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[y.NodeFactory.variableDeclarationNode([y.NodeFactory.variableDeclaratorNode(y.NodeFactory.identifierNode(e),y.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!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},7306:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d,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},p=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.AbstractStringArrayCallNode=void 0;const m=r(2991),g=r(5350),S=r(9416),y=r(7219),h=r(6949),N=r(4482),_=r(1403),b=r(5683),O=r(6212),I=r(8064),E=r(3088),v=r(9376),C=r(739),T=r(2361),R=r(5768);let A=o=class extends E.AbstractCustomNode{constructor(e,t,r,o,n,i,a){super(e,r,i,a),this.stringArrayIndexNodeFactory=t,this.stringArrayStorage=o,this.arrayUtils=n}getStringArrayIndexNode(e){var t;const r=e>=0,n=Math.abs(e),i=this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayIndexesType),a=null!==(t=o.stringArrayIndexNodesMap.get(i))&&void 0!==t?t:null;if(!a)throw new Error("Invalid string array index node name");const s=this.stringArrayIndexNodeFactory(a).getNode(n);C.NodeMetadata.set(s,{replacedLiteral:!0});const c=r?s:v.NodeFactory.unaryExpressionNode("-",s);return T.NodeUtils.parentizeAst(c),c}getRc4KeyLiteralNode(e){const t=v.NodeFactory.literalNode(e);return C.NodeMetadata.set(t,{replacedLiteral:!0}),t}};A.stringArrayRootCallsWrapperParametersCount=2,A.stringArrayIndexNodesMap=new Map([[O.StringArrayIndexesType.HexadecimalNumber,I.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],[O.StringArrayIndexesType.HexadecimalNumericString,I.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]]),A=o=u([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,m.inject(g.ServiceIdentifiers.Factory__IStringArrayIndexNode)),f(2,m.inject(g.ServiceIdentifiers.ICustomCodeHelperFormatter)),f(3,m.inject(g.ServiceIdentifiers.IStringArrayStorage)),f(4,m.inject(g.ServiceIdentifiers.IArrayUtils)),f(5,m.inject(g.ServiceIdentifiers.IRandomGenerator)),f(6,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==S.TIdentifierNamesGeneratorFactory&&S.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==y.TStringArrayIndexNodeFactory&&y.TStringArrayIndexNodeFactory)?i:Object,"function"==typeof(a=void 0!==h.ICustomCodeHelperFormatter&&h.ICustomCodeHelperFormatter)?a:Object,"function"==typeof(s=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?s:Object,"function"==typeof(c=void 0!==R.IArrayUtils&&R.IArrayUtils)?c:Object,"function"==typeof(l=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?l:Object,"function"==typeof(d=void 0!==N.IOptions&&N.IOptions)?d:Object])],A),t.AbstractStringArrayCallNode=A},9826: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)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallNode=void 0;const f=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),h=r(6949),N=r(4482),_=r(1403),b=r(5683),O=r(5233),I=r(7306),E=r(9376),v=r(2361);let C=class extends I.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t,r,o,n){this.stringArrayCallsWrapperName=e,this.stringArrayCallsWrapperParameterIndexesData=t,this.index=r,this.indexShiftAmount=o,this.decodeKey=n}getNodeStructure(){var e,t;const r=this.indexShiftAmount+this.index,o=this.getStringArrayIndexNode(r),n=this.decodeKey?this.getRc4KeyLiteralNode(this.decodeKey):null,i=this.arrayUtils.fillWithRange(this.stringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:I.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeStringArrayIndexNode(r)));i.splice(null!==(t=null===(e=this.stringArrayCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,o),this.stringArrayCallsWrapperParameterIndexesData?i.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex,1,null!=n?n:this.getFakeStringArrayIndexNode(r)):n?i.splice(1,1,n):i.splice(1,1);const a=E.NodeFactory.expressionStatementNode(E.NodeFactory.callExpressionNode(E.NodeFactory.identifierNode(this.stringArrayCallsWrapperName),i));return v.NodeUtils.parentizeAst(a),[a]}getFakeStringArrayIndexNode(e){return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(e))}getFakeStringArrayIndex(e){const t=this.stringArrayStorage.getLength()/2,r=e-t,o=e+t;return this.randomGenerator.getRandomInteger(r,o)}};d([O.initializable(),u("design:type",Object)],C.prototype,"decodeKey",void 0),d([O.initializable(),u("design:type",Number)],C.prototype,"index",void 0),d([O.initializable(),u("design:type",Number)],C.prototype,"indexShiftAmount",void 0),d([O.initializable(),u("design:type",String)],C.prototype,"stringArrayCallsWrapperName",void 0),d([O.initializable(),u("design:type",Object)],C.prototype,"stringArrayCallsWrapperParameterIndexesData",void 0),C=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,f.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IArrayUtils)),p(5,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(6,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==h.ICustomCodeHelperFormatter&&h.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(l=void 0!==N.IOptions&&N.IOptions)?l:Object])],C),t.StringArrayCallNode=C},573: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)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperFunctionNode=void 0;const f=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),h=r(6949),N=r(4482),_=r(1403),b=r(5683),O=r(5233),I=r(7306),E=r(9376),v=r(2361);let C=class extends I.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t,r,o,n){this.stringArrayScopeCallsWrapperName=e,this.stringArrayScopeCallsWrapperParameterIndexesData=t,this.upperStringArrayCallsWrapperName=r,this.upperStringArrayCallsWrapperParameterIndexesData=o,this.shiftedIndex=n}getNodeStructure(){var e,t,r,o,n,i,a,s;const c=E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),l=E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),d=this.getUpperStringArrayCallNode(c,this.getStringArrayIndexNode(this.shiftedIndex)),u=this.arrayUtils.fillWithRange(this.stringArrayScopeCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:I.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeParameterNode()));u.splice(null!==(t=null===(e=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,c),u.splice(null!==(o=null===(r=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===r?void 0:r.decodeKeyParameterIndex)&&void 0!==o?o:1,1,l);const p=this.arrayUtils.fillWithRange(this.upperStringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:I.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(e=>this.getUpperStringArrayCallNode(u[e],this.getFakeUpperStringArrayIndexNode())));p.splice(null!==(i=null===(n=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===n?void 0:n.valueIndexParameterIndex)&&void 0!==i?i:0,1,d),p.splice(null!==(s=null===(a=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===a?void 0:a.decodeKeyParameterIndex)&&void 0!==s?s:1,1,l);const f=E.NodeFactory.functionExpressionNode(u,E.NodeFactory.blockStatementNode([E.NodeFactory.returnStatementNode(E.NodeFactory.callExpressionNode(E.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName),p))])),m=E.NodeFactory.variableDeclarationNode([E.NodeFactory.variableDeclaratorNode(E.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),f)],"const");v.NodeUtils.parentizeAst(m);for(const e of u)e.name=this.identifierNamesGenerator.generateForLexicalScope(f);return[m]}getUpperStringArrayCallNode(e,t){return E.NodeFactory.binaryExpressionNode("-",e,t)}getFakeParameterNode(){return E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6))}getFakeUpperStringArrayIndexNode(){return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0,500))}};d([O.initializable(),u("design:type",Number)],C.prototype,"shiftedIndex",void 0),d([O.initializable(),u("design:type",String)],C.prototype,"upperStringArrayCallsWrapperName",void 0),d([O.initializable(),u("design:type",Object)],C.prototype,"upperStringArrayCallsWrapperParameterIndexesData",void 0),d([O.initializable(),u("design:type",String)],C.prototype,"stringArrayScopeCallsWrapperName",void 0),d([O.initializable(),u("design:type",Object)],C.prototype,"stringArrayScopeCallsWrapperParameterIndexesData",void 0),C=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,f.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IArrayUtils)),p(5,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(6,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==h.ICustomCodeHelperFormatter&&h.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(l=void 0!==N.IOptions&&N.IOptions)?l:Object])],C),t.StringArrayScopeCallsWrapperFunctionNode=C},9867: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)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperVariableNode=void 0;const f=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),h=r(6949),N=r(4482),_=r(1403),b=r(5683),O=r(5233),I=r(7306),E=r(9376),v=r(2361);let C=class extends I.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t){this.stringArrayScopeCallsWrapperName=e,this.stringArrayCallsWrapperName=t}getNodeStructure(){const e=E.NodeFactory.variableDeclarationNode([E.NodeFactory.variableDeclaratorNode(E.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),E.NodeFactory.identifierNode(this.stringArrayCallsWrapperName))],"const");return v.NodeUtils.parentizeAst(e),[e]}};d([O.initializable(),u("design:type",String)],C.prototype,"stringArrayCallsWrapperName",void 0),d([O.initializable(),u("design:type",String)],C.prototype,"stringArrayScopeCallsWrapperName",void 0),C=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,f.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IArrayUtils)),p(5,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(6,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==h.ICustomCodeHelperFormatter&&h.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(l=void 0!==N.IOptions&&N.IOptions)?l:Object])],C),t.StringArrayScopeCallsWrapperVariableNode=C},6897: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.AbstractStringArrayIndexNode=void 0;const c=r(2991),l=r(4482),d=r(1403),u=r(5350);let p=class{constructor(e,t){this.randomGenerator=e,this.options=t}};p=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],p),t.AbstractStringArrayIndexNode=p},398: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.StringArrayHexadecimalNumberIndexNode=void 0;const c=r(2991),l=r(4482),d=r(1403),u=r(5350),p=r(6897),f=r(9376),m=r(6543);let g=class extends p.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=m.NumberUtils.toHex(e);return f.NodeFactory.literalNode(e,t)}};g=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],g),t.StringArrayHexadecimalNumberIndexNode=g},6379: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.StringArrayHexadecimalNumericStringIndexNode=void 0;const c=r(2991),l=r(4482),d=r(1403),u=r(5350),p=r(6897),f=r(9376),m=r(6543);let g=class extends p.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=m.NumberUtils.toHex(e);return f.NodeFactory.literalNode(t)}};g=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],g),t.StringArrayHexadecimalNumericStringIndexNode=g},5233:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializable=void 0;const r={configurable:!0,enumerable:!0},o="_initialized",n="_initializablePropertiesSet",i="_wrappedMethodsSet";function a(e,t,r){Reflect.hasMetadata(e,r)||Reflect.defineMetadata(e,t,r)}t.initializable=function(e="initialize"){const t=Object.keys(this)[0];return(s,c)=>{const l=s[e];if(!l||"function"!=typeof l)throw new Error(`\`${e}\` method with initialization logic not found. \`@${t}\` decorator requires \`${e}\` method`);return a(o,!1,s),a(n,new Set,s),a(i,new Set,s),function(e,t){const a=Object.getOwnPropertyNames(e),s=new Set([t,"constructor"]);a.forEach((a=>{var c;const l=Reflect.getMetadata(n,e),d=Reflect.getMetadata(i,e);if(s.has(a)||l.has(a)||d.has(a))return;if("function"!=typeof e[a])return;const u=null!==(c=Object.getOwnPropertyDescriptor(e,a))&&void 0!==c?c:r,p=u.value;Object.defineProperty(e,a,Object.assign(Object.assign({},u),{value(){if(!Reflect.getMetadata(o,this))throw new Error(`Class should be initialized with \`${t}()\` method`);return p.apply(this,arguments)}})),d.add(a)}))}(s,e),function(e,t,n){var i;const a=null!==(i=Object.getOwnPropertyDescriptor(e,t))&&void 0!==i?i:r,s=a.value;Object.defineProperty(e,t,Object.assign(Object.assign({},a),{value:function(){Reflect.defineMetadata(o,!0,this);const e=s.apply(this,arguments);return this[n],e}}))}(s,e,c),function(e,t){var o;Reflect.getMetadata(n,e).add(t);const i="_"+t.toString(),a=null!==(o=Object.getOwnPropertyDescriptor(e,i))&&void 0!==o?o:r;return Object.defineProperty(e,t,Object.assign(Object.assign({},a),{get:function(){if(void 0===this[i])throw new Error(`Property \`${t.toString()}\` is not initialized! Initialize it first!`);return this[i]},set:function(e){this[i]=e}})),a}(s,c)}}},7370:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationTarget=void 0;const o=r(4741);t.ObfuscationTarget=o.Utils.makeEnum({Browser:"browser",BrowserNoEval:"browser-no-eval",Node:"node"})},9965:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringSeparator=void 0,(r=t.StringSeparator||(t.StringSeparator={})).Comma=",",r.Dot=".",r.VerticalLine="|"},8657:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CalleeDataExtractor=void 0,(r=t.CalleeDataExtractor||(t.CalleeDataExtractor={})).FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",r.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",r.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"},5670:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformationStage=void 0,(r=t.CodeTransformationStage||(t.CodeTransformationStage={})).PreparingTransformers="PreparingTransformers",r.FinalizingTransformers="FinalizingTransformers"},7082:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformer=void 0,(t.CodeTransformer||(t.CodeTransformer={})).HashbangOperatorTransformer="HashbangOperatorTransformer"},7295:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelper=void 0,(r=t.CustomCodeHelper||(t.CustomCodeHelper={})).CallsControllerFunction="CallsControllerFunction",r.ConsoleOutputDisable="ConsoleOutputDisable",r.DebugProtectionFunctionCall="DebugProtectionFunctionCall",r.DebugProtectionFunctionInterval="DebugProtectionFunctionInterval",r.DebugProtectionFunction="DebugProtectionFunction",r.DomainLock="DomainLock",r.SelfDefendingUnicode="SelfDefendingUnicode",r.StringArray="StringArray",r.StringArrayCallsWrapper="StringArrayCallsWrapper",r.StringArrayCallsWrapperBase64="StringArrayCallsWrapperBase64",r.StringArrayCallsWrapperRc4="StringArrayCallsWrapperRc4",r.StringArrayRotateFunction="StringArrayRotateFunction"},1806:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroup=void 0,(r=t.CustomCodeHelperGroup||(t.CustomCodeHelperGroup={})).ConsoleOutput="ConsoleOutput",r.DebugProtection="DebugProtection",r.DomainLock="DomainLock",r.SelfDefending="SelfDefending",r.StringArray="StringArray"},1280:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowCustomNode=void 0,(r=t.ControlFlowCustomNode||(t.ControlFlowCustomNode={})).BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",r.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",r.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",r.CallExpressionFunctionNode="CallExpressionFunctionNode",r.ControlFlowStorageNode="ControlFlowStorageNode",r.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",r.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",r.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode",r.StringLiteralNode="StringLiteralNode"},2620:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionCustomNode=void 0,(t.DeadCodeInjectionCustomNode||(t.DeadCodeInjectionCustomNode={})).BlockStatementDeadCodeInjectionNode="BlockStatementDeadCodeInjectionNode"},9809:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformerCustomNode=void 0,(t.ObjectExpressionKeysTransformerCustomNode||(t.ObjectExpressionKeysTransformerCustomNode={})).ObjectExpressionVariableDeclarationHostNode="ObjectExpressionVariableDeclarationHostNode"},294:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCustomNode=void 0,(r=t.StringArrayCustomNode||(t.StringArrayCustomNode={})).StringArrayCallNode="StringArrayCallNode",r.StringArrayScopeCallsWrapperFunctionNode="StringArrayScopeCallsWrapperFunctionNode",r.StringArrayScopeCallsWrapperVariableNode="StringArrayScopeCallsWrapperVariableNode"},8064:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexNode=void 0,(r=t.StringArrayIndexNode||(t.StringArrayIndexNode={})).StringArrayHexadecimalNumberIndexNode="StringArrayHexadecimalNumberIndexNode",r.StringArrayHexadecimalNumericStringIndexNode="StringArrayHexadecimalNumericStringIndexNode"},3177:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesGenerator=void 0;const o=r(4741);t.IdentifierNamesGenerator=o.Utils.makeEnum({DictionaryIdentifierNamesGenerator:"dictionary",HexadecimalIdentifierNamesGenerator:"hexadecimal",MangledIdentifierNamesGenerator:"mangled",MangledShuffledIdentifierNamesGenerator:"mangled-shuffled"})},6221:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingMessage=void 0,(r=t.LoggingMessage||(t.LoggingMessage={})).EmptySourceCode="Empty source code. Obfuscation canceled...",r.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",r.ObfuscationStarted="Obfuscation started...",r.RandomGeneratorSeed="Random generator seed: %s...",r.CodeTransformationStage="Code transformation stage: %s...",r.NodeTransformationStage="AST transformation stage: %s...",r.Version="Version: %s"},4469:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingPrefix=void 0,(r=t.LoggingPrefix||(t.LoggingPrefix={})).Base="[javascript-obfuscator]",r.CLI="[javascript-obfuscator-cli]"},8932:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformationStage=void 0,(r=t.NodeTransformationStage||(t.NodeTransformationStage={})).ControlFlowFlattening="ControlFlowFlattening",r.Converting="Converting",r.DeadCodeInjection="DeadCodeInjection",r.Finalizing="Finalizing",r.Initializing="Initializing",r.Preparing="Preparing",r.RenameIdentifiers="RenameIdentifiers",r.RenameProperties="RenameProperties",r.Simplifying="Simplifying",r.StringArray="StringArray"},4212:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformer=void 0,(r=t.NodeTransformer||(t.NodeTransformer={})).BooleanLiteralTransformer="BooleanLiteralTransformer",r.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",r.BlockStatementSimplifyTransformer="BlockStatementSimplifyTransformer",r.CommentsTransformer="CommentsTransformer",r.CustomCodeHelpersTransformer="CustomCodeHelpersTransformer",r.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",r.EscapeSequenceTransformer="EscapeSequenceTransformer",r.EvalCallExpressionTransformer="EvalCallExpressionTransformer",r.ExportSpecifierTransformer="ExportSpecifierTransformer",r.ExpressionStatementsMergeTransformer="ExpressionStatementsMergeTransformer",r.FunctionControlFlowTransformer="FunctionControlFlowTransformer",r.IfStatementSimplifyTransformer="IfStatementSimplifyTransformer",r.LabeledStatementTransformer="LabeledStatementTransformer",r.MemberExpressionTransformer="MemberExpressionTransformer",r.MetadataTransformer="MetadataTransformer",r.MethodDefinitionTransformer="MethodDefinitionTransformer",r.NumberLiteralTransformer="NumberLiteralTransformer",r.NumberToNumericalExpressionTransformer="NumberToNumericalExpressionTransformer",r.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",r.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",r.ObjectExpressionTransformer="ObjectExpressionTransformer",r.ObjectPatternPropertiesTransformer="ObjectPatternPropertiesTransformer",r.ParentificationTransformer="ParentificationTransformer",r.RenamePropertiesTransformer="RenamePropertiesTransformer",r.ScopeIdentifiersTransformer="ScopeIdentifiersTransformer",r.ScopeThroughIdentifiersTransformer="ScopeThroughIdentifiersTransformer",r.SplitStringTransformer="SplitStringTransformer",r.StringArrayTransformer="StringArrayTransformer",r.StringArrayScopeCallsWrapperTransformer="StringArrayScopeCallsWrapperTransformer",r.TemplateLiteralTransformer="TemplateLiteralTransformer",r.VariableDeclarationsMergeTransformer="VariableDeclarationsMergeTransformer",r.VariablePreserveTransformer="VariablePreserveTransformer"},9487:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.VisitorDirection=void 0,(r=t.VisitorDirection||(t.VisitorDirection={})).Enter="enter",r.Leave="leave"},4015:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowReplacer=void 0,(r=t.ControlFlowReplacer||(t.ControlFlowReplacer={})).BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",r.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",r.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",r.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"},9946:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionExtractor=void 0,(r=t.ObjectExpressionExtractor||(t.ObjectExpressionExtractor={})).BasePropertiesExtractor="BasePropertiesExtractor",r.ObjectExpressionToVariableDeclarationExtractor="ObjectExpressionToVariableDeclarationExtractor"},4361:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuard=void 0,(r=t.ObfuscatingGuard||(t.ObfuscatingGuard={})).BlackListObfuscatingGuard="BlackListObfuscatingGuard",r.ConditionalCommentObfuscatingGuard="ConditionalCommentObfuscatingGuard",r.ForceTransformStringObfuscatingGuard="ForceTransformStringObfuscatingGuard",r.IgnoredRequireImportObfuscatingGuard="IgnoredRequireImportObfuscatingGuard",r.ReservedStringObfuscatingGuard="ReservedStringObfuscatingGuard"},1137:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncoding=void 0;const o=r(4741);t.StringArrayEncoding=o.Utils.makeEnum({None:"none",Base64:"base64",Rc4:"rc4"})},6212:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexesType=void 0;const o=r(4741);t.StringArrayIndexesType=o.Utils.makeEnum({HexadecimalNumber:"hexadecimal-number",HexadecimalNumericString:"hexadecimal-numeric-string"})},9614:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersType=void 0;const o=r(4741);t.StringArrayWrappersType=o.Utils.makeEnum({Variable:"variable",Function:"function"})},9945:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=void 0,(r=t.NodeType||(t.NodeType={})).ArrayExpression="ArrayExpression",r.ArrayPattern="ArrayPattern",r.ArrowFunctionExpression="ArrowFunctionExpression",r.AssignmentExpression="AssignmentExpression",r.AssignmentPattern="AssignmentPattern",r.AwaitExpression="AwaitExpression",r.BinaryExpression="BinaryExpression",r.BlockStatement="BlockStatement",r.BreakStatement="BreakStatement",r.CallExpression="CallExpression",r.CatchClause="CatchClause",r.ChainExpression="ChainExpression",r.ClassDeclaration="ClassDeclaration",r.ConditionalExpression="ConditionalExpression",r.ContinueStatement="ContinueStatement",r.ExportAllDeclaration="ExportAllDeclaration",r.ExportNamedDeclaration="ExportNamedDeclaration",r.ExportSpecifier="ExportSpecifier",r.ExpressionStatement="ExpressionStatement",r.ForStatement="ForStatement",r.ForInStatement="ForInStatement",r.ForOfStatement="ForOfStatement",r.FunctionDeclaration="FunctionDeclaration",r.FunctionExpression="FunctionExpression",r.Identifier="Identifier",r.IfStatement="IfStatement",r.ImportDeclaration="ImportDeclaration",r.ImportDefaultSpecifier="ImportDefaultSpecifier",r.ImportNamespaceSpecifier="ImportNamespaceSpecifier",r.ImportSpecifier="ImportSpecifier",r.LabeledStatement="LabeledStatement",r.Literal="Literal",r.LogicalExpression="LogicalExpression",r.MemberExpression="MemberExpression",r.MethodDefinition="MethodDefinition",r.ObjectExpression="ObjectExpression",r.ObjectPattern="ObjectPattern",r.Program="Program",r.Property="Property",r.RestElement="RestElement",r.ReturnStatement="ReturnStatement",r.SequenceExpression="SequenceExpression",r.SpreadElement="SpreadElement",r.Super="Super",r.SwitchCase="SwitchCase",r.SwitchStatement="SwitchStatement",r.TaggedTemplateExpression="TaggedTemplateExpression",r.TemplateElement="TemplateElement",r.TemplateLiteral="TemplateLiteral",r.ThrowStatement="ThrowStatement",r.TryStatement="TryStatement",r.UnaryExpression="UnaryExpression",r.UpdateExpression="UpdateExpression",r.VariableDeclaration="VariableDeclaration",r.VariableDeclarator="VariableDeclarator",r.WhileStatement="WhileStatement",r.YieldExpression="YieldExpression"},8608:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardResult=void 0,(r=t.ObfuscatingGuardResult||(t.ObfuscatingGuardResult={})).ForceTransform="ForceTransform",r.Ignore="Ignore",r.Transform="Transform"},6532:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsPreset=void 0;const o=r(4741);t.OptionsPreset=o.Utils.makeEnum({Default:"default",LowObfuscation:"low-obfuscation",MediumObfuscation:"medium-obfuscation",HighObfuscation:"high-obfuscation"})},6086:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapMode=void 0;const o=r(4741);t.SourceMapMode=o.Utils.makeEnum({Inline:"inline",Separate:"separate"})},2207: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(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4134);let f=class{constructor(e,t){this.preservedNamesSet=new Set,this.lexicalScopesPreservedNamesMap=new Map,this.randomGenerator=e,this.options=t}generate(e,t){return p.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)))}};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.AbstractIdentifierNamesGenerator=f},8370: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(2991),u=r(5350),p=r(5768),f=r(4482),m=r(1403),g=r(2207),S=r(1534);let y=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,...S.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)}};y=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!==f.IOptions&&f.IOptions)?i:Object,"function"==typeof(a=void 0!==p.IArrayUtils&&p.IArrayUtils)?a:Object])],y),t.DictionaryIdentifierNamesGenerator=y},5932: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(2991),d=r(5350),u=r(4482),p=r(1403),f=r(2207),m=r(6543),g=r(4741);let S=o=class extends f.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.slice(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)}};S.baseIdentifierNameLength=6,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!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],S),t.HexadecimalIdentifierNamesGenerator=S},3119: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(2991),d=r(5350),u=r(4482),p=r(1403),f=r(2023),m=r(6366),g=r(2691),S=r(2207),y=r(1534);let h=o=class extends S.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t),this.previousMangledName=o.initMangledNameCharacter}generateNext(e){const t=this.generateNewMangledName(this.previousMangledName);return this.updatePreviousMangledName(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.updatePreviousMangledName(r),this.isValidIdentifierName(o)?(this.preserveName(o),o):this.generateForGlobalScope(e)}generateForLexicalScope(e,t){const r=[e,...y.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.updatePreviousMangledName(n),this.preserveNameForLexicalScope(n,e),n}isIncrementedMangledName(e,t){if(e===t)return!1;const r=e.length,o=t.length;if(r!==o)return r>o;const n=this.getNameSequence();for(let o=0;on.indexOf(i)}throw new Error("Something goes wrong during comparison of mangled names")}isValidIdentifierName(e){return super.isValidIdentifierName(e)&&!o.reservedNamesSet.has(e)}getNameSequence(){return o.nameSequence}updatePreviousMangledName(e){this.isIncrementedMangledName(e,this.previousMangledName)&&(this.previousMangledName=e)}generateNewMangledName(e){let t=(e=>{const t=this.getNameSequence(),r=t.length,o=e.length,n=e=>"0".repeat(e);let i=o-1;do{const a=e[i],s=t.indexOf(a);if(s!==r-1)return e.slice(0,i)+t[s+1]+n(o-(i+1));--i}while(i>=0);return`${t[f.numbersString.length]}${n(o)}`})(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=[...`${f.numbersString}${m.alphabetString}${g.alphabetStringUppercase}`],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!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],h),t.MangledIdentifierNamesGenerator=h},2677: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.MangledShuffledIdentifierNamesGenerator=void 0;const d=r(2991),u=r(5350),p=r(5768),f=r(4482),m=r(1403),g=r(2023),S=r(6366),y=r(2691),h=r(3119);let N=o=class extends h.MangledIdentifierNamesGenerator{constructor(e,t,r){super(t,r),this.arrayUtils=e}initialize(){this.initializeNameSequence([...""+g.numbersString,...this.arrayUtils.shuffle([...`${S.alphabetString}${y.alphabetStringUppercase}`])])}initializeNameSequence(e){this.getNameSequence()||(o.shuffledNameSequence=e)}getNameSequence(){return o.shuffledNameSequence}generateNewMangledName(e){return super.generateNewMangledName(e)}};s([d.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],N.prototype,"initialize",null),N=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IArrayUtils)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.IArrayUtils&&p.IArrayUtils)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],N),t.MangledShuffledIdentifierNamesGenerator=N},5562:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3499:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5435:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1588:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},927:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7673:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6949:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6871:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5082:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},698:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5167:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5524:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5822:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4482:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},68:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5164:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2086:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},870:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8688:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5683:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3186:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5768:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5591:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9825:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2747:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2569:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1403:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9658:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7149: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(2991),d=r(5350),u=c(r(2242)),p=r(4482),f=r(4469);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,f.LoggingPrefix.Base,e,t)}success(e,t){this.options.log&&o.log(o.colorSuccess,f.LoggingPrefix.Base,e,t)}warn(e,t){this.options.log&&o.log(o.colorWarn,f.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!==p.IOptions&&p.IOptions)?n:Object])],m),t.Logger=m},9173: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(2991),l=r(5350),d=r(4482),u=r(1403);let p=class{constructor(e,t){this.randomGenerator=e,this.options=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.AbstractNodeTransformer=p},5419: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(2991),i=r(7207);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.NodeTransformerNamesGroupsBuilder=a},6827: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.prototype.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(2991),p=r(5350),f=c(r(4523)),m=r(3312),g=r(9658),S=r(9487),y=r(4134),h=r(739);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)&&f.replace(e,{enter:this.mergeVisitorsForDirection(n,S.VisitorDirection.Enter),leave:this.mergeVisitorsForDirection(i,S.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 f.VisitorOption.Skip;for(let i=0;ie}};N=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__INodeTransformer)),d(1,u.inject(p.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},5912: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.prototype.hasOwnProperty.call(e,r)&&c(t,e,r);return l(t,e),t},p=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.BlockStatementControlFlowTransformer=void 0;const m=r(2991),g=r(5350),S=u(r(4523)),y=r(8749),h=r(5768),N=r(4482),_=r(1403),b=r(1280),O=r(8932),I=r(9173),E=r(4134),v=r(2361);let C=o=class extends I.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.controlFlowCustomNodeFactory=e,this.arrayUtils=t}static isProhibitedStatementNode(e){const t=E.NodeGuards.isBreakStatementNode(e)||E.NodeGuards.isContinueStatementNode(e),r=E.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),o=E.NodeGuards.isClassDeclarationNode(e);return E.NodeGuards.isFunctionDeclarationNode(e)||t||r||o}static canTransformBlockStatementNode(e){let t=!0;return S.traverse(e,{enter:e=>{if(E.NodeGuards.isWhileStatementNode(e))return S.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&&E.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 v.NodeUtils.parentizeNode(c,t),c}};C=o=d([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.Factory__IControlFlowCustomNode)),f(1,m.inject(g.ServiceIdentifiers.IArrayUtils)),f(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),f(3,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==y.TControlFlowCustomNodeFactory&&y.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==h.IArrayUtils&&h.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object])],C),t.BlockStatementControlFlowTransformer=C},9749: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},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.prototype.hasOwnProperty.call(e,r)&&l(t,e,r);return d(t,e),t},f=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(2991),S=r(5350),y=p(r(4523)),h=r(8749),N=r(9628),_=r(2147),b=r(4482),O=r(1403),I=r(1280),E=r(4015),v=r(9945),C=r(8932),T=r(9173),R=r(7678),A=r(4134),j=r(739),M=r(8134),F=r(2361);let P=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 C.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&(A.NodeGuards.isFunctionDeclarationNode(e)||A.NodeGuards.isFunctionExpressionNode(e)||A.NodeGuards.isArrowFunctionExpressionNode(e)))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.visitedFunctionNodes.add(e),!A.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(I.ControlFlowCustomNode.ControlFlowStorageNode);return n.initialize(o),R.NodeAppender.prepend(r,n.getNode()),this.hostNodesWithControlFlowNode.add(r),F.NodeUtils.parentizeAst(e),e}getControlFlowStorage(e){const t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&(A.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=M.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(A.NodeGuards.isFunctionDeclarationNode(e)||A.NodeGuards.isFunctionExpressionNode(e)||A.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}transformFunctionBody(e,t){y.replace(e,{enter:(e,r)=>{if(j.NodeMetadata.isIgnoredNode(e))return y.VisitorOption.Skip;if(this.isVisitedFunctionNode(e)||!r)return y.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})}})}};P.controlFlowReplacersMap=new Map([[v.NodeType.BinaryExpression,E.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[v.NodeType.CallExpression,E.ControlFlowReplacer.CallExpressionControlFlowReplacer],[v.NodeType.LogicalExpression,E.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[v.NodeType.Literal,E.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),P.hostNodeSearchMinDepth=0,P.hostNodeSearchMaxDepth=2,P=o=u([g.injectable(),m(0,g.inject(S.ServiceIdentifiers.Factory__TControlFlowStorage)),m(1,g.inject(S.ServiceIdentifiers.Factory__IControlFlowReplacer)),m(2,g.inject(S.ServiceIdentifiers.Factory__IControlFlowCustomNode)),m(3,g.inject(S.ServiceIdentifiers.IRandomGenerator)),m(4,g.inject(S.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==_.TControlFlowStorageFactory&&_.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])],P),t.FunctionControlFlowTransformer=P},9732: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(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403);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!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],g),t.AbstractControlFlowReplacer=g},3358: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(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(8146);let y=o=class extends S.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)}};y.usingExistingIdentifierChance=.5,y=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!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],y),t.BinaryExpressionControlFlowReplacer=y},5760: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(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(9732),y=r(4134);let h=o=class extends S.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.callee;if(!y.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||!y.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!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],h),t.CallExpressionControlFlowReplacer=h},8146: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(2991),d=r(5350),u=r(8749),p=r(4482),f=r(1403),m=r(1280),g=r(9732),S=r(4134);let y=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||!S.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};y=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!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],y),t.ExpressionWithOperatorControlFlowReplacer=y},6522: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(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(8146),y=r(4134),h=r(2361);let N=o=class extends S.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=y.NodeGuards.isUnaryExpressionNode(e)?h.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(y.NodeGuards.isLiteralNode(t)||y.NodeGuards.isIdentifierNode(t)||y.NodeGuards.isObjectExpressionNode(t)||y.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!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],N),t.LogicalExpressionControlFlowReplacer=N},270: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(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(9732),y=r(4134),h=r(8241);let N=o=class extends S.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(y.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if(!h.NodeLiteralUtils.isStringLiteralNode(e)||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||!y.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!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],N),t.StringLiteralControlFlowReplacer=N},2337: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.BooleanLiteralTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(4134),g=r(2361),S=r(9376);let y=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("boolean"!=typeof e.value)return e;const r=e.value?this.getTrueUnaryExpressionNode():this.getFalseUnaryExpressionNode();return g.NodeUtils.parentizeNode(r,t),r}getTrueUnaryExpressionNode(){return S.NodeFactory.unaryExpressionNode("!",this.getFalseUnaryExpressionNode())}getFalseUnaryExpressionNode(){return S.NodeFactory.unaryExpressionNode("!",S.NodeFactory.arrayExpressionNode())}};y=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])],y),t.BooleanLiteralTransformer=y},9912: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.ExportSpecifierTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(4134),g=r(2361);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isExportSpecifierNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.local.name===e.exported.name&&(e.exported=g.NodeUtils.clone(e.local)),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.ExportSpecifierTransformer=S},9139: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(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(9376),g=r(4134);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.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}};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.MemberExpressionTransformer=S},6037: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(2991),d=r(5350),u=r(4482),p=r(1403),f=r(8932),m=r(9173),g=r(9376),S=r(4134);let y=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isMethodDefinitionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isIdentifierNode(e.key)?this.replaceIdentifierKey(e,e.key):S.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}};y.ignoredNames=["constructor"],y=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!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],y),t.MethodDefinitionTransformer=y},9467: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.NumberLiteralTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4212),f=r(8932),m=r(9173),g=r(9376),S=r(4134),y=r(6543);let h=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.NumberToNumericalExpressionTransformer],this.numberLiteralCache=new Map}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value&&"bigint"!=typeof e.value)return e;const r=e.value;let o;return this.numberLiteralCache.has(r)?o=this.numberLiteralCache.get(r):(o=y.NumberUtils.isCeil(r)?y.NumberUtils.toHex(r):String(r),this.numberLiteralCache.set(r,o)),g.NodeFactory.literalNode(r,o)}};h=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])],h),t.NumberLiteralTransformer=h},3393: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.NumberToNumericalExpressionTransformer=void 0;const l=r(2991),d=r(5350),u=r(5435),p=r(4482),f=r(1403),m=r(8932),g=r(9173),S=r(4134),y=r(9376),h=r(6543);let N=class extends g.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.numberNumericalExpressionAnalyzer=e}getVisitor(e){if(!this.options.numbersToExpressions)return null;switch(e){case m.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&S.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value)return e;if(S.NodeGuards.isPropertyNode(t)&&!t.computed)return e;const r=this.numberNumericalExpressionAnalyzer.analyze(e.value);return this.convertNumericalExpressionDataToNode(r)}convertNumericalExpressionDataToNode(e,t="+"){var r;const o=e.length,n=o>1?e.slice(0,o-1):[e[0]],i=o>1?e.slice(-1):[];if(i.length)return this.convertPartsToBinaryExpression(t,n,i);const a=null!==(r=n[0])&&void 0!==r?r:null;return Array.isArray(a)?this.convertNumericalExpressionDataToNode(a,"*"):this.convertPartOrNumberToLiteralNode(a)}convertPartsToBinaryExpression(e,t,r){const o=r[0];return Array.isArray(o)?y.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertNumericalExpressionDataToNode(o,"*")):y.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertPartOrNumberToLiteralNode(o))}convertPartOrNumberToLiteralNode(e){const t=Array.isArray(e)?e[0]:e,r=h.NumberUtils.isPositive(t),o=y.NodeFactory.literalNode(Math.abs(t));return r?o:y.NodeFactory.unaryExpressionNode("-",o)}};N=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),c(1,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(2,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.INumberNumericalExpressionAnalyzer&&u.INumberNumericalExpressionAnalyzer)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],N),t.NumberToNumericalExpressionTransformer=N},122: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.prototype.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)},p=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 f=r(2991),m=r(5350),g=d(r(4523)),S=r(2937),y=r(4482),h=r(1403),N=r(8932),_=r(9946),b=r(9173),O=r(4134),I=r(8134);let E=o=class extends b.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.objectExpressionExtractorFactory=e}static isProhibitedObjectExpressionNode(e,t,r){return o.isReferencedIdentifierName(e,r)||o.isProhibitedArrowFunctionExpression(e,t)||o.isProhibitedSequenceExpression(e,r)}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 isProhibitedArrowFunctionExpression(e,t){return O.NodeGuards.isArrowFunctionExpressionNode(t)&&t.body===e}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 N.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=I.NodeStatementUtils.getRootStatementOfNode(e);return o.isProhibitedObjectExpressionNode(e,t,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}};E.objectExpressionExtractorNames=[_.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,_.ObjectExpressionExtractor.BasePropertiesExtractor],E=o=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),p(1,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==S.TObjectExpressionExtractorFactory&&S.TObjectExpressionExtractorFactory)?n:Object,"function"==typeof(i=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==y.IOptions&&y.IOptions)?a:Object])],E),t.ObjectExpressionKeysTransformer=E},626: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(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(9376),g=r(4134);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.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))}};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.ObjectExpressionTransformer=S},6312: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.ObjectPatternPropertiesTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(4134),g=r(1534),S=r(2361);let y=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isPropertyNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!m.NodeGuards.isObjectPatternNode(t)||!e.shorthand)return e;if(!this.options.renameGlobals){const t=g.NodeLexicalScopeUtils.getLexicalScope(e);if(t&&m.NodeGuards.isProgramNode(t))return e}return e.shorthand=!1,e.value=S.NodeUtils.clone(e.value),S.NodeUtils.parentizeNode(e.value,e),e}};y=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])],y),t.ObjectPatternPropertiesTransformer=y},5869: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.prototype.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 p=r(2991),f=r(5350),m=l(r(4523)),g=l(r(6094)),S=r(4482),y=r(1403),h=r(4212),N=r(8932),_=r(9173),b=r(9376),O=r(4134),I=r(8241),E=r(2361);let v=o=class extends _.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[h.NodeTransformer.ObjectExpressionKeysTransformer,h.NodeTransformer.TemplateLiteralTransformer]}static chunkString(e,t,r){const o=Math.ceil(t/r),n=[];let i=0;for(let t=0;t{if(this.options.splitStrings)return t&&O.NodeGuards.isLiteralNode(e)?this.transformNode(e,t):void 0}};default:return null}}transformNode(e,t){if(I.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(!I.NodeLiteralUtils.isStringLiteralNode(e))return e;const n=g.length(e.value);if(r>=n)return e;const i=o.chunkString(e.value,n,r),a=this.transformStringChunksToBinaryExpressionNode(i);return E.NodeUtils.parentizeAst(a),E.NodeUtils.parentizeNode(a,t),a}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=b.NodeFactory.binaryExpressionNode("+",b.NodeFactory.literalNode(t),b.NodeFactory.literalNode(r));return e.reduce(((e,t)=>{const r=b.NodeFactory.literalNode(t);return b.NodeFactory.binaryExpressionNode("+",e,r)}),o)}};v.firstPassChunkLength=1e3,v=o=c([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(1,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object])],v),t.SplitStringTransformer=v},810: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(2991),d=r(5350),u=r(4482),p=r(1403),f=r(8932),m=r(9173),g=r(9376),S=r(4134),y=r(2361);let h=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}static isLiteralNodeWithStringValue(e){return!!e&&S.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isTemplateLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isTaggedTemplateExpressionNode(t)?e:this.transformTemplateLiteralNode(e,t)}transformTemplateLiteralNode(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=>!(S.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 y.NodeUtils.parentizeAst(n),y.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!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],h),t.TemplateLiteralTransformer=h},8539: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(2991),a=r(7678),s=r(9376),c=r(4134),l=r(8134),d=r(2361);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 isProhibitedPropertyNode(e){return"init"!==e.kind}static isProhibitedPattern(e){return!e||c.NodeGuards.isObjectPatternNode(e)||c.NodeGuards.isArrayPatternNode(e)||c.NodeGuards.isAssignmentPatternNode(e)||c.NodeGuards.isRestElementNode(e)}static shouldCreateLiteralNode(e){return!e.computed||e.computed&&!!e.key&&c.NodeGuards.isLiteralNode(e.key)}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=[],i=[];for(let a=e.length-1;a>=0;a--){const l=e[a];if(c.NodeGuards.isSpreadElementNode(l))break;if(o.isProhibitedPropertyNode(l))continue;const d=l.value;if(o.isProhibitedPattern(d))continue;const u=o.getPropertyNodeKeyName(l);if(!u)continue;const p=o.shouldCreateLiteralNode(l)?s.NodeFactory.literalNode(u):s.NodeFactory.identifierNode(u),f=s.NodeFactory.memberExpressionNode(r,p,!0),m=s.NodeFactory.expressionStatementNode(s.NodeFactory.assignmentExpressionNode("=",f,d));c.NodeGuards.isObjectExpressionNode(l.value)&&this.transformObjectExpressionNode(l.value,t,f),n.unshift(m),i.unshift(a)}return[n,i]}filterExtractedObjectExpressionProperties(e,t){e.properties=e.properties.filter(((e,r)=>!t.includes(r)))}};u=o=n([i.injectable()],u),t.BasePropertiesExtractor=u},7834: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(2991),c=r(5350),l=r(1878),d=r(9809),u=r(7678),p=r(4134),f=r(8134),m=r(2361),g=r(1534);let S=class{constructor(e){this.objectExpressionKeysTransformerCustomNodeFactory=e}extract(e,t){return this.transformObjectExpressionToVariableDeclaration(e,t)}transformObjectExpressionToVariableDeclaration(e,t){var r;const o=f.NodeStatementUtils.getScopeOfNode(t),n=p.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||!p.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(!p.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||!p.NodeGuards.isObjectExpressionNode(r))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property");return r}};S=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])],S),t.ObjectExpressionToVariableDeclarationExtractor=S},8043: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.prototype.hasOwnProperty.call(e,r)&&c(t,e,r);return l(t,e),t},p=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.DeadCodeInjectionTransformer=void 0;const m=r(2991),g=r(5350),S=u(r(4523)),y=r(7183),h=r(4482),N=r(1403),_=r(698),b=r(2620),O=r(4212),I=r(9945),E=r(8932),v=r(9173),C=r(9376),T=r(4134),R=r(8134),A=r(2361);let j=o=class extends v.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.isFunctionDeclarationNode(e)||T.NodeGuards.isBreakStatementNode(e)||T.NodeGuards.isContinueStatementNode(e)||T.NodeGuards.isAwaitExpressionNode(e)||T.NodeGuards.isYieldExpressionNode(e)||T.NodeGuards.isSuperNode(e)||T.NodeGuards.isForOfStatementNode(e)&&e.await}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=C.NodeFactory.blockStatementNode(n),a=e.id.name;let s=!1;return S.traverse(i,{enter:e=>{if(T.NodeGuards.isIdentifierNode(e)&&e.name===a)return s=!0,S.VisitorOption.Break}}),s}static isValidCollectedBlockStatementNode(e){if(!e.body.length)return!1;let t=0,r=!0;return S.traverse(e,{enter:e=>{if(T.NodeGuards.isBlockStatementNode(e)&&t++,t>o.maxNestedBlockStatementsCount||o.isProhibitedNodeInsideCollectedBlockStatement(e)||o.isScopeHoistingFunctionDeclaration(e))return r=!1,S.VisitorOption.Break}}),r}static isValidWrappedBlockStatementNode(e){if(!e.body.length)return!1;let t=!0;return S.traverse(e,{enter:e=>{if(o.isScopeHoistingFunctionDeclaration(e))return t=!1,S.VisitorOption.Break}}),!!t&&R.NodeStatementUtils.getParentNodeWithStatements(e).type!==I.NodeType.Program}getVisitor(e){switch(e){case E.NodeTransformationStage.DeadCodeInjection:return{enter:(e,t)=>{if(t&&T.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),e},leave:(e,t)=>{if(t&&T.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};case E.NodeTransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:(e,t)=>{if(t&&this.isDeadCodeInjectionRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}prepareNode(e,t){S.traverse(e,{enter:e=>{if(!T.NodeGuards.isBlockStatementNode(e))return;const t=A.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=C.NodeFactory.programNode([C.NodeFactory.expressionStatementNode(C.NodeFactory.functionExpressionNode([],e))]);return A.NodeUtils.parentizeAst(t),A.NodeUtils.parentizeNode(t,t),this.transformersRunner.transform(t,o.transformersToRenameBlockScopeIdentifiers,E.NodeTransformationStage.RenameIdentifiers),e}replaceBlockStatementNode(e,t,r){const n=C.NodeFactory.blockStatementNode([C.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 A.NodeUtils.parentizeNode(a,r),a}};j.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",j.maxNestedBlockStatementsCount=4,j.minCollectedBlockStatementsCount=5,j.transformersToRenameBlockScopeIdentifiers=[O.NodeTransformer.LabeledStatementTransformer,O.NodeTransformer.ScopeIdentifiersTransformer,O.NodeTransformer.ScopeThroughIdentifiersTransformer],j=o=d([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),f(1,m.inject(g.ServiceIdentifiers.INodeTransformersRunner)),f(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),f(3,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==y.TDeadNodeInjectionCustomNodeFactory&&y.TDeadNodeInjectionCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==_.INodeTransformersRunner&&_.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])],j),t.DeadCodeInjectionTransformer=j},4837: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.EscapeSequenceTransformer=void 0;const l=r(2991),d=r(5350),u=r(2747),p=r(4482),f=r(1403),m=r(8932),g=r(4212),S=r(9173),y=r(4134),h=r(8241),N=r(9376),_=r(2361);let b=class extends S.AbstractNodeTransformer{constructor(e,t,r){super(e,t),this.runAfter=[g.NodeTransformer.CustomCodeHelpersTransformer],this.escapeSequenceEncoder=r}getVisitor(e){switch(e){case m.NodeTransformationStage.Finalizing:return{enter:(e,t)=>{if(y.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!h.NodeLiteralUtils.isStringLiteralNode(e))return e;const r=this.escapeSequenceEncoder.encode(e.value,this.options.unicodeEscapeSequence),o=N.NodeFactory.literalNode(r);return _.NodeUtils.parentizeNode(o,t),o}};b=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),c(2,l.inject(d.ServiceIdentifiers.IEscapeSequenceEncoder)),s("design:paramtypes",["function"==typeof(o=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object,"function"==typeof(i=void 0!==u.IEscapeSequenceEncoder&&u.IEscapeSequenceEncoder)?i:Object])],b),t.EscapeSequenceTransformer=b},5289: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.prototype.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 p=r(2991),f=r(5350),m=l(r(4523)),g=r(4482),S=r(1403),y=r(8932),h=r(9173),N=r(6955),_=r(4134);let b=o=class extends h.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case y.NodeTransformationStage.Initializing:return{leave:e=>{if(_.NodeGuards.isProgramNode(e))return this.transformNode(e)}};case y.NodeTransformationStage.Finalizing:return{leave:e=>{if(_.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([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(1,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object])],b),t.CommentsTransformer=b},4996: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.CustomCodeHelpersTransformer=void 0;const u=r(2991),p=r(5350),f=r(6622),m=r(4482),g=r(1403),S=r(5562),y=r(3499),h=r(4212),N=r(8932),_=r(9173),b=r(4134);let O=class extends _.AbstractNodeTransformer{constructor(e,t,r,o,n){super(o,n),this.runAfter=[h.NodeTransformer.ParentificationTransformer,h.NodeTransformer.VariablePreserveTransformer],this.callsGraphData=[],this.callsGraphAnalyzer=e,this.prevailingKindOfVariablesAnalyzer=t,this.customCodeHelperGroupStorage=r}getVisitor(e){switch(e){case N.NodeTransformationStage.Preparing:return{leave:(e,t)=>{if(b.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),this.appendCustomNodesForPreparingStage(e,t),this.transformNode(e,t)}};default:return{leave:(t,r)=>(b.NodeGuards.isProgramNode(t)&&this.appendCustomNodesForStage(e,t,r),t)}}}prepareNode(e,t){this.callsGraphData=this.callsGraphAnalyzer.analyze(e),this.prevailingKindOfVariablesAnalyzer.analyze(e)}transformNode(e,t){return e}appendCustomNodesForPreparingStage(e,t){this.customCodeHelperGroupStorage.getStorage().forEach((t=>{var r;t.initialize(),null===(r=t.appendOnPreparing)||void 0===r||r.call(t,e,this.callsGraphData)}))}appendCustomNodesForStage(e,t,r){this.customCodeHelperGroupStorage.getStorage().forEach((r=>{var o;null===(o=r["appendOn"+e])||void 0===o||o.call(r,t,this.callsGraphData)}))}};O=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.ICallsGraphAnalyzer)),d(1,u.inject(p.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),d(2,u.inject(p.ServiceIdentifiers.TCustomNodeGroupStorage)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==S.ICallsGraphAnalyzer&&S.ICallsGraphAnalyzer)?o:Object,"function"==typeof(n=void 0!==y.IPrevailingKindOfVariablesAnalyzer&&y.IPrevailingKindOfVariablesAnalyzer)?n:Object,"function"==typeof(i=void 0!==f.TCustomCodeHelperGroupStorage&&f.TCustomCodeHelperGroupStorage)?i:Object,"function"==typeof(a=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==m.IOptions&&m.IOptions)?s:Object])],O),t.CustomCodeHelpersTransformer=O},3449: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.EvalCallExpressionTransformer=void 0;const l=r(2991),d=r(5350),u=r(4482),p=r(1403),f=r(4212),m=r(8932),g=r(9173),S=r(9376),y=r(4134),h=r(2361),N=r(2161);let _=o=class extends g.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.EscapeSequenceTransformer,f.NodeTransformer.ParentificationTransformer,f.NodeTransformer.VariablePreserveTransformer],this.evalRootAstHostNodeSet=new Set}static extractEvalStringFromCallExpressionArgument(e){return y.NodeGuards.isLiteralNode(e)?o.extractEvalStringFromLiteralNode(e):y.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 m.NodeTransformationStage.Preparing:return{enter:(e,t)=>{if(t&&y.NodeGuards.isCallExpressionNode(e)&&y.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return this.transformNode(e,t)}};case m.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=h.NodeUtils.convertCodeToStructure(n)}catch(t){return e}const a=S.NodeFactory.functionExpressionNode([],S.NodeFactory.blockStatementNode(i));return h.NodeUtils.parentizeAst(a),h.NodeUtils.parentizeNode(a,t),this.evalRootAstHostNodeSet.add(a),a}restoreNode(e,t){const r=e.body.body,o=h.NodeUtils.convertStructureToCode(r);return S.NodeFactory.callExpressionNode(S.NodeFactory.identifierNode("eval"),[S.NodeFactory.literalNode(N.StringUtils.escapeJsString(o))])}isEvalRootAstHostNode(e){return y.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}};_=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!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],_),t.EvalCallExpressionTransformer=_},8049: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(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4212),f=r(8932),m=r(9173),g=r(4134),S=r(739);let y=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.ParentificationTransformer,p.NodeTransformer.VariablePreserveTransformer]}getVisitor(e){switch(e){case f.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return S.NodeMetadata.set(e,{ignoredNode:!1}),g.NodeGuards.isLiteralNode(e)&&S.NodeMetadata.set(e,{replacedLiteral:!1}),e}};y=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])],y),t.MetadataTransformer=y},1581: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(2991),u=r(5350),p=r(805),f=r(4482),m=r(1403),g=r(4212),S=r(8932),y=r(4361),h=r(8608),N=r(9173),_=r(4134),b=r(739);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.map((t=>t.check(e)));return this.setNodeMetadata(e,r),e}setNodeMetadata(e,t){let r=!1,o=!1;t.every((e=>e===h.ObfuscatingGuardResult.Transform))||(r=t.some((e=>e===h.ObfuscatingGuardResult.ForceTransform)),o=!r&&t.some((e=>e===h.ObfuscatingGuardResult.Ignore))),b.NodeMetadata.set(e,{forceTransformNode:r&&!_.NodeGuards.isProgramNode(e),ignoredNode:o&&!_.NodeGuards.isProgramNode(e)})}};O.obfuscatingGuardsList=[y.ObfuscatingGuard.BlackListObfuscatingGuard,y.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,y.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,y.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,y.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!==p.TObfuscatingGuardFactory&&p.TObfuscatingGuardFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],O),t.ObfuscatingGuardsTransformer=O},774: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(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(2361);let g=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.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},2616: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(2991),u=r(5167),p=r(4482),f=r(1403),m=r(5822),g=r(4212),S=r(5350),y=r(8932),h=r(9173),N=r(4134);let _=class extends h.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer],this.identifierReplacer=e,this.scopeIdentifiersTraverser=o,this.preserveScopeVariableIdentifiers=this.preserveScopeVariableIdentifiers.bind(this)}getVisitor(e){switch(e){case y.NodeTransformationStage.Preparing:case y.NodeTransformationStage.Converting:case y.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&N.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(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.identifierReplacer.preserveName(e)}preserveIdentifierNameForLexicalScope(e,t){const r=N.NodeGuards.isNodeWithLexicalScope(t.block)?t.block:null;r&&this.identifierReplacer.preserveNameForLexicalScope(e,r)}};_=s([d.injectable(),l(0,d.inject(S.ServiceIdentifiers.IIdentifierReplacer)),l(1,d.inject(S.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(S.ServiceIdentifiers.IOptions)),l(3,d.inject(S.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==u.IIdentifierReplacer&&u.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object,"function"==typeof(a=void 0!==m.IScopeIdentifiersTraverser&&m.IScopeIdentifiersTraverser)?a:Object])],_),t.VariablePreserveTransformer=_},5878: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(2991),s=r(8608),c=r(4134);let l=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};Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalCommentObfuscatingGuard=void 0;const i=r(2991),a=r(8608),s=r(4134);let c=o=class{constructor(){this.obfuscationAllowed=!0}static isConditionalComment(e){return o.obfuscationEnableCommentRegExp.test(e.value)||o.obfuscationDisableCommentRegExp.test(e.value)}check(e){if(s.NodeGuards.isNodeWithComments(e)){const t=e.leadingComments;t&&(this.obfuscationAllowed=this.checkComments(t))}return this.obfuscationAllowed?a.ObfuscatingGuardResult.Transform:a.ObfuscatingGuardResult.Ignore}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},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.ForceTransformStringObfuscatingGuard=void 0;const s=r(2991),c=r(4482),l=r(8608),d=r(5350),u=r(4134);let p=class{constructor(e){this.options=e}check(e){return this.options.forceTransformStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isForceTransformString(e.value)?l.ObfuscatingGuardResult.ForceTransform:l.ObfuscatingGuardResult.Transform}isForceTransformString(e){return this.options.forceTransformStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};p=n([s.injectable(),a(0,s.inject(d.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],p),t.ForceTransformStringObfuscatingGuard=p},147: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.IgnoredRequireImportObfuscatingGuard=void 0;const s=r(2991),c=r(4482),l=r(8608),d=r(5350),u=r(4134);let p=class{constructor(e){this.options=e}check(e){return this.options.ignoreRequireImports&&u.NodeGuards.isCallExpressionNode(e)&&u.NodeGuards.isIdentifierNode(e.callee)&&"require"===e.callee.name?l.ObfuscatingGuardResult.Ignore:l.ObfuscatingGuardResult.Transform}};p=n([s.injectable(),a(0,s.inject(d.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],p),t.IgnoredRequireImportObfuscatingGuard=p},7985: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(2991),c=r(4482),l=r(8608),d=r(5350),u=r(4134);let p=class{constructor(e){this.options=e}check(e){return this.options.reservedStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isReservedString(e.value)?l.ObfuscatingGuardResult.Ignore:l.ObfuscatingGuardResult.Transform}isReservedString(e){return this.options.reservedStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};p=n([s.injectable(),a(0,s.inject(d.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],p),t.ReservedStringObfuscatingGuard=p},8869: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.prototype.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 p=r(2991),f=r(5350),m=l(r(4523)),g=r(5167),S=r(4482),y=r(1403),h=r(8932),N=r(9173),_=r(4134),b=r(1534);let O=class extends N.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.identifierReplacer=e}getVisitor(e){switch(e){case h.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&_.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.identifierReplacer.storeLocalName(e.label,t)}replaceLabeledStatementName(e,t){m.replace(e,{enter:(e,r)=>{if(r&&_.NodeGuards.isLabelIdentifierNode(e,r)){const r=this.identifierReplacer.replace(e,t);e.name=r.name}}})}};O=c([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.IIdentifierReplacer)),u(1,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(2,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==g.IIdentifierReplacer&&g.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object])],O),t.LabeledStatementTransformer=O},5806: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.prototype.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)},p=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 f=r(2991),m=r(5350),g=d(r(4523)),S=r(5167),y=r(4482),h=r(1403),N=r(5822),_=r(8932),b=r(9173),O=r(4134),I=r(739);let E=class extends b.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.lexicalScopesWithObjectPatternWithoutDeclarationMap=new Map,this.identifierReplacer=e,this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case _.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&O.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,(e=>{const{isGlobalDeclaration:t,variable:r,variableLexicalScopeNode:o}=e;(this.options.renameGlobals||!t||r.defs.every((e=>"ImportBinding"===e.type||"CatchClause"===e.type)))&&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.identifierReplacer.storeGlobalName(e,t):this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierReplacer.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.isProhibitedPropertyIdentifierNode(e,o)||this.isProhibitedPropertyAssignmentPatternIdentifierNode(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)||O.NodeGuards.isLabelIdentifierNode(e,o))}isProhibitedClassDeclarationNameIdentifierNode(e,t,r){return O.NodeGuards.isClassDeclarationNode(e.scope.block)&&O.NodeGuards.isClassDeclarationNode(r)&&r.id===t}isProhibitedExportNamedClassDeclarationIdentifierNode(e,t){return O.NodeGuards.isClassDeclarationNode(t)&&t.id===e&&!!t.parentNode&&O.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,t){return O.NodeGuards.isFunctionDeclarationNode(t)&&t.id===e&&!!t.parentNode&&O.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedVariableDeclarationIdentifierNode(e,t){return O.NodeGuards.isVariableDeclaratorNode(t)&&t.id===e&&!!t.parentNode&&O.NodeGuards.isVariableDeclarationNode(t.parentNode)&&!!t.parentNode.parentNode&&O.NodeGuards.isExportNamedDeclarationNode(t.parentNode.parentNode)}isProhibitedImportSpecifierNode(e,t){return O.NodeGuards.isImportSpecifierNode(t)&&t.imported.name===t.local.name}isProhibitedPropertyIdentifierNode(e,t){return O.NodeGuards.isPropertyNode(t)&&!t.computed&&O.NodeGuards.isIdentifierNode(t.key)&&O.NodeGuards.isIdentifierNode(e)&&t.shorthand&&t.key.name===e.name}isProhibitedPropertyAssignmentPatternIdentifierNode(e,t){return O.NodeGuards.isAssignmentPatternNode(t)&&t.left===e&&!!t.parentNode&&O.NodeGuards.isPropertyNode(t.parentNode)&&O.NodeGuards.isIdentifierNode(t.left)&&O.NodeGuards.isIdentifierNode(t.parentNode.key)&&t.left.name===t.parentNode.key.name}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(O.NodeGuards.isObjectPatternNode(e)&&r&&O.NodeGuards.isAssignmentExpressionNode(r)){o=!0;const r=e.properties;for(const e of r)if(O.NodeGuards.isPropertyNode(e)&&!e.computed&&e.shorthand&&O.NodeGuards.isIdentifierNode(e.key)&&t.name===e.key.name)return n=!0,g.VisitorOption.Break}}}),this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(r,null!=o&&o),n}};E=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.IIdentifierReplacer)),p(1,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(m.ServiceIdentifiers.IOptions)),p(3,f.inject(m.ServiceIdentifiers.IScopeIdentifiersTraverser)),u("design:paramtypes",["function"==typeof(o=void 0!==S.IIdentifierReplacer&&S.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==y.IOptions&&y.IOptions)?i:Object,"function"==typeof(a=void 0!==N.IScopeIdentifiersTraverser&&N.IScopeIdentifiersTraverser)?a:Object])],E),t.ScopeIdentifiersTransformer=E},7247: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.ScopeThroughIdentifiersTransformer=void 0;const d=r(2991),u=r(5350),p=r(5167),f=r(4482),m=r(1403),g=r(5822),S=r(8932),y=r(9173),h=r(4134);let N=class extends y.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.identifierReplacer=e,this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case S.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&h.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(e,t,(e=>{const{reference:t,variableLexicalScopeNode:r}=e;this.transformScopeThroughIdentifiers(t,r)})),e}transformScopeThroughIdentifiers(e,t){if(e.resolved)return;const r=e.identifier;this.storeIdentifierName(r,t),this.replaceIdentifierName(r,t,e)}storeIdentifierName(e,t){this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierReplacer.replace(e,t);r.identifier.name=o.name}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IIdentifierReplacer)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),l(3,d.inject(u.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==p.IIdentifierReplacer&&p.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object,"function"==typeof(a=void 0!==g.IScopeIdentifiersTraverser&&g.IScopeIdentifiersTraverser)?a:Object])],N),t.ScopeThroughIdentifiersTransformer=N},6181: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.IdentifierReplacer=void 0;const c=r(2991),l=r(5350),d=r(9416),u=r(4482),p=r(9376);let f=class{constructor(e,t){this.blockScopesMap=new Map,this.options=t,this.identifierNamesGenerator=e(t)}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)}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)}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)))}};f=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])],f),t.IdentifierReplacer=f},2143: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(2991),u=r(5350),p=r(5524),f=r(4482),m=r(1403),g=r(8932),S=r(9173),y=r(4134);let h=o=class extends S.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.renamePropertiesReplacer=e}static isValidPropertyNode(e,t){return(!y.NodeGuards.isIdentifierNode(t)||!e.computed)&&(y.NodeGuards.isIdentifierNode(t)||y.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 y.NodeGuards.isPropertyNode(e)?this.transformPropertyNode(e):y.NodeGuards.isMemberExpressionNode(e)?this.transformMemberExpressionNode(e):y.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!==p.IRenamePropertiesReplacer&&p.IRenamePropertiesReplacer)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],h),t.RenamePropertiesTransformer=h},7889: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(2991),d=r(5350),u=r(9416),p=r(4482),f=c(r(6856)),m=r(4134),g=r(9376);let S=class{constructor(e,t){this.propertyNamesMap=new Map,this.reservedDomPropertiesList=new Set(f.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)}};S=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!==p.IOptions&&p.IOptions)?n:Object])],S),t.RenamePropertiesReplacer=S},254: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.AbstractStatementSimplifyTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4212),f=r(9173),m=r(4134),g=r(9376);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.ExpressionStatementsMergeTransformer,p.NodeTransformer.VariableDeclarationsMergeTransformer]}getStatementSimplifyData(e){if(!e)return null;if(!m.NodeGuards.isBlockStatementNode(e))return{leadingStatements:[e],trailingStatement:null,hasReturnStatement:!1,hasSingleExpression:!1};const{startIndex:t,unwrappedExpressions:r,hasReturnStatement:o}=this.collectIteratedStatementsSimplifyData(e),n=this.getLeadingStatements(e,t);if(!r.length)return{leadingStatements:n,trailingStatement:null,hasReturnStatement:o,hasSingleExpression:!1};const i=1===r.length,a=i?r[0]:g.NodeFactory.sequenceExpressionNode(r);return{leadingStatements:n,trailingStatement:{statement:o?g.NodeFactory.returnStatementNode(a):g.NodeFactory.expressionStatementNode(a),expression:a},hasReturnStatement:o,hasSingleExpression:i}}collectIteratedStatementsSimplifyData(e){const t=[];let r=!1,o=null;for(let n=e.body.length-1;n>=0;n--){const i=e.body[n];if(m.NodeGuards.isExpressionStatementNode(i))m.NodeGuards.isSequenceExpressionNode(i.expression)?t.unshift(...i.expression.expressions):t.unshift(i.expression),o=n;else{if(!m.NodeGuards.isReturnStatementNode(i)||!i.argument)break;t.unshift(i.argument),r=!0,o=n}}return{startIndex:o,unwrappedExpressions:t,hasReturnStatement:r}}getLeadingStatements(e,t){return null===t?e.body:0===t?[]:e.body.slice(0,t)}getPartialStatement(e){return!e.leadingStatements.length&&e.trailingStatement?e.trailingStatement.statement:g.NodeFactory.blockStatementNode([...e.leadingStatements.length?e.leadingStatements:[],...e.trailingStatement?[e.trailingStatement.statement]:[]])}};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.AbstractStatementSimplifyTransformer=S},2838: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.BlockStatementSimplifyTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4212),f=r(8932),m=r(254),g=r(4134),S=r(9376),y=r(2361);let h=class extends m.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.VariableDeclarationsMergeTransformer]}getVisitor(e){switch(e){case f.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&g.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e);if(!r)return e;const o=this.getPartialStatement(r),n=g.NodeGuards.isBlockStatementNode(o)?o:S.NodeFactory.blockStatementNode([o]);return y.NodeUtils.parentizeNode(n,t)}};h=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])],h),t.BlockStatementSimplifyTransformer=h},1226: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.prototype.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.ExpressionStatementsMergeTransformer=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(4482),g=r(1403),S=r(8932),y=r(9173),h=r(9376),N=r(4134),_=r(8134),b=r(2361);let O=class extends y.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&N.NodeGuards.isExpressionStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!N.NodeGuards.isNodeWithStatements(t))return e;const r=_.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&N.NodeGuards.isExpressionStatementNode(r)?(N.NodeGuards.isSequenceExpressionNode(r.expression)?(r.expression.expressions.push(e.expression),b.NodeUtils.parentizeNode(e.expression,r.expression)):(r.expression=h.NodeFactory.sequenceExpressionNode([r.expression,e.expression]),b.NodeUtils.parentizeAst(r.expression),b.NodeUtils.parentizeNode(r.expression,r)),f.VisitorOption.Remove):e}};O=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(1,u.inject(p.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])],O),t.ExpressionStatementsMergeTransformer=O},8821: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(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(254),m=r(4134),g=r(9376),S=r(2361);let y=class extends f.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&m.NodeGuards.isIfStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e.consequent);if(!r)return e;let o;if(e.alternate){const t=this.getStatementSimplifyData(e.alternate);if(!t)return e;o=this.getConsequentAndAlternateNode(e,r,t)}else o=this.getConsequentNode(e,r);return S.NodeUtils.parentizeNode(o,t)}getConsequentNode(e,t){return t.leadingStatements.length||!t.trailingStatement?g.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t)):t.hasReturnStatement?g.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement):g.NodeFactory.expressionStatementNode(g.NodeFactory.logicalExpressionNode("&&",e.test,t.trailingStatement.expression))}getConsequentAndAlternateNode(e,t,r){return t.leadingStatements.length||r.leadingStatements.length||!t.trailingStatement||!r.trailingStatement?g.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t),this.getPartialStatement(r)):t.hasReturnStatement&&r.hasReturnStatement?g.NodeFactory.returnStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression)):t.hasReturnStatement||r.hasReturnStatement?g.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement,r.trailingStatement.statement):g.NodeFactory.expressionStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression))}getPartialStatement(e){const t=super.getPartialStatement(e);return m.NodeGuards.isBlockStatementNode(t)?1!==t.body.length||this.isProhibitedSingleStatementForIfStatementBranch(t.body[0])?t:t.body[0]:t}isProhibitedSingleStatementForIfStatementBranch(e){return m.NodeGuards.isFunctionDeclarationNode(e)||m.NodeGuards.isIfStatementNode(e)||m.NodeGuards.isVariableDeclarationNode(e)&&"var"!==e.kind}};y=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])],y),t.IfStatementSimplifyTransformer=y},3115: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.prototype.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(2991),p=r(5350),f=c(r(4523)),m=r(4482),g=r(1403),S=r(8932),y=r(9173),h=r(4134),N=r(8134);let _=class extends y.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Simplifying:return{leave:(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),f.VisitorOption.Remove):e}};_=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(1,u.inject(p.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])],_),t.VariableDeclarationsMergeTransformer=_},4123: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)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperTransformer=void 0;const f=r(2991),m=r(5350),g=r(7070),S=r(4482),y=r(1403),h=r(870),N=r(8688),_=r(5683),b=r(3186),O=r(8932),I=r(294),E=r(9614),v=r(9173),C=r(7678),T=r(4134);let R=class extends v.AbstractNodeTransformer{constructor(e,t,r,o,n,i,a){super(e,t),this.visitedLexicalScopeNodesStackStorage=r,this.stringArrayStorage=o,this.stringArrayScopeCallsWrapperNamesDataStorage=n,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=i,this.stringArrayTransformerCustomNodeFactory=a}getVisitor(e){if(!this.options.stringArrayWrappersCount)return null;switch(e){case O.NodeTransformationStage.StringArray:return{enter:(e,t)=>{t&&T.NodeGuards.isNodeWithLexicalScopeStatements(e,t)&&this.onLexicalScopeNodeEnter(e)},leave:(e,t)=>{if(t&&T.NodeGuards.isNodeWithLexicalScopeStatements(e,t))return this.onLexicalScopeNodeLeave(),this.transformNode(e)}};default:return null}}transformNode(e){var t,r;const o=null!==(t=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==t?t:null,n=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(!o||!n)return e;const{callsWrappersParameterIndexesData:i}=n,a=Object.values(o);for(const t of a){if(!t)continue;const{names:r}=t;for(let o=r.length-1;o>=0;o--){const a=r[o],{name:s,index:c,parameterIndexesData:l}=this.getUpperStringArrayCallsWrapperData(t,n),d=this.getStringArrayScopeCallsWrapperNode(a,i,s,l,c);C.NodeAppender.prepend(e,d)}}return e}getRootStringArrayCallsWrapperData(e,t){const{encoding:r}=e,{resultShiftedIndex:o}=t;return{name:this.stringArrayStorage.getStorageCallsWrapperName(r),index:o,parameterIndexesData:null}}getUpperStringArrayCallsWrapperData(e,t){var r,o,n,i,a,s;const{encoding:c}=e,{scopeShiftedIndex:l}=t,d=this.getRootStringArrayCallsWrapperData(e,t);if(!this.options.stringArrayWrappersChainedCalls)return d;const u=null!==(r=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==r?r:null;if(!u)return d;const p=null!==(o=this.stringArrayScopeCallsWrapperNamesDataStorage.get(u))&&void 0!==o?o:null,f=null!==(n=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(u))&&void 0!==n?n:null,m=null!==(a=null===(i=null==p?void 0:p[c])||void 0===i?void 0:i.names)&&void 0!==a?a:null;return(null==m?void 0:m.length)?{name:this.randomGenerator.getRandomGenerator().pickone(m),index:l,parameterIndexesData:null!==(s=null==f?void 0:f.callsWrappersParameterIndexesData)&&void 0!==s?s:null}:d}getStringArrayScopeCallsWrapperNode(e,t,r,o,n){switch(this.options.stringArrayWrappersType){case E.StringArrayWrappersType.Function:return this.getStringArrayScopeCallsWrapperFunctionNode(e,t,r,o,n);case E.StringArrayWrappersType.Variable:default:return this.getStringArrayScopeCallsWrapperVariableNode(e,r)}}getStringArrayScopeCallsWrapperVariableNode(e,t){const r=this.stringArrayTransformerCustomNodeFactory(I.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);return r.initialize(e,t),r.getNode()}getStringArrayScopeCallsWrapperFunctionNode(e,t,r,o,n){const i=this.stringArrayTransformerCustomNodeFactory(I.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);return i.initialize(e,t,r,o,n),i.getNode()}onLexicalScopeNodeEnter(e){this.visitedLexicalScopeNodesStackStorage.push(e)}onLexicalScopeNodeLeave(){this.visitedLexicalScopeNodesStackStorage.pop()}};R=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(1,f.inject(m.ServiceIdentifiers.IOptions)),p(2,f.inject(m.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),p(5,f.inject(m.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),p(6,f.inject(m.ServiceIdentifiers.Factory__IStringArrayCustomNode)),u("design:paramtypes",["function"==typeof(o=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==S.IOptions&&S.IOptions)?n:Object,"function"==typeof(i=void 0!==b.IVisitedLexicalScopeNodesStackStorage&&b.IVisitedLexicalScopeNodesStackStorage)?i:Object,"function"==typeof(a=void 0!==_.IStringArrayStorage&&_.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==N.IStringArrayScopeCallsWrapperNamesDataStorage&&N.IStringArrayScopeCallsWrapperNamesDataStorage)?s:Object,"function"==typeof(c=void 0!==h.IStringArrayScopeCallsWrapperLexicalScopeDataStorage&&h.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)?c:Object,"function"==typeof(l=void 0!==g.TStringArrayCustomNodeFactory&&g.TStringArrayCustomNodeFactory)?l:Object])],R),t.StringArrayScopeCallsWrapperTransformer=R},4940:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d,u,p,f,m=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},g=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.StringArrayTransformer=void 0;const y=r(2991),h=r(5350),N=r(9416),_=r(7070),b=r(2086),O=r(4482),I=r(1403),E=r(870),v=r(8688),C=r(5683),T=r(927),R=r(3186),A=r(8932),j=r(294),M=r(9614),F=r(9173),P=r(4134),D=r(8241),G=r(739),x=r(2361);let L=o=class extends F.AbstractNodeTransformer{constructor(e,t,r,o,n,i,a,s,c,l){super(e,t),this.literalNodesCacheStorage=r,this.visitedLexicalScopeNodesStackStorage=o,this.stringArrayStorage=n,this.stringArrayScopeCallsWrapperNamesDataStorage=i,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=a,this.stringArrayStorageAnalyzer=s,this.identifierNamesGenerator=c(t),this.stringArrayTransformerCustomNodeFactory=l}getVisitor(e){switch(e){case A.NodeTransformationStage.StringArray:return{enter:(e,t)=>{if(P.NodeGuards.isProgramNode(e)&&this.prepareNode(e),t&&P.NodeGuards.isLiteralNode(e)&&!G.NodeMetadata.isReplacedLiteral(e))return this.transformNode(e,t)}};default:return null}}prepareNode(e){this.stringArrayStorageAnalyzer.analyze(e),this.options.shuffleStringArray&&this.stringArrayStorage.shuffleStorage(),this.options.rotateStringArray&&this.stringArrayStorage.rotateStorage()}transformNode(e,t){if(!D.NodeLiteralUtils.isStringLiteralNode(e)||D.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=e.value,o=this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(e),n=this.literalNodesCacheStorage.buildKey(r,o);if(this.literalNodesCacheStorage.shouldUseCachedValue(n,o))return this.literalNodesCacheStorage.get(n);const i=o?this.getStringArrayCallNode(o):e;return this.literalNodesCacheStorage.set(n,i),x.NodeUtils.parentizeNode(i,t),i}getStringArrayCallNode(e){const{name:t,index:r,parameterIndexesData:o}=this.getStringArrayCallsWrapperData(e),{decodeKey:n}=e,i=this.stringArrayTransformerCustomNodeFactory(j.StringArrayCustomNode.StringArrayCallNode);i.initialize(t,o,r,this.stringArrayStorage.getIndexShiftAmount(),n);const a=i.getNode()[0];if(!P.NodeGuards.isExpressionStatementNode(a))throw new Error("`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}getStringArrayCallsWrapperData(e){return this.options.stringArrayWrappersCount?this.getUpperStringArrayCallsWrapperData(e):this.getRootStringArrayCallsWrapperData(e)}getRootStringArrayCallsWrapperData(e){const{encoding:t,index:r}=e;return{name:this.stringArrayStorage.getStorageCallsWrapperName(t),parameterIndexesData:null,index:r}}getUpperStringArrayCallsWrapperData(e){var t,r,o,n;const{encoding:i,index:a}=e,s=null!==(t=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==t?t:null,c=null!==(r=this.visitedLexicalScopeNodesStackStorage.getPenultimateElement())&&void 0!==r?r:null;if(!s)throw new Error("Cannot find current lexical scope body node");const l=this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(s,e),d=this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(s,c),u=null!==(n=null===(o=l[i])||void 0===o?void 0:o.names)&&void 0!==n?n:[];return{name:this.randomGenerator.getRandomGenerator().pickone(u),index:d?d.resultShiftedIndex+a:a,parameterIndexesData:d.callsWrappersParameterIndexesData}}getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(e,t){var r,o,n;const{encoding:i}=t,a=null!==(r=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==r?r:{},s=null!==(n=null===(o=a[i])||void 0===o?void 0:o.names)&&void 0!==n?n:[];if(s.length===this.options.stringArrayWrappersCount)return a;const c=P.NodeGuards.isProgramNode(e)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateNext();return a[i]={encoding:i,names:[...s,c]},this.stringArrayScopeCallsWrapperNamesDataStorage.set(e,a),a}getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(e,t){var r,n;const i=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(i)return i;const a=t&&null!==(n=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(t))&&void 0!==n?n:null,s=this.options.stringArrayWrappersType===M.StringArrayWrappersType.Function?this.getStringArrayCallsWrapperParameterIndexesData():null,c=this.options.stringArrayWrappersType===M.StringArrayWrappersType.Function?this.randomGenerator.getRandomInteger(o.minShiftedIndexValue,o.maxShiftedIndexValue):0,l={callsWrappersParameterIndexesData:s,parentLexicalScopeBodyNode:t,resultShiftedIndex:a?a.resultShiftedIndex+c:c,scopeShiftedIndex:c};return this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(e,l),l}getStringArrayCallsWrapperParameterIndexesData(){const e=this.options.stringArrayWrappersParametersMaxCount-1,t=this.randomGenerator.getRandomInteger(0,e);return{valueIndexParameterIndex:t,decodeKeyParameterIndex:this.randomGenerator.getRandomIntegerExcluding(0,e,[t])}}};L.minShiftedIndexValue=-1e3,L.maxShiftedIndexValue=1e3,L=o=m([y.injectable(),S(0,y.inject(h.ServiceIdentifiers.IRandomGenerator)),S(1,y.inject(h.ServiceIdentifiers.IOptions)),S(2,y.inject(h.ServiceIdentifiers.ILiteralNodesCacheStorage)),S(3,y.inject(h.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),S(4,y.inject(h.ServiceIdentifiers.IStringArrayStorage)),S(5,y.inject(h.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),S(6,y.inject(h.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),S(7,y.inject(h.ServiceIdentifiers.IStringArrayStorageAnalyzer)),S(8,y.inject(h.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),S(9,y.inject(h.ServiceIdentifiers.Factory__IStringArrayCustomNode)),g("design:paramtypes",["function"==typeof(n=void 0!==I.IRandomGenerator&&I.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==O.IOptions&&O.IOptions)?i:Object,"function"==typeof(a=void 0!==b.ILiteralNodesCacheStorage&&b.ILiteralNodesCacheStorage)?a:Object,"function"==typeof(s=void 0!==R.IVisitedLexicalScopeNodesStackStorage&&R.IVisitedLexicalScopeNodesStackStorage)?s:Object,"function"==typeof(c=void 0!==C.IStringArrayStorage&&C.IStringArrayStorage)?c:Object,"function"==typeof(l=void 0!==v.IStringArrayScopeCallsWrapperNamesDataStorage&&v.IStringArrayScopeCallsWrapperNamesDataStorage)?l:Object,"function"==typeof(d=void 0!==E.IStringArrayScopeCallsWrapperLexicalScopeDataStorage&&E.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)?d:Object,"function"==typeof(u=void 0!==T.IStringArrayStorageAnalyzer&&T.IStringArrayStorageAnalyzer)?u:Object,"function"==typeof(p=void 0!==N.TIdentifierNamesGeneratorFactory&&N.TIdentifierNamesGeneratorFactory)?p:Object,"function"==typeof(f=void 0!==_.TStringArrayCustomNodeFactory&&_.TStringArrayCustomNodeFactory)?f:Object])],L),t.StringArrayTransformer=L},7678:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeAppender=void 0;const o=r(4134);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},9376: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.prototype.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(9385)),s=r(9945);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 arrowFunctionExpressionNode(e,t,r){return{type:s.NodeType.ArrowFunctionExpression,params:e,expression:t,body:r}}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=[],r=!1){return{type:s.NodeType.CallExpression,callee:e,optional:r,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 exportAllDeclarationNode(e){return{type:s.NodeType.ExportAllDeclaration,source:e,metadata:{ignoredNode:!1}}}static exportNamedDeclarationNode(e,t){return{type:s.NodeType.ExportNamedDeclaration,specifiers:e,source: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,o=!1){return{type:s.NodeType.MemberExpression,computed:r,object:e,optional:o,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 templateElement(e,t){return{type:s.NodeType.TemplateElement,value:e,tail:t,metadata:{ignoredNode:!1}}}static templateLiteral(e,t){return{type:s.NodeType.TemplateLiteral,expressions:e,quasis:t,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},4134:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeGuards=void 0;const o=r(9945);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 isExportAllDeclarationNode(e){return e.type===o.NodeType.ExportAllDeclaration}static isExportNamedDeclarationNode(e){return e.type===o.NodeType.ExportNamedDeclaration}static isExportSpecifierNode(e){return e.type===o.NodeType.ExportSpecifier}static isExpressionStatementNode(e){return e.type===o.NodeType.ExpressionStatement&&!("directive"in e)}static isForOfStatementNode(e){return e.type===o.NodeType.ForOfStatement}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 isSpreadElementNode(e){return e.type===o.NodeType.SpreadElement}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}static isYieldExpressionNode(e){return e.type===o.NodeType.YieldExpression}}t.NodeGuards=n,n.nodesWithLexicalStatements=[o.NodeType.ArrowFunctionExpression,o.NodeType.FunctionDeclaration,o.NodeType.FunctionExpression,o.NodeType.MethodDefinition]},1534:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLexicalScopeUtils=void 0;const o=r(4134);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},8241:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLiteralUtils=void 0;const o=r(4134);t.NodeLiteralUtils=class{static isStringLiteralNode(e){return"string"==typeof e.value}static isProhibitedLiteralNode(e,t){return!(!o.NodeGuards.isPropertyNode(t)||t.computed||t.key!==e)||!!o.NodeGuards.isImportDeclarationNode(t)||!(!o.NodeGuards.isExportAllDeclarationNode(t)&&!o.NodeGuards.isExportNamedDeclarationNode(t))}}},739:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeMetadata=void 0;class r{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 isForceTransformNode(e){return!0===r.get(e,"forceTransformNode")}static isIgnoredNode(e){return!0===r.get(e,"ignoredNode")}static isReplacedLiteral(e){return!0===r.get(e,"replacedLiteral")}}t.NodeMetadata=r},8134:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStatementUtils=void 0;const o=r(4134);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},2361: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.prototype.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(9385)),s=i(r(4523)),c=r(4941),l=r(425),d=r(4134),u=r(739);class p{static addXVerbatimPropertyTo(e){return e["x-verbatim-property"]={content:e.raw,precedence:a.Precedence.Primary},e}static clone(e){return p.parentizeAst(p.cloneRecursive(e))}static convertCodeToStructure(e){const t=l.ASTParserFacade.parse(e,{ecmaVersion:c.ecmaVersion,sourceType:"script"});return s.replace(t,{enter:(e,t)=>(p.parentizeNode(e,t),d.NodeGuards.isLiteralNode(e)&&p.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)?p.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:p.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=>{var o;if("parentNode"===r)return;const n=null!==(o=e[r])&&void 0!==o?o:null;let i;i=null===n||n instanceof RegExp?n:n instanceof Array?n.map(p.cloneRecursive):"object"==typeof n?p.cloneRecursive(n):n,t[r]=i})),t}}t.NodeUtils=p},2551: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(2991),l=r(5350),d=r(1588),u=r(4134);let p=o=class{constructor(e){this.scopeAnalyzer=e}traverseScopeIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeIdentifiersRecursive(o,o,r)}traverseScopeThroughIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeThroughIdentifiersRecursive(o,o,r)}traverseScopeIdentifiersRecursive(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)s.name!==o.argumentsVariableName&&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.traverseScopeIdentifiersRecursive(e,o,r)}}traverseScopeThroughIdentifiersRecursive(e,t,r){const o=t.variableScope,n=u.NodeGuards.isNodeWithBlockLexicalScope(o.block)?o.block:null;if(n){for(const e of t.through)r({reference:e,variableLexicalScopeNode:n});for(const o of t.childScopes)this.traverseScopeThroughIdentifiersRecursive(e,o,r)}}};p.argumentsVariableName="arguments",p.globalScopeNames=["global","module"],p=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])],p),t.ScopeIdentifiersTraverser=p},8516:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d,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},p=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 m=r(2991),g=r(5350),S=r(516),y=r(2185),h=r(4364),N=r(3546),_=r(9651),b=r(68),O=r(3177),I=r(7370),E=r(6532),v=r(6086),C=r(6212),T=r(1137),R=r(9614),A=r(7170),j=r(8887),M=r(2662),F=r(7576),P=r(312),D=r(5558);let G=o=class{constructor(e,t){var r;const n=o.getOptionsByPreset(null!==(r=e.optionsPreset)&&void 0!==r?r:E.OptionsPreset.Default);Object.assign(this,n,e);const i=S.validateSync(this,o.validatorOptions);if(i.length)throw new ReferenceError("Validation failed. errors:\n"+P.ValidationErrorsFormatter.format(i));Object.assign(this,t.normalize(this))}static getOptionsByPreset(e){var t;const r=null!==(t=o.optionPresetsMap.get(e))&&void 0!==t?t:null;if(!r)throw new Error(`Options for preset name \`${e}\` are not found`);return r}};G.optionPresetsMap=new Map([[E.OptionsPreset.Default,A.DEFAULT_PRESET],[E.OptionsPreset.LowObfuscation,j.LOW_OBFUSCATION_PRESET],[E.OptionsPreset.MediumObfuscation,M.MEDIUM_OBFUSCATION_PRESET],[E.OptionsPreset.HighObfuscation,F.HIGH_OBFUSCATION_PRESET]]),G.validatorOptions={validationError:{target:!1}},u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"compact",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"controlFlowFlattening",void 0),u([S.IsNumber(),S.Min(0),S.Max(1),p("design:type",Number)],G.prototype,"controlFlowFlatteningThreshold",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"deadCodeInjection",void 0),u([S.IsNumber(),p("design:type",Number)],G.prototype,"deadCodeInjectionThreshold",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"debugProtection",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"debugProtectionInterval",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"disableConsoleOutput",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),D.IsAllowedForObfuscationTargets([I.ObfuscationTarget.Browser,I.ObfuscationTarget.BrowserNoEval]),p("design:type",Array)],G.prototype,"domainLock",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),p("design:type",Array)],G.prototype,"forceTransformStrings",void 0),u([S.IsIn([O.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,O.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,O.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,O.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator]),p("design:type","function"==typeof(n=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?n:Object)],G.prototype,"identifierNamesGenerator",void 0),u([S.IsString(),p("design:type",String)],G.prototype,"identifiersPrefix",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),S.ValidateIf((e=>e.identifierNamesGenerator===O.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator)),S.ArrayNotEmpty(),p("design:type",Array)],G.prototype,"identifiersDictionary",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"ignoreRequireImports",void 0),u([S.IsString(),p("design:type",String)],G.prototype,"inputFileName",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"log",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"numbersToExpressions",void 0),u([S.IsIn([E.OptionsPreset.Default,E.OptionsPreset.LowObfuscation,E.OptionsPreset.MediumObfuscation,E.OptionsPreset.HighObfuscation]),p("design:type","function"==typeof(i=void 0!==h.TOptionsPreset&&h.TOptionsPreset)?i:Object)],G.prototype,"optionsPreset",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"renameGlobals",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"renameProperties",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),p("design:type",Array)],G.prototype,"reservedNames",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),p("design:type",Array)],G.prototype,"reservedStrings",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"rotateStringArray",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"selfDefending",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"shuffleStringArray",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"simplify",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"sourceMap",void 0),u([S.IsString(),S.ValidateIf((e=>Boolean(e.sourceMapBaseUrl))),S.IsUrl({require_protocol:!0,require_tld:!1,require_valid_protocol:!0}),p("design:type",String)],G.prototype,"sourceMapBaseUrl",void 0),u([S.IsString(),p("design:type",String)],G.prototype,"sourceMapFileName",void 0),u([S.IsIn([v.SourceMapMode.Inline,v.SourceMapMode.Separate]),p("design:type","function"==typeof(a=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?a:Object)],G.prototype,"sourceMapMode",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"splitStrings",void 0),u([S.IsNumber(),S.ValidateIf((e=>Boolean(e.splitStrings))),S.Min(1),p("design:type",Number)],G.prototype,"splitStringsChunkLength",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"stringArray",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsIn([T.StringArrayEncoding.None,T.StringArrayEncoding.Base64,T.StringArrayEncoding.Rc4],{each:!0}),p("design:type",Array)],G.prototype,"stringArrayEncoding",void 0),u([S.IsArray(),S.ArrayNotEmpty(),S.ArrayUnique(),S.IsIn([C.StringArrayIndexesType.HexadecimalNumber,C.StringArrayIndexesType.HexadecimalNumericString],{each:!0}),p("design:type",Array)],G.prototype,"stringArrayIndexesType",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"stringArrayIndexShift",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"stringArrayWrappersChainedCalls",void 0),u([S.IsNumber(),S.Min(0),p("design:type",Number)],G.prototype,"stringArrayWrappersCount",void 0),u([S.IsNumber(),S.Min(2),p("design:type",Number)],G.prototype,"stringArrayWrappersParametersMaxCount",void 0),u([S.IsIn([R.StringArrayWrappersType.Variable,R.StringArrayWrappersType.Function]),p("design:type","function"==typeof(s=void 0!==N.TStringArrayWrappersType&&N.TStringArrayWrappersType)?s:Object)],G.prototype,"stringArrayWrappersType",void 0),u([S.IsNumber(),S.Min(0),S.Max(1),p("design:type",Number)],G.prototype,"stringArrayThreshold",void 0),u([S.IsIn([I.ObfuscationTarget.Browser,I.ObfuscationTarget.BrowserNoEval,I.ObfuscationTarget.Node]),p("design:type","function"==typeof(c=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?c:Object)],G.prototype,"target",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"transformObjectKeys",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"unicodeEscapeSequence",void 0),G=o=u([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.TInputOptions)),f(1,m.inject(g.ServiceIdentifiers.IOptionsNormalizer)),p("design:paramtypes",["function"==typeof(l=void 0!==y.TInputOptions&&y.TInputOptions)?l:Object,"function"==typeof(d=void 0!==b.IOptionsNormalizer&&b.IOptionsNormalizer)?d:Object])],G),t.Options=G},6248: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(2991),a=r(2938),s=r(3978),c=r(7226),l=r(4984),d=r(9062),u=r(1832),p=r(6896),f=r(3616),m=r(4073),g=r(2554),S=r(410),y=r(1589),h=r(3784);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,p.SelfDefendingRule,f.SourceMapBaseUrlRule,m.SourceMapFileNameRule,g.SplitStringsChunkLengthRule,S.StringArrayRule,y.StringArrayEncodingRule,h.StringArrayWrappersChainedCallsRule],N=o=n([i.injectable()],N),t.OptionsNormalizer=N},312:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationErrorsFormatter=void 0;class r{static format(e){return e.reduce(((e,t)=>[...e,r.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=r},2938:(e,t)=>{"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)},3978:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionRule=void 0;const o=r(7170);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)},7226:(e,t)=>{"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)},4984:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockRule=void 0;const o=r(4741);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}},9062:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputFileNameRule=void 0;const o=r(9965);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}},1832:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SeedRule=void 0,t.SeedRule=e=>e.seed?Object.assign(Object.assign({},e),{seed:e.seed}):Object.assign(Object.assign({},e),{seed:(0,999999999,Math.floor(1e9*Math.random()+0))})},6896:(e,t)=>{"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)},3616:(e,t)=>{"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:""})}},4073:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapFileNameRule=void 0;const o=r(9965);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}},2554:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringsChunkLengthRule=void 0,t.SplitStringsChunkLengthRule=e=>0===e.splitStringsChunkLength?Object.assign(Object.assign({},e),{splitStrings:!1,splitStringsChunkLength:0}):Object.assign(Object.assign({},e),{splitStringsChunkLength:Math.floor(e.splitStringsChunkLength)})},1589:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncodingRule=void 0;const o=r(1137);t.StringArrayEncodingRule=e=>(e.stringArrayEncoding.length||(e=Object.assign(Object.assign({},e),{stringArrayEncoding:[o.StringArrayEncoding.None]})),e)},410:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRule=void 0;const o=r(1137);t.StringArrayRule=e=>(e.stringArray||(e=Object.assign(Object.assign({},e),{rotateStringArray:!1,shuffleStringArray:!1,stringArray:!1,stringArrayEncoding:[o.StringArrayEncoding.None],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayThreshold:0})),e)},3784:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersChainedCallsRule=void 0,t.StringArrayWrappersChainedCallsRule=e=>(0===e.stringArrayWrappersCount&&(e=Object.assign(Object.assign({},e),{stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0})),e)},7170:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PRESET=void 0;const o=r(3177),n=r(7370),i=r(6532),a=r(6086),s=r(6212),c=r(1137),l=r(9614);t.DEFAULT_PRESET=Object.freeze({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],forceTransformStrings:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,optionsPreset:i.OptionsPreset.Default,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!0,seed:0,selfDefending:!1,shuffleStringArray:!0,simplify:!0,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:a.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:10,stringArray:!0,stringArrayEncoding:[c.StringArrayEncoding.None],stringArrayIndexesType:[s.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!0,stringArrayWrappersChainedCalls:!0,stringArrayWrappersCount:1,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:l.StringArrayWrappersType.Variable,stringArrayThreshold:.75,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},7576:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HIGH_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(1137),i=r(2662);t.HIGH_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},i.MEDIUM_OBFUSCATION_PRESET),{controlFlowFlatteningThreshold:1,deadCodeInjectionThreshold:1,debugProtection:!0,debugProtectionInterval:!0,optionsPreset:o.OptionsPreset.HighObfuscation,splitStringsChunkLength:5,stringArrayEncoding:[n.StringArrayEncoding.Rc4],stringArrayWrappersCount:5,stringArrayWrappersParametersMaxCount:5,stringArrayThreshold:1}))},8887:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LOW_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(7170);t.LOW_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},n.DEFAULT_PRESET),{disableConsoleOutput:!0,optionsPreset:o.OptionsPreset.LowObfuscation,rotateStringArray:!0,selfDefending:!0,shuffleStringArray:!0,simplify:!0}))},2662:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MEDIUM_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(1137),i=r(9614),a=r(8887);t.MEDIUM_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},a.LOW_OBFUSCATION_PRESET),{controlFlowFlattening:!0,deadCodeInjection:!0,numbersToExpressions:!0,optionsPreset:o.OptionsPreset.MediumObfuscation,splitStrings:!0,splitStringsChunkLength:10,stringArrayEncoding:[n.StringArrayEncoding.Base64],stringArrayWrappersCount:2,stringArrayWrappersParametersMaxCount:4,stringArrayWrappersType:i.StringArrayWrappersType.Function,transformObjectKeys:!0}))},3685:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NO_ADDITIONAL_NODES_PRESET=void 0;const o=r(3177),n=r(7370),i=r(6086),a=r(1137),s=r(9614),c=r(6212);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:[],forceTransformStrings:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!1,seed:0,selfDefending:!1,shuffleStringArray:!1,simplify:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:0,stringArray:!1,stringArrayEncoding:[a.StringArrayEncoding.None],stringArrayIndexesType:[c.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:s.StringArrayWrappersType.Variable,stringArrayThreshold:0,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},5558: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(516),i=o(r(3142)),a=r(9965),s=r(7170);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+" ")}})}}},8072: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(2991),l=r(5350),d=r(5591),u=r(5233),p=r(6086),f=r(4482);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 p.SourceMapMode.Inline:t+="data:application/json;base64,"+this.cryptUtils.btoa(this.sourceMap);break;case p.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!==f.IOptions&&f.IOptions)?n:Object])],m),t.ObfuscatedCode=m},8589:(e,t)=>{"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}}},3901: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.ArrayStorage=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(5233);let f=class{constructor(e,t){this.storageLength=0,this.randomGenerator=e,this.options=t}initialize(){this.storage=[],this.storageId=this.randomGenerator.getRandomString(6)}delete(e){var t;const r=null!==(t=this.storage.splice(e,1)[0])&&void 0!==t?t:void 0;return r&&this.storageLength--,r}get(e){return this.storage[e]}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in array storage with key \`${e}\``);return t}getKeyOf(e){const t=this.storage.indexOf(e);return t>=0?t:null}getLength(){return this.storageLength}getStorage(){return this.storage}getStorageId(){return this.storageId}mergeWith(e,t=!1){this.storage=[...this.storage,...e.getStorage()],t&&(this.storageId=e.getStorageId())}set(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}};i([p.initializable(),a("design:type",Array)],f.prototype,"storage",void 0),i([p.initializable(),a("design:type",String)],f.prototype,"storageId",void 0),i([c.postConstruct(),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],f.prototype,"initialize",null),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.ArrayStorage=f},2015: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(2991),d=r(5350),u=r(4482),p=r(1403),f=r(5233);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([f.initializable(),s("design:type",String)],m.prototype,"storageId",void 0),a([f.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!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],m),t.MapStorage=m},1951: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(2991),u=r(5350),p=r(964),f=r(4482),m=r(1403),g=r(1806),S=r(2015);let y=o=class extends S.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)}))}};y.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)],y.prototype,"initialize",null),y=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!==p.TCustomCodeHelperGroupFactory&&p.TCustomCodeHelperGroupFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],y),t.CustomCodeHelperGroupStorage=y},646: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(2991),l=r(5350),d=r(4482),u=r(1403),p=r(2015);let f=class extends p.MapStorage{constructor(e,t){super(e,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.ControlFlowStorage=f},3464: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.LiteralNodesCacheStorage=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(1137),f=r(2015);let m=class extends f.MapStorage{constructor(e,t){super(e,t)}buildKey(e,t){return`${e}-${Boolean(t)}`}shouldUseCachedValue(e,t){return!this.options.stringArrayWrappersCount&&(null==t?void 0:t.encoding)!==p.StringArrayEncoding.Rc4&&this.storage.has(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.LiteralNodesCacheStorage=m},1453: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.StringArrayScopeCallsWrapperLexicalScopeDataStorage=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(2015);let f=class extends p.MapStorage{constructor(e,t){super(e,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.StringArrayScopeCallsWrapperLexicalScopeDataStorage=f},995: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.StringArrayScopeCallsWrapperNamesDataStorage=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(2015);let f=class extends p.MapStorage{constructor(e,t){super(e,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.StringArrayScopeCallsWrapperNamesDataStorage=f},1860: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.StringArrayStorage=void 0;const p=r(2991),f=r(5350),m=r(9416),g=r(5768),S=r(9825),y=r(4482),h=r(1403),N=r(1137),_=r(2015);let b=o=class extends _.MapStorage{constructor(e,t,r,n,i){super(r,n),this.rc4EncodedValuesSourcesCache=new Map,this.indexShiftAmount=0,this.rotationAmount=0,this.stringArrayStorageCallsWrapperNamesMap=new Map,this.identifierNamesGenerator=e(n),this.arrayUtils=t,this.cryptUtilsSwappedAlphabet=i,this.rc4Keys=this.randomGenerator.getRandomGenerator().n((()=>this.randomGenerator.getRandomGenerator().string({length:o.rc4KeyLength})),o.rc4KeysCount)}initialize(){super.initialize(),this.indexShiftAmount=this.options.stringArrayIndexShift?this.randomGenerator.getRandomInteger(o.minimumIndexShiftAmount,o.maximumIndexShiftAmount):0,this.rotationAmount=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(o.minimumRotationAmount,o.maximumRotationAmount):0}get(e){return this.getOrSetIfDoesNotExist(e)}getIndexShiftAmount(){return this.indexShiftAmount}getRotationAmount(){return this.rotationAmount}getStorageName(){return this.getStorageId()}getStorageId(){return this.stringArrayStorageName||(this.stringArrayStorageName=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength)),this.stringArrayStorageName}getStorageCallsWrapperName(e){var t;const r=null!==(t=this.stringArrayStorageCallsWrapperNamesMap.get(e))&&void 0!==t?t:null;if(r)return r;const n=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength);return this.stringArrayStorageCallsWrapperNamesMap.set(e,n),n}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)))}getOrSetIfDoesNotExist(e){const{encodedValue:t,encoding:r,decodeKey:o}=this.getEncodedValue(e),n=this.storage.get(t);if(n)return n;const i={encodedValue:t,encoding:r,decodeKey:o,value:e,index:this.getLength()};return this.storage.set(t,i),i}getEncodedValue(e){var t;const r=this.options.stringArrayEncoding.length?this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayEncoding):null;if(!r)throw new Error("`stringArrayEncoding` option array is empty");switch(r){case N.StringArrayEncoding.Rc4:{const o=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),n=this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.rc4(e,o)),i=null!==(t=this.rc4EncodedValuesSourcesCache.get(n))&&void 0!==t?t:[];let a=i.length;return(!a||!i.includes(e))&&(i.push(e),a++),this.rc4EncodedValuesSourcesCache.set(n,i),a>1?this.getEncodedValue(e):{encodedValue:n,encoding:r,decodeKey:o}}case N.StringArrayEncoding.Base64:{const t=null;return{encodedValue:this.cryptUtilsSwappedAlphabet.btoa(e),encoding:r,decodeKey:t}}default:return{encodedValue:e,encoding:r,decodeKey:null}}}};b.minimumRotationAmount=100,b.maximumRotationAmount=500,b.minimumIndexShiftAmount=100,b.maximumIndexShiftAmount=500,b.rc4KeyLength=4,b.rc4KeysCount=50,b.stringArrayNameLength=4,l([p.postConstruct(),d("design:type",Function),d("design:paramtypes",[]),d("design:returntype",void 0)],b.prototype,"initialize",null),b=o=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.IArrayUtils)),u(2,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(3,p.inject(f.ServiceIdentifiers.IOptions)),u(4,p.inject(f.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.IArrayUtils&&g.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==y.IOptions&&y.IOptions)?s:Object,"function"==typeof(c=void 0!==S.ICryptUtilsSwappedAlphabet&&S.ICryptUtilsSwappedAlphabet)?c:Object])],b),t.StringArrayStorage=b},1891: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.VisitedLexicalScopeNodesStackStorage=void 0;const l=r(2991),d=r(5350),u=r(5768),p=r(4482),f=r(1403),m=r(3901);let g=class extends m.ArrayStorage{constructor(e,t,r){super(e,t),this.arrayUtils=r}getLastElement(){return this.arrayUtils.getLastElement(this.getStorage())}getPenultimateElement(){var e;const t=this.getLength();return null!==(e=this.get(t-2))&&void 0!==e?e:void 0}push(e){const t=this.getLength();this.set(t,e)}pop(){const e=this.getLength();return this.delete(e-1)}};g=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),c(2,l.inject(d.ServiceIdentifiers.IArrayUtils)),s("design:paramtypes",["function"==typeof(o=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object,"function"==typeof(i=void 0!==u.IArrayUtils&&u.IArrayUtils)?i:Object])],g),t.VisitedLexicalScopeNodesStackStorage=g},8904:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5127:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8820:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},964:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8749:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7183:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1878:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7070:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7219:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9416:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9628:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2147:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3312:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},805:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2937:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2596:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5568:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2185:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4364:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3546:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},138:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6622:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9651:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7207: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(2991),c=r(5350),l=r(2569);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},3087: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(2991),c=r(5350),l=r(1403);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}getLastElement(e){var t;return null!==(t=e[e.length-1])&&void 0!==t?t:void 0}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},5579: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(2991),c=r(5350),l=r(1403),d=r(6934),u=r(3697),p=r(4741);let f=class{constructor(e){this.base64Alphabet=d.base64alphabet,this.randomGenerator=e}btoa(e){const t=this.base64Alphabet;let r="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,((e,t)=>String.fromCharCode(parseInt(`${p.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:u.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},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.CryptUtilsSwappedAlphabet=void 0;const s=r(2991),c=r(5350),l=r(1403),d=r(4497),u=r(5579);let p=class extends u.CryptUtils{constructor(e){super(e),this.base64Alphabet=d.base64alphabetSwapped}};p=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object])],p),t.CryptUtilsSwappedAlphabet=p},1622: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.EscapeSequenceEncoder=void 0;const i=r(2991);let a=o=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 n=new RegExp("[\\s\\S]","g");let i,a;const s=e.replace(n,(e=>t||o.forceEscapeCharactersRegExp.test(e)?(o.ASCIICharactersRegExp.test(e)?(i="\\x",a="00"):(i="\\u",a="0000"),`${i}${(a+e.charCodeAt(0).toString(16)).slice(-a.length)}`):e));return this.stringsCache.set(r,s),this.stringsCache.set(`${s}-${String(t)}`,s),s}};a.ASCIICharactersRegExp=/[\x00-\x7F]/,a.forceEscapeCharactersRegExp=/[\x00-\x1F\x7F-\x9F'"\\\s]/,a=o=n([i.injectable()],a),t.EscapeSequenceEncoder=a},7248: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;const n=r(2991);let i=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)}};i=o([n.injectable()],i),t.LevelledTopologicalSorter=i},6543:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberUtils=void 0;const o=r(4741);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}static isPositive(e){if(isNaN(e))throw new Error("Given value is NaN");return e>0||!(e<0)&&1/e===Number.POSITIVE_INFINITY}static isUnsafeNumber(e){if(isNaN(e))throw new Error("Given value is NaN");return eNumber.MAX_SAFE_INTEGER}static getFactors(e){if(0===e)throw new Error("Invalid number. Allowed only non-zero number");if(1===(e=Math.abs(e)))return[-e,e];const t=[],r=Math.sqrt(e),o=e%2==0?1:2;for(let n=1;n<=r;n+=o){if(e%n!=0)continue;t.push(-n,n);const r=e/n;r!==n&&t.push(-r,r)}return t.sort(((e,t)=>e-t))}}},3697: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)}},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(2991),p=r(5350),f=d(r(204)),m=r(3434),g=r(4482),S=r(5164),y=r(5233),h=r(6366),N=r(2691);let _=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})}getRandomIntegerExcluding(e,t,r){const o=[];for(let n=e;n<=t;n++)r.includes(n)||o.push(n);return this.randomGenerator.pickone(o)}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}|${f.default(this.sourceCode.getSourceCode())}`}};_.randomGeneratorPool=`${h.alphabetString}${N.alphabetStringUppercase}`,s([y.initializable(),c("design:type","function"==typeof(n=void 0!==m.Chance&&m.Chance.Chance)?n:Object)],_.prototype,"randomGenerator",void 0),s([u.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],_.prototype,"initialize",null),_=o=s([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.ISourceCode)),l(1,u.inject(p.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(i=void 0!==S.ISourceCode&&S.ISourceCode)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],_),t.RandomGenerator=_},2161: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.StringUtils=void 0;const n=o(r(5667));t.StringUtils=class{static escapeJsString(e){return n.default(e)}}},4741:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=void 0;class r{static buildVersionMessage(e,t){return e&&t?`${e}_${new Date(parseInt(t,10)).toISOString()}`:"unknown"}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||r.baseMultipleSourcesIdentifiersPrefix}${t}`}static makeEnum(e){return Object.freeze(Object.assign({},e))}}t.Utils=r,r.baseMultipleSourcesIdentifiersPrefix="a",r.hexadecimalPrefix="0x"},5285:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=5285,e.exports=t},6856:e=>{"use strict";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"]')},9385:e=>{"use strict";e.exports=require("@javascript-obfuscator/escodegen")},6054:e=>{"use strict";e.exports=require("acorn")},2242:e=>{"use strict";e.exports=require("chalk")},3434:e=>{"use strict";e.exports=require("chance")},516:e=>{"use strict";e.exports=require("class-validator")},647:e=>{"use strict";e.exports=require("commander")},8:e=>{"use strict";e.exports=require("eslint-scope")},4523:e=>{"use strict";e.exports=require("estraverse")},3142:e=>{"use strict";e.exports=require("fast-deep-equal")},5747:e=>{"use strict";e.exports=require("fs")},2991:e=>{"use strict";e.exports=require("inversify")},5667:e=>{"use strict";e.exports=require("js-string-escape")},204:e=>{"use strict";e.exports=require("md5")},3841:e=>{"use strict";e.exports=require("mkdirp")},768:e=>{"use strict";e.exports=require("multimatch")},5622:e=>{"use strict";e.exports=require("path")},9906:e=>{"use strict";e.exports=require("reflect-metadata")},8655:e=>{"use strict";e.exports=require("string-template")},6094:e=>{"use strict";e.exports=require("stringz")}},t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return e[o].call(n.exports,n,n.exports,r),n.exports}return r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r(7568)})(); +/*! +Copyright (C) 2016-2020 Timofey Kachalov + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +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 = +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./index.cli.ts": +/*!**********************!*\ + !*** ./index.cli.ts ***! + \**********************/ +/***/ ((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 ***! + \********************************/ +/***/ (function(__unused_webpack_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.prototype.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.slice(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 ***! + \*************************************/ +/***/ (function(__unused_webpack_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.prototype.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__(/*! @javascript-obfuscator/escodegen */ "@javascript-obfuscator/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("2.10.0", 1609027065663)); + 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.RenameIdentifiers); + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.StringArray); + if (this.options.simplify) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Simplifying); + } + 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.BooleanLiteralTransformer, + NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer, + NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer, + NodeTransformer_1.NodeTransformer.CommentsTransformer, + NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer, + NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer, + NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer, + NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer, + NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer, + NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer, + NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer, + NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer, + NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, + NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer, + NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, + NodeTransformer_1.NodeTransformer.MetadataTransformer, + NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer, + NodeTransformer_1.NodeTransformer.NumberLiteralTransformer, + NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer, + NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer, + NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, + NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer, + NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer, + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer, + NodeTransformer_1.NodeTransformer.SplitStringTransformer, + NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer, + NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer, + NodeTransformer_1.NodeTransformer.StringArrayTransformer, + 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 ***! + \**********************************************/ +/***/ ((__unused_webpack_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 ***! + \*******************************************/ +/***/ ((__unused_webpack_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 Options_1 = __webpack_require__(/*! ./options/Options */ "./src/options/Options.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) }); + }, {}); + } + static getOptionsByPreset(optionsPreset) { + return Options_1.Options.getOptionsByPreset(optionsPreset); + } +} +exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade; +JavaScriptObfuscatorFacade.version = (_a = "2.10.0") !== null && _a !== void 0 ? _a : 'unknown'; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts": +/*!******************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts ***! + \******************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 ***! + \**************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*************************************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 ***! + \************************************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 ***! + \**********************************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_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 NumberNumericalExpressionAnalyzer_1, _a; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NumberNumericalExpressionAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = class NumberNumericalExpressionAnalyzer { + constructor(randomGenerator) { + this.numberFactorsMap = new Map(); + this.randomGenerator = randomGenerator; + } + analyze(number) { + if (isNaN(number)) { + throw new Error('Given value is NaN'); + } + if (NumberUtils_1.NumberUtils.isUnsafeNumber(number)) { + return [number]; + } + const additionParts = this.generateAdditionParts(number); + return additionParts.map((addition) => this.mixWithMultiplyParts(addition)); + } + generateAdditionParts(number) { + const additionParts = []; + const upperNumberLimit = Math.min(Math.abs(number * 2), Number.MAX_SAFE_INTEGER); + const from = Math.min(-10000, -upperNumberLimit); + const to = Math.max(10000, upperNumberLimit); + let temporarySum = 0; + for (let i = 0; i < NumberNumericalExpressionAnalyzer_1.additionalParts; i++) { + if (i < NumberNumericalExpressionAnalyzer_1.additionalParts - 1) { + let addition = this.randomGenerator.getRandomInteger(from, to); + const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(temporarySum + addition); + if (isUnsafeCombination) { + addition = -addition; + } + additionParts.push(addition); + temporarySum += addition; + } + else { + const combination = number - temporarySum; + const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(combination); + if (isUnsafeCombination) { + additionParts.push(0 - temporarySum); + additionParts.push(number); + } + else { + additionParts.push(combination); + } + } + } + return additionParts; + } + mixWithMultiplyParts(number) { + var _a; + const shouldMixWithMultiplyParts = this.randomGenerator.getMathRandom() > 0.5; + if (!shouldMixWithMultiplyParts || number === 0) { + return number; + } + let factors = (_a = this.numberFactorsMap.get(number)) !== null && _a !== void 0 ? _a : null; + if (!factors) { + factors = NumberUtils_1.NumberUtils.getFactors(number); + this.numberFactorsMap.set(number, factors); + } + if (!factors.length) { + return number; + } + const factor = factors[this.randomGenerator.getRandomInteger(0, factors.length - 1)]; + return [factor, number / factor]; + } +}; +NumberNumericalExpressionAnalyzer.additionalParts = 3; +NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = __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]) +], NumberNumericalExpressionAnalyzer); +exports.NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer; + + +/***/ }), + +/***/ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts": +/*!**************************************************************************************************!*\ + !*** ./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts ***! + \**************************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 ***! + \*******************************************************/ +/***/ (function(__unused_webpack_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.prototype.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, parentNode) => { + var _a, _b, _c, _d; + if (!node.range) { + node.range = [ + (_b = (_a = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : ScopeAnalyzer_1.emptyRangeValue, + (_d = (_c = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : 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 ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.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"); +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 (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) { + return; + } + if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return; + } + if (!this.shouldAddValueToStringArray(literalNode)) { + return; + } + this.stringArrayStorageData.set(literalNode, this.stringArrayStorage.getOrThrow(literalNode.value)); + } + shouldAddValueToStringArray(literalNode) { + const isForceTransformNode = NodeMetadata_1.NodeMetadata.isForceTransformNode(literalNode); + if (isForceTransformNode) { + return true; + } + return literalNode.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 ***! + \********************************************/ +/***/ (function(__unused_webpack_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.prototype.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 IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); +const LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts"); +const ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); +const OptionsPreset_1 = __webpack_require__(/*! ../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.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 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"); +const StringArrayIndexesType_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.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("2.10.0", 1608889918301), '-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)', 'Allows to run the obfuscated source code only on specific domains and/or sub-domains (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('--force-transform-strings (comma separated, without whitespaces)', 'Enables force transformation of string literals, which being matched by passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer) + .option('--identifier-names-generator ', 'Sets identifier names generator. ' + + `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(IdentifierNamesGenerator_1.IdentifierNamesGenerator)}. ` + + `Default: ${IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator}`) + .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('--ignore-require-imports ', 'Prevents obfuscation of `require` imports', BooleanSanitizer_1.BooleanSanitizer) + .option('--log ', 'Enables logging of the information to the console', BooleanSanitizer_1.BooleanSanitizer) + .option('--numbers-to-expressions ', 'Enables numbers conversion to expressions', BooleanSanitizer_1.BooleanSanitizer) + .option('--options-preset ', 'Allows to set options preset. ' + + `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(OptionsPreset_1.OptionsPreset)}. ` + + `Default: ${OptionsPreset_1.OptionsPreset.Default}`) + .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('--simplify ', 'Enables additional code obfuscation through simplification', 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: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(SourceMapMode_1.SourceMapMode)}. ` + + `Default: ${SourceMapMode_1.SourceMapMode.Separate}`) + .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 (comma separated, without whitespaces)', 'Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). ' + + `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(StringArrayEncoding_1.StringArrayEncoding)}. ` + + `Default: ${StringArrayEncoding_1.StringArrayEncoding.None}`, ArraySanitizer_1.ArraySanitizer) + .option('--string-array-indexes-type (comma separated, without whitespaces)', 'Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). ' + + `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(StringArrayIndexesType_1.StringArrayIndexesType)}. ` + + `Default: ${StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber}`, ArraySanitizer_1.ArraySanitizer) + .option('--string-array-index-shift ', 'Enables additional index shift for all string array calls', BooleanSanitizer_1.BooleanSanitizer) + .option('--string-array-wrappers-count ', 'Sets the count of wrappers for the string array inside each root or function scope', parseInt) + .option('--string-array-wrappers-chained-calls ', 'Enables the chained calls between string array wrappers', BooleanSanitizer_1.BooleanSanitizer) + .option('--string-array-wrappers-parameters-max-count ', 'Allows to control the maximum number of string array wrappers parameters', parseInt) + .option('--string-array-wrappers-type ', 'Allows to select a type of the wrappers that are appending by the `--string-array-wrappers-count` option. ' + + `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(StringArrayWrappersType_1.StringArrayWrappersType)}. ` + + `Default: ${StringArrayWrappersType_1.StringArrayWrappersType.Variable}`) + .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: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(ObfuscationTarget_1.ObfuscationTarget)}. ` + + `Default: ${ObfuscationTarget_1.ObfuscationTarget.Browser}`) + .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 ***! + \**********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ArraySanitizer = void 0; +const 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()); +}; +exports.ArraySanitizer = ArraySanitizer; + + +/***/ }), + +/***/ "./src/cli/sanitizers/BooleanSanitizer.ts": +/*!************************************************!*\ + !*** ./src/cli/sanitizers/BooleanSanitizer.ts ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BooleanSanitizer = void 0; +const BooleanSanitizer = (value) => { + return value === 'true' || value === '1'; +}; +exports.BooleanSanitizer = BooleanSanitizer; + + +/***/ }), + +/***/ "./src/cli/utils/CLIUtils.ts": +/*!***********************************!*\ + !*** ./src/cli/utils/CLIUtils.ts ***! + \***********************************/ +/***/ (function(__unused_webpack_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.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CLIUtils = void 0; +const path = __importStar(__webpack_require__(/*! path */ "path")); +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +class CLIUtils { + static getUserConfig(configPath) { + let config; + const configFileExtension = path.extname(configPath); + const isValidExtension = CLIUtils.allowedConfigFileExtensions.includes(configFileExtension); + if (!isValidExtension) { + throw new ReferenceError('Given config path must be a valid `.js` or `.json` file path'); + } + try { + config = __webpack_require__("./src/cli/utils sync recursive")(configPath); + } + catch (_a) { + try { + config = require(configPath); + } + catch (_b) { + throw new ReferenceError(`Cannot open config file with path: ${configPath}`); + } + } + return config; + } + static stringifyOptionAvailableValues(optionEnum) { + return Object.values(optionEnum).join(`${StringSeparator_1.StringSeparator.Comma} `); + } +} +exports.CLIUtils = CLIUtils; +CLIUtils.allowedConfigFileExtensions = [ + '.js', + '.json' +]; + + +/***/ }), + +/***/ "./src/cli/utils/ObfuscatedCodeWriter.ts": +/*!***********************************************!*\ + !*** ./src/cli/utils/ObfuscatedCodeWriter.ts ***! + \***********************************************/ +/***/ (function(__unused_webpack_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.prototype.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 = path.normalize(inputPath); + this.options = options; + } + getOutputCodePath(filePath) { + const normalizedFilePath = path.normalize(filePath); + const normalizedRawOutputPath = this.options.output + ? path.normalize(this.options.output) + : null; + if (!normalizedRawOutputPath) { + return normalizedFilePath + .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) { + const parsedNormalizedFilePath = path.parse(normalizedFilePath); + const baseOutputPath = path.join(parsedNormalizedFilePath.dir.replace(this.inputPath, ''), parsedNormalizedFilePath.base); + return path.join(normalizedRawOutputPath, baseOutputPath); + } + 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 (!outputCodePath) { + throw new Error('Output code path is empty'); + } + let normalizedOutputCodePath = path.normalize(outputCodePath); + let parsedOutputCodePath = path.parse(normalizedOutputCodePath); + if (!parsedOutputCodePath.ext && !sourceMapFileName) { + throw new Error('Source map file name should be set when output code path is a directory path'); + } + if (sourceMapFileName) { + const indexOfLastSeparator = normalizedOutputCodePath.lastIndexOf(path.sep); + const sourceMapPath = parsedOutputCodePath.ext && indexOfLastSeparator > 0 + ? normalizedOutputCodePath.slice(0, indexOfLastSeparator) + : normalizedOutputCodePath; + const normalizedSourceMapFilePath = sourceMapFileName.replace(/^[a-zA-Z]:\\*/, ''); + normalizedOutputCodePath = path.join(sourceMapPath, normalizedSourceMapFilePath); + } + if (!/\.js\.map$/.test(normalizedOutputCodePath)) { + parsedOutputCodePath = path.parse(normalizedOutputCodePath); + const outputCodePathWithoutExtension = path.join(parsedOutputCodePath.dir, parsedOutputCodePath.name); + normalizedOutputCodePath = `${outputCodePathWithoutExtension}.js.map`; + } + else if (/\.js$/.test(normalizedOutputCodePath)) { + normalizedOutputCodePath += '.map'; + } + return normalizedOutputCodePath; + } + 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 ***! + \*******************************************/ +/***/ (function(__unused_webpack_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.prototype.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 = path.join(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 ***! + \**********************************************************/ +/***/ (function(__unused_webpack_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 ***! + \********************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*********************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.alphabetString = void 0; +exports.alphabetString = 'abcdefghijklmnopqrstuvwxyz'; + + +/***/ }), + +/***/ "./src/constants/AlphabetStringUppercase.ts": +/*!**************************************************!*\ + !*** ./src/constants/AlphabetStringUppercase.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_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/Base64Alphabet.ts": +/*!*****************************************!*\ + !*** ./src/constants/Base64Alphabet.ts ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.base64alphabet = void 0; +const AlphabetStringUppercase_1 = __webpack_require__(/*! ./AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AlphabetString_1 = __webpack_require__(/*! ./AlphabetString */ "./src/constants/AlphabetString.ts"); +const NumbersString_1 = __webpack_require__(/*! ./NumbersString */ "./src/constants/NumbersString.ts"); +exports.base64alphabet = `${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/=`; + + +/***/ }), + +/***/ "./src/constants/Base64AlphabetSwapped.ts": +/*!************************************************!*\ + !*** ./src/constants/Base64AlphabetSwapped.ts ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.base64alphabetSwapped = void 0; +const AlphabetStringUppercase_1 = __webpack_require__(/*! ./AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AlphabetString_1 = __webpack_require__(/*! ./AlphabetString */ "./src/constants/AlphabetString.ts"); +const NumbersString_1 = __webpack_require__(/*! ./NumbersString */ "./src/constants/NumbersString.ts"); +exports.base64alphabetSwapped = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}${NumbersString_1.numbersString}+/=`; + + +/***/ }), + +/***/ "./src/constants/EcmaVersion.ts": +/*!**************************************!*\ + !*** ./src/constants/EcmaVersion.ts ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ecmaVersion = void 0; +exports.ecmaVersion = 12; + + +/***/ }), + +/***/ "./src/constants/NumbersString.ts": +/*!****************************************!*\ + !*** ./src/constants/NumbersString.ts ***! + \****************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.numbersString = void 0; +exports.numbersString = '0123456789'; + + +/***/ }), + +/***/ "./src/container/InversifyContainerFacade.ts": +/*!***************************************************!*\ + !*** ./src/container/InversifyContainerFacade.ts ***! + \***************************************************/ +/***/ ((__unused_webpack_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 DeadCodeInjectionTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/DeadCodeInjectionTransformersModule */ "./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.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 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 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 RenameIdentifiersTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/RenameIdentifiersTransformersModule */ "./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts"); +const RenamePropertiesTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/RenamePropertiesTransformersModule */ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts"); +const SimplifyingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/SimplifyingTransformersModule */ "./src/container/modules/node-transformers/SimplifyingTransformersModule.ts"); +const StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts"); +const StringArrayTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/StringArrayTransformersModule */ "./src/container/modules/node-transformers/StringArrayTransformersModule.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 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.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(DeadCodeInjectionTransformersModule_1.deadCodeInjectionTransformersModule); + this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule); + this.container.load(GeneratorsModule_1.generatorsModule); + this.container.load(InitializingTransformersModule_1.initializingTransformersModule); + this.container.load(NodeModule_1.nodeModule); + this.container.load(NodeTransformersModule_1.nodeTransformersModule); + this.container.load(OptionsModule_1.optionsModule); + this.container.load(PreparingTransformersModule_1.preparingTransformersModule); + this.container.load(RenameIdentifiersTransformersModule_1.renameIdentifiersTransformersModule); + this.container.load(RenamePropertiesTransformersModule_1.renamePropertiesTransformersModule); + this.container.load(SimplifyingTransformersModule_1.simplifyingTransformersModule); + this.container.load(StoragesModule_1.storagesModule); + this.container.load(StringArrayTransformersModule_1.stringArrayTransformersModule); + this.container.load(UtilsModule_1.utilsModule); + } + unload() { + this.container.unbindAll(); + } +} +exports.InversifyContainerFacade = InversifyContainerFacade; + + +/***/ }), + +/***/ "./src/container/ServiceIdentifiers.ts": +/*!*********************************************!*\ + !*** ./src/container/ServiceIdentifiers.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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__INodeGuard"] = "Factory"; + ServiceIdentifiers["Factory__INodeTransformer"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscatedCode"] = "Factory"; + ServiceIdentifiers["Factory__IObjectExpressionKeysTransformerCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IObjectExpressionExtractor"] = "Factory"; + ServiceIdentifiers["Factory__IStringArrayCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IStringArrayIndexNode"] = "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["ICryptUtilsSwappedAlphabet"] = "ICryptUtilsSwappedAlphabet"; + ServiceIdentifiers["ICustomCodeHelper"] = "ICustomCodeHelper"; + ServiceIdentifiers["ICustomCodeHelperGroup"] = "ICustomCodeHelperGroup"; + ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer"; + ServiceIdentifiers["ICustomCodeHelperFormatter"] = "ICustomCodeHelperFormatter"; + ServiceIdentifiers["ICustomCodeHelperObfuscator"] = "ICustomCodeHelperObfuscator"; + ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder"; + ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator"; + ServiceIdentifiers["IIdentifierReplacer"] = "IIdentifierReplacer"; + ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator"; + ServiceIdentifiers["ILevelledTopologicalSorter"] = "ILevelledTopologicalSorter"; + ServiceIdentifiers["ILiteralNodesCacheStorage"] = "ILiteralNodesCacheStorage"; + ServiceIdentifiers["ILogger"] = "ILogger"; + ServiceIdentifiers["INodeGuard"] = "INodeGuard"; + ServiceIdentifiers["INodeTransformer"] = "INodeTransformer"; + ServiceIdentifiers["INodeTransformerNamesGroupsBuilder"] = "INodeTransformerNamesGroupsBuilder"; + ServiceIdentifiers["INodeTransformersRunner"] = "INodeTransformersRunner"; + ServiceIdentifiers["INumberNumericalExpressionAnalyzer"] = "INumberNumericalExpressionAnalyzer"; + ServiceIdentifiers["IObfuscatedCode"] = "IObfuscatedCode"; + ServiceIdentifiers["IOptions"] = "IOptions"; + ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer"; + ServiceIdentifiers["IPrevailingKindOfVariablesAnalyzer"] = "IPrevailingKindOfVariablesAnalyzer"; + ServiceIdentifiers["IObjectExpressionExtractor"] = "IObjectExpressionExtractor"; + ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator"; + ServiceIdentifiers["IRenamePropertiesReplacer"] = "IRenamePropertiesReplacer"; + ServiceIdentifiers["IScopeIdentifiersTraverser"] = "IScopeIdentifiersTraverser"; + ServiceIdentifiers["ISourceCode"] = "ISourceCode"; + ServiceIdentifiers["IScopeAnalyzer"] = "IScopeAnalyzer"; + ServiceIdentifiers["IStringArrayIndexNode"] = "IStringArrayIndexNode"; + ServiceIdentifiers["IStringArrayScopeCallsWrapperLexicalScopeDataStorage"] = "IStringArrayScopeCallsWrapperLexicalScopeDataStorage"; + ServiceIdentifiers["IStringArrayScopeCallsWrapperNamesDataStorage"] = "IStringArrayScopeCallsWrapperNamesDataStorage"; + ServiceIdentifiers["IStringArrayStorage"] = "IStringArrayStorage"; + ServiceIdentifiers["IStringArrayStorageAnalyzer"] = "IStringArrayStorageAnalyzer"; + ServiceIdentifiers["IVisitedLexicalScopeNodesStackStorage"] = "IVisitedLexicalScopeNodesStackStorage"; + 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 ***! + \************************************************************/ +/***/ ((__unused_webpack_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 NumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer */ "./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.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.INumberNumericalExpressionAnalyzer) + .to(NumberNumericalExpressionAnalyzer_1.NumberNumericalExpressionAnalyzer) + .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 ***! + \***************************************************************************/ +/***/ ((__unused_webpack_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 ***! + \******************************************************************************/ +/***/ ((__unused_webpack_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 StringArrayCallsWrapperBase64CodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts"); +const StringArrayCallsWrapperRc4CodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.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(StringArrayCallsWrapperBase64CodeHelper_1.StringArrayCallsWrapperBase64CodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(StringArrayCallsWrapperRc4CodeHelper_1.StringArrayCallsWrapperRc4CodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4); + 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 ***! + \*****************************************************************/ +/***/ ((__unused_webpack_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 StringArrayCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/StringArrayCustomNode */ "./src/enums/custom-nodes/StringArrayCustomNode.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 ObjectExpressionVariableDeclarationHostNode_1 = __webpack_require__(/*! ../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode */ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts"); +const StringArrayCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayCallNode */ "./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts"); +const StringArrayHexadecimalNumberIndexNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts"); +const StringArrayHexadecimalNumericStringIndexNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts"); +const StringArrayIndexNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode */ "./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts"); +const StringArrayScopeCallsWrapperFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode */ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts"); +const StringArrayScopeCallsWrapperVariableNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode */ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.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.Newable__ICustomNode) + .toConstructor(StringArrayCallNode_1.StringArrayCallNode) + .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(StringArrayScopeCallsWrapperFunctionNode_1.StringArrayScopeCallsWrapperFunctionNode) + .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(StringArrayScopeCallsWrapperVariableNode_1.StringArrayScopeCallsWrapperVariableNode) + .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode) + .to(StringArrayHexadecimalNumberIndexNode_1.StringArrayHexadecimalNumberIndexNode) + .inSingletonScope() + .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode) + .to(StringArrayHexadecimalNumericStringIndexNode_1.StringArrayHexadecimalNumericStringIndexNode) + .inSingletonScope() + .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode); + 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)); + 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)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage, ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)); +}); + + +/***/ }), + +/***/ "./src/container/modules/generators/GeneratorsModule.ts": +/*!**************************************************************!*\ + !*** ./src/container/modules/generators/GeneratorsModule.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_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"); +const MangledShuffledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.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); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator) + .to(MangledShuffledIdentifierNamesGenerator_1.MangledShuffledIdentifierNamesGenerator) + .inSingletonScope() + .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator); + 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.MangledShuffledIdentifierNamesGenerator: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator); + 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 ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_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/control-flow-transformers/control-flow-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/control-flow-transformers/control-flow-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 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(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 ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_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 BasePropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts"); +const BooleanLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/BooleanLiteralTransformer */ "./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts"); +const ExportSpecifierTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ExportSpecifierTransformer */ "./src/node-transformers/converting-transformers/ExportSpecifierTransformer.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 NumberLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/NumberLiteralTransformer */ "./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts"); +const NumberToNumericalExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/NumberToNumericalExpressionTransformer */ "./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts"); +const ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.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 ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts"); +const ObjectPatternPropertiesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectPatternPropertiesTransformer */ "./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.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"); +exports.convertingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(BooleanLiteralTransformer_1.BooleanLiteralTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ExportSpecifierTransformer_1.ExportSpecifierTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer); + 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(NumberLiteralTransformer_1.NumberLiteralTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberLiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(NumberToNumericalExpressionTransformer_1.NumberToNumericalExpressionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer); + 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(ObjectPatternPropertiesTransformer_1.ObjectPatternPropertiesTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer); + 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/DeadCodeInjectionTransformersModule.ts": +/*!****************************************************************************************!*\ + !*** ./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.deadCodeInjectionTransformersModule = 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 DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts"); +exports.deadCodeInjectionTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.finalizingTransformersModule = 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 EscapeSequenceTransformer_1 = __webpack_require__(/*! ../../../node-transformers/finalizing-transformers/EscapeSequenceTransformer */ "./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts"); +exports.finalizingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(EscapeSequenceTransformer_1.EscapeSequenceTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/InitializingTransformersModule.ts": +/*!***********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/InitializingTransformersModule.ts ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_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/NodeTransformersModule.ts": +/*!***************************************************************************!*\ + !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_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/PreparingTransformersModule.ts": +/*!********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***! + \********************************************************************************/ +/***/ ((__unused_webpack_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 ForceTransformStringObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts"); +const IgnoredRequireImportObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.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.INodeTransformer) + .to(VariablePreserveTransformer_1.VariablePreserveTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer); + 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(ForceTransformStringObfuscatingGuard_1.ForceTransformStringObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(IgnoredRequireImportObfuscatingGuard_1.IgnoredRequireImportObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(ReservedStringObfuscatingGuard_1.ReservedStringObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts": +/*!****************************************************************************************!*\ + !*** ./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.renameIdentifiersTransformersModule = 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 IdentifierReplacer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer */ "./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts"); +const LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/LabeledStatementTransformer */ "./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts"); +const ScopeIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer */ "./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts"); +const ScopeThroughIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer */ "./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts"); +exports.renameIdentifiersTransformersModule = 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(ScopeIdentifiersTransformer_1.ScopeIdentifiersTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ScopeThroughIdentifiersTransformer_1.ScopeThroughIdentifiersTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer) + .to(IdentifierReplacer_1.IdentifierReplacer) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts": +/*!***************************************************************************************!*\ + !*** ./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_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-transformers/SimplifyingTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/SimplifyingTransformersModule.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.simplifyingTransformersModule = 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 BlockStatementSimplifyTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts"); +const ExpressionStatementsMergeTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer */ "./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts"); +const IfStatementSimplifyTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/IfStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts"); +const VariableDeclarationsMergeTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer */ "./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts"); +exports.simplifyingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(BlockStatementSimplifyTransformer_1.BlockStatementSimplifyTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ExpressionStatementsMergeTransformer_1.ExpressionStatementsMergeTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer); + 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/StringArrayTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/StringArrayTransformersModule.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.stringArrayTransformersModule = 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 StringArrayRotateFunctionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer */ "./src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts"); +const StringArrayScopeCallsWrapperTransformer_1 = __webpack_require__(/*! ../../../node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer */ "./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts"); +const StringArrayTransformer_1 = __webpack_require__(/*! ../../../node-transformers/string-array-transformers/StringArrayTransformer */ "./src/node-transformers/string-array-transformers/StringArrayTransformer.ts"); +exports.stringArrayTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(StringArrayRotateFunctionTransformer_1.StringArrayRotateFunctionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(StringArrayScopeCallsWrapperTransformer_1.StringArrayScopeCallsWrapperTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(StringArrayTransformer_1.StringArrayTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node/NodeModule.ts": +/*!**************************************************!*\ + !*** ./src/container/modules/node/NodeModule.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_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 ***! + \********************************************************/ +/***/ ((__unused_webpack_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 ***! + \**********************************************************/ +/***/ ((__unused_webpack_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 LiteralNodesCacheStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/LiteralNodesCacheStorage */ "./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts"); +const StringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage */ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts"); +const StringArrayScopeCallsWrapperNamesDataStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage */ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts"); +const StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/StringArrayStorage */ "./src/storages/string-array-transformers/StringArrayStorage.ts"); +const VisitedLexicalScopeNodesStackStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage */ "./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts"); +exports.storagesModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage) + .to(CustomCodeHelperGroupStorage_1.CustomCodeHelperGroupStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage) + .to(LiteralNodesCacheStorage_1.LiteralNodesCacheStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage) + .to(StringArrayStorage_1.StringArrayStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) + .to(StringArrayScopeCallsWrapperLexicalScopeDataStorage_1.StringArrayScopeCallsWrapperLexicalScopeDataStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage) + .to(StringArrayScopeCallsWrapperNamesDataStorage_1.StringArrayScopeCallsWrapperNamesDataStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage) + .to(VisitedLexicalScopeNodesStackStorage_1.VisitedLexicalScopeNodesStackStorage) + .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 ***! + \****************************************************/ +/***/ ((__unused_webpack_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 CryptUtilsSwappedAlphabet_1 = __webpack_require__(/*! ../../../utils/CryptUtilsSwappedAlphabet */ "./src/utils/CryptUtilsSwappedAlphabet.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.ICryptUtilsSwappedAlphabet) + .to(CryptUtilsSwappedAlphabet_1.CryptUtilsSwappedAlphabet) + .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 ***! + \*************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \******************************************************************/ +/***/ (function(__unused_webpack_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; + } + 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 ***! + \**************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 ***! + \***************************************************************/ +/***/ (function(__unused_webpack_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, numbersToExpressions: this.options.numbersToExpressions, simplify: this.options.simplify, 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 ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_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 NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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(nodeTransformationStage, callsControllerFunctionName) { + this.nodeTransformationStage = nodeTransformationStage; + this.callsControllerFunctionName = callsControllerFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + if (this.nodeTransformationStage === NodeTransformationStage_1.NodeTransformationStage.Finalizing) { + 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 NodeTransformationStage_1.NodeTransformationStage !== "undefined" && NodeTransformationStage_1.NodeTransformationStage) === "function" ? _a : Object) +], CallsControllerFunctionCodeHelper.prototype, "nodeTransformationStage", 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 ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_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 ConsoleOutputDisableTemplate_1 = __webpack_require__(/*! ./templates/ConsoleOutputDisableTemplate */ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.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(ConsoleOutputDisableTemplate_1.ConsoleOutputDisableTemplate(), { + 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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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 NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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 ConsoleOutputCodeHelperGroup = class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendOnPreparing(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 + ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = consoleOutputDisableLexicalScopeNode + ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + 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(NodeTransformationStage_1.NodeTransformationStage.Preparing, 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/ConsoleOutputDisableTemplate.ts": +/*!******************************************************************************************!*\ + !*** ./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ConsoleOutputDisableTemplate = void 0; +function ConsoleOutputDisableTemplate() { + return ` + const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () { + {globalVariableTemplate} + + const consoleObject = (that.console = that.console || {}); + const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace']; + + for (let index = 0; index < methods.length; index++){ + const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName}); + const methodName = methods[index]; + const originalFunction = consoleObject[methodName] || func; + + func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName}); + func.toString = originalFunction.toString.bind(originalFunction); + + consoleObject[methodName] = func; + } + }); + + {consoleLogDisableFunctionName}(); + `; +} +exports.ConsoleOutputDisableTemplate = ConsoleOutputDisableTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts": +/*!*******************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \***********************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_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 NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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.customCodeHelperFactory = customCodeHelperFactory; + } + appendOnPreparing(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 + ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = debugProtectionFunctionCallScopeNode + ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode) + : this.identifierNamesGenerator.generateNext(); + 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(NodeTransformationStage_1.NodeTransformationStage.Preparing, 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 ***! + \**********************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \******************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \*************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \****************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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 NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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 DomainLockCustomCodeHelperGroup = class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendOnPreparing(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 + ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = 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(NodeTransformationStage_1.NodeTransformationStage.Preparing, 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 ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 domainNormalized = domain[0] === String.fromCharCode(46) + ? domain.slice(1) + : domain; + const position = currentDomain.length - domainNormalized.length; + const lastIndex = currentDomain.indexOf(domainNormalized, 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 ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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 NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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.customCodeHelperFactory = customCodeHelperFactory; + } + appendOnPreparing(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(NodeTransformationStage_1.NodeTransformationStage.Preparing, 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 ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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/StringArrayCallsWrapperBase64CodeHelper.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_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.StringArrayCallsWrapperBase64CodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 StringArrayBase64DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts"); +const StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ./StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts"); +let StringArrayCallsWrapperBase64CodeHelper = class StringArrayCallsWrapperBase64CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper { + getDecodeStringArrayTemplate() { + const atobFunctionName = this.randomGenerator.getRandomString(6); + const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), { + atobFunctionName: atobFunctionName + }); + const selfDefendingCode = this.getSelfDefendingTemplate(); + return this.customCodeHelperFormatter.formatTemplate(StringArrayBase64DecodeTemplate_1.StringArrayBase64DecodeTemplate(this.randomGenerator), { + atobPolyfill, + atobFunctionName, + selfDefendingCode, + stringArrayName: this.stringArrayName, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + } +}; +StringArrayCallsWrapperBase64CodeHelper = __decorate([ + inversify_1.injectable() +], StringArrayCallsWrapperBase64CodeHelper); +exports.StringArrayCallsWrapperBase64CodeHelper = StringArrayCallsWrapperBase64CodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts": +/*!***********************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_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 Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.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 StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.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, indexShiftAmount) { + this.stringArrayName = stringArrayName; + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + this.indexShiftAmount = indexShiftAmount; + } + 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, + indexShiftAmount: this.indexShiftAmount + }), { + reservedNames: preservedNames + }); + } + getDecodeStringArrayTemplate() { + return ''; + } + getSelfDefendingTemplate() { + if (!this.options.selfDefending) { + return ''; + } + return this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), { + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayCallsWrapperCodeHelper.prototype, "indexShiftAmount", void 0); +__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/StringArrayCallsWrapperRc4CodeHelper.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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.StringArrayCallsWrapperRc4CodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 Rc4Template_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/Rc4Template */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.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 StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ./StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts"); +let StringArrayCallsWrapperRc4CodeHelper = class StringArrayCallsWrapperRc4CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper { + getDecodeStringArrayTemplate() { + const atobFunctionName = this.randomGenerator.getRandomString(6); + const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), { + atobFunctionName + }); + const rc4Polyfill = this.customCodeHelperFormatter.formatTemplate(Rc4Template_1.Rc4Template(), { + atobFunctionName + }); + const selfDefendingCode = this.getSelfDefendingTemplate(); + return this.customCodeHelperFormatter.formatTemplate(StringArrayRC4DecodeTemplate_1.StringArrayRC4DecodeTemplate(this.randomGenerator), { + atobPolyfill, + rc4Polyfill, + selfDefendingCode, + stringArrayName: this.stringArrayName, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + } +}; +StringArrayCallsWrapperRc4CodeHelper = __decorate([ + inversify_1.injectable() +], StringArrayCallsWrapperRc4CodeHelper); +exports.StringArrayCallsWrapperRc4CodeHelper = StringArrayCallsWrapperRc4CodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts": +/*!***********************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_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-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/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"); +const StringUtils_1 = __webpack_require__(/*! ../../utils/StringUtils */ "./src/utils/StringUtils.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, + stringArrayStorageItems: this.getEncodedStringArrayStorageItems() + }); + } + getEncodedStringArrayStorageItems() { + return Array + .from(this.stringArrayStorage.getStorage().values()) + .map((stringArrayStorageItemData) => { + const escapedEncodedValue = StringUtils_1.StringUtils.escapeJsString(stringArrayStorageItemData.encodedValue); + return `'${escapedEncodedValue}'`; + }) + .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 ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_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.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 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 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"); +let StringArrayRotateFunctionCodeHelper = class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(stringArrayName, comparisonValue, comparisonExpressionNode) { + this.stringArrayName = stringArrayName; + this.comparisonValue = comparisonValue; + this.comparisonExpressionNode = comparisonExpressionNode; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const comparisonExpressionCode = NodeUtils_1.NodeUtils.convertStructureToCode([this.comparisonExpressionNode]); + return this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), { + comparisonExpressionCode, + comparisonValue: this.comparisonValue, + stringArrayName: this.stringArrayName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayRotateFunctionCodeHelper.prototype, "comparisonValue", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayRotateFunctionCodeHelper.prototype, "comparisonExpressionNode", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayRotateFunctionCodeHelper.prototype, "stringArrayName", 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)), + __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]) +], StringArrayRotateFunctionCodeHelper); +exports.StringArrayRotateFunctionCodeHelper = StringArrayRotateFunctionCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_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 StringArrayCodeHelperGroup_1, _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-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/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 StringArrayEncoding_1 = __webpack_require__(/*! ../../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.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 = StringArrayCodeHelperGroup_1 = class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.customCodeHelperFactory = customCodeHelperFactory; + this.stringArrayStorage = stringArrayStorage; + } + appendOnFinalizing(nodeWithStatements, callsGraphData) { + if (!this.stringArrayStorage.getLength()) { + return; + } + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArray, (customCodeHelper) => { + NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode()); + }); + const stringArrayEncodingsLength = this.options.stringArrayEncoding.length; + for (let i = 0; i < stringArrayEncodingsLength; i++) { + const stringArrayEncoding = this.options.stringArrayEncoding[i]; + const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding); + this.appendCustomNodeIfExist(stringArrayCallsWrapperCodeHelperName, (customCodeHelper) => { + NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), i + 1); + }); + } + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.stringArray) { + return; + } + const stringArrayCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArray); + const stringArrayName = this.stringArrayStorage.getStorageName(); + stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArray, stringArrayCodeHelper); + for (const stringArrayEncoding of this.options.stringArrayEncoding) { + const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding); + const stringArrayCallsWrapperCodeHelper = this.customCodeHelperFactory(stringArrayCallsWrapperCodeHelperName); + const stringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(stringArrayEncoding); + stringArrayCallsWrapperCodeHelper.initialize(stringArrayName, stringArrayCallsWrapperName, this.stringArrayStorage.getIndexShiftAmount()); + this.customCodeHelpers.set(stringArrayCallsWrapperCodeHelperName, stringArrayCallsWrapperCodeHelper); + } + } + getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding) { + var _a; + return (_a = StringArrayCodeHelperGroup_1 + .stringArrayCallsWrapperCodeHelperMap.get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper; + } +}; +StringArrayCodeHelperGroup.stringArrayCallsWrapperCodeHelperMap = new Map([ + [StringArrayEncoding_1.StringArrayEncoding.None, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper], + [StringArrayEncoding_1.StringArrayEncoding.Base64, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64], + [StringArrayEncoding_1.StringArrayEncoding.Rc4, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4] +]); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], StringArrayCodeHelperGroup.prototype, "customCodeHelpers", void 0); +StringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = __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 ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AtobTemplate = void 0; +const Base64AlphabetSwapped_1 = __webpack_require__(/*! ../../../../constants/Base64AlphabetSwapped */ "./src/constants/Base64AlphabetSwapped.ts"); +function AtobTemplate() { + return ` + var {atobFunctionName} = function (input) { + const chars = '${Base64AlphabetSwapped_1.base64alphabetSwapped}'; + + 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 ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 = {atobFunctionName}(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 ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \**********************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 = {atobFunctionName}(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 ignoreCache = {stringArrayName}[-1]; + const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; + + if (ignoreCache || 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 ***! + \**********************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayCallsWrapperTemplate = void 0; +function StringArrayCallsWrapperTemplate() { + return ` + const {stringArrayCallsWrapperName} = function (index, key) { + index = index - {indexShiftAmount}; + + 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 ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ignoreCache = {stringArrayName}[-1]; + const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; + + if (ignoreCache || 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/StringArrayRotateFunctionTemplate.ts": +/*!**************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts ***! + \**************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayRotateFunctionTemplate = void 0; +function StringArrayRotateFunctionTemplate() { + return ` + (function (array, comparisonValue) { + array[-1] = true; + + while (true) { + try { + const expression = {comparisonExpressionCode}; + + if (expression === comparisonValue) { + array[-1] = false; + break; + } else { + array['push'](array['shift']()); + } + } catch (e) { + array['push'](array['shift']()); + } + } + })({stringArrayName}, {comparisonValue}); + `; +} +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 ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayTemplate = void 0; +function StringArrayTemplate() { + return ` + const {stringArrayName} = [{stringArrayStorageItems}]; + `; +} +exports.StringArrayTemplate = StringArrayTemplate; + + +/***/ }), + +/***/ "./src/custom-nodes/AbstractCustomNode.ts": +/*!************************************************!*\ + !*** ./src/custom-nodes/AbstractCustomNode.ts ***! + \************************************************/ +/***/ (function(__unused_webpack_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 ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \***************************************************************************************************/ +/***/ (function(__unused_webpack_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 StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.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(StringSeparator_1.StringSeparator.VerticalLine)), NodeFactory_1.NodeFactory.identifierNode('split')), [ + NodeFactory_1.NodeFactory.literalNode(StringSeparator_1.StringSeparator.VerticalLine) + ])) + ], '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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*******************************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \***************************************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \******************************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \******************************************************************************************************************/ +/***/ (function(__unused_webpack_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/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts": +/*!****************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_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 AbstractStringArrayCallNode_1, _a, _b, _c, _d, _e, _f, _g; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AbstractStringArrayCallNode = 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 TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.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 IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const StringArrayIndexesType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts"); +const StringArrayIndexNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode */ "./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +let AbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = class AbstractStringArrayCallNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + this.stringArrayIndexNodeFactory = stringArrayIndexNodeFactory; + this.stringArrayStorage = stringArrayStorage; + this.arrayUtils = arrayUtils; + } + getStringArrayIndexNode(index) { + var _a; + const isPositive = index >= 0; + const normalizedIndex = Math.abs(index); + const stringArrayCallsIndexType = this.randomGenerator + .getRandomGenerator() + .pickone(this.options.stringArrayIndexesType); + const stringArrayIndexNodeName = (_a = AbstractStringArrayCallNode_1.stringArrayIndexNodesMap.get(stringArrayCallsIndexType)) !== null && _a !== void 0 ? _a : null; + if (!stringArrayIndexNodeName) { + throw new Error('Invalid string array index node name'); + } + const stringArrayCallIndexNode = this.stringArrayIndexNodeFactory(stringArrayIndexNodeName) + .getNode(normalizedIndex); + NodeMetadata_1.NodeMetadata.set(stringArrayCallIndexNode, { replacedLiteral: true }); + const hexadecimalNode = isPositive + ? stringArrayCallIndexNode + : NodeFactory_1.NodeFactory.unaryExpressionNode('-', stringArrayCallIndexNode); + NodeUtils_1.NodeUtils.parentizeAst(hexadecimalNode); + return hexadecimalNode; + } + getRc4KeyLiteralNode(decodeKey) { + const rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(decodeKey); + NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true }); + return rc4KeyLiteralNode; + } +}; +AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount = 2; +AbstractStringArrayCallNode.stringArrayIndexNodesMap = new Map([ + [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode], + [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode] +]); +AbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(6, 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 TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _g : Object]) +], AbstractStringArrayCallNode); +exports.AbstractStringArrayCallNode = AbstractStringArrayCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts": +/*!********************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts ***! + \********************************************************************/ +/***/ (function(__unused_webpack_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, _g, _h; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayCallNode = 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 TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.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 IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractStringArrayCallNode_1 = __webpack_require__(/*! ./AbstractStringArrayCallNode */ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayCallNode = class StringArrayCallNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode { + constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) { + super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options); + } + initialize(stringArrayCallsWrapperName, stringArrayCallsWrapperParameterIndexesData, index, indexShiftAmount, decodeKey) { + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + this.stringArrayCallsWrapperParameterIndexesData = stringArrayCallsWrapperParameterIndexesData; + this.index = index; + this.indexShiftAmount = indexShiftAmount; + this.decodeKey = decodeKey; + } + getNodeStructure() { + var _a, _b; + const resultIndex = this.indexShiftAmount + this.index; + const indexNode = this.getStringArrayIndexNode(resultIndex); + const rc4KeyLiteralNode = this.decodeKey + ? this.getRc4KeyLiteralNode(this.decodeKey) + : null; + const callExpressionArgs = this.arrayUtils.fillWithRange(!this.stringArrayCallsWrapperParameterIndexesData + ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount + : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeStringArrayIndexNode(resultIndex)); + callExpressionArgs.splice((_b = (_a = this.stringArrayCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, indexNode); + if (this.stringArrayCallsWrapperParameterIndexesData) { + callExpressionArgs.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex, 1, rc4KeyLiteralNode !== null && rc4KeyLiteralNode !== void 0 ? rc4KeyLiteralNode : this.getFakeStringArrayIndexNode(resultIndex)); + } + else if (rc4KeyLiteralNode) { + callExpressionArgs.splice(1, 1, rc4KeyLiteralNode); + } + else { + callExpressionArgs.splice(1, 1); + } + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName), callExpressionArgs)); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + getFakeStringArrayIndexNode(actualIndex) { + return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(actualIndex)); + } + getFakeStringArrayIndex(actualIndex) { + const stringArrayStorageLength = this.stringArrayStorage.getLength(); + const fakeIndexOffset = stringArrayStorageLength / 2; + const minimumIndex = actualIndex - fakeIndexOffset; + const maximumIndex = actualIndex + fakeIndexOffset; + return this.randomGenerator.getRandomInteger(minimumIndex, maximumIndex); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayCallNode.prototype, "decodeKey", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayCallNode.prototype, "index", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayCallNode.prototype, "indexShiftAmount", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayCallNode.prototype, "stringArrayCallsWrapperName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayCallNode.prototype, "stringArrayCallsWrapperParameterIndexesData", void 0); +StringArrayCallNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(6, 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 TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _e : Object, typeof (_f = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _f : Object, typeof (_g = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _g : Object, typeof (_h = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _h : Object]) +], StringArrayCallNode); +exports.StringArrayCallNode = StringArrayCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_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, _g, _h, _j; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayScopeCallsWrapperFunctionNode = 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 TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.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 IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractStringArrayCallNode_1 = __webpack_require__(/*! ./AbstractStringArrayCallNode */ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayScopeCallsWrapperFunctionNode = class StringArrayScopeCallsWrapperFunctionNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode { + constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) { + super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options); + } + initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexesData, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexesData, shiftedIndex) { + this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName; + this.stringArrayScopeCallsWrapperParameterIndexesData = stringArrayScopeCallsWrapperParameterIndexesData; + this.upperStringArrayCallsWrapperName = upperStringArrayCallsWrapperName; + this.upperStringArrayCallsWrapperParameterIndexesData = upperStringArrayCallsWrapperParameterIndexesData; + this.shiftedIndex = shiftedIndex; + } + getNodeStructure() { + var _a, _b, _c, _d, _e, _f, _g, _h; + const stringArrayCallIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)); + const decodeKeyIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)); + const stringArrayCallNode = this.getUpperStringArrayCallNode(stringArrayCallIdentifierNode, this.getStringArrayIndexNode(this.shiftedIndex)); + const parameters = this.arrayUtils.fillWithRange(!this.stringArrayScopeCallsWrapperParameterIndexesData + ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount + : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeParameterNode()); + parameters.splice((_b = (_a = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, stringArrayCallIdentifierNode); + parameters.splice((_d = (_c = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _c === void 0 ? void 0 : _c.decodeKeyParameterIndex) !== null && _d !== void 0 ? _d : 1, 1, decodeKeyIdentifierNode); + const callExpressionArgs = this.arrayUtils.fillWithRange(!this.upperStringArrayCallsWrapperParameterIndexesData + ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount + : this.options.stringArrayWrappersParametersMaxCount, (index) => this.getUpperStringArrayCallNode(parameters[index], this.getFakeUpperStringArrayIndexNode())); + callExpressionArgs.splice((_f = (_e = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _e === void 0 ? void 0 : _e.valueIndexParameterIndex) !== null && _f !== void 0 ? _f : 0, 1, stringArrayCallNode); + callExpressionArgs.splice((_h = (_g = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _g === void 0 ? void 0 : _g.decodeKeyParameterIndex) !== null && _h !== void 0 ? _h : 1, 1, decodeKeyIdentifierNode); + const functionExpressionNode = NodeFactory_1.NodeFactory.functionExpressionNode(parameters, NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName), callExpressionArgs)) + ])); + const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), functionExpressionNode) + ], 'const'); + NodeUtils_1.NodeUtils.parentizeAst(structure); + for (const parameter of parameters) { + parameter.name = this.identifierNamesGenerator.generateForLexicalScope(functionExpressionNode); + } + return [structure]; + } + getUpperStringArrayCallNode(indexParameterIdentifierNode, indexShiftNode) { + return NodeFactory_1.NodeFactory.binaryExpressionNode('-', indexParameterIdentifierNode, indexShiftNode); + } + getFakeParameterNode() { + return NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)); + } + getFakeUpperStringArrayIndexNode() { + return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0, 500)); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "shiftedIndex", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "upperStringArrayCallsWrapperName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "upperStringArrayCallsWrapperParameterIndexesData", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "stringArrayScopeCallsWrapperName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "stringArrayScopeCallsWrapperParameterIndexesData", void 0); +StringArrayScopeCallsWrapperFunctionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _d : Object, typeof (_e = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _e : Object, typeof (_f = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _f : Object, typeof (_g = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _g : Object, typeof (_h = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _h : Object, typeof (_j = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _j : Object]) +], StringArrayScopeCallsWrapperFunctionNode); +exports.StringArrayScopeCallsWrapperFunctionNode = StringArrayScopeCallsWrapperFunctionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_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, _g; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayScopeCallsWrapperVariableNode = 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 TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.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 IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractStringArrayCallNode_1 = __webpack_require__(/*! ./AbstractStringArrayCallNode */ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayScopeCallsWrapperVariableNode = class StringArrayScopeCallsWrapperVariableNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode { + constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) { + super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options); + } + initialize(stringArrayScopeCallsWrapperName, stringArrayCallsWrapperName) { + this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName; + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName)) + ], 'const'); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayScopeCallsWrapperVariableNode.prototype, "stringArrayCallsWrapperName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayScopeCallsWrapperVariableNode.prototype, "stringArrayScopeCallsWrapperName", void 0); +StringArrayScopeCallsWrapperVariableNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(6, 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 TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _g : Object]) +], StringArrayScopeCallsWrapperVariableNode); +exports.StringArrayScopeCallsWrapperVariableNode = StringArrayScopeCallsWrapperVariableNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts": +/*!******************************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts ***! + \******************************************************************************************************/ +/***/ (function(__unused_webpack_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.AbstractStringArrayIndexNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +let AbstractStringArrayIndexNode = class AbstractStringArrayIndexNode { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } +}; +AbstractStringArrayIndexNode = __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]) +], AbstractStringArrayIndexNode); +exports.AbstractStringArrayIndexNode = AbstractStringArrayIndexNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts ***! + \***************************************************************************************************************/ +/***/ (function(__unused_webpack_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.StringArrayHexadecimalNumberIndexNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const AbstractStringArrayIndexNode_1 = __webpack_require__(/*! ./AbstractStringArrayIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let StringArrayHexadecimalNumberIndexNode = class StringArrayHexadecimalNumberIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getNode(index) { + const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index); + return NodeFactory_1.NodeFactory.literalNode(index, hexadecimalIndex); + } +}; +StringArrayHexadecimalNumberIndexNode = __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]) +], StringArrayHexadecimalNumberIndexNode); +exports.StringArrayHexadecimalNumberIndexNode = StringArrayHexadecimalNumberIndexNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts": +/*!**********************************************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts ***! + \**********************************************************************************************************************/ +/***/ (function(__unused_webpack_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.StringArrayHexadecimalNumericStringIndexNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const AbstractStringArrayIndexNode_1 = __webpack_require__(/*! ./AbstractStringArrayIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let StringArrayHexadecimalNumericStringIndexNode = class StringArrayHexadecimalNumericStringIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getNode(index) { + const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index); + return NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex); + } +}; +StringArrayHexadecimalNumericStringIndexNode = __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]) +], StringArrayHexadecimalNumericStringIndexNode); +exports.StringArrayHexadecimalNumericStringIndexNode = StringArrayHexadecimalNumericStringIndexNode; + + +/***/ }), + +/***/ "./src/decorators/Initializable.ts": +/*!*****************************************!*\ + !*** ./src/decorators/Initializable.ts ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 = new Set([initializeMethodName, constructorMethodName]); + ownPropertyNames.forEach((propertyName) => { + var _a; + const initializablePropertiesSet = Reflect + .getMetadata(initializablePropertiesSetMetadataKey, target); + const wrappedMethodsSet = Reflect + .getMetadata(wrappedMethodsSetMetadataKey, target); + const isProhibitedPropertyName = prohibitedPropertyNames.has(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 ***! + \****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ObfuscationTarget = void 0; +const Utils_1 = __webpack_require__(/*! ../utils/Utils */ "./src/utils/Utils.ts"); +exports.ObfuscationTarget = Utils_1.Utils.makeEnum({ + Browser: 'browser', + BrowserNoEval: 'browser-no-eval', + Node: 'node' +}); + + +/***/ }), + +/***/ "./src/enums/StringSeparator.ts": +/*!**************************************!*\ + !*** ./src/enums/StringSeparator.ts ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringSeparator = void 0; +var StringSeparator; +(function (StringSeparator) { + StringSeparator["Comma"] = ","; + StringSeparator["Dot"] = "."; + StringSeparator["VerticalLine"] = "|"; +})(StringSeparator = exports.StringSeparator || (exports.StringSeparator = {})); + + +/***/ }), + +/***/ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts": +/*!*************************************************************************!*\ + !*** ./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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["StringArray"] = "StringArray"; + CustomCodeHelper["StringArrayCallsWrapper"] = "StringArrayCallsWrapper"; + CustomCodeHelper["StringArrayCallsWrapperBase64"] = "StringArrayCallsWrapperBase64"; + CustomCodeHelper["StringArrayCallsWrapperRc4"] = "StringArrayCallsWrapperRc4"; + CustomCodeHelper["StringArrayRotateFunction"] = "StringArrayRotateFunction"; +})(CustomCodeHelper = exports.CustomCodeHelper || (exports.CustomCodeHelper = {})); + + +/***/ }), + +/***/ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts": +/*!****************************************************************!*\ + !*** ./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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/custom-nodes/StringArrayCustomNode.ts": +/*!*********************************************************!*\ + !*** ./src/enums/custom-nodes/StringArrayCustomNode.ts ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayCustomNode = void 0; +var StringArrayCustomNode; +(function (StringArrayCustomNode) { + StringArrayCustomNode["StringArrayCallNode"] = "StringArrayCallNode"; + StringArrayCustomNode["StringArrayScopeCallsWrapperFunctionNode"] = "StringArrayScopeCallsWrapperFunctionNode"; + StringArrayCustomNode["StringArrayScopeCallsWrapperVariableNode"] = "StringArrayScopeCallsWrapperVariableNode"; +})(StringArrayCustomNode = exports.StringArrayCustomNode || (exports.StringArrayCustomNode = {})); + + +/***/ }), + +/***/ "./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts": +/*!*********************************************************************************!*\ + !*** ./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayIndexNode = void 0; +var StringArrayIndexNode; +(function (StringArrayIndexNode) { + StringArrayIndexNode["StringArrayHexadecimalNumberIndexNode"] = "StringArrayHexadecimalNumberIndexNode"; + StringArrayIndexNode["StringArrayHexadecimalNumericStringIndexNode"] = "StringArrayHexadecimalNumericStringIndexNode"; +})(StringArrayIndexNode = exports.StringArrayIndexNode || (exports.StringArrayIndexNode = {})); + + +/***/ }), + +/***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts": +/*!**************************************************************************************!*\ + !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.IdentifierNamesGenerator = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.IdentifierNamesGenerator = Utils_1.Utils.makeEnum({ + DictionaryIdentifierNamesGenerator: 'dictionary', + HexadecimalIdentifierNamesGenerator: 'hexadecimal', + MangledIdentifierNamesGenerator: 'mangled', + MangledShuffledIdentifierNamesGenerator: 'mangled-shuffled' +}); + + +/***/ }), + +/***/ "./src/enums/logger/LoggingMessage.ts": +/*!********************************************!*\ + !*** ./src/enums/logger/LoggingMessage.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NodeTransformationStage = void 0; +var NodeTransformationStage; +(function (NodeTransformationStage) { + NodeTransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening"; + NodeTransformationStage["Converting"] = "Converting"; + NodeTransformationStage["DeadCodeInjection"] = "DeadCodeInjection"; + NodeTransformationStage["Finalizing"] = "Finalizing"; + NodeTransformationStage["Initializing"] = "Initializing"; + NodeTransformationStage["Preparing"] = "Preparing"; + NodeTransformationStage["RenameIdentifiers"] = "RenameIdentifiers"; + NodeTransformationStage["RenameProperties"] = "RenameProperties"; + NodeTransformationStage["Simplifying"] = "Simplifying"; + NodeTransformationStage["StringArray"] = "StringArray"; +})(NodeTransformationStage = exports.NodeTransformationStage || (exports.NodeTransformationStage = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/NodeTransformer.ts": +/*!********************************************************!*\ + !*** ./src/enums/node-transformers/NodeTransformer.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NodeTransformer = void 0; +var NodeTransformer; +(function (NodeTransformer) { + NodeTransformer["BooleanLiteralTransformer"] = "BooleanLiteralTransformer"; + NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer"; + NodeTransformer["BlockStatementSimplifyTransformer"] = "BlockStatementSimplifyTransformer"; + NodeTransformer["CommentsTransformer"] = "CommentsTransformer"; + NodeTransformer["CustomCodeHelpersTransformer"] = "CustomCodeHelpersTransformer"; + NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer"; + NodeTransformer["EscapeSequenceTransformer"] = "EscapeSequenceTransformer"; + NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer"; + NodeTransformer["ExportSpecifierTransformer"] = "ExportSpecifierTransformer"; + NodeTransformer["ExpressionStatementsMergeTransformer"] = "ExpressionStatementsMergeTransformer"; + NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer"; + NodeTransformer["IfStatementSimplifyTransformer"] = "IfStatementSimplifyTransformer"; + NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer"; + NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer"; + NodeTransformer["MetadataTransformer"] = "MetadataTransformer"; + NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer"; + NodeTransformer["NumberLiteralTransformer"] = "NumberLiteralTransformer"; + NodeTransformer["NumberToNumericalExpressionTransformer"] = "NumberToNumericalExpressionTransformer"; + NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer"; + NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer"; + NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer"; + NodeTransformer["ObjectPatternPropertiesTransformer"] = "ObjectPatternPropertiesTransformer"; + NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer"; + NodeTransformer["RenamePropertiesTransformer"] = "RenamePropertiesTransformer"; + NodeTransformer["ScopeIdentifiersTransformer"] = "ScopeIdentifiersTransformer"; + NodeTransformer["ScopeThroughIdentifiersTransformer"] = "ScopeThroughIdentifiersTransformer"; + NodeTransformer["SplitStringTransformer"] = "SplitStringTransformer"; + NodeTransformer["StringArrayTransformer"] = "StringArrayTransformer"; + NodeTransformer["StringArrayRotateFunctionTransformer"] = "StringArrayRotateFunctionTransformer"; + NodeTransformer["StringArrayScopeCallsWrapperTransformer"] = "StringArrayScopeCallsWrapperTransformer"; + 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 ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts": +/*!****************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts ***! + \****************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts": +/*!***************************************************************************************************!*\ + !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ObfuscatingGuard = void 0; +var ObfuscatingGuard; +(function (ObfuscatingGuard) { + ObfuscatingGuard["BlackListObfuscatingGuard"] = "BlackListObfuscatingGuard"; + ObfuscatingGuard["ConditionalCommentObfuscatingGuard"] = "ConditionalCommentObfuscatingGuard"; + ObfuscatingGuard["ForceTransformStringObfuscatingGuard"] = "ForceTransformStringObfuscatingGuard"; + ObfuscatingGuard["IgnoredRequireImportObfuscatingGuard"] = "IgnoredRequireImportObfuscatingGuard"; + ObfuscatingGuard["ReservedStringObfuscatingGuard"] = "ReservedStringObfuscatingGuard"; +})(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts": +/*!**************************************************************************************!*\ + !*** ./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayEncoding = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.StringArrayEncoding = Utils_1.Utils.makeEnum({ + None: 'none', + Base64: 'base64', + Rc4: 'rc4' +}); + + +/***/ }), + +/***/ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts": +/*!*****************************************************************************************!*\ + !*** ./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayIndexesType = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.StringArrayIndexesType = Utils_1.Utils.makeEnum({ + HexadecimalNumber: 'hexadecimal-number', + HexadecimalNumericString: 'hexadecimal-numeric-string' +}); + + +/***/ }), + +/***/ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts": +/*!******************************************************************************************!*\ + !*** ./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayWrappersType = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.StringArrayWrappersType = Utils_1.Utils.makeEnum({ + Variable: 'variable', + Function: 'function', +}); + + +/***/ }), + +/***/ "./src/enums/node/NodeType.ts": +/*!************************************!*\ + !*** ./src/enums/node/NodeType.ts ***! + \************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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["ChainExpression"] = "ChainExpression"; + NodeType["ClassDeclaration"] = "ClassDeclaration"; + NodeType["ConditionalExpression"] = "ConditionalExpression"; + NodeType["ContinueStatement"] = "ContinueStatement"; + NodeType["ExportAllDeclaration"] = "ExportAllDeclaration"; + NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration"; + NodeType["ExportSpecifier"] = "ExportSpecifier"; + 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["SpreadElement"] = "SpreadElement"; + NodeType["Super"] = "Super"; + NodeType["SwitchCase"] = "SwitchCase"; + NodeType["SwitchStatement"] = "SwitchStatement"; + NodeType["TaggedTemplateExpression"] = "TaggedTemplateExpression"; + NodeType["TemplateElement"] = "TemplateElement"; + NodeType["TemplateLiteral"] = "TemplateLiteral"; + NodeType["ThrowStatement"] = "ThrowStatement"; + NodeType["TryStatement"] = "TryStatement"; + NodeType["UnaryExpression"] = "UnaryExpression"; + NodeType["UpdateExpression"] = "UpdateExpression"; + NodeType["VariableDeclaration"] = "VariableDeclaration"; + NodeType["VariableDeclarator"] = "VariableDeclarator"; + NodeType["WhileStatement"] = "WhileStatement"; + NodeType["YieldExpression"] = "YieldExpression"; +})(NodeType = exports.NodeType || (exports.NodeType = {})); + + +/***/ }), + +/***/ "./src/enums/node/ObfuscatingGuardResult.ts": +/*!**************************************************!*\ + !*** ./src/enums/node/ObfuscatingGuardResult.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ObfuscatingGuardResult = void 0; +var ObfuscatingGuardResult; +(function (ObfuscatingGuardResult) { + ObfuscatingGuardResult["ForceTransform"] = "ForceTransform"; + ObfuscatingGuardResult["Ignore"] = "Ignore"; + ObfuscatingGuardResult["Transform"] = "Transform"; +})(ObfuscatingGuardResult = exports.ObfuscatingGuardResult || (exports.ObfuscatingGuardResult = {})); + + +/***/ }), + +/***/ "./src/enums/options/presets/OptionsPreset.ts": +/*!****************************************************!*\ + !*** ./src/enums/options/presets/OptionsPreset.ts ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.OptionsPreset = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.OptionsPreset = Utils_1.Utils.makeEnum({ + Default: 'default', + LowObfuscation: 'low-obfuscation', + MediumObfuscation: 'medium-obfuscation', + HighObfuscation: 'high-obfuscation' +}); + + +/***/ }), + +/***/ "./src/enums/source-map/SourceMapMode.ts": +/*!***********************************************!*\ + !*** ./src/enums/source-map/SourceMapMode.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SourceMapMode = void 0; +const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); +exports.SourceMapMode = Utils_1.Utils.makeEnum({ + Inline: 'inline', + Separate: 'separate' +}); + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts": +/*!****************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_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.slice(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 ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_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.updatePreviousMangledName(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.updatePreviousMangledName(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.updatePreviousMangledName(identifierName); + this.preserveNameForLexicalScope(identifierName, lexicalScopeNode); + return identifierName; + } + isIncrementedMangledName(nextName, prevName) { + if (nextName === prevName) { + return false; + } + const nextNameLength = nextName.length; + const prevNameLength = prevName.length; + if (nextNameLength !== prevNameLength) { + return nextNameLength > prevNameLength; + } + const nameSequence = this.getNameSequence(); + for (let i = 0; i < nextNameLength; i++) { + const nextNameCharacter = nextName[i]; + const prevNameCharacter = prevName[i]; + if (nextNameCharacter === prevNameCharacter) { + continue; + } + const indexOfNextNameCharacter = nameSequence.indexOf(nextNameCharacter); + const indexOfPrevNameCharacter = nameSequence.indexOf(prevNameCharacter); + return indexOfNextNameCharacter > indexOfPrevNameCharacter; + } + throw new Error('Something goes wrong during comparison of mangled names'); + } + isValidIdentifierName(mangledName) { + return super.isValidIdentifierName(mangledName) + && !MangledIdentifierNamesGenerator_1.reservedNamesSet.has(mangledName); + } + getNameSequence() { + return MangledIdentifierNamesGenerator_1.nameSequence; + } + updatePreviousMangledName(name) { + if (!this.isIncrementedMangledName(name, this.previousMangledName)) { + return; + } + this.previousMangledName = name; + } + generateNewMangledName(previousMangledName) { + const generateNewMangledName = (name) => { + const nameSequence = this.getNameSequence(); + 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.slice(0, index); + const nextCharacter = nameSequence[indexInSequence + 1]; + const zeroSequenceLength = nameLength - (index + 1); + const zeroSequenceCharacters = zeroSequence(zeroSequenceLength); + return previousNamePart + nextCharacter + zeroSequenceCharacters; + } + --index; + } while (index >= 0); + const firstLetterCharacter = nameSequence[NumbersString_1.numbersString.length]; + return `${firstLetterCharacter}${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}` +]; +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/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts": +/*!***********************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts ***! + \***********************************************************************************************/ +/***/ (function(__unused_webpack_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 MangledShuffledIdentifierNamesGenerator_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MangledShuffledIdentifierNamesGenerator = 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 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 MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ./MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts"); +let MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = class MangledShuffledIdentifierNamesGenerator extends MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator { + constructor(arrayUtils, randomGenerator, options) { + super(randomGenerator, options); + this.arrayUtils = arrayUtils; + } + initialize() { + this.initializeNameSequence([ + ...`${NumbersString_1.numbersString}`, + ...this.arrayUtils.shuffle([...`${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`]) + ]); + } + initializeNameSequence(nameSequence) { + if (!this.getNameSequence()) { + MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence = nameSequence; + } + } + getNameSequence() { + return MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence; + } + generateNewMangledName(previousMangledName) { + return super.generateNewMangledName(previousMangledName); + } +}; +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], MangledShuffledIdentifierNamesGenerator.prototype, "initialize", null); +MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "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]) +], MangledShuffledIdentifierNamesGenerator); +exports.MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts": +/*!******************************************************************************!*\ + !*** ./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts": +/*!*******************************************************************!*\ + !*** ./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts": +/*!*********************************************************************!*\ + !*** ./src/interfaces/code-transformers/ICodeTransformersRunner.ts ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts": +/*!**************************************************************************!*\ + !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts": +/*!***************************************************************************!*\ + !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/logger/ILogger.ts": +/*!******************************************!*\ + !*** ./src/interfaces/logger/ILogger.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/node-transformers/INodeTransformersRunner.ts": +/*!*********************************************************************!*\ + !*** ./src/interfaces/node-transformers/INodeTransformersRunner.ts ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \***************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/node/IScopeIdentifiersTraverser.ts": +/*!***********************************************************!*\ + !*** ./src/interfaces/node/IScopeIdentifiersTraverser.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/options/IOptions.ts": +/*!********************************************!*\ + !*** ./src/interfaces/options/IOptions.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/options/IOptionsNormalizer.ts": +/*!******************************************************!*\ + !*** ./src/interfaces/options/IOptionsNormalizer.ts ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/source-code/ISourceCode.ts": +/*!***************************************************!*\ + !*** ./src/interfaces/source-code/ISourceCode.ts ***! + \***************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts": +/*!****************************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts": +/*!*******************************************************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts": +/*!************************************************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts": +/*!**********************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts": +/*!****************************************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/IArrayUtils.ts": +/*!*********************************************!*\ + !*** ./src/interfaces/utils/IArrayUtils.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/ICryptUtils.ts": +/*!*********************************************!*\ + !*** ./src/interfaces/utils/ICryptUtils.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts": +/*!************************************************************!*\ + !*** ./src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/IEscapeSequenceEncoder.ts": +/*!********************************************************!*\ + !*** ./src/interfaces/utils/IEscapeSequenceEncoder.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/ILevelledTopologicalSorter.ts": +/*!************************************************************!*\ + !*** ./src/interfaces/utils/ILevelledTopologicalSorter.ts ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/IRandomGenerator.ts": +/*!**************************************************!*\ + !*** ./src/interfaces/utils/IRandomGenerator.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts": +/*!****************************************************************!*\ + !*** ./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/logger/Logger.ts": +/*!******************************!*\ + !*** ./src/logger/Logger.ts ***! + \******************************/ +/***/ (function(__unused_webpack_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 ***! + \**********************************************************/ +/***/ (function(__unused_webpack_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 ***! + \********************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*********************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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/control-flow-transformers/control-flow-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/control-flow-transformers/control-flow-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 ***! + \***************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \***********************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*********************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*****************************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \************************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \********************************************************************************************************************/ +/***/ (function(__unused_webpack_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"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.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 (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode) || 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/BooleanLiteralTransformer.ts": +/*!************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_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.BooleanLiteralTransformer = 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 NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let BooleanLiteralTransformer = class BooleanLiteralTransformer 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.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (typeof literalNode.value !== 'boolean') { + return literalNode; + } + const literalValue = literalNode.value; + const unaryExpressionNode = literalValue + ? this.getTrueUnaryExpressionNode() + : this.getFalseUnaryExpressionNode(); + NodeUtils_1.NodeUtils.parentizeNode(unaryExpressionNode, parentNode); + return unaryExpressionNode; + } + getTrueUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', this.getFalseUnaryExpressionNode()); + } + getFalseUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode()); + } +}; +BooleanLiteralTransformer = __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]) +], BooleanLiteralTransformer); +exports.BooleanLiteralTransformer = BooleanLiteralTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_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.ExportSpecifierTransformer = 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 NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ExportSpecifierTransformer = class ExportSpecifierTransformer 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.isExportSpecifierNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(exportSpecifierNode, parentNode) { + if (exportSpecifierNode.local.name === exportSpecifierNode.exported.name) { + exportSpecifierNode.exported = NodeUtils_1.NodeUtils.clone(exportSpecifierNode.local); + } + return exportSpecifierNode; + } +}; +ExportSpecifierTransformer = __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]) +], ExportSpecifierTransformer); +exports.ExportSpecifierTransformer = ExportSpecifierTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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/NumberLiteralTransformer.ts": +/*!***********************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_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.NumberLiteralTransformer = 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 NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let NumberLiteralTransformer = class NumberLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer + ]; + this.numberLiteralCache = new Map(); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (typeof literalNode.value !== 'number' && typeof literalNode.value !== 'bigint') { + return literalNode; + } + const literalValue = literalNode.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); + } +}; +NumberLiteralTransformer = __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]) +], NumberLiteralTransformer); +exports.NumberLiteralTransformer = NumberLiteralTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_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.NumberToNumericalExpressionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const INumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer */ "./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.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"); +const NumericalExpressionDataToNodeConverter_1 = __webpack_require__(/*! ../../node/NumericalExpressionDataToNodeConverter */ "./src/node/NumericalExpressionDataToNodeConverter.ts"); +let NumberToNumericalExpressionTransformer = class NumberToNumericalExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(numberNumericalExpressionAnalyzer, randomGenerator, options) { + super(randomGenerator, options); + this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer; + } + getVisitor(nodeTransformationStage) { + if (!this.options.numbersToExpressions) { + return null; + } + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (typeof literalNode.value !== 'number') { + return literalNode; + } + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed) { + return literalNode; + } + const numberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(literalNode.value); + return NumericalExpressionDataToNodeConverter_1.NumericalExpressionDataToNodeConverter.convert(numberNumericalExpressionData, (number, isPositiveNumber) => { + const numberLiteralNode = NodeFactory_1.NodeFactory.literalNode(number); + return isPositiveNumber + ? numberLiteralNode + : NodeFactory_1.NodeFactory.unaryExpressionNode('-', numberLiteralNode); + }); + } +}; +NumberToNumericalExpressionTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer !== "undefined" && INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer) === "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]) +], NumberToNumericalExpressionTransformer); +exports.NumberToNumericalExpressionTransformer = NumberToNumericalExpressionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.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 ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = class ObjectExpressionKeysTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(objectExpressionExtractorFactory, randomGenerator, options) { + super(randomGenerator, options); + this.objectExpressionExtractorFactory = objectExpressionExtractorFactory; + } + static isProhibitedObjectExpressionNode(objectExpressionNode, objectExpressionParentNode, objectExpressionHostStatement) { + return ObjectExpressionKeysTransformer_1.isReferencedIdentifierName(objectExpressionNode, objectExpressionHostStatement) + || ObjectExpressionKeysTransformer_1.isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionParentNode) + || ObjectExpressionKeysTransformer_1.isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostStatement); + } + static isReferencedIdentifierName(objectExpressionNode, objectExpressionHostNode) { + const identifierNamesSet = []; + let isReferencedIdentifierName = false; + let isCurrentNode = false; + estraverse.traverse(objectExpressionHostNode, { + 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 isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionNodeParentNode) { + return NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(objectExpressionNodeParentNode) + && objectExpressionNodeParentNode.body === objectExpressionNode; + } + static isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostNode) { + return NodeGuards_1.NodeGuards.isExpressionStatementNode(objectExpressionHostNode) + && NodeGuards_1.NodeGuards.isSequenceExpressionNode(objectExpressionHostNode.expression) + && objectExpressionHostNode.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.isProhibitedObjectExpressionNode(objectExpressionNode, parentNode, 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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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/ObjectPatternPropertiesTransformer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_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.ObjectPatternPropertiesTransformer = 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 NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ObjectPatternPropertiesTransformer = class ObjectPatternPropertiesTransformer 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.isPropertyNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(propertyNode, parentNode) { + if (!NodeGuards_1.NodeGuards.isObjectPatternNode(parentNode) || !propertyNode.shorthand) { + return propertyNode; + } + if (!this.options.renameGlobals) { + const lexicalScope = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(propertyNode); + const shouldNotTransformGlobalPropertyNode = !!lexicalScope && NodeGuards_1.NodeGuards.isProgramNode(lexicalScope); + if (shouldNotTransformGlobalPropertyNode) { + return propertyNode; + } + } + propertyNode.shorthand = false; + propertyNode.value = NodeUtils_1.NodeUtils.clone(propertyNode.value); + NodeUtils_1.NodeUtils.parentizeNode(propertyNode.value, propertyNode); + return propertyNode; + } +}; +ObjectPatternPropertiesTransformer = __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]) +], ObjectPatternPropertiesTransformer); +exports.ObjectPatternPropertiesTransformer = ObjectPatternPropertiesTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts": +/*!*********************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/SplitStringTransformer.ts ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 stringz = __importStar(__webpack_require__(/*! stringz */ "stringz")); +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, stringLength, chunkSize) { + const chunksCount = Math.ceil(stringLength / chunkSize); + const chunks = []; + let nextChunkStartIndex = 0; + for (let chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) { + chunks[chunkIndex] = stringz.substr(string, 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 (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) { + return literalNode; + } + const valueLength = stringz.length(literalNode.value); + if (chunkLength >= valueLength) { + return literalNode; + } + const stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, valueLength, 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 ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_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'; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(templateLiteralNode, parentNode) { + if (NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode)) { + return templateLiteralNode; + } + return this.transformTemplateLiteralNode(templateLiteralNode, parentNode); + } + transformTemplateLiteralNode(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 ***! + \***************************************************************************************************************/ +/***/ (function(__unused_webpack_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 isProhibitedPropertyNode(node) { + return node.kind !== 'init'; + } + 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); + } + static shouldCreateLiteralNode(property) { + return !property.computed + || (property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key)); + } + 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 = propertiesLength - 1; i >= 0; i--) { + const property = properties[i]; + if (NodeGuards_1.NodeGuards.isSpreadElementNode(property)) { + break; + } + if (BasePropertiesExtractor_1.isProhibitedPropertyNode(property)) { + continue; + } + const propertyValue = property.value; + if (BasePropertiesExtractor_1.isProhibitedPattern(propertyValue)) { + continue; + } + const propertyKeyName = BasePropertiesExtractor_1.getPropertyNodeKeyName(property); + if (!propertyKeyName) { + continue; + } + const shouldCreateLiteralNode = BasePropertiesExtractor_1.shouldCreateLiteralNode(property); + 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.unshift(expressionStatementNode); + removablePropertyIds.unshift(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 ***! + \**************************************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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.isFunctionDeclarationNode(targetNode) + || NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode) + || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode) + || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode) + || NodeGuards_1.NodeGuards.isYieldExpressionNode(targetNode) + || NodeGuards_1.NodeGuards.isSuperNode(targetNode) + || (NodeGuards_1.NodeGuards.isForOfStatementNode(targetNode) && targetNode.await); + } + 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.prepareNode(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; + } + } + prepareNode(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.RenameIdentifiers); + 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, + NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer +]; +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/finalizing-transformers/EscapeSequenceTransformer.ts": +/*!************************************************************************************!*\ + !*** ./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_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.EscapeSequenceTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.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 NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let EscapeSequenceTransformer = class EscapeSequenceTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options, escapeSequenceEncoder) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer + ]; + this.escapeSequenceEncoder = escapeSequenceEncoder; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + return { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) { + return literalNode; + } + const encodedValue = this.escapeSequenceEncoder.encode(literalNode.value, this.options.unicodeEscapeSequence); + const newLiteralNode = NodeFactory_1.NodeFactory.literalNode(encodedValue); + NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode); + return newLiteralNode; + } +}; +EscapeSequenceTransformer = __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.IEscapeSequenceEncoder)), + __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 IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _c : Object]) +], EscapeSequenceTransformer); +exports.EscapeSequenceTransformer = EscapeSequenceTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts": +/*!********************************************************************************!*\ + !*** ./src/node-transformers/initializing-transformers/CommentsTransformer.ts ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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/preparing-transformers/CustomCodeHelpersTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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.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 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 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, 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.customCodeHelperGroupStorage = customCodeHelperGroupStorage; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + leave: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.prepareNode(node, parentNode); + this.appendCustomNodesForPreparingStage(node, parentNode); + return this.transformNode(node, parentNode); + } + } + }; + default: + return { + leave: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.appendCustomNodesForStage(nodeTransformationStage, node, parentNode); + } + return node; + } + }; + } + } + prepareNode(node, parentNode) { + this.callsGraphData = this.callsGraphAnalyzer.analyze(node); + this.prevailingKindOfVariablesAnalyzer.analyze(node); + } + transformNode(node, parentNode) { + return node; + } + appendCustomNodesForPreparingStage(node, parentNode) { + this.customCodeHelperGroupStorage + .getStorage() + .forEach((customCodeHelperGroup) => { + var _a; + customCodeHelperGroup.initialize(); + (_a = customCodeHelperGroup.appendOnPreparing) === null || _a === void 0 ? void 0 : _a.call(customCodeHelperGroup, node, this.callsGraphData); + }); + } + appendCustomNodesForStage(nodeTransformationStage, node, parentNode) { + this.customCodeHelperGroupStorage + .getStorage() + .forEach((customCodeHelperGroup) => { + var _a; + const methodName = `appendOn${nodeTransformationStage}`; + (_a = customCodeHelperGroup[methodName]) === null || _a === void 0 ? void 0 : _a.call(customCodeHelperGroup, 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.TCustomNodeGroupStorage)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, 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 TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage !== "undefined" && TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage) === "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]) +], CustomCodeHelpersTransformer); +exports.CustomCodeHelpersTransformer = CustomCodeHelpersTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_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 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 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"); +const StringUtils_1 = __webpack_require__(/*! ../../utils/StringUtils */ "./src/utils/StringUtils.ts"); +let EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = class EvalCallExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer, + 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(StringUtils_1.StringUtils.escapeJsString(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 ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_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 NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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 ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.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 obfuscatingGuardResults = this.obfuscatingGuards + .map((obfuscatingGuard) => obfuscatingGuard.check(node)); + this.setNodeMetadata(node, obfuscatingGuardResults); + return node; + } + setNodeMetadata(node, obfuscatingGuardResults) { + const isTransformNode = obfuscatingGuardResults + .every((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform); + let isForceTransformNode = false; + let isIgnoredNode = false; + if (!isTransformNode) { + isForceTransformNode = obfuscatingGuardResults + .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform); + isIgnoredNode = !isForceTransformNode && obfuscatingGuardResults + .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore); + } + NodeMetadata_1.NodeMetadata.set(node, { + forceTransformNode: isForceTransformNode && !NodeGuards_1.NodeGuards.isProgramNode(node), + ignoredNode: isIgnoredNode && !NodeGuards_1.NodeGuards.isProgramNode(node) + }); + } +}; +ObfuscatingGuardsTransformer.obfuscatingGuardsList = [ + ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard, + 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 ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_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 IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.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 NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let VariablePreserveTransformer = class VariablePreserveTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer + ]; + this.identifierReplacer = identifierReplacer; + 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.RenameIdentifiers: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverseScopeIdentifiers(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.identifierReplacer.preserveName(identifierNode); + } + preserveIdentifierNameForLexicalScope(identifierNode, variableScope) { + const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(variableScope.block) + ? variableScope.block + : null; + if (!lexicalScopeNode) { + return; + } + this.identifierReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode); + } +}; +VariablePreserveTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)), + __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 IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "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 ***! + \******************************************************************************************************/ +/***/ (function(__unused_webpack_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 ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts"); +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 ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore; + } + } + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform; + } +}; +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 ***! + \***************************************************************************************************************/ +/***/ (function(__unused_webpack_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 ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts"); +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)) { + const leadingComments = node.leadingComments; + if (leadingComments) { + this.obfuscationAllowed = this.checkComments(leadingComments); + } + } + return this.obfuscationAllowed + ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform + : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore; + } + 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/ForceTransformStringObfuscatingGuard.ts": +/*!*****************************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts ***! + \*****************************************************************************************************************/ +/***/ (function(__unused_webpack_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.ForceTransformStringObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ForceTransformStringObfuscatingGuard = class ForceTransformStringObfuscatingGuard { + constructor(options) { + this.options = options; + } + check(node) { + if (this.options.forceTransformStrings.length + && NodeGuards_1.NodeGuards.isLiteralNode(node) + && typeof node.value === 'string') { + return !this.isForceTransformString(node.value) + ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform + : ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform; + } + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform; + } + isForceTransformString(value) { + return this.options.forceTransformStrings + .some((forceTransformString) => { + return new RegExp(forceTransformString, 'g').exec(value) !== null; + }); + } +}; +ForceTransformStringObfuscatingGuard = __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]) +], ForceTransformStringObfuscatingGuard); +exports.ForceTransformStringObfuscatingGuard = ForceTransformStringObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts": +/*!*****************************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts ***! + \*****************************************************************************************************************/ +/***/ (function(__unused_webpack_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.IgnoredRequireImportObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let IgnoredRequireImportObfuscatingGuard = class IgnoredRequireImportObfuscatingGuard { + constructor(options) { + this.options = options; + } + check(node) { + if (this.options.ignoreRequireImports + && NodeGuards_1.NodeGuards.isCallExpressionNode(node) + && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee) + && node.callee.name === 'require') { + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore; + } + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform; + } +}; +IgnoredRequireImportObfuscatingGuard = __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]) +], IgnoredRequireImportObfuscatingGuard); +exports.IgnoredRequireImportObfuscatingGuard = IgnoredRequireImportObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts": +/*!***********************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts ***! + \***********************************************************************************************************/ +/***/ (function(__unused_webpack_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 ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.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) + ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform + : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore; + } + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform; + } + 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-identifiers-transformers/LabeledStatementTransformer.ts": +/*!**********************************************************************************************!*\ + !*** ./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts ***! + \**********************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.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 NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let LabeledStatementTransformer = class LabeledStatementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierReplacer, randomGenerator, options) { + super(randomGenerator, options); + this.identifierReplacer = identifierReplacer; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers: + 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.identifierReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode); + } + replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) { + estraverse.replace(labeledStatementNode, { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) { + const newIdentifier = this.identifierReplacer + .replace(node, lexicalScopeNode); + node.name = newIdentifier.name; + } + } + }); + } +}; +LabeledStatementTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "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/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts": +/*!**********************************************************************************************!*\ + !*** ./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts ***! + \**********************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.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 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(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.lexicalScopesWithObjectPatternWithoutDeclarationMap = new Map(); + this.identifierReplacer = identifierReplacer; + this.scopeIdentifiersTraverser = scopeIdentifiersTraverser; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverseScopeIdentifiers(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.identifierReplacer.storeGlobalName(identifierNode, lexicalScopeNode); + } + else { + this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode); + } + } + replaceIdentifierName(identifierNode, lexicalScopeNode, variable) { + const newIdentifier = this.identifierReplacer + .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.isProhibitedPropertyIdentifierNode(identifierNode, parentNode) + && !this.isProhibitedPropertyAssignmentPatternIdentifierNode(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; + } + isProhibitedPropertyIdentifierNode(node, parentNode) { + return NodeGuards_1.NodeGuards.isPropertyNode(parentNode) + && !parentNode.computed + && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.key) + && NodeGuards_1.NodeGuards.isIdentifierNode(node) + && parentNode.shorthand + && parentNode.key.name === node.name; + } + isProhibitedPropertyAssignmentPatternIdentifierNode(node, parentNode) { + return NodeGuards_1.NodeGuards.isAssignmentPatternNode(parentNode) + && parentNode.left === node + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isPropertyNode(parentNode.parentNode) + && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.left) + && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.parentNode.key) + && parentNode.left.name === parentNode.parentNode.key.name; + } + 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.IIdentifierReplacer)), + __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 IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "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/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts": +/*!*****************************************************************************************************!*\ + !*** ./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts ***! + \*****************************************************************************************************/ +/***/ (function(__unused_webpack_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.ScopeThroughIdentifiersTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.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 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 ScopeThroughIdentifiersTransformer = class ScopeThroughIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.identifierReplacer = identifierReplacer; + this.scopeIdentifiersTraverser = scopeIdentifiersTraverser; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(programNode, parentNode, (data) => { + const { reference, variableLexicalScopeNode } = data; + this.transformScopeThroughIdentifiers(reference, variableLexicalScopeNode); + }); + return programNode; + } + transformScopeThroughIdentifiers(reference, lexicalScopeNode) { + if (reference.resolved) { + return; + } + const identifier = reference.identifier; + this.storeIdentifierName(identifier, lexicalScopeNode); + this.replaceIdentifierName(identifier, lexicalScopeNode, reference); + } + storeIdentifierName(identifierNode, lexicalScopeNode) { + this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode); + } + replaceIdentifierName(identifierNode, lexicalScopeNode, reference) { + const newIdentifier = this.identifierReplacer + .replace(identifierNode, lexicalScopeNode); + reference.identifier.name = newIdentifier.name; + } +}; +ScopeThroughIdentifiersTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)), + __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 IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "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]) +], ScopeThroughIdentifiersTransformer); +exports.ScopeThroughIdentifiersTransformer = ScopeThroughIdentifiersTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts": +/*!**********************************************************************************************!*\ + !*** ./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts ***! + \**********************************************************************************************/ +/***/ (function(__unused_webpack_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.IdentifierReplacer = 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 NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let IdentifierReplacer = class IdentifierReplacer { + constructor(identifierNamesGeneratorFactory, options) { + this.blockScopesMap = new Map(); + this.options = options; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + } + 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); + } + 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); + } + 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; + }); + } +}; +IdentifierReplacer = __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]) +], IdentifierReplacer); +exports.IdentifierReplacer = IdentifierReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \***************************************************************************************************/ +/***/ (function(__unused_webpack_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/simplifying-transformers/AbstractStatementSimplifyTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_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.AbstractStatementSimplifyTransformer = 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 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 AbstractStatementSimplifyTransformer = class AbstractStatementSimplifyTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer, + NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer + ]; + } + getStatementSimplifyData(statementNode) { + if (!statementNode) { + return null; + } + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(statementNode)) { + return { + leadingStatements: [statementNode], + trailingStatement: null, + hasReturnStatement: false, + hasSingleExpression: false + }; + } + const { startIndex, unwrappedExpressions, hasReturnStatement } = this.collectIteratedStatementsSimplifyData(statementNode); + const leadingStatements = this.getLeadingStatements(statementNode, startIndex); + if (!unwrappedExpressions.length) { + return { + leadingStatements, + trailingStatement: null, + hasReturnStatement, + hasSingleExpression: false + }; + } + const hasSingleExpression = unwrappedExpressions.length === 1; + const expression = hasSingleExpression + ? unwrappedExpressions[0] + : NodeFactory_1.NodeFactory.sequenceExpressionNode(unwrappedExpressions); + const statement = hasReturnStatement + ? NodeFactory_1.NodeFactory.returnStatementNode(expression) + : NodeFactory_1.NodeFactory.expressionStatementNode(expression); + return { + leadingStatements, + trailingStatement: { + statement, + expression + }, + hasReturnStatement, + hasSingleExpression + }; + } + collectIteratedStatementsSimplifyData(statementNode) { + const statementNodeBodyLength = statementNode.body.length; + const unwrappedExpressions = []; + let hasReturnStatement = false; + let startIndex = null; + for (let i = statementNodeBodyLength - 1; i >= 0; i--) { + const statementBodyStatementNode = statementNode.body[i]; + if (NodeGuards_1.NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) { + if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(statementBodyStatementNode.expression)) { + unwrappedExpressions.unshift(...statementBodyStatementNode.expression.expressions); + } + else { + unwrappedExpressions.unshift(statementBodyStatementNode.expression); + } + startIndex = i; + continue; + } + if (NodeGuards_1.NodeGuards.isReturnStatementNode(statementBodyStatementNode) + && statementBodyStatementNode.argument) { + unwrappedExpressions.unshift(statementBodyStatementNode.argument); + hasReturnStatement = true; + startIndex = i; + continue; + } + break; + } + return { + startIndex, + unwrappedExpressions, + hasReturnStatement + }; + } + getLeadingStatements(statementNode, startIndex) { + if (startIndex === null) { + return statementNode.body; + } + return startIndex === 0 + ? [] + : statementNode.body.slice(0, startIndex); + } + getPartialStatement(statementSimplifyData) { + if (!statementSimplifyData.leadingStatements.length && statementSimplifyData.trailingStatement) { + return statementSimplifyData.trailingStatement.statement; + } + return NodeFactory_1.NodeFactory.blockStatementNode([ + ...statementSimplifyData.leadingStatements.length ? statementSimplifyData.leadingStatements : [], + ...statementSimplifyData.trailingStatement ? [statementSimplifyData.trailingStatement.statement] : [] + ]); + } +}; +AbstractStatementSimplifyTransformer = __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]) +], AbstractStatementSimplifyTransformer); +exports.AbstractStatementSimplifyTransformer = AbstractStatementSimplifyTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_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.BlockStatementSimplifyTransformer = 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 AbstractStatementSimplifyTransformer_1 = __webpack_require__(/*! ./AbstractStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BlockStatementSimplifyTransformer = class BlockStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer + ]; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Simplifying: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(statementNode, parentNode) { + const simplifyData = this.getStatementSimplifyData(statementNode); + if (!simplifyData) { + return statementNode; + } + const partialStatementNode = this.getPartialStatement(simplifyData); + const transformedNode = NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatementNode) + ? partialStatementNode + : NodeFactory_1.NodeFactory.blockStatementNode([partialStatementNode]); + return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode); + } +}; +BlockStatementSimplifyTransformer = __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]) +], BlockStatementSimplifyTransformer); +exports.BlockStatementSimplifyTransformer = BlockStatementSimplifyTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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.ExpressionStatementsMergeTransformer = 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 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 ExpressionStatementsMergeTransformer = class ExpressionStatementsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Simplifying: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(expressionStatementNode, parentNode) { + if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) { + return expressionStatementNode; + } + const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(expressionStatementNode); + if (!prevStatement || !NodeGuards_1.NodeGuards.isExpressionStatementNode(prevStatement)) { + return expressionStatementNode; + } + if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(prevStatement.expression)) { + prevStatement.expression.expressions.push(expressionStatementNode.expression); + NodeUtils_1.NodeUtils.parentizeNode(expressionStatementNode.expression, prevStatement.expression); + } + else { + prevStatement.expression = NodeFactory_1.NodeFactory.sequenceExpressionNode([ + prevStatement.expression, + expressionStatementNode.expression + ]); + NodeUtils_1.NodeUtils.parentizeAst(prevStatement.expression); + NodeUtils_1.NodeUtils.parentizeNode(prevStatement.expression, prevStatement); + } + return estraverse.VisitorOption.Remove; + } +}; +ExpressionStatementsMergeTransformer = __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]) +], ExpressionStatementsMergeTransformer); +exports.ExpressionStatementsMergeTransformer = ExpressionStatementsMergeTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_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 AbstractStatementSimplifyTransformer_1 = __webpack_require__(/*! ./AbstractStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let IfStatementSimplifyTransformer = class IfStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Simplifying: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isIfStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(ifStatementNode, parentNode) { + const consequentSimplifyData = this.getStatementSimplifyData(ifStatementNode.consequent); + if (!consequentSimplifyData) { + return ifStatementNode; + } + let transformedNode; + if (!ifStatementNode.alternate) { + transformedNode = this.getConsequentNode(ifStatementNode, consequentSimplifyData); + } + else { + const alternateSimplifyData = this.getStatementSimplifyData(ifStatementNode.alternate); + if (!alternateSimplifyData) { + return ifStatementNode; + } + transformedNode = this.getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData); + } + return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode); + } + getConsequentNode(ifStatementNode, consequentSimplifyData) { + if (consequentSimplifyData.leadingStatements.length + || !consequentSimplifyData.trailingStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData)); + } + if (consequentSimplifyData.hasReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement); + } + return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode('&&', ifStatementNode.test, consequentSimplifyData.trailingStatement.expression)); + } + getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData) { + if (consequentSimplifyData.leadingStatements.length + || alternateSimplifyData.leadingStatements.length + || !consequentSimplifyData.trailingStatement + || !alternateSimplifyData.trailingStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData), this.getPartialStatement(alternateSimplifyData)); + } + if (consequentSimplifyData.hasReturnStatement && alternateSimplifyData.hasReturnStatement) { + return NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression)); + } + if (consequentSimplifyData.hasReturnStatement || alternateSimplifyData.hasReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement, alternateSimplifyData.trailingStatement.statement); + } + return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression)); + } + getPartialStatement(statementSimplifyData) { + const partialStatement = super.getPartialStatement(statementSimplifyData); + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatement)) { + return partialStatement; + } + return partialStatement.body.length === 1 + && !this.isProhibitedSingleStatementForIfStatementBranch(partialStatement.body[0]) + ? partialStatement.body[0] + : partialStatement; + } + isProhibitedSingleStatementForIfStatementBranch(statement) { + return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(statement) + || NodeGuards_1.NodeGuards.isIfStatementNode(statement) + || (NodeGuards_1.NodeGuards.isVariableDeclarationNode(statement) && statement.kind !== 'var'); + } +}; +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/simplifying-transformers/VariableDeclarationsMergeTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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.Simplifying: + return { + leave: (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/string-array-transformers/StringArrayRotateFunctionTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_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.prototype.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 StringArrayRotateFunctionTransformer_1, _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayRotateFunctionTransformer = 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 TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const INodeTransformersRunner_1 = __webpack_require__(/*! ../../interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts"); +const INumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer */ "./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.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-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.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 NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const NumericalExpressionDataToNodeConverter_1 = __webpack_require__(/*! ../../node/NumericalExpressionDataToNodeConverter */ "./src/node/NumericalExpressionDataToNodeConverter.ts"); +let StringArrayRotateFunctionTransformer = StringArrayRotateFunctionTransformer_1 = class StringArrayRotateFunctionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options, transformersRunner, stringArrayStorage, customCodeHelperFactory, numberNumericalExpressionAnalyzer) { + super(randomGenerator, options); + this.stringArrayStorage = stringArrayStorage; + this.transformersRunner = transformersRunner; + this.customCodeHelperFactory = customCodeHelperFactory; + this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer; + } + getVisitor(nodeTransformationStage) { + if (!this.options.rotateStringArray) { + return null; + } + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.StringArray: + return { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.transformNode(node); + } + return node; + } + }; + default: + return null; + } + } + transformNode(programNode) { + const stringArrayRotateFunctionNode = this.getStringArrayRotateFunctionNode(); + const wrappedStringArrayRotateFunctionNode = NodeFactory_1.NodeFactory.programNode([ + stringArrayRotateFunctionNode + ]); + NodeUtils_1.NodeUtils.parentizeAst(wrappedStringArrayRotateFunctionNode); + const transformationStages = [ + NodeTransformationStage_1.NodeTransformationStage.Preparing, + NodeTransformationStage_1.NodeTransformationStage.Converting, + NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers, + NodeTransformationStage_1.NodeTransformationStage.Finalizing + ]; + for (const transformationStage of transformationStages) { + this.transformersRunner.transform(wrappedStringArrayRotateFunctionNode, StringArrayRotateFunctionTransformer_1.stringArrayRotateFunctionTransformers, transformationStage); + } + estraverse.traverse(wrappedStringArrayRotateFunctionNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isLiteralNode(node) + && NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(node) + && !/\d/.test(node.value)) { + NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: true }); + } + } + }); + NodeAppender_1.NodeAppender.prepend(programNode, [stringArrayRotateFunctionNode]); + NodeUtils_1.NodeUtils.parentizeNode(stringArrayRotateFunctionNode, programNode); + return programNode; + } + getStringArrayRotateFunctionNode() { + const comparisonValue = this.randomGenerator.getRandomInteger(100000, 1000000); + const comparisonExpressionNumberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(comparisonValue); + const comparisonExpressionNode = NumericalExpressionDataToNodeConverter_1.NumericalExpressionDataToNodeConverter.convert(comparisonExpressionNumberNumericalExpressionData, ((number, isPositiveNumber) => { + const literalNode = NodeFactory_1.NodeFactory.literalNode(number.toString()); + return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('parseInt'), [ + isPositiveNumber + ? literalNode + : NodeFactory_1.NodeFactory.unaryExpressionNode('-', literalNode) + ]); + })); + const stringArrayRotateFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction); + stringArrayRotateFunctionCodeHelper.initialize(this.stringArrayStorage.getStorageName(), comparisonValue, comparisonExpressionNode); + return stringArrayRotateFunctionCodeHelper.getNode()[0]; + } +}; +StringArrayRotateFunctionTransformer.stringArrayRotateFunctionTransformers = [ + NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer, + NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, + NodeTransformer_1.NodeTransformer.NumberLiteralTransformer, + NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer, + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer +]; +StringArrayRotateFunctionTransformer = StringArrayRotateFunctionTransformer_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.INodeTransformersRunner)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)), + __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 INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _e : Object, typeof (_f = typeof INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer !== "undefined" && INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer) === "function" ? _f : Object]) +], StringArrayRotateFunctionTransformer); +exports.StringArrayRotateFunctionTransformer = StringArrayRotateFunctionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts": +/*!****************************************************************************************************!*\ + !*** ./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts ***! + \****************************************************************************************************/ +/***/ (function(__unused_webpack_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, _g; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayScopeCallsWrapperTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TStringArrayCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TStringArrayCustomNodeFactory */ "./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.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 IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts"); +const IStringArrayScopeCallsWrapperNamesDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const IVisitedLexicalScopeNodesStackStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage */ "./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.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 StringArrayCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/StringArrayCustomNode */ "./src/enums/custom-nodes/StringArrayCustomNode.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.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"); +let StringArrayScopeCallsWrapperTransformer = class StringArrayScopeCallsWrapperTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayTransformerCustomNodeFactory) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer + ]; + this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage; + this.stringArrayStorage = stringArrayStorage; + this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage; + this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage; + this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory; + } + getVisitor(nodeTransformationStage) { + if (!this.options.stringArrayWrappersCount) { + return null; + } + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.StringArray: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) { + this.onLexicalScopeNodeEnter(node); + } + }, + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) { + this.onLexicalScopeNodeLeave(); + return this.transformNode(node); + } + } + }; + default: + return null; + } + } + transformNode(lexicalScopeBodyNode) { + var _a, _b; + const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(lexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null; + const stringArrayScopeCallsWrapperLexicalScopeData = (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(lexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null; + if (!stringArrayScopeCallsWrapperNamesDataByEncoding || !stringArrayScopeCallsWrapperLexicalScopeData) { + return lexicalScopeBodyNode; + } + const { callsWrappersParameterIndexesData: stringArrayScopeCallsWrapperParameterIndexes } = stringArrayScopeCallsWrapperLexicalScopeData; + const stringArrayScopeCallsWrapperNamesDataList = Object.values(stringArrayScopeCallsWrapperNamesDataByEncoding); + for (const stringArrayScopeCallsWrapperNamesData of stringArrayScopeCallsWrapperNamesDataList) { + if (!stringArrayScopeCallsWrapperNamesData) { + continue; + } + const { names } = stringArrayScopeCallsWrapperNamesData; + const namesLength = names.length; + for (let i = namesLength - 1; i >= 0; i--) { + const stringArrayScopeCallsWrapperName = names[i]; + const { name: upperStringArrayCallsWrapperName, index: upperStringArrayCallsWrapperShiftedIndex, parameterIndexesData: upperStringArrayCallsWrapperParameterIndexes } = this.getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData); + const stringArrayScopeCallsWrapperNode = this.getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, upperStringArrayCallsWrapperShiftedIndex); + NodeAppender_1.NodeAppender.prepend(lexicalScopeBodyNode, stringArrayScopeCallsWrapperNode); + } + } + return lexicalScopeBodyNode; + } + getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) { + const { encoding } = stringArrayScopeCallsWrapperNamesData; + const { resultShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData; + return { + name: this.stringArrayStorage.getStorageCallsWrapperName(encoding), + index: resultShiftedIndex, + parameterIndexesData: null + }; + } + getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) { + var _a, _b, _c, _d, _e, _f; + const { encoding } = stringArrayScopeCallsWrapperNamesData; + const { scopeShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData; + const rootStringArrayCallsWrapperData = this.getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData); + if (!this.options.stringArrayWrappersChainedCalls) { + return rootStringArrayCallsWrapperData; + } + const parentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null; + if (!parentLexicalScopeBodyNode) { + return rootStringArrayCallsWrapperData; + } + const parentLexicalScopeNamesDataByEncoding = (_b = this.stringArrayScopeCallsWrapperNamesDataStorage + .get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null; + const parentScopeCallsWrapperLexicalScopeData = (_c = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage + .get(parentLexicalScopeBodyNode)) !== null && _c !== void 0 ? _c : null; + const parentLexicalScopeNames = (_e = (_d = parentLexicalScopeNamesDataByEncoding === null || parentLexicalScopeNamesDataByEncoding === void 0 ? void 0 : parentLexicalScopeNamesDataByEncoding[encoding]) === null || _d === void 0 ? void 0 : _d.names) !== null && _e !== void 0 ? _e : null; + if (!(parentLexicalScopeNames === null || parentLexicalScopeNames === void 0 ? void 0 : parentLexicalScopeNames.length)) { + return rootStringArrayCallsWrapperData; + } + const upperStringArrayCallsWrapperName = this.randomGenerator + .getRandomGenerator() + .pickone(parentLexicalScopeNames); + const parameterIndexesData = (_f = parentScopeCallsWrapperLexicalScopeData === null || parentScopeCallsWrapperLexicalScopeData === void 0 ? void 0 : parentScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData) !== null && _f !== void 0 ? _f : null; + return { + name: upperStringArrayCallsWrapperName, + index: scopeShiftedIndex, + parameterIndexesData + }; + } + getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) { + switch (this.options.stringArrayWrappersType) { + case StringArrayWrappersType_1.StringArrayWrappersType.Function: + return this.getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex); + case StringArrayWrappersType_1.StringArrayWrappersType.Variable: + default: + return this.getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName); + } + } + getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName) { + const stringArrayScopeCallsWrapperVariableNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode); + stringArrayScopeCallsWrapperVariableNode.initialize(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName); + return stringArrayScopeCallsWrapperVariableNode.getNode(); + } + getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) { + const stringArrayScopeCallsWrapperFunctionNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode); + stringArrayScopeCallsWrapperFunctionNode.initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex); + return stringArrayScopeCallsWrapperFunctionNode.getNode(); + } + onLexicalScopeNodeEnter(lexicalScopeBodyNode) { + this.visitedLexicalScopeNodesStackStorage.push(lexicalScopeBodyNode); + } + onLexicalScopeNodeLeave() { + this.visitedLexicalScopeNodesStackStorage.pop(); + } +}; +StringArrayScopeCallsWrapperTransformer = __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.IVisitedLexicalScopeNodesStackStorage)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)), + __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)), + __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 IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== "undefined" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== "undefined" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === "function" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== "undefined" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === "function" ? _f : Object, typeof (_g = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== "undefined" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === "function" ? _g : Object]) +], StringArrayScopeCallsWrapperTransformer); +exports.StringArrayScopeCallsWrapperTransformer = StringArrayScopeCallsWrapperTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/string-array-transformers/StringArrayTransformer.ts": +/*!***********************************************************************************!*\ + !*** ./src/node-transformers/string-array-transformers/StringArrayTransformer.ts ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_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 StringArrayTransformer_1, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayTransformer = 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 TStringArrayCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TStringArrayCustomNodeFactory */ "./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts"); +const ILiteralNodesCacheStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage */ "./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.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 IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts"); +const IStringArrayScopeCallsWrapperNamesDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts"); +const IVisitedLexicalScopeNodesStackStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage */ "./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.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 StringArrayCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/StringArrayCustomNode */ "./src/enums/custom-nodes/StringArrayCustomNode.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.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 StringArrayTransformer = StringArrayTransformer_1 = class StringArrayTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options, literalNodesCacheStorage, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayStorageAnalyzer, identifierNamesGeneratorFactory, stringArrayTransformerCustomNodeFactory) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer + ]; + this.literalNodesCacheStorage = literalNodesCacheStorage; + this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage; + this.stringArrayStorage = stringArrayStorage; + this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage; + this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage; + this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.StringArray: + return { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.prepareNode(node); + } + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + prepareNode(programNode) { + if (this.options.stringArray) { + this.stringArrayStorageAnalyzer.analyze(programNode); + } + if (this.options.shuffleStringArray) { + this.stringArrayStorage.shuffleStorage(); + } + if (this.options.rotateStringArray) { + this.stringArrayStorage.rotateStorage(); + } + } + transformNode(literalNode, parentNode) { + if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode) + || NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return literalNode; + } + const literalValue = literalNode.value; + const stringArrayStorageItemData = this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(literalNode); + const cacheKey = this.literalNodesCacheStorage.buildKey(literalValue, stringArrayStorageItemData); + const useCachedValue = this.literalNodesCacheStorage.shouldUseCachedValue(cacheKey, stringArrayStorageItemData); + if (useCachedValue) { + return this.literalNodesCacheStorage.get(cacheKey); + } + const resultNode = stringArrayStorageItemData + ? this.getStringArrayCallNode(stringArrayStorageItemData) + : literalNode; + this.literalNodesCacheStorage.set(cacheKey, resultNode); + NodeUtils_1.NodeUtils.parentizeNode(resultNode, parentNode); + return resultNode; + } + getStringArrayCallNode(stringArrayStorageItemData) { + const { name: stringArrayCallsWrapperName, index, parameterIndexesData } = this.getStringArrayCallsWrapperData(stringArrayStorageItemData); + const { decodeKey } = stringArrayStorageItemData; + const stringArrayCallCustomNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode); + stringArrayCallCustomNode.initialize(stringArrayCallsWrapperName, parameterIndexesData, index, this.stringArrayStorage.getIndexShiftAmount(), decodeKey); + const statementNode = stringArrayCallCustomNode.getNode()[0]; + if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error('`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node'); + } + return statementNode.expression; + } + getStringArrayCallsWrapperData(stringArrayStorageItemData) { + return !this.options.stringArrayWrappersCount + ? this.getRootStringArrayCallsWrapperData(stringArrayStorageItemData) + : this.getUpperStringArrayCallsWrapperData(stringArrayStorageItemData); + } + getRootStringArrayCallsWrapperData(stringArrayStorageItemData) { + const { encoding, index } = stringArrayStorageItemData; + const rootStringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(encoding); + return { + name: rootStringArrayCallsWrapperName, + parameterIndexesData: null, + index + }; + } + getUpperStringArrayCallsWrapperData(stringArrayStorageItemData) { + var _a, _b, _c, _d; + const { encoding, index } = stringArrayStorageItemData; + const currentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null; + const parentLexicalScopeBodyNode = (_b = this.visitedLexicalScopeNodesStackStorage.getPenultimateElement()) !== null && _b !== void 0 ? _b : null; + if (!currentLexicalScopeBodyNode) { + throw new Error('Cannot find current lexical scope body node'); + } + const stringArrayScopeCallsWrapperNamesDataByEncoding = this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData); + const stringArrayScopeCallsWrapperLexicalScopeData = this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode); + const stringArrayScopeCallsWrapperNames = (_d = (_c = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _c === void 0 ? void 0 : _c.names) !== null && _d !== void 0 ? _d : []; + const randomUpperStringArrayCallsWrapperName = this.randomGenerator + .getRandomGenerator() + .pickone(stringArrayScopeCallsWrapperNames); + const resultIndex = stringArrayScopeCallsWrapperLexicalScopeData + ? stringArrayScopeCallsWrapperLexicalScopeData.resultShiftedIndex + index + : index; + return { + name: randomUpperStringArrayCallsWrapperName, + index: resultIndex, + parameterIndexesData: stringArrayScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData + }; + } + getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData) { + var _a, _b, _c; + const { encoding } = stringArrayStorageItemData; + const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : {}; + const stringArrayScopeCallsWrapperNames = (_c = (_b = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _b === void 0 ? void 0 : _b.names) !== null && _c !== void 0 ? _c : []; + const isFilledScopeCallsWrapperNamesList = stringArrayScopeCallsWrapperNames.length === this.options.stringArrayWrappersCount; + if (isFilledScopeCallsWrapperNamesList) { + return stringArrayScopeCallsWrapperNamesDataByEncoding; + } + const nextScopeCallsWrapperName = NodeGuards_1.NodeGuards.isProgramNode(currentLexicalScopeBodyNode) + ? this.identifierNamesGenerator.generateForGlobalScope() + : this.identifierNamesGenerator.generateNext(); + stringArrayScopeCallsWrapperNamesDataByEncoding[encoding] = { + encoding, + names: [ + ...stringArrayScopeCallsWrapperNames, + nextScopeCallsWrapperName + ] + }; + this.stringArrayScopeCallsWrapperNamesDataStorage.set(currentLexicalScopeBodyNode, stringArrayScopeCallsWrapperNamesDataByEncoding); + return stringArrayScopeCallsWrapperNamesDataByEncoding; + } + getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode) { + var _a, _b; + const storedLexicalScopeData = (_a = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null; + if (storedLexicalScopeData) { + return storedLexicalScopeData; + } + const parentLexicalScopeData = parentLexicalScopeBodyNode + ? (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null : null; + const callsWrappersParameterIndexesData = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function + ? this.getStringArrayCallsWrapperParameterIndexesData() + : null; + const scopeShiftedIndex = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function + ? this.randomGenerator.getRandomInteger(StringArrayTransformer_1.minShiftedIndexValue, StringArrayTransformer_1.maxShiftedIndexValue) + : 0; + const resultShiftedIndex = parentLexicalScopeData + ? parentLexicalScopeData.resultShiftedIndex + scopeShiftedIndex + : scopeShiftedIndex; + const lexicalScopeData = { + callsWrappersParameterIndexesData, + parentLexicalScopeBodyNode, + resultShiftedIndex, + scopeShiftedIndex + }; + this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(currentLexicalScopeBodyNode, lexicalScopeData); + return lexicalScopeData; + } + getStringArrayCallsWrapperParameterIndexesData() { + const minIndexValue = 0; + const maxIndexValue = this.options.stringArrayWrappersParametersMaxCount - 1; + const valueIndexParameterIndex = this.randomGenerator + .getRandomInteger(minIndexValue, maxIndexValue); + const decodeKeyParameterIndex = this.randomGenerator + .getRandomIntegerExcluding(minIndexValue, maxIndexValue, [valueIndexParameterIndex]); + return { + valueIndexParameterIndex, + decodeKeyParameterIndex + }; + } +}; +StringArrayTransformer.minShiftedIndexValue = -1000; +StringArrayTransformer.maxShiftedIndexValue = 1000; +StringArrayTransformer = StringArrayTransformer_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.ILiteralNodesCacheStorage)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)), + __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)), + __param(7, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)), + __param(8, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(9, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)), + __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 ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage !== "undefined" && ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage) === "function" ? _c : Object, typeof (_d = typeof IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== "undefined" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === "function" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== "undefined" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === "function" ? _f : Object, typeof (_g = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== "undefined" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === "function" ? _g : Object, typeof (_h = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _h : Object, typeof (_j = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _j : Object, typeof (_k = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== "undefined" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === "function" ? _k : Object]) +], StringArrayTransformer); +exports.StringArrayTransformer = StringArrayTransformer; + + +/***/ }), + +/***/ "./src/node/NodeAppender.ts": +/*!**********************************!*\ + !*** ./src/node/NodeAppender.ts ***! + \**********************************/ +/***/ ((__unused_webpack_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 ***! + \*********************************/ +/***/ (function(__unused_webpack_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.prototype.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__(/*! @javascript-obfuscator/escodegen */ "@javascript-obfuscator/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 arrowFunctionExpressionNode(params, expression, body) { + return { + type: NodeType_1.NodeType.ArrowFunctionExpression, + params, + expression, + body + }; + } + 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 = [], optional = false) { + return { + type: NodeType_1.NodeType.CallExpression, + callee, + optional, + arguments: args, + metadata: { ignoredNode: false } + }; + } + static catchClauseNode(param, body) { + return { + type: NodeType_1.NodeType.CatchClause, + param, + body, + 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 exportAllDeclarationNode(source) { + return { + type: NodeType_1.NodeType.ExportAllDeclaration, + source, + metadata: { ignoredNode: false } + }; + } + static exportNamedDeclarationNode(specifiers, source) { + return { + type: NodeType_1.NodeType.ExportNamedDeclaration, + specifiers, + source, + 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, optional = false) { + return { + type: NodeType_1.NodeType.MemberExpression, + computed, + object, + optional, + 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 templateElement(value, tail) { + return { + type: NodeType_1.NodeType.TemplateElement, + value, + tail, + metadata: { ignoredNode: false } + }; + } + static templateLiteral(expressions, quasis) { + return { + type: NodeType_1.NodeType.TemplateLiteral, + expressions, + quasis, + metadata: { ignoredNode: false } + }; + } + static tryStatement(block, handler, finalizer) { + return { + type: NodeType_1.NodeType.TryStatement, + block, + handler, + finalizer, + 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 ***! + \********************************/ +/***/ ((__unused_webpack_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 isExportAllDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ExportAllDeclaration; + } + static isExportNamedDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ExportNamedDeclaration; + } + static isExportSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ExportSpecifier; + } + static isExpressionStatementNode(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement + && !('directive' in node); + } + static isForOfStatementNode(node) { + return node.type === NodeType_1.NodeType.ForOfStatement; + } + 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 isSpreadElementNode(node) { + return node.type === NodeType_1.NodeType.SpreadElement; + } + 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; + } + static isYieldExpressionNode(node) { + return node.type === NodeType_1.NodeType.YieldExpression; + } +} +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 ***! + \*******************************************/ +/***/ ((__unused_webpack_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 ***! + \**************************************/ +/***/ ((__unused_webpack_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 isStringLiteralNode(literalNode) { + return typeof literalNode.value === 'string'; + } + 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; + } + if (NodeGuards_1.NodeGuards.isExportAllDeclarationNode(parentNode) || NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) { + return true; + } + return false; + } +} +exports.NodeLiteralUtils = NodeLiteralUtils; + + +/***/ }), + +/***/ "./src/node/NodeMetadata.ts": +/*!**********************************!*\ + !*** ./src/node/NodeMetadata.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 isForceTransformNode(node) { + return NodeMetadata.get(node, 'forceTransformNode') === true; + } + 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 ***! + \****************************************/ +/***/ ((__unused_webpack_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 ***! + \*******************************/ +/***/ (function(__unused_webpack_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.prototype.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__(/*! @javascript-obfuscator/escodegen */ "@javascript-obfuscator/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) => { + var _a; + if (property === 'parentNode') { + return; + } + const value = (_a = node[property]) !== null && _a !== void 0 ? _a : null; + let clonedValue; + if (value === null || value instanceof RegExp) { + clonedValue = value; + } + else if (value instanceof Array) { + 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/NumericalExpressionDataToNodeConverter.ts": +/*!************************************************************!*\ + !*** ./src/node/NumericalExpressionDataToNodeConverter.ts ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NumericalExpressionDataToNodeConverter = void 0; +const NodeFactory_1 = __webpack_require__(/*! ./NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +class NumericalExpressionDataToNodeConverter { + static convert(numberNumericalExpressionData, literalNodeGetter) { + return NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(numberNumericalExpressionData, literalNodeGetter); + } + static convertNumericalExpressionDataToNode(numberNumericalExpressionData, literalNodeGetter, operator = '+') { + var _a; + const numberNumericalExpressionDataLength = numberNumericalExpressionData.length; + const leftParts = numberNumericalExpressionDataLength > 1 + ? numberNumericalExpressionData.slice(0, numberNumericalExpressionDataLength - 1) + : [numberNumericalExpressionData[0]]; + const rightParts = numberNumericalExpressionDataLength > 1 + ? numberNumericalExpressionData.slice(-1) + : []; + if (rightParts.length) { + return NumericalExpressionDataToNodeConverter + .convertPartsToBinaryExpression(operator, leftParts, rightParts, literalNodeGetter); + } + const firstLeftPartOrNumber = (_a = leftParts[0]) !== null && _a !== void 0 ? _a : null; + return Array.isArray(firstLeftPartOrNumber) + ? NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(firstLeftPartOrNumber, literalNodeGetter, '*') + : NumericalExpressionDataToNodeConverter.convertPartOrNumberToLiteralNode(firstLeftPartOrNumber, literalNodeGetter); + } + static convertPartsToBinaryExpression(operator, leftParts, rightParts, literalNodeGetter) { + const rightPartOrNumber = rightParts[0]; + if (Array.isArray(rightPartOrNumber)) { + return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(leftParts, literalNodeGetter), NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(rightPartOrNumber, literalNodeGetter, '*')); + } + else { + return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(leftParts, literalNodeGetter), this.convertPartOrNumberToLiteralNode(rightPartOrNumber, literalNodeGetter)); + } + } + static convertPartOrNumberToLiteralNode(partOrNumber, literalNodeGetter) { + const number = Array.isArray(partOrNumber) + ? partOrNumber[0] + : partOrNumber; + const isPositiveNumber = NumberUtils_1.NumberUtils.isPositive(number); + const absoluteNumber = Math.abs(number); + return literalNodeGetter(absoluteNumber, isPositiveNumber); + } +} +exports.NumericalExpressionDataToNodeConverter = NumericalExpressionDataToNodeConverter; + + +/***/ }), + +/***/ "./src/node/ScopeIdentifiersTraverser.ts": +/*!***********************************************!*\ + !*** ./src/node/ScopeIdentifiersTraverser.ts ***! + \***********************************************/ +/***/ (function(__unused_webpack_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; + } + traverseScopeIdentifiers(programNode, parentNode, callback) { + this.scopeAnalyzer.analyze(programNode); + const globalScope = this.scopeAnalyzer.acquireScope(programNode); + this.traverseScopeIdentifiersRecursive(globalScope, globalScope, callback); + } + traverseScopeThroughIdentifiers(programNode, parentNode, callback) { + this.scopeAnalyzer.analyze(programNode); + const globalScope = this.scopeAnalyzer.acquireScope(programNode); + this.traverseScopeThroughIdentifiersRecursive(globalScope, globalScope, callback); + } + traverseScopeIdentifiersRecursive(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.traverseScopeIdentifiersRecursive(rootScope, childScope, callback); + } + } + traverseScopeThroughIdentifiersRecursive(rootScope, currentScope, callback) { + const variableScope = currentScope.variableScope; + const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block) + ? variableScope.block + : null; + if (!variableLexicalScopeNode) { + return; + } + for (const reference of currentScope.through) { + callback({ + reference, + variableLexicalScopeNode + }); + } + for (const childScope of currentScope.childScopes) { + this.traverseScopeThroughIdentifiersRecursive(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 ***! + \********************************/ +/***/ (function(__unused_webpack_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, _g; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Options = void 0; +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 TOptionsPreset_1 = __webpack_require__(/*! ../types/options/TOptionsPreset */ "./src/types/options/TOptionsPreset.ts"); +const TStringArrayWrappersType_1 = __webpack_require__(/*! ../types/options/TStringArrayWrappersType */ "./src/types/options/TStringArrayWrappersType.ts"); +const TTypeFromEnum_1 = __webpack_require__(/*! ../types/utils/TTypeFromEnum */ "./src/types/utils/TTypeFromEnum.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 OptionsPreset_1 = __webpack_require__(/*! ../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const StringArrayIndexesType_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts"); +const Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts"); +const LowObfuscation_1 = __webpack_require__(/*! ./presets/LowObfuscation */ "./src/options/presets/LowObfuscation.ts"); +const MediumObfuscation_1 = __webpack_require__(/*! ./presets/MediumObfuscation */ "./src/options/presets/MediumObfuscation.ts"); +const HighObfuscation_1 = __webpack_require__(/*! ./presets/HighObfuscation */ "./src/options/presets/HighObfuscation.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) { + var _a; + const optionsPreset = Options_1.getOptionsByPreset((_a = inputOptions.optionsPreset) !== null && _a !== void 0 ? _a : OptionsPreset_1.OptionsPreset.Default); + Object.assign(this, optionsPreset, 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)); + } + static getOptionsByPreset(optionsPreset) { + var _a; + const options = (_a = Options_1.optionPresetsMap.get(optionsPreset)) !== null && _a !== void 0 ? _a : null; + if (!options) { + throw new Error(`Options for preset name \`${optionsPreset}\` are not found`); + } + return options; + } +}; +Options.optionPresetsMap = new Map([ + [OptionsPreset_1.OptionsPreset.Default, Default_1.DEFAULT_PRESET], + [OptionsPreset_1.OptionsPreset.LowObfuscation, LowObfuscation_1.LOW_OBFUSCATION_PRESET], + [OptionsPreset_1.OptionsPreset.MediumObfuscation, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET], + [OptionsPreset_1.OptionsPreset.HighObfuscation, HighObfuscation_1.HIGH_OBFUSCATION_PRESET] +]); +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.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + __metadata("design:type", Array) +], Options.prototype, "forceTransformStrings", void 0); +__decorate([ + class_validator_1.IsIn([ + IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator + ]), + __metadata("design:type", typeof (_a = typeof TTypeFromEnum_1.TTypeFromEnum !== "undefined" && TTypeFromEnum_1.TTypeFromEnum) === "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.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "ignoreRequireImports", 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, "numbersToExpressions", void 0); +__decorate([ + class_validator_1.IsIn([ + OptionsPreset_1.OptionsPreset.Default, + OptionsPreset_1.OptionsPreset.LowObfuscation, + OptionsPreset_1.OptionsPreset.MediumObfuscation, + OptionsPreset_1.OptionsPreset.HighObfuscation + ]), + __metadata("design:type", typeof (_b = typeof TOptionsPreset_1.TOptionsPreset !== "undefined" && TOptionsPreset_1.TOptionsPreset) === "function" ? _b : Object) +], Options.prototype, "optionsPreset", 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, "simplify", 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 (_c = typeof TTypeFromEnum_1.TTypeFromEnum !== "undefined" && TTypeFromEnum_1.TTypeFromEnum) === "function" ? _c : 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(3), + __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.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsIn([StringArrayEncoding_1.StringArrayEncoding.None, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4], { each: true }), + __metadata("design:type", Array) +], Options.prototype, "stringArrayEncoding", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayNotEmpty(), + class_validator_1.ArrayUnique(), + class_validator_1.IsIn([StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString], { each: true }), + __metadata("design:type", Array) +], Options.prototype, "stringArrayIndexesType", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "stringArrayIndexShift", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "stringArrayWrappersChainedCalls", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.Min(0), + __metadata("design:type", Number) +], Options.prototype, "stringArrayWrappersCount", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.Min(2), + __metadata("design:type", Number) +], Options.prototype, "stringArrayWrappersParametersMaxCount", void 0); +__decorate([ + class_validator_1.IsIn([StringArrayWrappersType_1.StringArrayWrappersType.Variable, StringArrayWrappersType_1.StringArrayWrappersType.Function]), + __metadata("design:type", typeof (_d = typeof TStringArrayWrappersType_1.TStringArrayWrappersType !== "undefined" && TStringArrayWrappersType_1.TStringArrayWrappersType) === "function" ? _d : Object) +], Options.prototype, "stringArrayWrappersType", 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 (_e = typeof TTypeFromEnum_1.TTypeFromEnum !== "undefined" && TTypeFromEnum_1.TTypeFromEnum) === "function" ? _e : 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 (_f = typeof TInputOptions_1.TInputOptions !== "undefined" && TInputOptions_1.TInputOptions) === "function" ? _f : Object, typeof (_g = typeof IOptionsNormalizer_1.IOptionsNormalizer !== "undefined" && IOptionsNormalizer_1.IOptionsNormalizer) === "function" ? _g : Object]) +], Options); +exports.Options = Options; + + +/***/ }), + +/***/ "./src/options/OptionsNormalizer.ts": +/*!******************************************!*\ + !*** ./src/options/OptionsNormalizer.ts ***! + \******************************************/ +/***/ (function(__unused_webpack_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 StringArrayWappersChainedCalls_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayWappersChainedCalls */ "./src/options/normalizer-rules/StringArrayWappersChainedCalls.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, + StringArrayWappersChainedCalls_1.StringArrayWrappersChainedCallsRule, +]; +OptionsNormalizer = OptionsNormalizer_1 = __decorate([ + inversify_1.injectable() +], OptionsNormalizer); +exports.OptionsNormalizer = OptionsNormalizer; + + +/***/ }), + +/***/ "./src/options/ValidationErrorsFormatter.ts": +/*!**************************************************!*\ + !*** ./src/options/ValidationErrorsFormatter.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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 ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ControlFlowFlatteningThresholdRule = void 0; +const ControlFlowFlatteningThresholdRule = (options) => { + if (options.controlFlowFlatteningThreshold === 0) { + options = Object.assign(Object.assign({}, options), { controlFlowFlattening: false, controlFlowFlatteningThreshold: 0 }); + } + return options; +}; +exports.ControlFlowFlatteningThresholdRule = ControlFlowFlatteningThresholdRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_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"); +const 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; +}; +exports.DeadCodeInjectionRule = DeadCodeInjectionRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts": +/*!************************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DeadCodeInjectionThresholdRule = void 0; +const DeadCodeInjectionThresholdRule = (options) => { + if (options.deadCodeInjectionThreshold === 0) { + options = Object.assign(Object.assign({}, options), { deadCodeInjection: false, deadCodeInjectionThreshold: 0 }); + } + return options; +}; +exports.DeadCodeInjectionThresholdRule = DeadCodeInjectionThresholdRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DomainLockRule.ts": +/*!********************************************************!*\ + !*** ./src/options/normalizer-rules/DomainLockRule.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_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"); +const 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; +}; +exports.DomainLockRule = DomainLockRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/InputFileNameRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/InputFileNameRule.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_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"); +const 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; +}; +exports.InputFileNameRule = InputFileNameRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SeedRule.ts": +/*!**************************************************!*\ + !*** ./src/options/normalizer-rules/SeedRule.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SeedRule = void 0; +const 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) }); +}; +exports.SeedRule = SeedRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SelfDefendingRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SelfDefendingRule = void 0; +const SelfDefendingRule = (options) => { + if (options.selfDefending) { + options = Object.assign(Object.assign({}, options), { compact: true, selfDefending: true }); + } + return options; +}; +exports.SelfDefendingRule = SelfDefendingRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts": +/*!**************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SourceMapBaseUrlRule = void 0; +const 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; +}; +exports.SourceMapBaseUrlRule = SourceMapBaseUrlRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_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"); +const 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; +}; +exports.SourceMapFileNameRule = SourceMapFileNameRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts": +/*!*********************************************************************!*\ + !*** ./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SplitStringsChunkLengthRule = void 0; +const 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; +}; +exports.SplitStringsChunkLengthRule = SplitStringsChunkLengthRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts": +/*!*****************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayEncodingRule = void 0; +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayEncodingRule = (options) => { + if (!options.stringArrayEncoding.length) { + options = Object.assign(Object.assign({}, options), { stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.None + ] }); + } + return options; +}; +exports.StringArrayEncodingRule = StringArrayEncodingRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayRule.ts": +/*!*********************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayRule.ts ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayRule = void 0; +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayRule = (options) => { + if (!options.stringArray) { + options = Object.assign(Object.assign({}, options), { rotateStringArray: false, shuffleStringArray: false, stringArray: false, stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.None + ], stringArrayIndexShift: false, stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0, stringArrayThreshold: 0 }); + } + return options; +}; +exports.StringArrayRule = StringArrayRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts": +/*!************************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayWrappersChainedCallsRule = void 0; +const StringArrayWrappersChainedCallsRule = (options) => { + if (options.stringArrayWrappersCount === 0) { + options = Object.assign(Object.assign({}, options), { stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0 }); + } + return options; +}; +exports.StringArrayWrappersChainedCallsRule = StringArrayWrappersChainedCallsRule; + + +/***/ }), + +/***/ "./src/options/presets/Default.ts": +/*!****************************************!*\ + !*** ./src/options/presets/Default.ts ***! + \****************************************/ +/***/ ((__unused_webpack_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 OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const StringArrayIndexesType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.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: [], + forceTransformStrings: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + identifiersDictionary: [], + ignoreRequireImports: false, + inputFileName: '', + log: false, + numbersToExpressions: false, + optionsPreset: OptionsPreset_1.OptionsPreset.Default, + renameGlobals: false, + renameProperties: false, + reservedNames: [], + reservedStrings: [], + rotateStringArray: true, + seed: 0, + selfDefending: false, + shuffleStringArray: true, + simplify: true, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + splitStrings: false, + splitStringsChunkLength: 10, + stringArray: true, + stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.None + ], + stringArrayIndexesType: [ + StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber + ], + stringArrayIndexShift: true, + stringArrayWrappersChainedCalls: true, + stringArrayWrappersCount: 1, + stringArrayWrappersParametersMaxCount: 2, + stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable, + stringArrayThreshold: 0.75, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + + +/***/ }), + +/***/ "./src/options/presets/HighObfuscation.ts": +/*!************************************************!*\ + !*** ./src/options/presets/HighObfuscation.ts ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.HIGH_OBFUSCATION_PRESET = void 0; +const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const MediumObfuscation_1 = __webpack_require__(/*! ./MediumObfuscation */ "./src/options/presets/MediumObfuscation.ts"); +exports.HIGH_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET), { controlFlowFlatteningThreshold: 1, deadCodeInjectionThreshold: 1, debugProtection: true, debugProtectionInterval: true, optionsPreset: OptionsPreset_1.OptionsPreset.HighObfuscation, splitStringsChunkLength: 5, stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.Rc4 + ], stringArrayWrappersCount: 5, stringArrayWrappersParametersMaxCount: 5, stringArrayThreshold: 1 })); + + +/***/ }), + +/***/ "./src/options/presets/LowObfuscation.ts": +/*!***********************************************!*\ + !*** ./src/options/presets/LowObfuscation.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.LOW_OBFUSCATION_PRESET = void 0; +const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const Default_1 = __webpack_require__(/*! ./Default */ "./src/options/presets/Default.ts"); +exports.LOW_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, Default_1.DEFAULT_PRESET), { disableConsoleOutput: true, optionsPreset: OptionsPreset_1.OptionsPreset.LowObfuscation, rotateStringArray: true, selfDefending: true, shuffleStringArray: true, simplify: true })); + + +/***/ }), + +/***/ "./src/options/presets/MediumObfuscation.ts": +/*!**************************************************!*\ + !*** ./src/options/presets/MediumObfuscation.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MEDIUM_OBFUSCATION_PRESET = void 0; +const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts"); +const LowObfuscation_1 = __webpack_require__(/*! ./LowObfuscation */ "./src/options/presets/LowObfuscation.ts"); +exports.MEDIUM_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, LowObfuscation_1.LOW_OBFUSCATION_PRESET), { controlFlowFlattening: true, deadCodeInjection: true, numbersToExpressions: true, optionsPreset: OptionsPreset_1.OptionsPreset.MediumObfuscation, splitStrings: true, splitStringsChunkLength: 10, stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.Base64 + ], stringArrayWrappersCount: 2, stringArrayWrappersParametersMaxCount: 4, stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Function, transformObjectKeys: true })); + + +/***/ }), + +/***/ "./src/options/presets/NoCustomNodes.ts": +/*!**********************************************!*\ + !*** ./src/options/presets/NoCustomNodes.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_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"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts"); +const StringArrayIndexesType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.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: [], + forceTransformStrings: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + identifiersDictionary: [], + ignoreRequireImports: false, + inputFileName: '', + log: false, + numbersToExpressions: false, + renameGlobals: false, + renameProperties: false, + reservedNames: [], + reservedStrings: [], + rotateStringArray: false, + seed: 0, + selfDefending: false, + shuffleStringArray: false, + simplify: false, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + splitStrings: false, + splitStringsChunkLength: 0, + stringArray: false, + stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.None + ], + stringArrayIndexesType: [ + StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber + ], + stringArrayIndexShift: false, + stringArrayWrappersChainedCalls: false, + stringArrayWrappersCount: 0, + stringArrayWrappersParametersMaxCount: 2, + stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable, + stringArrayThreshold: 0, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + + +/***/ }), + +/***/ "./src/options/validators/IsAllowedForObfuscationTargets.ts": +/*!******************************************************************!*\ + !*** ./src/options/validators/IsAllowedForObfuscationTargets.ts ***! + \******************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*******************************************/ +/***/ (function(__unused_webpack_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 ***! + \***************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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/ArrayStorage.ts": +/*!**************************************!*\ + !*** ./src/storages/ArrayStorage.ts ***! + \**************************************/ +/***/ (function(__unused_webpack_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.ArrayStorage = 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 ArrayStorage = class ArrayStorage { + constructor(randomGenerator, options) { + this.storageLength = 0; + this.randomGenerator = randomGenerator; + this.options = options; + } + initialize() { + this.storage = []; + this.storageId = this.randomGenerator.getRandomString(6); + } + delete(key) { + var _a; + const deletedElement = (_a = this.storage.splice(key, 1)[0]) !== null && _a !== void 0 ? _a : undefined; + if (deletedElement) { + this.storageLength--; + } + return deletedElement; + } + get(key) { + return this.storage[key]; + } + getOrThrow(key) { + const value = this.get(key); + if (!value) { + throw new Error(`No value found in array storage with key \`${key}\``); + } + return value; + } + getKeyOf(value) { + const key = this.storage.indexOf(value); + return key >= 0 ? key : null; + } + getLength() { + return this.storageLength; + } + getStorage() { + return this.storage; + } + getStorageId() { + return this.storageId; + } + mergeWith(storage, mergeId = false) { + this.storage = [...this.storage, ...storage.getStorage()]; + if (mergeId) { + this.storageId = storage.getStorageId(); + } + } + set(key, value) { + if (key === this.storageLength) { + this.storage.push(value); + } + else { + this.storage.splice(key, 0, value); + } + this.storageLength++; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], ArrayStorage.prototype, "storage", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ArrayStorage.prototype, "storageId", void 0); +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], ArrayStorage.prototype, "initialize", null); +ArrayStorage = __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]) +], ArrayStorage); +exports.ArrayStorage = ArrayStorage; + + +/***/ }), + +/***/ "./src/storages/MapStorage.ts": +/*!************************************!*\ + !*** ./src/storages/MapStorage.ts ***! + \************************************/ +/***/ (function(__unused_webpack_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 ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*********************************************************/ +/***/ (function(__unused_webpack_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-transformers/LiteralNodesCacheStorage.ts": +/*!****************************************************************************!*\ + !*** ./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_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.LiteralNodesCacheStorage = 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 StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); +let LiteralNodesCacheStorage = class LiteralNodesCacheStorage extends MapStorage_1.MapStorage { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + buildKey(literalValue, stringArrayStorageItemData) { + return `${literalValue}-${Boolean(stringArrayStorageItemData)}`; + } + shouldUseCachedValue(key, stringArrayStorageItemData) { + return !this.options.stringArrayWrappersCount + && (stringArrayStorageItemData === null || stringArrayStorageItemData === void 0 ? void 0 : stringArrayStorageItemData.encoding) !== StringArrayEncoding_1.StringArrayEncoding.Rc4 + && this.storage.has(key); + } +}; +LiteralNodesCacheStorage = __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]) +], LiteralNodesCacheStorage); +exports.LiteralNodesCacheStorage = LiteralNodesCacheStorage; + + +/***/ }), + +/***/ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts": +/*!*******************************************************************************************************!*\ + !*** ./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts ***! + \*******************************************************************************************************/ +/***/ (function(__unused_webpack_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.StringArrayScopeCallsWrapperLexicalScopeDataStorage = 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 StringArrayScopeCallsWrapperLexicalScopeDataStorage = class StringArrayScopeCallsWrapperLexicalScopeDataStorage extends MapStorage_1.MapStorage { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } +}; +StringArrayScopeCallsWrapperLexicalScopeDataStorage = __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]) +], StringArrayScopeCallsWrapperLexicalScopeDataStorage); +exports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = StringArrayScopeCallsWrapperLexicalScopeDataStorage; + + +/***/ }), + +/***/ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts": +/*!************************************************************************************************!*\ + !*** ./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_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.StringArrayScopeCallsWrapperNamesDataStorage = 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 StringArrayScopeCallsWrapperNamesDataStorage = class StringArrayScopeCallsWrapperNamesDataStorage extends MapStorage_1.MapStorage { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } +}; +StringArrayScopeCallsWrapperNamesDataStorage = __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]) +], StringArrayScopeCallsWrapperNamesDataStorage); +exports.StringArrayScopeCallsWrapperNamesDataStorage = StringArrayScopeCallsWrapperNamesDataStorage; + + +/***/ }), + +/***/ "./src/storages/string-array-transformers/StringArrayStorage.ts": +/*!**********************************************************************!*\ + !*** ./src/storages/string-array-transformers/StringArrayStorage.ts ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_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; +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 ICryptUtilsSwappedAlphabet_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtilsSwappedAlphabet */ "./src/interfaces/utils/ICryptUtilsSwappedAlphabet.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/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/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, cryptUtilsSwappedAlphabet) { + super(randomGenerator, options); + this.rc4EncodedValuesSourcesCache = new Map(); + this.indexShiftAmount = 0; + this.rotationAmount = 0; + this.stringArrayStorageCallsWrapperNamesMap = new Map(); + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.arrayUtils = arrayUtils; + this.cryptUtilsSwappedAlphabet = cryptUtilsSwappedAlphabet; + this.rc4Keys = this.randomGenerator.getRandomGenerator() + .n(() => this.randomGenerator.getRandomGenerator().string({ + length: StringArrayStorage_1.rc4KeyLength + }), StringArrayStorage_1.rc4KeysCount); + } + initialize() { + super.initialize(); + this.indexShiftAmount = this.options.stringArrayIndexShift + ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumIndexShiftAmount, StringArrayStorage_1.maximumIndexShiftAmount) + : 0; + this.rotationAmount = this.options.rotateStringArray + ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumRotationAmount, StringArrayStorage_1.maximumRotationAmount) + : 0; + } + get(value) { + return this.getOrSetIfDoesNotExist(value); + } + getIndexShiftAmount() { + return this.indexShiftAmount; + } + getRotationAmount() { + return this.rotationAmount; + } + getStorageName() { + return this.getStorageId(); + } + getStorageId() { + if (!this.stringArrayStorageName) { + this.stringArrayStorageName = this.identifierNamesGenerator + .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength); + } + return this.stringArrayStorageName; + } + getStorageCallsWrapperName(stringArrayEncoding) { + var _a; + const storageCallsWrapperName = (_a = this.stringArrayStorageCallsWrapperNamesMap + .get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : null; + if (storageCallsWrapperName) { + return storageCallsWrapperName; + } + const newStorageCallsWrapperName = this.identifierNamesGenerator + .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength); + this.stringArrayStorageCallsWrapperNamesMap.set(stringArrayEncoding, newStorageCallsWrapperName); + return newStorageCallsWrapperName; + } + 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)); + } + getOrSetIfDoesNotExist(value) { + const { encodedValue, encoding, decodeKey } = this.getEncodedValue(value); + const storedStringArrayStorageItemData = this.storage.get(encodedValue); + if (storedStringArrayStorageItemData) { + return storedStringArrayStorageItemData; + } + const stringArrayStorageItemData = { + encodedValue, + encoding, + decodeKey, + value, + index: this.getLength() + }; + this.storage.set(encodedValue, stringArrayStorageItemData); + return stringArrayStorageItemData; + } + getEncodedValue(value) { + var _a; + const encoding = this.options.stringArrayEncoding.length + ? this.randomGenerator + .getRandomGenerator() + .pickone(this.options.stringArrayEncoding) + : null; + if (!encoding) { + throw new Error('`stringArrayEncoding` option array is empty'); + } + switch (encoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: { + const decodeKey = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys); + const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.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, encoding, decodeKey }; + } + case StringArrayEncoding_1.StringArrayEncoding.Base64: { + const decodeKey = null; + const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(value); + return { encodedValue, encoding, decodeKey }; + } + default: { + const decodeKey = null; + const encodedValue = value; + return { encodedValue, encoding, decodeKey }; + } + } + } +}; +StringArrayStorage.minimumRotationAmount = 100; +StringArrayStorage.maximumRotationAmount = 500; +StringArrayStorage.minimumIndexShiftAmount = 100; +StringArrayStorage.maximumIndexShiftAmount = 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.ICryptUtilsSwappedAlphabet)), + __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 ICryptUtilsSwappedAlphabet_1.ICryptUtilsSwappedAlphabet !== "undefined" && ICryptUtilsSwappedAlphabet_1.ICryptUtilsSwappedAlphabet) === "function" ? _e : Object]) +], StringArrayStorage); +exports.StringArrayStorage = StringArrayStorage; + + +/***/ }), + +/***/ "./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts": +/*!****************************************************************************************!*\ + !*** ./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_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.VisitedLexicalScopeNodesStackStorage = 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 ArrayStorage_1 = __webpack_require__(/*! ../ArrayStorage */ "./src/storages/ArrayStorage.ts"); +let VisitedLexicalScopeNodesStackStorage = class VisitedLexicalScopeNodesStackStorage extends ArrayStorage_1.ArrayStorage { + constructor(randomGenerator, options, arrayUtils) { + super(randomGenerator, options); + this.arrayUtils = arrayUtils; + } + getLastElement() { + return this.arrayUtils.getLastElement(this.getStorage()); + } + getPenultimateElement() { + var _a; + const storageLength = this.getLength(); + return (_a = this.get(storageLength - 2)) !== null && _a !== void 0 ? _a : undefined; + } + push(nodeWithLexicalScopeStatements) { + const storageLength = this.getLength(); + this.set(storageLength, nodeWithLexicalScopeStatements); + } + pop() { + const storageLength = this.getLength(); + return this.delete(storageLength - 1); + } +}; +VisitedLexicalScopeNodesStackStorage = __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]) +], VisitedLexicalScopeNodesStackStorage); +exports.VisitedLexicalScopeNodesStackStorage = VisitedLexicalScopeNodesStackStorage; + + +/***/ }), + +/***/ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts": +/*!*********************************************************************************!*\ + !*** ./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/code-transformers/TCodeTransformerFactory.ts": +/*!**************************************************************************!*\ + !*** ./src/types/container/code-transformers/TCodeTransformerFactory.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts": +/*!*****************************************************************************!*\ + !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts": +/*!**********************************************************************************!*\ + !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts": +/*!*********************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts": +/*!***********************************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts": +/*!***************************************************************************************************!*\ + !*** ./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts": +/*!****************************************************************************!*\ + !*** ./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts": +/*!******************************************************************************!*\ + !*** ./src/types/container/node-transformers/TControlFlowReplacerFactory.ts ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts": +/*!*****************************************************************************!*\ + !*** ./src/types/container/node-transformers/TControlFlowStorageFactory.ts ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TNodeTransformerFactory.ts": +/*!**************************************************************************!*\ + !*** ./src/types/container/node-transformers/TNodeTransformerFactory.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/node-transformers/TObfuscatingGuardFactory.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts": +/*!************************************************************************************!*\ + !*** ./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts ***! + \************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/source-code/TObfuscatedCodeFactory.ts": +/*!*******************************************************************!*\ + !*** ./src/types/container/source-code/TObfuscatedCodeFactory.ts ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/options/TInputCLIOptions.ts": +/*!***********************************************!*\ + !*** ./src/types/options/TInputCLIOptions.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/options/TInputOptions.ts": +/*!********************************************!*\ + !*** ./src/types/options/TInputOptions.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/options/TOptionsPreset.ts": +/*!*********************************************!*\ + !*** ./src/types/options/TOptionsPreset.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/options/TStringArrayWrappersType.ts": +/*!*******************************************************!*\ + !*** ./src/types/options/TStringArrayWrappersType.ts ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/storages/TControlFlowStorage.ts": +/*!***************************************************!*\ + !*** ./src/types/storages/TControlFlowStorage.ts ***! + \***************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/storages/TCustomCodeHelperGroupStorage.ts": +/*!*************************************************************!*\ + !*** ./src/types/storages/TCustomCodeHelperGroupStorage.ts ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/utils/TTypeFromEnum.ts": +/*!******************************************!*\ + !*** ./src/types/utils/TTypeFromEnum.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts": +/*!************************************************************!*\ + !*** ./src/utils/AbstractTransformerNamesGroupsBuilder.ts ***! + \************************************************************/ +/***/ (function(__unused_webpack_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 ***! + \*********************************/ +/***/ (function(__unused_webpack_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; + } + fillWithRange(length, valueFunction) { + const range = []; + for (let i = 0; i < length; i++) { + range.push(valueFunction(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; + } + getLastElement(array) { + var _a; + const arrayLength = array.length; + return (_a = array[arrayLength - 1]) !== null && _a !== void 0 ? _a : undefined; + } + 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 ***! + \*********************************/ +/***/ (function(__unused_webpack_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 Base64Alphabet_1 = __webpack_require__(/*! ../constants/Base64Alphabet */ "./src/constants/Base64Alphabet.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.base64Alphabet = Base64Alphabet_1.base64alphabet; + this.randomGenerator = randomGenerator; + } + btoa(string) { + const chars = this.base64Alphabet; + 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/CryptUtilsSwappedAlphabet.ts": +/*!************************************************!*\ + !*** ./src/utils/CryptUtilsSwappedAlphabet.ts ***! + \************************************************/ +/***/ (function(__unused_webpack_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.CryptUtilsSwappedAlphabet = 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 Base64AlphabetSwapped_1 = __webpack_require__(/*! ../constants/Base64AlphabetSwapped */ "./src/constants/Base64AlphabetSwapped.ts"); +const CryptUtils_1 = __webpack_require__(/*! ./CryptUtils */ "./src/utils/CryptUtils.ts"); +let CryptUtilsSwappedAlphabet = class CryptUtilsSwappedAlphabet extends CryptUtils_1.CryptUtils { + constructor(randomGenerator) { + super(randomGenerator); + this.base64Alphabet = Base64AlphabetSwapped_1.base64alphabetSwapped; + } +}; +CryptUtilsSwappedAlphabet = __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]) +], CryptUtilsSwappedAlphabet); +exports.CryptUtilsSwappedAlphabet = CryptUtilsSwappedAlphabet; + + +/***/ }), + +/***/ "./src/utils/EscapeSequenceEncoder.ts": +/*!********************************************!*\ + !*** ./src/utils/EscapeSequenceEncoder.ts ***! + \********************************************/ +/***/ (function(__unused_webpack_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 EscapeSequenceEncoder_1; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.EscapeSequenceEncoder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +let EscapeSequenceEncoder = EscapeSequenceEncoder_1 = 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'); + let prefix; + let template; + const result = string.replace(replaceRegExp, (character) => { + const shouldEncodeCharacter = encodeAllSymbols + || EscapeSequenceEncoder_1.forceEscapeCharactersRegExp.test(character); + if (!shouldEncodeCharacter) { + return character; + } + if (EscapeSequenceEncoder_1.ASCIICharactersRegExp.test(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.ASCIICharactersRegExp = /[\x00-\x7F]/; +EscapeSequenceEncoder.forceEscapeCharactersRegExp = /[\x00-\x1F\x7F-\x9F'"\\\s]/; +EscapeSequenceEncoder = EscapeSequenceEncoder_1 = __decorate([ + inversify_1.injectable() +], EscapeSequenceEncoder); +exports.EscapeSequenceEncoder = EscapeSequenceEncoder; + + +/***/ }), + +/***/ "./src/utils/LevelledTopologicalSorter.ts": +/*!************************************************!*\ + !*** ./src/utils/LevelledTopologicalSorter.ts ***! + \************************************************/ +/***/ (function(__unused_webpack_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 ***! + \**********************************/ +/***/ ((__unused_webpack_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; + } + static isPositive(number) { + if (isNaN(number)) { + throw new Error('Given value is NaN'); + } + if (number > 0) { + return true; + } + if (number < 0) { + return false; + } + if (1 / number === Number.POSITIVE_INFINITY) { + return true; + } + return false; + } + static isUnsafeNumber(number) { + if (isNaN(number)) { + throw new Error('Given value is NaN'); + } + return number < Number.MIN_SAFE_INTEGER || number > Number.MAX_SAFE_INTEGER; + } + static getFactors(number) { + if (number === 0) { + throw new Error('Invalid number. Allowed only non-zero number'); + } + number = Math.abs(number); + if (number === 1) { + return [-number, number]; + } + const factors = []; + const root = Math.sqrt(number); + const isEven = number % 2 === 0; + const incrementValue = isEven ? 1 : 2; + for (let currentFactor = 1; currentFactor <= root; currentFactor += incrementValue) { + if (number % currentFactor !== 0) { + continue; + } + factors.push(...[-currentFactor, currentFactor]); + const compliment = number / currentFactor; + if (compliment !== currentFactor) { + factors.push(...[-compliment, compliment]); + } + } + return factors.sort((a, b) => a - b); + } +} +exports.NumberUtils = NumberUtils; + + +/***/ }), + +/***/ "./src/utils/RandomGenerator.ts": +/*!**************************************!*\ + !*** ./src/utils/RandomGenerator.ts ***! + \**************************************/ +/***/ (function(__unused_webpack_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 + }); + } + getRandomIntegerExcluding(min, max, valuesToExclude) { + const valuesToPickArray = []; + for (let value = min; value <= max; value++) { + if (valuesToExclude.includes(value)) { + continue; + } + valuesToPickArray.push(value); + } + return this.randomGenerator.pickone(valuesToPickArray); + } + 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/StringUtils.ts": +/*!**********************************!*\ + !*** ./src/utils/StringUtils.ts ***! + \**********************************/ +/***/ (function(__unused_webpack_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.StringUtils = void 0; +const js_string_escape_1 = __importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape")); +class StringUtils { + static escapeJsString(string) { + return js_string_escape_1.default(string); + } +} +exports.StringUtils = StringUtils; + + +/***/ }), + +/***/ "./src/utils/Utils.ts": +/*!****************************!*\ + !*** ./src/utils/Utils.ts ***! + \****************************/ +/***/ ((__unused_webpack_module, exports) => { + +"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}`; + } + static makeEnum(enumLikeObject) { + return Object.freeze(Object.assign({}, enumLikeObject)); + } +} +exports.Utils = Utils; +Utils.baseMultipleSourcesIdentifiersPrefix = 'a'; +Utils.hexadecimalPrefix = '0x'; + + +/***/ }), + +/***/ "./src/cli/utils sync recursive": +/*!*****************************!*\ + !*** ./src/cli/utils/ sync ***! + \*****************************/ +/***/ ((module) => { + +function webpackEmptyContext(req) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; +} +webpackEmptyContext.keys = () => []; +webpackEmptyContext.resolve = webpackEmptyContext; +webpackEmptyContext.id = "./src/cli/utils sync recursive"; +module.exports = webpackEmptyContext; + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json": +/*!**************************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json ***! + \**************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +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\"]"); + +/***/ }), + +/***/ "@javascript-obfuscator/escodegen": +/*!***************************************************!*\ + !*** external "@javascript-obfuscator/escodegen" ***! + \***************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("@javascript-obfuscator/escodegen");; + +/***/ }), + +/***/ "acorn": +/*!************************!*\ + !*** external "acorn" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("acorn");; + +/***/ }), + +/***/ "chalk": +/*!************************!*\ + !*** external "chalk" ***! + \************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("chalk");; + +/***/ }), + +/***/ "chance": +/*!*************************!*\ + !*** external "chance" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("chance");; + +/***/ }), + +/***/ "class-validator": +/*!**********************************!*\ + !*** external "class-validator" ***! + \**********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("class-validator");; + +/***/ }), + +/***/ "commander": +/*!****************************!*\ + !*** external "commander" ***! + \****************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("commander");; + +/***/ }), + +/***/ "eslint-scope": +/*!*******************************!*\ + !*** external "eslint-scope" ***! + \*******************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("eslint-scope");; + +/***/ }), + +/***/ "estraverse": +/*!*****************************!*\ + !*** external "estraverse" ***! + \*****************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("estraverse");; + +/***/ }), + +/***/ "fast-deep-equal": +/*!**********************************!*\ + !*** external "fast-deep-equal" ***! + \**********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("fast-deep-equal");; + +/***/ }), + +/***/ "fs": +/*!*********************!*\ + !*** external "fs" ***! + \*********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("fs");; + +/***/ }), + +/***/ "inversify": +/*!****************************!*\ + !*** external "inversify" ***! + \****************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("inversify");; + +/***/ }), + +/***/ "js-string-escape": +/*!***********************************!*\ + !*** external "js-string-escape" ***! + \***********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("js-string-escape");; + +/***/ }), + +/***/ "md5": +/*!**********************!*\ + !*** external "md5" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("md5");; + +/***/ }), + +/***/ "mkdirp": +/*!*************************!*\ + !*** external "mkdirp" ***! + \*************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("mkdirp");; + +/***/ }), + +/***/ "multimatch": +/*!*****************************!*\ + !*** external "multimatch" ***! + \*****************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("multimatch");; + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("path");; + +/***/ }), + +/***/ "reflect-metadata": +/*!***********************************!*\ + !*** external "reflect-metadata" ***! + \***********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("reflect-metadata");; + +/***/ }), + +/***/ "string-template": +/*!**********************************!*\ + !*** external "string-template" ***! + \**********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("string-template");; + +/***/ }), + +/***/ "stringz": +/*!**************************!*\ + !*** external "stringz" ***! + \**************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("stringz");; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ if(__webpack_module_cache__[moduleId]) { +/******/ return __webpack_module_cache__[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop) +/******/ })(); +/******/ +/************************************************************************/ +/******/ // module exports must be returned from runtime so entry inlining is disabled +/******/ // startup +/******/ // Load entry module and return exports +/******/ return __webpack_require__("./index.cli.ts"); +/******/ })() +; //# sourceMappingURL=index.cli.js.map \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index d1bd9f364..b94b24b22 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,3 +1,17629 @@ -/*! For license information please see index.js.LICENSE.txt */ -require("source-map-support").install(),module.exports=(()=>{"use strict";var e={3254:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(2895);e.exports=o.JavaScriptObfuscator},425:function(e,t,r){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.prototype.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(6054)),c=a(r(2242));class d{static parse(e,t){const r=d.sourceTypes.length;for(let o=0;o"),s=`...${o.slice(n,i).replace(/^\s+/,"")}...`;throw new Error(`ERROR at line ${r.line}: ${t}\n${a} ${s}`)}}t.ASTParserFacade=d,d.colorError=c.default.red,d.nearestSymbolsCount=15,d.sourceTypes=["script","module"]},7086:function(e,t,r){var o,n,i,a,s,c,d,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]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),p=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.prototype.hasOwnProperty.call(e,r)&&l(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 S=r(2991),y=r(5350),N=f(r(9385)),h=r(2596),_=r(7673),I=r(5082),b=r(4482),O=r(1403),E=r(698),C=r(7082),v=r(5670),T=r(6221),R=r(4212),A=r(8932),j=r(4941),M=r(425),F=r(4134),P=r(4741);let D=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,P.Utils.buildVersionMessage("2.10.0",1608894104436)),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 M.ASTParserFacade.parse(e,o.parseOptions)}transformAstTree(e){return e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Initializing),!F.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.ControlFlowFlattening)),this.options.renameProperties&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.RenameProperties)),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Converting),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.RenameIdentifiers),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.StringArray),this.options.simplify&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Simplifying)),e=this.runNodeTransformationStage(e,A.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=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(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)}};D.parseOptions={ecmaVersion:j.ecmaVersion,allowHashBang:!0,allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,locations:!0,ranges:!0},D.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},D.codeTransformersList=[C.CodeTransformer.HashbangOperatorTransformer],D.nodeTransformersList=[R.NodeTransformer.BooleanLiteralTransformer,R.NodeTransformer.BlockStatementControlFlowTransformer,R.NodeTransformer.BlockStatementSimplifyTransformer,R.NodeTransformer.CommentsTransformer,R.NodeTransformer.CustomCodeHelpersTransformer,R.NodeTransformer.DeadCodeInjectionTransformer,R.NodeTransformer.EscapeSequenceTransformer,R.NodeTransformer.EvalCallExpressionTransformer,R.NodeTransformer.ExportSpecifierTransformer,R.NodeTransformer.ExpressionStatementsMergeTransformer,R.NodeTransformer.FunctionControlFlowTransformer,R.NodeTransformer.IfStatementSimplifyTransformer,R.NodeTransformer.LabeledStatementTransformer,R.NodeTransformer.RenamePropertiesTransformer,R.NodeTransformer.MemberExpressionTransformer,R.NodeTransformer.MetadataTransformer,R.NodeTransformer.MethodDefinitionTransformer,R.NodeTransformer.NumberLiteralTransformer,R.NodeTransformer.NumberToNumericalExpressionTransformer,R.NodeTransformer.ObfuscatingGuardsTransformer,R.NodeTransformer.ObjectExpressionKeysTransformer,R.NodeTransformer.ObjectExpressionTransformer,R.NodeTransformer.ObjectPatternPropertiesTransformer,R.NodeTransformer.ParentificationTransformer,R.NodeTransformer.ScopeIdentifiersTransformer,R.NodeTransformer.SplitStringTransformer,R.NodeTransformer.StringArrayScopeCallsWrapperTransformer,R.NodeTransformer.StringArrayTransformer,R.NodeTransformer.TemplateLiteralTransformer,R.NodeTransformer.VariableDeclarationsMergeTransformer,R.NodeTransformer.VariablePreserveTransformer],D=o=p([S.injectable(),g(0,S.inject(y.ServiceIdentifiers.ICodeTransformersRunner)),g(1,S.inject(y.ServiceIdentifiers.INodeTransformersRunner)),g(2,S.inject(y.ServiceIdentifiers.IRandomGenerator)),g(3,S.inject(y.ServiceIdentifiers.Factory__IObfuscatedCode)),g(4,S.inject(y.ServiceIdentifiers.ILogger)),g(5,S.inject(y.ServiceIdentifiers.IOptions)),m("design:paramtypes",["function"==typeof(n=void 0!==_.ICodeTransformersRunner&&_.ICodeTransformersRunner)?n:Object,"function"==typeof(i=void 0!==E.INodeTransformersRunner&&E.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==O.IRandomGenerator&&O.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.TObfuscatedCodeFactory&&h.TObfuscatedCodeFactory)?s:Object,"function"==typeof(c=void 0!==I.ILogger&&I.ILogger)?c:Object,"function"==typeof(d=void 0!==b.IOptions&&b.IOptions)?d:Object])],D),t.JavaScriptObfuscator=D},2895:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0,r(9906);const o=r(5350),n=r(1636),i=r(8516),a=r(4741);class s{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 i=a.Utils.getIdentifiersPrefixForMultipleSources(t.identifiersPrefix,n),c=e[o],d=Object.assign(Object.assign({},t),{identifiersPrefix:i});return Object.assign(Object.assign({},r),{[o]:s.obfuscate(c,d)})}),{})}static getOptionsByPreset(e){return i.Options.getOptionsByPreset(e)}}t.JavaScriptObfuscator=s,s.version=null!=="2.10.0"?"2.10.0":"unknown"},3900:function(e,t,r){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.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=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.CallsGraphAnalyzer=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(8904),g=r(8657),S=r(4134),y=r(8134);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];f.traverse(t,{enter:o=>{if(S.NodeGuards.isCallExpressionNode(o))return t.parentNode!==y.NodeStatementUtils.getParentNodeWithStatements(o)?f.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(),l(0,u.inject(p.ServiceIdentifiers.Factory__ICalleeDataExtractor)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TCalleeDataExtractorFactory&&m.TCalleeDataExtractorFactory)?n:Object])],N),t.CallsGraphAnalyzer=N},3159:function(e,t,r){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;const n=r(2991);let i=class{};i=o([n.injectable()],i),t.AbstractCalleeDataExtractor=i},5341:function(e,t,r){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.prototype.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(2991),c=a(r(4523)),d=r(3159),l=r(4134),u=r(8134);let p=class extends d.AbstractCalleeDataExtractor{extract(e,t){if(!l.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(l.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};p=i([s.injectable()],p),t.FunctionDeclarationCalleeDataExtractor=p},1853:function(e,t,r){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.prototype.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(2991),c=a(r(4523)),d=r(3159),l=r(4134),u=r(8134);let p=class extends d.AbstractCalleeDataExtractor{extract(e,t){let r=null,o=null;return l.NodeGuards.isIdentifierNode(t)?(r=t.name,o=this.getCalleeBlockStatement(u.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name)):l.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(l.NodeGuards.isFunctionExpressionNode(e)&&o&&l.NodeGuards.isVariableDeclaratorNode(o)&&l.NodeGuards.isIdentifierNode(o.id)&&o.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};p=i([s.injectable()],p),t.FunctionExpressionCalleeDataExtractor=p},5773:function(e,t,r){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.prototype.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(2991),d=s(r(4523)),l=r(3159),u=r(4134),p=r(8134);let f=o=class extends l.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(p.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 d.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),d.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}};f=o=a([c.injectable()],f),t.ObjectExpressionCalleeDataExtractor=f},472:function(e,t,r){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.NumberNumericalExpressionAnalyzer=void 0;const c=r(2991),d=r(1403),l=r(5350),u=r(6543);let p=o=class{constructor(e){this.numberFactorsMap=new Map,this.randomGenerator=e}analyze(e){if(isNaN(e))throw new Error("Given value is NaN");return u.NumberUtils.isUnsafeNumber(e)?[e]:this.generateAdditionParts(e).map((e=>this.mixWithMultiplyParts(e)))}generateAdditionParts(e){const t=[],r=Math.min(Math.abs(2*e),Number.MAX_SAFE_INTEGER),n=Math.min(-1e4,-r),i=Math.max(1e4,r);let a=0;for(let r=0;r.5)||0===e)return e;let r=null!==(t=this.numberFactorsMap.get(e))&&void 0!==t?t:null;if(r||(r=u.NumberUtils.getFactors(e),this.numberFactorsMap.set(e,r)),!r.length)return e;const o=r[this.randomGenerator.getRandomInteger(0,r.length-1)];return[o,e/o]}};p.additionalParts=3,p=o=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),a("design:paramtypes",["function"==typeof(n=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?n:Object])],p),t.NumberNumericalExpressionAnalyzer=p},3e3:function(e,t,r){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.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=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.PrevailingKindOfVariablesAnalyzer=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(5768),g=r(4134);let S=o=class{constructor(e){this.prevailingKindOfVariables=o.defaultKindOfVariables,this.arrayUtils=e}analyze(e){var t;const r=[];f.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}};S.defaultKindOfVariables="var",S=o=s([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.IArrayUtils)),d("design:paramtypes",["function"==typeof(n=void 0!==m.IArrayUtils&&m.IArrayUtils)?n:Object])],S),t.PrevailingKindOfVariablesAnalyzer=S},9458:function(e,t,r){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.prototype.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(2991),d=s(r(8)),l=s(r(4523)),u=r(4941),p=r(4134);let f=o=class{constructor(){this.scopeManager=null}static attachMissingRanges(e){l.replace(e,{enter:(e,t)=>{var r,n,i,a;return e.range||(e.range=[null!==(n=null===(r=null==t?void 0:t.range)||void 0===r?void 0:r[0])&&void 0!==n?n:o.emptyRangeValue,null!==(a=null===(i=null==t?void 0:t.range)||void 0===i?void 0:i[1])&&void 0!==a?a:o.emptyRangeValue]),e}})}static isRootNode(e){return p.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)}};f.eslintScopeOptions={ecmaVersion:u.ecmaVersion,optimistic:!0},f.sourceTypes=["script","module"],f.emptyRangeValue=0,f=o=a([c.injectable()],f),t.ScopeAnalyzer=f},1190:function(e,t,r){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}),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},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.prototype.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)},p=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 f=r(2991),m=r(5350),g=l(r(4523)),S=r(4482),y=r(1403),N=r(5683),h=r(4134),_=r(8241),I=r(739);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 I.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){_.NodeLiteralUtils.isStringLiteralNode(e)&&(_.NodeLiteralUtils.isProhibitedLiteralNode(e,t)||this.shouldAddValueToStringArray(e)&&this.stringArrayStorageData.set(e,this.stringArrayStorage.getOrThrow(e.value)))}shouldAddValueToStringArray(e){return!!I.NodeMetadata.isForceTransformNode(e)||e.value.length>=o.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}};b.minimumLengthForStringArray=3,b=o=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(1,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==N.IStringArrayStorage&&N.IStringArrayStorage)?n:Object,"function"==typeof(i=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==S.IOptions&&S.IOptions)?a:Object])],b),t.StringArrayStorageAnalyzer=b},8541:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403);let p=class{constructor(e,t){this.randomGenerator=e,this.options=t}};p=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],p),t.AbstractCodeTransformer=p},4132:function(e,t,r){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(2991),i=r(7207);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.CodeTransformerNamesGroupsBuilder=a},8282:function(e,t,r){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(2991),d=r(5350),l=r(5127),u=r(9658);let p=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})}),{})}};p=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.Factory__ICodeTransformer)),s(1,c.inject(d.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),a("design:paramtypes",["function"==typeof(o=void 0!==l.TCodeTransformerFactory&&l.TCodeTransformerFactory)?o:Object,"function"==typeof(n=void 0!==u.ITransformerNamesGroupsBuilder&&u.ITransformerNamesGroupsBuilder)?n:Object])],p),t.CodeTransformersRunner=p},71:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403),p=r(5670),f=r(8541);let m=class extends f.AbstractCodeTransformer{constructor(e,t){super(e,t),this.hashbangOperatorLine=null}transformCode(e,t){switch(t){case p.CodeTransformationStage.PreparingTransformers:return this.removeAndSaveHashbangOperatorLine(e);case p.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(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],m),t.HashbangOperatorTransformer=m},6366:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetString=void 0,t.alphabetString="abcdefghijklmnopqrstuvwxyz"},2691:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetStringUppercase=void 0;const o=r(6366);t.alphabetStringUppercase=o.alphabetString.toUpperCase()},6934:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabet=void 0;const o=r(2691),n=r(6366),i=r(2023);t.base64alphabet=`${o.alphabetStringUppercase}${n.alphabetString}${i.numbersString}+/=`},4497:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabetSwapped=void 0;const o=r(2691),n=r(6366),i=r(2023);t.base64alphabetSwapped=`${n.alphabetString}${o.alphabetStringUppercase}${i.numbersString}+/=`},4941:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ecmaVersion=void 0,t.ecmaVersion=12},2023:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.numbersString=void 0,t.numbersString="0123456789"},1636:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyContainerFacade=void 0;const o=r(2991),n=r(5350),i=r(5821),a=r(7867),s=r(9654),c=r(5602),d=r(3693),l=r(7626),u=r(8974),p=r(645),f=r(4080),m=r(4028),g=r(5424),S=r(1719),y=r(4682),N=r(1469),h=r(7817),_=r(725),I=r(1426),b=r(1466),O=r(9542),E=r(1937),C=r(8282),v=r(7086),T=r(7149),R=r(6827),A=r(8072),j=r(8589);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 j.SourceCode(e,t))).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.TInputOptions).toDynamicValue((()=>r)).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ILogger).to(T.Logger).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IJavaScriptObfuscator).to(v.JavaScriptObfuscator).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ICodeTransformersRunner).to(C.CodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.INodeTransformersRunner).to(R.NodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IObfuscatedCode).to(A.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.load(i.analyzersModule),this.container.load(a.codeTransformersModule),this.container.load(s.controlFlowTransformersModule),this.container.load(c.convertingTransformersModule),this.container.load(d.customCodeHelpersModule),this.container.load(l.customNodesModule),this.container.load(u.deadCodeInjectionTransformersModule),this.container.load(p.finalizingTransformersModule),this.container.load(f.generatorsModule),this.container.load(m.initializingTransformersModule),this.container.load(g.nodeModule),this.container.load(S.nodeTransformersModule),this.container.load(y.optionsModule),this.container.load(N.preparingTransformersModule),this.container.load(h.renameIdentifiersTransformersModule),this.container.load(_.renamePropertiesTransformersModule),this.container.load(I.simplifyingTransformersModule),this.container.load(b.storagesModule),this.container.load(O.stringArrayTransformersModule),this.container.load(E.utilsModule)}unload(){this.container.unbindAll()}}},5350:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceIdentifiers=void 0,(r=t.ServiceIdentifiers||(t.ServiceIdentifiers={})).Factory__ICalleeDataExtractor="Factory",r.Factory__ICodeTransformer="Factory",r.Factory__IControlFlowCustomNode="Factory",r.Factory__IControlFlowReplacer="Factory",r.Factory__ICustomCodeHelper="Factory",r.Factory__ICustomCodeHelperGroup="Factory",r.Factory__IDeadCodeInjectionCustomNode="Factory",r.Factory__IIdentifierNamesGenerator="Factory",r.Factory__INodeGuard="Factory",r.Factory__INodeTransformer="Factory",r.Factory__IObfuscatedCode="Factory",r.Factory__IObjectExpressionKeysTransformerCustomNode="Factory",r.Factory__IObjectExpressionExtractor="Factory",r.Factory__IStringArrayCustomNode="Factory",r.Factory__IStringArrayIndexNode="Factory",r.Factory__TControlFlowStorage="Factory",r.IArrayUtils="IArrayUtils",r.ICalleeDataExtractor="ICalleeDataExtractor",r.ICallsGraphAnalyzer="ICallsGraphAnalyzer",r.ICodeTransformer="ICodeTransformer",r.ICodeTransformerNamesGroupsBuilder="ICodeTransformerNamesGroupsBuilder",r.ICodeTransformersRunner="ICodeTransformersRunner",r.ICryptUtils="ICryptUtils",r.ICryptUtilsSwappedAlphabet="ICryptUtilsSwappedAlphabet",r.ICustomCodeHelper="ICustomCodeHelper",r.ICustomCodeHelperGroup="ICustomCodeHelperGroup",r.IControlFlowReplacer="IControlFlowReplacer",r.ICustomCodeHelperFormatter="ICustomCodeHelperFormatter",r.ICustomCodeHelperObfuscator="ICustomCodeHelperObfuscator",r.IEscapeSequenceEncoder="IEscapeSequenceEncoder",r.IIdentifierNamesGenerator="IIdentifierNamesGenerator",r.IIdentifierReplacer="IIdentifierReplacer",r.IJavaScriptObfuscator="IJavaScriptObfuscator",r.ILevelledTopologicalSorter="ILevelledTopologicalSorter",r.ILiteralNodesCacheStorage="ILiteralNodesCacheStorage",r.ILogger="ILogger",r.INodeGuard="INodeGuard",r.INodeTransformer="INodeTransformer",r.INodeTransformerNamesGroupsBuilder="INodeTransformerNamesGroupsBuilder",r.INodeTransformersRunner="INodeTransformersRunner",r.INumberNumericalExpressionAnalyzer="INumberNumericalExpressionAnalyzer",r.IObfuscatedCode="IObfuscatedCode",r.IOptions="IOptions",r.IOptionsNormalizer="IOptionsNormalizer",r.IPrevailingKindOfVariablesAnalyzer="IPrevailingKindOfVariablesAnalyzer",r.IObjectExpressionExtractor="IObjectExpressionExtractor",r.IRandomGenerator="IRandomGenerator",r.IRenamePropertiesReplacer="IRenamePropertiesReplacer",r.IScopeIdentifiersTraverser="IScopeIdentifiersTraverser",r.ISourceCode="ISourceCode",r.IScopeAnalyzer="IScopeAnalyzer",r.IStringArrayIndexNode="IStringArrayIndexNode",r.IStringArrayScopeCallsWrapperLexicalScopeDataStorage="IStringArrayScopeCallsWrapperLexicalScopeDataStorage",r.IStringArrayScopeCallsWrapperNamesDataStorage="IStringArrayScopeCallsWrapperNamesDataStorage",r.IStringArrayStorage="IStringArrayStorage",r.IStringArrayStorageAnalyzer="IStringArrayStorageAnalyzer",r.IVisitedLexicalScopeNodesStackStorage="IVisitedLexicalScopeNodesStackStorage",r.Newable__ICustomNode="Newable",r.Newable__TControlFlowStorage="Newable",r.TCustomNodeGroupStorage="TCustomNodeGroupStorage",r.TInputOptions="TInputOptions"},5821:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.analyzersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(8657),s=r(3900),c=r(5341),d=r(1853),l=r(472),u=r(5773),p=r(3e3),f=r(9458),m=r(1190);t.analyzersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.ICallsGraphAnalyzer).to(s.CallsGraphAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.INumberNumericalExpressionAnalyzer).to(l.NumberNumericalExpressionAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer).to(p.PrevailingKindOfVariablesAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IScopeAnalyzer).to(f.ScopeAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IStringArrayStorageAnalyzer).to(m.StringArrayStorageAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(c.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(d.FunctionExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(u.ObjectExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICalleeDataExtractor))}))},7867:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.codeTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(7082),s=r(4132),c=r(71);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)}))},3693:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.customCodeHelpersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(7295),s=r(1806),c=r(4860),d=r(1723),l=r(9673),u=r(4582),p=r(5769),f=r(5655),m=r(259),g=r(299),S=r(2628),y=r(5600),N=r(9915),h=r(5227),_=r(4400),I=r(7675),b=r(7689),O=r(9681),E=r(8352),C=r(5007),v=r(256);t.customCodeHelpersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.ICustomCodeHelper).to(f.ConsoleOutputDisableCodeHelper).whenTargetNamed(a.CustomCodeHelper.ConsoleOutputDisable),e(i.ServiceIdentifiers.ICustomCodeHelper).to(S.DebugProtectionFunctionCallCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionCall),e(i.ServiceIdentifiers.ICustomCodeHelper).to(y.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(_.CallsControllerFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.CallsControllerFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(I.SelfDefendingUnicodeCodeHelper).whenTargetNamed(a.CustomCodeHelper.SelfDefendingUnicode),e(i.ServiceIdentifiers.ICustomCodeHelper).to(b.StringArrayCallsWrapperCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapper),e(i.ServiceIdentifiers.ICustomCodeHelper).to(O.StringArrayCallsWrapperBase64CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperBase64),e(i.ServiceIdentifiers.ICustomCodeHelper).to(E.StringArrayCallsWrapperRc4CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperRc4),e(i.ServiceIdentifiers.ICustomCodeHelper).to(C.StringArrayCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArray),e(i.ServiceIdentifiers.ICustomCodeHelper).to(v.StringArrayRotateFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayRotateFunction),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(c.ConsoleOutputCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.ConsoleOutput),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(d.DebugProtectionCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DebugProtection),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(l.DomainLockCustomCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(u.SelfDefendingCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.SelfDefending),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(p.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()}))},7626:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.customNodesModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(1280),s=r(2620),c=r(9809),d=r(294),l=r(1597),u=r(5540),p=r(9193),f=r(8105),m=r(1984),g=r(9372),S=r(8807),y=r(2088),N=r(8866),h=r(9826),_=r(398),I=r(6379),b=r(8064),O=r(573),E=r(9867),C=r(6512),v=r(7388);t.customNodesModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(l.BinaryExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(u.BlockStatementControlFlowFlatteningNode).whenTargetNamed(a.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(f.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(S.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(y.LogicalExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(v.StringLiteralNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(C.StringLiteralControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(p.BlockStatementDeadCodeInjectionNode).whenTargetNamed(s.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.ObjectExpressionVariableDeclarationHostNode).whenTargetNamed(c.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.StringArrayCallNode).whenTargetNamed(d.StringArrayCustomNode.StringArrayCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(O.StringArrayScopeCallsWrapperFunctionNode).whenTargetNamed(d.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(E.StringArrayScopeCallsWrapperVariableNode).whenTargetNamed(d.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(_.StringArrayHexadecimalNumberIndexNode).inSingletonScope().whenTargetNamed(b.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(I.StringArrayHexadecimalNumericStringIndexNode).inSingletonScope().whenTargetNamed(b.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode),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)),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)),e(i.ServiceIdentifiers.Factory__IStringArrayCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.Factory__IStringArrayIndexNode,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IStringArrayStorage,i.ServiceIdentifiers.IArrayUtils,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IStringArrayIndexNode).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IStringArrayIndexNode))}))},4080:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.generatorsModule=void 0;const o=r(2991),n=r(5350),i=r(3177),a=r(8370),s=r(5932),c=r(3119),d=r(2677);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.IIdentifierNamesGenerator).to(d.MangledShuffledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator),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.MangledShuffledIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return e=o,o}}())}))},9654:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.controlFlowTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(4015),s=r(4212),c=r(3358),d=r(5912),l=r(5760),u=r(9749),p=r(6522),f=r(270);t.controlFlowTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(d.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(c.BinaryExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(l.CallExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(p.LogicalExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(f.StringLiteralControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(i.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IControlFlowReplacer))}))},5602:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.convertingTransformersModule=void 0;const o=r(2991),n=r(1636),i=r(5350),a=r(4212),s=r(9946),c=r(8539),d=r(2337),l=r(9912),u=r(9139),p=r(6037),f=r(9467),m=r(3393),g=r(122),S=r(7834),y=r(626),N=r(6312),h=r(5869),_=r(810);t.convertingTransformersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(d.BooleanLiteralTransformer).whenTargetNamed(a.NodeTransformer.BooleanLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(l.ExportSpecifierTransformer).whenTargetNamed(a.NodeTransformer.ExportSpecifierTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.MemberExpressionTransformer).whenTargetNamed(a.NodeTransformer.MemberExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(p.MethodDefinitionTransformer).whenTargetNamed(a.NodeTransformer.MethodDefinitionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.NumberLiteralTransformer).whenTargetNamed(a.NodeTransformer.NumberLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.NumberToNumericalExpressionTransformer).whenTargetNamed(a.NodeTransformer.NumberToNumericalExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ObjectExpressionKeysTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionKeysTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(y.ObjectExpressionTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(N.ObjectPatternPropertiesTransformer).whenTargetNamed(a.NodeTransformer.ObjectPatternPropertiesTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(h.SplitStringTransformer).whenTargetNamed(a.NodeTransformer.SplitStringTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(_.TemplateLiteralTransformer).whenTargetNamed(a.NodeTransformer.TemplateLiteralTransformer),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(S.ObjectExpressionToVariableDeclarationExtractor).whenTargetNamed(s.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(c.BasePropertiesExtractor).whenTargetNamed(s.ObjectExpressionExtractor.BasePropertiesExtractor),e(i.ServiceIdentifiers.Factory__IObjectExpressionExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IObjectExpressionExtractor))}))},8974:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.deadCodeInjectionTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(8043);t.deadCodeInjectionTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.DeadCodeInjectionTransformer).whenTargetNamed(i.NodeTransformer.DeadCodeInjectionTransformer)}))},645:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.finalizingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(4837);t.finalizingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.EscapeSequenceTransformer).whenTargetNamed(i.NodeTransformer.EscapeSequenceTransformer)}))},4028:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initializingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(5289);t.initializingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.CommentsTransformer).whenTargetNamed(i.NodeTransformer.CommentsTransformer)}))},1719:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.nodeTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(5419);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()}))},1469:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.preparingTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(4212),s=r(4361),c=r(5878),d=r(6955),l=r(4996),u=r(3449),p=r(4935),f=r(147),m=r(8049),g=r(1581),S=r(774),y=r(7985),N=r(2616);t.preparingTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.CustomCodeHelpersTransformer).whenTargetNamed(a.NodeTransformer.CustomCodeHelpersTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.EvalCallExpressionTransformer).whenTargetNamed(a.NodeTransformer.EvalCallExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.MetadataTransformer).whenTargetNamed(a.NodeTransformer.MetadataTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ObfuscatingGuardsTransformer).whenTargetNamed(a.NodeTransformer.ObfuscatingGuardsTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(S.ParentificationTransformer).whenTargetNamed(a.NodeTransformer.ParentificationTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(N.VariablePreserveTransformer).whenTargetNamed(a.NodeTransformer.VariablePreserveTransformer),e(i.ServiceIdentifiers.INodeGuard).to(c.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.BlackListObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(d.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ConditionalCommentObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(p.ForceTransformStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ForceTransformStringObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(f.IgnoredRequireImportObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(y.ReservedStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ReservedStringObfuscatingGuard),e(i.ServiceIdentifiers.Factory__INodeGuard).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeGuard))}))},7817:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.renameIdentifiersTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(6181),s=r(8869),c=r(5806),d=r(7247);t.renameIdentifiersTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.LabeledStatementTransformer).whenTargetNamed(i.NodeTransformer.LabeledStatementTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(c.ScopeIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeIdentifiersTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(d.ScopeThroughIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeThroughIdentifiersTransformer),e(n.ServiceIdentifiers.IIdentifierReplacer).to(a.IdentifierReplacer).inSingletonScope()}))},725:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.renamePropertiesTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(7889),s=r(2143);t.renamePropertiesTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.RenamePropertiesTransformer).whenTargetNamed(i.NodeTransformer.RenamePropertiesTransformer),e(n.ServiceIdentifiers.IRenamePropertiesReplacer).to(a.RenamePropertiesReplacer)}))},1426:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.simplifyingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(2838),s=r(1226),c=r(8821),d=r(3115);t.simplifyingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.BlockStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.BlockStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.ExpressionStatementsMergeTransformer).whenTargetNamed(i.NodeTransformer.ExpressionStatementsMergeTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(c.IfStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.IfStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(d.VariableDeclarationsMergeTransformer).whenTargetNamed(i.NodeTransformer.VariableDeclarationsMergeTransformer)}))},9542:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.stringArrayTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(4123),s=r(4940);t.stringArrayTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.StringArrayScopeCallsWrapperTransformer).whenTargetNamed(i.NodeTransformer.StringArrayScopeCallsWrapperTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.StringArrayTransformer).whenTargetNamed(i.NodeTransformer.StringArrayTransformer)}))},5424:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.nodeModule=void 0;const o=r(2991),n=r(5350),i=r(2551);t.nodeModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IScopeIdentifiersTraverser).to(i.ScopeIdentifiersTraverser).inSingletonScope()}))},4682:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.optionsModule=void 0;const o=r(2991),n=r(5350),i=r(8516),a=r(6248);t.optionsModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IOptions).to(i.Options).inSingletonScope(),e(n.ServiceIdentifiers.IOptionsNormalizer).to(a.OptionsNormalizer).inSingletonScope()}))},1466:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.storagesModule=void 0;const o=r(2991),n=r(5350),i=r(646),a=r(1951),s=r(3464),c=r(1453),d=r(995),l=r(1860),u=r(1891);t.storagesModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.TCustomNodeGroupStorage).to(a.CustomCodeHelperGroupStorage).inSingletonScope(),e(n.ServiceIdentifiers.ILiteralNodesCacheStorage).to(s.LiteralNodesCacheStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayStorage).to(l.StringArrayStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage).to(c.StringArrayScopeCallsWrapperLexicalScopeDataStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage).to(d.StringArrayScopeCallsWrapperNamesDataStorage).inSingletonScope(),e(n.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage).to(u.VisitedLexicalScopeNodesStackStorage).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}))}))},1937:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.utilsModule=void 0;const o=r(2991),n=r(5350),i=r(3087),a=r(5579),s=r(6913),c=r(1622),d=r(7248),l=r(3697);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.ICryptUtilsSwappedAlphabet).to(s.CryptUtilsSwappedAlphabet).inSingletonScope(),e(n.ServiceIdentifiers.IEscapeSequenceEncoder).to(c.EscapeSequenceEncoder).inSingletonScope(),e(n.ServiceIdentifiers.ILevelledTopologicalSorter).to(d.LevelledTopologicalSorter)}))},8920:function(e,t,r){var o,n,i,a,s,c,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},l=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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(4482),N=r(1403),h=r(8837),_=r(699);let I=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""}};I.globalVariableTemplateFunctions=[h.GlobalVariableTemplate1(),_.GlobalVariableTemplate2()],I=o=d([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.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.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],I),t.AbstractCustomCodeHelper=I},9834:function(e,t,r){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 d=r(2991),l=r(5350),u=r(9416),p=r(4482),f=r(1403);let m=class{constructor(e,t,r){this.identifierNamesGenerator=e(r),this.randomGenerator=t,this.options=r}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([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),c(1,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(2,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],m),t.AbstractCustomCodeHelperGroup=m},259:function(e,t,r){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.prototype.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)},d=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.CustomCodeHelperFormatter=void 0;const u=r(2991),p=r(5350),f=s(r(4523)),m=l(r(8655)),g=r(3499),S=r(4134);let y=class{constructor(e){this.prevailingKindOfVariables=e.getPrevailingKind()}formatTemplate(e,t){return m.default(e,t)}formatStructure(e){for(const t of e)f.replace(t,{enter:e=>{if(S.NodeGuards.isVariableDeclarationNode(e))return"var"===this.prevailingKindOfVariables&&(e.kind="var"),e}});return e}};y=a([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),c("design:paramtypes",["function"==typeof(o=void 0!==g.IPrevailingKindOfVariablesAnalyzer&&g.IPrevailingKindOfVariablesAnalyzer)?o:Object])],y),t.CustomCodeHelperFormatter=y},299:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403),p=r(3685),f=r(2895);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}obfuscateTemplate(e,t={}){return f.JavaScriptObfuscator.obfuscate(e,Object.assign(Object.assign(Object.assign({},p.NO_ADDITIONAL_NODES_PRESET),{identifierNamesGenerator:this.options.identifierNamesGenerator,identifiersDictionary:this.options.identifiersDictionary,numbersToExpressions:this.options.numbersToExpressions,simplify:this.options.simplify,seed:this.randomGenerator.getRawSeed()}),t)).getObfuscatedCode()}};m=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],m),t.CustomCodeHelperObfuscator=m},4400:function(e,t,r){var o,n,i,a,s,c,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},l=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 p=r(2991),f=r(5350),m=r(9416),g=r(6871),S=r(6949),y=r(4482),N=r(1403),h=r(8932),_=r(5233),I=r(5423),b=r(8920),O=r(2361);let E=class extends b.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.nodeTransformationStage=e,this.callsControllerFunctionName=t}getNodeStructure(e){return O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.nodeTransformationStage===h.NodeTransformationStage.Finalizing?this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(I.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})):this.customCodeHelperFormatter.formatTemplate(I.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})}};d([_.initializable(),l("design:type",String)],E.prototype,"callsControllerFunctionName",void 0),d([_.initializable(),l("design:type","function"==typeof(o=void 0!==h.NodeTransformationStage&&h.NodeTransformationStage)?o:Object)],E.prototype,"nodeTransformationStage",void 0),E=d([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperFormatter&&S.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!==y.IOptions&&y.IOptions)?c:Object])],E),t.CallsControllerFunctionCodeHelper=E},484:(e,t)=>{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 "}},8837:(e,t)=>{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 "}},699:(e,t)=>{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 "}},5423:(e,t)=>{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 "}},5655:function(e,t,r){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},d=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.ConsoleOutputDisableCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(7370),h=r(1848),_=r(484),I=r(5233),b=r(8920),O=r(2361);let E=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 O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==N.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():_.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(h.ConsoleOutputDisableTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,consoleLogDisableFunctionName:this.consoleOutputDisableFunctionName,globalVariableTemplate:e})}};c([I.initializable(),d("design:type",String)],E.prototype,"callsControllerFunctionName",void 0),c([I.initializable(),d("design:type",String)],E.prototype,"consoleOutputDisableFunctionName",void 0),E=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],E),t.ConsoleOutputDisableCodeHelper=E},4860:function(e,t,r){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},d=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.ConsoleOutputCodeHelperGroup=void 0;const u=r(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),N=r(7295),h=r(8932),_=r(9834),I=r(7678),b=r(1534);let O=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.customCodeHelperFactory=e}appendOnPreparing(e,t){var r;if(!this.options.disableConsoleOutput)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?I.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?I.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.ConsoleOutputDisable,(e=>{e.initialize(c,s),I.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(h.NodeTransformationStage.Preparing,c),I.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([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],O.prototype,"customCodeHelpers",void 0),O=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),l(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],O),t.ConsoleOutputCodeHelperGroup=O},1848:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableTemplate=void 0,t.ConsoleOutputDisableTemplate=function(){return"\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n\n const consoleObject = (that.console = that.console || {});\n const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];\n\n for (let index = 0; index < methods.length; index++){\n const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});\n const methodName = methods[index];\n const originalFunction = consoleObject[methodName] || func;\n\n func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});\n func.toString = originalFunction.toString.bind(originalFunction);\n \n consoleObject[methodName] = func;\n }\n });\n\n {consoleLogDisableFunctionName}();\n "}},2628:function(e,t,r){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},d=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.DebugProtectionFunctionCallCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(5233),h=r(8125),_=r(8920),I=r(2361);let b=class extends _.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 I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(h.DebugProtectionFunctionCallTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName,callControllerFunctionName:this.callsControllerFunctionName})}};c([N.initializable(),d("design:type",String)],b.prototype,"callsControllerFunctionName",void 0),c([N.initializable(),d("design:type",String)],b.prototype,"debugProtectionFunctionName",void 0),b=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],b),t.DebugProtectionFunctionCallCodeHelper=b},9915:function(e,t,r){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},d=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.DebugProtectionFunctionCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(7370),h=r(5233),_=r(2415),I=r(176),b=r(6927),O=r(8920),E=r(2361);let C=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==N.ObfuscationTarget.BrowserNoEval?_.DebuggerTemplate():I.DebuggerTemplateNoEval();return this.customCodeHelperFormatter.formatTemplate(b.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([h.initializable(),d("design:type",String)],C.prototype,"debugProtectionFunctionName",void 0),C=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],C),t.DebugProtectionFunctionCodeHelper=C},5600:function(e,t,r){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},d=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.DebugProtectionFunctionIntervalCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(5233),h=r(5987),_=r(8920),I=r(2361);let b=class extends _.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(){return this.customCodeHelperFormatter.formatTemplate(h.DebugProtectionFunctionIntervalTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([N.initializable(),d("design:type",String)],b.prototype,"debugProtectionFunctionName",void 0),b=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],b),t.DebugProtectionFunctionIntervalCodeHelper=b},1723:function(e,t,r){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},d=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.DebugProtectionCodeHelperGroup=void 0;const u=r(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),N=r(7295),h=r(8932),_=r(9834),I=r(7678),b=r(4134),O=r(1534);let E=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.customCodeHelperFactory=e}appendOnPreparing(e,t){var r;if(!this.options.debugProtection)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?I.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?I.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(N.CustomCodeHelper.DebugProtectionFunctionCall,(e=>{e.initialize(s,c),I.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(h.NodeTransformationStage.Preparing,c),I.NodeAppender.prepend(i,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.DebugProtectionFunction,(t=>{t.initialize(s),I.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),I.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([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],E.prototype,"customCodeHelpers",void 0),E=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),l(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],E),t.DebugProtectionCodeHelperGroup=E},8125:(e,t)=>{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 "}},5987:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=void 0,t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},6927:(e,t)=>{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 "}},2415:(e,t)=>{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 "}},176:(e,t)=>{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 "}},5227:function(e,t,r){var o,n,i,a,s,c,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},l=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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(5591),N=r(4482),h=r(1403),_=r(7370),I=r(5233),b=r(3762),O=r(484),E=r(8920),C=r(2361);let v=class extends E.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!==_.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():O.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(b.DomainLockTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,domainLockFunctionName:this.domainLockFunctionName,diff:r,domains:t,globalVariableTemplate:o})}};d([I.initializable(),l("design:type",String)],v.prototype,"callsControllerFunctionName",void 0),d([I.initializable(),l("design:type",String)],v.prototype,"domainLockFunctionName",void 0),v=d([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),u(5,p.inject(f.ServiceIdentifiers.ICryptUtils)),l("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!==S.ICustomCodeHelperObfuscator&&S.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!==y.ICryptUtils&&y.ICryptUtils)?c:Object])],v),t.DomainLockCodeHelper=v},9673:function(e,t,r){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},d=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.DomainLockCustomCodeHelperGroup=void 0;const u=r(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),N=r(7295),h=r(8932),_=r(9834),I=r(7678),b=r(1534);let O=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.customCodeHelperFactory=e}appendOnPreparing(e,t){var r;if(!this.options.domainLock.length)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?I.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?I.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.DomainLock,(e=>{e.initialize(c,s),I.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(h.NodeTransformationStage.Preparing,c),I.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([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],O.prototype,"customCodeHelpers",void 0),O=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),l(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],O),t.DomainLockCustomCodeHelperGroup=O},3762:(e,t)=>{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 domainNormalized = domain[0] === String.fromCharCode(46)\n ? domain.slice(1)\n : domain;\n const position = currentDomain.length - domainNormalized.length;\n const lastIndex = currentDomain.indexOf(domainNormalized, 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 '}},7675:function(e,t,r){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},d=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.SelfDefendingUnicodeCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(7370),h=r(5233),_=r(6739),I=r(3957),b=r(8920),O=r(2361),E=r(484);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 O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==N.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():E.GlobalVariableNoEvalTemplate(),t=this.options.target!==N.ObfuscationTarget.BrowserNoEval?_.SelfDefendingTemplate():I.SelfDefendingNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(t,{callControllerFunctionName:this.callsControllerFunctionName,selfDefendingFunctionName:this.selfDefendingFunctionName,globalVariableTemplate:e})}};c([h.initializable(),d("design:type",String)],C.prototype,"callsControllerFunctionName",void 0),c([h.initializable(),d("design:type",String)],C.prototype,"selfDefendingFunctionName",void 0),C=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],C),t.SelfDefendingUnicodeCodeHelper=C},4582:function(e,t,r){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},d=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.SelfDefendingCodeHelperGroup=void 0;const u=r(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),N=r(7295),h=r(8932),_=r(9834),I=r(7678),b=r(1534);let O=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.customCodeHelperFactory=e}appendOnPreparing(e,t){var r;if(!this.options.selfDefending)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?I.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?I.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),I.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(h.NodeTransformationStage.Preparing,c),I.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([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],O.prototype,"customCodeHelpers",void 0),O=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),l(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],O),t.SelfDefendingCodeHelperGroup=O},3957:(e,t)=>{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 "}},6739:(e,t)=>{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 "}},9681:function(e,t,r){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.StringArrayCallsWrapperBase64CodeHelper=void 0;const n=r(2991),i=r(893),a=r(2267),s=r(7689);let c=class extends s.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(a.StringArrayBase64DecodeTemplate(this.randomGenerator),{atobPolyfill:t,atobFunctionName:e,selfDefendingCode:r,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};c=o([n.injectable()],c),t.StringArrayCallsWrapperBase64CodeHelper=c},7689:function(e,t,r){var o,n,i,a,s,c,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},l=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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(2747),N=r(4482),h=r(1403),_=r(5233),I=r(5534),b=r(7927),O=r(8920),E=r(2361);let C=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t,r){this.stringArrayName=e,this.stringArrayCallsWrapperName=t,this.indexShiftAmount=r}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.getDecodeStringArrayTemplate(),t=[`^${this.stringArrayName}$`];return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(b.StringArrayCallsWrapperTemplate(),{decodeCodeHelperTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName,indexShiftAmount:this.indexShiftAmount}),{reservedNames:t})}getDecodeStringArrayTemplate(){return""}getSelfDefendingTemplate(){return this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(I.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}):""}};d([_.initializable(),l("design:type",Number)],C.prototype,"indexShiftAmount",void 0),d([_.initializable(),l("design:type",String)],C.prototype,"stringArrayName",void 0),d([_.initializable(),l("design:type",String)],C.prototype,"stringArrayCallsWrapperName",void 0),C=d([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),u(5,p.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),l("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!==S.ICustomCodeHelperObfuscator&&S.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!==y.IEscapeSequenceEncoder&&y.IEscapeSequenceEncoder)?c:Object])],C),t.StringArrayCallsWrapperCodeHelper=C},8352:function(e,t,r){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.StringArrayCallsWrapperRc4CodeHelper=void 0;const n=r(2991),i=r(893),a=r(2099),s=r(9913),c=r(7689);let d=class extends c.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.customCodeHelperFormatter.formatTemplate(a.Rc4Template(),{atobFunctionName:e}),o=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(s.StringArrayRC4DecodeTemplate(this.randomGenerator),{atobPolyfill:t,rc4Polyfill:r,selfDefendingCode:o,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};d=o([n.injectable()],d),t.StringArrayCallsWrapperRc4CodeHelper=d},5007:function(e,t,r){var o,n,i,a,s,c,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},l=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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(4482),N=r(1403),h=r(5683),_=r(5233),I=r(5819),b=r(8920),O=r(2361),E=r(2161);let C=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 O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(I.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArrayStorageItems:this.getEncodedStringArrayStorageItems()})}getEncodedStringArrayStorageItems(){return Array.from(this.stringArrayStorage.getStorage().values()).map((e=>`'${E.StringUtils.escapeJsString(e.encodedValue)}'`)).toString()}};d([_.initializable(),l("design:type","function"==typeof(o=void 0!==h.IStringArrayStorage&&h.IStringArrayStorage)?o:Object)],C.prototype,"stringArrayStorage",void 0),d([_.initializable(),l("design:type",String)],C.prototype,"stringArrayName",void 0),C=d([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.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.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],C),t.StringArrayCodeHelper=C},256:function(e,t,r){var o,n,i,a,s,c,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},l=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 p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(2747),N=r(4482),h=r(1403),_=r(5233),I=r(3099),b=r(4016),O=r(8920),E=r(2361),C=r(6543);let v=class extends O.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 E.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(I.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})}};d([_.initializable(),l("design:type",String)],v.prototype,"stringArrayName",void 0),d([_.initializable(),l("design:type",Number)],v.prototype,"stringArrayRotationAmount",void 0),v=d([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),u(5,p.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),l("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!==S.ICustomCodeHelperObfuscator&&S.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!==y.IEscapeSequenceEncoder&&y.IEscapeSequenceEncoder)?c:Object])],v),t.StringArrayRotateFunctionCodeHelper=v},5769:function(e,t,r){var o,n,i,a,s,c,d,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},u=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.StringArrayCodeHelperGroup=void 0;const f=r(2991),m=r(5350),g=r(8820),S=r(9416),y=r(4482),N=r(1403),h=r(5683),_=r(5233),I=r(7295),b=r(1137),O=r(9834),E=r(7678);let C=o=class extends O.AbstractCustomCodeHelperGroup{constructor(e,t,r,o,n){super(r,o,n),this.customCodeHelperFactory=e,this.stringArrayStorage=t}appendOnFinalizing(e,t){if(!this.stringArrayStorage.getLength())return;this.appendCustomNodeIfExist(I.CustomCodeHelper.StringArray,(t=>{E.NodeAppender.prepend(e,t.getNode())}));const r=this.options.stringArrayEncoding.length;for(let t=0;t{E.NodeAppender.insertAtIndex(e,r.getNode(),t+1)}))}this.appendCustomNodeIfExist(I.CustomCodeHelper.StringArrayRotateFunction,(t=>{E.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.stringArray)return;const e=this.customCodeHelperFactory(I.CustomCodeHelper.StringArray),t=this.stringArrayStorage.getStorageName();e.initialize(this.stringArrayStorage,t),this.customCodeHelpers.set(I.CustomCodeHelper.StringArray,e);for(const e of this.options.stringArrayEncoding){const r=this.getStringArrayCallsWrapperCodeHelperName(e),o=this.customCodeHelperFactory(r),n=this.stringArrayStorage.getStorageCallsWrapperName(e);o.initialize(t,n,this.stringArrayStorage.getIndexShiftAmount()),this.customCodeHelpers.set(r,o)}const r=this.customCodeHelperFactory(I.CustomCodeHelper.StringArrayRotateFunction);r.initialize(t,this.stringArrayStorage.getRotationAmount()),this.options.rotateStringArray&&this.customCodeHelpers.set(I.CustomCodeHelper.StringArrayRotateFunction,r)}getStringArrayCallsWrapperCodeHelperName(e){var t;return null!==(t=o.stringArrayCallsWrapperCodeHelperMap.get(e))&&void 0!==t?t:I.CustomCodeHelper.StringArrayCallsWrapper}};C.stringArrayCallsWrapperCodeHelperMap=new Map([[b.StringArrayEncoding.None,I.CustomCodeHelper.StringArrayCallsWrapper],[b.StringArrayEncoding.Base64,I.CustomCodeHelper.StringArrayCallsWrapperBase64],[b.StringArrayEncoding.Rc4,I.CustomCodeHelper.StringArrayCallsWrapperRc4]]),l([_.initializable(),u("design:type","function"==typeof(n="undefined"!=typeof Map&&Map)?n:Object)],C.prototype,"customCodeHelpers",void 0),C=o=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__ICustomCodeHelper)),p(1,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(2,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(3,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(4,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(i=void 0!==g.TCustomCodeHelperFactory&&g.TCustomCodeHelperFactory)?i:Object,"function"==typeof(a=void 0!==h.IStringArrayStorage&&h.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==S.TIdentifierNamesGeneratorFactory&&S.TIdentifierNamesGeneratorFactory)?s:Object,"function"==typeof(c=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?c:Object,"function"==typeof(d=void 0!==y.IOptions&&y.IOptions)?d:Object])],C),t.StringArrayCodeHelperGroup=C},893:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=void 0;const o=r(4497);t.AtobTemplate=function(){return`\n var {atobFunctionName} = function (input) {\n const chars = '${o.base64alphabetSwapped}';\n\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 `}},2099:(e,t)=>{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 = {atobFunctionName}(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 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 "}},5534:(e,t)=>{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),d=e.getRandomString(6),l=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 (${l}) {\n if (!Boolean(~${l})) {\n return ${l};\n }\n \n return this.${d}(this.${r});\n };\n\n StatesClass.prototype.${d} = 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 `}},2267:(e,t)=>{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 = {atobFunctionName}(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 `}},7927:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=void 0,t.StringArrayCallsWrapperTemplate=function(){return"\n const {stringArrayCallsWrapperName} = function (index, key) {\n index = index - {indexShiftAmount};\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n "}},9913:(e,t)=>{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 `}},3099:(e,t)=>{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 `}},4016:(e,t)=>{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 "}},5819:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=void 0,t.StringArrayTemplate=function(){return"\n const {stringArrayName} = [{stringArrayStorageItems}];\n "}},3088:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403);let S=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=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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])],S),t.AbstractCustomNode=S},1597:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),N=r(2361);let h=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=y.NodeFactory.expressionStatementNode(y.NodeFactory.functionExpressionNode([y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")],y.NodeFactory.blockStatementNode([y.NodeFactory.returnStatementNode(y.NodeFactory.binaryExpressionNode(this.operator,y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")))])));return N.NodeUtils.parentizeAst(e),[e]}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},5540:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(9416),f=r(9965),m=r(6949),g=r(4482),S=r(1403),y=r(5233),N=r(3088),h=r(9376),_=r(4134),I=r(2361);let b=class extends N.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(f.StringSeparator.VerticalLine)),h.NodeFactory.identifierNode("split")),[h.NodeFactory.literalNode(f.StringSeparator.VerticalLine)]))],"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 _.NodeGuards.isReturnStatementNode(r)||o.push(h.NodeFactory.continueStatement()),h.NodeFactory.switchCaseNode(h.NodeFactory.literalNode(String(t)),o)}))),h.NodeFactory.breakStatement()]))]);return I.NodeUtils.parentizeAst(r),[r]}};s([y.initializable(),c("design:type",Array)],b.prototype,"blockStatementBody",void 0),s([y.initializable(),c("design:type",Array)],b.prototype,"originalKeysIndexesInShuffledArray",void 0),s([y.initializable(),c("design:type",Array)],b.prototype,"shuffledKeys",void 0),b=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("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!==S.IRandomGenerator&&S.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],b),t.BlockStatementControlFlowFlatteningNode=b},1984:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),N=r(9376),h=r(2361);let _=class extends y.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},c=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.LogicalExpressionFunctionNode=void 0;const l=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),N=r(2361);let h=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=y.NodeFactory.expressionStatementNode(y.NodeFactory.functionExpressionNode([y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")],y.NodeFactory.blockStatementNode([y.NodeFactory.returnStatementNode(y.NodeFactory.logicalExpressionNode(this.operator,y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")))])));return N.NodeUtils.parentizeAst(e),[e]}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},7388:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),N=r(9376);let h=class extends y.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([S.initializable(),c("design:type",String)],h.prototype,"literalValue",void 0),h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},8105:function(e,t,r){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},d=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.CallExpressionControlFlowStorageCallNode=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(4482),S=r(1403),y=r(5233),N=r(3088),h=r(9376),_=r(2361);let I=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 _.NodeUtils.parentizeAst(e),[e]}};c([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof ESTree&&ESTree.Expression)?o:Object)],I.prototype,"callee",void 0),c([y.initializable(),d("design:type",String)],I.prototype,"controlFlowStorageKey",void 0),c([y.initializable(),d("design:type",String)],I.prototype,"controlFlowStorageName",void 0),c([y.initializable(),d("design:type",Array)],I.prototype,"expressionArguments",void 0),I=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.CallExpressionControlFlowStorageCallNode=I},9372:function(e,t,r){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},d=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.ControlFlowStorageNode=void 0;const u=r(2991),p=r(5350),f=r(138),m=r(9416),g=r(6949),S=r(4482),y=r(1403),N=r(5233),h=r(3088),_=r(9376),I=r(4134),b=r(2361);let O=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(!I.NodeGuards.isExpressionStatementNode(r))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");return _.NodeFactory.propertyNode(_.NodeFactory.identifierNode(e),r.expression)}));let t=_.NodeFactory.variableDeclarationNode([_.NodeFactory.variableDeclaratorNode(_.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),_.NodeFactory.objectExpressionNode(e))],"const");return t=b.NodeUtils.parentizeAst(t),[t]}};c([N.initializable(),d("design:type","function"==typeof(o=void 0!==f.TControlFlowStorage&&f.TControlFlowStorage)?o:Object)],O.prototype,"controlFlowStorage",void 0),O=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(3,u.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!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],O),t.ControlFlowStorageNode=O},8807:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),N=r(9376),h=r(2361);let _=class extends y.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([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageKey",void 0),s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageName",void 0),_=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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.ExpressionWithOperatorControlFlowStorageCallNode=_},6512:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),N=r(9376),h=r(2361);let _=class extends y.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([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageKey",void 0),s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageName",void 0),_=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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.StringLiteralControlFlowStorageCallNode=_},9193:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),N=r(2361);let h=class extends S.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=y.NodeFactory.blockStatementNode([y.NodeFactory.ifStatementNode(y.NodeFactory.binaryExpressionNode(r,y.NodeFactory.literalNode(o),y.NodeFactory.literalNode(n)),i,a)]);return N.NodeUtils.parentizeAst(s),[s]}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},8866:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),N=r(4134);let h=class extends S.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[y.NodeFactory.variableDeclarationNode([y.NodeFactory.variableDeclaratorNode(y.NodeFactory.identifierNode(e),y.NodeFactory.objectExpressionNode(this.properties))],"const")]}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.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},7306:function(e,t,r){var o,n,i,a,s,c,d,l,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},p=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.AbstractStringArrayCallNode=void 0;const m=r(2991),g=r(5350),S=r(9416),y=r(7219),N=r(6949),h=r(4482),_=r(1403),I=r(5683),b=r(6212),O=r(8064),E=r(3088),C=r(9376),v=r(739),T=r(2361),R=r(5768);let A=o=class extends E.AbstractCustomNode{constructor(e,t,r,o,n,i,a){super(e,r,i,a),this.stringArrayIndexNodeFactory=t,this.stringArrayStorage=o,this.arrayUtils=n}getStringArrayIndexNode(e){var t;const r=e>=0,n=Math.abs(e),i=this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayIndexesType),a=null!==(t=o.stringArrayIndexNodesMap.get(i))&&void 0!==t?t:null;if(!a)throw new Error("Invalid string array index node name");const s=this.stringArrayIndexNodeFactory(a).getNode(n);v.NodeMetadata.set(s,{replacedLiteral:!0});const c=r?s:C.NodeFactory.unaryExpressionNode("-",s);return T.NodeUtils.parentizeAst(c),c}getRc4KeyLiteralNode(e){const t=C.NodeFactory.literalNode(e);return v.NodeMetadata.set(t,{replacedLiteral:!0}),t}};A.stringArrayRootCallsWrapperParametersCount=2,A.stringArrayIndexNodesMap=new Map([[b.StringArrayIndexesType.HexadecimalNumber,O.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],[b.StringArrayIndexesType.HexadecimalNumericString,O.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]]),A=o=u([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,m.inject(g.ServiceIdentifiers.Factory__IStringArrayIndexNode)),f(2,m.inject(g.ServiceIdentifiers.ICustomCodeHelperFormatter)),f(3,m.inject(g.ServiceIdentifiers.IStringArrayStorage)),f(4,m.inject(g.ServiceIdentifiers.IArrayUtils)),f(5,m.inject(g.ServiceIdentifiers.IRandomGenerator)),f(6,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==S.TIdentifierNamesGeneratorFactory&&S.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==y.TStringArrayIndexNodeFactory&&y.TStringArrayIndexNodeFactory)?i:Object,"function"==typeof(a=void 0!==N.ICustomCodeHelperFormatter&&N.ICustomCodeHelperFormatter)?a:Object,"function"==typeof(s=void 0!==I.IStringArrayStorage&&I.IStringArrayStorage)?s:Object,"function"==typeof(c=void 0!==R.IArrayUtils&&R.IArrayUtils)?c:Object,"function"==typeof(d=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?d:Object,"function"==typeof(l=void 0!==h.IOptions&&h.IOptions)?l:Object])],A),t.AbstractStringArrayCallNode=A},9826:function(e,t,r){var o,n,i,a,s,c,d,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},u=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.StringArrayCallNode=void 0;const f=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),N=r(6949),h=r(4482),_=r(1403),I=r(5683),b=r(5233),O=r(7306),E=r(9376),C=r(2361);let v=class extends O.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t,r,o,n){this.stringArrayCallsWrapperName=e,this.stringArrayCallsWrapperParameterIndexesData=t,this.index=r,this.indexShiftAmount=o,this.decodeKey=n}getNodeStructure(){var e,t;const r=this.indexShiftAmount+this.index,o=this.getStringArrayIndexNode(r),n=this.decodeKey?this.getRc4KeyLiteralNode(this.decodeKey):null,i=this.arrayUtils.fillWithRange(this.stringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:O.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeStringArrayIndexNode(r)));i.splice(null!==(t=null===(e=this.stringArrayCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,o),this.stringArrayCallsWrapperParameterIndexesData?i.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex,1,null!=n?n:this.getFakeStringArrayIndexNode(r)):n?i.splice(1,1,n):i.splice(1,1);const a=E.NodeFactory.expressionStatementNode(E.NodeFactory.callExpressionNode(E.NodeFactory.identifierNode(this.stringArrayCallsWrapperName),i));return C.NodeUtils.parentizeAst(a),[a]}getFakeStringArrayIndexNode(e){return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(e))}getFakeStringArrayIndex(e){const t=this.stringArrayStorage.getLength()/2,r=e-t,o=e+t;return this.randomGenerator.getRandomInteger(r,o)}};l([b.initializable(),u("design:type",Object)],v.prototype,"decodeKey",void 0),l([b.initializable(),u("design:type",Number)],v.prototype,"index",void 0),l([b.initializable(),u("design:type",Number)],v.prototype,"indexShiftAmount",void 0),l([b.initializable(),u("design:type",String)],v.prototype,"stringArrayCallsWrapperName",void 0),l([b.initializable(),u("design:type",Object)],v.prototype,"stringArrayCallsWrapperParameterIndexesData",void 0),v=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,f.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IArrayUtils)),p(5,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(6,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==N.ICustomCodeHelperFormatter&&N.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==I.IStringArrayStorage&&I.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(d=void 0!==h.IOptions&&h.IOptions)?d:Object])],v),t.StringArrayCallNode=v},573:function(e,t,r){var o,n,i,a,s,c,d,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},u=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.StringArrayScopeCallsWrapperFunctionNode=void 0;const f=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),N=r(6949),h=r(4482),_=r(1403),I=r(5683),b=r(5233),O=r(7306),E=r(9376),C=r(2361);let v=class extends O.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t,r,o,n){this.stringArrayScopeCallsWrapperName=e,this.stringArrayScopeCallsWrapperParameterIndexesData=t,this.upperStringArrayCallsWrapperName=r,this.upperStringArrayCallsWrapperParameterIndexesData=o,this.shiftedIndex=n}getNodeStructure(){var e,t,r,o,n,i,a,s;const c=E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),d=E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),l=this.getUpperStringArrayCallNode(c,this.getStringArrayIndexNode(this.shiftedIndex)),u=this.arrayUtils.fillWithRange(this.stringArrayScopeCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:O.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeParameterNode()));u.splice(null!==(t=null===(e=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,c),u.splice(null!==(o=null===(r=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===r?void 0:r.decodeKeyParameterIndex)&&void 0!==o?o:1,1,d);const p=this.arrayUtils.fillWithRange(this.upperStringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:O.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(e=>this.getUpperStringArrayCallNode(u[e],this.getFakeUpperStringArrayIndexNode())));p.splice(null!==(i=null===(n=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===n?void 0:n.valueIndexParameterIndex)&&void 0!==i?i:0,1,l),p.splice(null!==(s=null===(a=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===a?void 0:a.decodeKeyParameterIndex)&&void 0!==s?s:1,1,d);const f=E.NodeFactory.functionExpressionNode(u,E.NodeFactory.blockStatementNode([E.NodeFactory.returnStatementNode(E.NodeFactory.callExpressionNode(E.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName),p))])),m=E.NodeFactory.variableDeclarationNode([E.NodeFactory.variableDeclaratorNode(E.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),f)],"const");C.NodeUtils.parentizeAst(m);for(const e of u)e.name=this.identifierNamesGenerator.generateForLexicalScope(f);return[m]}getUpperStringArrayCallNode(e,t){return E.NodeFactory.binaryExpressionNode("-",e,t)}getFakeParameterNode(){return E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6))}getFakeUpperStringArrayIndexNode(){return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0,500))}};l([b.initializable(),u("design:type",Number)],v.prototype,"shiftedIndex",void 0),l([b.initializable(),u("design:type",String)],v.prototype,"upperStringArrayCallsWrapperName",void 0),l([b.initializable(),u("design:type",Object)],v.prototype,"upperStringArrayCallsWrapperParameterIndexesData",void 0),l([b.initializable(),u("design:type",String)],v.prototype,"stringArrayScopeCallsWrapperName",void 0),l([b.initializable(),u("design:type",Object)],v.prototype,"stringArrayScopeCallsWrapperParameterIndexesData",void 0),v=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,f.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IArrayUtils)),p(5,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(6,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==N.ICustomCodeHelperFormatter&&N.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==I.IStringArrayStorage&&I.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(d=void 0!==h.IOptions&&h.IOptions)?d:Object])],v),t.StringArrayScopeCallsWrapperFunctionNode=v},9867:function(e,t,r){var o,n,i,a,s,c,d,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},u=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.StringArrayScopeCallsWrapperVariableNode=void 0;const f=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),N=r(6949),h=r(4482),_=r(1403),I=r(5683),b=r(5233),O=r(7306),E=r(9376),C=r(2361);let v=class extends O.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t){this.stringArrayScopeCallsWrapperName=e,this.stringArrayCallsWrapperName=t}getNodeStructure(){const e=E.NodeFactory.variableDeclarationNode([E.NodeFactory.variableDeclaratorNode(E.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),E.NodeFactory.identifierNode(this.stringArrayCallsWrapperName))],"const");return C.NodeUtils.parentizeAst(e),[e]}};l([b.initializable(),u("design:type",String)],v.prototype,"stringArrayCallsWrapperName",void 0),l([b.initializable(),u("design:type",String)],v.prototype,"stringArrayScopeCallsWrapperName",void 0),v=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,f.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IArrayUtils)),p(5,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(6,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==N.ICustomCodeHelperFormatter&&N.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==I.IStringArrayStorage&&I.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(d=void 0!==h.IOptions&&h.IOptions)?d:Object])],v),t.StringArrayScopeCallsWrapperVariableNode=v},6897:function(e,t,r){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.AbstractStringArrayIndexNode=void 0;const c=r(2991),d=r(4482),l=r(1403),u=r(5350);let p=class{constructor(e,t){this.randomGenerator=e,this.options=t}};p=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],p),t.AbstractStringArrayIndexNode=p},398:function(e,t,r){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.StringArrayHexadecimalNumberIndexNode=void 0;const c=r(2991),d=r(4482),l=r(1403),u=r(5350),p=r(6897),f=r(9376),m=r(6543);let g=class extends p.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=m.NumberUtils.toHex(e);return f.NodeFactory.literalNode(e,t)}};g=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],g),t.StringArrayHexadecimalNumberIndexNode=g},6379:function(e,t,r){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.StringArrayHexadecimalNumericStringIndexNode=void 0;const c=r(2991),d=r(4482),l=r(1403),u=r(5350),p=r(6897),f=r(9376),m=r(6543);let g=class extends p.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=m.NumberUtils.toHex(e);return f.NodeFactory.literalNode(t)}};g=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],g),t.StringArrayHexadecimalNumericStringIndexNode=g},5233:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initializable=void 0;const r={configurable:!0,enumerable:!0},o="_initialized",n="_initializablePropertiesSet",i="_wrappedMethodsSet";function a(e,t,r){Reflect.hasMetadata(e,r)||Reflect.defineMetadata(e,t,r)}t.initializable=function(e="initialize"){const t=Object.keys(this)[0];return(s,c)=>{const d=s[e];if(!d||"function"!=typeof d)throw new Error(`\`${e}\` method with initialization logic not found. \`@${t}\` decorator requires \`${e}\` method`);return a(o,!1,s),a(n,new Set,s),a(i,new Set,s),function(e,t){const a=Object.getOwnPropertyNames(e),s=new Set([t,"constructor"]);a.forEach((a=>{var c;const d=Reflect.getMetadata(n,e),l=Reflect.getMetadata(i,e);if(s.has(a)||d.has(a)||l.has(a))return;if("function"!=typeof e[a])return;const u=null!==(c=Object.getOwnPropertyDescriptor(e,a))&&void 0!==c?c:r,p=u.value;Object.defineProperty(e,a,Object.assign(Object.assign({},u),{value(){if(!Reflect.getMetadata(o,this))throw new Error(`Class should be initialized with \`${t}()\` method`);return p.apply(this,arguments)}})),l.add(a)}))}(s,e),function(e,t,n){var i;const a=null!==(i=Object.getOwnPropertyDescriptor(e,t))&&void 0!==i?i:r,s=a.value;Object.defineProperty(e,t,Object.assign(Object.assign({},a),{value:function(){Reflect.defineMetadata(o,!0,this);const e=s.apply(this,arguments);return this[n],e}}))}(s,e,c),function(e,t){var o;Reflect.getMetadata(n,e).add(t);const i="_"+t.toString(),a=null!==(o=Object.getOwnPropertyDescriptor(e,i))&&void 0!==o?o:r;return Object.defineProperty(e,t,Object.assign(Object.assign({},a),{get:function(){if(void 0===this[i])throw new Error(`Property \`${t.toString()}\` is not initialized! Initialize it first!`);return this[i]},set:function(e){this[i]=e}})),a}(s,c)}}},7370:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationTarget=void 0;const o=r(4741);t.ObfuscationTarget=o.Utils.makeEnum({Browser:"browser",BrowserNoEval:"browser-no-eval",Node:"node"})},9965:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringSeparator=void 0,(r=t.StringSeparator||(t.StringSeparator={})).Comma=",",r.Dot=".",r.VerticalLine="|"},8657:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CalleeDataExtractor=void 0,(r=t.CalleeDataExtractor||(t.CalleeDataExtractor={})).FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",r.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",r.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"},5670:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformationStage=void 0,(r=t.CodeTransformationStage||(t.CodeTransformationStage={})).PreparingTransformers="PreparingTransformers",r.FinalizingTransformers="FinalizingTransformers"},7082:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformer=void 0,(t.CodeTransformer||(t.CodeTransformer={})).HashbangOperatorTransformer="HashbangOperatorTransformer"},7295:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelper=void 0,(r=t.CustomCodeHelper||(t.CustomCodeHelper={})).CallsControllerFunction="CallsControllerFunction",r.ConsoleOutputDisable="ConsoleOutputDisable",r.DebugProtectionFunctionCall="DebugProtectionFunctionCall",r.DebugProtectionFunctionInterval="DebugProtectionFunctionInterval",r.DebugProtectionFunction="DebugProtectionFunction",r.DomainLock="DomainLock",r.SelfDefendingUnicode="SelfDefendingUnicode",r.StringArray="StringArray",r.StringArrayCallsWrapper="StringArrayCallsWrapper",r.StringArrayCallsWrapperBase64="StringArrayCallsWrapperBase64",r.StringArrayCallsWrapperRc4="StringArrayCallsWrapperRc4",r.StringArrayRotateFunction="StringArrayRotateFunction"},1806:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroup=void 0,(r=t.CustomCodeHelperGroup||(t.CustomCodeHelperGroup={})).ConsoleOutput="ConsoleOutput",r.DebugProtection="DebugProtection",r.DomainLock="DomainLock",r.SelfDefending="SelfDefending",r.StringArray="StringArray"},1280:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowCustomNode=void 0,(r=t.ControlFlowCustomNode||(t.ControlFlowCustomNode={})).BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",r.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",r.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",r.CallExpressionFunctionNode="CallExpressionFunctionNode",r.ControlFlowStorageNode="ControlFlowStorageNode",r.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",r.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",r.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode",r.StringLiteralNode="StringLiteralNode"},2620:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionCustomNode=void 0,(t.DeadCodeInjectionCustomNode||(t.DeadCodeInjectionCustomNode={})).BlockStatementDeadCodeInjectionNode="BlockStatementDeadCodeInjectionNode"},9809:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformerCustomNode=void 0,(t.ObjectExpressionKeysTransformerCustomNode||(t.ObjectExpressionKeysTransformerCustomNode={})).ObjectExpressionVariableDeclarationHostNode="ObjectExpressionVariableDeclarationHostNode"},294:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCustomNode=void 0,(r=t.StringArrayCustomNode||(t.StringArrayCustomNode={})).StringArrayCallNode="StringArrayCallNode",r.StringArrayScopeCallsWrapperFunctionNode="StringArrayScopeCallsWrapperFunctionNode",r.StringArrayScopeCallsWrapperVariableNode="StringArrayScopeCallsWrapperVariableNode"},8064:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexNode=void 0,(r=t.StringArrayIndexNode||(t.StringArrayIndexNode={})).StringArrayHexadecimalNumberIndexNode="StringArrayHexadecimalNumberIndexNode",r.StringArrayHexadecimalNumericStringIndexNode="StringArrayHexadecimalNumericStringIndexNode"},3177:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesGenerator=void 0;const o=r(4741);t.IdentifierNamesGenerator=o.Utils.makeEnum({DictionaryIdentifierNamesGenerator:"dictionary",HexadecimalIdentifierNamesGenerator:"hexadecimal",MangledIdentifierNamesGenerator:"mangled",MangledShuffledIdentifierNamesGenerator:"mangled-shuffled"})},6221:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingMessage=void 0,(r=t.LoggingMessage||(t.LoggingMessage={})).EmptySourceCode="Empty source code. Obfuscation canceled...",r.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",r.ObfuscationStarted="Obfuscation started...",r.RandomGeneratorSeed="Random generator seed: %s...",r.CodeTransformationStage="Code transformation stage: %s...",r.NodeTransformationStage="AST transformation stage: %s...",r.Version="Version: %s"},4469:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingPrefix=void 0,(r=t.LoggingPrefix||(t.LoggingPrefix={})).Base="[javascript-obfuscator]",r.CLI="[javascript-obfuscator-cli]"},8932:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformationStage=void 0,(r=t.NodeTransformationStage||(t.NodeTransformationStage={})).ControlFlowFlattening="ControlFlowFlattening",r.Converting="Converting",r.DeadCodeInjection="DeadCodeInjection",r.Finalizing="Finalizing",r.Initializing="Initializing",r.Preparing="Preparing",r.RenameIdentifiers="RenameIdentifiers",r.RenameProperties="RenameProperties",r.Simplifying="Simplifying",r.StringArray="StringArray"},4212:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformer=void 0,(r=t.NodeTransformer||(t.NodeTransformer={})).BooleanLiteralTransformer="BooleanLiteralTransformer",r.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",r.BlockStatementSimplifyTransformer="BlockStatementSimplifyTransformer",r.CommentsTransformer="CommentsTransformer",r.CustomCodeHelpersTransformer="CustomCodeHelpersTransformer",r.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",r.EscapeSequenceTransformer="EscapeSequenceTransformer",r.EvalCallExpressionTransformer="EvalCallExpressionTransformer",r.ExportSpecifierTransformer="ExportSpecifierTransformer",r.ExpressionStatementsMergeTransformer="ExpressionStatementsMergeTransformer",r.FunctionControlFlowTransformer="FunctionControlFlowTransformer",r.IfStatementSimplifyTransformer="IfStatementSimplifyTransformer",r.LabeledStatementTransformer="LabeledStatementTransformer",r.MemberExpressionTransformer="MemberExpressionTransformer",r.MetadataTransformer="MetadataTransformer",r.MethodDefinitionTransformer="MethodDefinitionTransformer",r.NumberLiteralTransformer="NumberLiteralTransformer",r.NumberToNumericalExpressionTransformer="NumberToNumericalExpressionTransformer",r.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",r.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",r.ObjectExpressionTransformer="ObjectExpressionTransformer",r.ObjectPatternPropertiesTransformer="ObjectPatternPropertiesTransformer",r.ParentificationTransformer="ParentificationTransformer",r.RenamePropertiesTransformer="RenamePropertiesTransformer",r.ScopeIdentifiersTransformer="ScopeIdentifiersTransformer",r.ScopeThroughIdentifiersTransformer="ScopeThroughIdentifiersTransformer",r.SplitStringTransformer="SplitStringTransformer",r.StringArrayTransformer="StringArrayTransformer",r.StringArrayScopeCallsWrapperTransformer="StringArrayScopeCallsWrapperTransformer",r.TemplateLiteralTransformer="TemplateLiteralTransformer",r.VariableDeclarationsMergeTransformer="VariableDeclarationsMergeTransformer",r.VariablePreserveTransformer="VariablePreserveTransformer"},9487:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.VisitorDirection=void 0,(r=t.VisitorDirection||(t.VisitorDirection={})).Enter="enter",r.Leave="leave"},4015:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowReplacer=void 0,(r=t.ControlFlowReplacer||(t.ControlFlowReplacer={})).BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",r.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",r.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",r.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"},9946:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionExtractor=void 0,(r=t.ObjectExpressionExtractor||(t.ObjectExpressionExtractor={})).BasePropertiesExtractor="BasePropertiesExtractor",r.ObjectExpressionToVariableDeclarationExtractor="ObjectExpressionToVariableDeclarationExtractor"},4361:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuard=void 0,(r=t.ObfuscatingGuard||(t.ObfuscatingGuard={})).BlackListObfuscatingGuard="BlackListObfuscatingGuard",r.ConditionalCommentObfuscatingGuard="ConditionalCommentObfuscatingGuard",r.ForceTransformStringObfuscatingGuard="ForceTransformStringObfuscatingGuard",r.IgnoredRequireImportObfuscatingGuard="IgnoredRequireImportObfuscatingGuard",r.ReservedStringObfuscatingGuard="ReservedStringObfuscatingGuard"},1137:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncoding=void 0;const o=r(4741);t.StringArrayEncoding=o.Utils.makeEnum({None:"none",Base64:"base64",Rc4:"rc4"})},6212:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexesType=void 0;const o=r(4741);t.StringArrayIndexesType=o.Utils.makeEnum({HexadecimalNumber:"hexadecimal-number",HexadecimalNumericString:"hexadecimal-numeric-string"})},9614:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersType=void 0;const o=r(4741);t.StringArrayWrappersType=o.Utils.makeEnum({Variable:"variable",Function:"function"})},9945:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=void 0,(r=t.NodeType||(t.NodeType={})).ArrayExpression="ArrayExpression",r.ArrayPattern="ArrayPattern",r.ArrowFunctionExpression="ArrowFunctionExpression",r.AssignmentExpression="AssignmentExpression",r.AssignmentPattern="AssignmentPattern",r.AwaitExpression="AwaitExpression",r.BinaryExpression="BinaryExpression",r.BlockStatement="BlockStatement",r.BreakStatement="BreakStatement",r.CallExpression="CallExpression",r.CatchClause="CatchClause",r.ChainExpression="ChainExpression",r.ClassDeclaration="ClassDeclaration",r.ConditionalExpression="ConditionalExpression",r.ContinueStatement="ContinueStatement",r.ExportAllDeclaration="ExportAllDeclaration",r.ExportNamedDeclaration="ExportNamedDeclaration",r.ExportSpecifier="ExportSpecifier",r.ExpressionStatement="ExpressionStatement",r.ForStatement="ForStatement",r.ForInStatement="ForInStatement",r.ForOfStatement="ForOfStatement",r.FunctionDeclaration="FunctionDeclaration",r.FunctionExpression="FunctionExpression",r.Identifier="Identifier",r.IfStatement="IfStatement",r.ImportDeclaration="ImportDeclaration",r.ImportDefaultSpecifier="ImportDefaultSpecifier",r.ImportNamespaceSpecifier="ImportNamespaceSpecifier",r.ImportSpecifier="ImportSpecifier",r.LabeledStatement="LabeledStatement",r.Literal="Literal",r.LogicalExpression="LogicalExpression",r.MemberExpression="MemberExpression",r.MethodDefinition="MethodDefinition",r.ObjectExpression="ObjectExpression",r.ObjectPattern="ObjectPattern",r.Program="Program",r.Property="Property",r.RestElement="RestElement",r.ReturnStatement="ReturnStatement",r.SequenceExpression="SequenceExpression",r.SpreadElement="SpreadElement",r.Super="Super",r.SwitchCase="SwitchCase",r.SwitchStatement="SwitchStatement",r.TaggedTemplateExpression="TaggedTemplateExpression",r.TemplateElement="TemplateElement",r.TemplateLiteral="TemplateLiteral",r.ThrowStatement="ThrowStatement",r.TryStatement="TryStatement",r.UnaryExpression="UnaryExpression",r.UpdateExpression="UpdateExpression",r.VariableDeclaration="VariableDeclaration",r.VariableDeclarator="VariableDeclarator",r.WhileStatement="WhileStatement",r.YieldExpression="YieldExpression"},8608:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardResult=void 0,(r=t.ObfuscatingGuardResult||(t.ObfuscatingGuardResult={})).ForceTransform="ForceTransform",r.Ignore="Ignore",r.Transform="Transform"},6532:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsPreset=void 0;const o=r(4741);t.OptionsPreset=o.Utils.makeEnum({Default:"default",LowObfuscation:"low-obfuscation",MediumObfuscation:"medium-obfuscation",HighObfuscation:"high-obfuscation"})},6086:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapMode=void 0;const o=r(4741);t.SourceMapMode=o.Utils.makeEnum({Inline:"inline",Separate:"separate"})},2207:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403),p=r(4134);let f=class{constructor(e,t){this.preservedNamesSet=new Set,this.lexicalScopesPreservedNamesMap=new Map,this.randomGenerator=e,this.options=t}generate(e,t){return p.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)))}};f=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],f),t.AbstractIdentifierNamesGenerator=f},8370:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(5768),f=r(4482),m=r(1403),g=r(2207),S=r(1534);let y=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,...S.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)}};y=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(1,l.inject(u.ServiceIdentifiers.IOptions)),d(2,l.inject(u.ServiceIdentifiers.IArrayUtils)),c("design:paramtypes",["function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object,"function"==typeof(a=void 0!==p.IArrayUtils&&p.IArrayUtils)?a:Object])],y),t.DictionaryIdentifierNamesGenerator=y},5932:function(e,t,r){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 d=r(2991),l=r(5350),u=r(4482),p=r(1403),f=r(2207),m=r(6543),g=r(4741);let S=o=class extends f.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.slice(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)}};S.baseIdentifierNameLength=6,S=o=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],S),t.HexadecimalIdentifierNamesGenerator=S},3119:function(e,t,r){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 d=r(2991),l=r(5350),u=r(4482),p=r(1403),f=r(2023),m=r(6366),g=r(2691),S=r(2207),y=r(1534);let N=o=class extends S.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t),this.previousMangledName=o.initMangledNameCharacter}generateNext(e){const t=this.generateNewMangledName(this.previousMangledName);return this.updatePreviousMangledName(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.updatePreviousMangledName(r),this.isValidIdentifierName(o)?(this.preserveName(o),o):this.generateForGlobalScope(e)}generateForLexicalScope(e,t){const r=[e,...y.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.updatePreviousMangledName(n),this.preserveNameForLexicalScope(n,e),n}isIncrementedMangledName(e,t){if(e===t)return!1;const r=e.length,o=t.length;if(r!==o)return r>o;const n=this.getNameSequence();for(let o=0;on.indexOf(i)}throw new Error("Something goes wrong during comparison of mangled names")}isValidIdentifierName(e){return super.isValidIdentifierName(e)&&!o.reservedNamesSet.has(e)}getNameSequence(){return o.nameSequence}updatePreviousMangledName(e){this.isIncrementedMangledName(e,this.previousMangledName)&&(this.previousMangledName=e)}generateNewMangledName(e){let t=(e=>{const t=this.getNameSequence(),r=t.length,o=e.length,n=e=>"0".repeat(e);let i=o-1;do{const a=e[i],s=t.indexOf(a);if(s!==r-1)return e.slice(0,i)+t[s+1]+n(o-(i+1));--i}while(i>=0);return`${t[f.numbersString.length]}${n(o)}`})(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=[...`${f.numbersString}${m.alphabetString}${g.alphabetStringUppercase}`],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([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],N),t.MangledIdentifierNamesGenerator=N},2677:function(e,t,r){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)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledShuffledIdentifierNamesGenerator=void 0;const l=r(2991),u=r(5350),p=r(5768),f=r(4482),m=r(1403),g=r(2023),S=r(6366),y=r(2691),N=r(3119);let h=o=class extends N.MangledIdentifierNamesGenerator{constructor(e,t,r){super(t,r),this.arrayUtils=e}initialize(){this.initializeNameSequence([...""+g.numbersString,...this.arrayUtils.shuffle([...`${S.alphabetString}${y.alphabetStringUppercase}`])])}initializeNameSequence(e){this.getNameSequence()||(o.shuffledNameSequence=e)}getNameSequence(){return o.shuffledNameSequence}generateNewMangledName(e){return super.generateNewMangledName(e)}};s([l.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],h.prototype,"initialize",null),h=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.IArrayUtils)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.IArrayUtils&&p.IArrayUtils)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],h),t.MangledShuffledIdentifierNamesGenerator=h},5562:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3499:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5435:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1588:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},927:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7673:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6949:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6871:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5082:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},698:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5167:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5524:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5822:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},68:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5164:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2086:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},870:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8688:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5683:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3186:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5768:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5591:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9825:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2747:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2569:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1403:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9658:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7149:function(e,t,r){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 d=r(2991),l=r(5350),u=c(r(2242)),p=r(4482),f=r(4469);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,f.LoggingPrefix.Base,e,t)}success(e,t){this.options.log&&o.log(o.colorSuccess,f.LoggingPrefix.Base,e,t)}warn(e,t){this.options.log&&o.log(o.colorWarn,f.LoggingPrefix.Base,e,t)}};m.colorInfo=u.default.cyan,m.colorSuccess=u.default.green,m.colorWarn=u.default.yellow,m=o=i([d.injectable(),s(0,d.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object])],m),t.Logger=m},9173:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403);let p=class{constructor(e,t){this.randomGenerator=e,this.options=t}};p=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],p),t.AbstractNodeTransformer=p},5419:function(e,t,r){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(2991),i=r(7207);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.NodeTransformerNamesGroupsBuilder=a},6827:function(e,t,r){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.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=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.NodeTransformersRunner=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(3312),g=r(9658),S=r(9487),y=r(4134),N=r(739);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)&&f.replace(e,{enter:this.mergeVisitorsForDirection(n,S.VisitorDirection.Enter),leave:this.mergeVisitorsForDirection(i,S.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 f.VisitorOption.Skip;for(let i=0;ie}};h=s([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.Factory__INodeTransformer)),l(1,u.inject(p.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),d("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},5912:function(e,t,r){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]}),d=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},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.prototype.hasOwnProperty.call(e,r)&&c(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)},f=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(2991),g=r(5350),S=u(r(4523)),y=r(8749),N=r(5768),h=r(4482),_=r(1403),I=r(1280),b=r(8932),O=r(9173),E=r(4134),C=r(2361);let v=o=class extends O.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.controlFlowCustomNodeFactory=e,this.arrayUtils=t}static isProhibitedStatementNode(e){const t=E.NodeGuards.isBreakStatementNode(e)||E.NodeGuards.isContinueStatementNode(e),r=E.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),o=E.NodeGuards.isClassDeclarationNode(e);return E.NodeGuards.isFunctionDeclarationNode(e)||t||r||o}static canTransformBlockStatementNode(e){let t=!0;return S.traverse(e,{enter:e=>{if(E.NodeGuards.isWhileStatementNode(e))return S.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&&E.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(I.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);s.initialize(r,i,a);const c=s.getNode()[0];return C.NodeUtils.parentizeNode(c,t),c}};v=o=l([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.Factory__IControlFlowCustomNode)),f(1,m.inject(g.ServiceIdentifiers.IArrayUtils)),f(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),f(3,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==y.TControlFlowCustomNodeFactory&&y.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==N.IArrayUtils&&N.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object])],v),t.BlockStatementControlFlowTransformer=v},9749:function(e,t,r){var o,n,i,a,s,c,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]}),l=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},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.prototype.hasOwnProperty.call(e,r)&&d(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)},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(2991),S=r(5350),y=p(r(4523)),N=r(8749),h=r(9628),_=r(2147),I=r(4482),b=r(1403),O=r(1280),E=r(4015),C=r(9945),v=r(8932),T=r(9173),R=r(7678),A=r(4134),j=r(739),M=r(8134),F=r(2361);let P=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&&(A.NodeGuards.isFunctionDeclarationNode(e)||A.NodeGuards.isFunctionExpressionNode(e)||A.NodeGuards.isArrowFunctionExpressionNode(e)))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.visitedFunctionNodes.add(e),!A.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(O.ControlFlowCustomNode.ControlFlowStorageNode);return n.initialize(o),R.NodeAppender.prepend(r,n.getNode()),this.hostNodesWithControlFlowNode.add(r),F.NodeUtils.parentizeAst(e),e}getControlFlowStorage(e){const t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&(A.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=M.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(A.NodeGuards.isFunctionDeclarationNode(e)||A.NodeGuards.isFunctionExpressionNode(e)||A.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}transformFunctionBody(e,t){y.replace(e,{enter:(e,r)=>{if(j.NodeMetadata.isIgnoredNode(e))return y.VisitorOption.Skip;if(this.isVisitedFunctionNode(e)||!r)return y.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})}})}};P.controlFlowReplacersMap=new Map([[C.NodeType.BinaryExpression,E.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[C.NodeType.CallExpression,E.ControlFlowReplacer.CallExpressionControlFlowReplacer],[C.NodeType.LogicalExpression,E.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[C.NodeType.Literal,E.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),P.hostNodeSearchMinDepth=0,P.hostNodeSearchMaxDepth=2,P=o=u([g.injectable(),m(0,g.inject(S.ServiceIdentifiers.Factory__TControlFlowStorage)),m(1,g.inject(S.ServiceIdentifiers.Factory__IControlFlowReplacer)),m(2,g.inject(S.ServiceIdentifiers.Factory__IControlFlowCustomNode)),m(3,g.inject(S.ServiceIdentifiers.IRandomGenerator)),m(4,g.inject(S.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==_.TControlFlowStorageFactory&&_.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!==I.IOptions&&I.IOptions)?c:Object])],P),t.FunctionControlFlowTransformer=P},9732:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403);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},d=c(5);return a.set(r,[d]),this.replacerDataByControlFlowStorageId.set(i,a),t.set(d,e),d}};g=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],g),t.AbstractControlFlowReplacer=g},3358:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(8146);let y=o=class extends S.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)}};y.usingExistingIdentifierChance=.5,y=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],y),t.BinaryExpressionControlFlowReplacer=y},5760:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(9732),y=r(4134);let N=o=class extends S.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.callee;if(!y.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||!y.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};N.usingExistingIdentifierChance=.5,N=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],N),t.CallExpressionControlFlowReplacer=N},8146:function(e,t,r){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 d=r(2991),l=r(5350),u=r(8749),p=r(4482),f=r(1403),m=r(1280),g=r(9732),S=r(4134);let y=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||!S.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};y=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.Factory__IControlFlowCustomNode)),c(1,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(2,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TControlFlowCustomNodeFactory&&u.TControlFlowCustomNodeFactory)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],y),t.ExpressionWithOperatorControlFlowReplacer=y},6522:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(8146),y=r(4134),N=r(2361);let h=o=class extends S.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=y.NodeGuards.isUnaryExpressionNode(e)?N.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(y.NodeGuards.isLiteralNode(t)||y.NodeGuards.isIdentifierNode(t)||y.NodeGuards.isObjectExpressionNode(t)||y.NodeGuards.isExpressionStatementNode(t))}))}};h.usingExistingIdentifierChance=.5,h=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],h),t.LogicalExpressionControlFlowReplacer=h},270:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(9732),y=r(4134),N=r(8241);let h=o=class extends S.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(y.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if(!N.NodeLiteralUtils.isStringLiteralNode(e)||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||!y.NodeGuards.isExpressionStatementNode(o))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return o.expression}};h.usingExistingIdentifierChance=1,h=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],h),t.StringLiteralControlFlowReplacer=h},2337:function(e,t,r){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.BooleanLiteralTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(4134),g=r(2361),S=r(9376);let y=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("boolean"!=typeof e.value)return e;const r=e.value?this.getTrueUnaryExpressionNode():this.getFalseUnaryExpressionNode();return g.NodeUtils.parentizeNode(r,t),r}getTrueUnaryExpressionNode(){return S.NodeFactory.unaryExpressionNode("!",this.getFalseUnaryExpressionNode())}getFalseUnaryExpressionNode(){return S.NodeFactory.unaryExpressionNode("!",S.NodeFactory.arrayExpressionNode())}};y=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],y),t.BooleanLiteralTransformer=y},9912:function(e,t,r){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.ExportSpecifierTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(4134),g=r(2361);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isExportSpecifierNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.local.name===e.exported.name&&(e.exported=g.NodeUtils.clone(e.local)),e}};S=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],S),t.ExportSpecifierTransformer=S},9139:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(9376),g=r(4134);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.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}};S=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],S),t.MemberExpressionTransformer=S},6037:function(e,t,r){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 d=r(2991),l=r(5350),u=r(4482),p=r(1403),f=r(8932),m=r(9173),g=r(9376),S=r(4134);let y=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isMethodDefinitionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isIdentifierNode(e.key)?this.replaceIdentifierKey(e,e.key):S.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}};y.ignoredNames=["constructor"],y=o=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],y),t.MethodDefinitionTransformer=y},9467:function(e,t,r){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.NumberLiteralTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(4212),f=r(8932),m=r(9173),g=r(9376),S=r(4134),y=r(6543);let N=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.NumberToNumericalExpressionTransformer],this.numberLiteralCache=new Map}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value&&"bigint"!=typeof e.value)return e;const r=e.value;let o;return this.numberLiteralCache.has(r)?o=this.numberLiteralCache.get(r):(o=y.NumberUtils.isCeil(r)?y.NumberUtils.toHex(r):String(r),this.numberLiteralCache.set(r,o)),g.NodeFactory.literalNode(r,o)}};N=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],N),t.NumberLiteralTransformer=N},3393:function(e,t,r){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.NumberToNumericalExpressionTransformer=void 0;const d=r(2991),l=r(5350),u=r(5435),p=r(4482),f=r(1403),m=r(8932),g=r(9173),S=r(4134),y=r(9376),N=r(6543);let h=class extends g.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.numberNumericalExpressionAnalyzer=e}getVisitor(e){if(!this.options.numbersToExpressions)return null;switch(e){case m.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&S.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value)return e;if(S.NodeGuards.isPropertyNode(t)&&!t.computed)return e;const r=this.numberNumericalExpressionAnalyzer.analyze(e.value);return this.convertNumericalExpressionDataToNode(r)}convertNumericalExpressionDataToNode(e,t="+"){var r;const o=e.length,n=o>1?e.slice(0,o-1):[e[0]],i=o>1?e.slice(-1):[];if(i.length)return this.convertPartsToBinaryExpression(t,n,i);const a=null!==(r=n[0])&&void 0!==r?r:null;return Array.isArray(a)?this.convertNumericalExpressionDataToNode(a,"*"):this.convertPartOrNumberToLiteralNode(a)}convertPartsToBinaryExpression(e,t,r){const o=r[0];return Array.isArray(o)?y.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertNumericalExpressionDataToNode(o,"*")):y.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertPartOrNumberToLiteralNode(o))}convertPartOrNumberToLiteralNode(e){const t=Array.isArray(e)?e[0]:e,r=N.NumberUtils.isPositive(t),o=y.NodeFactory.literalNode(Math.abs(t));return r?o:y.NodeFactory.unaryExpressionNode("-",o)}};h=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),c(1,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(2,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.INumberNumericalExpressionAnalyzer&&u.INumberNumericalExpressionAnalyzer)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],h),t.NumberToNumericalExpressionTransformer=h},122:function(e,t,r){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}),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},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.prototype.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)},p=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 f=r(2991),m=r(5350),g=l(r(4523)),S=r(2937),y=r(4482),N=r(1403),h=r(8932),_=r(9946),I=r(9173),b=r(4134),O=r(8134);let E=o=class extends I.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.objectExpressionExtractorFactory=e}static isProhibitedObjectExpressionNode(e,t,r){return o.isReferencedIdentifierName(e,r)||o.isProhibitedArrowFunctionExpression(e,t)||o.isProhibitedSequenceExpression(e,r)}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 isProhibitedArrowFunctionExpression(e,t){return b.NodeGuards.isArrowFunctionExpressionNode(t)&&t.body===e}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 h.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.isProhibitedObjectExpressionNode(e,t,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}};E.objectExpressionExtractorNames=[_.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,_.ObjectExpressionExtractor.BasePropertiesExtractor],E=o=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),p(1,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==S.TObjectExpressionExtractorFactory&&S.TObjectExpressionExtractorFactory)?n:Object,"function"==typeof(i=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==y.IOptions&&y.IOptions)?a:Object])],E),t.ObjectExpressionKeysTransformer=E},626:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(9376),g=r(4134);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.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))}};S=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],S),t.ObjectExpressionTransformer=S},6312:function(e,t,r){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.ObjectPatternPropertiesTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(4134),g=r(1534),S=r(2361);let y=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isPropertyNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!m.NodeGuards.isObjectPatternNode(t)||!e.shorthand)return e;if(!this.options.renameGlobals){const t=g.NodeLexicalScopeUtils.getLexicalScope(e);if(t&&m.NodeGuards.isProgramNode(t))return e}return e.shorthand=!1,e.value=S.NodeUtils.clone(e.value),S.NodeUtils.parentizeNode(e.value,e),e}};y=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],y),t.ObjectPatternPropertiesTransformer=y},5869:function(e,t,r){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},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.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},l=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 p=r(2991),f=r(5350),m=d(r(4523)),g=d(r(6094)),S=r(4482),y=r(1403),N=r(4212),h=r(8932),_=r(9173),I=r(9376),b=r(4134),O=r(8241),E=r(2361);let C=o=class extends _.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[N.NodeTransformer.ObjectExpressionKeysTransformer,N.NodeTransformer.TemplateLiteralTransformer]}static chunkString(e,t,r){const o=Math.ceil(t/r),n=[];let i=0;for(let t=0;t{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(!O.NodeLiteralUtils.isStringLiteralNode(e))return e;const n=g.length(e.value);if(r>=n)return e;const i=o.chunkString(e.value,n,r),a=this.transformStringChunksToBinaryExpressionNode(i);return E.NodeUtils.parentizeAst(a),E.NodeUtils.parentizeNode(a,t),a}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=I.NodeFactory.binaryExpressionNode("+",I.NodeFactory.literalNode(t),I.NodeFactory.literalNode(r));return e.reduce(((e,t)=>{const r=I.NodeFactory.literalNode(t);return I.NodeFactory.binaryExpressionNode("+",e,r)}),o)}};C.firstPassChunkLength=1e3,C=o=c([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(1,p.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object])],C),t.SplitStringTransformer=C},810:function(e,t,r){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 d=r(2991),l=r(5350),u=r(4482),p=r(1403),f=r(8932),m=r(9173),g=r(9376),S=r(4134),y=r(2361);let N=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}static isLiteralNodeWithStringValue(e){return!!e&&S.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isTemplateLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isTaggedTemplateExpressionNode(t)?e:this.transformTemplateLiteralNode(e,t)}transformTemplateLiteralNode(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=>!(S.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 y.NodeUtils.parentizeAst(n),y.NodeUtils.parentizeNode(n,t),n}};N=o=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],N),t.TemplateLiteralTransformer=N},8539:function(e,t,r){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(2991),a=r(7678),s=r(9376),c=r(4134),d=r(8134),l=r(2361);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 isProhibitedPropertyNode(e){return"init"!==e.kind}static isProhibitedPattern(e){return!e||c.NodeGuards.isObjectPatternNode(e)||c.NodeGuards.isArrayPatternNode(e)||c.NodeGuards.isAssignmentPatternNode(e)||c.NodeGuards.isRestElementNode(e)}static shouldCreateLiteralNode(e){return!e.computed||e.computed&&!!e.key&&c.NodeGuards.isLiteralNode(e.key)}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=d.NodeStatementUtils.getScopeOfNode(t);return this.filterExtractedObjectExpressionProperties(e,i),a.NodeAppender.insertAfter(s,n,t),l.NodeUtils.parentizeAst(s),{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}extractPropertiesToExpressionStatements(e,t,r){const n=[],i=[];for(let a=e.length-1;a>=0;a--){const d=e[a];if(c.NodeGuards.isSpreadElementNode(d))break;if(o.isProhibitedPropertyNode(d))continue;const l=d.value;if(o.isProhibitedPattern(l))continue;const u=o.getPropertyNodeKeyName(d);if(!u)continue;const p=o.shouldCreateLiteralNode(d)?s.NodeFactory.literalNode(u):s.NodeFactory.identifierNode(u),f=s.NodeFactory.memberExpressionNode(r,p,!0),m=s.NodeFactory.expressionStatementNode(s.NodeFactory.assignmentExpressionNode("=",f,l));c.NodeGuards.isObjectExpressionNode(d.value)&&this.transformObjectExpressionNode(d.value,t,f),n.unshift(m),i.unshift(a)}return[n,i]}filterExtractedObjectExpressionProperties(e,t){e.properties=e.properties.filter(((e,r)=>!t.includes(r)))}};u=o=n([i.injectable()],u),t.BasePropertiesExtractor=u},7834:function(e,t,r){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(2991),c=r(5350),d=r(1878),l=r(9809),u=r(7678),p=r(4134),f=r(8134),m=r(2361),g=r(1534);let S=class{constructor(e){this.objectExpressionKeysTransformerCustomNodeFactory=e}extract(e,t){return this.transformObjectExpressionToVariableDeclaration(e,t)}transformObjectExpressionToVariableDeclaration(e,t){var r;const o=f.NodeStatementUtils.getScopeOfNode(t),n=p.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(l.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);r.initialize(e,t);const o=r.getNode()[0];if(!o||!p.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(!p.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||!p.NodeGuards.isObjectExpressionNode(r))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property");return r}};S=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),i("design:paramtypes",["function"==typeof(o=void 0!==d.TObjectExpressionKeysTransformerCustomNodeFactory&&d.TObjectExpressionKeysTransformerCustomNodeFactory)?o:Object])],S),t.ObjectExpressionToVariableDeclarationExtractor=S},8043:function(e,t,r){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]}),d=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},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.prototype.hasOwnProperty.call(e,r)&&c(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)},f=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(2991),g=r(5350),S=u(r(4523)),y=r(7183),N=r(4482),h=r(1403),_=r(698),I=r(2620),b=r(4212),O=r(9945),E=r(8932),C=r(9173),v=r(9376),T=r(4134),R=r(8134),A=r(2361);let j=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.isFunctionDeclarationNode(e)||T.NodeGuards.isBreakStatementNode(e)||T.NodeGuards.isContinueStatementNode(e)||T.NodeGuards.isAwaitExpressionNode(e)||T.NodeGuards.isYieldExpressionNode(e)||T.NodeGuards.isSuperNode(e)||T.NodeGuards.isForOfStatementNode(e)&&e.await}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 S.traverse(i,{enter:e=>{if(T.NodeGuards.isIdentifierNode(e)&&e.name===a)return s=!0,S.VisitorOption.Break}}),s}static isValidCollectedBlockStatementNode(e){if(!e.body.length)return!1;let t=0,r=!0;return S.traverse(e,{enter:e=>{if(T.NodeGuards.isBlockStatementNode(e)&&t++,t>o.maxNestedBlockStatementsCount||o.isProhibitedNodeInsideCollectedBlockStatement(e)||o.isScopeHoistingFunctionDeclaration(e))return r=!1,S.VisitorOption.Break}}),r}static isValidWrappedBlockStatementNode(e){if(!e.body.length)return!1;let t=!0;return S.traverse(e,{enter:e=>{if(o.isScopeHoistingFunctionDeclaration(e))return t=!1,S.VisitorOption.Break}}),!!t&&R.NodeStatementUtils.getParentNodeWithStatements(e).type!==O.NodeType.Program}getVisitor(e){switch(e){case E.NodeTransformationStage.DeadCodeInjection:return{enter:(e,t)=>{if(t&&T.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),e},leave:(e,t)=>{if(t&&T.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};case E.NodeTransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:(e,t)=>{if(t&&this.isDeadCodeInjectionRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}prepareNode(e,t){S.traverse(e,{enter:e=>{if(!T.NodeGuards.isBlockStatementNode(e))return;const t=A.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 A.NodeUtils.parentizeAst(t),A.NodeUtils.parentizeNode(t,t),this.transformersRunner.transform(t,o.transformersToRenameBlockScopeIdentifiers,E.NodeTransformationStage.RenameIdentifiers),e}replaceBlockStatementNode(e,t,r){const n=v.NodeFactory.blockStatementNode([v.NodeFactory.functionDeclarationNode(o.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(n);const i=this.deadCodeInjectionCustomNodeFactory(I.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);i.initialize(e,n);const a=i.getNode()[0];return A.NodeUtils.parentizeNode(a,r),a}};j.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",j.maxNestedBlockStatementsCount=4,j.minCollectedBlockStatementsCount=5,j.transformersToRenameBlockScopeIdentifiers=[b.NodeTransformer.LabeledStatementTransformer,b.NodeTransformer.ScopeIdentifiersTransformer,b.NodeTransformer.ScopeThroughIdentifiersTransformer],j=o=l([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),f(1,m.inject(g.ServiceIdentifiers.INodeTransformersRunner)),f(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),f(3,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==y.TDeadNodeInjectionCustomNodeFactory&&y.TDeadNodeInjectionCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==_.INodeTransformersRunner&&_.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])],j),t.DeadCodeInjectionTransformer=j},4837:function(e,t,r){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.EscapeSequenceTransformer=void 0;const d=r(2991),l=r(5350),u=r(2747),p=r(4482),f=r(1403),m=r(8932),g=r(4212),S=r(9173),y=r(4134),N=r(8241),h=r(9376),_=r(2361);let I=class extends S.AbstractNodeTransformer{constructor(e,t,r){super(e,t),this.runAfter=[g.NodeTransformer.CustomCodeHelpersTransformer],this.escapeSequenceEncoder=r}getVisitor(e){switch(e){case m.NodeTransformationStage.Finalizing:return{enter:(e,t)=>{if(y.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!N.NodeLiteralUtils.isStringLiteralNode(e))return e;const r=this.escapeSequenceEncoder.encode(e.value,this.options.unicodeEscapeSequence),o=h.NodeFactory.literalNode(r);return _.NodeUtils.parentizeNode(o,t),o}};I=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),c(2,d.inject(l.ServiceIdentifiers.IEscapeSequenceEncoder)),s("design:paramtypes",["function"==typeof(o=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object,"function"==typeof(i=void 0!==u.IEscapeSequenceEncoder&&u.IEscapeSequenceEncoder)?i:Object])],I),t.EscapeSequenceTransformer=I},5289:function(e,t,r){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},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.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},l=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 p=r(2991),f=r(5350),m=d(r(4523)),g=r(4482),S=r(1403),y=r(8932),N=r(9173),h=r(6955),_=r(4134);let I=o=class extends N.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case y.NodeTransformationStage.Initializing:return{leave:e=>{if(_.NodeGuards.isProgramNode(e))return this.transformNode(e)}};case y.NodeTransformationStage.Finalizing:return{leave:e=>{if(_.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)))}};I.preservedWords=["@license","@preserve"],I=o=c([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(1,p.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object])],I),t.CommentsTransformer=I},4996:function(e,t,r){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},d=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.CustomCodeHelpersTransformer=void 0;const u=r(2991),p=r(5350),f=r(6622),m=r(4482),g=r(1403),S=r(5562),y=r(3499),N=r(4212),h=r(8932),_=r(9173),I=r(4134);let b=class extends _.AbstractNodeTransformer{constructor(e,t,r,o,n){super(o,n),this.runAfter=[N.NodeTransformer.ParentificationTransformer,N.NodeTransformer.VariablePreserveTransformer],this.callsGraphData=[],this.callsGraphAnalyzer=e,this.prevailingKindOfVariablesAnalyzer=t,this.customCodeHelperGroupStorage=r}getVisitor(e){switch(e){case h.NodeTransformationStage.Preparing:return{leave:(e,t)=>{if(I.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),this.appendCustomNodesForPreparingStage(e,t),this.transformNode(e,t)}};default:return{leave:(t,r)=>(I.NodeGuards.isProgramNode(t)&&this.appendCustomNodesForStage(e,t,r),t)}}}prepareNode(e,t){this.callsGraphData=this.callsGraphAnalyzer.analyze(e),this.prevailingKindOfVariablesAnalyzer.analyze(e)}transformNode(e,t){return e}appendCustomNodesForPreparingStage(e,t){this.customCodeHelperGroupStorage.getStorage().forEach((t=>{var r;t.initialize(),null===(r=t.appendOnPreparing)||void 0===r||r.call(t,e,this.callsGraphData)}))}appendCustomNodesForStage(e,t,r){this.customCodeHelperGroupStorage.getStorage().forEach((r=>{var o;null===(o=r["appendOn"+e])||void 0===o||o.call(r,t,this.callsGraphData)}))}};b=c([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.ICallsGraphAnalyzer)),l(1,u.inject(p.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),l(2,u.inject(p.ServiceIdentifiers.TCustomNodeGroupStorage)),l(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==S.ICallsGraphAnalyzer&&S.ICallsGraphAnalyzer)?o:Object,"function"==typeof(n=void 0!==y.IPrevailingKindOfVariablesAnalyzer&&y.IPrevailingKindOfVariablesAnalyzer)?n:Object,"function"==typeof(i=void 0!==f.TCustomCodeHelperGroupStorage&&f.TCustomCodeHelperGroupStorage)?i:Object,"function"==typeof(a=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==m.IOptions&&m.IOptions)?s:Object])],b),t.CustomCodeHelpersTransformer=b},3449:function(e,t,r){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.EvalCallExpressionTransformer=void 0;const d=r(2991),l=r(5350),u=r(4482),p=r(1403),f=r(4212),m=r(8932),g=r(9173),S=r(9376),y=r(4134),N=r(2361),h=r(2161);let _=o=class extends g.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.EscapeSequenceTransformer,f.NodeTransformer.ParentificationTransformer,f.NodeTransformer.VariablePreserveTransformer],this.evalRootAstHostNodeSet=new Set}static extractEvalStringFromCallExpressionArgument(e){return y.NodeGuards.isLiteralNode(e)?o.extractEvalStringFromLiteralNode(e):y.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 m.NodeTransformationStage.Preparing:return{enter:(e,t)=>{if(t&&y.NodeGuards.isCallExpressionNode(e)&&y.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return this.transformNode(e,t)}};case m.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=N.NodeUtils.convertCodeToStructure(n)}catch(t){return e}const a=S.NodeFactory.functionExpressionNode([],S.NodeFactory.blockStatementNode(i));return N.NodeUtils.parentizeAst(a),N.NodeUtils.parentizeNode(a,t),this.evalRootAstHostNodeSet.add(a),a}restoreNode(e,t){const r=e.body.body,o=N.NodeUtils.convertStructureToCode(r);return S.NodeFactory.callExpressionNode(S.NodeFactory.identifierNode("eval"),[S.NodeFactory.literalNode(h.StringUtils.escapeJsString(o))])}isEvalRootAstHostNode(e){return y.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}};_=o=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],_),t.EvalCallExpressionTransformer=_},8049:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403),p=r(4212),f=r(8932),m=r(9173),g=r(4134),S=r(739);let y=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.ParentificationTransformer,p.NodeTransformer.VariablePreserveTransformer]}getVisitor(e){switch(e){case f.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return S.NodeMetadata.set(e,{ignoredNode:!1}),g.NodeGuards.isLiteralNode(e)&&S.NodeMetadata.set(e,{replacedLiteral:!1}),e}};y=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],y),t.MetadataTransformer=y},1581:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(805),f=r(4482),m=r(1403),g=r(4212),S=r(8932),y=r(4361),N=r(8608),h=r(9173),_=r(4134),I=r(739);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.map((t=>t.check(e)));return this.setNodeMetadata(e,r),e}setNodeMetadata(e,t){let r=!1,o=!1;t.every((e=>e===N.ObfuscatingGuardResult.Transform))||(r=t.some((e=>e===N.ObfuscatingGuardResult.ForceTransform)),o=!r&&t.some((e=>e===N.ObfuscatingGuardResult.Ignore))),I.NodeMetadata.set(e,{forceTransformNode:r&&!_.NodeGuards.isProgramNode(e),ignoredNode:o&&!_.NodeGuards.isProgramNode(e)})}};b.obfuscatingGuardsList=[y.ObfuscatingGuard.BlackListObfuscatingGuard,y.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,y.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,y.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,y.ObfuscatingGuard.ReservedStringObfuscatingGuard],b=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__INodeGuard)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TObfuscatingGuardFactory&&p.TObfuscatingGuardFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],b),t.ObfuscatingGuardsTransformer=b},774:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(2361);let g=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.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(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],g),t.ParentificationTransformer=g},2616:function(e,t,r){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)},d=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 l=r(2991),u=r(5167),p=r(4482),f=r(1403),m=r(5822),g=r(4212),S=r(5350),y=r(8932),N=r(9173),h=r(4134);let _=class extends N.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer],this.identifierReplacer=e,this.scopeIdentifiersTraverser=o,this.preserveScopeVariableIdentifiers=this.preserveScopeVariableIdentifiers.bind(this)}getVisitor(e){switch(e){case y.NodeTransformationStage.Preparing:case y.NodeTransformationStage.Converting:case y.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&h.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(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.identifierReplacer.preserveName(e)}preserveIdentifierNameForLexicalScope(e,t){const r=h.NodeGuards.isNodeWithLexicalScope(t.block)?t.block:null;r&&this.identifierReplacer.preserveNameForLexicalScope(e,r)}};_=s([l.injectable(),d(0,l.inject(S.ServiceIdentifiers.IIdentifierReplacer)),d(1,l.inject(S.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(S.ServiceIdentifiers.IOptions)),d(3,l.inject(S.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==u.IIdentifierReplacer&&u.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object,"function"==typeof(a=void 0!==m.IScopeIdentifiersTraverser&&m.IScopeIdentifiersTraverser)?a:Object])],_),t.VariablePreserveTransformer=_},5878:function(e,t,r){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(2991),s=r(8608),c=r(4134);let d=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};Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalCommentObfuscatingGuard=void 0;const i=r(2991),a=r(8608),s=r(4134);let c=o=class{constructor(){this.obfuscationAllowed=!0}static isConditionalComment(e){return o.obfuscationEnableCommentRegExp.test(e.value)||o.obfuscationDisableCommentRegExp.test(e.value)}check(e){if(s.NodeGuards.isNodeWithComments(e)){const t=e.leadingComments;t&&(this.obfuscationAllowed=this.checkComments(t))}return this.obfuscationAllowed?a.ObfuscatingGuardResult.Transform:a.ObfuscatingGuardResult.Ignore}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},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.ForceTransformStringObfuscatingGuard=void 0;const s=r(2991),c=r(4482),d=r(8608),l=r(5350),u=r(4134);let p=class{constructor(e){this.options=e}check(e){return this.options.forceTransformStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isForceTransformString(e.value)?d.ObfuscatingGuardResult.ForceTransform:d.ObfuscatingGuardResult.Transform}isForceTransformString(e){return this.options.forceTransformStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};p=n([s.injectable(),a(0,s.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],p),t.ForceTransformStringObfuscatingGuard=p},147:function(e,t,r){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.IgnoredRequireImportObfuscatingGuard=void 0;const s=r(2991),c=r(4482),d=r(8608),l=r(5350),u=r(4134);let p=class{constructor(e){this.options=e}check(e){return this.options.ignoreRequireImports&&u.NodeGuards.isCallExpressionNode(e)&&u.NodeGuards.isIdentifierNode(e.callee)&&"require"===e.callee.name?d.ObfuscatingGuardResult.Ignore:d.ObfuscatingGuardResult.Transform}};p=n([s.injectable(),a(0,s.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],p),t.IgnoredRequireImportObfuscatingGuard=p},7985:function(e,t,r){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(2991),c=r(4482),d=r(8608),l=r(5350),u=r(4134);let p=class{constructor(e){this.options=e}check(e){return this.options.reservedStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isReservedString(e.value)?d.ObfuscatingGuardResult.Ignore:d.ObfuscatingGuardResult.Transform}isReservedString(e){return this.options.reservedStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};p=n([s.injectable(),a(0,s.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],p),t.ReservedStringObfuscatingGuard=p},8869:function(e,t,r){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},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.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},l=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 p=r(2991),f=r(5350),m=d(r(4523)),g=r(5167),S=r(4482),y=r(1403),N=r(8932),h=r(9173),_=r(4134),I=r(1534);let b=class extends h.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.identifierReplacer=e}getVisitor(e){switch(e){case N.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&_.NodeGuards.isLabeledStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=I.NodeLexicalScopeUtils.getLexicalScope(e);return r?(this.storeLabeledStatementName(e,r),this.replaceLabeledStatementName(e,r),e):e}storeLabeledStatementName(e,t){this.identifierReplacer.storeLocalName(e.label,t)}replaceLabeledStatementName(e,t){m.replace(e,{enter:(e,r)=>{if(r&&_.NodeGuards.isLabelIdentifierNode(e,r)){const r=this.identifierReplacer.replace(e,t);e.name=r.name}}})}};b=c([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.IIdentifierReplacer)),u(1,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(2,p.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==g.IIdentifierReplacer&&g.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object])],b),t.LabeledStatementTransformer=b},5806:function(e,t,r){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}),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},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.prototype.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)},p=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 f=r(2991),m=r(5350),g=l(r(4523)),S=r(5167),y=r(4482),N=r(1403),h=r(5822),_=r(8932),I=r(9173),b=r(4134),O=r(739);let E=class extends I.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.lexicalScopesWithObjectPatternWithoutDeclarationMap=new Map,this.identifierReplacer=e,this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case _.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&b.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,(e=>{const{isGlobalDeclaration:t,variable:r,variableLexicalScopeNode:o}=e;(this.options.renameGlobals||!t||r.defs.every((e=>"ImportBinding"===e.type||"CatchClause"===e.type)))&&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.identifierReplacer.storeGlobalName(e,t):this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierReplacer.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||O.NodeMetadata.isIgnoredNode(e)||this.isProhibitedPropertyIdentifierNode(e,o)||this.isProhibitedPropertyAssignmentPatternIdentifierNode(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)||b.NodeGuards.isLabelIdentifierNode(e,o))}isProhibitedClassDeclarationNameIdentifierNode(e,t,r){return b.NodeGuards.isClassDeclarationNode(e.scope.block)&&b.NodeGuards.isClassDeclarationNode(r)&&r.id===t}isProhibitedExportNamedClassDeclarationIdentifierNode(e,t){return b.NodeGuards.isClassDeclarationNode(t)&&t.id===e&&!!t.parentNode&&b.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,t){return b.NodeGuards.isFunctionDeclarationNode(t)&&t.id===e&&!!t.parentNode&&b.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedVariableDeclarationIdentifierNode(e,t){return b.NodeGuards.isVariableDeclaratorNode(t)&&t.id===e&&!!t.parentNode&&b.NodeGuards.isVariableDeclarationNode(t.parentNode)&&!!t.parentNode.parentNode&&b.NodeGuards.isExportNamedDeclarationNode(t.parentNode.parentNode)}isProhibitedImportSpecifierNode(e,t){return b.NodeGuards.isImportSpecifierNode(t)&&t.imported.name===t.local.name}isProhibitedPropertyIdentifierNode(e,t){return b.NodeGuards.isPropertyNode(t)&&!t.computed&&b.NodeGuards.isIdentifierNode(t.key)&&b.NodeGuards.isIdentifierNode(e)&&t.shorthand&&t.key.name===e.name}isProhibitedPropertyAssignmentPatternIdentifierNode(e,t){return b.NodeGuards.isAssignmentPatternNode(t)&&t.left===e&&!!t.parentNode&&b.NodeGuards.isPropertyNode(t.parentNode)&&b.NodeGuards.isIdentifierNode(t.left)&&b.NodeGuards.isIdentifierNode(t.parentNode.key)&&t.left.name===t.parentNode.key.name}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(b.NodeGuards.isObjectPatternNode(e)&&r&&b.NodeGuards.isAssignmentExpressionNode(r)){o=!0;const r=e.properties;for(const e of r)if(b.NodeGuards.isPropertyNode(e)&&!e.computed&&e.shorthand&&b.NodeGuards.isIdentifierNode(e.key)&&t.name===e.key.name)return n=!0,g.VisitorOption.Break}}}),this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(r,null!=o&&o),n}};E=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.IIdentifierReplacer)),p(1,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(m.ServiceIdentifiers.IOptions)),p(3,f.inject(m.ServiceIdentifiers.IScopeIdentifiersTraverser)),u("design:paramtypes",["function"==typeof(o=void 0!==S.IIdentifierReplacer&&S.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==y.IOptions&&y.IOptions)?i:Object,"function"==typeof(a=void 0!==h.IScopeIdentifiersTraverser&&h.IScopeIdentifiersTraverser)?a:Object])],E),t.ScopeIdentifiersTransformer=E},7247:function(e,t,r){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)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeThroughIdentifiersTransformer=void 0;const l=r(2991),u=r(5350),p=r(5167),f=r(4482),m=r(1403),g=r(5822),S=r(8932),y=r(9173),N=r(4134);let h=class extends y.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.identifierReplacer=e,this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case S.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&N.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(e,t,(e=>{const{reference:t,variableLexicalScopeNode:r}=e;this.transformScopeThroughIdentifiers(t,r)})),e}transformScopeThroughIdentifiers(e,t){if(e.resolved)return;const r=e.identifier;this.storeIdentifierName(r,t),this.replaceIdentifierName(r,t,e)}storeIdentifierName(e,t){this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierReplacer.replace(e,t);r.identifier.name=o.name}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.IIdentifierReplacer)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),d(3,l.inject(u.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==p.IIdentifierReplacer&&p.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object,"function"==typeof(a=void 0!==g.IScopeIdentifiersTraverser&&g.IScopeIdentifiersTraverser)?a:Object])],h),t.ScopeThroughIdentifiersTransformer=h},6181:function(e,t,r){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.IdentifierReplacer=void 0;const c=r(2991),d=r(5350),l=r(9416),u=r(4482),p=r(9376);let f=class{constructor(e,t){this.blockScopesMap=new Map,this.options=t,this.identifierNamesGenerator=e(t)}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)}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)}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)))}};f=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.TIdentifierNamesGeneratorFactory&&l.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==u.IOptions&&u.IOptions)?n:Object])],f),t.IdentifierReplacer=f},2143:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(5524),f=r(4482),m=r(1403),g=r(8932),S=r(9173),y=r(4134);let N=o=class extends S.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.renamePropertiesReplacer=e}static isValidPropertyNode(e,t){return(!y.NodeGuards.isIdentifierNode(t)||!e.computed)&&(y.NodeGuards.isIdentifierNode(t)||y.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 y.NodeGuards.isPropertyNode(e)?this.transformPropertyNode(e):y.NodeGuards.isMemberExpressionNode(e)?this.transformMemberExpressionNode(e):y.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([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.IRenamePropertiesReplacer)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.IRenamePropertiesReplacer&&p.IRenamePropertiesReplacer)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],N),t.RenamePropertiesTransformer=N},7889:function(e,t,r){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 d=r(2991),l=r(5350),u=r(9416),p=r(4482),f=c(r(6856)),m=r(4134),g=r(9376);let S=class{constructor(e,t){this.propertyNamesMap=new Map,this.reservedDomPropertiesList=new Set(f.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)}};S=i([d.injectable(),s(0,d.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,d.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object])],S),t.RenamePropertiesReplacer=S},254:function(e,t,r){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.AbstractStatementSimplifyTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(4212),f=r(9173),m=r(4134),g=r(9376);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.ExpressionStatementsMergeTransformer,p.NodeTransformer.VariableDeclarationsMergeTransformer]}getStatementSimplifyData(e){if(!e)return null;if(!m.NodeGuards.isBlockStatementNode(e))return{leadingStatements:[e],trailingStatement:null,hasReturnStatement:!1,hasSingleExpression:!1};const{startIndex:t,unwrappedExpressions:r,hasReturnStatement:o}=this.collectIteratedStatementsSimplifyData(e),n=this.getLeadingStatements(e,t);if(!r.length)return{leadingStatements:n,trailingStatement:null,hasReturnStatement:o,hasSingleExpression:!1};const i=1===r.length,a=i?r[0]:g.NodeFactory.sequenceExpressionNode(r);return{leadingStatements:n,trailingStatement:{statement:o?g.NodeFactory.returnStatementNode(a):g.NodeFactory.expressionStatementNode(a),expression:a},hasReturnStatement:o,hasSingleExpression:i}}collectIteratedStatementsSimplifyData(e){const t=[];let r=!1,o=null;for(let n=e.body.length-1;n>=0;n--){const i=e.body[n];if(m.NodeGuards.isExpressionStatementNode(i))m.NodeGuards.isSequenceExpressionNode(i.expression)?t.unshift(...i.expression.expressions):t.unshift(i.expression),o=n;else{if(!m.NodeGuards.isReturnStatementNode(i)||!i.argument)break;t.unshift(i.argument),r=!0,o=n}}return{startIndex:o,unwrappedExpressions:t,hasReturnStatement:r}}getLeadingStatements(e,t){return null===t?e.body:0===t?[]:e.body.slice(0,t)}getPartialStatement(e){return!e.leadingStatements.length&&e.trailingStatement?e.trailingStatement.statement:g.NodeFactory.blockStatementNode([...e.leadingStatements.length?e.leadingStatements:[],...e.trailingStatement?[e.trailingStatement.statement]:[]])}};S=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],S),t.AbstractStatementSimplifyTransformer=S},2838:function(e,t,r){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.BlockStatementSimplifyTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(4212),f=r(8932),m=r(254),g=r(4134),S=r(9376),y=r(2361);let N=class extends m.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.VariableDeclarationsMergeTransformer]}getVisitor(e){switch(e){case f.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&g.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e);if(!r)return e;const o=this.getPartialStatement(r),n=g.NodeGuards.isBlockStatementNode(o)?o:S.NodeFactory.blockStatementNode([o]);return y.NodeUtils.parentizeNode(n,t)}};N=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],N),t.BlockStatementSimplifyTransformer=N},1226:function(e,t,r){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.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=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.ExpressionStatementsMergeTransformer=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(4482),g=r(1403),S=r(8932),y=r(9173),N=r(9376),h=r(4134),_=r(8134),I=r(2361);let b=class extends y.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&h.NodeGuards.isExpressionStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!h.NodeGuards.isNodeWithStatements(t))return e;const r=_.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&h.NodeGuards.isExpressionStatementNode(r)?(h.NodeGuards.isSequenceExpressionNode(r.expression)?(r.expression.expressions.push(e.expression),I.NodeUtils.parentizeNode(e.expression,r.expression)):(r.expression=N.NodeFactory.sequenceExpressionNode([r.expression,e.expression]),I.NodeUtils.parentizeAst(r.expression),I.NodeUtils.parentizeNode(r.expression,r)),f.VisitorOption.Remove):e}};b=s([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(1,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==m.IOptions&&m.IOptions)?n:Object])],b),t.ExpressionStatementsMergeTransformer=b},8821:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403),p=r(8932),f=r(254),m=r(4134),g=r(9376),S=r(2361);let y=class extends f.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&m.NodeGuards.isIfStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e.consequent);if(!r)return e;let o;if(e.alternate){const t=this.getStatementSimplifyData(e.alternate);if(!t)return e;o=this.getConsequentAndAlternateNode(e,r,t)}else o=this.getConsequentNode(e,r);return S.NodeUtils.parentizeNode(o,t)}getConsequentNode(e,t){return t.leadingStatements.length||!t.trailingStatement?g.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t)):t.hasReturnStatement?g.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement):g.NodeFactory.expressionStatementNode(g.NodeFactory.logicalExpressionNode("&&",e.test,t.trailingStatement.expression))}getConsequentAndAlternateNode(e,t,r){return t.leadingStatements.length||r.leadingStatements.length||!t.trailingStatement||!r.trailingStatement?g.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t),this.getPartialStatement(r)):t.hasReturnStatement&&r.hasReturnStatement?g.NodeFactory.returnStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression)):t.hasReturnStatement||r.hasReturnStatement?g.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement,r.trailingStatement.statement):g.NodeFactory.expressionStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression))}getPartialStatement(e){const t=super.getPartialStatement(e);return m.NodeGuards.isBlockStatementNode(t)?1!==t.body.length||this.isProhibitedSingleStatementForIfStatementBranch(t.body[0])?t:t.body[0]:t}isProhibitedSingleStatementForIfStatementBranch(e){return m.NodeGuards.isFunctionDeclarationNode(e)||m.NodeGuards.isIfStatementNode(e)||m.NodeGuards.isVariableDeclarationNode(e)&&"var"!==e.kind}};y=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],y),t.IfStatementSimplifyTransformer=y},3115:function(e,t,r){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.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=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.VariableDeclarationsMergeTransformer=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(4482),g=r(1403),S=r(8932),y=r(9173),N=r(4134),h=r(8134);let _=class extends y.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Simplifying:return{leave:(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),f.VisitorOption.Remove):e}};_=s([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.IRandomGenerator)),l(1,u.inject(p.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==m.IOptions&&m.IOptions)?n:Object])],_),t.VariableDeclarationsMergeTransformer=_},4123:function(e,t,r){var o,n,i,a,s,c,d,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},u=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.StringArrayScopeCallsWrapperTransformer=void 0;const f=r(2991),m=r(5350),g=r(7070),S=r(4482),y=r(1403),N=r(870),h=r(8688),_=r(5683),I=r(3186),b=r(8932),O=r(294),E=r(9614),C=r(9173),v=r(7678),T=r(4134);let R=class extends C.AbstractNodeTransformer{constructor(e,t,r,o,n,i,a){super(e,t),this.visitedLexicalScopeNodesStackStorage=r,this.stringArrayStorage=o,this.stringArrayScopeCallsWrapperNamesDataStorage=n,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=i,this.stringArrayTransformerCustomNodeFactory=a}getVisitor(e){if(!this.options.stringArrayWrappersCount)return null;switch(e){case b.NodeTransformationStage.StringArray:return{enter:(e,t)=>{t&&T.NodeGuards.isNodeWithLexicalScopeStatements(e,t)&&this.onLexicalScopeNodeEnter(e)},leave:(e,t)=>{if(t&&T.NodeGuards.isNodeWithLexicalScopeStatements(e,t))return this.onLexicalScopeNodeLeave(),this.transformNode(e)}};default:return null}}transformNode(e){var t,r;const o=null!==(t=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==t?t:null,n=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(!o||!n)return e;const{callsWrappersParameterIndexesData:i}=n,a=Object.values(o);for(const t of a){if(!t)continue;const{names:r}=t;for(let o=r.length-1;o>=0;o--){const a=r[o],{name:s,index:c,parameterIndexesData:d}=this.getUpperStringArrayCallsWrapperData(t,n),l=this.getStringArrayScopeCallsWrapperNode(a,i,s,d,c);v.NodeAppender.prepend(e,l)}}return e}getRootStringArrayCallsWrapperData(e,t){const{encoding:r}=e,{resultShiftedIndex:o}=t;return{name:this.stringArrayStorage.getStorageCallsWrapperName(r),index:o,parameterIndexesData:null}}getUpperStringArrayCallsWrapperData(e,t){var r,o,n,i,a,s;const{encoding:c}=e,{scopeShiftedIndex:d}=t,l=this.getRootStringArrayCallsWrapperData(e,t);if(!this.options.stringArrayWrappersChainedCalls)return l;const u=null!==(r=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==r?r:null;if(!u)return l;const p=null!==(o=this.stringArrayScopeCallsWrapperNamesDataStorage.get(u))&&void 0!==o?o:null,f=null!==(n=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(u))&&void 0!==n?n:null,m=null!==(a=null===(i=null==p?void 0:p[c])||void 0===i?void 0:i.names)&&void 0!==a?a:null;return(null==m?void 0:m.length)?{name:this.randomGenerator.getRandomGenerator().pickone(m),index:d,parameterIndexesData:null!==(s=null==f?void 0:f.callsWrappersParameterIndexesData)&&void 0!==s?s:null}:l}getStringArrayScopeCallsWrapperNode(e,t,r,o,n){switch(this.options.stringArrayWrappersType){case E.StringArrayWrappersType.Function:return this.getStringArrayScopeCallsWrapperFunctionNode(e,t,r,o,n);case E.StringArrayWrappersType.Variable:default:return this.getStringArrayScopeCallsWrapperVariableNode(e,r)}}getStringArrayScopeCallsWrapperVariableNode(e,t){const r=this.stringArrayTransformerCustomNodeFactory(O.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);return r.initialize(e,t),r.getNode()}getStringArrayScopeCallsWrapperFunctionNode(e,t,r,o,n){const i=this.stringArrayTransformerCustomNodeFactory(O.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);return i.initialize(e,t,r,o,n),i.getNode()}onLexicalScopeNodeEnter(e){this.visitedLexicalScopeNodesStackStorage.push(e)}onLexicalScopeNodeLeave(){this.visitedLexicalScopeNodesStackStorage.pop()}};R=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(1,f.inject(m.ServiceIdentifiers.IOptions)),p(2,f.inject(m.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),p(5,f.inject(m.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),p(6,f.inject(m.ServiceIdentifiers.Factory__IStringArrayCustomNode)),u("design:paramtypes",["function"==typeof(o=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==S.IOptions&&S.IOptions)?n:Object,"function"==typeof(i=void 0!==I.IVisitedLexicalScopeNodesStackStorage&&I.IVisitedLexicalScopeNodesStackStorage)?i:Object,"function"==typeof(a=void 0!==_.IStringArrayStorage&&_.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==h.IStringArrayScopeCallsWrapperNamesDataStorage&&h.IStringArrayScopeCallsWrapperNamesDataStorage)?s:Object,"function"==typeof(c=void 0!==N.IStringArrayScopeCallsWrapperLexicalScopeDataStorage&&N.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)?c:Object,"function"==typeof(d=void 0!==g.TStringArrayCustomNodeFactory&&g.TStringArrayCustomNodeFactory)?d:Object])],R),t.StringArrayScopeCallsWrapperTransformer=R},4940:function(e,t,r){var o,n,i,a,s,c,d,l,u,p,f,m=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},g=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.StringArrayTransformer=void 0;const y=r(2991),N=r(5350),h=r(9416),_=r(7070),I=r(2086),b=r(4482),O=r(1403),E=r(870),C=r(8688),v=r(5683),T=r(927),R=r(3186),A=r(8932),j=r(294),M=r(9614),F=r(9173),P=r(4134),D=r(8241),G=r(739),x=r(2361);let L=o=class extends F.AbstractNodeTransformer{constructor(e,t,r,o,n,i,a,s,c,d){super(e,t),this.literalNodesCacheStorage=r,this.visitedLexicalScopeNodesStackStorage=o,this.stringArrayStorage=n,this.stringArrayScopeCallsWrapperNamesDataStorage=i,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=a,this.stringArrayStorageAnalyzer=s,this.identifierNamesGenerator=c(t),this.stringArrayTransformerCustomNodeFactory=d}getVisitor(e){switch(e){case A.NodeTransformationStage.StringArray:return{enter:(e,t)=>{if(P.NodeGuards.isProgramNode(e)&&this.prepareNode(e),t&&P.NodeGuards.isLiteralNode(e)&&!G.NodeMetadata.isReplacedLiteral(e))return this.transformNode(e,t)}};default:return null}}prepareNode(e){this.stringArrayStorageAnalyzer.analyze(e),this.options.shuffleStringArray&&this.stringArrayStorage.shuffleStorage(),this.options.rotateStringArray&&this.stringArrayStorage.rotateStorage()}transformNode(e,t){if(!D.NodeLiteralUtils.isStringLiteralNode(e)||D.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=e.value,o=this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(e),n=this.literalNodesCacheStorage.buildKey(r,o);if(this.literalNodesCacheStorage.shouldUseCachedValue(n,o))return this.literalNodesCacheStorage.get(n);const i=o?this.getStringArrayCallNode(o):e;return this.literalNodesCacheStorage.set(n,i),x.NodeUtils.parentizeNode(i,t),i}getStringArrayCallNode(e){const{name:t,index:r,parameterIndexesData:o}=this.getStringArrayCallsWrapperData(e),{decodeKey:n}=e,i=this.stringArrayTransformerCustomNodeFactory(j.StringArrayCustomNode.StringArrayCallNode);i.initialize(t,o,r,this.stringArrayStorage.getIndexShiftAmount(),n);const a=i.getNode()[0];if(!P.NodeGuards.isExpressionStatementNode(a))throw new Error("`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}getStringArrayCallsWrapperData(e){return this.options.stringArrayWrappersCount?this.getUpperStringArrayCallsWrapperData(e):this.getRootStringArrayCallsWrapperData(e)}getRootStringArrayCallsWrapperData(e){const{encoding:t,index:r}=e;return{name:this.stringArrayStorage.getStorageCallsWrapperName(t),parameterIndexesData:null,index:r}}getUpperStringArrayCallsWrapperData(e){var t,r,o,n;const{encoding:i,index:a}=e,s=null!==(t=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==t?t:null,c=null!==(r=this.visitedLexicalScopeNodesStackStorage.getPenultimateElement())&&void 0!==r?r:null;if(!s)throw new Error("Cannot find current lexical scope body node");const d=this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(s,e),l=this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(s,c),u=null!==(n=null===(o=d[i])||void 0===o?void 0:o.names)&&void 0!==n?n:[];return{name:this.randomGenerator.getRandomGenerator().pickone(u),index:l?l.resultShiftedIndex+a:a,parameterIndexesData:l.callsWrappersParameterIndexesData}}getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(e,t){var r,o,n;const{encoding:i}=t,a=null!==(r=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==r?r:{},s=null!==(n=null===(o=a[i])||void 0===o?void 0:o.names)&&void 0!==n?n:[];if(s.length===this.options.stringArrayWrappersCount)return a;const c=P.NodeGuards.isProgramNode(e)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateNext();return a[i]={encoding:i,names:[...s,c]},this.stringArrayScopeCallsWrapperNamesDataStorage.set(e,a),a}getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(e,t){var r,n;const i=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(i)return i;const a=t&&null!==(n=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(t))&&void 0!==n?n:null,s=this.options.stringArrayWrappersType===M.StringArrayWrappersType.Function?this.getStringArrayCallsWrapperParameterIndexesData():null,c=this.options.stringArrayWrappersType===M.StringArrayWrappersType.Function?this.randomGenerator.getRandomInteger(o.minShiftedIndexValue,o.maxShiftedIndexValue):0,d={callsWrappersParameterIndexesData:s,parentLexicalScopeBodyNode:t,resultShiftedIndex:a?a.resultShiftedIndex+c:c,scopeShiftedIndex:c};return this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(e,d),d}getStringArrayCallsWrapperParameterIndexesData(){const e=this.options.stringArrayWrappersParametersMaxCount-1,t=this.randomGenerator.getRandomInteger(0,e);return{valueIndexParameterIndex:t,decodeKeyParameterIndex:this.randomGenerator.getRandomIntegerExcluding(0,e,[t])}}};L.minShiftedIndexValue=-1e3,L.maxShiftedIndexValue=1e3,L=o=m([y.injectable(),S(0,y.inject(N.ServiceIdentifiers.IRandomGenerator)),S(1,y.inject(N.ServiceIdentifiers.IOptions)),S(2,y.inject(N.ServiceIdentifiers.ILiteralNodesCacheStorage)),S(3,y.inject(N.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),S(4,y.inject(N.ServiceIdentifiers.IStringArrayStorage)),S(5,y.inject(N.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),S(6,y.inject(N.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),S(7,y.inject(N.ServiceIdentifiers.IStringArrayStorageAnalyzer)),S(8,y.inject(N.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),S(9,y.inject(N.ServiceIdentifiers.Factory__IStringArrayCustomNode)),g("design:paramtypes",["function"==typeof(n=void 0!==O.IRandomGenerator&&O.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==b.IOptions&&b.IOptions)?i:Object,"function"==typeof(a=void 0!==I.ILiteralNodesCacheStorage&&I.ILiteralNodesCacheStorage)?a:Object,"function"==typeof(s=void 0!==R.IVisitedLexicalScopeNodesStackStorage&&R.IVisitedLexicalScopeNodesStackStorage)?s:Object,"function"==typeof(c=void 0!==v.IStringArrayStorage&&v.IStringArrayStorage)?c:Object,"function"==typeof(d=void 0!==C.IStringArrayScopeCallsWrapperNamesDataStorage&&C.IStringArrayScopeCallsWrapperNamesDataStorage)?d:Object,"function"==typeof(l=void 0!==E.IStringArrayScopeCallsWrapperLexicalScopeDataStorage&&E.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)?l:Object,"function"==typeof(u=void 0!==T.IStringArrayStorageAnalyzer&&T.IStringArrayStorageAnalyzer)?u:Object,"function"==typeof(p=void 0!==h.TIdentifierNamesGeneratorFactory&&h.TIdentifierNamesGeneratorFactory)?p:Object,"function"==typeof(f=void 0!==_.TStringArrayCustomNodeFactory&&_.TStringArrayCustomNodeFactory)?f:Object])],L),t.StringArrayTransformer=L},7678:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeAppender=void 0;const o=r(4134);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},9376:function(e,t,r){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.prototype.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(9385)),s=r(9945);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 arrowFunctionExpressionNode(e,t,r){return{type:s.NodeType.ArrowFunctionExpression,params:e,expression:t,body:r}}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=[],r=!1){return{type:s.NodeType.CallExpression,callee:e,optional:r,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 exportAllDeclarationNode(e){return{type:s.NodeType.ExportAllDeclaration,source:e,metadata:{ignoredNode:!1}}}static exportNamedDeclarationNode(e,t){return{type:s.NodeType.ExportNamedDeclaration,specifiers:e,source: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,o=!1){return{type:s.NodeType.MemberExpression,computed:r,object:e,optional:o,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 templateElement(e,t){return{type:s.NodeType.TemplateElement,value:e,tail:t,metadata:{ignoredNode:!1}}}static templateLiteral(e,t){return{type:s.NodeType.TemplateLiteral,expressions:e,quasis:t,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},4134:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeGuards=void 0;const o=r(9945);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 isExportAllDeclarationNode(e){return e.type===o.NodeType.ExportAllDeclaration}static isExportNamedDeclarationNode(e){return e.type===o.NodeType.ExportNamedDeclaration}static isExportSpecifierNode(e){return e.type===o.NodeType.ExportSpecifier}static isExpressionStatementNode(e){return e.type===o.NodeType.ExpressionStatement&&!("directive"in e)}static isForOfStatementNode(e){return e.type===o.NodeType.ForOfStatement}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 isSpreadElementNode(e){return e.type===o.NodeType.SpreadElement}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}static isYieldExpressionNode(e){return e.type===o.NodeType.YieldExpression}}t.NodeGuards=n,n.nodesWithLexicalStatements=[o.NodeType.ArrowFunctionExpression,o.NodeType.FunctionDeclaration,o.NodeType.FunctionExpression,o.NodeType.MethodDefinition]},1534:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLexicalScopeUtils=void 0;const o=r(4134);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},8241:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLiteralUtils=void 0;const o=r(4134);t.NodeLiteralUtils=class{static isStringLiteralNode(e){return"string"==typeof e.value}static isProhibitedLiteralNode(e,t){return!(!o.NodeGuards.isPropertyNode(t)||t.computed||t.key!==e)||!!o.NodeGuards.isImportDeclarationNode(t)||!(!o.NodeGuards.isExportAllDeclarationNode(t)&&!o.NodeGuards.isExportNamedDeclarationNode(t))}}},739:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeMetadata=void 0;class r{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 isForceTransformNode(e){return!0===r.get(e,"forceTransformNode")}static isIgnoredNode(e){return!0===r.get(e,"ignoredNode")}static isReplacedLiteral(e){return!0===r.get(e,"replacedLiteral")}}t.NodeMetadata=r},8134:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStatementUtils=void 0;const o=r(4134);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},2361:function(e,t,r){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.prototype.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(9385)),s=i(r(4523)),c=r(4941),d=r(425),l=r(4134),u=r(739);class p{static addXVerbatimPropertyTo(e){return e["x-verbatim-property"]={content:e.raw,precedence:a.Precedence.Primary},e}static clone(e){return p.parentizeAst(p.cloneRecursive(e))}static convertCodeToStructure(e){const t=d.ASTParserFacade.parse(e,{ecmaVersion:c.ecmaVersion,sourceType:"script"});return s.replace(t,{enter:(e,t)=>(p.parentizeNode(e,t),l.NodeGuards.isLiteralNode(e)&&p.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 l.NodeGuards.isUnaryExpressionNode(e.argument)?p.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:p.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=>{var o;if("parentNode"===r)return;const n=null!==(o=e[r])&&void 0!==o?o:null;let i;i=null===n||n instanceof RegExp?n:n instanceof Array?n.map(p.cloneRecursive):"object"==typeof n?p.cloneRecursive(n):n,t[r]=i})),t}}t.NodeUtils=p},2551:function(e,t,r){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(2991),d=r(5350),l=r(1588),u=r(4134);let p=o=class{constructor(e){this.scopeAnalyzer=e}traverseScopeIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeIdentifiersRecursive(o,o,r)}traverseScopeThroughIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeThroughIdentifiersRecursive(o,o,r)}traverseScopeIdentifiersRecursive(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)s.name!==o.argumentsVariableName&&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.traverseScopeIdentifiersRecursive(e,o,r)}}traverseScopeThroughIdentifiersRecursive(e,t,r){const o=t.variableScope,n=u.NodeGuards.isNodeWithBlockLexicalScope(o.block)?o.block:null;if(n){for(const e of t.through)r({reference:e,variableLexicalScopeNode:n});for(const o of t.childScopes)this.traverseScopeThroughIdentifiersRecursive(e,o,r)}}};p.argumentsVariableName="arguments",p.globalScopeNames=["global","module"],p=o=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IScopeAnalyzer)),a("design:paramtypes",["function"==typeof(n=void 0!==l.IScopeAnalyzer&&l.IScopeAnalyzer)?n:Object])],p),t.ScopeIdentifiersTraverser=p},8516:function(e,t,r){var o,n,i,a,s,c,d,l,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},p=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 m=r(2991),g=r(5350),S=r(516),y=r(2185),N=r(4364),h=r(3546),_=r(9651),I=r(68),b=r(3177),O=r(7370),E=r(6532),C=r(6086),v=r(6212),T=r(1137),R=r(9614),A=r(7170),j=r(8887),M=r(2662),F=r(7576),P=r(312),D=r(5558);let G=o=class{constructor(e,t){var r;const n=o.getOptionsByPreset(null!==(r=e.optionsPreset)&&void 0!==r?r:E.OptionsPreset.Default);Object.assign(this,n,e);const i=S.validateSync(this,o.validatorOptions);if(i.length)throw new ReferenceError("Validation failed. errors:\n"+P.ValidationErrorsFormatter.format(i));Object.assign(this,t.normalize(this))}static getOptionsByPreset(e){var t;const r=null!==(t=o.optionPresetsMap.get(e))&&void 0!==t?t:null;if(!r)throw new Error(`Options for preset name \`${e}\` are not found`);return r}};G.optionPresetsMap=new Map([[E.OptionsPreset.Default,A.DEFAULT_PRESET],[E.OptionsPreset.LowObfuscation,j.LOW_OBFUSCATION_PRESET],[E.OptionsPreset.MediumObfuscation,M.MEDIUM_OBFUSCATION_PRESET],[E.OptionsPreset.HighObfuscation,F.HIGH_OBFUSCATION_PRESET]]),G.validatorOptions={validationError:{target:!1}},u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"compact",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"controlFlowFlattening",void 0),u([S.IsNumber(),S.Min(0),S.Max(1),p("design:type",Number)],G.prototype,"controlFlowFlatteningThreshold",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"deadCodeInjection",void 0),u([S.IsNumber(),p("design:type",Number)],G.prototype,"deadCodeInjectionThreshold",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"debugProtection",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"debugProtectionInterval",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"disableConsoleOutput",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),D.IsAllowedForObfuscationTargets([O.ObfuscationTarget.Browser,O.ObfuscationTarget.BrowserNoEval]),p("design:type",Array)],G.prototype,"domainLock",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),p("design:type",Array)],G.prototype,"forceTransformStrings",void 0),u([S.IsIn([b.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,b.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,b.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,b.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator]),p("design:type","function"==typeof(n=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?n:Object)],G.prototype,"identifierNamesGenerator",void 0),u([S.IsString(),p("design:type",String)],G.prototype,"identifiersPrefix",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),S.ValidateIf((e=>e.identifierNamesGenerator===b.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator)),S.ArrayNotEmpty(),p("design:type",Array)],G.prototype,"identifiersDictionary",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"ignoreRequireImports",void 0),u([S.IsString(),p("design:type",String)],G.prototype,"inputFileName",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"log",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"numbersToExpressions",void 0),u([S.IsIn([E.OptionsPreset.Default,E.OptionsPreset.LowObfuscation,E.OptionsPreset.MediumObfuscation,E.OptionsPreset.HighObfuscation]),p("design:type","function"==typeof(i=void 0!==N.TOptionsPreset&&N.TOptionsPreset)?i:Object)],G.prototype,"optionsPreset",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"renameGlobals",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"renameProperties",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),p("design:type",Array)],G.prototype,"reservedNames",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),p("design:type",Array)],G.prototype,"reservedStrings",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"rotateStringArray",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"selfDefending",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"shuffleStringArray",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"simplify",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"sourceMap",void 0),u([S.IsString(),S.ValidateIf((e=>Boolean(e.sourceMapBaseUrl))),S.IsUrl({require_protocol:!0,require_tld:!1,require_valid_protocol:!0}),p("design:type",String)],G.prototype,"sourceMapBaseUrl",void 0),u([S.IsString(),p("design:type",String)],G.prototype,"sourceMapFileName",void 0),u([S.IsIn([C.SourceMapMode.Inline,C.SourceMapMode.Separate]),p("design:type","function"==typeof(a=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?a:Object)],G.prototype,"sourceMapMode",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"splitStrings",void 0),u([S.IsNumber(),S.ValidateIf((e=>Boolean(e.splitStrings))),S.Min(1),p("design:type",Number)],G.prototype,"splitStringsChunkLength",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"stringArray",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsIn([T.StringArrayEncoding.None,T.StringArrayEncoding.Base64,T.StringArrayEncoding.Rc4],{each:!0}),p("design:type",Array)],G.prototype,"stringArrayEncoding",void 0),u([S.IsArray(),S.ArrayNotEmpty(),S.ArrayUnique(),S.IsIn([v.StringArrayIndexesType.HexadecimalNumber,v.StringArrayIndexesType.HexadecimalNumericString],{each:!0}),p("design:type",Array)],G.prototype,"stringArrayIndexesType",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"stringArrayIndexShift",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"stringArrayWrappersChainedCalls",void 0),u([S.IsNumber(),S.Min(0),p("design:type",Number)],G.prototype,"stringArrayWrappersCount",void 0),u([S.IsNumber(),S.Min(2),p("design:type",Number)],G.prototype,"stringArrayWrappersParametersMaxCount",void 0),u([S.IsIn([R.StringArrayWrappersType.Variable,R.StringArrayWrappersType.Function]),p("design:type","function"==typeof(s=void 0!==h.TStringArrayWrappersType&&h.TStringArrayWrappersType)?s:Object)],G.prototype,"stringArrayWrappersType",void 0),u([S.IsNumber(),S.Min(0),S.Max(1),p("design:type",Number)],G.prototype,"stringArrayThreshold",void 0),u([S.IsIn([O.ObfuscationTarget.Browser,O.ObfuscationTarget.BrowserNoEval,O.ObfuscationTarget.Node]),p("design:type","function"==typeof(c=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?c:Object)],G.prototype,"target",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"transformObjectKeys",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"unicodeEscapeSequence",void 0),G=o=u([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.TInputOptions)),f(1,m.inject(g.ServiceIdentifiers.IOptionsNormalizer)),p("design:paramtypes",["function"==typeof(d=void 0!==y.TInputOptions&&y.TInputOptions)?d:Object,"function"==typeof(l=void 0!==I.IOptionsNormalizer&&I.IOptionsNormalizer)?l:Object])],G),t.Options=G},6248:function(e,t,r){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(2991),a=r(2938),s=r(3978),c=r(7226),d=r(4984),l=r(9062),u=r(1832),p=r(6896),f=r(3616),m=r(4073),g=r(2554),S=r(410),y=r(1589),N=r(3784);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,d.DomainLockRule,l.InputFileNameRule,u.SeedRule,p.SelfDefendingRule,f.SourceMapBaseUrlRule,m.SourceMapFileNameRule,g.SplitStringsChunkLengthRule,S.StringArrayRule,y.StringArrayEncodingRule,N.StringArrayWrappersChainedCallsRule],h=o=n([i.injectable()],h),t.OptionsNormalizer=h},312:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationErrorsFormatter=void 0;class r{static format(e){return e.reduce(((e,t)=>[...e,r.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=r},2938:(e,t)=>{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)},3978:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionRule=void 0;const o=r(7170);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)},7226:(e,t)=>{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)},4984:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockRule=void 0;const o=r(4741);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}},9062:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InputFileNameRule=void 0;const o=r(9965);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}},1832:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SeedRule=void 0,t.SeedRule=e=>e.seed?Object.assign(Object.assign({},e),{seed:e.seed}):Object.assign(Object.assign({},e),{seed:(0,999999999,Math.floor(1e9*Math.random()+0))})},6896:(e,t)=>{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)},3616:(e,t)=>{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:""})}},4073:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapFileNameRule=void 0;const o=r(9965);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}},2554:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringsChunkLengthRule=void 0,t.SplitStringsChunkLengthRule=e=>0===e.splitStringsChunkLength?Object.assign(Object.assign({},e),{splitStrings:!1,splitStringsChunkLength:0}):Object.assign(Object.assign({},e),{splitStringsChunkLength:Math.floor(e.splitStringsChunkLength)})},1589:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncodingRule=void 0;const o=r(1137);t.StringArrayEncodingRule=e=>(e.stringArrayEncoding.length||(e=Object.assign(Object.assign({},e),{stringArrayEncoding:[o.StringArrayEncoding.None]})),e)},410:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRule=void 0;const o=r(1137);t.StringArrayRule=e=>(e.stringArray||(e=Object.assign(Object.assign({},e),{rotateStringArray:!1,shuffleStringArray:!1,stringArray:!1,stringArrayEncoding:[o.StringArrayEncoding.None],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayThreshold:0})),e)},3784:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersChainedCallsRule=void 0,t.StringArrayWrappersChainedCallsRule=e=>(0===e.stringArrayWrappersCount&&(e=Object.assign(Object.assign({},e),{stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0})),e)},7170:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PRESET=void 0;const o=r(3177),n=r(7370),i=r(6532),a=r(6086),s=r(6212),c=r(1137),d=r(9614);t.DEFAULT_PRESET=Object.freeze({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],forceTransformStrings:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,optionsPreset:i.OptionsPreset.Default,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!0,seed:0,selfDefending:!1,shuffleStringArray:!0,simplify:!0,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:a.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:10,stringArray:!0,stringArrayEncoding:[c.StringArrayEncoding.None],stringArrayIndexesType:[s.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!0,stringArrayWrappersChainedCalls:!0,stringArrayWrappersCount:1,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:d.StringArrayWrappersType.Variable,stringArrayThreshold:.75,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},7576:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.HIGH_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(1137),i=r(2662);t.HIGH_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},i.MEDIUM_OBFUSCATION_PRESET),{controlFlowFlatteningThreshold:1,deadCodeInjectionThreshold:1,debugProtection:!0,debugProtectionInterval:!0,optionsPreset:o.OptionsPreset.HighObfuscation,splitStringsChunkLength:5,stringArrayEncoding:[n.StringArrayEncoding.Rc4],stringArrayWrappersCount:5,stringArrayWrappersParametersMaxCount:5,stringArrayThreshold:1}))},8887:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LOW_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(7170);t.LOW_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},n.DEFAULT_PRESET),{disableConsoleOutput:!0,optionsPreset:o.OptionsPreset.LowObfuscation,rotateStringArray:!0,selfDefending:!0,shuffleStringArray:!0,simplify:!0}))},2662:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MEDIUM_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(1137),i=r(9614),a=r(8887);t.MEDIUM_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},a.LOW_OBFUSCATION_PRESET),{controlFlowFlattening:!0,deadCodeInjection:!0,numbersToExpressions:!0,optionsPreset:o.OptionsPreset.MediumObfuscation,splitStrings:!0,splitStringsChunkLength:10,stringArrayEncoding:[n.StringArrayEncoding.Base64],stringArrayWrappersCount:2,stringArrayWrappersParametersMaxCount:4,stringArrayWrappersType:i.StringArrayWrappersType.Function,transformObjectKeys:!0}))},3685:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NO_ADDITIONAL_NODES_PRESET=void 0;const o=r(3177),n=r(7370),i=r(6086),a=r(1137),s=r(9614),c=r(6212);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:[],forceTransformStrings:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!1,seed:0,selfDefending:!1,shuffleStringArray:!1,simplify:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:0,stringArray:!1,stringArrayEncoding:[a.StringArrayEncoding.None],stringArrayIndexesType:[c.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:s.StringArrayWrappersType.Variable,stringArrayThreshold:0,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},5558:function(e,t,r){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(516),i=o(r(3142)),a=r(9965),s=r(7170);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+" ")}})}}},8072:function(e,t,r){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(2991),d=r(5350),l=r(5591),u=r(5233),p=r(6086),f=r(4482);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 p.SourceMapMode.Inline:t+="data:application/json;base64,"+this.cryptUtils.btoa(this.sourceMap);break;case p.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(d.ServiceIdentifiers.ICryptUtils)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.ICryptUtils&&l.ICryptUtils)?o:Object,"function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object])],m),t.ObfuscatedCode=m},8589:(e,t)=>{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}}},3901:function(e,t,r){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.ArrayStorage=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(5233);let f=class{constructor(e,t){this.storageLength=0,this.randomGenerator=e,this.options=t}initialize(){this.storage=[],this.storageId=this.randomGenerator.getRandomString(6)}delete(e){var t;const r=null!==(t=this.storage.splice(e,1)[0])&&void 0!==t?t:void 0;return r&&this.storageLength--,r}get(e){return this.storage[e]}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in array storage with key \`${e}\``);return t}getKeyOf(e){const t=this.storage.indexOf(e);return t>=0?t:null}getLength(){return this.storageLength}getStorage(){return this.storage}getStorageId(){return this.storageId}mergeWith(e,t=!1){this.storage=[...this.storage,...e.getStorage()],t&&(this.storageId=e.getStorageId())}set(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}};i([p.initializable(),a("design:type",Array)],f.prototype,"storage",void 0),i([p.initializable(),a("design:type",String)],f.prototype,"storageId",void 0),i([c.postConstruct(),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],f.prototype,"initialize",null),f=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],f),t.ArrayStorage=f},2015:function(e,t,r){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 d=r(2991),l=r(5350),u=r(4482),p=r(1403),f=r(5233);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([f.initializable(),s("design:type",String)],m.prototype,"storageId",void 0),a([f.initializable(),s("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],m.prototype,"storage",void 0),a([d.postConstruct(),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],m.prototype,"initialize",null),m=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],m),t.MapStorage=m},1951:function(e,t,r){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)},d=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 l=r(2991),u=r(5350),p=r(964),f=r(4482),m=r(1403),g=r(1806),S=r(2015);let y=o=class extends S.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)}))}};y.customCodeHelperGroupsList=[g.CustomCodeHelperGroup.ConsoleOutput,g.CustomCodeHelperGroup.DebugProtection,g.CustomCodeHelperGroup.DomainLock,g.CustomCodeHelperGroup.SelfDefending,g.CustomCodeHelperGroup.StringArray],s([l.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],y.prototype,"initialize",null),y=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperGroupFactory&&p.TCustomCodeHelperGroupFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],y),t.CustomCodeHelperGroupStorage=y},646:function(e,t,r){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(2991),d=r(5350),l=r(4482),u=r(1403),p=r(2015);let f=class extends p.MapStorage{constructor(e,t){super(e,t)}};f=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],f),t.ControlFlowStorage=f},3464:function(e,t,r){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.LiteralNodesCacheStorage=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(1137),f=r(2015);let m=class extends f.MapStorage{constructor(e,t){super(e,t)}buildKey(e,t){return`${e}-${Boolean(t)}`}shouldUseCachedValue(e,t){return!this.options.stringArrayWrappersCount&&(null==t?void 0:t.encoding)!==p.StringArrayEncoding.Rc4&&this.storage.has(e)}};m=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],m),t.LiteralNodesCacheStorage=m},1453:function(e,t,r){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.StringArrayScopeCallsWrapperLexicalScopeDataStorage=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(2015);let f=class extends p.MapStorage{constructor(e,t){super(e,t)}};f=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],f),t.StringArrayScopeCallsWrapperLexicalScopeDataStorage=f},995:function(e,t,r){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.StringArrayScopeCallsWrapperNamesDataStorage=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),p=r(2015);let f=class extends p.MapStorage{constructor(e,t){super(e,t)}};f=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],f),t.StringArrayScopeCallsWrapperNamesDataStorage=f},1860:function(e,t,r){var o,n,i,a,s,c,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},l=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.StringArrayStorage=void 0;const p=r(2991),f=r(5350),m=r(9416),g=r(5768),S=r(9825),y=r(4482),N=r(1403),h=r(1137),_=r(2015);let I=o=class extends _.MapStorage{constructor(e,t,r,n,i){super(r,n),this.rc4EncodedValuesSourcesCache=new Map,this.indexShiftAmount=0,this.rotationAmount=0,this.stringArrayStorageCallsWrapperNamesMap=new Map,this.identifierNamesGenerator=e(n),this.arrayUtils=t,this.cryptUtilsSwappedAlphabet=i,this.rc4Keys=this.randomGenerator.getRandomGenerator().n((()=>this.randomGenerator.getRandomGenerator().string({length:o.rc4KeyLength})),o.rc4KeysCount)}initialize(){super.initialize(),this.indexShiftAmount=this.options.stringArrayIndexShift?this.randomGenerator.getRandomInteger(o.minimumIndexShiftAmount,o.maximumIndexShiftAmount):0,this.rotationAmount=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(o.minimumRotationAmount,o.maximumRotationAmount):0}get(e){return this.getOrSetIfDoesNotExist(e)}getIndexShiftAmount(){return this.indexShiftAmount}getRotationAmount(){return this.rotationAmount}getStorageName(){return this.getStorageId()}getStorageId(){return this.stringArrayStorageName||(this.stringArrayStorageName=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength)),this.stringArrayStorageName}getStorageCallsWrapperName(e){var t;const r=null!==(t=this.stringArrayStorageCallsWrapperNamesMap.get(e))&&void 0!==t?t:null;if(r)return r;const n=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength);return this.stringArrayStorageCallsWrapperNamesMap.set(e,n),n}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)))}getOrSetIfDoesNotExist(e){const{encodedValue:t,encoding:r,decodeKey:o}=this.getEncodedValue(e),n=this.storage.get(t);if(n)return n;const i={encodedValue:t,encoding:r,decodeKey:o,value:e,index:this.getLength()};return this.storage.set(t,i),i}getEncodedValue(e){var t;const r=this.options.stringArrayEncoding.length?this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayEncoding):null;if(!r)throw new Error("`stringArrayEncoding` option array is empty");switch(r){case h.StringArrayEncoding.Rc4:{const o=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),n=this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.rc4(e,o)),i=null!==(t=this.rc4EncodedValuesSourcesCache.get(n))&&void 0!==t?t:[];let a=i.length;return(!a||!i.includes(e))&&(i.push(e),a++),this.rc4EncodedValuesSourcesCache.set(n,i),a>1?this.getEncodedValue(e):{encodedValue:n,encoding:r,decodeKey:o}}case h.StringArrayEncoding.Base64:{const t=null;return{encodedValue:this.cryptUtilsSwappedAlphabet.btoa(e),encoding:r,decodeKey:t}}default:return{encodedValue:e,encoding:r,decodeKey:null}}}};I.minimumRotationAmount=100,I.maximumRotationAmount=500,I.minimumIndexShiftAmount=100,I.maximumIndexShiftAmount=500,I.rc4KeyLength=4,I.rc4KeysCount=50,I.stringArrayNameLength=4,d([p.postConstruct(),l("design:type",Function),l("design:paramtypes",[]),l("design:returntype",void 0)],I.prototype,"initialize",null),I=o=d([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.IArrayUtils)),u(2,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(3,p.inject(f.ServiceIdentifiers.IOptions)),u(4,p.inject(f.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.IArrayUtils&&g.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==y.IOptions&&y.IOptions)?s:Object,"function"==typeof(c=void 0!==S.ICryptUtilsSwappedAlphabet&&S.ICryptUtilsSwappedAlphabet)?c:Object])],I),t.StringArrayStorage=I},1891:function(e,t,r){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.VisitedLexicalScopeNodesStackStorage=void 0;const d=r(2991),l=r(5350),u=r(5768),p=r(4482),f=r(1403),m=r(3901);let g=class extends m.ArrayStorage{constructor(e,t,r){super(e,t),this.arrayUtils=r}getLastElement(){return this.arrayUtils.getLastElement(this.getStorage())}getPenultimateElement(){var e;const t=this.getLength();return null!==(e=this.get(t-2))&&void 0!==e?e:void 0}push(e){const t=this.getLength();this.set(t,e)}pop(){const e=this.getLength();return this.delete(e-1)}};g=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),c(2,d.inject(l.ServiceIdentifiers.IArrayUtils)),s("design:paramtypes",["function"==typeof(o=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object,"function"==typeof(i=void 0!==u.IArrayUtils&&u.IArrayUtils)?i:Object])],g),t.VisitedLexicalScopeNodesStackStorage=g},8904:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5127:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8820:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},964:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8749:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7183:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1878:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7070:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7219:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9416:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9628:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2147:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3312:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},805:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2937:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2596:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2185:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4364:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3546:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},138:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6622:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9651:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7207:function(e,t,r){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(2991),c=r(5350),d=r(2569);let l=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}};l=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.ILevelledTopologicalSorter)),i("design:paramtypes",["function"==typeof(o=void 0!==d.ILevelledTopologicalSorter&&d.ILevelledTopologicalSorter)?o:Object])],l),t.AbstractTransformerNamesGroupsBuilder=l},3087:function(e,t,r){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(2991),c=r(5350),d=r(1403);let l=class{constructor(e){this.randomGenerator=e}createWithRange(e){const t=[];for(let r=0;rn&&(o=i,n=e),r[i]=e}return o}getLastElement(e){var t;return null!==(t=e[e.length-1])&&void 0!==t?t:void 0}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}};l=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object])],l),t.ArrayUtils=l},5579:function(e,t,r){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(2991),c=r(5350),d=r(1403),l=r(6934),u=r(3697),p=r(4741);let f=class{constructor(e){this.base64Alphabet=l.base64alphabet,this.randomGenerator=e}btoa(e){const t=this.base64Alphabet;let r="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,((e,t)=>String.fromCharCode(parseInt(`${p.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:u.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},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.CryptUtilsSwappedAlphabet=void 0;const s=r(2991),c=r(5350),d=r(1403),l=r(4497),u=r(5579);let p=class extends u.CryptUtils{constructor(e){super(e),this.base64Alphabet=l.base64alphabetSwapped}};p=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object])],p),t.CryptUtilsSwappedAlphabet=p},1622:function(e,t,r){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.EscapeSequenceEncoder=void 0;const i=r(2991);let a=o=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 n=new RegExp("[\\s\\S]","g");let i,a;const s=e.replace(n,(e=>t||o.forceEscapeCharactersRegExp.test(e)?(o.ASCIICharactersRegExp.test(e)?(i="\\x",a="00"):(i="\\u",a="0000"),`${i}${(a+e.charCodeAt(0).toString(16)).slice(-a.length)}`):e));return this.stringsCache.set(r,s),this.stringsCache.set(`${s}-${String(t)}`,s),s}};a.ASCIICharactersRegExp=/[\x00-\x7F]/,a.forceEscapeCharactersRegExp=/[\x00-\x1F\x7F-\x9F'"\\\s]/,a=o=n([i.injectable()],a),t.EscapeSequenceEncoder=a},7248:function(e,t,r){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;const n=r(2991);let i=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)}};i=o([n.injectable()],i),t.LevelledTopologicalSorter=i},6543:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NumberUtils=void 0;const o=r(4741);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}static isPositive(e){if(isNaN(e))throw new Error("Given value is NaN");return e>0||!(e<0)&&1/e===Number.POSITIVE_INFINITY}static isUnsafeNumber(e){if(isNaN(e))throw new Error("Given value is NaN");return eNumber.MAX_SAFE_INTEGER}static getFactors(e){if(0===e)throw new Error("Invalid number. Allowed only non-zero number");if(1===(e=Math.abs(e)))return[-e,e];const t=[],r=Math.sqrt(e),o=e%2==0?1:2;for(let n=1;n<=r;n+=o){if(e%n!=0)continue;t.push(-n,n);const r=e/n;r!==n&&t.push(-r,r)}return t.sort(((e,t)=>e-t))}}},3697:function(e,t,r){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)},d=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.RandomGenerator=void 0;const u=r(2991),p=r(5350),f=l(r(204)),m=r(3434),g=r(4482),S=r(5164),y=r(5233),N=r(6366),h=r(2691);let _=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})}getRandomIntegerExcluding(e,t,r){const o=[];for(let n=e;n<=t;n++)r.includes(n)||o.push(n);return this.randomGenerator.pickone(o)}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}|${f.default(this.sourceCode.getSourceCode())}`}};_.randomGeneratorPool=`${N.alphabetString}${h.alphabetStringUppercase}`,s([y.initializable(),c("design:type","function"==typeof(n=void 0!==m.Chance&&m.Chance.Chance)?n:Object)],_.prototype,"randomGenerator",void 0),s([u.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],_.prototype,"initialize",null),_=o=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.ISourceCode)),d(1,u.inject(p.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(i=void 0!==S.ISourceCode&&S.ISourceCode)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],_),t.RandomGenerator=_},2161:function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringUtils=void 0;const n=o(r(5667));t.StringUtils=class{static escapeJsString(e){return n.default(e)}}},4741:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=void 0;class r{static buildVersionMessage(e,t){return e&&t?`${e}_${new Date(parseInt(t,10)).toISOString()}`:"unknown"}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||r.baseMultipleSourcesIdentifiersPrefix}${t}`}static makeEnum(e){return Object.freeze(Object.assign({},e))}}t.Utils=r,r.baseMultipleSourcesIdentifiersPrefix="a",r.hexadecimalPrefix="0x"},6856: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"]')},9385:e=>{e.exports=require("@javascript-obfuscator/escodegen")},6054:e=>{e.exports=require("acorn")},2242:e=>{e.exports=require("chalk")},3434:e=>{e.exports=require("chance")},516:e=>{e.exports=require("class-validator")},8:e=>{e.exports=require("eslint-scope")},4523:e=>{e.exports=require("estraverse")},3142:e=>{e.exports=require("fast-deep-equal")},2991:e=>{e.exports=require("inversify")},5667:e=>{e.exports=require("js-string-escape")},204:e=>{e.exports=require("md5")},9906:e=>{e.exports=require("reflect-metadata")},8655:e=>{e.exports=require("string-template")},6094:e=>{e.exports=require("stringz")}},t={};return function r(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return e[o].call(n.exports,n,n.exports,r),n.exports}(3254)})(); +/*! +Copyright (C) 2016-2020 Timofey Kachalov + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +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 = +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./index.ts": +/*!******************!*\ + !*** ./index.ts ***! + \******************/ +/***/ ((module, exports, __webpack_require__) => { + + +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 ***! + \********************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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.slice(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 ***! + \*************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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__(/*! @javascript-obfuscator/escodegen */ "@javascript-obfuscator/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("2.10.0", 1609027065663)); + 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.RenameIdentifiers); + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.StringArray); + if (this.options.simplify) { + astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Simplifying); + } + 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.BooleanLiteralTransformer, + NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer, + NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer, + NodeTransformer_1.NodeTransformer.CommentsTransformer, + NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer, + NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer, + NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer, + NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer, + NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer, + NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer, + NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer, + NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer, + NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, + NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer, + NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, + NodeTransformer_1.NodeTransformer.MetadataTransformer, + NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer, + NodeTransformer_1.NodeTransformer.NumberLiteralTransformer, + NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer, + NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer, + NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, + NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer, + NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer, + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer, + NodeTransformer_1.NodeTransformer.SplitStringTransformer, + NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer, + NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer, + NodeTransformer_1.NodeTransformer.StringArrayTransformer, + 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 ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 Options_1 = __webpack_require__(/*! ./options/Options */ "./src/options/Options.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) }); + }, {}); + } + static getOptionsByPreset(optionsPreset) { + return Options_1.Options.getOptionsByPreset(optionsPreset); + } +} +exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade; +JavaScriptObfuscatorFacade.version = (_a = "2.10.0") !== null && _a !== void 0 ? _a : 'unknown'; + + +/***/ }), + +/***/ "./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts": +/*!******************************************************************!*\ + !*** ./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 ***! + \**************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 ***! + \************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 ***! + \**********************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 NumberNumericalExpressionAnalyzer_1, _a; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NumberNumericalExpressionAnalyzer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const IRandomGenerator_1 = __webpack_require__(/*! ../../interfaces/utils/IRandomGenerator */ "./src/interfaces/utils/IRandomGenerator.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = class NumberNumericalExpressionAnalyzer { + constructor(randomGenerator) { + this.numberFactorsMap = new Map(); + this.randomGenerator = randomGenerator; + } + analyze(number) { + if (isNaN(number)) { + throw new Error('Given value is NaN'); + } + if (NumberUtils_1.NumberUtils.isUnsafeNumber(number)) { + return [number]; + } + const additionParts = this.generateAdditionParts(number); + return additionParts.map((addition) => this.mixWithMultiplyParts(addition)); + } + generateAdditionParts(number) { + const additionParts = []; + const upperNumberLimit = Math.min(Math.abs(number * 2), Number.MAX_SAFE_INTEGER); + const from = Math.min(-10000, -upperNumberLimit); + const to = Math.max(10000, upperNumberLimit); + let temporarySum = 0; + for (let i = 0; i < NumberNumericalExpressionAnalyzer_1.additionalParts; i++) { + if (i < NumberNumericalExpressionAnalyzer_1.additionalParts - 1) { + let addition = this.randomGenerator.getRandomInteger(from, to); + const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(temporarySum + addition); + if (isUnsafeCombination) { + addition = -addition; + } + additionParts.push(addition); + temporarySum += addition; + } + else { + const combination = number - temporarySum; + const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(combination); + if (isUnsafeCombination) { + additionParts.push(0 - temporarySum); + additionParts.push(number); + } + else { + additionParts.push(combination); + } + } + } + return additionParts; + } + mixWithMultiplyParts(number) { + var _a; + const shouldMixWithMultiplyParts = this.randomGenerator.getMathRandom() > 0.5; + if (!shouldMixWithMultiplyParts || number === 0) { + return number; + } + let factors = (_a = this.numberFactorsMap.get(number)) !== null && _a !== void 0 ? _a : null; + if (!factors) { + factors = NumberUtils_1.NumberUtils.getFactors(number); + this.numberFactorsMap.set(number, factors); + } + if (!factors.length) { + return number; + } + const factor = factors[this.randomGenerator.getRandomInteger(0, factors.length - 1)]; + return [factor, number / factor]; + } +}; +NumberNumericalExpressionAnalyzer.additionalParts = 3; +NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = __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]) +], NumberNumericalExpressionAnalyzer); +exports.NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer; + + +/***/ }), + +/***/ "./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts": +/*!**************************************************************************************************!*\ + !*** ./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts ***! + \**************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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, parentNode) => { + var _a, _b, _c, _d; + if (!node.range) { + node.range = [ + (_b = (_a = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : ScopeAnalyzer_1.emptyRangeValue, + (_d = (_c = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : 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 ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.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"); +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 (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) { + return; + } + if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return; + } + if (!this.shouldAddValueToStringArray(literalNode)) { + return; + } + this.stringArrayStorageData.set(literalNode, this.stringArrayStorage.getOrThrow(literalNode.value)); + } + shouldAddValueToStringArray(literalNode) { + const isForceTransformNode = NodeMetadata_1.NodeMetadata.isForceTransformNode(literalNode); + if (isForceTransformNode) { + return true; + } + return literalNode.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 ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.alphabetString = void 0; +exports.alphabetString = 'abcdefghijklmnopqrstuvwxyz'; + + +/***/ }), + +/***/ "./src/constants/AlphabetStringUppercase.ts": +/*!**************************************************!*\ + !*** ./src/constants/AlphabetStringUppercase.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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/Base64Alphabet.ts": +/*!*****************************************!*\ + !*** ./src/constants/Base64Alphabet.ts ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.base64alphabet = void 0; +const AlphabetStringUppercase_1 = __webpack_require__(/*! ./AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AlphabetString_1 = __webpack_require__(/*! ./AlphabetString */ "./src/constants/AlphabetString.ts"); +const NumbersString_1 = __webpack_require__(/*! ./NumbersString */ "./src/constants/NumbersString.ts"); +exports.base64alphabet = `${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/=`; + + +/***/ }), + +/***/ "./src/constants/Base64AlphabetSwapped.ts": +/*!************************************************!*\ + !*** ./src/constants/Base64AlphabetSwapped.ts ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.base64alphabetSwapped = void 0; +const AlphabetStringUppercase_1 = __webpack_require__(/*! ./AlphabetStringUppercase */ "./src/constants/AlphabetStringUppercase.ts"); +const AlphabetString_1 = __webpack_require__(/*! ./AlphabetString */ "./src/constants/AlphabetString.ts"); +const NumbersString_1 = __webpack_require__(/*! ./NumbersString */ "./src/constants/NumbersString.ts"); +exports.base64alphabetSwapped = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}${NumbersString_1.numbersString}+/=`; + + +/***/ }), + +/***/ "./src/constants/EcmaVersion.ts": +/*!**************************************!*\ + !*** ./src/constants/EcmaVersion.ts ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ecmaVersion = void 0; +exports.ecmaVersion = 12; + + +/***/ }), + +/***/ "./src/constants/NumbersString.ts": +/*!****************************************!*\ + !*** ./src/constants/NumbersString.ts ***! + \****************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.numbersString = void 0; +exports.numbersString = '0123456789'; + + +/***/ }), + +/***/ "./src/container/InversifyContainerFacade.ts": +/*!***************************************************!*\ + !*** ./src/container/InversifyContainerFacade.ts ***! + \***************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 DeadCodeInjectionTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/DeadCodeInjectionTransformersModule */ "./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.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 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 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 RenameIdentifiersTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/RenameIdentifiersTransformersModule */ "./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts"); +const RenamePropertiesTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/RenamePropertiesTransformersModule */ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts"); +const SimplifyingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/SimplifyingTransformersModule */ "./src/container/modules/node-transformers/SimplifyingTransformersModule.ts"); +const StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts"); +const StringArrayTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/StringArrayTransformersModule */ "./src/container/modules/node-transformers/StringArrayTransformersModule.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 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.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(DeadCodeInjectionTransformersModule_1.deadCodeInjectionTransformersModule); + this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule); + this.container.load(GeneratorsModule_1.generatorsModule); + this.container.load(InitializingTransformersModule_1.initializingTransformersModule); + this.container.load(NodeModule_1.nodeModule); + this.container.load(NodeTransformersModule_1.nodeTransformersModule); + this.container.load(OptionsModule_1.optionsModule); + this.container.load(PreparingTransformersModule_1.preparingTransformersModule); + this.container.load(RenameIdentifiersTransformersModule_1.renameIdentifiersTransformersModule); + this.container.load(RenamePropertiesTransformersModule_1.renamePropertiesTransformersModule); + this.container.load(SimplifyingTransformersModule_1.simplifyingTransformersModule); + this.container.load(StoragesModule_1.storagesModule); + this.container.load(StringArrayTransformersModule_1.stringArrayTransformersModule); + this.container.load(UtilsModule_1.utilsModule); + } + unload() { + this.container.unbindAll(); + } +} +exports.InversifyContainerFacade = InversifyContainerFacade; + + +/***/ }), + +/***/ "./src/container/ServiceIdentifiers.ts": +/*!*********************************************!*\ + !*** ./src/container/ServiceIdentifiers.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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__INodeGuard"] = "Factory"; + ServiceIdentifiers["Factory__INodeTransformer"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscatedCode"] = "Factory"; + ServiceIdentifiers["Factory__IObjectExpressionKeysTransformerCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IObjectExpressionExtractor"] = "Factory"; + ServiceIdentifiers["Factory__IStringArrayCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IStringArrayIndexNode"] = "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["ICryptUtilsSwappedAlphabet"] = "ICryptUtilsSwappedAlphabet"; + ServiceIdentifiers["ICustomCodeHelper"] = "ICustomCodeHelper"; + ServiceIdentifiers["ICustomCodeHelperGroup"] = "ICustomCodeHelperGroup"; + ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer"; + ServiceIdentifiers["ICustomCodeHelperFormatter"] = "ICustomCodeHelperFormatter"; + ServiceIdentifiers["ICustomCodeHelperObfuscator"] = "ICustomCodeHelperObfuscator"; + ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder"; + ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator"; + ServiceIdentifiers["IIdentifierReplacer"] = "IIdentifierReplacer"; + ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator"; + ServiceIdentifiers["ILevelledTopologicalSorter"] = "ILevelledTopologicalSorter"; + ServiceIdentifiers["ILiteralNodesCacheStorage"] = "ILiteralNodesCacheStorage"; + ServiceIdentifiers["ILogger"] = "ILogger"; + ServiceIdentifiers["INodeGuard"] = "INodeGuard"; + ServiceIdentifiers["INodeTransformer"] = "INodeTransformer"; + ServiceIdentifiers["INodeTransformerNamesGroupsBuilder"] = "INodeTransformerNamesGroupsBuilder"; + ServiceIdentifiers["INodeTransformersRunner"] = "INodeTransformersRunner"; + ServiceIdentifiers["INumberNumericalExpressionAnalyzer"] = "INumberNumericalExpressionAnalyzer"; + ServiceIdentifiers["IObfuscatedCode"] = "IObfuscatedCode"; + ServiceIdentifiers["IOptions"] = "IOptions"; + ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer"; + ServiceIdentifiers["IPrevailingKindOfVariablesAnalyzer"] = "IPrevailingKindOfVariablesAnalyzer"; + ServiceIdentifiers["IObjectExpressionExtractor"] = "IObjectExpressionExtractor"; + ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator"; + ServiceIdentifiers["IRenamePropertiesReplacer"] = "IRenamePropertiesReplacer"; + ServiceIdentifiers["IScopeIdentifiersTraverser"] = "IScopeIdentifiersTraverser"; + ServiceIdentifiers["ISourceCode"] = "ISourceCode"; + ServiceIdentifiers["IScopeAnalyzer"] = "IScopeAnalyzer"; + ServiceIdentifiers["IStringArrayIndexNode"] = "IStringArrayIndexNode"; + ServiceIdentifiers["IStringArrayScopeCallsWrapperLexicalScopeDataStorage"] = "IStringArrayScopeCallsWrapperLexicalScopeDataStorage"; + ServiceIdentifiers["IStringArrayScopeCallsWrapperNamesDataStorage"] = "IStringArrayScopeCallsWrapperNamesDataStorage"; + ServiceIdentifiers["IStringArrayStorage"] = "IStringArrayStorage"; + ServiceIdentifiers["IStringArrayStorageAnalyzer"] = "IStringArrayStorageAnalyzer"; + ServiceIdentifiers["IVisitedLexicalScopeNodesStackStorage"] = "IVisitedLexicalScopeNodesStackStorage"; + 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 ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 NumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer */ "./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.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.INumberNumericalExpressionAnalyzer) + .to(NumberNumericalExpressionAnalyzer_1.NumberNumericalExpressionAnalyzer) + .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 ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 StringArrayCallsWrapperBase64CodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts"); +const StringArrayCallsWrapperRc4CodeHelper_1 = __webpack_require__(/*! ../../../custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.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(StringArrayCallsWrapperBase64CodeHelper_1.StringArrayCallsWrapperBase64CodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper) + .to(StringArrayCallsWrapperRc4CodeHelper_1.StringArrayCallsWrapperRc4CodeHelper) + .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4); + 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 ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 StringArrayCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/StringArrayCustomNode */ "./src/enums/custom-nodes/StringArrayCustomNode.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 ObjectExpressionVariableDeclarationHostNode_1 = __webpack_require__(/*! ../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode */ "./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts"); +const StringArrayCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayCallNode */ "./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts"); +const StringArrayHexadecimalNumberIndexNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts"); +const StringArrayHexadecimalNumericStringIndexNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts"); +const StringArrayIndexNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode */ "./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts"); +const StringArrayScopeCallsWrapperFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode */ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts"); +const StringArrayScopeCallsWrapperVariableNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode */ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.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.Newable__ICustomNode) + .toConstructor(StringArrayCallNode_1.StringArrayCallNode) + .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(StringArrayScopeCallsWrapperFunctionNode_1.StringArrayScopeCallsWrapperFunctionNode) + .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode) + .toConstructor(StringArrayScopeCallsWrapperVariableNode_1.StringArrayScopeCallsWrapperVariableNode) + .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode) + .to(StringArrayHexadecimalNumberIndexNode_1.StringArrayHexadecimalNumberIndexNode) + .inSingletonScope() + .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode) + .to(StringArrayHexadecimalNumericStringIndexNode_1.StringArrayHexadecimalNumericStringIndexNode) + .inSingletonScope() + .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode); + 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)); + 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)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage, ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)); +}); + + +/***/ }), + +/***/ "./src/container/modules/generators/GeneratorsModule.ts": +/*!**************************************************************!*\ + !*** ./src/container/modules/generators/GeneratorsModule.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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"); +const MangledShuffledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.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); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator) + .to(MangledShuffledIdentifierNamesGenerator_1.MangledShuffledIdentifierNamesGenerator) + .inSingletonScope() + .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator); + 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.MangledShuffledIdentifierNamesGenerator: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator); + 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 ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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/control-flow-transformers/control-flow-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/control-flow-transformers/control-flow-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 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(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 ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 BasePropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor */ "./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts"); +const BooleanLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/BooleanLiteralTransformer */ "./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts"); +const ExportSpecifierTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ExportSpecifierTransformer */ "./src/node-transformers/converting-transformers/ExportSpecifierTransformer.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 NumberLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/NumberLiteralTransformer */ "./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts"); +const NumberToNumericalExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/NumberToNumericalExpressionTransformer */ "./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts"); +const ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.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 ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts"); +const ObjectPatternPropertiesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectPatternPropertiesTransformer */ "./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.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"); +exports.convertingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(BooleanLiteralTransformer_1.BooleanLiteralTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ExportSpecifierTransformer_1.ExportSpecifierTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer); + 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(NumberLiteralTransformer_1.NumberLiteralTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberLiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(NumberToNumericalExpressionTransformer_1.NumberToNumericalExpressionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer); + 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(ObjectPatternPropertiesTransformer_1.ObjectPatternPropertiesTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer); + 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/DeadCodeInjectionTransformersModule.ts": +/*!****************************************************************************************!*\ + !*** ./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.deadCodeInjectionTransformersModule = 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 DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts"); +exports.deadCodeInjectionTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.finalizingTransformersModule = 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 EscapeSequenceTransformer_1 = __webpack_require__(/*! ../../../node-transformers/finalizing-transformers/EscapeSequenceTransformer */ "./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts"); +exports.finalizingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(EscapeSequenceTransformer_1.EscapeSequenceTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/InitializingTransformersModule.ts": +/*!***********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/InitializingTransformersModule.ts ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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/NodeTransformersModule.ts": +/*!***************************************************************************!*\ + !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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/PreparingTransformersModule.ts": +/*!********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 ForceTransformStringObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts"); +const IgnoredRequireImportObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.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.INodeTransformer) + .to(VariablePreserveTransformer_1.VariablePreserveTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer); + 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(ForceTransformStringObfuscatingGuard_1.ForceTransformStringObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(IgnoredRequireImportObfuscatingGuard_1.IgnoredRequireImportObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard) + .to(ReservedStringObfuscatingGuard_1.ReservedStringObfuscatingGuard) + .inSingletonScope() + .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard) + .toFactory(InversifyContainerFacade_1.InversifyContainerFacade + .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts": +/*!****************************************************************************************!*\ + !*** ./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.renameIdentifiersTransformersModule = 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 IdentifierReplacer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer */ "./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts"); +const LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/LabeledStatementTransformer */ "./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts"); +const ScopeIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer */ "./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts"); +const ScopeThroughIdentifiersTransformer_1 = __webpack_require__(/*! ../../../node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer */ "./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts"); +exports.renameIdentifiersTransformersModule = 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(ScopeIdentifiersTransformer_1.ScopeIdentifiersTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ScopeThroughIdentifiersTransformer_1.ScopeThroughIdentifiersTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer) + .to(IdentifierReplacer_1.IdentifierReplacer) + .inSingletonScope(); +}); + + +/***/ }), + +/***/ "./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts": +/*!***************************************************************************************!*\ + !*** ./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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-transformers/SimplifyingTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/SimplifyingTransformersModule.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.simplifyingTransformersModule = 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 BlockStatementSimplifyTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts"); +const ExpressionStatementsMergeTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer */ "./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts"); +const IfStatementSimplifyTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/IfStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts"); +const VariableDeclarationsMergeTransformer_1 = __webpack_require__(/*! ../../../node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer */ "./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts"); +exports.simplifyingTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(BlockStatementSimplifyTransformer_1.BlockStatementSimplifyTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(ExpressionStatementsMergeTransformer_1.ExpressionStatementsMergeTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer); + 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/StringArrayTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/StringArrayTransformersModule.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.stringArrayTransformersModule = 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 StringArrayRotateFunctionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer */ "./src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts"); +const StringArrayScopeCallsWrapperTransformer_1 = __webpack_require__(/*! ../../../node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer */ "./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts"); +const StringArrayTransformer_1 = __webpack_require__(/*! ../../../node-transformers/string-array-transformers/StringArrayTransformer */ "./src/node-transformers/string-array-transformers/StringArrayTransformer.ts"); +exports.stringArrayTransformersModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(StringArrayRotateFunctionTransformer_1.StringArrayRotateFunctionTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(StringArrayScopeCallsWrapperTransformer_1.StringArrayScopeCallsWrapperTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer) + .to(StringArrayTransformer_1.StringArrayTransformer) + .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayTransformer); +}); + + +/***/ }), + +/***/ "./src/container/modules/node/NodeModule.ts": +/*!**************************************************!*\ + !*** ./src/container/modules/node/NodeModule.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 ***! + \********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 LiteralNodesCacheStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/LiteralNodesCacheStorage */ "./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts"); +const StringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage */ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts"); +const StringArrayScopeCallsWrapperNamesDataStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage */ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts"); +const StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/StringArrayStorage */ "./src/storages/string-array-transformers/StringArrayStorage.ts"); +const VisitedLexicalScopeNodesStackStorage_1 = __webpack_require__(/*! ../../../storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage */ "./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts"); +exports.storagesModule = new inversify_1.ContainerModule((bind) => { + bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage) + .to(CustomCodeHelperGroupStorage_1.CustomCodeHelperGroupStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage) + .to(LiteralNodesCacheStorage_1.LiteralNodesCacheStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage) + .to(StringArrayStorage_1.StringArrayStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) + .to(StringArrayScopeCallsWrapperLexicalScopeDataStorage_1.StringArrayScopeCallsWrapperLexicalScopeDataStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage) + .to(StringArrayScopeCallsWrapperNamesDataStorage_1.StringArrayScopeCallsWrapperNamesDataStorage) + .inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage) + .to(VisitedLexicalScopeNodesStackStorage_1.VisitedLexicalScopeNodesStackStorage) + .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 ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 CryptUtilsSwappedAlphabet_1 = __webpack_require__(/*! ../../../utils/CryptUtilsSwappedAlphabet */ "./src/utils/CryptUtilsSwappedAlphabet.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.ICryptUtilsSwappedAlphabet) + .to(CryptUtilsSwappedAlphabet_1.CryptUtilsSwappedAlphabet) + .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 ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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; + } + 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 ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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, numbersToExpressions: this.options.numbersToExpressions, simplify: this.options.simplify, 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 ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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(nodeTransformationStage, callsControllerFunctionName) { + this.nodeTransformationStage = nodeTransformationStage; + this.callsControllerFunctionName = callsControllerFunctionName; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + if (this.nodeTransformationStage === NodeTransformationStage_1.NodeTransformationStage.Finalizing) { + 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 NodeTransformationStage_1.NodeTransformationStage !== "undefined" && NodeTransformationStage_1.NodeTransformationStage) === "function" ? _a : Object) +], CallsControllerFunctionCodeHelper.prototype, "nodeTransformationStage", 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 ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ConsoleOutputDisableTemplate_1 = __webpack_require__(/*! ./templates/ConsoleOutputDisableTemplate */ "./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.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(ConsoleOutputDisableTemplate_1.ConsoleOutputDisableTemplate(), { + 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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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 ConsoleOutputCodeHelperGroup = class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendOnPreparing(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 + ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = consoleOutputDisableLexicalScopeNode + ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + 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(NodeTransformationStage_1.NodeTransformationStage.Preparing, 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/ConsoleOutputDisableTemplate.ts": +/*!******************************************************************************************!*\ + !*** ./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ConsoleOutputDisableTemplate = void 0; +function ConsoleOutputDisableTemplate() { + return ` + const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () { + {globalVariableTemplate} + + const consoleObject = (that.console = that.console || {}); + const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace']; + + for (let index = 0; index < methods.length; index++){ + const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName}); + const methodName = methods[index]; + const originalFunction = consoleObject[methodName] || func; + + func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName}); + func.toString = originalFunction.toString.bind(originalFunction); + + consoleObject[methodName] = func; + } + }); + + {consoleLogDisableFunctionName}(); + `; +} +exports.ConsoleOutputDisableTemplate = ConsoleOutputDisableTemplate; + + +/***/ }), + +/***/ "./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts": +/*!*******************************************************************************************!*\ + !*** ./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \***********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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.customCodeHelperFactory = customCodeHelperFactory; + } + appendOnPreparing(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 + ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = debugProtectionFunctionCallScopeNode + ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode) + : this.identifierNamesGenerator.generateNext(); + 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(NodeTransformationStage_1.NodeTransformationStage.Preparing, 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 ***! + \**********************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \******************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \*************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \****************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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 DomainLockCustomCodeHelperGroup = class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.customCodeHelperFactory = customCodeHelperFactory; + } + appendOnPreparing(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 + ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode) + : this.identifierNamesGenerator.generateNext(); + const callsControllerFunctionName = 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(NodeTransformationStage_1.NodeTransformationStage.Preparing, 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 ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 domainNormalized = domain[0] === String.fromCharCode(46) + ? domain.slice(1) + : domain; + const position = currentDomain.length - domainNormalized.length; + const lastIndex = currentDomain.indexOf(domainNormalized, 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 ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 NodeTransformationStage_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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.customCodeHelperFactory = customCodeHelperFactory; + } + appendOnPreparing(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(NodeTransformationStage_1.NodeTransformationStage.Preparing, 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 ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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/StringArrayCallsWrapperBase64CodeHelper.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.StringArrayCallsWrapperBase64CodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 StringArrayBase64DecodeTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts"); +const StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ./StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts"); +let StringArrayCallsWrapperBase64CodeHelper = class StringArrayCallsWrapperBase64CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper { + getDecodeStringArrayTemplate() { + const atobFunctionName = this.randomGenerator.getRandomString(6); + const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), { + atobFunctionName: atobFunctionName + }); + const selfDefendingCode = this.getSelfDefendingTemplate(); + return this.customCodeHelperFormatter.formatTemplate(StringArrayBase64DecodeTemplate_1.StringArrayBase64DecodeTemplate(this.randomGenerator), { + atobPolyfill, + atobFunctionName, + selfDefendingCode, + stringArrayName: this.stringArrayName, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + } +}; +StringArrayCallsWrapperBase64CodeHelper = __decorate([ + inversify_1.injectable() +], StringArrayCallsWrapperBase64CodeHelper); +exports.StringArrayCallsWrapperBase64CodeHelper = StringArrayCallsWrapperBase64CodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts": +/*!***********************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.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 StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.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, indexShiftAmount) { + this.stringArrayName = stringArrayName; + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + this.indexShiftAmount = indexShiftAmount; + } + 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, + indexShiftAmount: this.indexShiftAmount + }), { + reservedNames: preservedNames + }); + } + getDecodeStringArrayTemplate() { + return ''; + } + getSelfDefendingTemplate() { + if (!this.options.selfDefending) { + return ''; + } + return this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), { + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayCallsWrapperCodeHelper.prototype, "indexShiftAmount", void 0); +__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/StringArrayCallsWrapperRc4CodeHelper.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.StringArrayCallsWrapperRc4CodeHelper = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 Rc4Template_1 = __webpack_require__(/*! ./templates/string-array-calls-wrapper/Rc4Template */ "./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.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 StringArrayCallsWrapperCodeHelper_1 = __webpack_require__(/*! ./StringArrayCallsWrapperCodeHelper */ "./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts"); +let StringArrayCallsWrapperRc4CodeHelper = class StringArrayCallsWrapperRc4CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper { + getDecodeStringArrayTemplate() { + const atobFunctionName = this.randomGenerator.getRandomString(6); + const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), { + atobFunctionName + }); + const rc4Polyfill = this.customCodeHelperFormatter.formatTemplate(Rc4Template_1.Rc4Template(), { + atobFunctionName + }); + const selfDefendingCode = this.getSelfDefendingTemplate(); + return this.customCodeHelperFormatter.formatTemplate(StringArrayRC4DecodeTemplate_1.StringArrayRC4DecodeTemplate(this.randomGenerator), { + atobPolyfill, + rc4Polyfill, + selfDefendingCode, + stringArrayName: this.stringArrayName, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + } +}; +StringArrayCallsWrapperRc4CodeHelper = __decorate([ + inversify_1.injectable() +], StringArrayCallsWrapperRc4CodeHelper); +exports.StringArrayCallsWrapperRc4CodeHelper = StringArrayCallsWrapperRc4CodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts": +/*!***********************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/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"); +const StringUtils_1 = __webpack_require__(/*! ../../utils/StringUtils */ "./src/utils/StringUtils.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, + stringArrayStorageItems: this.getEncodedStringArrayStorageItems() + }); + } + getEncodedStringArrayStorageItems() { + return Array + .from(this.stringArrayStorage.getStorage().values()) + .map((stringArrayStorageItemData) => { + const escapedEncodedValue = StringUtils_1.StringUtils.escapeJsString(stringArrayStorageItemData.encodedValue); + return `'${escapedEncodedValue}'`; + }) + .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 ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.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 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 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"); +let StringArrayRotateFunctionCodeHelper = class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper { + constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options); + } + initialize(stringArrayName, comparisonValue, comparisonExpressionNode) { + this.stringArrayName = stringArrayName; + this.comparisonValue = comparisonValue; + this.comparisonExpressionNode = comparisonExpressionNode; + } + getNodeStructure(codeHelperTemplate) { + return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate); + } + getCodeHelperTemplate() { + const comparisonExpressionCode = NodeUtils_1.NodeUtils.convertStructureToCode([this.comparisonExpressionNode]); + return this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), { + comparisonExpressionCode, + comparisonValue: this.comparisonValue, + stringArrayName: this.stringArrayName + }); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayRotateFunctionCodeHelper.prototype, "comparisonValue", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayRotateFunctionCodeHelper.prototype, "comparisonExpressionNode", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayRotateFunctionCodeHelper.prototype, "stringArrayName", 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)), + __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]) +], StringArrayRotateFunctionCodeHelper); +exports.StringArrayRotateFunctionCodeHelper = StringArrayRotateFunctionCodeHelper; + + +/***/ }), + +/***/ "./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts": +/*!**********************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 StringArrayCodeHelperGroup_1, _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-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/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 StringArrayEncoding_1 = __webpack_require__(/*! ../../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.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 = StringArrayCodeHelperGroup_1 = class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup { + constructor(customCodeHelperFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) { + super(identifierNamesGeneratorFactory, randomGenerator, options); + this.customCodeHelperFactory = customCodeHelperFactory; + this.stringArrayStorage = stringArrayStorage; + } + appendOnFinalizing(nodeWithStatements, callsGraphData) { + if (!this.stringArrayStorage.getLength()) { + return; + } + this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArray, (customCodeHelper) => { + NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode()); + }); + const stringArrayEncodingsLength = this.options.stringArrayEncoding.length; + for (let i = 0; i < stringArrayEncodingsLength; i++) { + const stringArrayEncoding = this.options.stringArrayEncoding[i]; + const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding); + this.appendCustomNodeIfExist(stringArrayCallsWrapperCodeHelperName, (customCodeHelper) => { + NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), i + 1); + }); + } + } + initialize() { + this.customCodeHelpers = new Map(); + if (!this.options.stringArray) { + return; + } + const stringArrayCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArray); + const stringArrayName = this.stringArrayStorage.getStorageName(); + stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName); + this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArray, stringArrayCodeHelper); + for (const stringArrayEncoding of this.options.stringArrayEncoding) { + const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding); + const stringArrayCallsWrapperCodeHelper = this.customCodeHelperFactory(stringArrayCallsWrapperCodeHelperName); + const stringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(stringArrayEncoding); + stringArrayCallsWrapperCodeHelper.initialize(stringArrayName, stringArrayCallsWrapperName, this.stringArrayStorage.getIndexShiftAmount()); + this.customCodeHelpers.set(stringArrayCallsWrapperCodeHelperName, stringArrayCallsWrapperCodeHelper); + } + } + getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding) { + var _a; + return (_a = StringArrayCodeHelperGroup_1 + .stringArrayCallsWrapperCodeHelperMap.get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper; + } +}; +StringArrayCodeHelperGroup.stringArrayCallsWrapperCodeHelperMap = new Map([ + [StringArrayEncoding_1.StringArrayEncoding.None, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper], + [StringArrayEncoding_1.StringArrayEncoding.Base64, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64], + [StringArrayEncoding_1.StringArrayEncoding.Rc4, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4] +]); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object) +], StringArrayCodeHelperGroup.prototype, "customCodeHelpers", void 0); +StringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = __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 ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AtobTemplate = void 0; +const Base64AlphabetSwapped_1 = __webpack_require__(/*! ../../../../constants/Base64AlphabetSwapped */ "./src/constants/Base64AlphabetSwapped.ts"); +function AtobTemplate() { + return ` + var {atobFunctionName} = function (input) { + const chars = '${Base64AlphabetSwapped_1.base64alphabetSwapped}'; + + 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 ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 = {atobFunctionName}(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 ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \**********************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 = {atobFunctionName}(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 ignoreCache = {stringArrayName}[-1]; + const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; + + if (ignoreCache || 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 ***! + \**********************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayCallsWrapperTemplate = void 0; +function StringArrayCallsWrapperTemplate() { + return ` + const {stringArrayCallsWrapperName} = function (index, key) { + index = index - {indexShiftAmount}; + + 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 ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ignoreCache = {stringArrayName}[-1]; + const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; + + if (ignoreCache || 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/StringArrayRotateFunctionTemplate.ts": +/*!**************************************************************************************************************************!*\ + !*** ./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts ***! + \**************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayRotateFunctionTemplate = void 0; +function StringArrayRotateFunctionTemplate() { + return ` + (function (array, comparisonValue) { + array[-1] = true; + + while (true) { + try { + const expression = {comparisonExpressionCode}; + + if (expression === comparisonValue) { + array[-1] = false; + break; + } else { + array['push'](array['shift']()); + } + } catch (e) { + array['push'](array['shift']()); + } + } + })({stringArrayName}, {comparisonValue}); + `; +} +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 ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayTemplate = void 0; +function StringArrayTemplate() { + return ` + const {stringArrayName} = [{stringArrayStorageItems}]; + `; +} +exports.StringArrayTemplate = StringArrayTemplate; + + +/***/ }), + +/***/ "./src/custom-nodes/AbstractCustomNode.ts": +/*!************************************************!*\ + !*** ./src/custom-nodes/AbstractCustomNode.ts ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \***************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.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(StringSeparator_1.StringSeparator.VerticalLine)), NodeFactory_1.NodeFactory.identifierNode('split')), [ + NodeFactory_1.NodeFactory.literalNode(StringSeparator_1.StringSeparator.VerticalLine) + ])) + ], '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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*******************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \***************************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \******************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \******************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts": +/*!****************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 AbstractStringArrayCallNode_1, _a, _b, _c, _d, _e, _f, _g; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AbstractStringArrayCallNode = 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 TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.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 IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const StringArrayIndexesType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts"); +const StringArrayIndexNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode */ "./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts"); +const AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.ts"); +let AbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = class AbstractStringArrayCallNode extends AbstractCustomNode_1.AbstractCustomNode { + constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) { + super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options); + this.stringArrayIndexNodeFactory = stringArrayIndexNodeFactory; + this.stringArrayStorage = stringArrayStorage; + this.arrayUtils = arrayUtils; + } + getStringArrayIndexNode(index) { + var _a; + const isPositive = index >= 0; + const normalizedIndex = Math.abs(index); + const stringArrayCallsIndexType = this.randomGenerator + .getRandomGenerator() + .pickone(this.options.stringArrayIndexesType); + const stringArrayIndexNodeName = (_a = AbstractStringArrayCallNode_1.stringArrayIndexNodesMap.get(stringArrayCallsIndexType)) !== null && _a !== void 0 ? _a : null; + if (!stringArrayIndexNodeName) { + throw new Error('Invalid string array index node name'); + } + const stringArrayCallIndexNode = this.stringArrayIndexNodeFactory(stringArrayIndexNodeName) + .getNode(normalizedIndex); + NodeMetadata_1.NodeMetadata.set(stringArrayCallIndexNode, { replacedLiteral: true }); + const hexadecimalNode = isPositive + ? stringArrayCallIndexNode + : NodeFactory_1.NodeFactory.unaryExpressionNode('-', stringArrayCallIndexNode); + NodeUtils_1.NodeUtils.parentizeAst(hexadecimalNode); + return hexadecimalNode; + } + getRc4KeyLiteralNode(decodeKey) { + const rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(decodeKey); + NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true }); + return rc4KeyLiteralNode; + } +}; +AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount = 2; +AbstractStringArrayCallNode.stringArrayIndexNodesMap = new Map([ + [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode], + [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode] +]); +AbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(6, 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 TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _g : Object]) +], AbstractStringArrayCallNode); +exports.AbstractStringArrayCallNode = AbstractStringArrayCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts": +/*!********************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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, _g, _h; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayCallNode = 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 TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.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 IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractStringArrayCallNode_1 = __webpack_require__(/*! ./AbstractStringArrayCallNode */ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayCallNode = class StringArrayCallNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode { + constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) { + super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options); + } + initialize(stringArrayCallsWrapperName, stringArrayCallsWrapperParameterIndexesData, index, indexShiftAmount, decodeKey) { + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + this.stringArrayCallsWrapperParameterIndexesData = stringArrayCallsWrapperParameterIndexesData; + this.index = index; + this.indexShiftAmount = indexShiftAmount; + this.decodeKey = decodeKey; + } + getNodeStructure() { + var _a, _b; + const resultIndex = this.indexShiftAmount + this.index; + const indexNode = this.getStringArrayIndexNode(resultIndex); + const rc4KeyLiteralNode = this.decodeKey + ? this.getRc4KeyLiteralNode(this.decodeKey) + : null; + const callExpressionArgs = this.arrayUtils.fillWithRange(!this.stringArrayCallsWrapperParameterIndexesData + ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount + : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeStringArrayIndexNode(resultIndex)); + callExpressionArgs.splice((_b = (_a = this.stringArrayCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, indexNode); + if (this.stringArrayCallsWrapperParameterIndexesData) { + callExpressionArgs.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex, 1, rc4KeyLiteralNode !== null && rc4KeyLiteralNode !== void 0 ? rc4KeyLiteralNode : this.getFakeStringArrayIndexNode(resultIndex)); + } + else if (rc4KeyLiteralNode) { + callExpressionArgs.splice(1, 1, rc4KeyLiteralNode); + } + else { + callExpressionArgs.splice(1, 1); + } + const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName), callExpressionArgs)); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + getFakeStringArrayIndexNode(actualIndex) { + return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(actualIndex)); + } + getFakeStringArrayIndex(actualIndex) { + const stringArrayStorageLength = this.stringArrayStorage.getLength(); + const fakeIndexOffset = stringArrayStorageLength / 2; + const minimumIndex = actualIndex - fakeIndexOffset; + const maximumIndex = actualIndex + fakeIndexOffset; + return this.randomGenerator.getRandomInteger(minimumIndex, maximumIndex); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayCallNode.prototype, "decodeKey", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayCallNode.prototype, "index", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayCallNode.prototype, "indexShiftAmount", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayCallNode.prototype, "stringArrayCallsWrapperName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayCallNode.prototype, "stringArrayCallsWrapperParameterIndexesData", void 0); +StringArrayCallNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(6, 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 TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _c : Object, typeof (_d = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _e : Object, typeof (_f = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _f : Object, typeof (_g = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _g : Object, typeof (_h = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _h : Object]) +], StringArrayCallNode); +exports.StringArrayCallNode = StringArrayCallNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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, _g, _h, _j; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayScopeCallsWrapperFunctionNode = 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 TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.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 IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractStringArrayCallNode_1 = __webpack_require__(/*! ./AbstractStringArrayCallNode */ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayScopeCallsWrapperFunctionNode = class StringArrayScopeCallsWrapperFunctionNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode { + constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) { + super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options); + } + initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexesData, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexesData, shiftedIndex) { + this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName; + this.stringArrayScopeCallsWrapperParameterIndexesData = stringArrayScopeCallsWrapperParameterIndexesData; + this.upperStringArrayCallsWrapperName = upperStringArrayCallsWrapperName; + this.upperStringArrayCallsWrapperParameterIndexesData = upperStringArrayCallsWrapperParameterIndexesData; + this.shiftedIndex = shiftedIndex; + } + getNodeStructure() { + var _a, _b, _c, _d, _e, _f, _g, _h; + const stringArrayCallIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)); + const decodeKeyIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)); + const stringArrayCallNode = this.getUpperStringArrayCallNode(stringArrayCallIdentifierNode, this.getStringArrayIndexNode(this.shiftedIndex)); + const parameters = this.arrayUtils.fillWithRange(!this.stringArrayScopeCallsWrapperParameterIndexesData + ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount + : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeParameterNode()); + parameters.splice((_b = (_a = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, stringArrayCallIdentifierNode); + parameters.splice((_d = (_c = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _c === void 0 ? void 0 : _c.decodeKeyParameterIndex) !== null && _d !== void 0 ? _d : 1, 1, decodeKeyIdentifierNode); + const callExpressionArgs = this.arrayUtils.fillWithRange(!this.upperStringArrayCallsWrapperParameterIndexesData + ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount + : this.options.stringArrayWrappersParametersMaxCount, (index) => this.getUpperStringArrayCallNode(parameters[index], this.getFakeUpperStringArrayIndexNode())); + callExpressionArgs.splice((_f = (_e = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _e === void 0 ? void 0 : _e.valueIndexParameterIndex) !== null && _f !== void 0 ? _f : 0, 1, stringArrayCallNode); + callExpressionArgs.splice((_h = (_g = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _g === void 0 ? void 0 : _g.decodeKeyParameterIndex) !== null && _h !== void 0 ? _h : 1, 1, decodeKeyIdentifierNode); + const functionExpressionNode = NodeFactory_1.NodeFactory.functionExpressionNode(parameters, NodeFactory_1.NodeFactory.blockStatementNode([ + NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName), callExpressionArgs)) + ])); + const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), functionExpressionNode) + ], 'const'); + NodeUtils_1.NodeUtils.parentizeAst(structure); + for (const parameter of parameters) { + parameter.name = this.identifierNamesGenerator.generateForLexicalScope(functionExpressionNode); + } + return [structure]; + } + getUpperStringArrayCallNode(indexParameterIdentifierNode, indexShiftNode) { + return NodeFactory_1.NodeFactory.binaryExpressionNode('-', indexParameterIdentifierNode, indexShiftNode); + } + getFakeParameterNode() { + return NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)); + } + getFakeUpperStringArrayIndexNode() { + return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0, 500)); + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Number) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "shiftedIndex", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "upperStringArrayCallsWrapperName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "upperStringArrayCallsWrapperParameterIndexesData", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "stringArrayScopeCallsWrapperName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Object) +], StringArrayScopeCallsWrapperFunctionNode.prototype, "stringArrayScopeCallsWrapperParameterIndexesData", void 0); +StringArrayScopeCallsWrapperFunctionNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _c : Object, typeof (_d = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _d : Object, typeof (_e = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _e : Object, typeof (_f = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _f : Object, typeof (_g = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _g : Object, typeof (_h = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _h : Object, typeof (_j = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _j : Object]) +], StringArrayScopeCallsWrapperFunctionNode); +exports.StringArrayScopeCallsWrapperFunctionNode = StringArrayScopeCallsWrapperFunctionNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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, _g; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayScopeCallsWrapperVariableNode = 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 TStringArrayIndexNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory */ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts"); +const IArrayUtils_1 = __webpack_require__(/*! ../../interfaces/utils/IArrayUtils */ "./src/interfaces/utils/IArrayUtils.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 IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); +const AbstractStringArrayCallNode_1 = __webpack_require__(/*! ./AbstractStringArrayCallNode */ "./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let StringArrayScopeCallsWrapperVariableNode = class StringArrayScopeCallsWrapperVariableNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode { + constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) { + super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options); + } + initialize(stringArrayScopeCallsWrapperName, stringArrayCallsWrapperName) { + this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName; + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + } + getNodeStructure() { + const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([ + NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName)) + ], 'const'); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayScopeCallsWrapperVariableNode.prototype, "stringArrayCallsWrapperName", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], StringArrayScopeCallsWrapperVariableNode.prototype, "stringArrayScopeCallsWrapperName", void 0); +StringArrayScopeCallsWrapperVariableNode = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(6, 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 TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== "undefined" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === "function" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== "undefined" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "function" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== "undefined" && IRandomGenerator_1.IRandomGenerator) === "function" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== "undefined" && IOptions_1.IOptions) === "function" ? _g : Object]) +], StringArrayScopeCallsWrapperVariableNode); +exports.StringArrayScopeCallsWrapperVariableNode = StringArrayScopeCallsWrapperVariableNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts": +/*!******************************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts ***! + \******************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.AbstractStringArrayIndexNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +let AbstractStringArrayIndexNode = class AbstractStringArrayIndexNode { + constructor(randomGenerator, options) { + this.randomGenerator = randomGenerator; + this.options = options; + } +}; +AbstractStringArrayIndexNode = __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]) +], AbstractStringArrayIndexNode); +exports.AbstractStringArrayIndexNode = AbstractStringArrayIndexNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts ***! + \***************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.StringArrayHexadecimalNumberIndexNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const AbstractStringArrayIndexNode_1 = __webpack_require__(/*! ./AbstractStringArrayIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let StringArrayHexadecimalNumberIndexNode = class StringArrayHexadecimalNumberIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getNode(index) { + const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index); + return NodeFactory_1.NodeFactory.literalNode(index, hexadecimalIndex); + } +}; +StringArrayHexadecimalNumberIndexNode = __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]) +], StringArrayHexadecimalNumberIndexNode); +exports.StringArrayHexadecimalNumberIndexNode = StringArrayHexadecimalNumberIndexNode; + + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts": +/*!**********************************************************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts ***! + \**********************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.StringArrayHexadecimalNumericStringIndexNode = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +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 ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const AbstractStringArrayIndexNode_1 = __webpack_require__(/*! ./AbstractStringArrayIndexNode */ "./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let StringArrayHexadecimalNumericStringIndexNode = class StringArrayHexadecimalNumericStringIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getNode(index) { + const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index); + return NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex); + } +}; +StringArrayHexadecimalNumericStringIndexNode = __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]) +], StringArrayHexadecimalNumericStringIndexNode); +exports.StringArrayHexadecimalNumericStringIndexNode = StringArrayHexadecimalNumericStringIndexNode; + + +/***/ }), + +/***/ "./src/decorators/Initializable.ts": +/*!*****************************************!*\ + !*** ./src/decorators/Initializable.ts ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 = new Set([initializeMethodName, constructorMethodName]); + ownPropertyNames.forEach((propertyName) => { + var _a; + const initializablePropertiesSet = Reflect + .getMetadata(initializablePropertiesSetMetadataKey, target); + const wrappedMethodsSet = Reflect + .getMetadata(wrappedMethodsSetMetadataKey, target); + const isProhibitedPropertyName = prohibitedPropertyNames.has(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 ***! + \****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ObfuscationTarget = void 0; +const Utils_1 = __webpack_require__(/*! ../utils/Utils */ "./src/utils/Utils.ts"); +exports.ObfuscationTarget = Utils_1.Utils.makeEnum({ + Browser: 'browser', + BrowserNoEval: 'browser-no-eval', + Node: 'node' +}); + + +/***/ }), + +/***/ "./src/enums/StringSeparator.ts": +/*!**************************************!*\ + !*** ./src/enums/StringSeparator.ts ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringSeparator = void 0; +var StringSeparator; +(function (StringSeparator) { + StringSeparator["Comma"] = ","; + StringSeparator["Dot"] = "."; + StringSeparator["VerticalLine"] = "|"; +})(StringSeparator = exports.StringSeparator || (exports.StringSeparator = {})); + + +/***/ }), + +/***/ "./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts": +/*!*************************************************************************!*\ + !*** ./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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["StringArray"] = "StringArray"; + CustomCodeHelper["StringArrayCallsWrapper"] = "StringArrayCallsWrapper"; + CustomCodeHelper["StringArrayCallsWrapperBase64"] = "StringArrayCallsWrapperBase64"; + CustomCodeHelper["StringArrayCallsWrapperRc4"] = "StringArrayCallsWrapperRc4"; + CustomCodeHelper["StringArrayRotateFunction"] = "StringArrayRotateFunction"; +})(CustomCodeHelper = exports.CustomCodeHelper || (exports.CustomCodeHelper = {})); + + +/***/ }), + +/***/ "./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts": +/*!****************************************************************!*\ + !*** ./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ObjectExpressionKeysTransformerCustomNode = void 0; +var ObjectExpressionKeysTransformerCustomNode; +(function (ObjectExpressionKeysTransformerCustomNode) { + ObjectExpressionKeysTransformerCustomNode["ObjectExpressionVariableDeclarationHostNode"] = "ObjectExpressionVariableDeclarationHostNode"; +})(ObjectExpressionKeysTransformerCustomNode = exports.ObjectExpressionKeysTransformerCustomNode || (exports.ObjectExpressionKeysTransformerCustomNode = {})); + + +/***/ }), + +/***/ "./src/enums/custom-nodes/StringArrayCustomNode.ts": +/*!*********************************************************!*\ + !*** ./src/enums/custom-nodes/StringArrayCustomNode.ts ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayCustomNode = void 0; +var StringArrayCustomNode; +(function (StringArrayCustomNode) { + StringArrayCustomNode["StringArrayCallNode"] = "StringArrayCallNode"; + StringArrayCustomNode["StringArrayScopeCallsWrapperFunctionNode"] = "StringArrayScopeCallsWrapperFunctionNode"; + StringArrayCustomNode["StringArrayScopeCallsWrapperVariableNode"] = "StringArrayScopeCallsWrapperVariableNode"; +})(StringArrayCustomNode = exports.StringArrayCustomNode || (exports.StringArrayCustomNode = {})); + + +/***/ }), + +/***/ "./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts": +/*!*********************************************************************************!*\ + !*** ./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayIndexNode = void 0; +var StringArrayIndexNode; +(function (StringArrayIndexNode) { + StringArrayIndexNode["StringArrayHexadecimalNumberIndexNode"] = "StringArrayHexadecimalNumberIndexNode"; + StringArrayIndexNode["StringArrayHexadecimalNumericStringIndexNode"] = "StringArrayHexadecimalNumericStringIndexNode"; +})(StringArrayIndexNode = exports.StringArrayIndexNode || (exports.StringArrayIndexNode = {})); + + +/***/ }), + +/***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts": +/*!**************************************************************************************!*\ + !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.IdentifierNamesGenerator = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.IdentifierNamesGenerator = Utils_1.Utils.makeEnum({ + DictionaryIdentifierNamesGenerator: 'dictionary', + HexadecimalIdentifierNamesGenerator: 'hexadecimal', + MangledIdentifierNamesGenerator: 'mangled', + MangledShuffledIdentifierNamesGenerator: 'mangled-shuffled' +}); + + +/***/ }), + +/***/ "./src/enums/logger/LoggingMessage.ts": +/*!********************************************!*\ + !*** ./src/enums/logger/LoggingMessage.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NodeTransformationStage = void 0; +var NodeTransformationStage; +(function (NodeTransformationStage) { + NodeTransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening"; + NodeTransformationStage["Converting"] = "Converting"; + NodeTransformationStage["DeadCodeInjection"] = "DeadCodeInjection"; + NodeTransformationStage["Finalizing"] = "Finalizing"; + NodeTransformationStage["Initializing"] = "Initializing"; + NodeTransformationStage["Preparing"] = "Preparing"; + NodeTransformationStage["RenameIdentifiers"] = "RenameIdentifiers"; + NodeTransformationStage["RenameProperties"] = "RenameProperties"; + NodeTransformationStage["Simplifying"] = "Simplifying"; + NodeTransformationStage["StringArray"] = "StringArray"; +})(NodeTransformationStage = exports.NodeTransformationStage || (exports.NodeTransformationStage = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/NodeTransformer.ts": +/*!********************************************************!*\ + !*** ./src/enums/node-transformers/NodeTransformer.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NodeTransformer = void 0; +var NodeTransformer; +(function (NodeTransformer) { + NodeTransformer["BooleanLiteralTransformer"] = "BooleanLiteralTransformer"; + NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer"; + NodeTransformer["BlockStatementSimplifyTransformer"] = "BlockStatementSimplifyTransformer"; + NodeTransformer["CommentsTransformer"] = "CommentsTransformer"; + NodeTransformer["CustomCodeHelpersTransformer"] = "CustomCodeHelpersTransformer"; + NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer"; + NodeTransformer["EscapeSequenceTransformer"] = "EscapeSequenceTransformer"; + NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer"; + NodeTransformer["ExportSpecifierTransformer"] = "ExportSpecifierTransformer"; + NodeTransformer["ExpressionStatementsMergeTransformer"] = "ExpressionStatementsMergeTransformer"; + NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer"; + NodeTransformer["IfStatementSimplifyTransformer"] = "IfStatementSimplifyTransformer"; + NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer"; + NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer"; + NodeTransformer["MetadataTransformer"] = "MetadataTransformer"; + NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer"; + NodeTransformer["NumberLiteralTransformer"] = "NumberLiteralTransformer"; + NodeTransformer["NumberToNumericalExpressionTransformer"] = "NumberToNumericalExpressionTransformer"; + NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer"; + NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer"; + NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer"; + NodeTransformer["ObjectPatternPropertiesTransformer"] = "ObjectPatternPropertiesTransformer"; + NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer"; + NodeTransformer["RenamePropertiesTransformer"] = "RenamePropertiesTransformer"; + NodeTransformer["ScopeIdentifiersTransformer"] = "ScopeIdentifiersTransformer"; + NodeTransformer["ScopeThroughIdentifiersTransformer"] = "ScopeThroughIdentifiersTransformer"; + NodeTransformer["SplitStringTransformer"] = "SplitStringTransformer"; + NodeTransformer["StringArrayTransformer"] = "StringArrayTransformer"; + NodeTransformer["StringArrayRotateFunctionTransformer"] = "StringArrayRotateFunctionTransformer"; + NodeTransformer["StringArrayScopeCallsWrapperTransformer"] = "StringArrayScopeCallsWrapperTransformer"; + 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 ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts": +/*!****************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts ***! + \****************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts": +/*!***************************************************************************************************!*\ + !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ObfuscatingGuard = void 0; +var ObfuscatingGuard; +(function (ObfuscatingGuard) { + ObfuscatingGuard["BlackListObfuscatingGuard"] = "BlackListObfuscatingGuard"; + ObfuscatingGuard["ConditionalCommentObfuscatingGuard"] = "ConditionalCommentObfuscatingGuard"; + ObfuscatingGuard["ForceTransformStringObfuscatingGuard"] = "ForceTransformStringObfuscatingGuard"; + ObfuscatingGuard["IgnoredRequireImportObfuscatingGuard"] = "IgnoredRequireImportObfuscatingGuard"; + ObfuscatingGuard["ReservedStringObfuscatingGuard"] = "ReservedStringObfuscatingGuard"; +})(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {})); + + +/***/ }), + +/***/ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts": +/*!**************************************************************************************!*\ + !*** ./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayEncoding = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.StringArrayEncoding = Utils_1.Utils.makeEnum({ + None: 'none', + Base64: 'base64', + Rc4: 'rc4' +}); + + +/***/ }), + +/***/ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts": +/*!*****************************************************************************************!*\ + !*** ./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayIndexesType = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.StringArrayIndexesType = Utils_1.Utils.makeEnum({ + HexadecimalNumber: 'hexadecimal-number', + HexadecimalNumericString: 'hexadecimal-numeric-string' +}); + + +/***/ }), + +/***/ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts": +/*!******************************************************************************************!*\ + !*** ./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayWrappersType = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.StringArrayWrappersType = Utils_1.Utils.makeEnum({ + Variable: 'variable', + Function: 'function', +}); + + +/***/ }), + +/***/ "./src/enums/node/NodeType.ts": +/*!************************************!*\ + !*** ./src/enums/node/NodeType.ts ***! + \************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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["ChainExpression"] = "ChainExpression"; + NodeType["ClassDeclaration"] = "ClassDeclaration"; + NodeType["ConditionalExpression"] = "ConditionalExpression"; + NodeType["ContinueStatement"] = "ContinueStatement"; + NodeType["ExportAllDeclaration"] = "ExportAllDeclaration"; + NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration"; + NodeType["ExportSpecifier"] = "ExportSpecifier"; + 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["SpreadElement"] = "SpreadElement"; + NodeType["Super"] = "Super"; + NodeType["SwitchCase"] = "SwitchCase"; + NodeType["SwitchStatement"] = "SwitchStatement"; + NodeType["TaggedTemplateExpression"] = "TaggedTemplateExpression"; + NodeType["TemplateElement"] = "TemplateElement"; + NodeType["TemplateLiteral"] = "TemplateLiteral"; + NodeType["ThrowStatement"] = "ThrowStatement"; + NodeType["TryStatement"] = "TryStatement"; + NodeType["UnaryExpression"] = "UnaryExpression"; + NodeType["UpdateExpression"] = "UpdateExpression"; + NodeType["VariableDeclaration"] = "VariableDeclaration"; + NodeType["VariableDeclarator"] = "VariableDeclarator"; + NodeType["WhileStatement"] = "WhileStatement"; + NodeType["YieldExpression"] = "YieldExpression"; +})(NodeType = exports.NodeType || (exports.NodeType = {})); + + +/***/ }), + +/***/ "./src/enums/node/ObfuscatingGuardResult.ts": +/*!**************************************************!*\ + !*** ./src/enums/node/ObfuscatingGuardResult.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ObfuscatingGuardResult = void 0; +var ObfuscatingGuardResult; +(function (ObfuscatingGuardResult) { + ObfuscatingGuardResult["ForceTransform"] = "ForceTransform"; + ObfuscatingGuardResult["Ignore"] = "Ignore"; + ObfuscatingGuardResult["Transform"] = "Transform"; +})(ObfuscatingGuardResult = exports.ObfuscatingGuardResult || (exports.ObfuscatingGuardResult = {})); + + +/***/ }), + +/***/ "./src/enums/options/presets/OptionsPreset.ts": +/*!****************************************************!*\ + !*** ./src/enums/options/presets/OptionsPreset.ts ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.OptionsPreset = void 0; +const Utils_1 = __webpack_require__(/*! ../../../utils/Utils */ "./src/utils/Utils.ts"); +exports.OptionsPreset = Utils_1.Utils.makeEnum({ + Default: 'default', + LowObfuscation: 'low-obfuscation', + MediumObfuscation: 'medium-obfuscation', + HighObfuscation: 'high-obfuscation' +}); + + +/***/ }), + +/***/ "./src/enums/source-map/SourceMapMode.ts": +/*!***********************************************!*\ + !*** ./src/enums/source-map/SourceMapMode.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SourceMapMode = void 0; +const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); +exports.SourceMapMode = Utils_1.Utils.makeEnum({ + Inline: 'inline', + Separate: 'separate' +}); + + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts": +/*!****************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.slice(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 ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.updatePreviousMangledName(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.updatePreviousMangledName(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.updatePreviousMangledName(identifierName); + this.preserveNameForLexicalScope(identifierName, lexicalScopeNode); + return identifierName; + } + isIncrementedMangledName(nextName, prevName) { + if (nextName === prevName) { + return false; + } + const nextNameLength = nextName.length; + const prevNameLength = prevName.length; + if (nextNameLength !== prevNameLength) { + return nextNameLength > prevNameLength; + } + const nameSequence = this.getNameSequence(); + for (let i = 0; i < nextNameLength; i++) { + const nextNameCharacter = nextName[i]; + const prevNameCharacter = prevName[i]; + if (nextNameCharacter === prevNameCharacter) { + continue; + } + const indexOfNextNameCharacter = nameSequence.indexOf(nextNameCharacter); + const indexOfPrevNameCharacter = nameSequence.indexOf(prevNameCharacter); + return indexOfNextNameCharacter > indexOfPrevNameCharacter; + } + throw new Error('Something goes wrong during comparison of mangled names'); + } + isValidIdentifierName(mangledName) { + return super.isValidIdentifierName(mangledName) + && !MangledIdentifierNamesGenerator_1.reservedNamesSet.has(mangledName); + } + getNameSequence() { + return MangledIdentifierNamesGenerator_1.nameSequence; + } + updatePreviousMangledName(name) { + if (!this.isIncrementedMangledName(name, this.previousMangledName)) { + return; + } + this.previousMangledName = name; + } + generateNewMangledName(previousMangledName) { + const generateNewMangledName = (name) => { + const nameSequence = this.getNameSequence(); + 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.slice(0, index); + const nextCharacter = nameSequence[indexInSequence + 1]; + const zeroSequenceLength = nameLength - (index + 1); + const zeroSequenceCharacters = zeroSequence(zeroSequenceLength); + return previousNamePart + nextCharacter + zeroSequenceCharacters; + } + --index; + } while (index >= 0); + const firstLetterCharacter = nameSequence[NumbersString_1.numbersString.length]; + return `${firstLetterCharacter}${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}` +]; +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/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts": +/*!***********************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts ***! + \***********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 MangledShuffledIdentifierNamesGenerator_1, _a, _b, _c; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MangledShuffledIdentifierNamesGenerator = 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 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 MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ./MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts"); +let MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = class MangledShuffledIdentifierNamesGenerator extends MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator { + constructor(arrayUtils, randomGenerator, options) { + super(randomGenerator, options); + this.arrayUtils = arrayUtils; + } + initialize() { + this.initializeNameSequence([ + ...`${NumbersString_1.numbersString}`, + ...this.arrayUtils.shuffle([...`${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`]) + ]); + } + initializeNameSequence(nameSequence) { + if (!this.getNameSequence()) { + MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence = nameSequence; + } + } + getNameSequence() { + return MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence; + } + generateNewMangledName(previousMangledName) { + return super.generateNewMangledName(previousMangledName); + } +}; +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], MangledShuffledIdentifierNamesGenerator.prototype, "initialize", null); +MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== "undefined" && IArrayUtils_1.IArrayUtils) === "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]) +], MangledShuffledIdentifierNamesGenerator); +exports.MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator; + + +/***/ }), + +/***/ "./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts": +/*!******************************************************************************!*\ + !*** ./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts": +/*!*******************************************************************!*\ + !*** ./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts": +/*!***********************************************************************************************!*\ + !*** ./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/code-transformers/ICodeTransformersRunner.ts": +/*!*********************************************************************!*\ + !*** ./src/interfaces/code-transformers/ICodeTransformersRunner.ts ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts": +/*!**************************************************************************!*\ + !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts": +/*!***************************************************************************!*\ + !*** ./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/logger/ILogger.ts": +/*!******************************************!*\ + !*** ./src/interfaces/logger/ILogger.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/node-transformers/INodeTransformersRunner.ts": +/*!*********************************************************************!*\ + !*** ./src/interfaces/node-transformers/INodeTransformersRunner.ts ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \***************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/node/IScopeIdentifiersTraverser.ts": +/*!***********************************************************!*\ + !*** ./src/interfaces/node/IScopeIdentifiersTraverser.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/options/IOptions.ts": +/*!********************************************!*\ + !*** ./src/interfaces/options/IOptions.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/options/IOptionsNormalizer.ts": +/*!******************************************************!*\ + !*** ./src/interfaces/options/IOptionsNormalizer.ts ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/source-code/ISourceCode.ts": +/*!***************************************************!*\ + !*** ./src/interfaces/source-code/ISourceCode.ts ***! + \***************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts": +/*!****************************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts": +/*!*******************************************************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts": +/*!************************************************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts": +/*!**********************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts": +/*!****************************************************************************************************!*\ + !*** ./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/IArrayUtils.ts": +/*!*********************************************!*\ + !*** ./src/interfaces/utils/IArrayUtils.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/ICryptUtils.ts": +/*!*********************************************!*\ + !*** ./src/interfaces/utils/ICryptUtils.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts": +/*!************************************************************!*\ + !*** ./src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/IEscapeSequenceEncoder.ts": +/*!********************************************************!*\ + !*** ./src/interfaces/utils/IEscapeSequenceEncoder.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/ILevelledTopologicalSorter.ts": +/*!************************************************************!*\ + !*** ./src/interfaces/utils/ILevelledTopologicalSorter.ts ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/IRandomGenerator.ts": +/*!**************************************************!*\ + !*** ./src/interfaces/utils/IRandomGenerator.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts": +/*!****************************************************************!*\ + !*** ./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/logger/Logger.ts": +/*!******************************!*\ + !*** ./src/logger/Logger.ts ***! + \******************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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/control-flow-transformers/control-flow-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/control-flow-transformers/control-flow-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 ***! + \***************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \***********************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*********************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*****************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \********************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.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 (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode) || 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/BooleanLiteralTransformer.ts": +/*!************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.BooleanLiteralTransformer = 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 NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let BooleanLiteralTransformer = class BooleanLiteralTransformer 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.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (typeof literalNode.value !== 'boolean') { + return literalNode; + } + const literalValue = literalNode.value; + const unaryExpressionNode = literalValue + ? this.getTrueUnaryExpressionNode() + : this.getFalseUnaryExpressionNode(); + NodeUtils_1.NodeUtils.parentizeNode(unaryExpressionNode, parentNode); + return unaryExpressionNode; + } + getTrueUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', this.getFalseUnaryExpressionNode()); + } + getFalseUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode()); + } +}; +BooleanLiteralTransformer = __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]) +], BooleanLiteralTransformer); +exports.BooleanLiteralTransformer = BooleanLiteralTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.ExportSpecifierTransformer = 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 NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ExportSpecifierTransformer = class ExportSpecifierTransformer 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.isExportSpecifierNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(exportSpecifierNode, parentNode) { + if (exportSpecifierNode.local.name === exportSpecifierNode.exported.name) { + exportSpecifierNode.exported = NodeUtils_1.NodeUtils.clone(exportSpecifierNode.local); + } + return exportSpecifierNode; + } +}; +ExportSpecifierTransformer = __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]) +], ExportSpecifierTransformer); +exports.ExportSpecifierTransformer = ExportSpecifierTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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/NumberLiteralTransformer.ts": +/*!***********************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.NumberLiteralTransformer = 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 NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +let NumberLiteralTransformer = class NumberLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer + ]; + this.numberLiteralCache = new Map(); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (typeof literalNode.value !== 'number' && typeof literalNode.value !== 'bigint') { + return literalNode; + } + const literalValue = literalNode.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); + } +}; +NumberLiteralTransformer = __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]) +], NumberLiteralTransformer); +exports.NumberLiteralTransformer = NumberLiteralTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.NumberToNumericalExpressionTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const INumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer */ "./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.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"); +const NumericalExpressionDataToNodeConverter_1 = __webpack_require__(/*! ../../node/NumericalExpressionDataToNodeConverter */ "./src/node/NumericalExpressionDataToNodeConverter.ts"); +let NumberToNumericalExpressionTransformer = class NumberToNumericalExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(numberNumericalExpressionAnalyzer, randomGenerator, options) { + super(randomGenerator, options); + this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer; + } + getVisitor(nodeTransformationStage) { + if (!this.options.numbersToExpressions) { + return null; + } + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (typeof literalNode.value !== 'number') { + return literalNode; + } + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed) { + return literalNode; + } + const numberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(literalNode.value); + return NumericalExpressionDataToNodeConverter_1.NumericalExpressionDataToNodeConverter.convert(numberNumericalExpressionData, (number, isPositiveNumber) => { + const numberLiteralNode = NodeFactory_1.NodeFactory.literalNode(number); + return isPositiveNumber + ? numberLiteralNode + : NodeFactory_1.NodeFactory.unaryExpressionNode('-', numberLiteralNode); + }); + } +}; +NumberToNumericalExpressionTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer !== "undefined" && INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer) === "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]) +], NumberToNumericalExpressionTransformer); +exports.NumberToNumericalExpressionTransformer = NumberToNumericalExpressionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 ObjectExpressionExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.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 ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = class ObjectExpressionKeysTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(objectExpressionExtractorFactory, randomGenerator, options) { + super(randomGenerator, options); + this.objectExpressionExtractorFactory = objectExpressionExtractorFactory; + } + static isProhibitedObjectExpressionNode(objectExpressionNode, objectExpressionParentNode, objectExpressionHostStatement) { + return ObjectExpressionKeysTransformer_1.isReferencedIdentifierName(objectExpressionNode, objectExpressionHostStatement) + || ObjectExpressionKeysTransformer_1.isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionParentNode) + || ObjectExpressionKeysTransformer_1.isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostStatement); + } + static isReferencedIdentifierName(objectExpressionNode, objectExpressionHostNode) { + const identifierNamesSet = []; + let isReferencedIdentifierName = false; + let isCurrentNode = false; + estraverse.traverse(objectExpressionHostNode, { + 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 isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionNodeParentNode) { + return NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(objectExpressionNodeParentNode) + && objectExpressionNodeParentNode.body === objectExpressionNode; + } + static isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostNode) { + return NodeGuards_1.NodeGuards.isExpressionStatementNode(objectExpressionHostNode) + && NodeGuards_1.NodeGuards.isSequenceExpressionNode(objectExpressionHostNode.expression) + && objectExpressionHostNode.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.isProhibitedObjectExpressionNode(objectExpressionNode, parentNode, 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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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/ObjectPatternPropertiesTransformer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.ObjectPatternPropertiesTransformer = 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 NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let ObjectPatternPropertiesTransformer = class ObjectPatternPropertiesTransformer 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.isPropertyNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(propertyNode, parentNode) { + if (!NodeGuards_1.NodeGuards.isObjectPatternNode(parentNode) || !propertyNode.shorthand) { + return propertyNode; + } + if (!this.options.renameGlobals) { + const lexicalScope = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(propertyNode); + const shouldNotTransformGlobalPropertyNode = !!lexicalScope && NodeGuards_1.NodeGuards.isProgramNode(lexicalScope); + if (shouldNotTransformGlobalPropertyNode) { + return propertyNode; + } + } + propertyNode.shorthand = false; + propertyNode.value = NodeUtils_1.NodeUtils.clone(propertyNode.value); + NodeUtils_1.NodeUtils.parentizeNode(propertyNode.value, propertyNode); + return propertyNode; + } +}; +ObjectPatternPropertiesTransformer = __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]) +], ObjectPatternPropertiesTransformer); +exports.ObjectPatternPropertiesTransformer = ObjectPatternPropertiesTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/SplitStringTransformer.ts": +/*!*********************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/SplitStringTransformer.ts ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 stringz = __importStar(__webpack_require__(/*! stringz */ "stringz")); +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, stringLength, chunkSize) { + const chunksCount = Math.ceil(stringLength / chunkSize); + const chunks = []; + let nextChunkStartIndex = 0; + for (let chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) { + chunks[chunkIndex] = stringz.substr(string, 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 (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) { + return literalNode; + } + const valueLength = stringz.length(literalNode.value); + if (chunkLength >= valueLength) { + return literalNode; + } + const stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, valueLength, 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 ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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'; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Converting: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(templateLiteralNode, parentNode) { + if (NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode)) { + return templateLiteralNode; + } + return this.transformTemplateLiteralNode(templateLiteralNode, parentNode); + } + transformTemplateLiteralNode(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 ***! + \***************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 isProhibitedPropertyNode(node) { + return node.kind !== 'init'; + } + 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); + } + static shouldCreateLiteralNode(property) { + return !property.computed + || (property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key)); + } + 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 = propertiesLength - 1; i >= 0; i--) { + const property = properties[i]; + if (NodeGuards_1.NodeGuards.isSpreadElementNode(property)) { + break; + } + if (BasePropertiesExtractor_1.isProhibitedPropertyNode(property)) { + continue; + } + const propertyValue = property.value; + if (BasePropertiesExtractor_1.isProhibitedPattern(propertyValue)) { + continue; + } + const propertyKeyName = BasePropertiesExtractor_1.getPropertyNodeKeyName(property); + if (!propertyKeyName) { + continue; + } + const shouldCreateLiteralNode = BasePropertiesExtractor_1.shouldCreateLiteralNode(property); + 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.unshift(expressionStatementNode); + removablePropertyIds.unshift(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 ***! + \**************************************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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.isFunctionDeclarationNode(targetNode) + || NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode) + || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode) + || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode) + || NodeGuards_1.NodeGuards.isYieldExpressionNode(targetNode) + || NodeGuards_1.NodeGuards.isSuperNode(targetNode) + || (NodeGuards_1.NodeGuards.isForOfStatementNode(targetNode) && targetNode.await); + } + 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.prepareNode(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; + } + } + prepareNode(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.RenameIdentifiers); + 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, + NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer +]; +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/finalizing-transformers/EscapeSequenceTransformer.ts": +/*!************************************************************************************!*\ + !*** ./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.EscapeSequenceTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.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 NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let EscapeSequenceTransformer = class EscapeSequenceTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options, escapeSequenceEncoder) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer + ]; + this.escapeSequenceEncoder = escapeSequenceEncoder; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Finalizing: + return { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(literalNode, parentNode) { + if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) { + return literalNode; + } + const encodedValue = this.escapeSequenceEncoder.encode(literalNode.value, this.options.unicodeEscapeSequence); + const newLiteralNode = NodeFactory_1.NodeFactory.literalNode(encodedValue); + NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode); + return newLiteralNode; + } +}; +EscapeSequenceTransformer = __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.IEscapeSequenceEncoder)), + __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 IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== "undefined" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === "function" ? _c : Object]) +], EscapeSequenceTransformer); +exports.EscapeSequenceTransformer = EscapeSequenceTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/initializing-transformers/CommentsTransformer.ts": +/*!********************************************************************************!*\ + !*** ./src/node-transformers/initializing-transformers/CommentsTransformer.ts ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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/preparing-transformers/CustomCodeHelpersTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.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 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 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, 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.customCodeHelperGroupStorage = customCodeHelperGroupStorage; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Preparing: + return { + leave: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.prepareNode(node, parentNode); + this.appendCustomNodesForPreparingStage(node, parentNode); + return this.transformNode(node, parentNode); + } + } + }; + default: + return { + leave: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.appendCustomNodesForStage(nodeTransformationStage, node, parentNode); + } + return node; + } + }; + } + } + prepareNode(node, parentNode) { + this.callsGraphData = this.callsGraphAnalyzer.analyze(node); + this.prevailingKindOfVariablesAnalyzer.analyze(node); + } + transformNode(node, parentNode) { + return node; + } + appendCustomNodesForPreparingStage(node, parentNode) { + this.customCodeHelperGroupStorage + .getStorage() + .forEach((customCodeHelperGroup) => { + var _a; + customCodeHelperGroup.initialize(); + (_a = customCodeHelperGroup.appendOnPreparing) === null || _a === void 0 ? void 0 : _a.call(customCodeHelperGroup, node, this.callsGraphData); + }); + } + appendCustomNodesForStage(nodeTransformationStage, node, parentNode) { + this.customCodeHelperGroupStorage + .getStorage() + .forEach((customCodeHelperGroup) => { + var _a; + const methodName = `appendOn${nodeTransformationStage}`; + (_a = customCodeHelperGroup[methodName]) === null || _a === void 0 ? void 0 : _a.call(customCodeHelperGroup, 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.TCustomNodeGroupStorage)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(4, 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 TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage !== "undefined" && TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage) === "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]) +], CustomCodeHelpersTransformer); +exports.CustomCodeHelpersTransformer = CustomCodeHelpersTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 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 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"); +const StringUtils_1 = __webpack_require__(/*! ../../utils/StringUtils */ "./src/utils/StringUtils.ts"); +let EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = class EvalCallExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer, + 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(StringUtils_1.StringUtils.escapeJsString(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 ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 NodeTransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformationStage */ "./src/enums/node-transformers/NodeTransformationStage.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 ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.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 obfuscatingGuardResults = this.obfuscatingGuards + .map((obfuscatingGuard) => obfuscatingGuard.check(node)); + this.setNodeMetadata(node, obfuscatingGuardResults); + return node; + } + setNodeMetadata(node, obfuscatingGuardResults) { + const isTransformNode = obfuscatingGuardResults + .every((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform); + let isForceTransformNode = false; + let isIgnoredNode = false; + if (!isTransformNode) { + isForceTransformNode = obfuscatingGuardResults + .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform); + isIgnoredNode = !isForceTransformNode && obfuscatingGuardResults + .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore); + } + NodeMetadata_1.NodeMetadata.set(node, { + forceTransformNode: isForceTransformNode && !NodeGuards_1.NodeGuards.isProgramNode(node), + ignoredNode: isIgnoredNode && !NodeGuards_1.NodeGuards.isProgramNode(node) + }); + } +}; +ObfuscatingGuardsTransformer.obfuscatingGuardsList = [ + ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard, + ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard, + 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 ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.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 NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let VariablePreserveTransformer = class VariablePreserveTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ParentificationTransformer + ]; + this.identifierReplacer = identifierReplacer; + 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.RenameIdentifiers: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverseScopeIdentifiers(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.identifierReplacer.preserveName(identifierNode); + } + preserveIdentifierNameForLexicalScope(identifierNode, variableScope) { + const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(variableScope.block) + ? variableScope.block + : null; + if (!lexicalScopeNode) { + return; + } + this.identifierReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode); + } +}; +VariablePreserveTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)), + __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 IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "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 ***! + \******************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts"); +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 ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore; + } + } + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform; + } +}; +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 ***! + \***************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts"); +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)) { + const leadingComments = node.leadingComments; + if (leadingComments) { + this.obfuscationAllowed = this.checkComments(leadingComments); + } + } + return this.obfuscationAllowed + ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform + : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore; + } + 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/ForceTransformStringObfuscatingGuard.ts": +/*!*****************************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts ***! + \*****************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.ForceTransformStringObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let ForceTransformStringObfuscatingGuard = class ForceTransformStringObfuscatingGuard { + constructor(options) { + this.options = options; + } + check(node) { + if (this.options.forceTransformStrings.length + && NodeGuards_1.NodeGuards.isLiteralNode(node) + && typeof node.value === 'string') { + return !this.isForceTransformString(node.value) + ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform + : ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform; + } + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform; + } + isForceTransformString(value) { + return this.options.forceTransformStrings + .some((forceTransformString) => { + return new RegExp(forceTransformString, 'g').exec(value) !== null; + }); + } +}; +ForceTransformStringObfuscatingGuard = __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]) +], ForceTransformStringObfuscatingGuard); +exports.ForceTransformStringObfuscatingGuard = ForceTransformStringObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts": +/*!*****************************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts ***! + \*****************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.IgnoredRequireImportObfuscatingGuard = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const IOptions_1 = __webpack_require__(/*! ../../../interfaces/options/IOptions */ "./src/interfaces/options/IOptions.ts"); +const ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.ts"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +let IgnoredRequireImportObfuscatingGuard = class IgnoredRequireImportObfuscatingGuard { + constructor(options) { + this.options = options; + } + check(node) { + if (this.options.ignoreRequireImports + && NodeGuards_1.NodeGuards.isCallExpressionNode(node) + && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee) + && node.callee.name === 'require') { + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore; + } + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform; + } +}; +IgnoredRequireImportObfuscatingGuard = __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]) +], IgnoredRequireImportObfuscatingGuard); +exports.IgnoredRequireImportObfuscatingGuard = IgnoredRequireImportObfuscatingGuard; + + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts": +/*!***********************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts ***! + \***********************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ObfuscatingGuardResult_1 = __webpack_require__(/*! ../../../enums/node/ObfuscatingGuardResult */ "./src/enums/node/ObfuscatingGuardResult.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) + ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform + : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore; + } + return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform; + } + 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-identifiers-transformers/LabeledStatementTransformer.ts": +/*!**********************************************************************************************!*\ + !*** ./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts ***! + \**********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.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 NodeLexicalScopeUtils_1 = __webpack_require__(/*! ../../node/NodeLexicalScopeUtils */ "./src/node/NodeLexicalScopeUtils.ts"); +let LabeledStatementTransformer = class LabeledStatementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierReplacer, randomGenerator, options) { + super(randomGenerator, options); + this.identifierReplacer = identifierReplacer; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers: + 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.identifierReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode); + } + replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) { + estraverse.replace(labeledStatementNode, { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) { + const newIdentifier = this.identifierReplacer + .replace(node, lexicalScopeNode); + node.name = newIdentifier.name; + } + } + }); + } +}; +LabeledStatementTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)), + __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), + __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), + __metadata("design:paramtypes", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "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/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts": +/*!**********************************************************************************************!*\ + !*** ./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts ***! + \**********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.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 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(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.lexicalScopesWithObjectPatternWithoutDeclarationMap = new Map(); + this.identifierReplacer = identifierReplacer; + this.scopeIdentifiersTraverser = scopeIdentifiersTraverser; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverseScopeIdentifiers(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.identifierReplacer.storeGlobalName(identifierNode, lexicalScopeNode); + } + else { + this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode); + } + } + replaceIdentifierName(identifierNode, lexicalScopeNode, variable) { + const newIdentifier = this.identifierReplacer + .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.isProhibitedPropertyIdentifierNode(identifierNode, parentNode) + && !this.isProhibitedPropertyAssignmentPatternIdentifierNode(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; + } + isProhibitedPropertyIdentifierNode(node, parentNode) { + return NodeGuards_1.NodeGuards.isPropertyNode(parentNode) + && !parentNode.computed + && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.key) + && NodeGuards_1.NodeGuards.isIdentifierNode(node) + && parentNode.shorthand + && parentNode.key.name === node.name; + } + isProhibitedPropertyAssignmentPatternIdentifierNode(node, parentNode) { + return NodeGuards_1.NodeGuards.isAssignmentPatternNode(parentNode) + && parentNode.left === node + && !!parentNode.parentNode + && NodeGuards_1.NodeGuards.isPropertyNode(parentNode.parentNode) + && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.left) + && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.parentNode.key) + && parentNode.left.name === parentNode.parentNode.key.name; + } + 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.IIdentifierReplacer)), + __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 IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "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/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts": +/*!*****************************************************************************************************!*\ + !*** ./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts ***! + \*****************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.ScopeThroughIdentifiersTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const IIdentifierReplacer_1 = __webpack_require__(/*! ../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer */ "./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.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 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 ScopeThroughIdentifiersTransformer = class ScopeThroughIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) { + super(randomGenerator, options); + this.identifierReplacer = identifierReplacer; + this.scopeIdentifiersTraverser = scopeIdentifiersTraverser; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(programNode, parentNode) { + this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(programNode, parentNode, (data) => { + const { reference, variableLexicalScopeNode } = data; + this.transformScopeThroughIdentifiers(reference, variableLexicalScopeNode); + }); + return programNode; + } + transformScopeThroughIdentifiers(reference, lexicalScopeNode) { + if (reference.resolved) { + return; + } + const identifier = reference.identifier; + this.storeIdentifierName(identifier, lexicalScopeNode); + this.replaceIdentifierName(identifier, lexicalScopeNode, reference); + } + storeIdentifierName(identifierNode, lexicalScopeNode) { + this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode); + } + replaceIdentifierName(identifierNode, lexicalScopeNode, reference) { + const newIdentifier = this.identifierReplacer + .replace(identifierNode, lexicalScopeNode); + reference.identifier.name = newIdentifier.name; + } +}; +ScopeThroughIdentifiersTransformer = __decorate([ + inversify_1.injectable(), + __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)), + __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 IIdentifierReplacer_1.IIdentifierReplacer !== "undefined" && IIdentifierReplacer_1.IIdentifierReplacer) === "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]) +], ScopeThroughIdentifiersTransformer); +exports.ScopeThroughIdentifiersTransformer = ScopeThroughIdentifiersTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts": +/*!**********************************************************************************************!*\ + !*** ./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts ***! + \**********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.IdentifierReplacer = 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 NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +let IdentifierReplacer = class IdentifierReplacer { + constructor(identifierNamesGeneratorFactory, options) { + this.blockScopesMap = new Map(); + this.options = options; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + } + 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); + } + 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); + } + 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; + }); + } +}; +IdentifierReplacer = __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]) +], IdentifierReplacer); +exports.IdentifierReplacer = IdentifierReplacer; + + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \***************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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/simplifying-transformers/AbstractStatementSimplifyTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.AbstractStatementSimplifyTransformer = 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 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 AbstractStatementSimplifyTransformer = class AbstractStatementSimplifyTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer, + NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer + ]; + } + getStatementSimplifyData(statementNode) { + if (!statementNode) { + return null; + } + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(statementNode)) { + return { + leadingStatements: [statementNode], + trailingStatement: null, + hasReturnStatement: false, + hasSingleExpression: false + }; + } + const { startIndex, unwrappedExpressions, hasReturnStatement } = this.collectIteratedStatementsSimplifyData(statementNode); + const leadingStatements = this.getLeadingStatements(statementNode, startIndex); + if (!unwrappedExpressions.length) { + return { + leadingStatements, + trailingStatement: null, + hasReturnStatement, + hasSingleExpression: false + }; + } + const hasSingleExpression = unwrappedExpressions.length === 1; + const expression = hasSingleExpression + ? unwrappedExpressions[0] + : NodeFactory_1.NodeFactory.sequenceExpressionNode(unwrappedExpressions); + const statement = hasReturnStatement + ? NodeFactory_1.NodeFactory.returnStatementNode(expression) + : NodeFactory_1.NodeFactory.expressionStatementNode(expression); + return { + leadingStatements, + trailingStatement: { + statement, + expression + }, + hasReturnStatement, + hasSingleExpression + }; + } + collectIteratedStatementsSimplifyData(statementNode) { + const statementNodeBodyLength = statementNode.body.length; + const unwrappedExpressions = []; + let hasReturnStatement = false; + let startIndex = null; + for (let i = statementNodeBodyLength - 1; i >= 0; i--) { + const statementBodyStatementNode = statementNode.body[i]; + if (NodeGuards_1.NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) { + if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(statementBodyStatementNode.expression)) { + unwrappedExpressions.unshift(...statementBodyStatementNode.expression.expressions); + } + else { + unwrappedExpressions.unshift(statementBodyStatementNode.expression); + } + startIndex = i; + continue; + } + if (NodeGuards_1.NodeGuards.isReturnStatementNode(statementBodyStatementNode) + && statementBodyStatementNode.argument) { + unwrappedExpressions.unshift(statementBodyStatementNode.argument); + hasReturnStatement = true; + startIndex = i; + continue; + } + break; + } + return { + startIndex, + unwrappedExpressions, + hasReturnStatement + }; + } + getLeadingStatements(statementNode, startIndex) { + if (startIndex === null) { + return statementNode.body; + } + return startIndex === 0 + ? [] + : statementNode.body.slice(0, startIndex); + } + getPartialStatement(statementSimplifyData) { + if (!statementSimplifyData.leadingStatements.length && statementSimplifyData.trailingStatement) { + return statementSimplifyData.trailingStatement.statement; + } + return NodeFactory_1.NodeFactory.blockStatementNode([ + ...statementSimplifyData.leadingStatements.length ? statementSimplifyData.leadingStatements : [], + ...statementSimplifyData.trailingStatement ? [statementSimplifyData.trailingStatement.statement] : [] + ]); + } +}; +AbstractStatementSimplifyTransformer = __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]) +], AbstractStatementSimplifyTransformer); +exports.AbstractStatementSimplifyTransformer = AbstractStatementSimplifyTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts": +/*!*********************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.BlockStatementSimplifyTransformer = 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 AbstractStatementSimplifyTransformer_1 = __webpack_require__(/*! ./AbstractStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let BlockStatementSimplifyTransformer = class BlockStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer + ]; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Simplifying: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(statementNode, parentNode) { + const simplifyData = this.getStatementSimplifyData(statementNode); + if (!simplifyData) { + return statementNode; + } + const partialStatementNode = this.getPartialStatement(simplifyData); + const transformedNode = NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatementNode) + ? partialStatementNode + : NodeFactory_1.NodeFactory.blockStatementNode([partialStatementNode]); + return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode); + } +}; +BlockStatementSimplifyTransformer = __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]) +], BlockStatementSimplifyTransformer); +exports.BlockStatementSimplifyTransformer = BlockStatementSimplifyTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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.ExpressionStatementsMergeTransformer = 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 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 ExpressionStatementsMergeTransformer = class ExpressionStatementsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Simplifying: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(expressionStatementNode, parentNode) { + if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) { + return expressionStatementNode; + } + const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(expressionStatementNode); + if (!prevStatement || !NodeGuards_1.NodeGuards.isExpressionStatementNode(prevStatement)) { + return expressionStatementNode; + } + if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(prevStatement.expression)) { + prevStatement.expression.expressions.push(expressionStatementNode.expression); + NodeUtils_1.NodeUtils.parentizeNode(expressionStatementNode.expression, prevStatement.expression); + } + else { + prevStatement.expression = NodeFactory_1.NodeFactory.sequenceExpressionNode([ + prevStatement.expression, + expressionStatementNode.expression + ]); + NodeUtils_1.NodeUtils.parentizeAst(prevStatement.expression); + NodeUtils_1.NodeUtils.parentizeNode(prevStatement.expression, prevStatement); + } + return estraverse.VisitorOption.Remove; + } +}; +ExpressionStatementsMergeTransformer = __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]) +], ExpressionStatementsMergeTransformer); +exports.ExpressionStatementsMergeTransformer = ExpressionStatementsMergeTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 AbstractStatementSimplifyTransformer_1 = __webpack_require__(/*! ./AbstractStatementSimplifyTransformer */ "./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts"); +const NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); +const NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +let IfStatementSimplifyTransformer = class IfStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.Simplifying: + return { + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isIfStatementNode(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + transformNode(ifStatementNode, parentNode) { + const consequentSimplifyData = this.getStatementSimplifyData(ifStatementNode.consequent); + if (!consequentSimplifyData) { + return ifStatementNode; + } + let transformedNode; + if (!ifStatementNode.alternate) { + transformedNode = this.getConsequentNode(ifStatementNode, consequentSimplifyData); + } + else { + const alternateSimplifyData = this.getStatementSimplifyData(ifStatementNode.alternate); + if (!alternateSimplifyData) { + return ifStatementNode; + } + transformedNode = this.getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData); + } + return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode); + } + getConsequentNode(ifStatementNode, consequentSimplifyData) { + if (consequentSimplifyData.leadingStatements.length + || !consequentSimplifyData.trailingStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData)); + } + if (consequentSimplifyData.hasReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement); + } + return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode('&&', ifStatementNode.test, consequentSimplifyData.trailingStatement.expression)); + } + getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData) { + if (consequentSimplifyData.leadingStatements.length + || alternateSimplifyData.leadingStatements.length + || !consequentSimplifyData.trailingStatement + || !alternateSimplifyData.trailingStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData), this.getPartialStatement(alternateSimplifyData)); + } + if (consequentSimplifyData.hasReturnStatement && alternateSimplifyData.hasReturnStatement) { + return NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression)); + } + if (consequentSimplifyData.hasReturnStatement || alternateSimplifyData.hasReturnStatement) { + return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement, alternateSimplifyData.trailingStatement.statement); + } + return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression)); + } + getPartialStatement(statementSimplifyData) { + const partialStatement = super.getPartialStatement(statementSimplifyData); + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatement)) { + return partialStatement; + } + return partialStatement.body.length === 1 + && !this.isProhibitedSingleStatementForIfStatementBranch(partialStatement.body[0]) + ? partialStatement.body[0] + : partialStatement; + } + isProhibitedSingleStatementForIfStatementBranch(statement) { + return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(statement) + || NodeGuards_1.NodeGuards.isIfStatementNode(statement) + || (NodeGuards_1.NodeGuards.isVariableDeclarationNode(statement) && statement.kind !== 'var'); + } +}; +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/simplifying-transformers/VariableDeclarationsMergeTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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.Simplifying: + return { + leave: (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/string-array-transformers/StringArrayRotateFunctionTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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 StringArrayRotateFunctionTransformer_1, _a, _b, _c, _d, _e, _f; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayRotateFunctionTransformer = 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 TCustomCodeHelperFactory_1 = __webpack_require__(/*! ../../types/container/custom-code-helpers/TCustomCodeHelperFactory */ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts"); +const INodeTransformersRunner_1 = __webpack_require__(/*! ../../interfaces/node-transformers/INodeTransformersRunner */ "./src/interfaces/node-transformers/INodeTransformersRunner.ts"); +const INumberNumericalExpressionAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer */ "./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.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-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const CustomCodeHelper_1 = __webpack_require__(/*! ../../enums/custom-code-helpers/CustomCodeHelper */ "./src/enums/custom-code-helpers/CustomCodeHelper.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 NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); +const NodeLiteralUtils_1 = __webpack_require__(/*! ../../node/NodeLiteralUtils */ "./src/node/NodeLiteralUtils.ts"); +const NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); +const NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); +const NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); +const NumericalExpressionDataToNodeConverter_1 = __webpack_require__(/*! ../../node/NumericalExpressionDataToNodeConverter */ "./src/node/NumericalExpressionDataToNodeConverter.ts"); +let StringArrayRotateFunctionTransformer = StringArrayRotateFunctionTransformer_1 = class StringArrayRotateFunctionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options, transformersRunner, stringArrayStorage, customCodeHelperFactory, numberNumericalExpressionAnalyzer) { + super(randomGenerator, options); + this.stringArrayStorage = stringArrayStorage; + this.transformersRunner = transformersRunner; + this.customCodeHelperFactory = customCodeHelperFactory; + this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer; + } + getVisitor(nodeTransformationStage) { + if (!this.options.rotateStringArray) { + return null; + } + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.StringArray: + return { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.transformNode(node); + } + return node; + } + }; + default: + return null; + } + } + transformNode(programNode) { + const stringArrayRotateFunctionNode = this.getStringArrayRotateFunctionNode(); + const wrappedStringArrayRotateFunctionNode = NodeFactory_1.NodeFactory.programNode([ + stringArrayRotateFunctionNode + ]); + NodeUtils_1.NodeUtils.parentizeAst(wrappedStringArrayRotateFunctionNode); + const transformationStages = [ + NodeTransformationStage_1.NodeTransformationStage.Preparing, + NodeTransformationStage_1.NodeTransformationStage.Converting, + NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers, + NodeTransformationStage_1.NodeTransformationStage.Finalizing + ]; + for (const transformationStage of transformationStages) { + this.transformersRunner.transform(wrappedStringArrayRotateFunctionNode, StringArrayRotateFunctionTransformer_1.stringArrayRotateFunctionTransformers, transformationStage); + } + estraverse.traverse(wrappedStringArrayRotateFunctionNode, { + enter: (node) => { + if (NodeGuards_1.NodeGuards.isLiteralNode(node) + && NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(node) + && !/\d/.test(node.value)) { + NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: true }); + } + } + }); + NodeAppender_1.NodeAppender.prepend(programNode, [stringArrayRotateFunctionNode]); + NodeUtils_1.NodeUtils.parentizeNode(stringArrayRotateFunctionNode, programNode); + return programNode; + } + getStringArrayRotateFunctionNode() { + const comparisonValue = this.randomGenerator.getRandomInteger(100000, 1000000); + const comparisonExpressionNumberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(comparisonValue); + const comparisonExpressionNode = NumericalExpressionDataToNodeConverter_1.NumericalExpressionDataToNodeConverter.convert(comparisonExpressionNumberNumericalExpressionData, ((number, isPositiveNumber) => { + const literalNode = NodeFactory_1.NodeFactory.literalNode(number.toString()); + return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('parseInt'), [ + isPositiveNumber + ? literalNode + : NodeFactory_1.NodeFactory.unaryExpressionNode('-', literalNode) + ]); + })); + const stringArrayRotateFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction); + stringArrayRotateFunctionCodeHelper.initialize(this.stringArrayStorage.getStorageName(), comparisonValue, comparisonExpressionNode); + return stringArrayRotateFunctionCodeHelper.getNode()[0]; + } +}; +StringArrayRotateFunctionTransformer.stringArrayRotateFunctionTransformers = [ + NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer, + NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, + NodeTransformer_1.NodeTransformer.NumberLiteralTransformer, + NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer, + NodeTransformer_1.NodeTransformer.ParentificationTransformer, + NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer +]; +StringArrayRotateFunctionTransformer = StringArrayRotateFunctionTransformer_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.INodeTransformersRunner)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)), + __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 INodeTransformersRunner_1.INodeTransformersRunner !== "undefined" && INodeTransformersRunner_1.INodeTransformersRunner) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== "undefined" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === "function" ? _e : Object, typeof (_f = typeof INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer !== "undefined" && INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer) === "function" ? _f : Object]) +], StringArrayRotateFunctionTransformer); +exports.StringArrayRotateFunctionTransformer = StringArrayRotateFunctionTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts": +/*!****************************************************************************************************!*\ + !*** ./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts ***! + \****************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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, _g; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayScopeCallsWrapperTransformer = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +const ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); +const TStringArrayCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TStringArrayCustomNodeFactory */ "./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.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 IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts"); +const IStringArrayScopeCallsWrapperNamesDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const IVisitedLexicalScopeNodesStackStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage */ "./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.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 StringArrayCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/StringArrayCustomNode */ "./src/enums/custom-nodes/StringArrayCustomNode.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.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"); +let StringArrayScopeCallsWrapperTransformer = class StringArrayScopeCallsWrapperTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayTransformerCustomNodeFactory) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer + ]; + this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage; + this.stringArrayStorage = stringArrayStorage; + this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage; + this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage; + this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory; + } + getVisitor(nodeTransformationStage) { + if (!this.options.stringArrayWrappersCount) { + return null; + } + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.StringArray: + return { + enter: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) { + this.onLexicalScopeNodeEnter(node); + } + }, + leave: (node, parentNode) => { + if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) { + this.onLexicalScopeNodeLeave(); + return this.transformNode(node); + } + } + }; + default: + return null; + } + } + transformNode(lexicalScopeBodyNode) { + var _a, _b; + const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(lexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null; + const stringArrayScopeCallsWrapperLexicalScopeData = (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(lexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null; + if (!stringArrayScopeCallsWrapperNamesDataByEncoding || !stringArrayScopeCallsWrapperLexicalScopeData) { + return lexicalScopeBodyNode; + } + const { callsWrappersParameterIndexesData: stringArrayScopeCallsWrapperParameterIndexes } = stringArrayScopeCallsWrapperLexicalScopeData; + const stringArrayScopeCallsWrapperNamesDataList = Object.values(stringArrayScopeCallsWrapperNamesDataByEncoding); + for (const stringArrayScopeCallsWrapperNamesData of stringArrayScopeCallsWrapperNamesDataList) { + if (!stringArrayScopeCallsWrapperNamesData) { + continue; + } + const { names } = stringArrayScopeCallsWrapperNamesData; + const namesLength = names.length; + for (let i = namesLength - 1; i >= 0; i--) { + const stringArrayScopeCallsWrapperName = names[i]; + const { name: upperStringArrayCallsWrapperName, index: upperStringArrayCallsWrapperShiftedIndex, parameterIndexesData: upperStringArrayCallsWrapperParameterIndexes } = this.getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData); + const stringArrayScopeCallsWrapperNode = this.getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, upperStringArrayCallsWrapperShiftedIndex); + NodeAppender_1.NodeAppender.prepend(lexicalScopeBodyNode, stringArrayScopeCallsWrapperNode); + } + } + return lexicalScopeBodyNode; + } + getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) { + const { encoding } = stringArrayScopeCallsWrapperNamesData; + const { resultShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData; + return { + name: this.stringArrayStorage.getStorageCallsWrapperName(encoding), + index: resultShiftedIndex, + parameterIndexesData: null + }; + } + getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) { + var _a, _b, _c, _d, _e, _f; + const { encoding } = stringArrayScopeCallsWrapperNamesData; + const { scopeShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData; + const rootStringArrayCallsWrapperData = this.getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData); + if (!this.options.stringArrayWrappersChainedCalls) { + return rootStringArrayCallsWrapperData; + } + const parentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null; + if (!parentLexicalScopeBodyNode) { + return rootStringArrayCallsWrapperData; + } + const parentLexicalScopeNamesDataByEncoding = (_b = this.stringArrayScopeCallsWrapperNamesDataStorage + .get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null; + const parentScopeCallsWrapperLexicalScopeData = (_c = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage + .get(parentLexicalScopeBodyNode)) !== null && _c !== void 0 ? _c : null; + const parentLexicalScopeNames = (_e = (_d = parentLexicalScopeNamesDataByEncoding === null || parentLexicalScopeNamesDataByEncoding === void 0 ? void 0 : parentLexicalScopeNamesDataByEncoding[encoding]) === null || _d === void 0 ? void 0 : _d.names) !== null && _e !== void 0 ? _e : null; + if (!(parentLexicalScopeNames === null || parentLexicalScopeNames === void 0 ? void 0 : parentLexicalScopeNames.length)) { + return rootStringArrayCallsWrapperData; + } + const upperStringArrayCallsWrapperName = this.randomGenerator + .getRandomGenerator() + .pickone(parentLexicalScopeNames); + const parameterIndexesData = (_f = parentScopeCallsWrapperLexicalScopeData === null || parentScopeCallsWrapperLexicalScopeData === void 0 ? void 0 : parentScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData) !== null && _f !== void 0 ? _f : null; + return { + name: upperStringArrayCallsWrapperName, + index: scopeShiftedIndex, + parameterIndexesData + }; + } + getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) { + switch (this.options.stringArrayWrappersType) { + case StringArrayWrappersType_1.StringArrayWrappersType.Function: + return this.getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex); + case StringArrayWrappersType_1.StringArrayWrappersType.Variable: + default: + return this.getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName); + } + } + getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName) { + const stringArrayScopeCallsWrapperVariableNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode); + stringArrayScopeCallsWrapperVariableNode.initialize(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName); + return stringArrayScopeCallsWrapperVariableNode.getNode(); + } + getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) { + const stringArrayScopeCallsWrapperFunctionNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode); + stringArrayScopeCallsWrapperFunctionNode.initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex); + return stringArrayScopeCallsWrapperFunctionNode.getNode(); + } + onLexicalScopeNodeEnter(lexicalScopeBodyNode) { + this.visitedLexicalScopeNodesStackStorage.push(lexicalScopeBodyNode); + } + onLexicalScopeNodeLeave() { + this.visitedLexicalScopeNodesStackStorage.pop(); + } +}; +StringArrayScopeCallsWrapperTransformer = __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.IVisitedLexicalScopeNodesStackStorage)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)), + __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)), + __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 IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== "undefined" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === "function" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _d : Object, typeof (_e = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== "undefined" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === "function" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== "undefined" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === "function" ? _f : Object, typeof (_g = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== "undefined" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === "function" ? _g : Object]) +], StringArrayScopeCallsWrapperTransformer); +exports.StringArrayScopeCallsWrapperTransformer = StringArrayScopeCallsWrapperTransformer; + + +/***/ }), + +/***/ "./src/node-transformers/string-array-transformers/StringArrayTransformer.ts": +/*!***********************************************************************************!*\ + !*** ./src/node-transformers/string-array-transformers/StringArrayTransformer.ts ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 StringArrayTransformer_1, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayTransformer = 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 TStringArrayCustomNodeFactory_1 = __webpack_require__(/*! ../../types/container/custom-nodes/TStringArrayCustomNodeFactory */ "./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts"); +const ILiteralNodesCacheStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage */ "./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.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 IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts"); +const IStringArrayScopeCallsWrapperNamesDataStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts"); +const IStringArrayStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IStringArrayStorage */ "./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts"); +const IStringArrayStorageAnalyzer_1 = __webpack_require__(/*! ../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer */ "./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts"); +const IVisitedLexicalScopeNodesStackStorage_1 = __webpack_require__(/*! ../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage */ "./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.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 StringArrayCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/StringArrayCustomNode */ "./src/enums/custom-nodes/StringArrayCustomNode.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts"); +const AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.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 StringArrayTransformer = StringArrayTransformer_1 = class StringArrayTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer { + constructor(randomGenerator, options, literalNodesCacheStorage, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayStorageAnalyzer, identifierNamesGeneratorFactory, stringArrayTransformerCustomNodeFactory) { + super(randomGenerator, options); + this.runAfter = [ + NodeTransformer_1.NodeTransformer.StringArrayRotateFunctionTransformer + ]; + this.literalNodesCacheStorage = literalNodesCacheStorage; + this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage; + this.stringArrayStorage = stringArrayStorage; + this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage; + this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage; + this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory; + } + getVisitor(nodeTransformationStage) { + switch (nodeTransformationStage) { + case NodeTransformationStage_1.NodeTransformationStage.StringArray: + return { + enter: (node, parentNode) => { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + this.prepareNode(node); + } + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) { + return this.transformNode(node, parentNode); + } + } + }; + default: + return null; + } + } + prepareNode(programNode) { + if (this.options.stringArray) { + this.stringArrayStorageAnalyzer.analyze(programNode); + } + if (this.options.shuffleStringArray) { + this.stringArrayStorage.shuffleStorage(); + } + if (this.options.rotateStringArray) { + this.stringArrayStorage.rotateStorage(); + } + } + transformNode(literalNode, parentNode) { + if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode) + || NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) { + return literalNode; + } + const literalValue = literalNode.value; + const stringArrayStorageItemData = this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(literalNode); + const cacheKey = this.literalNodesCacheStorage.buildKey(literalValue, stringArrayStorageItemData); + const useCachedValue = this.literalNodesCacheStorage.shouldUseCachedValue(cacheKey, stringArrayStorageItemData); + if (useCachedValue) { + return this.literalNodesCacheStorage.get(cacheKey); + } + const resultNode = stringArrayStorageItemData + ? this.getStringArrayCallNode(stringArrayStorageItemData) + : literalNode; + this.literalNodesCacheStorage.set(cacheKey, resultNode); + NodeUtils_1.NodeUtils.parentizeNode(resultNode, parentNode); + return resultNode; + } + getStringArrayCallNode(stringArrayStorageItemData) { + const { name: stringArrayCallsWrapperName, index, parameterIndexesData } = this.getStringArrayCallsWrapperData(stringArrayStorageItemData); + const { decodeKey } = stringArrayStorageItemData; + const stringArrayCallCustomNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode); + stringArrayCallCustomNode.initialize(stringArrayCallsWrapperName, parameterIndexesData, index, this.stringArrayStorage.getIndexShiftAmount(), decodeKey); + const statementNode = stringArrayCallCustomNode.getNode()[0]; + if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error('`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node'); + } + return statementNode.expression; + } + getStringArrayCallsWrapperData(stringArrayStorageItemData) { + return !this.options.stringArrayWrappersCount + ? this.getRootStringArrayCallsWrapperData(stringArrayStorageItemData) + : this.getUpperStringArrayCallsWrapperData(stringArrayStorageItemData); + } + getRootStringArrayCallsWrapperData(stringArrayStorageItemData) { + const { encoding, index } = stringArrayStorageItemData; + const rootStringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(encoding); + return { + name: rootStringArrayCallsWrapperName, + parameterIndexesData: null, + index + }; + } + getUpperStringArrayCallsWrapperData(stringArrayStorageItemData) { + var _a, _b, _c, _d; + const { encoding, index } = stringArrayStorageItemData; + const currentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null; + const parentLexicalScopeBodyNode = (_b = this.visitedLexicalScopeNodesStackStorage.getPenultimateElement()) !== null && _b !== void 0 ? _b : null; + if (!currentLexicalScopeBodyNode) { + throw new Error('Cannot find current lexical scope body node'); + } + const stringArrayScopeCallsWrapperNamesDataByEncoding = this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData); + const stringArrayScopeCallsWrapperLexicalScopeData = this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode); + const stringArrayScopeCallsWrapperNames = (_d = (_c = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _c === void 0 ? void 0 : _c.names) !== null && _d !== void 0 ? _d : []; + const randomUpperStringArrayCallsWrapperName = this.randomGenerator + .getRandomGenerator() + .pickone(stringArrayScopeCallsWrapperNames); + const resultIndex = stringArrayScopeCallsWrapperLexicalScopeData + ? stringArrayScopeCallsWrapperLexicalScopeData.resultShiftedIndex + index + : index; + return { + name: randomUpperStringArrayCallsWrapperName, + index: resultIndex, + parameterIndexesData: stringArrayScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData + }; + } + getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData) { + var _a, _b, _c; + const { encoding } = stringArrayStorageItemData; + const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : {}; + const stringArrayScopeCallsWrapperNames = (_c = (_b = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _b === void 0 ? void 0 : _b.names) !== null && _c !== void 0 ? _c : []; + const isFilledScopeCallsWrapperNamesList = stringArrayScopeCallsWrapperNames.length === this.options.stringArrayWrappersCount; + if (isFilledScopeCallsWrapperNamesList) { + return stringArrayScopeCallsWrapperNamesDataByEncoding; + } + const nextScopeCallsWrapperName = NodeGuards_1.NodeGuards.isProgramNode(currentLexicalScopeBodyNode) + ? this.identifierNamesGenerator.generateForGlobalScope() + : this.identifierNamesGenerator.generateNext(); + stringArrayScopeCallsWrapperNamesDataByEncoding[encoding] = { + encoding, + names: [ + ...stringArrayScopeCallsWrapperNames, + nextScopeCallsWrapperName + ] + }; + this.stringArrayScopeCallsWrapperNamesDataStorage.set(currentLexicalScopeBodyNode, stringArrayScopeCallsWrapperNamesDataByEncoding); + return stringArrayScopeCallsWrapperNamesDataByEncoding; + } + getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode) { + var _a, _b; + const storedLexicalScopeData = (_a = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null; + if (storedLexicalScopeData) { + return storedLexicalScopeData; + } + const parentLexicalScopeData = parentLexicalScopeBodyNode + ? (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null : null; + const callsWrappersParameterIndexesData = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function + ? this.getStringArrayCallsWrapperParameterIndexesData() + : null; + const scopeShiftedIndex = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function + ? this.randomGenerator.getRandomInteger(StringArrayTransformer_1.minShiftedIndexValue, StringArrayTransformer_1.maxShiftedIndexValue) + : 0; + const resultShiftedIndex = parentLexicalScopeData + ? parentLexicalScopeData.resultShiftedIndex + scopeShiftedIndex + : scopeShiftedIndex; + const lexicalScopeData = { + callsWrappersParameterIndexesData, + parentLexicalScopeBodyNode, + resultShiftedIndex, + scopeShiftedIndex + }; + this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(currentLexicalScopeBodyNode, lexicalScopeData); + return lexicalScopeData; + } + getStringArrayCallsWrapperParameterIndexesData() { + const minIndexValue = 0; + const maxIndexValue = this.options.stringArrayWrappersParametersMaxCount - 1; + const valueIndexParameterIndex = this.randomGenerator + .getRandomInteger(minIndexValue, maxIndexValue); + const decodeKeyParameterIndex = this.randomGenerator + .getRandomIntegerExcluding(minIndexValue, maxIndexValue, [valueIndexParameterIndex]); + return { + valueIndexParameterIndex, + decodeKeyParameterIndex + }; + } +}; +StringArrayTransformer.minShiftedIndexValue = -1000; +StringArrayTransformer.maxShiftedIndexValue = 1000; +StringArrayTransformer = StringArrayTransformer_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.ILiteralNodesCacheStorage)), + __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)), + __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)), + __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)), + __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)), + __param(7, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)), + __param(8, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), + __param(9, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)), + __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 ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage !== "undefined" && ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage) === "function" ? _c : Object, typeof (_d = typeof IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== "undefined" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === "function" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== "undefined" && IStringArrayStorage_1.IStringArrayStorage) === "function" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== "undefined" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === "function" ? _f : Object, typeof (_g = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== "undefined" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === "function" ? _g : Object, typeof (_h = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== "undefined" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === "function" ? _h : Object, typeof (_j = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== "undefined" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === "function" ? _j : Object, typeof (_k = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== "undefined" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === "function" ? _k : Object]) +], StringArrayTransformer); +exports.StringArrayTransformer = StringArrayTransformer; + + +/***/ }), + +/***/ "./src/node/NodeAppender.ts": +/*!**********************************!*\ + !*** ./src/node/NodeAppender.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 ***! + \*********************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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__(/*! @javascript-obfuscator/escodegen */ "@javascript-obfuscator/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 arrowFunctionExpressionNode(params, expression, body) { + return { + type: NodeType_1.NodeType.ArrowFunctionExpression, + params, + expression, + body + }; + } + 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 = [], optional = false) { + return { + type: NodeType_1.NodeType.CallExpression, + callee, + optional, + arguments: args, + metadata: { ignoredNode: false } + }; + } + static catchClauseNode(param, body) { + return { + type: NodeType_1.NodeType.CatchClause, + param, + body, + 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 exportAllDeclarationNode(source) { + return { + type: NodeType_1.NodeType.ExportAllDeclaration, + source, + metadata: { ignoredNode: false } + }; + } + static exportNamedDeclarationNode(specifiers, source) { + return { + type: NodeType_1.NodeType.ExportNamedDeclaration, + specifiers, + source, + 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, optional = false) { + return { + type: NodeType_1.NodeType.MemberExpression, + computed, + object, + optional, + 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 templateElement(value, tail) { + return { + type: NodeType_1.NodeType.TemplateElement, + value, + tail, + metadata: { ignoredNode: false } + }; + } + static templateLiteral(expressions, quasis) { + return { + type: NodeType_1.NodeType.TemplateLiteral, + expressions, + quasis, + metadata: { ignoredNode: false } + }; + } + static tryStatement(block, handler, finalizer) { + return { + type: NodeType_1.NodeType.TryStatement, + block, + handler, + finalizer, + 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 ***! + \********************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 isExportAllDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ExportAllDeclaration; + } + static isExportNamedDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ExportNamedDeclaration; + } + static isExportSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ExportSpecifier; + } + static isExpressionStatementNode(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement + && !('directive' in node); + } + static isForOfStatementNode(node) { + return node.type === NodeType_1.NodeType.ForOfStatement; + } + 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 isSpreadElementNode(node) { + return node.type === NodeType_1.NodeType.SpreadElement; + } + 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; + } + static isYieldExpressionNode(node) { + return node.type === NodeType_1.NodeType.YieldExpression; + } +} +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 ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NodeLiteralUtils = void 0; +const NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); +class NodeLiteralUtils { + static isStringLiteralNode(literalNode) { + return typeof literalNode.value === 'string'; + } + 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; + } + if (NodeGuards_1.NodeGuards.isExportAllDeclarationNode(parentNode) || NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) { + return true; + } + return false; + } +} +exports.NodeLiteralUtils = NodeLiteralUtils; + + +/***/ }), + +/***/ "./src/node/NodeMetadata.ts": +/*!**********************************!*\ + !*** ./src/node/NodeMetadata.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 isForceTransformNode(node) { + return NodeMetadata.get(node, 'forceTransformNode') === true; + } + 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 ***! + \****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 ***! + \*******************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.prototype.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__(/*! @javascript-obfuscator/escodegen */ "@javascript-obfuscator/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) => { + var _a; + if (property === 'parentNode') { + return; + } + const value = (_a = node[property]) !== null && _a !== void 0 ? _a : null; + let clonedValue; + if (value === null || value instanceof RegExp) { + clonedValue = value; + } + else if (value instanceof Array) { + 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/NumericalExpressionDataToNodeConverter.ts": +/*!************************************************************!*\ + !*** ./src/node/NumericalExpressionDataToNodeConverter.ts ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NumericalExpressionDataToNodeConverter = void 0; +const NodeFactory_1 = __webpack_require__(/*! ./NodeFactory */ "./src/node/NodeFactory.ts"); +const NumberUtils_1 = __webpack_require__(/*! ../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); +class NumericalExpressionDataToNodeConverter { + static convert(numberNumericalExpressionData, literalNodeGetter) { + return NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(numberNumericalExpressionData, literalNodeGetter); + } + static convertNumericalExpressionDataToNode(numberNumericalExpressionData, literalNodeGetter, operator = '+') { + var _a; + const numberNumericalExpressionDataLength = numberNumericalExpressionData.length; + const leftParts = numberNumericalExpressionDataLength > 1 + ? numberNumericalExpressionData.slice(0, numberNumericalExpressionDataLength - 1) + : [numberNumericalExpressionData[0]]; + const rightParts = numberNumericalExpressionDataLength > 1 + ? numberNumericalExpressionData.slice(-1) + : []; + if (rightParts.length) { + return NumericalExpressionDataToNodeConverter + .convertPartsToBinaryExpression(operator, leftParts, rightParts, literalNodeGetter); + } + const firstLeftPartOrNumber = (_a = leftParts[0]) !== null && _a !== void 0 ? _a : null; + return Array.isArray(firstLeftPartOrNumber) + ? NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(firstLeftPartOrNumber, literalNodeGetter, '*') + : NumericalExpressionDataToNodeConverter.convertPartOrNumberToLiteralNode(firstLeftPartOrNumber, literalNodeGetter); + } + static convertPartsToBinaryExpression(operator, leftParts, rightParts, literalNodeGetter) { + const rightPartOrNumber = rightParts[0]; + if (Array.isArray(rightPartOrNumber)) { + return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(leftParts, literalNodeGetter), NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(rightPartOrNumber, literalNodeGetter, '*')); + } + else { + return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode(leftParts, literalNodeGetter), this.convertPartOrNumberToLiteralNode(rightPartOrNumber, literalNodeGetter)); + } + } + static convertPartOrNumberToLiteralNode(partOrNumber, literalNodeGetter) { + const number = Array.isArray(partOrNumber) + ? partOrNumber[0] + : partOrNumber; + const isPositiveNumber = NumberUtils_1.NumberUtils.isPositive(number); + const absoluteNumber = Math.abs(number); + return literalNodeGetter(absoluteNumber, isPositiveNumber); + } +} +exports.NumericalExpressionDataToNodeConverter = NumericalExpressionDataToNodeConverter; + + +/***/ }), + +/***/ "./src/node/ScopeIdentifiersTraverser.ts": +/*!***********************************************!*\ + !*** ./src/node/ScopeIdentifiersTraverser.ts ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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; + } + traverseScopeIdentifiers(programNode, parentNode, callback) { + this.scopeAnalyzer.analyze(programNode); + const globalScope = this.scopeAnalyzer.acquireScope(programNode); + this.traverseScopeIdentifiersRecursive(globalScope, globalScope, callback); + } + traverseScopeThroughIdentifiers(programNode, parentNode, callback) { + this.scopeAnalyzer.analyze(programNode); + const globalScope = this.scopeAnalyzer.acquireScope(programNode); + this.traverseScopeThroughIdentifiersRecursive(globalScope, globalScope, callback); + } + traverseScopeIdentifiersRecursive(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.traverseScopeIdentifiersRecursive(rootScope, childScope, callback); + } + } + traverseScopeThroughIdentifiersRecursive(rootScope, currentScope, callback) { + const variableScope = currentScope.variableScope; + const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block) + ? variableScope.block + : null; + if (!variableLexicalScopeNode) { + return; + } + for (const reference of currentScope.through) { + callback({ + reference, + variableLexicalScopeNode + }); + } + for (const childScope of currentScope.childScopes) { + this.traverseScopeThroughIdentifiersRecursive(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 ***! + \********************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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, _g; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Options = void 0; +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 TOptionsPreset_1 = __webpack_require__(/*! ../types/options/TOptionsPreset */ "./src/types/options/TOptionsPreset.ts"); +const TStringArrayWrappersType_1 = __webpack_require__(/*! ../types/options/TStringArrayWrappersType */ "./src/types/options/TStringArrayWrappersType.ts"); +const TTypeFromEnum_1 = __webpack_require__(/*! ../types/utils/TTypeFromEnum */ "./src/types/utils/TTypeFromEnum.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 OptionsPreset_1 = __webpack_require__(/*! ../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const StringArrayIndexesType_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts"); +const Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts"); +const LowObfuscation_1 = __webpack_require__(/*! ./presets/LowObfuscation */ "./src/options/presets/LowObfuscation.ts"); +const MediumObfuscation_1 = __webpack_require__(/*! ./presets/MediumObfuscation */ "./src/options/presets/MediumObfuscation.ts"); +const HighObfuscation_1 = __webpack_require__(/*! ./presets/HighObfuscation */ "./src/options/presets/HighObfuscation.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) { + var _a; + const optionsPreset = Options_1.getOptionsByPreset((_a = inputOptions.optionsPreset) !== null && _a !== void 0 ? _a : OptionsPreset_1.OptionsPreset.Default); + Object.assign(this, optionsPreset, 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)); + } + static getOptionsByPreset(optionsPreset) { + var _a; + const options = (_a = Options_1.optionPresetsMap.get(optionsPreset)) !== null && _a !== void 0 ? _a : null; + if (!options) { + throw new Error(`Options for preset name \`${optionsPreset}\` are not found`); + } + return options; + } +}; +Options.optionPresetsMap = new Map([ + [OptionsPreset_1.OptionsPreset.Default, Default_1.DEFAULT_PRESET], + [OptionsPreset_1.OptionsPreset.LowObfuscation, LowObfuscation_1.LOW_OBFUSCATION_PRESET], + [OptionsPreset_1.OptionsPreset.MediumObfuscation, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET], + [OptionsPreset_1.OptionsPreset.HighObfuscation, HighObfuscation_1.HIGH_OBFUSCATION_PRESET] +]); +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.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsString({ + each: true + }), + __metadata("design:type", Array) +], Options.prototype, "forceTransformStrings", void 0); +__decorate([ + class_validator_1.IsIn([ + IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator, + IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator + ]), + __metadata("design:type", typeof (_a = typeof TTypeFromEnum_1.TTypeFromEnum !== "undefined" && TTypeFromEnum_1.TTypeFromEnum) === "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.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "ignoreRequireImports", 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, "numbersToExpressions", void 0); +__decorate([ + class_validator_1.IsIn([ + OptionsPreset_1.OptionsPreset.Default, + OptionsPreset_1.OptionsPreset.LowObfuscation, + OptionsPreset_1.OptionsPreset.MediumObfuscation, + OptionsPreset_1.OptionsPreset.HighObfuscation + ]), + __metadata("design:type", typeof (_b = typeof TOptionsPreset_1.TOptionsPreset !== "undefined" && TOptionsPreset_1.TOptionsPreset) === "function" ? _b : Object) +], Options.prototype, "optionsPreset", 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, "simplify", 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 (_c = typeof TTypeFromEnum_1.TTypeFromEnum !== "undefined" && TTypeFromEnum_1.TTypeFromEnum) === "function" ? _c : 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(3), + __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.IsArray(), + class_validator_1.ArrayUnique(), + class_validator_1.IsIn([StringArrayEncoding_1.StringArrayEncoding.None, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4], { each: true }), + __metadata("design:type", Array) +], Options.prototype, "stringArrayEncoding", void 0); +__decorate([ + class_validator_1.IsArray(), + class_validator_1.ArrayNotEmpty(), + class_validator_1.ArrayUnique(), + class_validator_1.IsIn([StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString], { each: true }), + __metadata("design:type", Array) +], Options.prototype, "stringArrayIndexesType", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "stringArrayIndexShift", void 0); +__decorate([ + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], Options.prototype, "stringArrayWrappersChainedCalls", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.Min(0), + __metadata("design:type", Number) +], Options.prototype, "stringArrayWrappersCount", void 0); +__decorate([ + class_validator_1.IsNumber(), + class_validator_1.Min(2), + __metadata("design:type", Number) +], Options.prototype, "stringArrayWrappersParametersMaxCount", void 0); +__decorate([ + class_validator_1.IsIn([StringArrayWrappersType_1.StringArrayWrappersType.Variable, StringArrayWrappersType_1.StringArrayWrappersType.Function]), + __metadata("design:type", typeof (_d = typeof TStringArrayWrappersType_1.TStringArrayWrappersType !== "undefined" && TStringArrayWrappersType_1.TStringArrayWrappersType) === "function" ? _d : Object) +], Options.prototype, "stringArrayWrappersType", 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 (_e = typeof TTypeFromEnum_1.TTypeFromEnum !== "undefined" && TTypeFromEnum_1.TTypeFromEnum) === "function" ? _e : 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 (_f = typeof TInputOptions_1.TInputOptions !== "undefined" && TInputOptions_1.TInputOptions) === "function" ? _f : Object, typeof (_g = typeof IOptionsNormalizer_1.IOptionsNormalizer !== "undefined" && IOptionsNormalizer_1.IOptionsNormalizer) === "function" ? _g : Object]) +], Options); +exports.Options = Options; + + +/***/ }), + +/***/ "./src/options/OptionsNormalizer.ts": +/*!******************************************!*\ + !*** ./src/options/OptionsNormalizer.ts ***! + \******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 StringArrayWappersChainedCalls_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayWappersChainedCalls */ "./src/options/normalizer-rules/StringArrayWappersChainedCalls.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, + StringArrayWappersChainedCalls_1.StringArrayWrappersChainedCallsRule, +]; +OptionsNormalizer = OptionsNormalizer_1 = __decorate([ + inversify_1.injectable() +], OptionsNormalizer); +exports.OptionsNormalizer = OptionsNormalizer; + + +/***/ }), + +/***/ "./src/options/ValidationErrorsFormatter.ts": +/*!**************************************************!*\ + !*** ./src/options/ValidationErrorsFormatter.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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 ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ControlFlowFlatteningThresholdRule = void 0; +const ControlFlowFlatteningThresholdRule = (options) => { + if (options.controlFlowFlatteningThreshold === 0) { + options = Object.assign(Object.assign({}, options), { controlFlowFlattening: false, controlFlowFlatteningThreshold: 0 }); + } + return options; +}; +exports.ControlFlowFlatteningThresholdRule = ControlFlowFlatteningThresholdRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DeadCodeInjectionRule = void 0; +const Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts"); +const 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; +}; +exports.DeadCodeInjectionRule = DeadCodeInjectionRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts": +/*!************************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DeadCodeInjectionThresholdRule = void 0; +const DeadCodeInjectionThresholdRule = (options) => { + if (options.deadCodeInjectionThreshold === 0) { + options = Object.assign(Object.assign({}, options), { deadCodeInjection: false, deadCodeInjectionThreshold: 0 }); + } + return options; +}; +exports.DeadCodeInjectionThresholdRule = DeadCodeInjectionThresholdRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/DomainLockRule.ts": +/*!********************************************************!*\ + !*** ./src/options/normalizer-rules/DomainLockRule.ts ***! + \********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DomainLockRule = void 0; +const Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); +const 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; +}; +exports.DomainLockRule = DomainLockRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/InputFileNameRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/InputFileNameRule.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.InputFileNameRule = void 0; +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +const 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; +}; +exports.InputFileNameRule = InputFileNameRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SeedRule.ts": +/*!**************************************************!*\ + !*** ./src/options/normalizer-rules/SeedRule.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SeedRule = void 0; +const 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) }); +}; +exports.SeedRule = SeedRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SelfDefendingRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SelfDefendingRule = void 0; +const SelfDefendingRule = (options) => { + if (options.selfDefending) { + options = Object.assign(Object.assign({}, options), { compact: true, selfDefending: true }); + } + return options; +}; +exports.SelfDefendingRule = SelfDefendingRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts": +/*!**************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SourceMapBaseUrlRule = void 0; +const 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; +}; +exports.SourceMapBaseUrlRule = SourceMapBaseUrlRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SourceMapFileNameRule = void 0; +const StringSeparator_1 = __webpack_require__(/*! ../../enums/StringSeparator */ "./src/enums/StringSeparator.ts"); +const 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; +}; +exports.SourceMapFileNameRule = SourceMapFileNameRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts": +/*!*********************************************************************!*\ + !*** ./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SplitStringsChunkLengthRule = void 0; +const 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; +}; +exports.SplitStringsChunkLengthRule = SplitStringsChunkLengthRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts": +/*!*****************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayEncodingRule = void 0; +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayEncodingRule = (options) => { + if (!options.stringArrayEncoding.length) { + options = Object.assign(Object.assign({}, options), { stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.None + ] }); + } + return options; +}; +exports.StringArrayEncodingRule = StringArrayEncodingRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayRule.ts": +/*!*********************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayRule.ts ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayRule = void 0; +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayRule = (options) => { + if (!options.stringArray) { + options = Object.assign(Object.assign({}, options), { rotateStringArray: false, shuffleStringArray: false, stringArray: false, stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.None + ], stringArrayIndexShift: false, stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0, stringArrayThreshold: 0 }); + } + return options; +}; +exports.StringArrayRule = StringArrayRule; + + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts": +/*!************************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringArrayWrappersChainedCallsRule = void 0; +const StringArrayWrappersChainedCallsRule = (options) => { + if (options.stringArrayWrappersCount === 0) { + options = Object.assign(Object.assign({}, options), { stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0 }); + } + return options; +}; +exports.StringArrayWrappersChainedCallsRule = StringArrayWrappersChainedCallsRule; + + +/***/ }), + +/***/ "./src/options/presets/Default.ts": +/*!****************************************!*\ + !*** ./src/options/presets/Default.ts ***! + \****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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 OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); +const StringArrayIndexesType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.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: [], + forceTransformStrings: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + identifiersDictionary: [], + ignoreRequireImports: false, + inputFileName: '', + log: false, + numbersToExpressions: false, + optionsPreset: OptionsPreset_1.OptionsPreset.Default, + renameGlobals: false, + renameProperties: false, + reservedNames: [], + reservedStrings: [], + rotateStringArray: true, + seed: 0, + selfDefending: false, + shuffleStringArray: true, + simplify: true, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + splitStrings: false, + splitStringsChunkLength: 10, + stringArray: true, + stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.None + ], + stringArrayIndexesType: [ + StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber + ], + stringArrayIndexShift: true, + stringArrayWrappersChainedCalls: true, + stringArrayWrappersCount: 1, + stringArrayWrappersParametersMaxCount: 2, + stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable, + stringArrayThreshold: 0.75, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + + +/***/ }), + +/***/ "./src/options/presets/HighObfuscation.ts": +/*!************************************************!*\ + !*** ./src/options/presets/HighObfuscation.ts ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.HIGH_OBFUSCATION_PRESET = void 0; +const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const MediumObfuscation_1 = __webpack_require__(/*! ./MediumObfuscation */ "./src/options/presets/MediumObfuscation.ts"); +exports.HIGH_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET), { controlFlowFlatteningThreshold: 1, deadCodeInjectionThreshold: 1, debugProtection: true, debugProtectionInterval: true, optionsPreset: OptionsPreset_1.OptionsPreset.HighObfuscation, splitStringsChunkLength: 5, stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.Rc4 + ], stringArrayWrappersCount: 5, stringArrayWrappersParametersMaxCount: 5, stringArrayThreshold: 1 })); + + +/***/ }), + +/***/ "./src/options/presets/LowObfuscation.ts": +/*!***********************************************!*\ + !*** ./src/options/presets/LowObfuscation.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.LOW_OBFUSCATION_PRESET = void 0; +const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const Default_1 = __webpack_require__(/*! ./Default */ "./src/options/presets/Default.ts"); +exports.LOW_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, Default_1.DEFAULT_PRESET), { disableConsoleOutput: true, optionsPreset: OptionsPreset_1.OptionsPreset.LowObfuscation, rotateStringArray: true, selfDefending: true, shuffleStringArray: true, simplify: true })); + + +/***/ }), + +/***/ "./src/options/presets/MediumObfuscation.ts": +/*!**************************************************!*\ + !*** ./src/options/presets/MediumObfuscation.ts ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MEDIUM_OBFUSCATION_PRESET = void 0; +const OptionsPreset_1 = __webpack_require__(/*! ../../enums/options/presets/OptionsPreset */ "./src/enums/options/presets/OptionsPreset.ts"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts"); +const LowObfuscation_1 = __webpack_require__(/*! ./LowObfuscation */ "./src/options/presets/LowObfuscation.ts"); +exports.MEDIUM_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, LowObfuscation_1.LOW_OBFUSCATION_PRESET), { controlFlowFlattening: true, deadCodeInjection: true, numbersToExpressions: true, optionsPreset: OptionsPreset_1.OptionsPreset.MediumObfuscation, splitStrings: true, splitStringsChunkLength: 10, stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.Base64 + ], stringArrayWrappersCount: 2, stringArrayWrappersParametersMaxCount: 4, stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Function, transformObjectKeys: true })); + + +/***/ }), + +/***/ "./src/options/presets/NoCustomNodes.ts": +/*!**********************************************!*\ + !*** ./src/options/presets/NoCustomNodes.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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"); +const StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const StringArrayWrappersType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayWrappersType */ "./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts"); +const StringArrayIndexesType_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayIndexesType */ "./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.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: [], + forceTransformStrings: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + identifiersDictionary: [], + ignoreRequireImports: false, + inputFileName: '', + log: false, + numbersToExpressions: false, + renameGlobals: false, + renameProperties: false, + reservedNames: [], + reservedStrings: [], + rotateStringArray: false, + seed: 0, + selfDefending: false, + shuffleStringArray: false, + simplify: false, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + splitStrings: false, + splitStringsChunkLength: 0, + stringArray: false, + stringArrayEncoding: [ + StringArrayEncoding_1.StringArrayEncoding.None + ], + stringArrayIndexesType: [ + StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber + ], + stringArrayIndexShift: false, + stringArrayWrappersChainedCalls: false, + stringArrayWrappersCount: 0, + stringArrayWrappersParametersMaxCount: 2, + stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable, + stringArrayThreshold: 0, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + + +/***/ }), + +/***/ "./src/options/validators/IsAllowedForObfuscationTargets.ts": +/*!******************************************************************!*\ + !*** ./src/options/validators/IsAllowedForObfuscationTargets.ts ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*******************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \***************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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/ArrayStorage.ts": +/*!**************************************!*\ + !*** ./src/storages/ArrayStorage.ts ***! + \**************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.ArrayStorage = 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 ArrayStorage = class ArrayStorage { + constructor(randomGenerator, options) { + this.storageLength = 0; + this.randomGenerator = randomGenerator; + this.options = options; + } + initialize() { + this.storage = []; + this.storageId = this.randomGenerator.getRandomString(6); + } + delete(key) { + var _a; + const deletedElement = (_a = this.storage.splice(key, 1)[0]) !== null && _a !== void 0 ? _a : undefined; + if (deletedElement) { + this.storageLength--; + } + return deletedElement; + } + get(key) { + return this.storage[key]; + } + getOrThrow(key) { + const value = this.get(key); + if (!value) { + throw new Error(`No value found in array storage with key \`${key}\``); + } + return value; + } + getKeyOf(value) { + const key = this.storage.indexOf(value); + return key >= 0 ? key : null; + } + getLength() { + return this.storageLength; + } + getStorage() { + return this.storage; + } + getStorageId() { + return this.storageId; + } + mergeWith(storage, mergeId = false) { + this.storage = [...this.storage, ...storage.getStorage()]; + if (mergeId) { + this.storageId = storage.getStorageId(); + } + } + set(key, value) { + if (key === this.storageLength) { + this.storage.push(value); + } + else { + this.storage.splice(key, 0, value); + } + this.storageLength++; + } +}; +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", Array) +], ArrayStorage.prototype, "storage", void 0); +__decorate([ + Initializable_1.initializable(), + __metadata("design:type", String) +], ArrayStorage.prototype, "storageId", void 0); +__decorate([ + inversify_1.postConstruct(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], ArrayStorage.prototype, "initialize", null); +ArrayStorage = __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]) +], ArrayStorage); +exports.ArrayStorage = ArrayStorage; + + +/***/ }), + +/***/ "./src/storages/MapStorage.ts": +/*!************************************!*\ + !*** ./src/storages/MapStorage.ts ***! + \************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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-transformers/LiteralNodesCacheStorage.ts": +/*!****************************************************************************!*\ + !*** ./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.LiteralNodesCacheStorage = 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 StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts"); +const MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); +let LiteralNodesCacheStorage = class LiteralNodesCacheStorage extends MapStorage_1.MapStorage { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } + buildKey(literalValue, stringArrayStorageItemData) { + return `${literalValue}-${Boolean(stringArrayStorageItemData)}`; + } + shouldUseCachedValue(key, stringArrayStorageItemData) { + return !this.options.stringArrayWrappersCount + && (stringArrayStorageItemData === null || stringArrayStorageItemData === void 0 ? void 0 : stringArrayStorageItemData.encoding) !== StringArrayEncoding_1.StringArrayEncoding.Rc4 + && this.storage.has(key); + } +}; +LiteralNodesCacheStorage = __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]) +], LiteralNodesCacheStorage); +exports.LiteralNodesCacheStorage = LiteralNodesCacheStorage; + + +/***/ }), + +/***/ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts": +/*!*******************************************************************************************************!*\ + !*** ./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts ***! + \*******************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.StringArrayScopeCallsWrapperLexicalScopeDataStorage = 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 StringArrayScopeCallsWrapperLexicalScopeDataStorage = class StringArrayScopeCallsWrapperLexicalScopeDataStorage extends MapStorage_1.MapStorage { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } +}; +StringArrayScopeCallsWrapperLexicalScopeDataStorage = __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]) +], StringArrayScopeCallsWrapperLexicalScopeDataStorage); +exports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = StringArrayScopeCallsWrapperLexicalScopeDataStorage; + + +/***/ }), + +/***/ "./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts": +/*!************************************************************************************************!*\ + !*** ./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.StringArrayScopeCallsWrapperNamesDataStorage = 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 StringArrayScopeCallsWrapperNamesDataStorage = class StringArrayScopeCallsWrapperNamesDataStorage extends MapStorage_1.MapStorage { + constructor(randomGenerator, options) { + super(randomGenerator, options); + } +}; +StringArrayScopeCallsWrapperNamesDataStorage = __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]) +], StringArrayScopeCallsWrapperNamesDataStorage); +exports.StringArrayScopeCallsWrapperNamesDataStorage = StringArrayScopeCallsWrapperNamesDataStorage; + + +/***/ }), + +/***/ "./src/storages/string-array-transformers/StringArrayStorage.ts": +/*!**********************************************************************!*\ + !*** ./src/storages/string-array-transformers/StringArrayStorage.ts ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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; +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 ICryptUtilsSwappedAlphabet_1 = __webpack_require__(/*! ../../interfaces/utils/ICryptUtilsSwappedAlphabet */ "./src/interfaces/utils/ICryptUtilsSwappedAlphabet.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/node-transformers/string-array-transformers/StringArrayEncoding */ "./src/enums/node-transformers/string-array-transformers/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, cryptUtilsSwappedAlphabet) { + super(randomGenerator, options); + this.rc4EncodedValuesSourcesCache = new Map(); + this.indexShiftAmount = 0; + this.rotationAmount = 0; + this.stringArrayStorageCallsWrapperNamesMap = new Map(); + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.arrayUtils = arrayUtils; + this.cryptUtilsSwappedAlphabet = cryptUtilsSwappedAlphabet; + this.rc4Keys = this.randomGenerator.getRandomGenerator() + .n(() => this.randomGenerator.getRandomGenerator().string({ + length: StringArrayStorage_1.rc4KeyLength + }), StringArrayStorage_1.rc4KeysCount); + } + initialize() { + super.initialize(); + this.indexShiftAmount = this.options.stringArrayIndexShift + ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumIndexShiftAmount, StringArrayStorage_1.maximumIndexShiftAmount) + : 0; + this.rotationAmount = this.options.rotateStringArray + ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumRotationAmount, StringArrayStorage_1.maximumRotationAmount) + : 0; + } + get(value) { + return this.getOrSetIfDoesNotExist(value); + } + getIndexShiftAmount() { + return this.indexShiftAmount; + } + getRotationAmount() { + return this.rotationAmount; + } + getStorageName() { + return this.getStorageId(); + } + getStorageId() { + if (!this.stringArrayStorageName) { + this.stringArrayStorageName = this.identifierNamesGenerator + .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength); + } + return this.stringArrayStorageName; + } + getStorageCallsWrapperName(stringArrayEncoding) { + var _a; + const storageCallsWrapperName = (_a = this.stringArrayStorageCallsWrapperNamesMap + .get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : null; + if (storageCallsWrapperName) { + return storageCallsWrapperName; + } + const newStorageCallsWrapperName = this.identifierNamesGenerator + .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength); + this.stringArrayStorageCallsWrapperNamesMap.set(stringArrayEncoding, newStorageCallsWrapperName); + return newStorageCallsWrapperName; + } + 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)); + } + getOrSetIfDoesNotExist(value) { + const { encodedValue, encoding, decodeKey } = this.getEncodedValue(value); + const storedStringArrayStorageItemData = this.storage.get(encodedValue); + if (storedStringArrayStorageItemData) { + return storedStringArrayStorageItemData; + } + const stringArrayStorageItemData = { + encodedValue, + encoding, + decodeKey, + value, + index: this.getLength() + }; + this.storage.set(encodedValue, stringArrayStorageItemData); + return stringArrayStorageItemData; + } + getEncodedValue(value) { + var _a; + const encoding = this.options.stringArrayEncoding.length + ? this.randomGenerator + .getRandomGenerator() + .pickone(this.options.stringArrayEncoding) + : null; + if (!encoding) { + throw new Error('`stringArrayEncoding` option array is empty'); + } + switch (encoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: { + const decodeKey = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys); + const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.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, encoding, decodeKey }; + } + case StringArrayEncoding_1.StringArrayEncoding.Base64: { + const decodeKey = null; + const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(value); + return { encodedValue, encoding, decodeKey }; + } + default: { + const decodeKey = null; + const encodedValue = value; + return { encodedValue, encoding, decodeKey }; + } + } + } +}; +StringArrayStorage.minimumRotationAmount = 100; +StringArrayStorage.maximumRotationAmount = 500; +StringArrayStorage.minimumIndexShiftAmount = 100; +StringArrayStorage.maximumIndexShiftAmount = 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.ICryptUtilsSwappedAlphabet)), + __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 ICryptUtilsSwappedAlphabet_1.ICryptUtilsSwappedAlphabet !== "undefined" && ICryptUtilsSwappedAlphabet_1.ICryptUtilsSwappedAlphabet) === "function" ? _e : Object]) +], StringArrayStorage); +exports.StringArrayStorage = StringArrayStorage; + + +/***/ }), + +/***/ "./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts": +/*!****************************************************************************************!*\ + !*** ./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.VisitedLexicalScopeNodesStackStorage = 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 ArrayStorage_1 = __webpack_require__(/*! ../ArrayStorage */ "./src/storages/ArrayStorage.ts"); +let VisitedLexicalScopeNodesStackStorage = class VisitedLexicalScopeNodesStackStorage extends ArrayStorage_1.ArrayStorage { + constructor(randomGenerator, options, arrayUtils) { + super(randomGenerator, options); + this.arrayUtils = arrayUtils; + } + getLastElement() { + return this.arrayUtils.getLastElement(this.getStorage()); + } + getPenultimateElement() { + var _a; + const storageLength = this.getLength(); + return (_a = this.get(storageLength - 2)) !== null && _a !== void 0 ? _a : undefined; + } + push(nodeWithLexicalScopeStatements) { + const storageLength = this.getLength(); + this.set(storageLength, nodeWithLexicalScopeStatements); + } + pop() { + const storageLength = this.getLength(); + return this.delete(storageLength - 1); + } +}; +VisitedLexicalScopeNodesStackStorage = __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]) +], VisitedLexicalScopeNodesStackStorage); +exports.VisitedLexicalScopeNodesStackStorage = VisitedLexicalScopeNodesStackStorage; + + +/***/ }), + +/***/ "./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts": +/*!*********************************************************************************!*\ + !*** ./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/code-transformers/TCodeTransformerFactory.ts": +/*!**************************************************************************!*\ + !*** ./src/types/container/code-transformers/TCodeTransformerFactory.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts": +/*!*****************************************************************************!*\ + !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts": +/*!**********************************************************************************!*\ + !*** ./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts": +/*!*********************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts": +/*!***********************************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts": +/*!***************************************************************************************************!*\ + !*** ./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts": +/*!****************************************************************************!*\ + !*** ./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TControlFlowReplacerFactory.ts": +/*!******************************************************************************!*\ + !*** ./src/types/container/node-transformers/TControlFlowReplacerFactory.ts ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TControlFlowStorageFactory.ts": +/*!*****************************************************************************!*\ + !*** ./src/types/container/node-transformers/TControlFlowStorageFactory.ts ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TNodeTransformerFactory.ts": +/*!**************************************************************************!*\ + !*** ./src/types/container/node-transformers/TNodeTransformerFactory.ts ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TObfuscatingGuardFactory.ts": +/*!***************************************************************************!*\ + !*** ./src/types/container/node-transformers/TObfuscatingGuardFactory.ts ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts": +/*!************************************************************************************!*\ + !*** ./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts ***! + \************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/container/source-code/TObfuscatedCodeFactory.ts": +/*!*******************************************************************!*\ + !*** ./src/types/container/source-code/TObfuscatedCodeFactory.ts ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/options/TInputOptions.ts": +/*!********************************************!*\ + !*** ./src/types/options/TInputOptions.ts ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/options/TOptionsPreset.ts": +/*!*********************************************!*\ + !*** ./src/types/options/TOptionsPreset.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/options/TStringArrayWrappersType.ts": +/*!*******************************************************!*\ + !*** ./src/types/options/TStringArrayWrappersType.ts ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/storages/TControlFlowStorage.ts": +/*!***************************************************!*\ + !*** ./src/types/storages/TControlFlowStorage.ts ***! + \***************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/storages/TCustomCodeHelperGroupStorage.ts": +/*!*************************************************************!*\ + !*** ./src/types/storages/TCustomCodeHelperGroupStorage.ts ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/types/utils/TTypeFromEnum.ts": +/*!******************************************!*\ + !*** ./src/types/utils/TTypeFromEnum.ts ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + + +/***/ }), + +/***/ "./src/utils/AbstractTransformerNamesGroupsBuilder.ts": +/*!************************************************************!*\ + !*** ./src/utils/AbstractTransformerNamesGroupsBuilder.ts ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \*********************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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; + } + fillWithRange(length, valueFunction) { + const range = []; + for (let i = 0; i < length; i++) { + range.push(valueFunction(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; + } + getLastElement(array) { + var _a; + const arrayLength = array.length; + return (_a = array[arrayLength - 1]) !== null && _a !== void 0 ? _a : undefined; + } + 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 ***! + \*********************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 Base64Alphabet_1 = __webpack_require__(/*! ../constants/Base64Alphabet */ "./src/constants/Base64Alphabet.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.base64Alphabet = Base64Alphabet_1.base64alphabet; + this.randomGenerator = randomGenerator; + } + btoa(string) { + const chars = this.base64Alphabet; + 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/CryptUtilsSwappedAlphabet.ts": +/*!************************************************!*\ + !*** ./src/utils/CryptUtilsSwappedAlphabet.ts ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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.CryptUtilsSwappedAlphabet = 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 Base64AlphabetSwapped_1 = __webpack_require__(/*! ../constants/Base64AlphabetSwapped */ "./src/constants/Base64AlphabetSwapped.ts"); +const CryptUtils_1 = __webpack_require__(/*! ./CryptUtils */ "./src/utils/CryptUtils.ts"); +let CryptUtilsSwappedAlphabet = class CryptUtilsSwappedAlphabet extends CryptUtils_1.CryptUtils { + constructor(randomGenerator) { + super(randomGenerator); + this.base64Alphabet = Base64AlphabetSwapped_1.base64alphabetSwapped; + } +}; +CryptUtilsSwappedAlphabet = __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]) +], CryptUtilsSwappedAlphabet); +exports.CryptUtilsSwappedAlphabet = CryptUtilsSwappedAlphabet; + + +/***/ }), + +/***/ "./src/utils/EscapeSequenceEncoder.ts": +/*!********************************************!*\ + !*** ./src/utils/EscapeSequenceEncoder.ts ***! + \********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 EscapeSequenceEncoder_1; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.EscapeSequenceEncoder = void 0; +const inversify_1 = __webpack_require__(/*! inversify */ "inversify"); +let EscapeSequenceEncoder = EscapeSequenceEncoder_1 = 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'); + let prefix; + let template; + const result = string.replace(replaceRegExp, (character) => { + const shouldEncodeCharacter = encodeAllSymbols + || EscapeSequenceEncoder_1.forceEscapeCharactersRegExp.test(character); + if (!shouldEncodeCharacter) { + return character; + } + if (EscapeSequenceEncoder_1.ASCIICharactersRegExp.test(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.ASCIICharactersRegExp = /[\x00-\x7F]/; +EscapeSequenceEncoder.forceEscapeCharactersRegExp = /[\x00-\x1F\x7F-\x9F'"\\\s]/; +EscapeSequenceEncoder = EscapeSequenceEncoder_1 = __decorate([ + inversify_1.injectable() +], EscapeSequenceEncoder); +exports.EscapeSequenceEncoder = EscapeSequenceEncoder; + + +/***/ }), + +/***/ "./src/utils/LevelledTopologicalSorter.ts": +/*!************************************************!*\ + !*** ./src/utils/LevelledTopologicalSorter.ts ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 ***! + \**********************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +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; + } + static isPositive(number) { + if (isNaN(number)) { + throw new Error('Given value is NaN'); + } + if (number > 0) { + return true; + } + if (number < 0) { + return false; + } + if (1 / number === Number.POSITIVE_INFINITY) { + return true; + } + return false; + } + static isUnsafeNumber(number) { + if (isNaN(number)) { + throw new Error('Given value is NaN'); + } + return number < Number.MIN_SAFE_INTEGER || number > Number.MAX_SAFE_INTEGER; + } + static getFactors(number) { + if (number === 0) { + throw new Error('Invalid number. Allowed only non-zero number'); + } + number = Math.abs(number); + if (number === 1) { + return [-number, number]; + } + const factors = []; + const root = Math.sqrt(number); + const isEven = number % 2 === 0; + const incrementValue = isEven ? 1 : 2; + for (let currentFactor = 1; currentFactor <= root; currentFactor += incrementValue) { + if (number % currentFactor !== 0) { + continue; + } + factors.push(...[-currentFactor, currentFactor]); + const compliment = number / currentFactor; + if (compliment !== currentFactor) { + factors.push(...[-compliment, compliment]); + } + } + return factors.sort((a, b) => a - b); + } +} +exports.NumberUtils = NumberUtils; + + +/***/ }), + +/***/ "./src/utils/RandomGenerator.ts": +/*!**************************************!*\ + !*** ./src/utils/RandomGenerator.ts ***! + \**************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +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 + }); + } + getRandomIntegerExcluding(min, max, valuesToExclude) { + const valuesToPickArray = []; + for (let value = min; value <= max; value++) { + if (valuesToExclude.includes(value)) { + continue; + } + valuesToPickArray.push(value); + } + return this.randomGenerator.pickone(valuesToPickArray); + } + 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/StringUtils.ts": +/*!**********************************!*\ + !*** ./src/utils/StringUtils.ts ***! + \**********************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringUtils = void 0; +const js_string_escape_1 = __importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape")); +class StringUtils { + static escapeJsString(string) { + return js_string_escape_1.default(string); + } +} +exports.StringUtils = StringUtils; + + +/***/ }), + +/***/ "./src/utils/Utils.ts": +/*!****************************!*\ + !*** ./src/utils/Utils.ts ***! + \****************************/ +/***/ ((__unused_webpack_module, exports) => { + + +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}`; + } + static makeEnum(enumLikeObject) { + return Object.freeze(Object.assign({}, enumLikeObject)); + } +} +exports.Utils = Utils; +Utils.baseMultipleSourcesIdentifiersPrefix = 'a'; +Utils.hexadecimalPrefix = '0x'; + + +/***/ }), + +/***/ "./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json": +/*!**************************************************************************************************!*\ + !*** ./src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json ***! + \**************************************************************************************************/ +/***/ ((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\"]"); + +/***/ }), + +/***/ "@javascript-obfuscator/escodegen": +/*!***************************************************!*\ + !*** external "@javascript-obfuscator/escodegen" ***! + \***************************************************/ +/***/ ((module) => { + +module.exports = require("@javascript-obfuscator/escodegen");; + +/***/ }), + +/***/ "acorn": +/*!************************!*\ + !*** external "acorn" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("acorn");; + +/***/ }), + +/***/ "chalk": +/*!************************!*\ + !*** external "chalk" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("chalk");; + +/***/ }), + +/***/ "chance": +/*!*************************!*\ + !*** external "chance" ***! + \*************************/ +/***/ ((module) => { + +module.exports = require("chance");; + +/***/ }), + +/***/ "class-validator": +/*!**********************************!*\ + !*** external "class-validator" ***! + \**********************************/ +/***/ ((module) => { + +module.exports = require("class-validator");; + +/***/ }), + +/***/ "eslint-scope": +/*!*******************************!*\ + !*** external "eslint-scope" ***! + \*******************************/ +/***/ ((module) => { + +module.exports = require("eslint-scope");; + +/***/ }), + +/***/ "estraverse": +/*!*****************************!*\ + !*** external "estraverse" ***! + \*****************************/ +/***/ ((module) => { + +module.exports = require("estraverse");; + +/***/ }), + +/***/ "fast-deep-equal": +/*!**********************************!*\ + !*** external "fast-deep-equal" ***! + \**********************************/ +/***/ ((module) => { + +module.exports = require("fast-deep-equal");; + +/***/ }), + +/***/ "inversify": +/*!****************************!*\ + !*** external "inversify" ***! + \****************************/ +/***/ ((module) => { + +module.exports = require("inversify");; + +/***/ }), + +/***/ "js-string-escape": +/*!***********************************!*\ + !*** external "js-string-escape" ***! + \***********************************/ +/***/ ((module) => { + +module.exports = require("js-string-escape");; + +/***/ }), + +/***/ "md5": +/*!**********************!*\ + !*** external "md5" ***! + \**********************/ +/***/ ((module) => { + +module.exports = require("md5");; + +/***/ }), + +/***/ "reflect-metadata": +/*!***********************************!*\ + !*** external "reflect-metadata" ***! + \***********************************/ +/***/ ((module) => { + +module.exports = require("reflect-metadata");; + +/***/ }), + +/***/ "string-template": +/*!**********************************!*\ + !*** external "string-template" ***! + \**********************************/ +/***/ ((module) => { + +module.exports = require("string-template");; + +/***/ }), + +/***/ "stringz": +/*!**************************!*\ + !*** external "stringz" ***! + \**************************/ +/***/ ((module) => { + +module.exports = require("stringz");; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ if(__webpack_module_cache__[moduleId]) { +/******/ return __webpack_module_cache__[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ // module exports must be returned from runtime so entry inlining is disabled +/******/ // startup +/******/ // Load entry module and return exports +/******/ return __webpack_require__("./index.ts"); +/******/ })() +; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/src/JavaScriptObfuscator.ts b/src/JavaScriptObfuscator.ts index 14f8908cb..9d463091e 100644 --- a/src/JavaScriptObfuscator.ts +++ b/src/JavaScriptObfuscator.ts @@ -88,6 +88,7 @@ export class JavaScriptObfuscator implements IJavaScriptObfuscator { NodeTransformer.ParentificationTransformer, NodeTransformer.ScopeIdentifiersTransformer, NodeTransformer.SplitStringTransformer, + NodeTransformer.StringArrayRotateFunctionTransformer, NodeTransformer.StringArrayScopeCallsWrapperTransformer, NodeTransformer.StringArrayTransformer, NodeTransformer.TemplateLiteralTransformer, diff --git a/src/container/modules/node-transformers/StringArrayTransformersModule.ts b/src/container/modules/node-transformers/StringArrayTransformersModule.ts index b8455cefd..2ab43e489 100644 --- a/src/container/modules/node-transformers/StringArrayTransformersModule.ts +++ b/src/container/modules/node-transformers/StringArrayTransformersModule.ts @@ -5,11 +5,16 @@ import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTra import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer'; +import { StringArrayRotateFunctionTransformer } from '../../../node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer'; import { StringArrayScopeCallsWrapperTransformer } from '../../../node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer'; import { StringArrayTransformer } from '../../../node-transformers/string-array-transformers/StringArrayTransformer'; export const stringArrayTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => { // strings transformers + bind(ServiceIdentifiers.INodeTransformer) + .to(StringArrayRotateFunctionTransformer) + .whenTargetNamed(NodeTransformer.StringArrayRotateFunctionTransformer); + bind(ServiceIdentifiers.INodeTransformer) .to(StringArrayScopeCallsWrapperTransformer) .whenTargetNamed(NodeTransformer.StringArrayScopeCallsWrapperTransformer); diff --git a/src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts b/src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts index 44b20d005..48c544577 100644 --- a/src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts +++ b/src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts @@ -25,6 +25,7 @@ export class StringArrayCallsWrapperBase64CodeHelper extends StringArrayCallsWra atobPolyfill, atobFunctionName, selfDefendingCode, + stringArrayName: this.stringArrayName, stringArrayCallsWrapperName: this.stringArrayCallsWrapperName } ); diff --git a/src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts b/src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts index 88a91d252..21800d624 100644 --- a/src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts +++ b/src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts @@ -29,6 +29,7 @@ export class StringArrayCallsWrapperRc4CodeHelper extends StringArrayCallsWrappe atobPolyfill, rc4Polyfill, selfDefendingCode, + stringArrayName: this.stringArrayName, stringArrayCallsWrapperName: this.stringArrayCallsWrapperName } ); diff --git a/src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts b/src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts index b907e2cc4..ebfd2cb3b 100644 --- a/src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts +++ b/src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts @@ -1,3 +1,4 @@ +import type { Expression } from 'estree'; import { inject, injectable, } from 'inversify'; import { ServiceIdentifiers } from '../../container/ServiceIdentifiers'; @@ -6,37 +7,35 @@ import { TStatement } from '../../types/node/TStatement'; import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter'; import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator'; -import { IEscapeSequenceEncoder } from '../../interfaces/utils/IEscapeSequenceEncoder'; import { IOptions } from '../../interfaces/options/IOptions'; import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator'; import { initializable } from '../../decorators/Initializable'; -import { SelfDefendingTemplate } from './templates/string-array-rotate-function/SelfDefendingTemplate'; import { StringArrayRotateFunctionTemplate } from './templates/string-array-rotate-function/StringArrayRotateFunctionTemplate'; import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper'; import { NodeUtils } from '../../node/NodeUtils'; -import { NumberUtils } from '../../utils/NumberUtils'; @injectable() export class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper { /** - * @type {string} + * @type {number} */ @initializable() - private stringArrayName!: string; + private comparisonValue!: number; /** - * @param {number} + * @type {Expression} */ @initializable() - private stringArrayRotationAmount!: number; + private comparisonExpressionNode!: Expression; /** - * @type {IEscapeSequenceEncoder} + * @type {string} */ - private readonly escapeSequenceEncoder: IEscapeSequenceEncoder; + @initializable() + private stringArrayName!: string; /** * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory @@ -44,7 +43,6 @@ export class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelpe * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator * @param {IRandomGenerator} randomGenerator * @param {IOptions} options - * @param {IEscapeSequenceEncoder} escapeSequenceEncoder */ public constructor ( @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator) @@ -52,8 +50,7 @@ export class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelpe @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter, @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator, @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator, - @inject(ServiceIdentifiers.IOptions) options: IOptions, - @inject(ServiceIdentifiers.IEscapeSequenceEncoder) escapeSequenceEncoder: IEscapeSequenceEncoder + @inject(ServiceIdentifiers.IOptions) options: IOptions ) { super( identifierNamesGeneratorFactory, @@ -62,20 +59,21 @@ export class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelpe randomGenerator, options ); - - this.escapeSequenceEncoder = escapeSequenceEncoder; } /** * @param {string} stringArrayName - * @param {number} stringArrayRotationAmount + * @param {number} comparisonValue + * @param {Expression} comparisonExpressionNode */ public initialize ( stringArrayName: string, - stringArrayRotationAmount: number + comparisonValue: number, + comparisonExpressionNode: Expression ): void { this.stringArrayName = stringArrayName; - this.stringArrayRotationAmount = stringArrayRotationAmount; + this.comparisonValue = comparisonValue; + this.comparisonExpressionNode = comparisonExpressionNode; } /** @@ -90,31 +88,14 @@ export class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelpe * @returns {string} */ protected getCodeHelperTemplate (): string { - const timesName: string = this.identifierNamesGenerator.generateNext(); - const whileFunctionName: string = this.identifierNamesGenerator.generateNext(); - const preservedNames: string[] = [`^${this.stringArrayName}$`]; - - let code: string = ''; - - if (this.options.selfDefending) { - code = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate(this.escapeSequenceEncoder), { - timesName, - whileFunctionName - }); - } else { - code = `${whileFunctionName}(++${timesName})`; - } + const comparisonExpressionCode: string = NodeUtils.convertStructureToCode([this.comparisonExpressionNode]); - return this.customCodeHelperObfuscator.obfuscateTemplate( - this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate(), { - code, - timesName, - whileFunctionName, - stringArrayName: this.stringArrayName, - stringArrayRotationAmount: NumberUtils.toHex(this.stringArrayRotationAmount) - }), + return this.customCodeHelperFormatter.formatTemplate( + StringArrayRotateFunctionTemplate(), { - reservedNames: preservedNames + comparisonExpressionCode, + comparisonValue: this.comparisonValue, + stringArrayName: this.stringArrayName } ); } diff --git a/src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts b/src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts index 755cf8717..7249e9fab 100644 --- a/src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts +++ b/src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts @@ -22,7 +22,6 @@ import { AbstractCustomCodeHelperGroup } from '../../AbstractCustomCodeHelperGro import { NodeAppender } from '../../../node/NodeAppender'; import { StringArrayCallsWrapperCodeHelper } from '../StringArrayCallsWrapperCodeHelper'; import { StringArrayCodeHelper } from '../StringArrayCodeHelper'; -import { StringArrayRotateFunctionCodeHelper } from '../StringArrayRotateFunctionCodeHelper'; @injectable() export class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup { @@ -102,14 +101,6 @@ export class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup { } ); } - - // stringArrayRotateFunction helper nodes append - this.appendCustomNodeIfExist( - CustomCodeHelper.StringArrayRotateFunction, - (customCodeHelper: ICustomCodeHelper>) => { - NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1); - } - ); } public initialize (): void { @@ -133,7 +124,6 @@ export class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup { const stringArrayCallsWrapperCodeHelper: ICustomCodeHelper> = this.customCodeHelperFactory(stringArrayCallsWrapperCodeHelperName); const stringArrayCallsWrapperName: string = this.stringArrayStorage.getStorageCallsWrapperName(stringArrayEncoding); - stringArrayCallsWrapperCodeHelper.initialize( stringArrayName, stringArrayCallsWrapperName, @@ -142,19 +132,6 @@ export class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup { this.customCodeHelpers.set(stringArrayCallsWrapperCodeHelperName, stringArrayCallsWrapperCodeHelper); } - - // stringArrayRotateFunction helper initialize - const stringArrayRotateFunctionCodeHelper: ICustomCodeHelper> = - this.customCodeHelperFactory(CustomCodeHelper.StringArrayRotateFunction); - - stringArrayRotateFunctionCodeHelper.initialize( - stringArrayName, - this.stringArrayStorage.getRotationAmount() - ); - - if (this.options.rotateStringArray) { - this.customCodeHelpers.set(CustomCodeHelper.StringArrayRotateFunction, stringArrayRotateFunctionCodeHelper); - } } /** diff --git a/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts b/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts index 1ad7ebafd..f59e30dca 100644 --- a/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts +++ b/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts @@ -33,9 +33,10 @@ export function StringArrayBase64DecodeTemplate ( {stringArrayCallsWrapperName}.${initializedIdentifier} = true; } + const ignoreCache = {stringArrayName}[-1]; const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; - if (cachedValue === undefined) { + if (ignoreCache || cachedValue === undefined) { {selfDefendingCode} value = {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier}(value); diff --git a/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts b/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts index 092a3963a..75fe1005f 100644 --- a/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts +++ b/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts @@ -13,7 +13,7 @@ export function StringArrayRC4DecodeTemplate ( const rc4Identifier: string = randomGenerator.getRandomString(identifierLength); const dataIdentifier: string = randomGenerator.getRandomString(identifierLength); const onceIdentifier: string = randomGenerator.getRandomString(identifierLength); - + return ` if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) { {atobPolyfill} @@ -26,9 +26,10 @@ export function StringArrayRC4DecodeTemplate ( {stringArrayCallsWrapperName}.${initializedIdentifier} = true; } + const ignoreCache = {stringArrayName}[-1]; const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index]; - if (cachedValue === undefined) { + if (ignoreCache || cachedValue === undefined) { if ({stringArrayCallsWrapperName}.${onceIdentifier} === undefined) { {selfDefendingCode} diff --git a/src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts b/src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts deleted file mode 100644 index 72f16bffd..000000000 --- a/src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { IEscapeSequenceEncoder } from '../../../../interfaces/utils/IEscapeSequenceEncoder'; - -/** - * SelfDefendingTemplate. Enter code in infinity loop. - * - * @param {IEscapeSequenceEncoder} escapeSequenceEncoder - * @returns {string} - */ -export function SelfDefendingTemplate (escapeSequenceEncoder: IEscapeSequenceEncoder): string { - 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(); - `; -} diff --git a/src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts b/src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts index af55db681..0598681cf 100644 --- a/src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts +++ b/src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts @@ -3,14 +3,23 @@ */ export function StringArrayRotateFunctionTemplate (): string { return ` - (function (array, {timesName}) { - const {whileFunctionName} = function (times) { - while (--times) { + (function (array, comparisonValue) { + array[-1] = true; + + while (true) { + try { + const expression = {comparisonExpressionCode}; + + if (expression === comparisonValue) { + array[-1] = false; + break; + } else { + array['push'](array['shift']()); + } + } catch (e) { array['push'](array['shift']()); } - }; - - {code} - })({stringArrayName}, {stringArrayRotationAmount}); + } + })({stringArrayName}, {comparisonValue}); `; } diff --git a/src/enums/node-transformers/NodeTransformer.ts b/src/enums/node-transformers/NodeTransformer.ts index 4177acd0e..fed3b1c88 100644 --- a/src/enums/node-transformers/NodeTransformer.ts +++ b/src/enums/node-transformers/NodeTransformer.ts @@ -27,6 +27,7 @@ export enum NodeTransformer { ScopeThroughIdentifiersTransformer = 'ScopeThroughIdentifiersTransformer', SplitStringTransformer = 'SplitStringTransformer', StringArrayTransformer = 'StringArrayTransformer', + StringArrayRotateFunctionTransformer = 'StringArrayRotateFunctionTransformer', StringArrayScopeCallsWrapperTransformer = 'StringArrayScopeCallsWrapperTransformer', TemplateLiteralTransformer = 'TemplateLiteralTransformer', VariableDeclarationsMergeTransformer = 'VariableDeclarationsMergeTransformer', diff --git a/src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts b/src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts index 6e5c170e3..06ffc0c55 100644 --- a/src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts +++ b/src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts @@ -15,7 +15,7 @@ import { NodeTransformationStage } from '../../enums/node-transformers/NodeTrans import { AbstractNodeTransformer } from '../AbstractNodeTransformer'; import { NodeGuards } from '../../node/NodeGuards'; import { NodeFactory } from '../../node/NodeFactory'; -import { NumberUtils } from '../../utils/NumberUtils'; +import { NumericalExpressionDataToNodeConverter } from '../../node/NumericalExpressionDataToNodeConverter'; /** * replaces: @@ -87,89 +87,18 @@ export class NumberToNumericalExpressionTransformer extends AbstractNodeTransfor const numberNumericalExpressionData: TNumberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(literalNode.value); - return this.convertNumericalExpressionDataToNode(numberNumericalExpressionData); - } - - /** - * @param {TNumberNumericalExpressionData} numberNumericalExpressionData - * @param {ESTree.BinaryOperator} operator - * @returns {ESTree.BinaryExpression | ESTree.Literal | ESTree.UnaryExpression} - */ - private convertNumericalExpressionDataToNode ( - numberNumericalExpressionData: TNumberNumericalExpressionData, - operator: ESTree.BinaryOperator = '+' - ): ESTree.BinaryExpression | ESTree.Literal | ESTree.UnaryExpression { - const numberNumericalExpressionDataLength: number = numberNumericalExpressionData.length; - - const leftParts: TNumberNumericalExpressionData = numberNumericalExpressionDataLength > 1 - ? numberNumericalExpressionData.slice(0, numberNumericalExpressionDataLength - 1) - : [numberNumericalExpressionData[0]]; - const rightParts: TNumberNumericalExpressionData = numberNumericalExpressionDataLength > 1 - ? numberNumericalExpressionData.slice(-1) - : []; - - // trailing iterations - if (rightParts.length) { - return this.convertPartsToBinaryExpression(operator, leftParts, rightParts); - } - - const firstLeftPartOrNumber: number | number[] | null = leftParts[0] ?? null; - - // last iteration when only single left part is left - return Array.isArray(firstLeftPartOrNumber) - ? this.convertNumericalExpressionDataToNode(firstLeftPartOrNumber, '*') - : this.convertPartOrNumberToLiteralNode(firstLeftPartOrNumber); - } - - /** - * @param {ESTree.BinaryOperator} operator - * @param {TNumberNumericalExpressionData} leftParts - * @param {TNumberNumericalExpressionData} rightParts - * @returns {ESTree.BinaryExpression} - */ - private convertPartsToBinaryExpression ( - operator: ESTree.BinaryOperator, - leftParts: TNumberNumericalExpressionData, - rightParts: TNumberNumericalExpressionData - ): ESTree.BinaryExpression { - const rightPartOrNumber: number | number[] = rightParts[0]; - - if (Array.isArray(rightPartOrNumber)) { - // right part is array with multiply numbers - return NodeFactory.binaryExpressionNode( - operator, - this.convertNumericalExpressionDataToNode(leftParts), - this.convertNumericalExpressionDataToNode(rightPartOrNumber, '*') - ); - } else { - // right part is number - return NodeFactory.binaryExpressionNode( - operator, - this.convertNumericalExpressionDataToNode(leftParts), - this.convertPartOrNumberToLiteralNode(rightPartOrNumber) - ); - } - } - - /** - * @param {number | number[]} partOrNumber - * @returns {ESTree.Literal} - */ - private convertPartOrNumberToLiteralNode ( - partOrNumber: number | number[] - ): ESTree.Literal | ESTree.UnaryExpression { - const number: number = Array.isArray(partOrNumber) - ? partOrNumber[0] - : partOrNumber; - const isPositiveNumber: boolean = NumberUtils.isPositive(number); - - const literalNode: ESTree.Literal = NodeFactory.literalNode(Math.abs(number)); - - return isPositiveNumber - ? literalNode - : NodeFactory.unaryExpressionNode( - '-', - literalNode - ); + return NumericalExpressionDataToNodeConverter.convert( + numberNumericalExpressionData, + (number: number, isPositiveNumber: boolean) => { + const numberLiteralNode: ESTree.Literal = NodeFactory.literalNode(number); + + return isPositiveNumber + ? numberLiteralNode + : NodeFactory.unaryExpressionNode( + '-', + numberLiteralNode + ); + } + ); } } diff --git a/src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts b/src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts new file mode 100644 index 000000000..44679c0ee --- /dev/null +++ b/src/node-transformers/string-array-transformers/StringArrayRotateFunctionTransformer.ts @@ -0,0 +1,205 @@ +import { inject, injectable, } from 'inversify'; +import { ServiceIdentifiers } from '../../container/ServiceIdentifiers'; + +import * as estraverse from 'estraverse'; +import * as ESTree from 'estree'; + +import { TCustomCodeHelperFactory } from '../../types/container/custom-code-helpers/TCustomCodeHelperFactory'; +import { TInitialData } from '../../types/TInitialData'; +import { TNumberNumericalExpressionData } from '../../types/analyzers/number-numerical-expression-analyzer/TNumberNumericalExpressionData'; +import { TStatement } from '../../types/node/TStatement'; + +import { ICustomCodeHelper } from '../../interfaces/custom-code-helpers/ICustomCodeHelper'; +import { INodeTransformersRunner } from '../../interfaces/node-transformers/INodeTransformersRunner'; +import { INumberNumericalExpressionAnalyzer } from '../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer'; +import { IOptions } from '../../interfaces/options/IOptions'; +import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator'; +import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage'; +import { IVisitor } from '../../interfaces/node-transformers/IVisitor'; + +import { CustomCodeHelper } from '../../enums/custom-code-helpers/CustomCodeHelper'; +import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage'; + +import { AbstractNodeTransformer } from '../AbstractNodeTransformer'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeGuards } from '../../node/NodeGuards'; +import { NodeFactory } from '../../node/NodeFactory'; +import { NodeLiteralUtils } from '../../node/NodeLiteralUtils'; +import { NodeMetadata } from '../../node/NodeMetadata'; +import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer'; +import { NodeUtils } from '../../node/NodeUtils'; +import { NumericalExpressionDataToNodeConverter } from '../../node/NumericalExpressionDataToNodeConverter'; +import { StringArrayRotateFunctionCodeHelper } from '../../custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper'; + +@injectable() +export class StringArrayRotateFunctionTransformer extends AbstractNodeTransformer { + /** + * @type {NodeTransformer[]} + */ + private static readonly stringArrayRotateFunctionTransformers: NodeTransformer[] = [ + NodeTransformer.BooleanLiteralTransformer, + NodeTransformer.MemberExpressionTransformer, + NodeTransformer.NumberLiteralTransformer, + NodeTransformer.NumberToNumericalExpressionTransformer, + NodeTransformer.ParentificationTransformer, + NodeTransformer.ScopeIdentifiersTransformer + ]; + + /** + * @type {INumberNumericalExpressionAnalyzer} + */ + private readonly numberNumericalExpressionAnalyzer: INumberNumericalExpressionAnalyzer; + + /** + * @type {IStringArrayStorage} + */ + private readonly stringArrayStorage: IStringArrayStorage; + + /** + * @type {TCustomCodeHelperFactory} + */ + private readonly customCodeHelperFactory: TCustomCodeHelperFactory; + + /** + * @type {INodeTransformersRunner} + */ + private readonly transformersRunner: INodeTransformersRunner; + + /** + * @param {IRandomGenerator} randomGenerator + * @param {IOptions} options + * @param {INodeTransformersRunner} transformersRunner + * @param {IStringArrayStorage} stringArrayStorage + * @param {TCustomCodeHelperFactory} customCodeHelperFactory + * @param {INumberNumericalExpressionAnalyzer} numberNumericalExpressionAnalyzer + */ + public constructor ( + @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator, + @inject(ServiceIdentifiers.IOptions) options: IOptions, + @inject(ServiceIdentifiers.INodeTransformersRunner) transformersRunner: INodeTransformersRunner, + @inject(ServiceIdentifiers.IStringArrayStorage) stringArrayStorage: IStringArrayStorage, + @inject(ServiceIdentifiers.Factory__ICustomCodeHelper) customCodeHelperFactory: TCustomCodeHelperFactory, + @inject(ServiceIdentifiers.INumberNumericalExpressionAnalyzer) + numberNumericalExpressionAnalyzer: INumberNumericalExpressionAnalyzer + ) { + super(randomGenerator, options); + + this.stringArrayStorage = stringArrayStorage; + this.transformersRunner = transformersRunner; + this.customCodeHelperFactory = customCodeHelperFactory; + this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer; + } + + /** + * @param {NodeTransformationStage} nodeTransformationStage + * @returns {IVisitor | null} + */ + public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null { + if (!this.options.rotateStringArray) { + return null; + } + + switch (nodeTransformationStage) { + case NodeTransformationStage.StringArray: + return { + enter: (node: ESTree.Node): ESTree.Node | undefined => { + if (NodeGuards.isProgramNode(node)) { + this.transformNode(node); + } + + return node; + } + }; + + default: + return null; + } + } + + /** + * @param {Program} programNode + * @returns {Node} + */ + public transformNode (programNode: ESTree.Program): ESTree.Node { + const stringArrayRotateFunctionNode: TStatement = this.getStringArrayRotateFunctionNode(); + const wrappedStringArrayRotateFunctionNode: ESTree.Program = NodeFactory.programNode([ + stringArrayRotateFunctionNode + ]); + + NodeUtils.parentizeAst(wrappedStringArrayRotateFunctionNode); + + const transformationStages: NodeTransformationStage[] = [ + NodeTransformationStage.Preparing, + NodeTransformationStage.Converting, + NodeTransformationStage.RenameIdentifiers, + NodeTransformationStage.Finalizing + ]; + + // custom transformation of string array rotate function node + for (const transformationStage of transformationStages) { + this.transformersRunner.transform( + wrappedStringArrayRotateFunctionNode, + StringArrayRotateFunctionTransformer.stringArrayRotateFunctionTransformers, + transformationStage + ); + } + + // mark all child nodes (except literals inside comparison expression) + // as ignored to prevent additional transformation of these nodes + estraverse.traverse(wrappedStringArrayRotateFunctionNode, { + enter: (node: ESTree.Node): void => { + if ( + NodeGuards.isLiteralNode(node) + && NodeLiteralUtils.isStringLiteralNode(node) + && !/\d/.test(node.value) + ) { + NodeMetadata.set(node, {ignoredNode: true}); + } + } + }); + + NodeAppender.prepend(programNode, [stringArrayRotateFunctionNode]); + NodeUtils.parentizeNode(stringArrayRotateFunctionNode, programNode); + + return programNode; + } + + /** + * @returns {TStatement} + */ + private getStringArrayRotateFunctionNode (): TStatement { + const comparisonValue: number = this.randomGenerator.getRandomInteger(100000, 1_000_000); + const comparisonExpressionNumberNumericalExpressionData: TNumberNumericalExpressionData = + this.numberNumericalExpressionAnalyzer.analyze(comparisonValue); + + const comparisonExpressionNode: ESTree.Expression = NumericalExpressionDataToNodeConverter.convert( + comparisonExpressionNumberNumericalExpressionData, + ((number: number, isPositiveNumber) => { + const literalNode: ESTree.Literal = NodeFactory.literalNode(number.toString()); + + return NodeFactory.callExpressionNode( + NodeFactory.identifierNode('parseInt'), + [ + isPositiveNumber + ? literalNode + : NodeFactory.unaryExpressionNode( + '-', + literalNode + ) + ] + ); + }) + ); + + const stringArrayRotateFunctionCodeHelper: ICustomCodeHelper> = + this.customCodeHelperFactory(CustomCodeHelper.StringArrayRotateFunction); + + stringArrayRotateFunctionCodeHelper.initialize( + this.stringArrayStorage.getStorageName(), + comparisonValue, + comparisonExpressionNode + ); + + return stringArrayRotateFunctionCodeHelper.getNode()[0]; + } +} diff --git a/src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts b/src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts index 662b19f47..de539ac19 100644 --- a/src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts +++ b/src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts @@ -22,6 +22,7 @@ import { IStringArrayStorage } from '../../interfaces/storages/string-array-tran import { IVisitedLexicalScopeNodesStackStorage } from '../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage'; import { IVisitor } from '../../interfaces/node-transformers/IVisitor'; +import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer'; import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage'; import { StringArrayCustomNode } from '../../enums/custom-nodes/StringArrayCustomNode'; import { StringArrayWrappersType } from '../../enums/node-transformers/string-array-transformers/StringArrayWrappersType'; @@ -34,6 +35,13 @@ import { StringArrayScopeCallsWrapperVariableNode } from '../../custom-nodes/str @injectable() export class StringArrayScopeCallsWrapperTransformer extends AbstractNodeTransformer { + /** + * @type {NodeTransformer[]} + */ + public readonly runAfter: NodeTransformer[] = [ + NodeTransformer.StringArrayRotateFunctionTransformer + ]; + /** * @type {IStringArrayStorage} */ diff --git a/src/node-transformers/string-array-transformers/StringArrayTransformer.ts b/src/node-transformers/string-array-transformers/StringArrayTransformer.ts index 6035df071..c3ef5b830 100644 --- a/src/node-transformers/string-array-transformers/StringArrayTransformer.ts +++ b/src/node-transformers/string-array-transformers/StringArrayTransformer.ts @@ -26,6 +26,7 @@ import { IStringArrayStorageItemData } from '../../interfaces/storages/string-ar import { IVisitedLexicalScopeNodesStackStorage } from '../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage'; import { IVisitor } from '../../interfaces/node-transformers/IVisitor'; +import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer'; import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage'; import { StringArrayCustomNode } from '../../enums/custom-nodes/StringArrayCustomNode'; import { StringArrayWrappersType } from '../../enums/node-transformers/string-array-transformers/StringArrayWrappersType'; @@ -49,6 +50,13 @@ export class StringArrayTransformer extends AbstractNodeTransformer { */ private static readonly maxShiftedIndexValue: number = 1000; + /** + * @type {NodeTransformer[]} + */ + public readonly runAfter: NodeTransformer[] = [ + NodeTransformer.StringArrayRotateFunctionTransformer + ]; + /** * @type {IIdentifierNamesGenerator} @@ -158,7 +166,9 @@ export class StringArrayTransformer extends AbstractNodeTransformer { * @param {Program} programNode */ public prepareNode (programNode: ESTree.Program): void { - this.stringArrayStorageAnalyzer.analyze(programNode); + if (this.options.stringArray) { + this.stringArrayStorageAnalyzer.analyze(programNode); + } if (this.options.shuffleStringArray) { this.stringArrayStorage.shuffleStorage(); diff --git a/src/node/NodeFactory.ts b/src/node/NodeFactory.ts index 88a256c23..5c9d25c31 100644 --- a/src/node/NodeFactory.ts +++ b/src/node/NodeFactory.ts @@ -137,6 +137,23 @@ export class NodeFactory { }; } + /** + * @param {Pattern | null} param + * @param {BlockStatement} body + * @returns {CatchClause} + */ + public static catchClauseNode ( + param: ESTree.Pattern | null, + body: ESTree.BlockStatement + ): ESTree.CatchClause { + return { + type: NodeType.CatchClause, + param, + body, + metadata: { ignoredNode: false } + }; + } + /** * @param {ESTree.Expression} test * @param {ESTree.Expression} consequent @@ -539,6 +556,26 @@ export class NodeFactory { }; } + /** + * @param {BlockStatement} block + * @param {CatchClause | null} handler + * @param {BlockStatement | null} finalizer + * @returns {TryStatement} + */ + public static tryStatement ( + block: ESTree.BlockStatement, + handler?: ESTree.CatchClause | null, + finalizer?: ESTree.BlockStatement | null + ): ESTree.TryStatement { + return { + type: NodeType.TryStatement, + block, + handler, + finalizer, + metadata: { ignoredNode: false } + }; + } + /** * @param {VariableDeclarator[]} declarations * @param {string} kind diff --git a/src/node/NumericalExpressionDataToNodeConverter.ts b/src/node/NumericalExpressionDataToNodeConverter.ts new file mode 100644 index 000000000..375f25f4c --- /dev/null +++ b/src/node/NumericalExpressionDataToNodeConverter.ts @@ -0,0 +1,131 @@ +import * as ESTree from 'estree'; + +import { TNumericalExpressionDataToNodeConverterLiteralNodeGetter } from '../types/node/TNumericalExpressionDataToNodeConverterLiteralNodeGetter'; +import { TNumberNumericalExpressionData } from '../types/analyzers/number-numerical-expression-analyzer/TNumberNumericalExpressionData'; + +import { NodeFactory } from './NodeFactory'; +import { NumberUtils } from '../utils/NumberUtils'; + +/** + * Converts NumberNumericalExpressionData to node + */ +export class NumericalExpressionDataToNodeConverter { + /** + * @param {TNumberNumericalExpressionData} numberNumericalExpressionData + * @param {TNumericalExpressionDataToNodeConverterLiteralNodeGetter} literalNodeGetter + * @returns {Expression} + */ + public static convert ( + numberNumericalExpressionData: TNumberNumericalExpressionData, + literalNodeGetter: TNumericalExpressionDataToNodeConverterLiteralNodeGetter + ): ESTree.Expression { + return NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode( + numberNumericalExpressionData, + literalNodeGetter + ); + } + + /** + * @param {TNumberNumericalExpressionData} numberNumericalExpressionData + * @param {TNumericalExpressionDataToNodeConverterLiteralNodeGetter} literalNodeGetter + * @param {BinaryOperator} operator + * @returns {Expression} + */ + private static convertNumericalExpressionDataToNode ( + numberNumericalExpressionData: TNumberNumericalExpressionData, + literalNodeGetter: TNumericalExpressionDataToNodeConverterLiteralNodeGetter, + operator: ESTree.BinaryOperator = '+' + ): ESTree.Expression { + const numberNumericalExpressionDataLength: number = numberNumericalExpressionData.length; + + const leftParts: TNumberNumericalExpressionData = numberNumericalExpressionDataLength > 1 + ? numberNumericalExpressionData.slice(0, numberNumericalExpressionDataLength - 1) + : [numberNumericalExpressionData[0]]; + const rightParts: TNumberNumericalExpressionData = numberNumericalExpressionDataLength > 1 + ? numberNumericalExpressionData.slice(-1) + : []; + + // trailing iterations + if (rightParts.length) { + return NumericalExpressionDataToNodeConverter + .convertPartsToBinaryExpression(operator, leftParts, rightParts, literalNodeGetter); + } + + const firstLeftPartOrNumber: number | number[] | null = leftParts[0] ?? null; + + // last iteration when only single left part is left + return Array.isArray(firstLeftPartOrNumber) + ? NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode( + firstLeftPartOrNumber, + literalNodeGetter, + '*' + ) + : NumericalExpressionDataToNodeConverter.convertPartOrNumberToLiteralNode( + firstLeftPartOrNumber, + literalNodeGetter + ); + } + + /** + * @param {BinaryOperator} operator + * @param {TNumberNumericalExpressionData} leftParts + * @param {TNumberNumericalExpressionData} rightParts + * @param {TNumericalExpressionDataToNodeConverterLiteralNodeGetter} literalNodeGetter + * @returns {BinaryExpression} + */ + private static convertPartsToBinaryExpression ( + operator: ESTree.BinaryOperator, + leftParts: TNumberNumericalExpressionData, + rightParts: TNumberNumericalExpressionData, + literalNodeGetter: TNumericalExpressionDataToNodeConverterLiteralNodeGetter + ): ESTree.BinaryExpression { + const rightPartOrNumber: number | number[] = rightParts[0]; + + if (Array.isArray(rightPartOrNumber)) { + // right part is array with multiply numbers + return NodeFactory.binaryExpressionNode( + operator, + NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode( + leftParts, + literalNodeGetter + ), + NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode( + rightPartOrNumber, + literalNodeGetter, + '*' + ) + ); + } else { + // right part is number + return NodeFactory.binaryExpressionNode( + operator, + NumericalExpressionDataToNodeConverter.convertNumericalExpressionDataToNode( + leftParts, + literalNodeGetter + ), + this.convertPartOrNumberToLiteralNode( + rightPartOrNumber, + literalNodeGetter + ) + ); + } + } + + /** + * @param {number | number[]} partOrNumber + * @param {TNumericalExpressionDataToNodeConverterLiteralNodeGetter} literalNodeGetter + * @returns {Expression} + */ + private static convertPartOrNumberToLiteralNode ( + partOrNumber: number | number[], + literalNodeGetter: TNumericalExpressionDataToNodeConverterLiteralNodeGetter + ): ESTree.Expression { + const number: number = Array.isArray(partOrNumber) + ? partOrNumber[0] + : partOrNumber; + const isPositiveNumber: boolean = NumberUtils.isPositive(number); + const absoluteNumber: number = Math.abs(number); + + return literalNodeGetter(absoluteNumber, isPositiveNumber); + } +} diff --git a/src/options/Options.ts b/src/options/Options.ts index 582d1dcf9..0836cb928 100644 --- a/src/options/Options.ts +++ b/src/options/Options.ts @@ -299,7 +299,7 @@ export class Options implements IOptions { */ @IsNumber() @ValidateIf((options: IOptions) => Boolean(options.splitStrings)) - @Min(1) + @Min(3) public readonly splitStringsChunkLength!: number; /** diff --git a/src/types/node/TNumericalExpressionDataToNodeConverterLiteralNodeGetter.ts b/src/types/node/TNumericalExpressionDataToNodeConverterLiteralNodeGetter.ts new file mode 100644 index 000000000..8ce0808af --- /dev/null +++ b/src/types/node/TNumericalExpressionDataToNodeConverterLiteralNodeGetter.ts @@ -0,0 +1,6 @@ +import * as ESTree from 'estree'; + +export type TNumericalExpressionDataToNodeConverterLiteralNodeGetter = ( + number: number, + isPositiveNumber: boolean +) => ESTree.Expression; diff --git a/test/dev/dev.ts b/test/dev/dev.ts index e9c0c02a3..970895bc4 100644 --- a/test/dev/dev.ts +++ b/test/dev/dev.ts @@ -1,23 +1,86 @@ 'use strict'; import { NO_ADDITIONAL_NODES_PRESET } from '../../src/options/presets/NoCustomNodes'; +import { StringArrayEncoding } from '../../src/enums/node-transformers/string-array-transformers/StringArrayEncoding'; +import { StringArrayIndexesType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayIndexesType'; +import { StringArrayWrappersType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayWrappersType'; (function () { const JavaScriptObfuscator: any = require('../../index'); let obfuscatedCode: string = JavaScriptObfuscator.obfuscate( ` - function hi() { - console.log("Hello World!"); - } - hi(); + (function(){ + var variable1 = '5' - 3; + var variable2 = '5' + 3; + var variable3 = '5' + - '2'; + var variable4 = ['10','10','10','10','10'].map(parseInt); + var variable5 = 'foo ' + 1 + 1; + console.log(variable1); + console.log(variable2); + console.log(variable3); + console.log(variable4); + console.log(variable5); + })(); + + (function(){ + if (true) { + var foo = function () { + console.log('abc'); + console.log('cde'); + console.log('efg'); + console.log('hij'); + }; + + var bar = function () { + console.log('klm'); + console.log('nop'); + console.log('qrs'); + }; + + var baz = function () { + console.log('tuv'); + console.log('wxy'); + console.log('z'); + }; + + foo(); + bar(); + baz(); + } + })(); `, { ...NO_ADDITIONAL_NODES_PRESET, compact: false, + controlFlowFlattening: true, + controlFlowFlatteningThreshold: 1, + deadCodeInjection: true, + deadCodeInjectionThreshold: 1, + numbersToExpressions: true, + simplify: true, + renameProperties: true, + rotateStringArray: true, + splitStrings: true, + splitStringsChunkLength: 3, stringArray: true, + stringArrayEncoding: [ + StringArrayEncoding.None, + StringArrayEncoding.Base64, + StringArrayEncoding.Rc4 + ], + stringArrayIndexesType: [ + StringArrayIndexesType.HexadecimalNumber, + StringArrayIndexesType.HexadecimalNumericString + ], + stringArrayIndexShift: true, + stringArrayWrappersChainedCalls: true, + stringArrayWrappersCount: 5, + stringArrayWrappersParametersMaxCount: 5, + stringArrayWrappersType: StringArrayWrappersType.Function, stringArrayThreshold: 1, - rotateStringArray: true + transformObjectKeys: true, + unicodeEscapeSequence: true } ).getObfuscatedCode(); diff --git a/test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts b/test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts index 4908054c1..26bdebb37 100644 --- a/test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts +++ b/test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts @@ -4,8 +4,6 @@ import { TInputOptions } from '../../src/types/options/TInputOptions'; import { IdentifierNamesGenerator } from '../../src/enums/generators/identifier-names-generators/IdentifierNamesGenerator'; import { StringArrayEncoding } from '../../src/enums/node-transformers/string-array-transformers/StringArrayEncoding'; -import { StringArrayIndexesType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayIndexesType'; -import { StringArrayWrappersType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayWrappersType'; import { evaluateInWorker } from '../helpers/evaluateInWorker'; import { readFileAsString } from '../helpers/readFileAsString'; @@ -20,38 +18,28 @@ const getEnvironmentCode = () => ` describe('JavaScriptObfuscator runtime eval', function () { const baseOptions: TInputOptions = { - controlFlowFlattening: true, - controlFlowFlatteningThreshold: 1, + compact: false, deadCodeInjection: true, deadCodeInjectionThreshold: 1, - debugProtection: true, - disableConsoleOutput: true, + // debugProtection: true, + disableConsoleOutput: false, domainLock: ['obfuscator.io'], numbersToExpressions: true, simplify: true, - renameProperties: true, reservedNames: ['generate', 'sha256'], - rotateStringArray: true, - selfDefending: true, + rotateStringArray: false, + // selfDefending: true, splitStrings: true, - splitStringsChunkLength: 1, + splitStringsChunkLength: 3, stringArray: true, stringArrayEncoding: [ StringArrayEncoding.None, StringArrayEncoding.Base64, StringArrayEncoding.Rc4 ], - stringArrayIndexesType: [ - StringArrayIndexesType.HexadecimalNumber, - StringArrayIndexesType.HexadecimalNumericString - ], - stringArrayIndexShift: true, stringArrayWrappersChainedCalls: true, stringArrayWrappersCount: 5, - stringArrayWrappersParametersMaxCount: 5, - stringArrayWrappersType: StringArrayWrappersType.Function, stringArrayThreshold: 1, - transformObjectKeys: true, unicodeEscapeSequence: true }; From 3b8af4b29a8e48835ec3996ef01410cbea4617c6 Mon Sep 17 00:00:00 2001 From: sanex Date: Mon, 28 Dec 2020 21:39:54 +0300 Subject: [PATCH 2/6] String array improvement: fixed bugs --- CHANGELOG.md | 2 +- dist/index.browser.js | 2 +- dist/index.cli.js | 2 +- dist/index.js | 2 +- .../NumberNumericalExpressionAnalyzer.ts | 17 ++-- .../StringArrayStorageAnalyzer.ts | 25 +++-- .../StringArrayBase64DecodeTemplate.ts | 9 +- .../StringArrayRC4DecodeTemplate.ts | 9 +- .../StringArrayRotateFunctionTemplate.ts | 3 - .../INumberNumericalExpressionAnalyzer.ts | 8 +- .../IStringArrayStorageAnalyzer.ts | 11 +++ .../NumberToNumericalExpressionTransformer.ts | 6 +- .../StringArrayRotateFunctionTransformer.ts | 92 +++++++++++++++---- src/options/Options.ts | 2 +- ...tringArrayRotateFunctionCodeHelper.spec.ts | 10 +- .../StringArrayRotateFunctionTemplate.spec.ts | 12 +-- .../StringArrayTransformer.spec.ts | 12 --- .../StringArrayStorage.spec.ts | 45 +++++---- .../JavaScriptObfuscatorRuntime.spec.ts | 22 ++++- .../NumberNumericalExpressionAnalyzer.spec.ts | 46 ++++++++-- 20 files changed, 223 insertions(+), 114 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e863c263..5cd901a69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ Change Log v2.10.0 --- -* `splitStringsChunkLength` minimum value is `3` now +* Improved `rotateStringArray` option v2.9.5 --- diff --git a/dist/index.browser.js b/dist/index.browser.js index fb35c0aab..f09534c67 100644 --- a/dist/index.browser.js +++ b/dist/index.browser.js @@ -1,3 +1,3 @@ /*! For license information please see index.browser.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JavaScriptObfuscator=t():e.JavaScriptObfuscator=t()}(self,(function(){return(()=>{var __webpack_modules__={3913:(e,t,r)=>{!function(){"use strict";var e,n,o,i,a,s,u,l,d,c,p,g,f,m,h,y,b,S,_,C,E,A,N,v,T,I;function O(e){return X.Statement.hasOwnProperty(e.type)}a=r(7085),s=r(649),e=a.Syntax,o={"??":(n={Sequence:0,Yield:1,Assignment:1,Conditional:2,ArrowFunction:2,NullishCoalescing:3,LogicalOR:3,LogicalAND:4,BitwiseOR:5,BitwiseXOR:6,BitwiseAND:7,Equality:8,Relational:9,BitwiseSHIFT:10,Additive:11,Multiplicative:12,Exponentiation:13,Await:14,Unary:14,Postfix:15,OptionalChaining:16,Call:17,New:18,TaggedTemplate:19,Member:20,Primary:21}).NullishCoalescing,"||":n.LogicalOR,"&&":n.LogicalAND,"|":n.BitwiseOR,"^":n.BitwiseXOR,"&":n.BitwiseAND,"==":n.Equality,"!=":n.Equality,"===":n.Equality,"!==":n.Equality,is:n.Equality,isnt:n.Equality,"<":n.Relational,">":n.Relational,"<=":n.Relational,">=":n.Relational,in:n.Relational,instanceof:n.Relational,"<<":n.BitwiseSHIFT,">>":n.BitwiseSHIFT,">>>":n.BitwiseSHIFT,"+":n.Additive,"-":n.Additive,"*":n.Multiplicative,"%":n.Multiplicative,"/":n.Multiplicative,"**":n.Exponentiation};var D=32,R=33;function P(e,t){var r="";for(t|=0;t>0;t>>>=1,e+=e)1&t&&(r+=e);return r}function M(e){var t=e.length;return t&&s.code.isLineTerminator(e.charCodeAt(t-1))}function F(e,t){var r;for(r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function x(e,t){var r,n;function o(e){return"object"==typeof e&&e instanceof Object&&!(e instanceof RegExp)}for(r in t)t.hasOwnProperty(r)&&(o(n=t[r])?o(e[r])?x(e[r],n):e[r]=x({},n):e[r]=n);return e}function L(e,t){return 8232==(-2&e)?(t?"u":"\\u")+(8232===e?"2028":"2029"):10===e||13===e?(t?"":"\\")+(10===e?"n":"r"):String.fromCharCode(e)}function $(e,t){var r;return 8===e?"\\b":12===e?"\\f":9===e?"\\t":(r=e.toString(16).toUpperCase(),d||e>255?"\\u"+"0000".slice(r.length)+r:0!==e||s.code.isDecimalDigit(t)?11===e?"\\x0B":"\\x"+"00".slice(r.length)+r:"\\0")}function w(e){if(92===e)return"\\\\";if(10===e)return"\\n";if(13===e)return"\\r";if(8232===e)return"\\u2028";if(8233===e)return"\\u2029";throw new Error("Incorrectly classified character")}function B(e){var t,r,n,o="";for(t=0,r=e.length;ta&&(l=a)}for(void 0!==t?(d=u,"*"===r[1][l]&&(t+=" "),u=t):(1&l&&--l,d=u),n=1,o=r.length;n0){if(a=r,v){for(r=[],g=(i=t.leadingComments[0]).extendedRange,f=i.range,(y=((h=N.substring(g[0],f[0])).match(/\n/g)||[]).length)>0?(r.push(P("\n",y)),r.push(k(H(i)))):(r.push(h),r.push(H(i))),m=f,n=1,o=t.leadingComments.length;n0?(r.push(P("\n",y)),r.push(k(H(i)))):(r.push(h),r.push(H(i)));else for(d=!M(G(r).toString()),c=P(" ",function(e){var t;for(t=e.length-1;t>=0&&!s.code.isLineTerminator(e.charCodeAt(t));--t);return e.length-1-t}(G([u,r,l]).toString())),n=0,o=t.trailingComments.length;n")),t.expression?(r.push(h),"{"===(o=this.generateExpression(t.body,n.Assignment,7)).toString().charAt(0)&&(o=["(",o,")"]),r.push(o)):r.push(this.maybeBlock(t.body,9)),r},X.prototype.generateIterationForStatement=function(t,r,o){var i=["for"+(r.await?j()+"await":"")+h+"("],a=this;return V((function(){r.left.type===e.VariableDeclaration?V((function(){i.push(r.left.kind+j()),i.push(a.generateStatement(r.left.declarations[0],0))})):i.push(a.generateExpression(r.left,n.Call,7)),i=U(i,t),i=[U(i,a.generateExpression(r.right,n.Assignment,7)),")"]})),i.push(this.maybeBlock(r.body,o)),i},X.prototype.generatePropertyKey=function(e,t){var r=[];return t&&r.push("["),r.push(this.generateExpression(e,n.Assignment,7)),t&&r.push("]"),r},X.prototype.generateAssignment=function(e,t,r,o,i){return n.Assignment2&&("\n"===(n=N.substring(r[0]+1,r[1]-1))[0]&&(o=["{"]),o.push(n)),l=1,8&t&&(l|=16),a=0,s=e.body.length;a0&&(e.body[a-1].trailingComments||e.body[a].leadingComments||K(e.body[a-1].range[1],e.body[a].range[0],o))),a===s-1&&(l|=D),u=e.body[a].leadingComments&&v?i.generateStatement(e.body[a],l):k(i.generateStatement(e.body[a],l)),o.push(u),M(G(u).toString())||v&&a1?V(u):u(),r.push(this.semicolon(t)),r},ThrowStatement:function(e,t){return[U("throw",this.generateExpression(e.argument,n.Sequence,7)),this.semicolon(t)]},TryStatement:function(e,t){var r,n,o,i;if(r=["try",this.maybeBlock(e.block,1)],r=this.maybeBlockSuffix(e.block,r),e.handlers)for(n=0,o=e.handlers.length;n0?"\n":""],a=17,o=0;o0&&(e.body[o-1].trailingComments||e.body[o].leadingComments||K(e.body[o-1].range[1],e.body[o].range[0],r))),n=k(this.generateStatement(e.body[o],a)),r.push(n),o+10){for(o.push("("),a=0,s=i;a=2&&48===a.charCodeAt(0))&&i.push(" "),i.push(t.optional?"?.":"."),i.push(q(t.property))),z(i,n.Member,r)},MetaProperty:function(e,t,r){var o;return(o=[]).push("string"==typeof e.meta?e.meta:q(e.meta)),o.push("."),o.push("string"==typeof e.property?e.property:q(e.property)),z(o,n.Member,t)},UnaryExpression:function(e,t,r){var o,i,a,u,l;return i=this.generateExpression(e.argument,n.Unary,7),""===h?o=U(e.operator,i):(o=[e.operator],e.operator.length>2?o=U(o,i):(l=(u=G(o).toString()).charCodeAt(u.length-1),a=i.toString().charCodeAt(0),(43===l||45===l)&&l===a||s.code.isIdentifierPartES5(l)&&s.code.isIdentifierPartES5(a)?(o.push(j()),o.push(i)):o.push(i))),z(o,n.Unary,t)},YieldExpression:function(e,t,r){var o;return o=e.delegate?"yield*":"yield",e.argument&&(o=U(o,this.generateExpression(e.argument,n.Yield,7))),z(o,n.Yield,t)},AwaitExpression:function(e,t,r){return z(U(e.all?"await*":"await",this.generateExpression(e.argument,n.Await,7)),n.Await,t)},UpdateExpression:function(e,t,r){return e.prefix?z([e.operator,this.generateExpression(e.argument,n.Unary,7)],n.Unary,t):z([this.generateExpression(e.argument,n.Postfix,7),e.operator],n.Postfix,t)},FunctionExpression:function(e,t,r){var n=[Z(e,!0),"function"];return e.id?(n.push(J(e)||j()),n.push(q(e.id))):n.push(J(e)||h),n.push(this.generateFunctionBody(e)),n},ArrayPattern:function(e,t,r){return this.ArrayExpression(e,t,r,!0)},ArrayExpression:function(e,t,r,o){var i,a,s=this;return e.elements.length?(a=!o&&e.elements.length>1,i=["[",a?m:""],V((function(t){var r,o;for(r=0,o=e.elements.length;r1,V((function(){a=l.generateExpression(e.properties[0],n.Sequence,7)})),o||(s=G(a).toString(),/[\r\n]/g.test(s))?(V((function(t){var r,s;if(i=["{",m,t,a],o)for(i.push(","+m),r=1,s=e.properties.length;r126))){a+=$(n,e.charCodeAt(t+1));continue}}a+=String.fromCharCode(n)}if(i=(o=!("double"===g||"auto"===g&&l0&&(o=+n.slice(i+1),n=n.slice(0,i)),r>=0&&(o-=n.length-r-1,n=+(n.slice(0,r)+n.slice(r+1))+""),i=0;48===n.charCodeAt(n.length+i-1);)--i;return 0!==i&&(o-=i,n=n.slice(0,i)),0!==o&&(n+="e"+o),(n.length1e12&&Math.floor(e)===e&&(n="0x"+e.toString(16)).length0||C.moz.comprehensionExpressionStartsWithAssignment?i=U(i,u):i.push(u)})),t.filter&&(i=U(i,"if"+h),u=this.generateExpression(t.filter,n.Sequence,7),i=U(i,["(",u,")"])),C.moz.comprehensionExpressionStartsWithAssignment||(u=this.generateExpression(t.body,n.Assignment,7),i=U(i,u)),i.push(t.type===e.GeneratorExpression?")":"]"),i},ComprehensionBlock:function(t,r,o){var i;return i=U(i=t.left.type===e.VariableDeclaration?[t.left.kind,j(),this.generateStatement(t.left.declarations[0],0)]:this.generateExpression(t.left,n.Call,7),t.of?"of":"in"),i=U(i,this.generateExpression(t.right,n.Sequence,7)),["for"+h+"(",i,")"]},SpreadElement:function(e,t,r){return["...",this.generateExpression(e.argument,n.Assignment,7)]},TaggedTemplateExpression:function(e,t,r){var o=3;return 2&r||(o=1),z([this.generateExpression(e.tag,n.Call,o),this.generateExpression(e.quasi,n.Primary,4)],n.TaggedTemplate,t)},TemplateElement:function(e,t,r){return e.value.raw},TemplateLiteral:function(e,t,r){var o,i,a;for(o=["`"],i=0,a=e.quasis.length;i{"use strict";e.exports={version:"2.1.1"}},1234:function(e,t){!function(e){"use strict";var t={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},r="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",n={5:r,"5module":r+" export import",6:r+" const class extends export import super"},o=/^in(stanceof)?$/,i="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࣇऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-鿼ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-ꟊꟵ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",a="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿᫀᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",s=new RegExp("["+i+"]"),u=new RegExp("["+i+a+"]");i=a=null;var l=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938],d=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];function c(e,t){for(var r=65536,n=0;ne)return!1;if((r+=t[n+1])>=e)return!0}}function p(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&s.test(String.fromCharCode(e)):!1!==t&&c(e,l)))}function g(e,t){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&u.test(String.fromCharCode(e)):!1!==t&&(c(e,l)||c(e,d)))))}var f=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function m(e,t){return new f(e,{beforeExpr:!0,binop:t})}var h={beforeExpr:!0},y={startsExpr:!0},b={};function S(e,t){return void 0===t&&(t={}),t.keyword=e,b[e]=new f(e,t)}var _={num:new f("num",y),regexp:new f("regexp",y),string:new f("string",y),name:new f("name",y),eof:new f("eof"),bracketL:new f("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new f("]"),braceL:new f("{",{beforeExpr:!0,startsExpr:!0}),braceR:new f("}"),parenL:new f("(",{beforeExpr:!0,startsExpr:!0}),parenR:new f(")"),comma:new f(",",h),semi:new f(";",h),colon:new f(":",h),dot:new f("."),question:new f("?",h),questionDot:new f("?."),arrow:new f("=>",h),template:new f("template"),invalidTemplate:new f("invalidTemplate"),ellipsis:new f("...",h),backQuote:new f("`",y),dollarBraceL:new f("${",{beforeExpr:!0,startsExpr:!0}),eq:new f("=",{beforeExpr:!0,isAssign:!0}),assign:new f("_=",{beforeExpr:!0,isAssign:!0}),incDec:new f("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new f("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:m("||",1),logicalAND:m("&&",2),bitwiseOR:m("|",3),bitwiseXOR:m("^",4),bitwiseAND:m("&",5),equality:m("==/!=/===/!==",6),relational:m("/<=/>=",7),bitShift:m("<>/>>>",8),plusMin:new f("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:m("%",10),star:m("*",10),slash:m("/",10),starstar:new f("**",{beforeExpr:!0}),coalesce:m("??",1),_break:S("break"),_case:S("case",h),_catch:S("catch"),_continue:S("continue"),_debugger:S("debugger"),_default:S("default",h),_do:S("do",{isLoop:!0,beforeExpr:!0}),_else:S("else",h),_finally:S("finally"),_for:S("for",{isLoop:!0}),_function:S("function",y),_if:S("if"),_return:S("return",h),_switch:S("switch"),_throw:S("throw",h),_try:S("try"),_var:S("var"),_const:S("const"),_while:S("while",{isLoop:!0}),_with:S("with"),_new:S("new",{beforeExpr:!0,startsExpr:!0}),_this:S("this",y),_super:S("super",y),_class:S("class",y),_extends:S("extends",h),_export:S("export"),_import:S("import",y),_null:S("null",y),_true:S("true",y),_false:S("false",y),_in:S("in",{beforeExpr:!0,binop:7}),_instanceof:S("instanceof",{beforeExpr:!0,binop:7}),_typeof:S("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:S("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:S("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},C=/\r\n?|\n|\u2028|\u2029/,E=new RegExp(C.source,"g");function A(e,t){return 10===e||13===e||!t&&(8232===e||8233===e)}var N=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,v=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,T=Object.prototype,I=T.hasOwnProperty,O=T.toString;function D(e,t){return I.call(e,t)}var R=Array.isArray||function(e){return"[object Array]"===O.call(e)};function P(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}var M=function(e,t){this.line=e,this.column=t};M.prototype.offset=function(e){return new M(this.line,this.column+e)};var F=function(e,t,r){this.start=t,this.end=r,null!==e.sourceFile&&(this.source=e.sourceFile)};function x(e,t){for(var r=1,n=0;;){E.lastIndex=n;var o=E.exec(e);if(!(o&&o.index=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),R(t.onToken)){var n=t.onToken;t.onToken=function(e){return n.push(e)}}return R(t.onComment)&&(t.onComment=function(e,t){return function(r,n,o,i,a,s){var u={type:r?"Block":"Line",value:n,start:o,end:i};e.locations&&(u.loc=new F(this,a,s)),e.ranges&&(u.range=[o,i]),t.push(u)}}(t,t.onComment)),t}function B(e,t){return 2|(e?4:0)|(t?8:0)}var G=function(e,r,o){this.options=e=w(e),this.sourceFile=e.sourceFile,this.keywords=P(n[e.ecmaVersion>=6?6:"module"===e.sourceType?"5module":5]);var i="";!0!==e.allowReserved&&(i=t[e.ecmaVersion>=6?6:5===e.ecmaVersion?5:3],"module"===e.sourceType&&(i+=" await")),this.reservedWords=P(i);var a=(i?i+" ":"")+t.strict;this.reservedWordsStrict=P(a),this.reservedWordsStrictBind=P(a+" "+t.strictBind),this.input=String(r),this.containsEsc=!1,o?(this.pos=o,this.lineStart=this.input.lastIndexOf("\n",o-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(C).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=_.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports={},0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null},j={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},inNonArrowFunction:{configurable:!0}};G.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},j.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},j.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},j.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},j.allowSuper.get=function(){return(64&this.currentThisScope().flags)>0},j.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},j.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},j.inNonArrowFunction.get=function(){return(2&this.currentThisScope().flags)>0},G.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var r=this,n=0;n=,?^&]/.test(o)||"!"===o&&"="===this.input.charAt(n+1))}e+=t[0].length,v.lastIndex=e,e+=v.exec(this.input)[0].length,";"===this.input[e]&&e++}},U.eat=function(e){return this.type===e&&(this.next(),!0)},U.isContextual=function(e){return this.type===_.name&&this.value===e&&!this.containsEsc},U.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},U.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},U.canInsertSemicolon=function(){return this.type===_.eof||this.type===_.braceR||C.test(this.input.slice(this.lastTokEnd,this.start))},U.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},U.semicolon=function(){this.eat(_.semi)||this.insertSemicolon()||this.unexpected()},U.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},U.expect=function(e){this.eat(e)||this.unexpected()},U.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},U.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,"Parenthesized pattern")}},U.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssign,n=e.doubleProto;if(!t)return r>=0||n>=0;r>=0&&this.raise(r,"Shorthand property assignments are valid only in destructuring patterns"),n>=0&&this.raiseRecoverable(n,"Redefinition of __proto__ property")},U.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&this.unexpected(),this.parseFunctionStatement(i,!1,!e);case _._class:return e&&this.unexpected(),this.parseClass(i,!0);case _._if:return this.parseIfStatement(i);case _._return:return this.parseReturnStatement(i);case _._switch:return this.parseSwitchStatement(i);case _._throw:return this.parseThrowStatement(i);case _._try:return this.parseTryStatement(i);case _._const:case _._var:return n=n||this.value,e&&"var"!==n&&this.unexpected(),this.parseVarStatement(i,n);case _._while:return this.parseWhileStatement(i);case _._with:return this.parseWithStatement(i);case _.braceL:return this.parseBlock(!0,i);case _.semi:return this.parseEmptyStatement(i);case _._export:case _._import:if(this.options.ecmaVersion>10&&o===_._import){v.lastIndex=this.pos;var a=v.exec(this.input),s=this.pos+a[0].length,u=this.input.charCodeAt(s);if(40===u||46===u)return this.parseExpressionStatement(i,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),o===_._import?this.parseImport(i):this.parseExport(i,r);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(i,!0,!e);var l=this.value,d=this.parseExpression();return o===_.name&&"Identifier"===d.type&&this.eat(_.colon)?this.parseLabeledStatement(i,l,d,e):this.parseExpressionStatement(i,d)}},H.parseBreakContinueStatement=function(e,t){var r="break"===t;this.next(),this.eat(_.semi)||this.insertSemicolon()?e.label=null:this.type!==_.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var n=0;n=6?this.eat(_.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},H.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(W),this.enterScope(0),this.expect(_.parenL),this.type===_.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var r=this.isLet();if(this.type===_._var||this.type===_._const||r){var n=this.startNode(),o=r?"let":this.value;return this.next(),this.parseVar(n,!0,o),this.finishNode(n,"VariableDeclaration"),(this.type===_._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===n.declarations.length?(this.options.ecmaVersion>=9&&(this.type===_._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,n)):(t>-1&&this.unexpected(t),this.parseFor(e,n))}var i=new V,a=this.parseExpression(!0,i);return this.type===_._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===_._in?t>-1&&this.unexpected(t):e.await=t>-1),this.toAssignable(a,!1,i),this.checkLValPattern(a),this.parseForIn(e,a)):(this.checkExpressionErrors(i,!0),t>-1&&this.unexpected(t),this.parseFor(e,a))},H.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,Y|(r?0:X),!1,t)},H.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(_._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},H.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(_.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},H.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(_.braceL),this.labels.push(K),this.enterScope(0);for(var r=!1;this.type!==_.braceR;)if(this.type===_._case||this.type===_._default){var n=this.type===_._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),n?t.test=this.parseExpression():(r&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),r=!0,t.test=null),this.expect(_.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},H.parseThrowStatement=function(e){return this.next(),C.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var z=[];H.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===_._catch){var t=this.startNode();if(this.next(),this.eat(_.parenL)){t.param=this.parseBindingAtom();var r="Identifier"===t.param.type;this.enterScope(r?32:0),this.checkLValPattern(t.param,r?4:2),this.expect(_.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(_._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},H.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},H.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(W),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},H.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},H.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},H.parseLabeledStatement=function(e,t,r,n){for(var o=0,i=this.labels;o=0;s--){var u=this.labels[s];if(u.statementStart!==e.start)break;u.statementStart=this.start,u.kind=a}return this.labels.push({name:t,kind:a,statementStart:this.start}),e.body=this.parseStatement(n?-1===n.indexOf("label")?n+"label":n:"label"),this.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},H.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},H.parseBlock=function(e,t,r){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(_.braceL),e&&this.enterScope(0);this.type!==_.braceR;){var n=this.parseStatement(null);t.body.push(n)}return r&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")},H.parseFor=function(e,t){return e.init=t,this.expect(_.semi),e.test=this.type===_.semi?null:this.parseExpression(),this.expect(_.semi),e.update=this.type===_.parenR?null:this.parseExpression(),this.expect(_.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},H.parseForIn=function(e,t){var r=this.type===_._in;return this.next(),"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(!r||this.options.ecmaVersion<8||this.strict||"var"!==t.kind||"Identifier"!==t.declarations[0].id.type)&&this.raise(t.start,(r?"for-in":"for-of")+" loop variable declaration may not have an initializer"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(_.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,r?"ForInStatement":"ForOfStatement")},H.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r;;){var n=this.startNode();if(this.parseVarId(n,r),this.eat(_.eq)?n.init=this.parseMaybeAssign(t):"const"!==r||this.type===_._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"===n.id.type||t&&(this.type===_._in||this.isContextual("of"))?n.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(_.comma))break}return e},H.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLValPattern(e.id,"var"===t?1:2,!1)};var Y=1,X=2;H.parseFunction=function(e,t,r,n){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!n)&&(this.type===_.star&&t&X&&this.unexpected(),e.generator=this.eat(_.star)),this.options.ecmaVersion>=8&&(e.async=!!n),t&Y&&(e.id=4&t&&this.type!==_.name?null:this.parseIdent(),!e.id||t&X||this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?1:2:3));var o=this.yieldPos,i=this.awaitPos,a=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(B(e.async,e.generator)),t&Y||(e.id=this.type===_.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,r,!1),this.yieldPos=o,this.awaitPos=i,this.awaitIdentPos=a,this.finishNode(e,t&Y?"FunctionDeclaration":"FunctionExpression")},H.parseFunctionParams=function(e){this.expect(_.parenL),e.params=this.parseBindingList(_.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},H.parseClass=function(e,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var n=this.startNode(),o=!1;for(n.body=[],this.expect(_.braceL);this.type!==_.braceR;){var i=this.parseClassElement(null!==e.superClass);i&&(n.body.push(i),"MethodDefinition"===i.type&&"constructor"===i.kind&&(o&&this.raise(i.start,"Duplicate constructor in the same class"),o=!0))}return this.strict=r,this.next(),e.body=this.finishNode(n,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},H.parseClassElement=function(e){var t=this;if(this.eat(_.semi))return null;var r=this.startNode(),n=function(e,n){void 0===n&&(n=!1);var o=t.start,i=t.startLoc;return!(!t.eatContextual(e)||(t.type===_.parenL||n&&t.canInsertSemicolon())&&(r.key&&t.unexpected(),r.computed=!1,r.key=t.startNodeAt(o,i),r.key.name=e,t.finishNode(r.key,"Identifier"),1))};r.kind="method",r.static=n("static");var o=this.eat(_.star),i=!1;o||(this.options.ecmaVersion>=8&&n("async",!0)?(i=!0,o=this.options.ecmaVersion>=9&&this.eat(_.star)):n("get")?r.kind="get":n("set")&&(r.kind="set")),r.key||this.parsePropertyName(r);var a=r.key,s=!1;return r.computed||r.static||!("Identifier"===a.type&&"constructor"===a.name||"Literal"===a.type&&"constructor"===a.value)?r.static&&"Identifier"===a.type&&"prototype"===a.name&&this.raise(a.start,"Classes may not have a static property named prototype"):("method"!==r.kind&&this.raise(a.start,"Constructor can't have get/set modifier"),o&&this.raise(a.start,"Constructor can't be a generator"),i&&this.raise(a.start,"Constructor can't be an async method"),r.kind="constructor",s=e),this.parseClassMethod(r,o,i,s),"get"===r.kind&&0!==r.value.params.length&&this.raiseRecoverable(r.value.start,"getter should have no params"),"set"===r.kind&&1!==r.value.params.length&&this.raiseRecoverable(r.value.start,"setter should have exactly one param"),"set"===r.kind&&"RestElement"===r.value.params[0].type&&this.raiseRecoverable(r.value.params[0].start,"Setter cannot use rest params"),r},H.parseClassMethod=function(e,t,r,n){return e.value=this.parseMethod(t,r,n),this.finishNode(e,"MethodDefinition")},H.parseClassId=function(e,t){this.type===_.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,2,!1)):(!0===t&&this.unexpected(),e.id=null)},H.parseClassSuper=function(e){e.superClass=this.eat(_._extends)?this.parseExprSubscripts():null},H.parseExport=function(e,t){if(this.next(),this.eat(_.star))return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(e.exported=this.parseIdent(!0),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==_.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(_._default)){var r;if(this.checkExport(t,"default",this.lastTokStart),this.type===_._function||(r=this.isAsyncFunction())){var n=this.startNode();this.next(),r&&this.next(),e.declaration=this.parseFunction(n,4|Y,!1,r)}else if(this.type===_._class){var o=this.startNode();e.declaration=this.parseClass(o,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==_.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var i=0,a=e.specifiers;i=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",r&&this.checkPatternErrors(r,!0);for(var n=0,o=e.properties;n=8&&!i&&"async"===a.name&&!this.canInsertSemicolon()&&this.eat(_._function))return this.parseFunction(this.startNodeAt(n,o),0,!1,!0);if(r&&!this.canInsertSemicolon()){if(this.eat(_.arrow))return this.parseArrowExpression(this.startNodeAt(n,o),[a],!1);if(this.options.ecmaVersion>=8&&"async"===a.name&&this.type===_.name&&!i)return a=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(_.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(n,o),[a],!0)}return a;case _.regexp:var s=this.value;return(t=this.parseLiteral(s.value)).regex={pattern:s.pattern,flags:s.flags},t;case _.num:case _.string:return this.parseLiteral(this.value);case _._null:case _._true:case _._false:return(t=this.startNode()).value=this.type===_._null?null:this.type===_._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case _.parenL:var u=this.start,l=this.parseParenAndDistinguishExpression(r);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(l)&&(e.parenthesizedAssign=u),e.parenthesizedBind<0&&(e.parenthesizedBind=u)),l;case _.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(_.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case _.braceL:return this.parseObj(!1,e);case _._function:return t=this.startNode(),this.next(),this.parseFunction(t,0);case _._class:return this.parseClass(this.startNode(),!1);case _._new:return this.parseNew();case _.backQuote:return this.parseTemplate();case _._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},Z.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var t=this.parseIdent(!0);switch(this.type){case _.parenL:return this.parseDynamicImport(e);case _.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},Z.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(_.parenR)){var t=this.start;this.eat(_.comma)&&this.eat(_.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},Z.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),"meta"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),"module"!==this.options.sourceType&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")},Z.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")},Z.parseParenExpression=function(){this.expect(_.parenL);var e=this.parseExpression();return this.expect(_.parenR),e},Z.parseParenAndDistinguishExpression=function(e){var t,r=this.start,n=this.startLoc,o=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var i,a=this.start,s=this.startLoc,u=[],l=!0,d=!1,c=new V,p=this.yieldPos,g=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==_.parenR;){if(l?l=!1:this.expect(_.comma),o&&this.afterTrailingComma(_.parenR,!0)){d=!0;break}if(this.type===_.ellipsis){i=this.start,u.push(this.parseParenItem(this.parseRestBinding())),this.type===_.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}u.push(this.parseMaybeAssign(!1,c,this.parseParenItem))}var f=this.start,m=this.startLoc;if(this.expect(_.parenR),e&&!this.canInsertSemicolon()&&this.eat(_.arrow))return this.checkPatternErrors(c,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=p,this.awaitPos=g,this.parseParenArrowList(r,n,u);u.length&&!d||this.unexpected(this.lastTokStart),i&&this.unexpected(i),this.checkExpressionErrors(c,!0),this.yieldPos=p||this.yieldPos,this.awaitPos=g||this.awaitPos,u.length>1?((t=this.startNodeAt(a,s)).expressions=u,this.finishNodeAt(t,"SequenceExpression",f,m)):t=u[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var h=this.startNodeAt(r,n);return h.expression=t,this.finishNode(h,"ParenthesizedExpression")}return t},Z.parseParenItem=function(e){return e},Z.parseParenArrowList=function(e,t,r){return this.parseArrowExpression(this.startNodeAt(e,t),r)};var J=[];Z.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(_.dot)){e.meta=t;var r=this.containsEsc;return e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),r&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.inNonArrowFunction||this.raiseRecoverable(e.start,"'new.target' can only be used in functions"),this.finishNode(e,"MetaProperty")}var n=this.start,o=this.startLoc,i=this.type===_._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),n,o,!0),i&&"ImportExpression"===e.callee.type&&this.raise(n,"Cannot use new with import()"),this.eat(_.parenL)?e.arguments=this.parseExprList(_.parenR,this.options.ecmaVersion>=8,!1):e.arguments=J,this.finishNode(e,"NewExpression")},Z.parseTemplateElement=function(e){var t=e.isTagged,r=this.startNode();return this.type===_.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),r.value={raw:this.value,cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),r.tail=this.type===_.backQuote,this.finishNode(r,"TemplateElement")},Z.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var r=this.startNode();this.next(),r.expressions=[];var n=this.parseTemplateElement({isTagged:t});for(r.quasis=[n];!n.tail;)this.type===_.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(_.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(_.braceR),r.quasis.push(n=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,"TemplateLiteral")},Z.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===_.name||this.type===_.num||this.type===_.string||this.type===_.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===_.star)&&!C.test(this.input.slice(this.lastTokEnd,this.start))},Z.parseObj=function(e,t){var r=this.startNode(),n=!0,o={};for(r.properties=[],this.next();!this.eat(_.braceR);){if(n)n=!1;else if(this.expect(_.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(_.braceR))break;var i=this.parseProperty(e,t);e||this.checkPropClash(i,o,t),r.properties.push(i)}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")},Z.parseProperty=function(e,t){var r,n,o,i,a=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(_.ellipsis))return e?(a.argument=this.parseIdent(!1),this.type===_.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(a,"RestElement")):(this.type===_.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),a.argument=this.parseMaybeAssign(!1,t),this.type===_.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(a,"SpreadElement"));this.options.ecmaVersion>=6&&(a.method=!1,a.shorthand=!1,(e||t)&&(o=this.start,i=this.startLoc),e||(r=this.eat(_.star)));var s=this.containsEsc;return this.parsePropertyName(a),!e&&!s&&this.options.ecmaVersion>=8&&!r&&this.isAsyncProp(a)?(n=!0,r=this.options.ecmaVersion>=9&&this.eat(_.star),this.parsePropertyName(a,t)):n=!1,this.parsePropertyValue(a,e,r,n,o,i,t,s),this.finishNode(a,"Property")},Z.parsePropertyValue=function(e,t,r,n,o,i,a,s){if((r||n)&&this.type===_.colon&&this.unexpected(),this.eat(_.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===_.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(r,n);else if(t||s||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===_.comma||this.type===_.braceR||this.type===_.eq)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((r||n)&&this.unexpected(),this.checkUnreserved(e.key),"await"!==e.key.name||this.awaitIdentPos||(this.awaitIdentPos=o),e.kind="init",t?e.value=this.parseMaybeDefault(o,i,this.copyNode(e.key)):this.type===_.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),e.value=this.parseMaybeDefault(o,i,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.shorthand=!0):this.unexpected();else{(r||n)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var u="get"===e.kind?0:1;if(e.value.params.length!==u){var l=e.value.start;"get"===e.kind?this.raiseRecoverable(l,"getter should have no params"):this.raiseRecoverable(l,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},Z.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(_.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(_.bracketR),e.key;e.computed=!1}return e.key=this.type===_.num||this.type===_.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},Z.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},Z.parseMethod=function(e,t,r){var n=this.startNode(),o=this.yieldPos,i=this.awaitPos,a=this.awaitIdentPos;return this.initFunction(n),this.options.ecmaVersion>=6&&(n.generator=e),this.options.ecmaVersion>=8&&(n.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|B(t,n.generator)|(r?128:0)),this.expect(_.parenL),n.params=this.parseBindingList(_.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1,!0),this.yieldPos=o,this.awaitPos=i,this.awaitIdentPos=a,this.finishNode(n,"FunctionExpression")},Z.parseArrowExpression=function(e,t,r){var n=this.yieldPos,o=this.awaitPos,i=this.awaitIdentPos;return this.enterScope(16|B(r,!1)),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1),this.yieldPos=n,this.awaitPos=o,this.awaitIdentPos=i,this.finishNode(e,"ArrowFunctionExpression")},Z.parseFunctionBody=function(e,t,r){var n=t&&this.type!==_.braceL,o=this.strict,i=!1;if(n)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var a=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);o&&!a||(i=this.strictDirective(this.end))&&a&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var s=this.labels;this.labels=[],i&&(this.strict=!0),this.checkParams(e,!o&&!i&&!t&&!r&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,5),e.body=this.parseBlock(!1,void 0,i&&!o),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=s}this.exitScope()},Z.isSimpleParamList=function(e){for(var t=0,r=e;t-1||o.functions.indexOf(e)>-1||o.var.indexOf(e)>-1,o.lexical.push(e),this.inModule&&1&o.flags&&delete this.undefinedExports[e]}else if(4===t)this.currentScope().lexical.push(e);else if(3===t){var i=this.currentScope();n=this.treatFunctionsAsVar?i.lexical.indexOf(e)>-1:i.lexical.indexOf(e)>-1||i.var.indexOf(e)>-1,i.functions.push(e)}else for(var a=this.scopeStack.length-1;a>=0;--a){var s=this.scopeStack[a];if(s.lexical.indexOf(e)>-1&&!(32&s.flags&&s.lexical[0]===e)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(e)>-1){n=!0;break}if(s.var.push(e),this.inModule&&1&s.flags&&delete this.undefinedExports[e],3&s.flags)break}n&&this.raiseRecoverable(r,"Identifier '"+e+"' has already been declared")},ee.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},ee.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},ee.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags)return t}},ee.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags&&!(16&t.flags))return t}};var re=function(e,t,r){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new F(e,r)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},ne=G.prototype;function oe(e,t,r,n){return e.type=t,e.end=r,this.options.locations&&(e.loc.end=n),this.options.ranges&&(e.range[1]=r),e}ne.startNode=function(){return new re(this,this.start,this.startLoc)},ne.startNodeAt=function(e,t){return new re(this,e,t)},ne.finishNode=function(e,t){return oe.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},ne.finishNodeAt=function(e,t,r,n){return oe.call(this,e,t,r,n)},ne.copyNode=function(e){var t=new re(this,e.start,this.startLoc);for(var r in e)t[r]=e[r];return t};var ie=function(e,t,r,n,o){this.token=e,this.isExpr=!!t,this.preserveSpace=!!r,this.override=n,this.generator=!!o},ae={b_stat:new ie("{",!1),b_expr:new ie("{",!0),b_tmpl:new ie("${",!1),p_stat:new ie("(",!1),p_expr:new ie("(",!0),q_tmpl:new ie("`",!0,!0,(function(e){return e.tryReadTemplateToken()})),f_stat:new ie("function",!1),f_expr:new ie("function",!0),f_expr_gen:new ie("function",!0,!1,null,!0),f_gen:new ie("function",!1,!1,null,!0)},se=G.prototype;se.initialContext=function(){return[ae.b_stat]},se.braceIsBlock=function(e){var t=this.curContext();return t===ae.f_expr||t===ae.f_stat||(e!==_.colon||t!==ae.b_stat&&t!==ae.b_expr?e===_._return||e===_.name&&this.exprAllowed?C.test(this.input.slice(this.lastTokEnd,this.start)):e===_._else||e===_.semi||e===_.eof||e===_.parenR||e===_.arrow||(e===_.braceL?t===ae.b_stat:e!==_._var&&e!==_._const&&e!==_.name&&!this.exprAllowed):!t.isExpr)},se.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},se.updateContext=function(e){var t,r=this.type;r.keyword&&e===_.dot?this.exprAllowed=!1:(t=r.updateContext)?t.call(this,e):this.exprAllowed=r.beforeExpr},_.parenR.updateContext=_.braceR.updateContext=function(){if(1!==this.context.length){var e=this.context.pop();e===ae.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},_.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?ae.b_stat:ae.b_expr),this.exprAllowed=!0},_.dollarBraceL.updateContext=function(){this.context.push(ae.b_tmpl),this.exprAllowed=!0},_.parenL.updateContext=function(e){var t=e===_._if||e===_._for||e===_._with||e===_._while;this.context.push(t?ae.p_stat:ae.p_expr),this.exprAllowed=!0},_.incDec.updateContext=function(){},_._function.updateContext=_._class.updateContext=function(e){!e.beforeExpr||e===_._else||e===_.semi&&this.curContext()!==ae.p_stat||e===_._return&&C.test(this.input.slice(this.lastTokEnd,this.start))||(e===_.colon||e===_.braceL)&&this.curContext()===ae.b_stat?this.context.push(ae.f_stat):this.context.push(ae.f_expr),this.exprAllowed=!1},_.backQuote.updateContext=function(){this.curContext()===ae.q_tmpl?this.context.pop():this.context.push(ae.q_tmpl),this.exprAllowed=!1},_.star.updateContext=function(e){if(e===_._function){var t=this.context.length-1;this.context[t]===ae.f_expr?this.context[t]=ae.f_expr_gen:this.context[t]=ae.f_gen}this.exprAllowed=!0},_.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==_.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var ue="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",le=ue+" Extended_Pictographic",de={9:ue,10:le,11:le,12:le+" EBase EComp EMod EPres ExtPict"},ce="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",pe="Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",ge=pe+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",fe=ge+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",me={9:pe,10:ge,11:fe,12:fe+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"},he={};function ye(e){var t=he[e]={binary:P(de[e]+" "+ce),nonBinary:{General_Category:P(ce),Script:P(me[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}ye(9),ye(10),ye(11),ye(12);var be=G.prototype,Se=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":""),this.unicodeProperties=he[e.options.ecmaVersion>=12?12:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function _e(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function Ce(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function Ee(e){return e>=65&&e<=90||e>=97&&e<=122}function Ae(e){return Ee(e)||95===e}function Ne(e){return Ae(e)||ve(e)}function ve(e){return e>=48&&e<=57}function Te(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ie(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function Oe(e){return e>=48&&e<=55}Se.prototype.reset=function(e,t,r){var n=-1!==r.indexOf("u");this.start=0|e,this.source=t+"",this.flags=r,this.switchU=n&&this.parser.options.ecmaVersion>=6,this.switchN=n&&this.parser.options.ecmaVersion>=9},Se.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},Se.prototype.at=function(e,t){void 0===t&&(t=!1);var r=this.source,n=r.length;if(e>=n)return-1;var o=r.charCodeAt(e);if(!t&&!this.switchU||o<=55295||o>=57344||e+1>=n)return o;var i=r.charCodeAt(e+1);return i>=56320&&i<=57343?(o<<10)+i-56613888:o},Se.prototype.nextIndex=function(e,t){void 0===t&&(t=!1);var r=this.source,n=r.length;if(e>=n)return n;var o,i=r.charCodeAt(e);return!t&&!this.switchU||i<=55295||i>=57344||e+1>=n||(o=r.charCodeAt(e+1))<56320||o>57343?e+1:e+2},Se.prototype.current=function(e){return void 0===e&&(e=!1),this.at(this.pos,e)},Se.prototype.lookahead=function(e){return void 0===e&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},Se.prototype.advance=function(e){void 0===e&&(e=!1),this.pos=this.nextIndex(this.pos,e)},Se.prototype.eat=function(e,t){return void 0===t&&(t=!1),this.current(t)===e&&(this.advance(t),!0)},be.validateRegExpFlags=function(e){for(var t=e.validFlags,r=e.flags,n=0;n-1&&this.raise(e.start,"Duplicate regular expression flag")}},be.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},be.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,r=e.backReferenceNames;t=9&&(r=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!r,!0}return e.pos=t,!1},be.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},be.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},be.regexp_eatBracedQuantifier=function(e,t){var r=e.pos;if(e.eat(123)){var n=0,o=-1;if(this.regexp_eatDecimalDigits(e)&&(n=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(o=e.lastIntValue),e.eat(125)))return-1!==o&&o=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},be.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},be.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},be.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!Ce(t)&&(e.lastIntValue=t,e.advance(),!0)},be.regexp_eatPatternCharacters=function(e){for(var t=e.pos,r=0;-1!==(r=e.current())&&!Ce(r);)e.advance();return e.pos!==t},be.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t||(e.advance(),0))},be.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e))return-1!==e.groupNames.indexOf(e.lastStringValue)&&e.raise("Duplicate capture group name"),void e.groupNames.push(e.lastStringValue);e.raise("Invalid group")}},be.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},be.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=_e(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=_e(e.lastIntValue);return!0}return!1},be.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,n=e.current(r);return e.advance(r),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(n=e.lastIntValue),function(e){return p(e,!0)||36===e||95===e}(n)?(e.lastIntValue=n,!0):(e.pos=t,!1)},be.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,n=e.current(r);return e.advance(r),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(n=e.lastIntValue),function(e){return g(e,!0)||36===e||95===e||8204===e||8205===e}(n)?(e.lastIntValue=n,!0):(e.pos=t,!1)},be.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},be.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var r=e.lastIntValue;if(e.switchU)return r>e.maxBackReference&&(e.maxBackReference=r),!0;if(r<=e.numCapturingParens)return!0;e.pos=t}return!1},be.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},be.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},be.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},be.regexp_eatZero=function(e){return 48===e.current()&&!ve(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},be.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},be.regexp_eatControlLetter=function(e){var t=e.current();return!!Ee(t)&&(e.lastIntValue=t%32,e.advance(),!0)},be.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){void 0===t&&(t=!1);var r,n=e.pos,o=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var i=e.lastIntValue;if(o&&i>=55296&&i<=56319){var a=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var s=e.lastIntValue;if(s>=56320&&s<=57343)return e.lastIntValue=1024*(i-55296)+(s-56320)+65536,!0}e.pos=a,e.lastIntValue=i}return!0}if(o&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&((r=e.lastIntValue)>=0&&r<=1114111))return!0;o&&e.raise("Invalid unicode escape"),e.pos=n}return!1},be.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t||(e.lastIntValue=t,e.advance(),0))},be.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1},be.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(function(e){return 100===e||68===e||115===e||83===e||119===e||87===e}(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(80===t||112===t)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1},be.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var r=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var n=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,r,n),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var o=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,o),!0}return!1},be.regexp_validateUnicodePropertyNameAndValue=function(e,t,r){D(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(r)||e.raise("Invalid property value")},be.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")},be.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";Ae(t=e.current());)e.lastStringValue+=_e(t),e.advance();return""!==e.lastStringValue},be.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Ne(t=e.current());)e.lastStringValue+=_e(t),e.advance();return""!==e.lastStringValue},be.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},be.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},be.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var r=e.lastIntValue;!e.switchU||-1!==t&&-1!==r||e.raise("Invalid character class"),-1!==t&&-1!==r&&t>r&&e.raise("Range out of order in character class")}}},be.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var r=e.current();(99===r||Oe(r))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var n=e.current();return 93!==n&&(e.lastIntValue=n,e.advance(),!0)},be.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},be.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!ve(t)&&95!==t||(e.lastIntValue=t%32,e.advance(),0))},be.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},be.regexp_eatDecimalDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;ve(r=e.current());)e.lastIntValue=10*e.lastIntValue+(r-48),e.advance();return e.pos!==t},be.regexp_eatHexDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;Te(r=e.current());)e.lastIntValue=16*e.lastIntValue+Ie(r),e.advance();return e.pos!==t},be.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var r=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*r+e.lastIntValue:e.lastIntValue=8*t+r}else e.lastIntValue=t;return!0}return!1},be.regexp_eatOctalDigit=function(e){var t=e.current();return Oe(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},be.regexp_eatFixedHexDigits=function(e,t){var r=e.pos;e.lastIntValue=0;for(var n=0;n>10),56320+(1023&e)))}Re.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new De(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},Re.getToken=function(){return this.next(),new De(this)},"undefined"!=typeof Symbol&&(Re[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===_.eof,value:t}}}}),Re.curContext=function(){return this.context[this.context.length-1]},Re.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(_.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},Re.readToken=function(e){return p(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},Re.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},Re.skipBlockComment=function(){var e,t=this.options.onComment&&this.curPosition(),r=this.pos,n=this.input.indexOf("*/",this.pos+=2);if(-1===n&&this.raise(this.pos-2,"Unterminated comment"),this.pos=n+2,this.options.locations)for(E.lastIndex=r;(e=E.exec(this.input))&&e.index8&&e<14||e>=5760&&N.test(String.fromCharCode(e))))break e;++this.pos}}},Re.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var r=this.type;this.type=e,this.value=t,this.updateContext(r)},Re.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(_.ellipsis)):(++this.pos,this.finishToken(_.dot))},Re.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(_.assign,2):this.finishOp(_.slash,1)},Re.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),r=1,n=42===e?_.star:_.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++r,n=_.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(_.assign,r+1):this.finishOp(n,r)},Re.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.options.ecmaVersion>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(_.assign,3):this.finishOp(124===e?_.logicalOR:_.logicalAND,2):61===t?this.finishOp(_.assign,2):this.finishOp(124===e?_.bitwiseOR:_.bitwiseAND,1)},Re.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(_.assign,2):this.finishOp(_.bitwiseXOR,1)},Re.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!C.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(_.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(_.assign,2):this.finishOp(_.plusMin,1)},Re.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),r=1;return t===e?(r=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+r)?this.finishOp(_.assign,r+1):this.finishOp(_.bitShift,r)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(r=2),this.finishOp(_.relational,r)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},Re.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(_.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(_.arrow)):this.finishOp(61===e?_.eq:_.prefix,1)},Re.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(46===t){var r=this.input.charCodeAt(this.pos+2);if(r<48||r>57)return this.finishOp(_.questionDot,2)}if(63===t)return e>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(_.assign,3):this.finishOp(_.coalesce,2)}return this.finishOp(_.question,1)},Re.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(_.parenL);case 41:return++this.pos,this.finishToken(_.parenR);case 59:return++this.pos,this.finishToken(_.semi);case 44:return++this.pos,this.finishToken(_.comma);case 91:return++this.pos,this.finishToken(_.bracketL);case 93:return++this.pos,this.finishToken(_.bracketR);case 123:return++this.pos,this.finishToken(_.braceL);case 125:return++this.pos,this.finishToken(_.braceR);case 58:return++this.pos,this.finishToken(_.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(_.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(_.prefix,1)}this.raise(this.pos,"Unexpected character '"+Me(e)+"'")},Re.finishOp=function(e,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,r)},Re.readRegexp=function(){for(var e,t,r=this.pos;;){this.pos>=this.input.length&&this.raise(r,"Unterminated regular expression");var n=this.input.charAt(this.pos);if(C.test(n)&&this.raise(r,"Unterminated regular expression"),e)e=!1;else{if("["===n)t=!0;else if("]"===n&&t)t=!1;else if("/"===n&&!t)break;e="\\"===n}++this.pos}var o=this.input.slice(r,this.pos);++this.pos;var i=this.pos,a=this.readWord1();this.containsEsc&&this.unexpected(i);var s=this.regexpState||(this.regexpState=new Se(this));s.reset(r,o,a),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var u=null;try{u=new RegExp(o,a)}catch(e){}return this.finishToken(_.regexp,{pattern:o,flags:a,value:u})},Re.readInt=function(e,t,r){for(var n=this.options.ecmaVersion>=12&&void 0===t,o=r&&48===this.input.charCodeAt(this.pos),i=this.pos,a=0,s=0,u=0,l=null==t?1/0:t;u=97?d-97+10:d>=65?d-65+10:d>=48&&d<=57?d-48:1/0)>=e)break;s=d,a=a*e+c}}return n&&95===s&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===i||null!=t&&this.pos-i!==t?null:a},Re.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var r=this.readInt(e);return null==r&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(r=Pe(this.input.slice(t,this.pos)),++this.pos):p(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(_.num,r)},Re.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10,void 0,!0)||this.raise(t,"Invalid number");var r=this.pos-t>=2&&48===this.input.charCodeAt(t);r&&this.strict&&this.raise(t,"Invalid number");var n=this.input.charCodeAt(this.pos);if(!r&&!e&&this.options.ecmaVersion>=11&&110===n){var o=Pe(this.input.slice(t,this.pos));return++this.pos,p(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(_.num,o)}r&&/[89]/.test(this.input.slice(t,this.pos))&&(r=!1),46!==n||r||(++this.pos,this.readInt(10),n=this.input.charCodeAt(this.pos)),69!==n&&101!==n||r||(43!==(n=this.input.charCodeAt(++this.pos))&&45!==n||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),p(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var i,a=(i=this.input.slice(t,this.pos),r?parseInt(i,8):parseFloat(i.replace(/_/g,"")));return this.finishToken(_.num,a)},Re.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},Re.readString=function(e){for(var t="",r=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var n=this.input.charCodeAt(this.pos);if(n===e)break;92===n?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):(A(n,this.options.ecmaVersion>=10)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(_.string,t)};var Fe={};Re.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==Fe)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},Re.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Fe;this.raise(e,t)},Re.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var r=this.input.charCodeAt(this.pos);if(96===r||36===r&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==_.template&&this.type!==_.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(_.template,e)):36===r?(this.pos+=2,this.finishToken(_.dollarBraceL)):(++this.pos,this.finishToken(_.backQuote));if(92===r)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(A(r)){switch(e+=this.input.slice(t,this.pos),++this.pos,r){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(r)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},Re.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],o=parseInt(n,8);return o>255&&(n=n.slice(0,-1),o=parseInt(n,8)),this.pos+=n.length-1,t=this.input.charCodeAt(this.pos),"0"===n&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-n.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(o)}return A(t)?"":String.fromCharCode(t)}},Re.readHexChar=function(e){var t=this.pos,r=this.readInt(16,e);return null===r&&this.invalidStringToken(t,"Bad character escape sequence"),r},Re.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,r=this.pos,n=this.options.ecmaVersion>=6;this.pos{"use strict";e=r.nmd(e);const n=(e,t)=>(...r)=>`[${e(...r)+t}m`,o=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};5;${n}m`},i=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`},a=e=>e,s=(e,t,r)=>[e,t,r],u=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{const n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})};let l;const d=(e,t,n,o)=>{void 0===l&&(l=r(2085));const i=o?10:0,a={};for(const[r,o]of Object.entries(l)){const s="ansi16"===r?"ansi":r;r===t?a[s]=e(n,i):"object"==typeof o&&(a[s]=e(o[t],i))}return a};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[r,n]of Object.entries(t)){for(const[r,o]of Object.entries(n))t[r]={open:`[${o[0]}m`,close:`[${o[1]}m`},n[r]=t[r],e.set(o[0],o[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="",t.bgColor.close="",u(t.color,"ansi",(()=>d(n,"ansi16",a,!1))),u(t.color,"ansi256",(()=>d(o,"ansi256",a,!1))),u(t.color,"ansi16m",(()=>d(i,"rgb",s,!1))),u(t.bgColor,"ansi",(()=>d(n,"ansi16",a,!0))),u(t.bgColor,"ansi256",(()=>d(o,"ansi256",a,!0))),u(t.bgColor,"ansi16m",(()=>d(i,"rgb",s,!0))),t}})},2190:e=>{e.exports=function(e,r,n){if(e.filter)return e.filter(r,n);if(null==e)throw new TypeError;if("function"!=typeof r)throw new TypeError;for(var o=[],i=0;i{"use strict";var n=r(4155);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i,a,s=r(2136).codes,u=s.ERR_AMBIGUOUS_ARGUMENT,l=s.ERR_INVALID_ARG_TYPE,d=s.ERR_INVALID_ARG_VALUE,c=s.ERR_INVALID_RETURN_VALUE,p=s.ERR_MISSING_ARGS,g=r(5961),f=r(9539).inspect,m=r(9539).types,h=m.isPromise,y=m.isRegExp,b=Object.assign?Object.assign:r(8091).assign,S=Object.is?Object.is:r(609);function _(){var e=r(9158);i=e.isDeepEqual,a=e.isDeepStrictEqual}new Map;var C=!1,E=e.exports=T,A={};function N(e){if(e.message instanceof Error)throw e.message;throw new g(e)}function v(e,t,r,n){if(!r){var o=!1;if(0===t)o=!0,n="No value argument passed to `assert.ok()`";else if(n instanceof Error)throw n;var i=new g({actual:r,expected:!0,message:n,operator:"==",stackStartFn:e});throw i.generatedMessage=o,i}}function T(){for(var e=arguments.length,t=new Array(e),r=0;r1?r-1:0),o=1;o1?r-1:0),o=1;o1?r-1:0),o=1;o1?r-1:0),o=1;o{"use strict";var n=r(4155);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){for(var r=0;re.length)&&(r=e.length),e.substring(r-t.length,r)===t}var y="",b="",S="",_="",C={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function E(e){var t=Object.keys(e),r=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){r[t]=e[t]})),Object.defineProperty(r,"message",{value:e.message}),r}function A(e){return f(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var N=function(e){function t(e){var r;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),"object"!==g(e)||null===e)throw new m("options","Object",e);var o=e.message,i=e.operator,u=e.stackStartFn,l=e.actual,d=e.expected,c=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=o)r=a(this,p(t).call(this,String(o)));else if(n.stderr&&n.stderr.isTTY&&(n.stderr&&n.stderr.getColorDepth&&1!==n.stderr.getColorDepth()?(y="",b="",_="",S=""):(y="",b="",_="",S="")),"object"===g(l)&&null!==l&&"object"===g(d)&&null!==d&&"stack"in l&&l instanceof Error&&"stack"in d&&d instanceof Error&&(l=E(l),d=E(d)),"deepStrictEqual"===i||"strictEqual"===i)r=a(this,p(t).call(this,function(e,t,r){var o="",i="",a=0,s="",u=!1,l=A(e),d=l.split("\n"),c=A(t).split("\n"),p=0,f="";if("strictEqual"===r&&"object"===g(e)&&"object"===g(t)&&null!==e&&null!==t&&(r="strictEqualObject"),1===d.length&&1===c.length&&d[0]!==c[0]){var m=d[0].length+c[0].length;if(m<=10){if(!("object"===g(e)&&null!==e||"object"===g(t)&&null!==t||0===e&&0===t))return"".concat(C[r],"\n\n")+"".concat(d[0]," !== ").concat(c[0],"\n")}else if("strictEqualObject"!==r&&m<(n.stderr&&n.stderr.isTTY?n.stderr.columns:80)){for(;d[0][p]===c[0][p];)p++;p>2&&(f="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var r=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,r-e.length)}(" ",p),"^"),p=0)}}for(var E=d[d.length-1],N=c[c.length-1];E===N&&(p++<2?s="\n ".concat(E).concat(s):o=E,d.pop(),c.pop(),0!==d.length&&0!==c.length);)E=d[d.length-1],N=c[c.length-1];var v=Math.max(d.length,c.length);if(0===v){var T=l.split("\n");if(T.length>30)for(T[26]="".concat(y,"...").concat(_);T.length>27;)T.pop();return"".concat(C.notIdentical,"\n\n").concat(T.join("\n"),"\n")}p>3&&(s="\n".concat(y,"...").concat(_).concat(s),u=!0),""!==o&&(s="\n ".concat(o).concat(s),o="");var I=0,O=C[r]+"\n".concat(b,"+ actual").concat(_," ").concat(S,"- expected").concat(_),D=" ".concat(y,"...").concat(_," Lines skipped");for(p=0;p1&&p>2&&(R>4?(i+="\n".concat(y,"...").concat(_),u=!0):R>3&&(i+="\n ".concat(c[p-2]),I++),i+="\n ".concat(c[p-1]),I++),a=p,o+="\n".concat(S,"-").concat(_," ").concat(c[p]),I++;else if(c.length1&&p>2&&(R>4?(i+="\n".concat(y,"...").concat(_),u=!0):R>3&&(i+="\n ".concat(d[p-2]),I++),i+="\n ".concat(d[p-1]),I++),a=p,i+="\n".concat(b,"+").concat(_," ").concat(d[p]),I++;else{var P=c[p],M=d[p],F=M!==P&&(!h(M,",")||M.slice(0,-1)!==P);F&&h(P,",")&&P.slice(0,-1)===M&&(F=!1,M+=","),F?(R>1&&p>2&&(R>4?(i+="\n".concat(y,"...").concat(_),u=!0):R>3&&(i+="\n ".concat(d[p-2]),I++),i+="\n ".concat(d[p-1]),I++),a=p,i+="\n".concat(b,"+").concat(_," ").concat(M),o+="\n".concat(S,"-").concat(_," ").concat(P),I+=2):(i+=o,o="",1!==R&&0!==p||(i+="\n ".concat(M),I++))}if(I>20&&p30)for(N[26]="".concat(y,"...").concat(_);N.length>27;)N.pop();r=1===N.length?a(this,p(t).call(this,"".concat(f," ").concat(N[0]))):a(this,p(t).call(this,"".concat(f,"\n\n").concat(N.join("\n"),"\n")))}else{var v=A(l),T="",I=C[i];"notDeepEqual"===i||"notEqual"===i?(v="".concat(C[i],"\n\n").concat(v)).length>1024&&(v="".concat(v.slice(0,1021),"...")):(T="".concat(A(d)),v.length>512&&(v="".concat(v.slice(0,509),"...")),T.length>512&&(T="".concat(T.slice(0,509),"...")),"deepEqual"===i||"equal"===i?v="".concat(I,"\n\n").concat(v,"\n\nshould equal\n\n"):T=" ".concat(i," ").concat(T)),r=a(this,p(t).call(this,"".concat(v).concat(T)))}return Error.stackTraceLimit=c,r.generatedMessage=!o,Object.defineProperty(s(r),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),r.code="ERR_ASSERTION",r.actual=l,r.expected=d,r.operator=i,Error.captureStackTrace&&Error.captureStackTrace(s(r),u),r.stack,r.name="AssertionError",a(r)}var r,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,e),r=t,(u=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:f.custom,value:function(e,t){return f(this,function(e){for(var t=1;t{"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var a,s,u={};function l(e,t,r){r||(r=Error);var a=function(r){function a(r,i,s){var u;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(u=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}(this,o(a).call(this,function(e,r,n){return"string"==typeof t?t:t(e,r,n)}(r,i,s)))).code=e,u}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}(a,r),a}(r);u[e]=a}function d(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}l("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),l("ERR_INVALID_ARG_TYPE",(function(e,t,o){var i,s,u,l,c;if(void 0===a&&(a=r(9282)),a("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(s="not ",t.substr(0,s.length)===s)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))u="The ".concat(e," ").concat(i," ").concat(d(t,"type"));else{var p=("number"!=typeof c&&(c=0),c+".".length>(l=e).length||-1===l.indexOf(".",c)?"argument":"property");u='The "'.concat(e,'" ').concat(p," ").concat(i," ").concat(d(t,"type"))}return u+". Received type ".concat(n(o))}),TypeError),l("ERR_INVALID_ARG_VALUE",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===s&&(s=r(9539));var o=s.inspect(t);return o.length>128&&(o="".concat(o.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(n,". Received ").concat(o)}),TypeError,RangeError),l("ERR_INVALID_RETURN_VALUE",(function(e,t,r){var o;return o=r&&r.constructor&&r.constructor.name?"instance of ".concat(r.constructor.name):"type ".concat(n(r)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(o,".")}),TypeError),l("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),n=0;n0,"At least one arg needs to be specified");var o="The ",i=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),i){case 1:o+="".concat(t[0]," argument");break;case 2:o+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:o+=t.slice(0,i-1).join(", "),o+=", and ".concat(t[i-1]," arguments")}return"".concat(o," must be specified")}),TypeError),e.exports.codes=u},9158:(e,t,r)=>{"use strict";function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw i}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i=void 0!==/a/g.flags,a=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},s=function(e){var t=[];return e.forEach((function(e,r){return t.push([r,e])})),t},u=Object.is?Object.is:r(609),l=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},d=Number.isNaN?Number.isNaN:r(360);function c(e){return e.call.bind(e)}var p=c(Object.prototype.hasOwnProperty),g=c(Object.prototype.propertyIsEnumerable),f=c(Object.prototype.toString),m=r(9539).types,h=m.isAnyArrayBuffer,y=m.isArrayBufferView,b=m.isDate,S=m.isMap,_=m.isRegExp,C=m.isSet,E=m.isNativeError,A=m.isBoxedPrimitive,N=m.isNumberObject,v=m.isStringObject,T=m.isBooleanObject,I=m.isBigIntObject,O=m.isSymbolObject,D=m.isFloat32Array,R=m.isFloat64Array;function P(e){if(0===e.length||e.length>10)return!0;for(var t=0;t57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function M(e){return Object.keys(e).filter(P).concat(l(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function F(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,o=0,i=Math.min(r,n);o{"use strict";var n=r(2190);e.exports=function(){return n(["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],(function(e){return"function"==typeof r.g[e]}))}},4061:(e,t,r)=>{"use strict";const n=r(6434),{stdout:o,stderr:i}=r(8555),{stringReplaceAll:a,stringEncaseCRLFWithFirstIndex:s}=r(3559),{isArray:u}=Array,l=["ansi","ansi","ansi256","ansi16m"],d=Object.create(null);class c{constructor(e){return p(e)}}const p=e=>{const t={};return((e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const r=o?o.level:0;e.level=void 0===t.level?r:t.level})(t,e),t.template=(...e)=>_(t.template,...e),Object.setPrototypeOf(t,g.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=c,t.template};function g(e){return p(e)}for(const[e,t]of Object.entries(n))d[e]={get(){const r=y(this,h(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};d.visible={get(){const e=y(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const f=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of f)d[e]={get(){const{level:t}=this;return function(...r){const o=h(n.color[l[t]][e](...r),n.color.close,this._styler);return y(this,o,this._isEmpty)}}};for(const e of f)d["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...r){const o=h(n.bgColor[l[t]][e](...r),n.bgColor.close,this._styler);return y(this,o,this._isEmpty)}}};const m=Object.defineProperties((()=>{}),{...d,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),h=(e,t,r)=>{let n,o;return void 0===r?(n=e,o=t):(n=r.openAll+e,o=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:o,parent:r}},y=(e,t,r)=>{const n=(...e)=>u(e[0])&&u(e[0].raw)?b(n,_(n,...e)):b(n,1===e.length?""+e[0]:e.join(" "));return Object.setPrototypeOf(n,m),n._generator=e,n._styler=t,n._isEmpty=r,n},b=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(void 0===r)return t;const{openAll:n,closeAll:o}=r;if(-1!==t.indexOf(""))for(;void 0!==r;)t=a(t,r.close,r.open),r=r.parent;const i=t.indexOf("\n");return-1!==i&&(t=s(t,o,n,i)),n+t+o};let S;const _=(e,...t)=>{const[n]=t;if(!u(n)||!u(n.raw))return t.join(" ");const o=t.slice(1),i=[n.raw[0]];for(let e=1;e{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,r=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,n=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,o=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,i=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function a(e){const t="u"===e[0],r="{"===e[1];return t&&!r&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):i.get(e)||e}function s(e,t){const r=[],i=t.trim().split(/\s*,\s*/g);let s;for(const t of i){const i=Number(t);if(Number.isNaN(i)){if(!(s=t.match(n)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);r.push(s[2].replace(o,((e,t,r)=>t?a(t):r)))}else r.push(i)}return r}function u(e){r.lastIndex=0;const t=[];let n;for(;null!==(n=r.exec(e));){const e=n[1];if(n[2]){const r=s(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function l(e,t){const r={};for(const e of t)for(const t of e.styles)r[t[0]]=e.inverse?null:t.slice(1);let n=e;for(const[e,t]of Object.entries(r))if(Array.isArray(t)){if(!(e in n))throw new Error("Unknown Chalk style: "+e);n=t.length>0?n[e](...t):n[e]}return n}e.exports=(e,r)=>{const n=[],o=[];let i=[];if(r.replace(t,((t,r,s,d,c,p)=>{if(r)i.push(a(r));else if(d){const t=i.join("");i=[],o.push(0===n.length?t:l(e,n)(t)),n.push({inverse:s,styles:u(d)})}else if(c){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");o.push(l(e,n)(i.join(""))),i=[],n.pop()}else i.push(p)})),o.push(i.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return o.join("")}},3559:e=>{"use strict";e.exports={stringReplaceAll:(e,t,r)=>{let n=e.indexOf(t);if(-1===n)return e;const o=t.length;let i=0,a="";do{a+=e.substr(i,n-i)+t+r,i=n+o,n=e.indexOf(t,i)}while(-1!==n);return a+=e.substr(i),a},stringEncaseCRLFWithFirstIndex:(e,t,r,n)=>{let o=0,i="";do{const a="\r"===e[n-1];i+=e.substr(o,(a?n-1:n)-o)+t+(a?"\r\n":"\n")+r,o=n+1,n=e.indexOf("\n",o)}while(-1!==n);return i+=e.substr(o),i}}},714:(e,t)=>{var r;!function(){var n=9007199254740992,o="0123456789",i="abcdefghijklmnopqrstuvwxyz",a=i.toUpperCase(),s=o+"abcdef";function u(e){this.name="UnsupportedError",this.message=e||"This feature is not supported on this platform"}u.prototype=new Error,u.prototype.constructor=u;var l=Array.prototype.slice;function d(e){if(!(this instanceof d))return e||(e=null),null===e?new d:new d(e);if("function"==typeof e)return this.random=e,this;arguments.length&&(this.seed=0);for(var t=0;t100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()r,"Chance: Max specified is out of range with fixed. Max should be, at most, "+r),e=c(e,{min:o,max:r});var i=(this.integer({min:e.min*t,max:e.max*t})/t).toFixed(e.fixed);return parseFloat(i)},d.prototype.integer=function(e){return p((e=c(e,{min:-9007199254740992,max:n})).min>e.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(e.max-e.min+1)+e.min)},d.prototype.natural=function(e){if("number"==typeof(e=c(e,{min:0,max:n})).numerals&&(p(e.numerals<1,"Chance: Numerals cannot be less than one."),e.min=Math.pow(10,e.numerals-1),e.max=Math.pow(10,e.numerals)-1),p(e.min<0,"Chance: Min cannot be less than zero."),e.exclude){for(var t in p(!Array.isArray(e.exclude),"Chance: exclude must be an array."),e.exclude)p(!Number.isInteger(e.exclude[t]),"Chance: exclude must be numbers.");var r=e.min+this.natural({max:e.max-e.min-e.exclude.length}),o=e.exclude.sort();for(var t in o){if(re.max,"Chance: Min cannot be greater than Max.");var t=b.primes[b.primes.length-1];if(e.max>t)for(var r=t+2;r<=e.max;++r)this.is_prime(r)&&b.primes.push(r);var n=b.primes.filter((function(t){return t>=e.min&&t<=e.max}));return this.pick(n)},d.prototype.is_prime=function(e){if(e%1||e<2)return!1;if(e%2==0)return 2===e;if(e%3==0)return 3===e;for(var t=Math.sqrt(e),r=5;r<=t;r+=6)if(e%r==0||e%(r+2)==0)return!1;return!0},d.prototype.hex=function(e){p((e=c(e,{min:0,max:n,casing:"lower"})).min<0,"Chance: Min cannot be less than zero.");var t=this.natural({min:e.min,max:e.max});return"upper"===e.casing?t.toString(16).toUpperCase():t.toString(16)},d.prototype.letter=function(e){e=c(e,{casing:"lower"});var t=this.character({pool:"abcdefghijklmnopqrstuvwxyz"});return"upper"===e.casing&&(t=t.toUpperCase()),t},d.prototype.string=function(e){(e=c(e,{min:5,max:20})).length||(e.length=this.natural({min:e.min,max:e.max})),p(e.length<0,"Chance: Length cannot be less than zero.");var t=e.length;return this.n(this.character,t,e).join("")},f.prototype={substitute:function(){return this.c}},m.prototype={substitute:function(){if(!/[{}\\]/.test(this.c))throw new Error('Invalid escape sequence: "\\'+this.c+'".');return this.c}},h.prototype={replacers:{"#":function(e){return e.character({pool:o})},A:function(e){return e.character({pool:a})},a:function(e){return e.character({pool:i})}},substitute:function(e){var t=this.replacers[this.c];if(!t)throw new Error('Invalid replacement character: "'+this.c+'".');return t(e)}},d.prototype.template=function(e){if(!e)throw new Error("Template string is required");var t=this;return function(e){for(var t=[],r="identity",n=0;ns)throw new RangeError("Chance: num is likely too large for sample set")}return i},d.prototype.n=function(e,t){p("function"!=typeof e,"Chance: The first argument must be a function."),void 0===t&&(t=1);var r=t,n=[],o=l.call(arguments,2);for(r=Math.max(0,r);r--;null)n.push(e.apply(this,o));return n},d.prototype.pad=function(e,t,r){return r=r||"0",(e+="").length>=t?e:new Array(t-e.length+1).join(r)+e},d.prototype.pick=function(e,t){if(0===e.length)throw new RangeError("Chance: Cannot pick() from an empty array");return t&&1!==t?this.shuffle(e).slice(0,t):e[this.natural({max:e.length-1})]},d.prototype.pickone=function(e){if(0===e.length)throw new RangeError("Chance: Cannot pickone() from an empty array");return e[this.natural({max:e.length-1})]},d.prototype.pickset=function(e,t){if(0===t)return[];if(0===e.length)throw new RangeError("Chance: Cannot pickset() from an empty array");if(t<0)throw new RangeError("Chance: Count must be a positive number");if(t&&1!==t){var r=e.slice(0),n=r.length;return this.n((function(){var e=this.natural({max:--n}),t=r[e];return r[e]=r[n],t}),Math.min(n,t))}return[this.pickone(e)]},d.prototype.shuffle=function(e){for(var t,r,n=[],o=0,i=Number(e.length),a=(r=i,Array.apply(null,Array(r)).map((function(e,t){return t}))),s=i-1,u=0;u0&&(o+=n)}if(0===o)throw new RangeError("Chance: No valid entries in array weights");var a,s=this.random()*o,u=0,l=-1;for(i=0;i0){if(s<=u){a=i;break}l=i}i===t.length-1&&(a=l)}var d=e[a];return(r=void 0!==r&&r)&&(e.splice(a,1),t.splice(a,1)),d},d.prototype.paragraph=function(e){var t=(e=c(e)).sentences||this.natural({min:3,max:7}),r=this.n(this.sentence,t),n=!0===e.linebreak?"\n":" ";return r.join(n)},d.prototype.sentence=function(e){var t,r=(e=c(e)).words||this.natural({min:12,max:18}),n=e.punctuation;return t=this.n(this.word,r).join(" "),t=this.capitalize(t),!1===n||/^[.?;!:]$/.test(n)||(n="."),n&&(t+=n),t},d.prototype.syllable=function(e){for(var t,r=(e=c(e)).length||this.natural({min:2,max:3}),n="bcdfghjklmnprstvwz",o="",i=0;i=10&&(r=0);var n=2*r+3*t[8]+4*t[7]+5*t[6]+6*t[5]+7*t[4]+8*t[3]+9*t[2]+10*t[1]+11*t[0];(n=11-n%11)>=10&&(n=0);var o=""+t[0]+t[1]+t[2]+"."+t[3]+t[4]+t[5]+"."+t[6]+t[7]+t[8]+"-"+r+n;return e.formatted?o:o.replace(/\D/g,"")},d.prototype.cnpj=function(e){e=c(e,{formatted:!0});var t=this.n(this.natural,12,{max:12}),r=2*t[11]+3*t[10]+4*t[9]+5*t[8]+6*t[7]+7*t[6]+8*t[5]+9*t[4]+2*t[3]+3*t[2]+4*t[1]+5*t[0];(r=11-r%11)<2&&(r=0);var n=2*r+3*t[11]+4*t[10]+5*t[9]+6*t[8]+7*t[7]+8*t[6]+9*t[5]+2*t[4]+3*t[3]+4*t[2]+5*t[1]+6*t[0];(n=11-n%11)<2&&(n=0);var o=""+t[0]+t[1]+"."+t[2]+t[3]+t[4]+"."+t[5]+t[6]+t[7]+"/"+t[8]+t[9]+t[10]+t[11]+"-"+r+n;return e.formatted?o:o.replace(/\D/g,"")},d.prototype.first=function(e){return e=c(e,{gender:this.gender(),nationality:"en"}),this.pick(this.get("firstNames")[e.gender.toLowerCase()][e.nationality.toLowerCase()])},d.prototype.profession=function(e){return(e=c(e)).rank?this.pick(["Apprentice ","Junior ","Senior ","Lead "])+this.pick(this.get("profession")):this.pick(this.get("profession"))},d.prototype.company=function(){return this.pick(this.get("company"))},d.prototype.gender=function(e){return e=c(e,{extraGenders:[]}),this.pick(["Male","Female"].concat(e.extraGenders))},d.prototype.last=function(e){if("*"===(e=c(e,{nationality:"*"})).nationality){var t=[],r=this.get("lastNames");return Object.keys(r).forEach((function(e){t=t.concat(r[e])})),this.pick(t)}return this.pick(this.get("lastNames")[e.nationality.toLowerCase()])},d.prototype.israelId=function(){for(var e=this.string({pool:"0123456789",length:8}),t=0,r=0;r","<=",">=","="]);e.range&&(t=e.range);var r="";return e.include_prerelease&&(r=this.weighted(["","-dev","-beta","-alpha"],[50,10,5,1])),t+this.rpg("3d10").join(".")+r},d.prototype.tlds=function(){return["com","org","edu","gov","co.uk","net","io","ac","ad","ae","af","ag","ai","al","am","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","su","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw"]},d.prototype.tld=function(){return this.pick(this.tlds())},d.prototype.twitter=function(){return"@"+this.word()},d.prototype.url=function(e){var t=(e=c(e,{protocol:"http",domain:this.domain(e),domain_prefix:"",path:this.word(),extensions:[]})).extensions.length>0?"."+this.pick(e.extensions):"",r=e.domain_prefix?e.domain_prefix+"."+e.domain:e.domain;return e.protocol+"://"+r+"/"+e.path+t},d.prototype.port=function(){return this.integer({min:0,max:65535})},d.prototype.locale=function(e){return(e=c(e)).region?this.pick(this.get("locale_regions")):this.pick(this.get("locale_languages"))},d.prototype.locales=function(e){return(e=c(e)).region?this.get("locale_regions"):this.get("locale_languages")},d.prototype.loremPicsum=function(e){var t=(e=c(e,{width:500,height:500,greyscale:!1,blurred:!1})).greyscale?"g/":"",r=e.blurred?"/?blur":"/?random";return"https://picsum.photos/"+t+e.width+"/"+e.height+r},d.prototype.address=function(e){return e=c(e),this.natural({min:5,max:2e3})+" "+this.street(e)},d.prototype.altitude=function(e){return e=c(e,{fixed:5,min:0,max:8848}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},d.prototype.areacode=function(e){e=c(e,{parens:!0});var t=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return e.parens?"("+t+")":t},d.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},d.prototype.coordinates=function(e){return this.latitude(e)+", "+this.longitude(e)},d.prototype.countries=function(){return this.get("countries")},d.prototype.country=function(e){e=c(e);var t=this.pick(this.countries());return e.raw?t:e.full?t.name:t.abbreviation},d.prototype.depth=function(e){return e=c(e,{fixed:5,min:-10994,max:0}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},d.prototype.geohash=function(e){return e=c(e,{length:7}),this.string({length:e.length,pool:"0123456789bcdefghjkmnpqrstuvwxyz"})},d.prototype.geojson=function(e){return this.latitude(e)+", "+this.longitude(e)+", "+this.altitude(e)},d.prototype.latitude=function(e){const[t,r,n]=["ddm","dms","dd"],o=(e=c(e,e&&e.format&&[t,r].includes(e.format.toLowerCase())?{min:0,max:89,fixed:4}:{fixed:5,min:-90,max:90,format:n})).format.toLowerCase();switch(o!==t&&o!==r||(p(e.min<0||e.min>89,"Chance: Min specified is out of range. Should be between 0 - 89"),p(e.max<0||e.max>89,"Chance: Max specified is out of range. Should be between 0 - 89"),p(e.fixed>4,"Chance: Fixed specified should be below or equal to 4")),o){case t:return this.integer({min:e.min,max:e.max})+"°"+this.floating({min:0,max:59,fixed:e.fixed});case r:return this.integer({min:e.min,max:e.max})+"°"+this.integer({min:0,max:59})+"’"+this.floating({min:0,max:59,fixed:e.fixed})+"”";case n:default:return this.floating({min:e.min,max:e.max,fixed:e.fixed})}},d.prototype.longitude=function(e){const[t,r,n]=["ddm","dms","dd"],o=(e=c(e,e&&e.format&&[t,r].includes(e.format.toLowerCase())?{min:0,max:179,fixed:4}:{fixed:5,min:-180,max:180,format:n})).format.toLowerCase();switch(o!==t&&o!==r||(p(e.min<0||e.min>179,"Chance: Min specified is out of range. Should be between 0 - 179"),p(e.max<0||e.max>179,"Chance: Max specified is out of range. Should be between 0 - 179"),p(e.fixed>4,"Chance: Fixed specified should be below or equal to 4")),o){case t:return this.integer({min:e.min,max:e.max})+"°"+this.floating({min:0,max:59.9999,fixed:e.fixed});case r:return this.integer({min:e.min,max:e.max})+"°"+this.integer({min:0,max:59})+"’"+this.floating({min:0,max:59.9999,fixed:e.fixed})+"”";case n:default:return this.floating({min:e.min,max:e.max,fixed:e.fixed})}},d.prototype.phone=function(e){var t,r,n=this,o=function(e){var t=[];return e.sections.forEach((function(e){t.push(n.string({pool:"0123456789",length:e}))})),e.area+t.join(" ")};switch((e=c(e,{formatted:!0,country:"us",mobile:!1})).formatted||(e.parens=!1),e.country){case"fr":e.mobile?(t=this.pick(["06","07"])+n.string({pool:"0123456789",length:8}),r=e.formatted?t.match(/../g).join(" "):t):(t=this.pick(["01"+this.pick(["30","34","39","40","41","42","43","44","45","46","47","48","49","53","55","56","58","60","64","69","70","72","73","74","75","76","77","78","79","80","81","82","83"])+n.string({pool:"0123456789",length:6}),"02"+this.pick(["14","18","22","23","28","29","30","31","32","33","34","35","36","37","38","40","41","43","44","45","46","47","48","49","50","51","52","53","54","56","57","61","62","69","72","76","77","78","85","90","96","97","98","99"])+n.string({pool:"0123456789",length:6}),"03"+this.pick(["10","20","21","22","23","24","25","26","27","28","29","39","44","45","51","52","54","55","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","80","81","82","83","84","85","86","87","88","89","90"])+n.string({pool:"0123456789",length:6}),"04"+this.pick(["11","13","15","20","22","26","27","30","32","34","37","42","43","44","50","56","57","63","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","88","89","90","91","92","93","94","95","97","98"])+n.string({pool:"0123456789",length:6}),"05"+this.pick(["08","16","17","19","24","31","32","33","34","35","40","45","46","47","49","53","55","56","57","58","59","61","62","63","64","65","67","79","81","82","86","87","90","94"])+n.string({pool:"0123456789",length:6}),"09"+n.string({pool:"0123456789",length:8})]),r=e.formatted?t.match(/../g).join(" "):t);break;case"uk":e.mobile?(t=this.pick([{area:"07"+this.pick(["4","5","7","8","9"]),sections:[2,6]},{area:"07624 ",sections:[6]}]),r=e.formatted?o(t):o(t).replace(" ","")):(t=this.pick([{area:"01"+this.character({pool:"234569"})+"1 ",sections:[3,4]},{area:"020 "+this.character({pool:"378"}),sections:[3,4]},{area:"023 "+this.character({pool:"89"}),sections:[3,4]},{area:"024 7",sections:[3,4]},{area:"028 "+this.pick(["25","28","37","71","82","90","92","95"]),sections:[2,4]},{area:"012"+this.pick(["04","08","54","76","97","98"])+" ",sections:[6]},{area:"013"+this.pick(["63","64","84","86"])+" ",sections:[6]},{area:"014"+this.pick(["04","20","60","61","80","88"])+" ",sections:[6]},{area:"015"+this.pick(["24","27","62","66"])+" ",sections:[6]},{area:"016"+this.pick(["06","29","35","47","59","95"])+" ",sections:[6]},{area:"017"+this.pick(["26","44","50","68"])+" ",sections:[6]},{area:"018"+this.pick(["27","37","84","97"])+" ",sections:[6]},{area:"019"+this.pick(["00","05","35","46","49","63","95"])+" ",sections:[6]}]),r=e.formatted?o(t):o(t).replace(" ","","g"));break;case"za":e.mobile?(t=this.pick(["060"+this.pick(["3","4","5","6","7","8","9"])+n.string({pool:"0123456789",length:6}),"061"+this.pick(["0","1","2","3","4","5","8"])+n.string({pool:"0123456789",length:6}),"06"+n.string({pool:"0123456789",length:7}),"071"+this.pick(["0","1","2","3","4","5","6","7","8","9"])+n.string({pool:"0123456789",length:6}),"07"+this.pick(["2","3","4","6","7","8","9"])+n.string({pool:"0123456789",length:7}),"08"+this.pick(["0","1","2","3","4","5"])+n.string({pool:"0123456789",length:7})]),r=e.formatted||t):(t=this.pick(["01"+this.pick(["0","1","2","3","4","5","6","7","8"])+n.string({pool:"0123456789",length:7}),"02"+this.pick(["1","2","3","4","7","8"])+n.string({pool:"0123456789",length:7}),"03"+this.pick(["1","2","3","5","6","9"])+n.string({pool:"0123456789",length:7}),"04"+this.pick(["1","2","3","4","5","6","7","8","9"])+n.string({pool:"0123456789",length:7}),"05"+this.pick(["1","3","4","6","7","8"])+n.string({pool:"0123456789",length:7})]),r=e.formatted||t);break;case"us":var i=this.areacode(e).toString(),a=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),s=this.natural({min:1e3,max:9999}).toString();r=e.formatted?i+" "+a+"-"+s:i+a+s;break;case"br":var u,l=this.pick(["11","12","13","14","15","16","17","18","19","21","22","24","27","28","31","32","33","34","35","37","38","41","42","43","44","45","46","47","48","49","51","53","54","55","61","62","63","64","65","66","67","68","69","71","73","74","75","77","79","81","82","83","84","85","86","87","88","89","91","92","93","94","95","96","97","98","99"]);u=e.mobile?"9"+n.string({pool:"0123456789",length:4}):this.natural({min:2e3,max:5999}).toString();var d=n.string({pool:"0123456789",length:4});r=e.formatted?"("+l+") "+u+"-"+d:l+u+d}return r},d.prototype.postal=function(){return this.character({pool:"XVTSRPNKLMHJGECBA"})+this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+" "+(this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+this.natural({max:9}))},d.prototype.postcode=function(){return this.pick(this.get("postcodeAreas")).code+this.natural({max:9})+(this.bool()?this.character({alpha:!0,casing:"upper"}):"")+" "+(this.natural({max:9})+(this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})))},d.prototype.counties=function(e){return e=c(e,{country:"uk"}),this.get("counties")[e.country.toLowerCase()]},d.prototype.county=function(e){return this.pick(this.counties(e)).name},d.prototype.provinces=function(e){return e=c(e,{country:"ca"}),this.get("provinces")[e.country.toLowerCase()]},d.prototype.province=function(e){return e&&e.full?this.pick(this.provinces(e)).name:this.pick(this.provinces(e)).abbreviation},d.prototype.state=function(e){return e&&e.full?this.pick(this.states(e)).name:this.pick(this.states(e)).abbreviation},d.prototype.states=function(e){var t;switch((e=c(e,{country:"us",us_states_and_dc:!0})).country.toLowerCase()){case"us":var r=this.get("us_states_and_dc"),n=this.get("territories"),o=this.get("armed_forces");t=[],e.us_states_and_dc&&(t=t.concat(r)),e.territories&&(t=t.concat(n)),e.armed_forces&&(t=t.concat(o));break;case"it":case"mx":t=this.get("country_regions")[e.country.toLowerCase()];break;case"uk":t=this.get("counties")[e.country.toLowerCase()]}return t},d.prototype.street=function(e){var t;switch((e=c(e,{country:"us",syllables:2})).country.toLowerCase()){case"us":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t+=" ",t+=e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name;break;case"it":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t=(e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name)+" "+t}return t},d.prototype.street_suffix=function(e){return e=c(e,{country:"us"}),this.pick(this.street_suffixes(e))},d.prototype.street_suffixes=function(e){return e=c(e,{country:"us"}),this.get("street_suffixes")[e.country.toLowerCase()]},d.prototype.zip=function(e){var t=this.n(this.natural,5,{max:9});return e&&!0===e.plusfour&&(t.push("-"),t=t.concat(this.n(this.natural,4,{max:9}))),t.join("")},d.prototype.ampm=function(){return this.bool()?"am":"pm"},d.prototype.date=function(e){var t,r;if(e&&(e.min||e.max)){var n=void 0!==(e=c(e,{american:!0,string:!1})).min?e.min.getTime():1,o=void 0!==e.max?e.max.getTime():864e13;r=new Date(this.integer({min:n,max:o}))}else{var i=this.month({raw:!0}),a=i.days;e&&e.month&&(a=this.get("months")[(e.month%12+12)%12].days),e=c(e,{year:parseInt(this.year(),10),month:i.numeric-1,day:this.natural({min:1,max:a}),hour:this.hour({twentyfour:!0}),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1}),r=new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond)}return t=e.american?r.getMonth()+1+"/"+r.getDate()+"/"+r.getFullYear():r.getDate()+"/"+(r.getMonth()+1)+"/"+r.getFullYear(),e.string?t:r},d.prototype.hammertime=function(e){return this.date(e).getTime()},d.prototype.hour=function(e){return p((e=c(e,{min:e&&e.twentyfour?0:1,max:e&&e.twentyfour?23:12})).min<0,"Chance: Min cannot be less than 0."),p(e.twentyfour&&e.max>23,"Chance: Max cannot be greater than 23 for twentyfour option."),p(!e.twentyfour&&e.max>12,"Chance: Max cannot be greater than 12."),p(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},d.prototype.millisecond=function(){return this.natural({max:999})},d.prototype.minute=d.prototype.second=function(e){return p((e=c(e,{min:0,max:59})).min<0,"Chance: Min cannot be less than 0."),p(e.max>59,"Chance: Max cannot be greater than 59."),p(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},d.prototype.month=function(e){p((e=c(e,{min:1,max:12})).min<1,"Chance: Min cannot be less than 1."),p(e.max>12,"Chance: Max cannot be greater than 12."),p(e.min>e.max,"Chance: Min cannot be greater than Max.");var t=this.pick(this.months().slice(e.min-1,e.max));return e.raw?t:t.name},d.prototype.months=function(){return this.get("months")},d.prototype.second=function(){return this.natural({max:59})},d.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},d.prototype.weekday=function(e){var t=["Monday","Tuesday","Wednesday","Thursday","Friday"];return(e=c(e,{weekday_only:!1})).weekday_only||(t.push("Saturday"),t.push("Sunday")),this.pickone(t)},d.prototype.year=function(e){return(e=c(e,{min:(new Date).getFullYear()})).max=void 0!==e.max?e.max:e.min+100,this.natural(e).toString()},d.prototype.cc=function(e){var t,r,n;return r=(t=(e=c(e)).type?this.cc_type({name:e.type,raw:!0}):this.cc_type({raw:!0})).prefix.split(""),n=t.length-t.prefix.length-1,(r=r.concat(this.n(this.integer,n,{min:0,max:9}))).push(this.luhn_calculate(r.join(""))),r.join("")},d.prototype.cc_types=function(){return this.get("cc_types")},d.prototype.cc_type=function(e){e=c(e);var t=this.cc_types(),r=null;if(e.name){for(var n=0;n3&&(r=t?r.substr(0,3):r[0]+r.substr(2,2)),r.length<3&&(n=r,r=e.toUpperCase().split("").map((function(e){return-1!=="AEIOU".indexOf(e)?e:void 0})).join("").substr(0,3-n.length)),n+=r),n};return a=a.concat(s(n,!0),s(r),function(e,t,r){return e.getFullYear().toString().substr(2)+["A","B","C","D","E","H","L","M","P","R","S","T"][e.getMonth()]+r.pad(e.getDate()+("female"===t.toLowerCase()?40:0),2)}(o,t,this),i.toUpperCase().split("")).join(""),(a+=function(e){for(var t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",r="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ",n="ABCDEFGHIJKLMNOPQRSTUVWXYZ",o=0,i=0;i<15;i++)o+=i%2!=0?n.indexOf(r[t.indexOf(e[i])]):"BAKPLCQDREVOSFTGUHMINJWZYX".indexOf(r[t.indexOf(e[i])]);return n[o%26]}(a.toUpperCase())).toUpperCase()},d.prototype.pl_pesel=function(){for(var e=this.natural({min:1,max:9999999999}),t=this.pad(e,10).split(""),r=0;r0;o--)n[o-1]=this.natural({min:1,max:r[1]});return void 0!==t.sum&&t.sum?n.reduce((function(e,t){return e+t})):n}throw new RangeError("Chance: A type of die roll must be included")},d.prototype.guid=function(e){e=c(e,{version:5});var t="abcdef1234567890";return this.string({pool:t,length:8})+"-"+this.string({pool:t,length:4})+"-"+e.version+this.string({pool:t,length:3})+"-"+this.string({pool:"ab89",length:1})+this.string({pool:t,length:3})+"-"+this.string({pool:t,length:12})},d.prototype.hash=function(e){var t="upper"===(e=c(e,{length:40,casing:"lower"})).casing?s.toUpperCase():s;return this.string({pool:t,length:e.length})},d.prototype.luhn_check=function(e){var t=e.toString();return+t.substring(t.length-1)===this.luhn_calculate(+t.substring(0,t.length-1))},d.prototype.luhn_calculate=function(e){for(var t,r=e.toString().split("").reverse(),n=0,o=0,i=r.length;i>o;++o)t=+r[o],o%2==0&&(t*=2)>9&&(t-=9),n+=t;return 9*n%10},d.prototype.md5=function(e){var t={str:"",key:null,raw:!1};if(e)if("string"==typeof e)t.str=e,e={};else{if("object"!=typeof e)return null;if("Array"===e.constructor)return null}else t.str=this.string(),e={};if(!(t=c(e,t)).str)throw new Error("A parameter is required to return an md5 hash.");return this.bimd5.md5(t.str,t.key,t.raw)},d.prototype.file=function(e){var t,r=e||{},n="fileExtension",o=Object.keys(this.get("fileExtension"));if(t=this.word({length:r.length}),r.extension)return t+"."+r.extension;if(r.extensions){if(Array.isArray(r.extensions))return t+"."+this.pickone(r.extensions);if(r.extensions.constructor===Object){var i=r.extensions,a=Object.keys(i);return t+"."+this.pickone(i[this.pickone(a)])}throw new Error("Chance: Extensions must be an Array or Object")}if(r.fileType){var s=r.fileType;if(-1!==o.indexOf(s))return t+"."+this.pickone(this.get(n)[s]);throw new RangeError("Chance: Expect file type value to be 'raster', 'vector', '3d' or 'document'")}return t+"."+this.pickone(this.get(n)[this.pickone(o)])};var b={firstNames:{male:{en:["James","John","Robert","Michael","William","David","Richard","Joseph","Charles","Thomas","Christopher","Daniel","Matthew","George","Donald","Anthony","Paul","Mark","Edward","Steven","Kenneth","Andrew","Brian","Joshua","Kevin","Ronald","Timothy","Jason","Jeffrey","Frank","Gary","Ryan","Nicholas","Eric","Stephen","Jacob","Larry","Jonathan","Scott","Raymond","Justin","Brandon","Gregory","Samuel","Benjamin","Patrick","Jack","Henry","Walter","Dennis","Jerry","Alexander","Peter","Tyler","Douglas","Harold","Aaron","Jose","Adam","Arthur","Zachary","Carl","Nathan","Albert","Kyle","Lawrence","Joe","Willie","Gerald","Roger","Keith","Jeremy","Terry","Harry","Ralph","Sean","Jesse","Roy","Louis","Billy","Austin","Bruce","Eugene","Christian","Bryan","Wayne","Russell","Howard","Fred","Ethan","Jordan","Philip","Alan","Juan","Randy","Vincent","Bobby","Dylan","Johnny","Phillip","Victor","Clarence","Ernest","Martin","Craig","Stanley","Shawn","Travis","Bradley","Leonard","Earl","Gabriel","Jimmy","Francis","Todd","Noah","Danny","Dale","Cody","Carlos","Allen","Frederick","Logan","Curtis","Alex","Joel","Luis","Norman","Marvin","Glenn","Tony","Nathaniel","Rodney","Melvin","Alfred","Steve","Cameron","Chad","Edwin","Caleb","Evan","Antonio","Lee","Herbert","Jeffery","Isaac","Derek","Ricky","Marcus","Theodore","Elijah","Luke","Jesus","Eddie","Troy","Mike","Dustin","Ray","Adrian","Bernard","Leroy","Angel","Randall","Wesley","Ian","Jared","Mason","Hunter","Calvin","Oscar","Clifford","Jay","Shane","Ronnie","Barry","Lucas","Corey","Manuel","Leo","Tommy","Warren","Jackson","Isaiah","Connor","Don","Dean","Jon","Julian","Miguel","Bill","Lloyd","Charlie","Mitchell","Leon","Jerome","Darrell","Jeremiah","Alvin","Brett","Seth","Floyd","Jim","Blake","Micheal","Gordon","Trevor","Lewis","Erik","Edgar","Vernon","Devin","Gavin","Jayden","Chris","Clyde","Tom","Derrick","Mario","Brent","Marc","Herman","Chase","Dominic","Ricardo","Franklin","Maurice","Max","Aiden","Owen","Lester","Gilbert","Elmer","Gene","Francisco","Glen","Cory","Garrett","Clayton","Sam","Jorge","Chester","Alejandro","Jeff","Harvey","Milton","Cole","Ivan","Andre","Duane","Landon"],it:["Adolfo","Alberto","Aldo","Alessandro","Alessio","Alfredo","Alvaro","Andrea","Angelo","Angiolo","Antonino","Antonio","Attilio","Benito","Bernardo","Bruno","Carlo","Cesare","Christian","Claudio","Corrado","Cosimo","Cristian","Cristiano","Daniele","Dario","David","Davide","Diego","Dino","Domenico","Duccio","Edoardo","Elia","Elio","Emanuele","Emiliano","Emilio","Enrico","Enzo","Ettore","Fabio","Fabrizio","Federico","Ferdinando","Fernando","Filippo","Francesco","Franco","Gabriele","Giacomo","Giampaolo","Giampiero","Giancarlo","Gianfranco","Gianluca","Gianmarco","Gianni","Gino","Giorgio","Giovanni","Giuliano","Giulio","Giuseppe","Graziano","Gregorio","Guido","Iacopo","Jacopo","Lapo","Leonardo","Lorenzo","Luca","Luciano","Luigi","Manuel","Marcello","Marco","Marino","Mario","Massimiliano","Massimo","Matteo","Mattia","Maurizio","Mauro","Michele","Mirko","Mohamed","Nello","Neri","Niccolò","Nicola","Osvaldo","Otello","Paolo","Pier Luigi","Piero","Pietro","Raffaele","Remo","Renato","Renzo","Riccardo","Roberto","Rolando","Romano","Salvatore","Samuele","Sandro","Sergio","Silvano","Simone","Stefano","Thomas","Tommaso","Ubaldo","Ugo","Umberto","Valerio","Valter","Vasco","Vincenzo","Vittorio"],nl:["Aaron","Abel","Adam","Adriaan","Albert","Alexander","Ali","Arjen","Arno","Bart","Bas","Bastiaan","Benjamin","Bob","Boris","Bram","Brent","Cas","Casper","Chris","Christiaan","Cornelis","Daan","Daley","Damian","Dani","Daniel","Daniël","David","Dean","Dirk","Dylan","Egbert","Elijah","Erik","Erwin","Evert","Ezra","Fabian","Fedde","Finn","Florian","Floris","Frank","Frans","Frederik","Freek","Geert","Gerard","Gerben","Gerrit","Gijs","Guus","Hans","Hendrik","Henk","Herman","Hidde","Hugo","Jaap","Jan Jaap","Jan-Willem","Jack","Jacob","Jan","Jason","Jasper","Jayden","Jelle","Jelte","Jens","Jeroen","Jesse","Jim","Job","Joep","Johannes","John","Jonathan","Joris","Joshua","Joël","Julian","Kees","Kevin","Koen","Lars","Laurens","Leendert","Lennard","Lodewijk","Luc","Luca","Lucas","Lukas","Luuk","Maarten","Marcus","Martijn","Martin","Matthijs","Maurits","Max","Mees","Melle","Mick","Mika","Milan","Mohamed","Mohammed","Morris","Muhammed","Nathan","Nick","Nico","Niek","Niels","Noah","Noud","Olivier","Oscar","Owen","Paul","Pepijn","Peter","Pieter","Pim","Quinten","Reinier","Rens","Robin","Ruben","Sam","Samuel","Sander","Sebastiaan","Sem","Sep","Sepp","Siem","Simon","Stan","Stef","Steven","Stijn","Sven","Teun","Thijmen","Thijs","Thomas","Tijn","Tim","Timo","Tobias","Tom","Victor","Vince","Willem","Wim","Wouter","Yusuf"],fr:["Aaron","Abdon","Abel","Abélard","Abelin","Abondance","Abraham","Absalon","Acace","Achaire","Achille","Adalard","Adalbald","Adalbéron","Adalbert","Adalric","Adam","Adegrin","Adel","Adelin","Andelin","Adelphe","Adam","Adéodat","Adhémar","Adjutor","Adolphe","Adonis","Adon","Adrien","Agapet","Agathange","Agathon","Agilbert","Agénor","Agnan","Aignan","Agrippin","Aimable","Aimé","Alain","Alban","Albin","Aubin","Albéric","Albert","Albertet","Alcibiade","Alcide","Alcée","Alcime","Aldonce","Aldric","Aldéric","Aleaume","Alexandre","Alexis","Alix","Alliaume","Aleaume","Almine","Almire","Aloïs","Alphée","Alphonse","Alpinien","Alverède","Amalric","Amaury","Amandin","Amant","Ambroise","Amédée","Amélien","Amiel","Amour","Anaël","Anastase","Anatole","Ancelin","Andéol","Andoche","André","Andoche","Ange","Angelin","Angilbe","Anglebert","Angoustan","Anicet","Anne","Annibal","Ansbert","Anselme","Anthelme","Antheaume","Anthime","Antide","Antoine","Antonius","Antonin","Apollinaire","Apollon","Aquilin","Arcade","Archambaud","Archambeau","Archange","Archibald","Arian","Ariel","Ariste","Aristide","Armand","Armel","Armin","Arnould","Arnaud","Arolde","Arsène","Arsinoé","Arthaud","Arthème","Arthur","Ascelin","Athanase","Aubry","Audebert","Audouin","Audran","Audric","Auguste","Augustin","Aurèle","Aurélien","Aurian","Auxence","Axel","Aymard","Aymeric","Aymon","Aymond","Balthazar","Baptiste","Barnabé","Barthélemy","Bartimée","Basile","Bastien","Baudouin","Bénigne","Benjamin","Benoît","Bérenger","Bérard","Bernard","Bertrand","Blaise","Bon","Boniface","Bouchard","Brice","Brieuc","Bruno","Brunon","Calixte","Calliste","Camélien","Camille","Camillien","Candide","Caribert","Carloman","Cassandre","Cassien","Cédric","Céleste","Célestin","Célien","Césaire","César","Charles","Charlemagne","Childebert","Chilpéric","Chrétien","Christian","Christodule","Christophe","Chrysostome","Clarence","Claude","Claudien","Cléandre","Clément","Clotaire","Côme","Constance","Constant","Constantin","Corentin","Cyprien","Cyriaque","Cyrille","Cyril","Damien","Daniel","David","Delphin","Denis","Désiré","Didier","Dieudonné","Dimitri","Dominique","Dorian","Dorothée","Edgard","Edmond","Édouard","Éleuthère","Élie","Élisée","Émeric","Émile","Émilien","Emmanuel","Enguerrand","Épiphane","Éric","Esprit","Ernest","Étienne","Eubert","Eudes","Eudoxe","Eugène","Eusèbe","Eustache","Évariste","Évrard","Fabien","Fabrice","Falba","Félicité","Félix","Ferdinand","Fiacre","Fidèle","Firmin","Flavien","Flodoard","Florent","Florentin","Florestan","Florian","Fortuné","Foulques","Francisque","François","Français","Franciscus","Francs","Frédéric","Fulbert","Fulcran","Fulgence","Gabin","Gabriel","Gaël","Garnier","Gaston","Gaspard","Gatien","Gaud","Gautier","Gédéon","Geoffroy","Georges","Géraud","Gérard","Gerbert","Germain","Gervais","Ghislain","Gilbert","Gilles","Girart","Gislebert","Gondebaud","Gonthier","Gontran","Gonzague","Grégoire","Guérin","Gui","Guillaume","Gustave","Guy","Guyot","Hardouin","Hector","Hédelin","Hélier","Henri","Herbert","Herluin","Hervé","Hilaire","Hildebert","Hincmar","Hippolyte","Honoré","Hubert","Hugues","Innocent","Isabeau","Isidore","Jacques","Japhet","Jason","Jean","Jeannel","Jeannot","Jérémie","Jérôme","Joachim","Joanny","Job","Jocelyn","Joël","Johan","Jonas","Jonathan","Joseph","Josse","Josselin","Jourdain","Jude","Judicaël","Jules","Julien","Juste","Justin","Lambert","Landry","Laurent","Lazare","Léandre","Léon","Léonard","Léopold","Leu","Loup","Leufroy","Libère","Liétald","Lionel","Loïc","Longin","Lorrain","Lorraine","Lothaire","Louis","Loup","Luc","Lucas","Lucien","Ludolphe","Ludovic","Macaire","Malo","Mamert","Manassé","Marc","Marceau","Marcel","Marcelin","Marius","Marseille","Martial","Martin","Mathurin","Matthias","Mathias","Matthieu","Maugis","Maurice","Mauricet","Maxence","Maxime","Maximilien","Mayeul","Médéric","Melchior","Mence","Merlin","Mérovée","Michaël","Michel","Moïse","Morgan","Nathan","Nathanaël","Narcisse","Néhémie","Nestor","Nestor","Nicéphore","Nicolas","Noé","Noël","Norbert","Normand","Normands","Octave","Odilon","Odon","Oger","Olivier","Oury","Pacôme","Palémon","Parfait","Pascal","Paterne","Patrice","Paul","Pépin","Perceval","Philémon","Philibert","Philippe","Philothée","Pie","Pierre","Pierrick","Prosper","Quentin","Raoul","Raphaël","Raymond","Régis","Réjean","Rémi","Renaud","René","Reybaud","Richard","Robert","Roch","Rodolphe","Rodrigue","Roger","Roland","Romain","Romuald","Roméo","Rome","Ronan","Roselin","Salomon","Samuel","Savin","Savinien","Scholastique","Sébastien","Séraphin","Serge","Séverin","Sidoine","Sigebert","Sigismond","Silvère","Simon","Siméon","Sixte","Stanislas","Stéphane","Stephan","Sylvain","Sylvestre","Tancrède","Tanguy","Taurin","Théodore","Théodose","Théophile","Théophraste","Thibault","Thibert","Thierry","Thomas","Timoléon","Timothée","Titien","Tonnin","Toussaint","Trajan","Tristan","Turold","Tim","Ulysse","Urbain","Valentin","Valère","Valéry","Venance","Venant","Venceslas","Vianney","Victor","Victorien","Victorin","Vigile","Vincent","Vital","Vitalien","Vivien","Waleran","Wandrille","Xavier","Xénophon","Yves","Zacharie","Zaché","Zéphirin"]},female:{en:["Mary","Emma","Elizabeth","Minnie","Margaret","Ida","Alice","Bertha","Sarah","Annie","Clara","Ella","Florence","Cora","Martha","Laura","Nellie","Grace","Carrie","Maude","Mabel","Bessie","Jennie","Gertrude","Julia","Hattie","Edith","Mattie","Rose","Catherine","Lillian","Ada","Lillie","Helen","Jessie","Louise","Ethel","Lula","Myrtle","Eva","Frances","Lena","Lucy","Edna","Maggie","Pearl","Daisy","Fannie","Josephine","Dora","Rosa","Katherine","Agnes","Marie","Nora","May","Mamie","Blanche","Stella","Ellen","Nancy","Effie","Sallie","Nettie","Della","Lizzie","Flora","Susie","Maud","Mae","Etta","Harriet","Sadie","Caroline","Katie","Lydia","Elsie","Kate","Susan","Mollie","Alma","Addie","Georgia","Eliza","Lulu","Nannie","Lottie","Amanda","Belle","Charlotte","Rebecca","Ruth","Viola","Olive","Amelia","Hannah","Jane","Virginia","Emily","Matilda","Irene","Kathryn","Esther","Willie","Henrietta","Ollie","Amy","Rachel","Sara","Estella","Theresa","Augusta","Ora","Pauline","Josie","Lola","Sophia","Leona","Anne","Mildred","Ann","Beulah","Callie","Lou","Delia","Eleanor","Barbara","Iva","Louisa","Maria","Mayme","Evelyn","Estelle","Nina","Betty","Marion","Bettie","Dorothy","Luella","Inez","Lela","Rosie","Allie","Millie","Janie","Cornelia","Victoria","Ruby","Winifred","Alta","Celia","Christine","Beatrice","Birdie","Harriett","Mable","Myra","Sophie","Tillie","Isabel","Sylvia","Carolyn","Isabelle","Leila","Sally","Ina","Essie","Bertie","Nell","Alberta","Katharine","Lora","Rena","Mina","Rhoda","Mathilda","Abbie","Eula","Dollie","Hettie","Eunice","Fanny","Ola","Lenora","Adelaide","Christina","Lelia","Nelle","Sue","Johanna","Lilly","Lucinda","Minerva","Lettie","Roxie","Cynthia","Helena","Hilda","Hulda","Bernice","Genevieve","Jean","Cordelia","Marian","Francis","Jeanette","Adeline","Gussie","Leah","Lois","Lura","Mittie","Hallie","Isabella","Olga","Phoebe","Teresa","Hester","Lida","Lina","Winnie","Claudia","Marguerite","Vera","Cecelia","Bess","Emilie","Rosetta","Verna","Myrtie","Cecilia","Elva","Olivia","Ophelia","Georgie","Elnora","Violet","Adele","Lily","Linnie","Loretta","Madge","Polly","Virgie","Eugenia","Lucile","Lucille","Mabelle","Rosalie"],it:["Ada","Adriana","Alessandra","Alessia","Alice","Angela","Anna","Anna Maria","Annalisa","Annita","Annunziata","Antonella","Arianna","Asia","Assunta","Aurora","Barbara","Beatrice","Benedetta","Bianca","Bruna","Camilla","Carla","Carlotta","Carmela","Carolina","Caterina","Catia","Cecilia","Chiara","Cinzia","Clara","Claudia","Costanza","Cristina","Daniela","Debora","Diletta","Dina","Donatella","Elena","Eleonora","Elisa","Elisabetta","Emanuela","Emma","Eva","Federica","Fernanda","Fiorella","Fiorenza","Flora","Franca","Francesca","Gabriella","Gaia","Gemma","Giada","Gianna","Gina","Ginevra","Giorgia","Giovanna","Giulia","Giuliana","Giuseppa","Giuseppina","Grazia","Graziella","Greta","Ida","Ilaria","Ines","Iolanda","Irene","Irma","Isabella","Jessica","Laura","Lea","Letizia","Licia","Lidia","Liliana","Lina","Linda","Lisa","Livia","Loretta","Luana","Lucia","Luciana","Lucrezia","Luisa","Manuela","Mara","Marcella","Margherita","Maria","Maria Cristina","Maria Grazia","Maria Luisa","Maria Pia","Maria Teresa","Marina","Marisa","Marta","Martina","Marzia","Matilde","Melissa","Michela","Milena","Mirella","Monica","Natalina","Nella","Nicoletta","Noemi","Olga","Paola","Patrizia","Piera","Pierina","Raffaella","Rebecca","Renata","Rina","Rita","Roberta","Rosa","Rosanna","Rossana","Rossella","Sabrina","Sandra","Sara","Serena","Silvana","Silvia","Simona","Simonetta","Sofia","Sonia","Stefania","Susanna","Teresa","Tina","Tiziana","Tosca","Valentina","Valeria","Vanda","Vanessa","Vanna","Vera","Veronica","Vilma","Viola","Virginia","Vittoria"],nl:["Ada","Arianne","Afke","Amanda","Amber","Amy","Aniek","Anita","Anja","Anna","Anne","Annelies","Annemarie","Annette","Anouk","Astrid","Aukje","Barbara","Bianca","Carla","Carlijn","Carolien","Chantal","Charlotte","Claudia","Daniëlle","Debora","Diane","Dora","Eline","Elise","Ella","Ellen","Emma","Esmee","Evelien","Esther","Erica","Eva","Femke","Fleur","Floor","Froukje","Gea","Gerda","Hanna","Hanneke","Heleen","Hilde","Ilona","Ina","Inge","Ingrid","Iris","Isabel","Isabelle","Janneke","Jasmijn","Jeanine","Jennifer","Jessica","Johanna","Joke","Julia","Julie","Karen","Karin","Katja","Kim","Lara","Laura","Lena","Lianne","Lieke","Lilian","Linda","Lisa","Lisanne","Lotte","Louise","Maaike","Manon","Marga","Maria","Marissa","Marit","Marjolein","Martine","Marleen","Melissa","Merel","Miranda","Michelle","Mirjam","Mirthe","Naomi","Natalie","Nienke","Nina","Noortje","Olivia","Patricia","Paula","Paulien","Ramona","Ria","Rianne","Roos","Rosanne","Ruth","Sabrina","Sandra","Sanne","Sara","Saskia","Silvia","Sofia","Sophie","Sonja","Suzanne","Tamara","Tess","Tessa","Tineke","Valerie","Vanessa","Veerle","Vera","Victoria","Wendy","Willeke","Yvonne","Zoë"],fr:["Abdon","Abel","Abigaëlle","Abigaïl","Acacius","Acanthe","Adalbert","Adalsinde","Adegrine","Adélaïde","Adèle","Adélie","Adeline","Adeltrude","Adolphe","Adonis","Adrastée","Adrehilde","Adrienne","Agathe","Agilbert","Aglaé","Aignan","Agneflète","Agnès","Agrippine","Aimé","Alaine","Alaïs","Albane","Albérade","Alberte","Alcide","Alcine","Alcyone","Aldegonde","Aleth","Alexandrine","Alexine","Alice","Aliénor","Aliette","Aline","Alix","Alizé","Aloïse","Aloyse","Alphonsine","Althée","Amaliane","Amalthée","Amande","Amandine","Amant","Amarande","Amaranthe","Amaryllis","Ambre","Ambroisie","Amélie","Améthyste","Aminte","Anaël","Anaïs","Anastasie","Anatole","Ancelin","Andrée","Anémone","Angadrême","Angèle","Angeline","Angélique","Angilbert","Anicet","Annabelle","Anne","Annette","Annick","Annie","Annonciade","Ansbert","Anstrudie","Anthelme","Antigone","Antoinette","Antonine","Aphélie","Apolline","Apollonie","Aquiline","Arabelle","Arcadie","Archange","Argine","Ariane","Aricie","Ariel","Arielle","Arlette","Armance","Armande","Armandine","Armelle","Armide","Armelle","Armin","Arnaud","Arsène","Arsinoé","Artémis","Arthur","Ascelin","Ascension","Assomption","Astarté","Astérie","Astrée","Astrid","Athalie","Athanasie","Athina","Aube","Albert","Aude","Audrey","Augustine","Aure","Aurélie","Aurélien","Aurèle","Aurore","Auxence","Aveline","Abigaëlle","Avoye","Axelle","Aymard","Azalée","Adèle","Adeline","Barbe","Basilisse","Bathilde","Béatrice","Béatrix","Bénédicte","Bérengère","Bernadette","Berthe","Bertille","Beuve","Blanche","Blanc","Blandine","Brigitte","Brune","Brunehilde","Callista","Camille","Capucine","Carine","Caroline","Cassandre","Catherine","Cécile","Céleste","Célestine","Céline","Chantal","Charlène","Charline","Charlotte","Chloé","Christelle","Christiane","Christine","Claire","Clara","Claude","Claudine","Clarisse","Clémence","Clémentine","Cléo","Clio","Clotilde","Coline","Conception","Constance","Coralie","Coraline","Corentine","Corinne","Cyrielle","Daniel","Daniel","Daphné","Débora","Delphine","Denise","Diane","Dieudonné","Dominique","Doriane","Dorothée","Douce","Édith","Edmée","Éléonore","Éliane","Élia","Éliette","Élisabeth","Élise","Ella","Élodie","Éloïse","Elsa","Émeline","Émérance","Émérentienne","Émérencie","Émilie","Emma","Emmanuelle","Emmelie","Ernestine","Esther","Estelle","Eudoxie","Eugénie","Eulalie","Euphrasie","Eusébie","Évangéline","Eva","Ève","Évelyne","Fanny","Fantine","Faustine","Félicie","Fernande","Flavie","Fleur","Flore","Florence","Florie","Fortuné","France","Francia","Françoise","Francine","Gabrielle","Gaëlle","Garance","Geneviève","Georgette","Gerberge","Germaine","Gertrude","Gisèle","Guenièvre","Guilhemine","Guillemette","Gustave","Gwenael","Hélène","Héloïse","Henriette","Hermine","Hermione","Hippolyte","Honorine","Hortense","Huguette","Ines","Irène","Irina","Iris","Isabeau","Isabelle","Iseult","Isolde","Ismérie","Jacinthe","Jacqueline","Jade","Janine","Jeanne","Jocelyne","Joëlle","Joséphine","Judith","Julia","Julie","Jules","Juliette","Justine","Katy","Kathy","Katie","Laura","Laure","Laureline","Laurence","Laurene","Lauriane","Laurianne","Laurine","Léa","Léna","Léonie","Léon","Léontine","Lorraine","Lucie","Lucienne","Lucille","Ludivine","Lydie","Lydie","Megane","Madeleine","Magali","Maguelone","Mallaury","Manon","Marceline","Margot","Marguerite","Marianne","Marie","Myriam","Marie","Marine","Marion","Marlène","Marthe","Martine","Mathilde","Maud","Maureen","Mauricette","Maxime","Mélanie","Melissa","Mélissandre","Mélisande","Mélodie","Michel","Micheline","Mireille","Miriam","Moïse","Monique","Morgane","Muriel","Mylène","Nadège","Nadine","Nathalie","Nicole","Nicolette","Nine","Noël","Noémie","Océane","Odette","Odile","Olive","Olivia","Olympe","Ombline","Ombeline","Ophélie","Oriande","Oriane","Ozanne","Pascale","Pascaline","Paule","Paulette","Pauline","Priscille","Prisca","Prisque","Pécine","Pélagie","Pénélope","Perrine","Pétronille","Philippine","Philomène","Philothée","Primerose","Prudence","Pulchérie","Quentine","Quiéta","Quintia","Quintilla","Rachel","Raphaëlle","Raymonde","Rebecca","Régine","Réjeanne","René","Rita","Rita","Rolande","Romane","Rosalie","Rose","Roseline","Sabine","Salomé","Sandra","Sandrine","Sarah","Ségolène","Séverine","Sibylle","Simone","Sixt","Solange","Soline","Solène","Sophie","Stéphanie","Suzanne","Sylvain","Sylvie","Tatiana","Thaïs","Théodora","Thérèse","Tiphaine","Ursule","Valentine","Valérie","Véronique","Victoire","Victorine","Vinciane","Violette","Virginie","Viviane","Xavière","Yolande","Ysaline","Yvette","Yvonne","Zélie","Zita","Zoé"]}},lastNames:{en:["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris","Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis","Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright","Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson","Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker","Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed","Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson","Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James","Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes","Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson","Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant","Alexander","Russell","Griffin","Diaz","Hayes","Myers","Ford","Hamilton","Graham","Sullivan","Wallace","Woods","Cole","West","Jordan","Owens","Reynolds","Fisher","Ellis","Harrison","Gibson","McDonald","Cruz","Marshall","Ortiz","Gomez","Murray","Freeman","Wells","Webb","Simpson","Stevens","Tucker","Porter","Hunter","Hicks","Crawford","Henry","Boyd","Mason","Morales","Kennedy","Warren","Dixon","Ramos","Reyes","Burns","Gordon","Shaw","Holmes","Rice","Robertson","Hunt","Black","Daniels","Palmer","Mills","Nichols","Grant","Knight","Ferguson","Rose","Stone","Hawkins","Dunn","Perkins","Hudson","Spencer","Gardner","Stephens","Payne","Pierce","Berry","Matthews","Arnold","Wagner","Willis","Ray","Watkins","Olson","Carroll","Duncan","Snyder","Hart","Cunningham","Bradley","Lane","Andrews","Ruiz","Harper","Fox","Riley","Armstrong","Carpenter","Weaver","Greene","Lawrence","Elliott","Chavez","Sims","Austin","Peters","Kelley","Franklin","Lawson","Fields","Gutierrez","Ryan","Schmidt","Carr","Vasquez","Castillo","Wheeler","Chapman","Oliver","Montgomery","Richards","Williamson","Johnston","Banks","Meyer","Bishop","McCoy","Howell","Alvarez","Morrison","Hansen","Fernandez","Garza","Harvey","Little","Burton","Stanley","Nguyen","George","Jacobs","Reid","Kim","Fuller","Lynch","Dean","Gilbert","Garrett","Romero","Welch","Larson","Frazier","Burke","Hanson","Day","Mendoza","Moreno","Bowman","Medina","Fowler","Brewer","Hoffman","Carlson","Silva","Pearson","Holland","Douglas","Fleming","Jensen","Vargas","Byrd","Davidson","Hopkins","May","Terry","Herrera","Wade","Soto","Walters","Curtis","Neal","Caldwell","Lowe","Jennings","Barnett","Graves","Jimenez","Horton","Shelton","Barrett","Obrien","Castro","Sutton","Gregory","McKinney","Lucas","Miles","Craig","Rodriquez","Chambers","Holt","Lambert","Fletcher","Watts","Bates","Hale","Rhodes","Pena","Beck","Newman","Haynes","McDaniel","Mendez","Bush","Vaughn","Parks","Dawson","Santiago","Norris","Hardy","Love","Steele","Curry","Powers","Schultz","Barker","Guzman","Page","Munoz","Ball","Keller","Chandler","Weber","Leonard","Walsh","Lyons","Ramsey","Wolfe","Schneider","Mullins","Benson","Sharp","Bowen","Daniel","Barber","Cummings","Hines","Baldwin","Griffith","Valdez","Hubbard","Salazar","Reeves","Warner","Stevenson","Burgess","Santos","Tate","Cross","Garner","Mann","Mack","Moss","Thornton","Dennis","McGee","Farmer","Delgado","Aguilar","Vega","Glover","Manning","Cohen","Harmon","Rodgers","Robbins","Newton","Todd","Blair","Higgins","Ingram","Reese","Cannon","Strickland","Townsend","Potter","Goodwin","Walton","Rowe","Hampton","Ortega","Patton","Swanson","Joseph","Francis","Goodman","Maldonado","Yates","Becker","Erickson","Hodges","Rios","Conner","Adkins","Webster","Norman","Malone","Hammond","Flowers","Cobb","Moody","Quinn","Blake","Maxwell","Pope","Floyd","Osborne","Paul","McCarthy","Guerrero","Lindsey","Estrada","Sandoval","Gibbs","Tyler","Gross","Fitzgerald","Stokes","Doyle","Sherman","Saunders","Wise","Colon","Gill","Alvarado","Greer","Padilla","Simon","Waters","Nunez","Ballard","Schwartz","McBride","Houston","Christensen","Klein","Pratt","Briggs","Parsons","McLaughlin","Zimmerman","French","Buchanan","Moran","Copeland","Roy","Pittman","Brady","McCormick","Holloway","Brock","Poole","Frank","Logan","Owen","Bass","Marsh","Drake","Wong","Jefferson","Park","Morton","Abbott","Sparks","Patrick","Norton","Huff","Clayton","Massey","Lloyd","Figueroa","Carson","Bowers","Roberson","Barton","Tran","Lamb","Harrington","Casey","Boone","Cortez","Clarke","Mathis","Singleton","Wilkins","Cain","Bryan","Underwood","Hogan","McKenzie","Collier","Luna","Phelps","McGuire","Allison","Bridges","Wilkerson","Nash","Summers","Atkins"],it:["Acciai","Aglietti","Agostini","Agresti","Ahmed","Aiazzi","Albanese","Alberti","Alessi","Alfani","Alinari","Alterini","Amato","Ammannati","Ancillotti","Andrei","Andreini","Andreoni","Angeli","Anichini","Antonelli","Antonini","Arena","Ariani","Arnetoli","Arrighi","Baccani","Baccetti","Bacci","Bacherini","Badii","Baggiani","Baglioni","Bagni","Bagnoli","Baldassini","Baldi","Baldini","Ballerini","Balli","Ballini","Balloni","Bambi","Banchi","Bandinelli","Bandini","Bani","Barbetti","Barbieri","Barchielli","Bardazzi","Bardelli","Bardi","Barducci","Bargellini","Bargiacchi","Barni","Baroncelli","Baroncini","Barone","Baroni","Baronti","Bartalesi","Bartoletti","Bartoli","Bartolini","Bartoloni","Bartolozzi","Basagni","Basile","Bassi","Batacchi","Battaglia","Battaglini","Bausi","Becagli","Becattini","Becchi","Becucci","Bellandi","Bellesi","Belli","Bellini","Bellucci","Bencini","Benedetti","Benelli","Beni","Benini","Bensi","Benucci","Benvenuti","Berlincioni","Bernacchioni","Bernardi","Bernardini","Berni","Bernini","Bertelli","Berti","Bertini","Bessi","Betti","Bettini","Biagi","Biagini","Biagioni","Biagiotti","Biancalani","Bianchi","Bianchini","Bianco","Biffoli","Bigazzi","Bigi","Biliotti","Billi","Binazzi","Bindi","Bini","Biondi","Bizzarri","Bocci","Bogani","Bolognesi","Bonaiuti","Bonanni","Bonciani","Boncinelli","Bondi","Bonechi","Bongini","Boni","Bonini","Borchi","Boretti","Borghi","Borghini","Borgioli","Borri","Borselli","Boschi","Bottai","Bracci","Braccini","Brandi","Braschi","Bravi","Brazzini","Breschi","Brilli","Brizzi","Brogelli","Brogi","Brogioni","Brunelli","Brunetti","Bruni","Bruno","Brunori","Bruschi","Bucci","Bucciarelli","Buccioni","Bucelli","Bulli","Burberi","Burchi","Burgassi","Burroni","Bussotti","Buti","Caciolli","Caiani","Calabrese","Calamai","Calamandrei","Caldini","Calo'","Calonaci","Calosi","Calvelli","Cambi","Camiciottoli","Cammelli","Cammilli","Campolmi","Cantini","Capanni","Capecchi","Caponi","Cappelletti","Cappelli","Cappellini","Cappugi","Capretti","Caputo","Carbone","Carboni","Cardini","Carlesi","Carletti","Carli","Caroti","Carotti","Carrai","Carraresi","Carta","Caruso","Casalini","Casati","Caselli","Casini","Castagnoli","Castellani","Castelli","Castellucci","Catalano","Catarzi","Catelani","Cavaciocchi","Cavallaro","Cavallini","Cavicchi","Cavini","Ceccarelli","Ceccatelli","Ceccherelli","Ceccherini","Cecchi","Cecchini","Cecconi","Cei","Cellai","Celli","Cellini","Cencetti","Ceni","Cenni","Cerbai","Cesari","Ceseri","Checcacci","Checchi","Checcucci","Cheli","Chellini","Chen","Cheng","Cherici","Cherubini","Chiaramonti","Chiarantini","Chiarelli","Chiari","Chiarini","Chiarugi","Chiavacci","Chiesi","Chimenti","Chini","Chirici","Chiti","Ciabatti","Ciampi","Cianchi","Cianfanelli","Cianferoni","Ciani","Ciapetti","Ciappi","Ciardi","Ciatti","Cicali","Ciccone","Cinelli","Cini","Ciobanu","Ciolli","Cioni","Cipriani","Cirillo","Cirri","Ciucchi","Ciuffi","Ciulli","Ciullini","Clemente","Cocchi","Cognome","Coli","Collini","Colombo","Colzi","Comparini","Conforti","Consigli","Conte","Conti","Contini","Coppini","Coppola","Corsi","Corsini","Corti","Cortini","Cosi","Costa","Costantini","Costantino","Cozzi","Cresci","Crescioli","Cresti","Crini","Curradi","D'Agostino","D'Alessandro","D'Amico","D'Angelo","Daddi","Dainelli","Dallai","Danti","Davitti","De Angelis","De Luca","De Marco","De Rosa","De Santis","De Simone","De Vita","Degl'Innocenti","Degli Innocenti","Dei","Del Lungo","Del Re","Di Marco","Di Stefano","Dini","Diop","Dobre","Dolfi","Donati","Dondoli","Dong","Donnini","Ducci","Dumitru","Ermini","Esposito","Evangelisti","Fabbri","Fabbrini","Fabbrizzi","Fabbroni","Fabbrucci","Fabiani","Facchini","Faggi","Fagioli","Failli","Faini","Falciani","Falcini","Falcone","Fallani","Falorni","Falsini","Falugiani","Fancelli","Fanelli","Fanetti","Fanfani","Fani","Fantappie'","Fantechi","Fanti","Fantini","Fantoni","Farina","Fattori","Favilli","Fedi","Fei","Ferrante","Ferrara","Ferrari","Ferraro","Ferretti","Ferri","Ferrini","Ferroni","Fiaschi","Fibbi","Fiesoli","Filippi","Filippini","Fini","Fioravanti","Fiore","Fiorentini","Fiorini","Fissi","Focardi","Foggi","Fontana","Fontanelli","Fontani","Forconi","Formigli","Forte","Forti","Fortini","Fossati","Fossi","Francalanci","Franceschi","Franceschini","Franchi","Franchini","Franci","Francini","Francioni","Franco","Frassineti","Frati","Fratini","Frilli","Frizzi","Frosali","Frosini","Frullini","Fusco","Fusi","Gabbrielli","Gabellini","Gagliardi","Galanti","Galardi","Galeotti","Galletti","Galli","Gallo","Gallori","Gambacciani","Gargani","Garofalo","Garuglieri","Gashi","Gasperini","Gatti","Gelli","Gensini","Gentile","Gentili","Geri","Gerini","Gheri","Ghini","Giachetti","Giachi","Giacomelli","Gianassi","Giani","Giannelli","Giannetti","Gianni","Giannini","Giannoni","Giannotti","Giannozzi","Gigli","Giordano","Giorgetti","Giorgi","Giovacchini","Giovannelli","Giovannetti","Giovannini","Giovannoni","Giuliani","Giunti","Giuntini","Giusti","Gonnelli","Goretti","Gori","Gradi","Gramigni","Grassi","Grasso","Graziani","Grazzini","Greco","Grifoni","Grillo","Grimaldi","Grossi","Gualtieri","Guarducci","Guarino","Guarnieri","Guasti","Guerra","Guerri","Guerrini","Guidi","Guidotti","He","Hoxha","Hu","Huang","Iandelli","Ignesti","Innocenti","Jin","La Rosa","Lai","Landi","Landini","Lanini","Lapi","Lapini","Lari","Lascialfari","Lastrucci","Latini","Lazzeri","Lazzerini","Lelli","Lenzi","Leonardi","Leoncini","Leone","Leoni","Lepri","Li","Liao","Lin","Linari","Lippi","Lisi","Livi","Lombardi","Lombardini","Lombardo","Longo","Lopez","Lorenzi","Lorenzini","Lorini","Lotti","Lu","Lucchesi","Lucherini","Lunghi","Lupi","Madiai","Maestrini","Maffei","Maggi","Maggini","Magherini","Magini","Magnani","Magnelli","Magni","Magnolfi","Magrini","Malavolti","Malevolti","Manca","Mancini","Manetti","Manfredi","Mangani","Mannelli","Manni","Mannini","Mannucci","Manuelli","Manzini","Marcelli","Marchese","Marchetti","Marchi","Marchiani","Marchionni","Marconi","Marcucci","Margheri","Mari","Mariani","Marilli","Marinai","Marinari","Marinelli","Marini","Marino","Mariotti","Marsili","Martelli","Martinelli","Martini","Martino","Marzi","Masi","Masini","Masoni","Massai","Materassi","Mattei","Matteini","Matteucci","Matteuzzi","Mattioli","Mattolini","Matucci","Mauro","Mazzanti","Mazzei","Mazzetti","Mazzi","Mazzini","Mazzocchi","Mazzoli","Mazzoni","Mazzuoli","Meacci","Mecocci","Meini","Melani","Mele","Meli","Mengoni","Menichetti","Meoni","Merlini","Messeri","Messina","Meucci","Miccinesi","Miceli","Micheli","Michelini","Michelozzi","Migliori","Migliorini","Milani","Miniati","Misuri","Monaco","Montagnani","Montagni","Montanari","Montelatici","Monti","Montigiani","Montini","Morandi","Morandini","Morelli","Moretti","Morganti","Mori","Morini","Moroni","Morozzi","Mugnai","Mugnaini","Mustafa","Naldi","Naldini","Nannelli","Nanni","Nannini","Nannucci","Nardi","Nardini","Nardoni","Natali","Ndiaye","Nencetti","Nencini","Nencioni","Neri","Nesi","Nesti","Niccolai","Niccoli","Niccolini","Nigi","Nistri","Nocentini","Noferini","Novelli","Nucci","Nuti","Nutini","Oliva","Olivieri","Olmi","Orlandi","Orlandini","Orlando","Orsini","Ortolani","Ottanelli","Pacciani","Pace","Paci","Pacini","Pagani","Pagano","Paggetti","Pagliai","Pagni","Pagnini","Paladini","Palagi","Palchetti","Palloni","Palmieri","Palumbo","Pampaloni","Pancani","Pandolfi","Pandolfini","Panerai","Panichi","Paoletti","Paoli","Paolini","Papi","Papini","Papucci","Parenti","Parigi","Parisi","Parri","Parrini","Pasquini","Passeri","Pecchioli","Pecorini","Pellegrini","Pepi","Perini","Perrone","Peruzzi","Pesci","Pestelli","Petri","Petrini","Petrucci","Pettini","Pezzati","Pezzatini","Piani","Piazza","Piazzesi","Piazzini","Piccardi","Picchi","Piccini","Piccioli","Pieraccini","Pieraccioni","Pieralli","Pierattini","Pieri","Pierini","Pieroni","Pietrini","Pini","Pinna","Pinto","Pinzani","Pinzauti","Piras","Pisani","Pistolesi","Poggesi","Poggi","Poggiali","Poggiolini","Poli","Pollastri","Porciani","Pozzi","Pratellesi","Pratesi","Prosperi","Pruneti","Pucci","Puccini","Puccioni","Pugi","Pugliese","Puliti","Querci","Quercioli","Raddi","Radu","Raffaelli","Ragazzini","Ranfagni","Ranieri","Rastrelli","Raugei","Raveggi","Renai","Renzi","Rettori","Ricci","Ricciardi","Ridi","Ridolfi","Rigacci","Righi","Righini","Rinaldi","Risaliti","Ristori","Rizzo","Rocchi","Rocchini","Rogai","Romagnoli","Romanelli","Romani","Romano","Romei","Romeo","Romiti","Romoli","Romolini","Rontini","Rosati","Roselli","Rosi","Rossetti","Rossi","Rossini","Rovai","Ruggeri","Ruggiero","Russo","Sabatini","Saccardi","Sacchetti","Sacchi","Sacco","Salerno","Salimbeni","Salucci","Salvadori","Salvestrini","Salvi","Salvini","Sanesi","Sani","Sanna","Santi","Santini","Santoni","Santoro","Santucci","Sardi","Sarri","Sarti","Sassi","Sbolci","Scali","Scarpelli","Scarselli","Scopetani","Secci","Selvi","Senatori","Senesi","Serafini","Sereni","Serra","Sestini","Sguanci","Sieni","Signorini","Silvestri","Simoncini","Simonetti","Simoni","Singh","Sodi","Soldi","Somigli","Sorbi","Sorelli","Sorrentino","Sottili","Spina","Spinelli","Staccioli","Staderini","Stefanelli","Stefani","Stefanini","Stella","Susini","Tacchi","Tacconi","Taddei","Tagliaferri","Tamburini","Tanganelli","Tani","Tanini","Tapinassi","Tarchi","Tarchiani","Targioni","Tassi","Tassini","Tempesti","Terzani","Tesi","Testa","Testi","Tilli","Tinti","Tirinnanzi","Toccafondi","Tofanari","Tofani","Tognaccini","Tonelli","Tonini","Torelli","Torrini","Tosi","Toti","Tozzi","Trambusti","Trapani","Tucci","Turchi","Ugolini","Ulivi","Valente","Valenti","Valentini","Vangelisti","Vanni","Vannini","Vannoni","Vannozzi","Vannucchi","Vannucci","Ventura","Venturi","Venturini","Vestri","Vettori","Vichi","Viciani","Vieri","Vigiani","Vignoli","Vignolini","Vignozzi","Villani","Vinci","Visani","Vitale","Vitali","Viti","Viviani","Vivoli","Volpe","Volpi","Wang","Wu","Xu","Yang","Ye","Zagli","Zani","Zanieri","Zanobini","Zecchi","Zetti","Zhang","Zheng","Zhou","Zhu","Zingoni","Zini","Zoppi"],nl:["Albers","Alblas","Appelman","Baars","Baas","Bakker","Blank","Bleeker","Blok","Blom","Boer","Boers","Boldewijn","Boon","Boot","Bos","Bosch","Bosma","Bosman","Bouma","Bouman","Bouwman","Brands","Brouwer","Burger","Buijs","Buitenhuis","Ceder","Cohen","Dekker","Dekkers","Dijkman","Dijkstra","Driessen","Drost","Engel","Evers","Faber","Franke","Gerritsen","Goedhart","Goossens","Groen","Groenenberg","Groot","Haan","Hart","Heemskerk","Hendriks","Hermans","Hoekstra","Hofman","Hopman","Huisman","Jacobs","Jansen","Janssen","Jonker","Jaspers","Keijzer","Klaassen","Klein","Koek","Koenders","Kok","Kool","Koopman","Koopmans","Koning","Koster","Kramer","Kroon","Kuijpers","Kuiper","Kuipers","Kurt","Koster","Kwakman","Los","Lubbers","Maas","Markus","Martens","Meijer","Mol","Molenaar","Mulder","Nieuwenhuis","Peeters","Peters","Pengel","Pieters","Pool","Post","Postma","Prins","Pronk","Reijnders","Rietveld","Roest","Roos","Sanders","Schaap","Scheffer","Schenk","Schilder","Schipper","Schmidt","Scholten","Schouten","Schut","Schutte","Schuurman","Simons","Smeets","Smit","Smits","Snel","Swinkels","Tas","Terpstra","Timmermans","Tol","Tromp","Troost","Valk","Veenstra","Veldkamp","Verbeek","Verheul","Verhoeven","Vermeer","Vermeulen","Verweij","Vink","Visser","Voorn","Vos","Wagenaar","Wiersema","Willems","Willemsen","Witteveen","Wolff","Wolters","Zijlstra","Zwart","de Beer","de Boer","de Bruijn","de Bruin","de Graaf","de Groot","de Haan","de Haas","de Jager","de Jong","de Jonge","de Koning","de Lange","de Leeuw","de Ridder","de Rooij","de Ruiter","de Vos","de Vries","de Waal","de Wit","de Zwart","van Beek","van Boven","van Dam","van Dijk","van Dongen","van Doorn","van Egmond","van Eijk","van Es","van Gelder","van Gelderen","van Houten","van Hulst","van Kempen","van Kesteren","van Leeuwen","van Loon","van Mill","van Noord","van Ommen","van Ommeren","van Oosten","van Oostveen","van Rijn","van Schaik","van Veen","van Vliet","van Wijk","van Wijngaarden","van den Poel","van de Pol","van den Ploeg","van de Ven","van den Berg","van den Bosch","van den Brink","van den Broek","van den Heuvel","van der Heijden","van der Horst","van der Hulst","van der Kroon","van der Laan","van der Linden","van der Meer","van der Meij","van der Meulen","van der Molen","van der Sluis","van der Spek","van der Veen","van der Velde","van der Velden","van der Vliet","van der Wal"],uk:["Smith","Jones","Williams","Taylor","Brown","Davies","Evans","Wilson","Thomas","Johnson","Roberts","Robinson","Thompson","Wright","Walker","White","Edwards","Hughes","Green","Hall","Lewis","Harris","Clarke","Patel","Jackson","Wood","Turner","Martin","Cooper","Hill","Ward","Morris","Moore","Clark","Lee","King","Baker","Harrison","Morgan","Allen","James","Scott","Phillips","Watson","Davis","Parker","Price","Bennett","Young","Griffiths","Mitchell","Kelly","Cook","Carter","Richardson","Bailey","Collins","Bell","Shaw","Murphy","Miller","Cox","Richards","Khan","Marshall","Anderson","Simpson","Ellis","Adams","Singh","Begum","Wilkinson","Foster","Chapman","Powell","Webb","Rogers","Gray","Mason","Ali","Hunt","Hussain","Campbell","Matthews","Owen","Palmer","Holmes","Mills","Barnes","Knight","Lloyd","Butler","Russell","Barker","Fisher","Stevens","Jenkins","Murray","Dixon","Harvey","Graham","Pearson","Ahmed","Fletcher","Walsh","Kaur","Gibson","Howard","Andrews","Stewart","Elliott","Reynolds","Saunders","Payne","Fox","Ford","Pearce","Day","Brooks","West","Lawrence","Cole","Atkinson","Bradley","Spencer","Gill","Dawson","Ball","Burton","O'brien","Watts","Rose","Booth","Perry","Ryan","Grant","Wells","Armstrong","Francis","Rees","Hayes","Hart","Hudson","Newman","Barrett","Webster","Hunter","Gregory","Carr","Lowe","Page","Marsh","Riley","Dunn","Woods","Parsons","Berry","Stone","Reid","Holland","Hawkins","Harding","Porter","Robertson","Newton","Oliver","Reed","Kennedy","Williamson","Bird","Gardner","Shah","Dean","Lane","Cooke","Bates","Henderson","Parry","Burgess","Bishop","Walton","Burns","Nicholson","Shepherd","Ross","Cross","Long","Freeman","Warren","Nicholls","Hamilton","Byrne","Sutton","Mcdonald","Yates","Hodgson","Robson","Curtis","Hopkins","O'connor","Harper","Coleman","Watkins","Moss","Mccarthy","Chambers","O'neill","Griffin","Sharp","Hardy","Wheeler","Potter","Osborne","Johnston","Gordon","Doyle","Wallace","George","Jordan","Hutchinson","Rowe","Burke","May","Pritchard","Gilbert","Willis","Higgins","Read","Miles","Stevenson","Stephenson","Hammond","Arnold","Buckley","Walters","Hewitt","Barber","Nelson","Slater","Austin","Sullivan","Whitehead","Mann","Frost","Lambert","Stephens","Blake","Akhtar","Lynch","Goodwin","Barton","Woodward","Thomson","Cunningham","Quinn","Barnett","Baxter","Bibi","Clayton","Nash","Greenwood","Jennings","Holt","Kemp","Poole","Gallagher","Bond","Stokes","Tucker","Davidson","Fowler","Heath","Norman","Middleton","Lawson","Banks","French","Stanley","Jarvis","Gibbs","Ferguson","Hayward","Carroll","Douglas","Dickinson","Todd","Barlow","Peters","Lucas","Knowles","Hartley","Miah","Simmons","Morton","Alexander","Field","Morrison","Norris","Townsend","Preston","Hancock","Thornton","Baldwin","Burrows","Briggs","Parkinson","Reeves","Macdonald","Lamb","Black","Abbott","Sanders","Thorpe","Holden","Tomlinson","Perkins","Ashton","Rhodes","Fuller","Howe","Bryant","Vaughan","Dale","Davey","Weston","Bartlett","Whittaker","Davison","Kent","Skinner","Birch","Morley","Daniels","Glover","Howell","Cartwright","Pugh","Humphreys","Goddard","Brennan","Wall","Kirby","Bowen","Savage","Bull","Wong","Dobson","Smart","Wilkins","Kirk","Fraser","Duffy","Hicks","Patterson","Bradshaw","Little","Archer","Warner","Waters","O'sullivan","Farrell","Brookes","Atkins","Kay","Dodd","Bentley","Flynn","John","Schofield","Short","Haynes","Wade","Butcher","Henry","Sanderson","Crawford","Sheppard","Bolton","Coates","Giles","Gould","Houghton","Gibbons","Pratt","Manning","Law","Hooper","Noble","Dyer","Rahman","Clements","Moran","Sykes","Chan","Doherty","Connolly","Joyce","Franklin","Hobbs","Coles","Herbert","Steele","Kerr","Leach","Winter","Owens","Duncan","Naylor","Fleming","Horton","Finch","Fitzgerald","Randall","Carpenter","Marsden","Browne","Garner","Pickering","Hale","Dennis","Vincent","Chadwick","Chandler","Sharpe","Nolan","Lyons","Hurst","Collier","Peacock","Howarth","Faulkner","Rice","Pollard","Welch","Norton","Gough","Sinclair","Blackburn","Bryan","Conway","Power","Cameron","Daly","Allan","Hanson","Gardiner","Boyle","Myers","Turnbull","Wallis","Mahmood","Sims","Swift","Iqbal","Pope","Brady","Chamberlain","Rowley","Tyler","Farmer","Metcalfe","Hilton","Godfrey","Holloway","Parkin","Bray","Talbot","Donnelly","Nixon","Charlton","Benson","Whitehouse","Barry","Hope","Lord","North","Storey","Connor","Potts","Bevan","Hargreaves","Mclean","Mistry","Bruce","Howells","Hyde","Parkes","Wyatt","Fry","Lees","O'donnell","Craig","Forster","Mckenzie","Humphries","Mellor","Carey","Ingram","Summers","Leonard"],de:["Müller","Schmidt","Schneider","Fischer","Weber","Meyer","Wagner","Becker","Schulz","Hoffmann","Schäfer","Koch","Bauer","Richter","Klein","Wolf","Schröder","Neumann","Schwarz","Zimmermann","Braun","Krüger","Hofmann","Hartmann","Lange","Schmitt","Werner","Schmitz","Krause","Meier","Lehmann","Schmid","Schulze","Maier","Köhler","Herrmann","König","Walter","Mayer","Huber","Kaiser","Fuchs","Peters","Lang","Scholz","Möller","Weiß","Jung","Hahn","Schubert","Vogel","Friedrich","Keller","Günther","Frank","Berger","Winkler","Roth","Beck","Lorenz","Baumann","Franke","Albrecht","Schuster","Simon","Ludwig","Böhm","Winter","Kraus","Martin","Schumacher","Krämer","Vogt","Stein","Jäger","Otto","Sommer","Groß","Seidel","Heinrich","Brandt","Haas","Schreiber","Graf","Schulte","Dietrich","Ziegler","Kuhn","Kühn","Pohl","Engel","Horn","Busch","Bergmann","Thomas","Voigt","Sauer","Arnold","Wolff","Pfeiffer"],jp:["Sato","Suzuki","Takahashi","Tanaka","Watanabe","Ito","Yamamoto","Nakamura","Kobayashi","Kato","Yoshida","Yamada","Sasaki","Yamaguchi","Saito","Matsumoto","Inoue","Kimura","Hayashi","Shimizu","Yamazaki","Mori","Abe","Ikeda","Hashimoto","Yamashita","Ishikawa","Nakajima","Maeda","Fujita","Ogawa","Goto","Okada","Hasegawa","Murakami","Kondo","Ishii","Saito","Sakamoto","Endo","Aoki","Fujii","Nishimura","Fukuda","Ota","Miura","Fujiwara","Okamoto","Matsuda","Nakagawa","Nakano","Harada","Ono","Tamura","Takeuchi","Kaneko","Wada","Nakayama","Ishida","Ueda","Morita","Hara","Shibata","Sakai","Kudo","Yokoyama","Miyazaki","Miyamoto","Uchida","Takagi","Ando","Taniguchi","Ohno","Maruyama","Imai","Takada","Fujimoto","Takeda","Murata","Ueno","Sugiyama","Masuda","Sugawara","Hirano","Kojima","Otsuka","Chiba","Kubo","Matsui","Iwasaki","Sakurai","Kinoshita","Noguchi","Matsuo","Nomura","Kikuchi","Sano","Onishi","Sugimoto","Arai"],es:["Garcia","Fernandez","Lopez","Martinez","Gonzalez","Rodriguez","Sanchez","Perez","Martin","Gomez","Ruiz","Diaz","Hernandez","Alvarez","Jimenez","Moreno","Munoz","Alonso","Romero","Navarro","Gutierrez","Torres","Dominguez","Gil","Vazquez","Blanco","Serrano","Ramos","Castro","Suarez","Sanz","Rubio","Ortega","Molina","Delgado","Ortiz","Morales","Ramirez","Marin","Iglesias","Santos","Castillo","Garrido","Calvo","Pena","Cruz","Cano","Nunez","Prieto","Diez","Lozano","Vidal","Pascual","Ferrer","Medina","Vega","Leon","Herrero","Vicente","Mendez","Guerrero","Fuentes","Campos","Nieto","Cortes","Caballero","Ibanez","Lorenzo","Pastor","Gimenez","Saez","Soler","Marquez","Carrasco","Herrera","Montero","Arias","Crespo","Flores","Andres","Aguilar","Hidalgo","Cabrera","Mora","Duran","Velasco","Rey","Pardo","Roman","Vila","Bravo","Merino","Moya","Soto","Izquierdo","Reyes","Redondo","Marcos","Carmona","Menendez"],fr:["Martin","Bernard","Thomas","Petit","Robert","Richard","Durand","Dubois","Moreau","Laurent","Simon","Michel","Lefèvre","Leroy","Roux","David","Bertrand","Morel","Fournier","Girard","Bonnet","Dupont","Lambert","Fontaine","Rousseau","Vincent","Müller","Lefèvre","Faure","André","Mercier","Blanc","Guérin","Boyer","Garnier","Chevalier","François","Legrand","Gauthier","Garcia","Perrin","Robin","Clément","Morin","Nicolas","Henry","Roussel","Matthieu","Gautier","Masson","Marchand","Duval","Denis","Dumont","Marie","Lemaire","Noël","Meyer","Dufour","Meunier","Brun","Blanchard","Giraud","Joly","Rivière","Lucas","Brunet","Gaillard","Barbier","Arnaud","Martínez","Gérard","Roche","Renard","Schmitt","Roy","Leroux","Colin","Vidal","Caron","Picard","Roger","Fabre","Aubert","Lemoine","Renaud","Dumas","Lacroix","Olivier","Philippe","Bourgeois","Pierre","Benoît","Rey","Leclerc","Payet","Rolland","Leclercq","Guillaume","Lecomte","López","Jean","Dupuy","Guillot","Hubert","Berger","Carpentier","Sánchez","Dupuis","Moulin","Louis","Deschamps","Huet","Vasseur","Perez","Boucher","Fleury","Royer","Klein","Jacquet","Adam","Paris","Poirier","Marty","Aubry","Guyot","Carré","Charles","Renault","Charpentier","Ménard","Maillard","Baron","Bertin","Bailly","Hervé","Schneider","Fernández","Le GallGall","Collet","Léger","Bouvier","Julien","Prévost","Millet","Perrot","Daniel","Le RouxRoux","Cousin","Germain","Breton","Besson","Langlois","Rémi","Le GoffGoff","Pelletier","Lévêque","Perrier","Leblanc","Barré","Lebrun","Marchal","Weber","Mallet","Hamon","Boulanger","Jacob","Monnier","Michaud","Rodríguez","Guichard","Gillet","Étienne","Grondin","Poulain","Tessier","Chevallier","Collin","Chauvin","Da SilvaSilva","Bouchet","Gay","Lemaître","Bénard","Maréchal","Humbert","Reynaud","Antoine","Hoarau","Perret","Barthélemy","Cordier","Pichon","Lejeune","Gilbert","Lamy","Delaunay","Pasquier","Carlier","LaporteLaporte"]},postcodeAreas:[{code:"AB"},{code:"AL"},{code:"B"},{code:"BA"},{code:"BB"},{code:"BD"},{code:"BH"},{code:"BL"},{code:"BN"},{code:"BR"},{code:"BS"},{code:"BT"},{code:"CA"},{code:"CB"},{code:"CF"},{code:"CH"},{code:"CM"},{code:"CO"},{code:"CR"},{code:"CT"},{code:"CV"},{code:"CW"},{code:"DA"},{code:"DD"},{code:"DE"},{code:"DG"},{code:"DH"},{code:"DL"},{code:"DN"},{code:"DT"},{code:"DY"},{code:"E"},{code:"EC"},{code:"EH"},{code:"EN"},{code:"EX"},{code:"FK"},{code:"FY"},{code:"G"},{code:"GL"},{code:"GU"},{code:"GY"},{code:"HA"},{code:"HD"},{code:"HG"},{code:"HP"},{code:"HR"},{code:"HS"},{code:"HU"},{code:"HX"},{code:"IG"},{code:"IM"},{code:"IP"},{code:"IV"},{code:"JE"},{code:"KA"},{code:"KT"},{code:"KW"},{code:"KY"},{code:"L"},{code:"LA"},{code:"LD"},{code:"LE"},{code:"LL"},{code:"LN"},{code:"LS"},{code:"LU"},{code:"M"},{code:"ME"},{code:"MK"},{code:"ML"},{code:"N"},{code:"NE"},{code:"NG"},{code:"NN"},{code:"NP"},{code:"NR"},{code:"NW"},{code:"OL"},{code:"OX"},{code:"PA"},{code:"PE"},{code:"PH"},{code:"PL"},{code:"PO"},{code:"PR"},{code:"RG"},{code:"RH"},{code:"RM"},{code:"S"},{code:"SA"},{code:"SE"},{code:"SG"},{code:"SK"},{code:"SL"},{code:"SM"},{code:"SN"},{code:"SO"},{code:"SP"},{code:"SR"},{code:"SS"},{code:"ST"},{code:"SW"},{code:"SY"},{code:"TA"},{code:"TD"},{code:"TF"},{code:"TN"},{code:"TQ"},{code:"TR"},{code:"TS"},{code:"TW"},{code:"UB"},{code:"W"},{code:"WA"},{code:"WC"},{code:"WD"},{code:"WF"},{code:"WN"},{code:"WR"},{code:"WS"},{code:"WV"},{code:"YO"},{code:"ZE"}],countries:[{name:"Afghanistan",abbreviation:"AF"},{name:"Åland Islands",abbreviation:"AX"},{name:"Albania",abbreviation:"AL"},{name:"Algeria",abbreviation:"DZ"},{name:"American Samoa",abbreviation:"AS"},{name:"Andorra",abbreviation:"AD"},{name:"Angola",abbreviation:"AO"},{name:"Anguilla",abbreviation:"AI"},{name:"Antarctica",abbreviation:"AQ"},{name:"Antigua & Barbuda",abbreviation:"AG"},{name:"Argentina",abbreviation:"AR"},{name:"Armenia",abbreviation:"AM"},{name:"Aruba",abbreviation:"AW"},{name:"Ascension Island",abbreviation:"AC"},{name:"Australia",abbreviation:"AU"},{name:"Austria",abbreviation:"AT"},{name:"Azerbaijan",abbreviation:"AZ"},{name:"Bahamas",abbreviation:"BS"},{name:"Bahrain",abbreviation:"BH"},{name:"Bangladesh",abbreviation:"BD"},{name:"Barbados",abbreviation:"BB"},{name:"Belarus",abbreviation:"BY"},{name:"Belgium",abbreviation:"BE"},{name:"Belize",abbreviation:"BZ"},{name:"Benin",abbreviation:"BJ"},{name:"Bermuda",abbreviation:"BM"},{name:"Bhutan",abbreviation:"BT"},{name:"Bolivia",abbreviation:"BO"},{name:"Bosnia & Herzegovina",abbreviation:"BA"},{name:"Botswana",abbreviation:"BW"},{name:"Brazil",abbreviation:"BR"},{name:"British Indian Ocean Territory",abbreviation:"IO"},{name:"British Virgin Islands",abbreviation:"VG"},{name:"Brunei",abbreviation:"BN"},{name:"Bulgaria",abbreviation:"BG"},{name:"Burkina Faso",abbreviation:"BF"},{name:"Burundi",abbreviation:"BI"},{name:"Cambodia",abbreviation:"KH"},{name:"Cameroon",abbreviation:"CM"},{name:"Canada",abbreviation:"CA"},{name:"Canary Islands",abbreviation:"IC"},{name:"Cape Verde",abbreviation:"CV"},{name:"Caribbean Netherlands",abbreviation:"BQ"},{name:"Cayman Islands",abbreviation:"KY"},{name:"Central African Republic",abbreviation:"CF"},{name:"Ceuta & Melilla",abbreviation:"EA"},{name:"Chad",abbreviation:"TD"},{name:"Chile",abbreviation:"CL"},{name:"China",abbreviation:"CN"},{name:"Christmas Island",abbreviation:"CX"},{name:"Cocos (Keeling) Islands",abbreviation:"CC"},{name:"Colombia",abbreviation:"CO"},{name:"Comoros",abbreviation:"KM"},{name:"Congo - Brazzaville",abbreviation:"CG"},{name:"Congo - Kinshasa",abbreviation:"CD"},{name:"Cook Islands",abbreviation:"CK"},{name:"Costa Rica",abbreviation:"CR"},{name:"Côte d'Ivoire",abbreviation:"CI"},{name:"Croatia",abbreviation:"HR"},{name:"Cuba",abbreviation:"CU"},{name:"Curaçao",abbreviation:"CW"},{name:"Cyprus",abbreviation:"CY"},{name:"Czech Republic",abbreviation:"CZ"},{name:"Denmark",abbreviation:"DK"},{name:"Diego Garcia",abbreviation:"DG"},{name:"Djibouti",abbreviation:"DJ"},{name:"Dominica",abbreviation:"DM"},{name:"Dominican Republic",abbreviation:"DO"},{name:"Ecuador",abbreviation:"EC"},{name:"Egypt",abbreviation:"EG"},{name:"El Salvador",abbreviation:"SV"},{name:"Equatorial Guinea",abbreviation:"GQ"},{name:"Eritrea",abbreviation:"ER"},{name:"Estonia",abbreviation:"EE"},{name:"Ethiopia",abbreviation:"ET"},{name:"Falkland Islands",abbreviation:"FK"},{name:"Faroe Islands",abbreviation:"FO"},{name:"Fiji",abbreviation:"FJ"},{name:"Finland",abbreviation:"FI"},{name:"France",abbreviation:"FR"},{name:"French Guiana",abbreviation:"GF"},{name:"French Polynesia",abbreviation:"PF"},{name:"French Southern Territories",abbreviation:"TF"},{name:"Gabon",abbreviation:"GA"},{name:"Gambia",abbreviation:"GM"},{name:"Georgia",abbreviation:"GE"},{name:"Germany",abbreviation:"DE"},{name:"Ghana",abbreviation:"GH"},{name:"Gibraltar",abbreviation:"GI"},{name:"Greece",abbreviation:"GR"},{name:"Greenland",abbreviation:"GL"},{name:"Grenada",abbreviation:"GD"},{name:"Guadeloupe",abbreviation:"GP"},{name:"Guam",abbreviation:"GU"},{name:"Guatemala",abbreviation:"GT"},{name:"Guernsey",abbreviation:"GG"},{name:"Guinea",abbreviation:"GN"},{name:"Guinea-Bissau",abbreviation:"GW"},{name:"Guyana",abbreviation:"GY"},{name:"Haiti",abbreviation:"HT"},{name:"Honduras",abbreviation:"HN"},{name:"Hong Kong SAR China",abbreviation:"HK"},{name:"Hungary",abbreviation:"HU"},{name:"Iceland",abbreviation:"IS"},{name:"India",abbreviation:"IN"},{name:"Indonesia",abbreviation:"ID"},{name:"Iran",abbreviation:"IR"},{name:"Iraq",abbreviation:"IQ"},{name:"Ireland",abbreviation:"IE"},{name:"Isle of Man",abbreviation:"IM"},{name:"Israel",abbreviation:"IL"},{name:"Italy",abbreviation:"IT"},{name:"Jamaica",abbreviation:"JM"},{name:"Japan",abbreviation:"JP"},{name:"Jersey",abbreviation:"JE"},{name:"Jordan",abbreviation:"JO"},{name:"Kazakhstan",abbreviation:"KZ"},{name:"Kenya",abbreviation:"KE"},{name:"Kiribati",abbreviation:"KI"},{name:"Kosovo",abbreviation:"XK"},{name:"Kuwait",abbreviation:"KW"},{name:"Kyrgyzstan",abbreviation:"KG"},{name:"Laos",abbreviation:"LA"},{name:"Latvia",abbreviation:"LV"},{name:"Lebanon",abbreviation:"LB"},{name:"Lesotho",abbreviation:"LS"},{name:"Liberia",abbreviation:"LR"},{name:"Libya",abbreviation:"LY"},{name:"Liechtenstein",abbreviation:"LI"},{name:"Lithuania",abbreviation:"LT"},{name:"Luxembourg",abbreviation:"LU"},{name:"Macau SAR China",abbreviation:"MO"},{name:"Macedonia",abbreviation:"MK"},{name:"Madagascar",abbreviation:"MG"},{name:"Malawi",abbreviation:"MW"},{name:"Malaysia",abbreviation:"MY"},{name:"Maldives",abbreviation:"MV"},{name:"Mali",abbreviation:"ML"},{name:"Malta",abbreviation:"MT"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Martinique",abbreviation:"MQ"},{name:"Mauritania",abbreviation:"MR"},{name:"Mauritius",abbreviation:"MU"},{name:"Mayotte",abbreviation:"YT"},{name:"Mexico",abbreviation:"MX"},{name:"Micronesia",abbreviation:"FM"},{name:"Moldova",abbreviation:"MD"},{name:"Monaco",abbreviation:"MC"},{name:"Mongolia",abbreviation:"MN"},{name:"Montenegro",abbreviation:"ME"},{name:"Montserrat",abbreviation:"MS"},{name:"Morocco",abbreviation:"MA"},{name:"Mozambique",abbreviation:"MZ"},{name:"Myanmar (Burma)",abbreviation:"MM"},{name:"Namibia",abbreviation:"NA"},{name:"Nauru",abbreviation:"NR"},{name:"Nepal",abbreviation:"NP"},{name:"Netherlands",abbreviation:"NL"},{name:"New Caledonia",abbreviation:"NC"},{name:"New Zealand",abbreviation:"NZ"},{name:"Nicaragua",abbreviation:"NI"},{name:"Niger",abbreviation:"NE"},{name:"Nigeria",abbreviation:"NG"},{name:"Niue",abbreviation:"NU"},{name:"Norfolk Island",abbreviation:"NF"},{name:"North Korea",abbreviation:"KP"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Norway",abbreviation:"NO"},{name:"Oman",abbreviation:"OM"},{name:"Pakistan",abbreviation:"PK"},{name:"Palau",abbreviation:"PW"},{name:"Palestinian Territories",abbreviation:"PS"},{name:"Panama",abbreviation:"PA"},{name:"Papua New Guinea",abbreviation:"PG"},{name:"Paraguay",abbreviation:"PY"},{name:"Peru",abbreviation:"PE"},{name:"Philippines",abbreviation:"PH"},{name:"Pitcairn Islands",abbreviation:"PN"},{name:"Poland",abbreviation:"PL"},{name:"Portugal",abbreviation:"PT"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Qatar",abbreviation:"QA"},{name:"Réunion",abbreviation:"RE"},{name:"Romania",abbreviation:"RO"},{name:"Russia",abbreviation:"RU"},{name:"Rwanda",abbreviation:"RW"},{name:"Samoa",abbreviation:"WS"},{name:"San Marino",abbreviation:"SM"},{name:"São Tomé and Príncipe",abbreviation:"ST"},{name:"Saudi Arabia",abbreviation:"SA"},{name:"Senegal",abbreviation:"SN"},{name:"Serbia",abbreviation:"RS"},{name:"Seychelles",abbreviation:"SC"},{name:"Sierra Leone",abbreviation:"SL"},{name:"Singapore",abbreviation:"SG"},{name:"Sint Maarten",abbreviation:"SX"},{name:"Slovakia",abbreviation:"SK"},{name:"Slovenia",abbreviation:"SI"},{name:"Solomon Islands",abbreviation:"SB"},{name:"Somalia",abbreviation:"SO"},{name:"South Africa",abbreviation:"ZA"},{name:"South Georgia & South Sandwich Islands",abbreviation:"GS"},{name:"South Korea",abbreviation:"KR"},{name:"South Sudan",abbreviation:"SS"},{name:"Spain",abbreviation:"ES"},{name:"Sri Lanka",abbreviation:"LK"},{name:"St. Barthélemy",abbreviation:"BL"},{name:"St. Helena",abbreviation:"SH"},{name:"St. Kitts & Nevis",abbreviation:"KN"},{name:"St. Lucia",abbreviation:"LC"},{name:"St. Martin",abbreviation:"MF"},{name:"St. Pierre & Miquelon",abbreviation:"PM"},{name:"St. Vincent & Grenadines",abbreviation:"VC"},{name:"Sudan",abbreviation:"SD"},{name:"Suriname",abbreviation:"SR"},{name:"Svalbard & Jan Mayen",abbreviation:"SJ"},{name:"Swaziland",abbreviation:"SZ"},{name:"Sweden",abbreviation:"SE"},{name:"Switzerland",abbreviation:"CH"},{name:"Syria",abbreviation:"SY"},{name:"Taiwan",abbreviation:"TW"},{name:"Tajikistan",abbreviation:"TJ"},{name:"Tanzania",abbreviation:"TZ"},{name:"Thailand",abbreviation:"TH"},{name:"Timor-Leste",abbreviation:"TL"},{name:"Togo",abbreviation:"TG"},{name:"Tokelau",abbreviation:"TK"},{name:"Tonga",abbreviation:"TO"},{name:"Trinidad & Tobago",abbreviation:"TT"},{name:"Tristan da Cunha",abbreviation:"TA"},{name:"Tunisia",abbreviation:"TN"},{name:"Turkey",abbreviation:"TR"},{name:"Turkmenistan",abbreviation:"TM"},{name:"Turks & Caicos Islands",abbreviation:"TC"},{name:"Tuvalu",abbreviation:"TV"},{name:"U.S. Outlying Islands",abbreviation:"UM"},{name:"U.S. Virgin Islands",abbreviation:"VI"},{name:"Uganda",abbreviation:"UG"},{name:"Ukraine",abbreviation:"UA"},{name:"United Arab Emirates",abbreviation:"AE"},{name:"United Kingdom",abbreviation:"GB"},{name:"United States",abbreviation:"US"},{name:"Uruguay",abbreviation:"UY"},{name:"Uzbekistan",abbreviation:"UZ"},{name:"Vanuatu",abbreviation:"VU"},{name:"Vatican City",abbreviation:"VA"},{name:"Venezuela",abbreviation:"VE"},{name:"Vietnam",abbreviation:"VN"},{name:"Wallis & Futuna",abbreviation:"WF"},{name:"Western Sahara",abbreviation:"EH"},{name:"Yemen",abbreviation:"YE"},{name:"Zambia",abbreviation:"ZM"},{name:"Zimbabwe",abbreviation:"ZW"}],counties:{uk:[{name:"Bath and North East Somerset"},{name:"Aberdeenshire"},{name:"Anglesey"},{name:"Angus"},{name:"Bedford"},{name:"Blackburn with Darwen"},{name:"Blackpool"},{name:"Bournemouth"},{name:"Bracknell Forest"},{name:"Brighton & Hove"},{name:"Bristol"},{name:"Buckinghamshire"},{name:"Cambridgeshire"},{name:"Carmarthenshire"},{name:"Central Bedfordshire"},{name:"Ceredigion"},{name:"Cheshire East"},{name:"Cheshire West and Chester"},{name:"Clackmannanshire"},{name:"Conwy"},{name:"Cornwall"},{name:"County Antrim"},{name:"County Armagh"},{name:"County Down"},{name:"County Durham"},{name:"County Fermanagh"},{name:"County Londonderry"},{name:"County Tyrone"},{name:"Cumbria"},{name:"Darlington"},{name:"Denbighshire"},{name:"Derby"},{name:"Derbyshire"},{name:"Devon"},{name:"Dorset"},{name:"Dumfries and Galloway"},{name:"Dundee"},{name:"East Lothian"},{name:"East Riding of Yorkshire"},{name:"East Sussex"},{name:"Edinburgh?"},{name:"Essex"},{name:"Falkirk"},{name:"Fife"},{name:"Flintshire"},{name:"Gloucestershire"},{name:"Greater London"},{name:"Greater Manchester"},{name:"Gwent"},{name:"Gwynedd"},{name:"Halton"},{name:"Hampshire"},{name:"Hartlepool"},{name:"Herefordshire"},{name:"Hertfordshire"},{name:"Highlands"},{name:"Hull"},{name:"Isle of Wight"},{name:"Isles of Scilly"},{name:"Kent"},{name:"Lancashire"},{name:"Leicester"},{name:"Leicestershire"},{name:"Lincolnshire"},{name:"Lothian"},{name:"Luton"},{name:"Medway"},{name:"Merseyside"},{name:"Mid Glamorgan"},{name:"Middlesbrough"},{name:"Milton Keynes"},{name:"Monmouthshire"},{name:"Moray"},{name:"Norfolk"},{name:"North East Lincolnshire"},{name:"North Lincolnshire"},{name:"North Somerset"},{name:"North Yorkshire"},{name:"Northamptonshire"},{name:"Northumberland"},{name:"Nottingham"},{name:"Nottinghamshire"},{name:"Oxfordshire"},{name:"Pembrokeshire"},{name:"Perth and Kinross"},{name:"Peterborough"},{name:"Plymouth"},{name:"Poole"},{name:"Portsmouth"},{name:"Powys"},{name:"Reading"},{name:"Redcar and Cleveland"},{name:"Rutland"},{name:"Scottish Borders"},{name:"Shropshire"},{name:"Slough"},{name:"Somerset"},{name:"South Glamorgan"},{name:"South Gloucestershire"},{name:"South Yorkshire"},{name:"Southampton"},{name:"Southend-on-Sea"},{name:"Staffordshire"},{name:"Stirlingshire"},{name:"Stockton-on-Tees"},{name:"Stoke-on-Trent"},{name:"Strathclyde"},{name:"Suffolk"},{name:"Surrey"},{name:"Swindon"},{name:"Telford and Wrekin"},{name:"Thurrock"},{name:"Torbay"},{name:"Tyne and Wear"},{name:"Warrington"},{name:"Warwickshire"},{name:"West Berkshire"},{name:"West Glamorgan"},{name:"West Lothian"},{name:"West Midlands"},{name:"West Sussex"},{name:"West Yorkshire"},{name:"Western Isles"},{name:"Wiltshire"},{name:"Windsor and Maidenhead"},{name:"Wokingham"},{name:"Worcestershire"},{name:"Wrexham"},{name:"York"}]},provinces:{ca:[{name:"Alberta",abbreviation:"AB"},{name:"British Columbia",abbreviation:"BC"},{name:"Manitoba",abbreviation:"MB"},{name:"New Brunswick",abbreviation:"NB"},{name:"Newfoundland and Labrador",abbreviation:"NL"},{name:"Nova Scotia",abbreviation:"NS"},{name:"Ontario",abbreviation:"ON"},{name:"Prince Edward Island",abbreviation:"PE"},{name:"Quebec",abbreviation:"QC"},{name:"Saskatchewan",abbreviation:"SK"},{name:"Northwest Territories",abbreviation:"NT"},{name:"Nunavut",abbreviation:"NU"},{name:"Yukon",abbreviation:"YT"}],it:[{name:"Agrigento",abbreviation:"AG",code:84},{name:"Alessandria",abbreviation:"AL",code:6},{name:"Ancona",abbreviation:"AN",code:42},{name:"Aosta",abbreviation:"AO",code:7},{name:"L'Aquila",abbreviation:"AQ",code:66},{name:"Arezzo",abbreviation:"AR",code:51},{name:"Ascoli-Piceno",abbreviation:"AP",code:44},{name:"Asti",abbreviation:"AT",code:5},{name:"Avellino",abbreviation:"AV",code:64},{name:"Bari",abbreviation:"BA",code:72},{name:"Barletta-Andria-Trani",abbreviation:"BT",code:72},{name:"Belluno",abbreviation:"BL",code:25},{name:"Benevento",abbreviation:"BN",code:62},{name:"Bergamo",abbreviation:"BG",code:16},{name:"Biella",abbreviation:"BI",code:96},{name:"Bologna",abbreviation:"BO",code:37},{name:"Bolzano",abbreviation:"BZ",code:21},{name:"Brescia",abbreviation:"BS",code:17},{name:"Brindisi",abbreviation:"BR",code:74},{name:"Cagliari",abbreviation:"CA",code:92},{name:"Caltanissetta",abbreviation:"CL",code:85},{name:"Campobasso",abbreviation:"CB",code:70},{name:"Carbonia Iglesias",abbreviation:"CI",code:70},{name:"Caserta",abbreviation:"CE",code:61},{name:"Catania",abbreviation:"CT",code:87},{name:"Catanzaro",abbreviation:"CZ",code:79},{name:"Chieti",abbreviation:"CH",code:69},{name:"Como",abbreviation:"CO",code:13},{name:"Cosenza",abbreviation:"CS",code:78},{name:"Cremona",abbreviation:"CR",code:19},{name:"Crotone",abbreviation:"KR",code:101},{name:"Cuneo",abbreviation:"CN",code:4},{name:"Enna",abbreviation:"EN",code:86},{name:"Fermo",abbreviation:"FM",code:86},{name:"Ferrara",abbreviation:"FE",code:38},{name:"Firenze",abbreviation:"FI",code:48},{name:"Foggia",abbreviation:"FG",code:71},{name:"Forli-Cesena",abbreviation:"FC",code:71},{name:"Frosinone",abbreviation:"FR",code:60},{name:"Genova",abbreviation:"GE",code:10},{name:"Gorizia",abbreviation:"GO",code:31},{name:"Grosseto",abbreviation:"GR",code:53},{name:"Imperia",abbreviation:"IM",code:8},{name:"Isernia",abbreviation:"IS",code:94},{name:"La-Spezia",abbreviation:"SP",code:66},{name:"Latina",abbreviation:"LT",code:59},{name:"Lecce",abbreviation:"LE",code:75},{name:"Lecco",abbreviation:"LC",code:97},{name:"Livorno",abbreviation:"LI",code:49},{name:"Lodi",abbreviation:"LO",code:98},{name:"Lucca",abbreviation:"LU",code:46},{name:"Macerata",abbreviation:"MC",code:43},{name:"Mantova",abbreviation:"MN",code:20},{name:"Massa-Carrara",abbreviation:"MS",code:45},{name:"Matera",abbreviation:"MT",code:77},{name:"Medio Campidano",abbreviation:"VS",code:77},{name:"Messina",abbreviation:"ME",code:83},{name:"Milano",abbreviation:"MI",code:15},{name:"Modena",abbreviation:"MO",code:36},{name:"Monza-Brianza",abbreviation:"MB",code:36},{name:"Napoli",abbreviation:"NA",code:63},{name:"Novara",abbreviation:"NO",code:3},{name:"Nuoro",abbreviation:"NU",code:91},{name:"Ogliastra",abbreviation:"OG",code:91},{name:"Olbia Tempio",abbreviation:"OT",code:91},{name:"Oristano",abbreviation:"OR",code:95},{name:"Padova",abbreviation:"PD",code:28},{name:"Palermo",abbreviation:"PA",code:82},{name:"Parma",abbreviation:"PR",code:34},{name:"Pavia",abbreviation:"PV",code:18},{name:"Perugia",abbreviation:"PG",code:54},{name:"Pesaro-Urbino",abbreviation:"PU",code:41},{name:"Pescara",abbreviation:"PE",code:68},{name:"Piacenza",abbreviation:"PC",code:33},{name:"Pisa",abbreviation:"PI",code:50},{name:"Pistoia",abbreviation:"PT",code:47},{name:"Pordenone",abbreviation:"PN",code:93},{name:"Potenza",abbreviation:"PZ",code:76},{name:"Prato",abbreviation:"PO",code:100},{name:"Ragusa",abbreviation:"RG",code:88},{name:"Ravenna",abbreviation:"RA",code:39},{name:"Reggio-Calabria",abbreviation:"RC",code:35},{name:"Reggio-Emilia",abbreviation:"RE",code:35},{name:"Rieti",abbreviation:"RI",code:57},{name:"Rimini",abbreviation:"RN",code:99},{name:"Roma",abbreviation:"Roma",code:58},{name:"Rovigo",abbreviation:"RO",code:29},{name:"Salerno",abbreviation:"SA",code:65},{name:"Sassari",abbreviation:"SS",code:90},{name:"Savona",abbreviation:"SV",code:9},{name:"Siena",abbreviation:"SI",code:52},{name:"Siracusa",abbreviation:"SR",code:89},{name:"Sondrio",abbreviation:"SO",code:14},{name:"Taranto",abbreviation:"TA",code:73},{name:"Teramo",abbreviation:"TE",code:67},{name:"Terni",abbreviation:"TR",code:55},{name:"Torino",abbreviation:"TO",code:1},{name:"Trapani",abbreviation:"TP",code:81},{name:"Trento",abbreviation:"TN",code:22},{name:"Treviso",abbreviation:"TV",code:26},{name:"Trieste",abbreviation:"TS",code:32},{name:"Udine",abbreviation:"UD",code:30},{name:"Varese",abbreviation:"VA",code:12},{name:"Venezia",abbreviation:"VE",code:27},{name:"Verbania",abbreviation:"VB",code:27},{name:"Vercelli",abbreviation:"VC",code:2},{name:"Verona",abbreviation:"VR",code:23},{name:"Vibo-Valentia",abbreviation:"VV",code:102},{name:"Vicenza",abbreviation:"VI",code:24},{name:"Viterbo",abbreviation:"VT",code:56}]},nationalities:[{name:"Afghan"},{name:"Albanian"},{name:"Algerian"},{name:"American"},{name:"Andorran"},{name:"Angolan"},{name:"Antiguans"},{name:"Argentinean"},{name:"Armenian"},{name:"Australian"},{name:"Austrian"},{name:"Azerbaijani"},{name:"Bahami"},{name:"Bahraini"},{name:"Bangladeshi"},{name:"Barbadian"},{name:"Barbudans"},{name:"Batswana"},{name:"Belarusian"},{name:"Belgian"},{name:"Belizean"},{name:"Beninese"},{name:"Bhutanese"},{name:"Bolivian"},{name:"Bosnian"},{name:"Brazilian"},{name:"British"},{name:"Bruneian"},{name:"Bulgarian"},{name:"Burkinabe"},{name:"Burmese"},{name:"Burundian"},{name:"Cambodian"},{name:"Cameroonian"},{name:"Canadian"},{name:"Cape Verdean"},{name:"Central African"},{name:"Chadian"},{name:"Chilean"},{name:"Chinese"},{name:"Colombian"},{name:"Comoran"},{name:"Congolese"},{name:"Costa Rican"},{name:"Croatian"},{name:"Cuban"},{name:"Cypriot"},{name:"Czech"},{name:"Danish"},{name:"Djibouti"},{name:"Dominican"},{name:"Dutch"},{name:"East Timorese"},{name:"Ecuadorean"},{name:"Egyptian"},{name:"Emirian"},{name:"Equatorial Guinean"},{name:"Eritrean"},{name:"Estonian"},{name:"Ethiopian"},{name:"Fijian"},{name:"Filipino"},{name:"Finnish"},{name:"French"},{name:"Gabonese"},{name:"Gambian"},{name:"Georgian"},{name:"German"},{name:"Ghanaian"},{name:"Greek"},{name:"Grenadian"},{name:"Guatemalan"},{name:"Guinea-Bissauan"},{name:"Guinean"},{name:"Guyanese"},{name:"Haitian"},{name:"Herzegovinian"},{name:"Honduran"},{name:"Hungarian"},{name:"I-Kiribati"},{name:"Icelander"},{name:"Indian"},{name:"Indonesian"},{name:"Iranian"},{name:"Iraqi"},{name:"Irish"},{name:"Israeli"},{name:"Italian"},{name:"Ivorian"},{name:"Jamaican"},{name:"Japanese"},{name:"Jordanian"},{name:"Kazakhstani"},{name:"Kenyan"},{name:"Kittian and Nevisian"},{name:"Kuwaiti"},{name:"Kyrgyz"},{name:"Laotian"},{name:"Latvian"},{name:"Lebanese"},{name:"Liberian"},{name:"Libyan"},{name:"Liechtensteiner"},{name:"Lithuanian"},{name:"Luxembourger"},{name:"Macedonian"},{name:"Malagasy"},{name:"Malawian"},{name:"Malaysian"},{name:"Maldivan"},{name:"Malian"},{name:"Maltese"},{name:"Marshallese"},{name:"Mauritanian"},{name:"Mauritian"},{name:"Mexican"},{name:"Micronesian"},{name:"Moldovan"},{name:"Monacan"},{name:"Mongolian"},{name:"Moroccan"},{name:"Mosotho"},{name:"Motswana"},{name:"Mozambican"},{name:"Namibian"},{name:"Nauruan"},{name:"Nepalese"},{name:"New Zealander"},{name:"Nicaraguan"},{name:"Nigerian"},{name:"Nigerien"},{name:"North Korean"},{name:"Northern Irish"},{name:"Norwegian"},{name:"Omani"},{name:"Pakistani"},{name:"Palauan"},{name:"Panamanian"},{name:"Papua New Guinean"},{name:"Paraguayan"},{name:"Peruvian"},{name:"Polish"},{name:"Portuguese"},{name:"Qatari"},{name:"Romani"},{name:"Russian"},{name:"Rwandan"},{name:"Saint Lucian"},{name:"Salvadoran"},{name:"Samoan"},{name:"San Marinese"},{name:"Sao Tomean"},{name:"Saudi"},{name:"Scottish"},{name:"Senegalese"},{name:"Serbian"},{name:"Seychellois"},{name:"Sierra Leonean"},{name:"Singaporean"},{name:"Slovakian"},{name:"Slovenian"},{name:"Solomon Islander"},{name:"Somali"},{name:"South African"},{name:"South Korean"},{name:"Spanish"},{name:"Sri Lankan"},{name:"Sudanese"},{name:"Surinamer"},{name:"Swazi"},{name:"Swedish"},{name:"Swiss"},{name:"Syrian"},{name:"Taiwanese"},{name:"Tajik"},{name:"Tanzanian"},{name:"Thai"},{name:"Togolese"},{name:"Tongan"},{name:"Trinidadian or Tobagonian"},{name:"Tunisian"},{name:"Turkish"},{name:"Tuvaluan"},{name:"Ugandan"},{name:"Ukrainian"},{name:"Uruguaya"},{name:"Uzbekistani"},{name:"Venezuela"},{name:"Vietnamese"},{name:"Wels"},{name:"Yemenit"},{name:"Zambia"},{name:"Zimbabwe"}],locale_languages:["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"],locale_regions:["agq-CM","asa-TZ","ast-ES","bas-CM","bem-ZM","bez-TZ","brx-IN","cgg-UG","chr-US","dav-KE","dje-NE","dsb-DE","dua-CM","dyo-SN","ebu-KE","ewo-CM","fil-PH","fur-IT","gsw-CH","gsw-FR","gsw-LI","guz-KE","haw-US","hsb-DE","jgo-CM","jmc-TZ","kab-DZ","kam-KE","kde-TZ","kea-CV","khq-ML","kkj-CM","kln-KE","kok-IN","ksb-TZ","ksf-CM","ksh-DE","lag-TZ","lkt-US","luo-KE","luy-KE","mas-KE","mas-TZ","mer-KE","mfe-MU","mgh-MZ","mgo-CM","mua-CM","naq-NA","nmg-CM","nnh-CM","nus-SD","nyn-UG","rof-TZ","rwk-TZ","sah-RU","saq-KE","sbp-TZ","seh-MZ","ses-ML","shi-Latn","shi-Latn-MA","shi-Tfng","shi-Tfng-MA","smn-FI","teo-KE","teo-UG","twq-NE","tzm-Latn","tzm-Latn-MA","vai-Latn","vai-Latn-LR","vai-Vaii","vai-Vaii-LR","vun-TZ","wae-CH","xog-UG","yav-CM","zgh-MA","af-NA","af-ZA","ak-GH","am-ET","ar-001","ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","as-IN","az-Cyrl","az-Cyrl-AZ","az-Latn","az-Latn-AZ","be-BY","bg-BG","bm-Latn","bm-Latn-ML","bn-BD","bn-IN","bo-CN","bo-IN","br-FR","bs-Cyrl","bs-Cyrl-BA","bs-Latn","bs-Latn-BA","ca-AD","ca-ES","ca-ES-VALENCIA","ca-FR","ca-IT","cs-CZ","cy-GB","da-DK","da-GL","de-AT","de-BE","de-CH","de-DE","de-LI","de-LU","dz-BT","ee-GH","ee-TG","el-CY","el-GR","en-001","en-150","en-AG","en-AI","en-AS","en-AU","en-BB","en-BE","en-BM","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CK","en-CM","en-CX","en-DG","en-DM","en-ER","en-FJ","en-FK","en-FM","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GU","en-GY","en-HK","en-IE","en-IM","en-IN","en-IO","en-JE","en-JM","en-KE","en-KI","en-KN","en-KY","en-LC","en-LR","en-LS","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MW","en-MY","en-NA","en-NF","en-NG","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PN","en-PR","en-PW","en-RW","en-SB","en-SC","en-SD","en-SG","en-SH","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TK","en-TO","en-TT","en-TV","en-TZ","en-UG","en-UM","en-US","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","eo-001","es-419","es-AR","es-BO","es-CL","es-CO","es-CR","es-CU","es-DO","es-EA","es-EC","es-ES","es-GQ","es-GT","es-HN","es-IC","es-MX","es-NI","es-PA","es-PE","es-PH","es-PR","es-PY","es-SV","es-US","es-UY","es-VE","et-EE","eu-ES","fa-AF","fa-IR","ff-CM","ff-GN","ff-MR","ff-SN","fi-FI","fo-FO","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-FR","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","fy-NL","ga-IE","gd-GB","gl-ES","gu-IN","gv-IM","ha-Latn","ha-Latn-GH","ha-Latn-NE","ha-Latn-NG","he-IL","hi-IN","hr-BA","hr-HR","hu-HU","hy-AM","id-ID","ig-NG","ii-CN","is-IS","it-CH","it-IT","it-SM","ja-JP","ka-GE","ki-KE","kk-Cyrl","kk-Cyrl-KZ","kl-GL","km-KH","kn-IN","ko-KP","ko-KR","ks-Arab","ks-Arab-IN","kw-GB","ky-Cyrl","ky-Cyrl-KG","lb-LU","lg-UG","ln-AO","ln-CD","ln-CF","ln-CG","lo-LA","lt-LT","lu-CD","lv-LV","mg-MG","mk-MK","ml-IN","mn-Cyrl","mn-Cyrl-MN","mr-IN","ms-Latn","ms-Latn-BN","ms-Latn-MY","ms-Latn-SG","mt-MT","my-MM","nb-NO","nb-SJ","nd-ZW","ne-IN","ne-NP","nl-AW","nl-BE","nl-BQ","nl-CW","nl-NL","nl-SR","nl-SX","nn-NO","om-ET","om-KE","or-IN","os-GE","os-RU","pa-Arab","pa-Arab-PK","pa-Guru","pa-Guru-IN","pl-PL","ps-AF","pt-AO","pt-BR","pt-CV","pt-GW","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","qu-BO","qu-EC","qu-PE","rm-CH","rn-BI","ro-MD","ro-RO","ru-BY","ru-KG","ru-KZ","ru-MD","ru-RU","ru-UA","rw-RW","se-FI","se-NO","se-SE","sg-CF","si-LK","sk-SK","sl-SI","sn-ZW","so-DJ","so-ET","so-KE","so-SO","sq-AL","sq-MK","sq-XK","sr-Cyrl","sr-Cyrl-BA","sr-Cyrl-ME","sr-Cyrl-RS","sr-Cyrl-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-RS","sr-Latn-XK","sv-AX","sv-FI","sv-SE","sw-CD","sw-KE","sw-TZ","sw-UG","ta-IN","ta-LK","ta-MY","ta-SG","te-IN","th-TH","ti-ER","ti-ET","to-TO","tr-CY","tr-TR","ug-Arab","ug-Arab-CN","uk-UA","ur-IN","ur-PK","uz-Arab","uz-Arab-AF","uz-Cyrl","uz-Cyrl-UZ","uz-Latn","uz-Latn-UZ","vi-VN","yi-001","yo-BJ","yo-NG","zh-Hans","zh-Hans-CN","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zh-Hant-TW","zu-ZA"],us_states_and_dc:[{name:"Alabama",abbreviation:"AL"},{name:"Alaska",abbreviation:"AK"},{name:"Arizona",abbreviation:"AZ"},{name:"Arkansas",abbreviation:"AR"},{name:"California",abbreviation:"CA"},{name:"Colorado",abbreviation:"CO"},{name:"Connecticut",abbreviation:"CT"},{name:"Delaware",abbreviation:"DE"},{name:"District of Columbia",abbreviation:"DC"},{name:"Florida",abbreviation:"FL"},{name:"Georgia",abbreviation:"GA"},{name:"Hawaii",abbreviation:"HI"},{name:"Idaho",abbreviation:"ID"},{name:"Illinois",abbreviation:"IL"},{name:"Indiana",abbreviation:"IN"},{name:"Iowa",abbreviation:"IA"},{name:"Kansas",abbreviation:"KS"},{name:"Kentucky",abbreviation:"KY"},{name:"Louisiana",abbreviation:"LA"},{name:"Maine",abbreviation:"ME"},{name:"Maryland",abbreviation:"MD"},{name:"Massachusetts",abbreviation:"MA"},{name:"Michigan",abbreviation:"MI"},{name:"Minnesota",abbreviation:"MN"},{name:"Mississippi",abbreviation:"MS"},{name:"Missouri",abbreviation:"MO"},{name:"Montana",abbreviation:"MT"},{name:"Nebraska",abbreviation:"NE"},{name:"Nevada",abbreviation:"NV"},{name:"New Hampshire",abbreviation:"NH"},{name:"New Jersey",abbreviation:"NJ"},{name:"New Mexico",abbreviation:"NM"},{name:"New York",abbreviation:"NY"},{name:"North Carolina",abbreviation:"NC"},{name:"North Dakota",abbreviation:"ND"},{name:"Ohio",abbreviation:"OH"},{name:"Oklahoma",abbreviation:"OK"},{name:"Oregon",abbreviation:"OR"},{name:"Pennsylvania",abbreviation:"PA"},{name:"Rhode Island",abbreviation:"RI"},{name:"South Carolina",abbreviation:"SC"},{name:"South Dakota",abbreviation:"SD"},{name:"Tennessee",abbreviation:"TN"},{name:"Texas",abbreviation:"TX"},{name:"Utah",abbreviation:"UT"},{name:"Vermont",abbreviation:"VT"},{name:"Virginia",abbreviation:"VA"},{name:"Washington",abbreviation:"WA"},{name:"West Virginia",abbreviation:"WV"},{name:"Wisconsin",abbreviation:"WI"},{name:"Wyoming",abbreviation:"WY"}],territories:[{name:"American Samoa",abbreviation:"AS"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Guam",abbreviation:"GU"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Virgin Islands, U.S.",abbreviation:"VI"}],armed_forces:[{name:"Armed Forces Europe",abbreviation:"AE"},{name:"Armed Forces Pacific",abbreviation:"AP"},{name:"Armed Forces the Americas",abbreviation:"AA"}],country_regions:{it:[{name:"Valle d'Aosta",abbreviation:"VDA"},{name:"Piemonte",abbreviation:"PIE"},{name:"Lombardia",abbreviation:"LOM"},{name:"Veneto",abbreviation:"VEN"},{name:"Trentino Alto Adige",abbreviation:"TAA"},{name:"Friuli Venezia Giulia",abbreviation:"FVG"},{name:"Liguria",abbreviation:"LIG"},{name:"Emilia Romagna",abbreviation:"EMR"},{name:"Toscana",abbreviation:"TOS"},{name:"Umbria",abbreviation:"UMB"},{name:"Marche",abbreviation:"MAR"},{name:"Abruzzo",abbreviation:"ABR"},{name:"Lazio",abbreviation:"LAZ"},{name:"Campania",abbreviation:"CAM"},{name:"Puglia",abbreviation:"PUG"},{name:"Basilicata",abbreviation:"BAS"},{name:"Molise",abbreviation:"MOL"},{name:"Calabria",abbreviation:"CAL"},{name:"Sicilia",abbreviation:"SIC"},{name:"Sardegna",abbreviation:"SAR"}],mx:[{name:"Aguascalientes",abbreviation:"AGU"},{name:"Baja California",abbreviation:"BCN"},{name:"Baja California Sur",abbreviation:"BCS"},{name:"Campeche",abbreviation:"CAM"},{name:"Chiapas",abbreviation:"CHP"},{name:"Chihuahua",abbreviation:"CHH"},{name:"Ciudad de México",abbreviation:"DIF"},{name:"Coahuila",abbreviation:"COA"},{name:"Colima",abbreviation:"COL"},{name:"Durango",abbreviation:"DUR"},{name:"Guanajuato",abbreviation:"GUA"},{name:"Guerrero",abbreviation:"GRO"},{name:"Hidalgo",abbreviation:"HID"},{name:"Jalisco",abbreviation:"JAL"},{name:"México",abbreviation:"MEX"},{name:"Michoacán",abbreviation:"MIC"},{name:"Morelos",abbreviation:"MOR"},{name:"Nayarit",abbreviation:"NAY"},{name:"Nuevo León",abbreviation:"NLE"},{name:"Oaxaca",abbreviation:"OAX"},{name:"Puebla",abbreviation:"PUE"},{name:"Querétaro",abbreviation:"QUE"},{name:"Quintana Roo",abbreviation:"ROO"},{name:"San Luis Potosí",abbreviation:"SLP"},{name:"Sinaloa",abbreviation:"SIN"},{name:"Sonora",abbreviation:"SON"},{name:"Tabasco",abbreviation:"TAB"},{name:"Tamaulipas",abbreviation:"TAM"},{name:"Tlaxcala",abbreviation:"TLA"},{name:"Veracruz",abbreviation:"VER"},{name:"Yucatán",abbreviation:"YUC"},{name:"Zacatecas",abbreviation:"ZAC"}]},street_suffixes:{us:[{name:"Avenue",abbreviation:"Ave"},{name:"Boulevard",abbreviation:"Blvd"},{name:"Center",abbreviation:"Ctr"},{name:"Circle",abbreviation:"Cir"},{name:"Court",abbreviation:"Ct"},{name:"Drive",abbreviation:"Dr"},{name:"Extension",abbreviation:"Ext"},{name:"Glen",abbreviation:"Gln"},{name:"Grove",abbreviation:"Grv"},{name:"Heights",abbreviation:"Hts"},{name:"Highway",abbreviation:"Hwy"},{name:"Junction",abbreviation:"Jct"},{name:"Key",abbreviation:"Key"},{name:"Lane",abbreviation:"Ln"},{name:"Loop",abbreviation:"Loop"},{name:"Manor",abbreviation:"Mnr"},{name:"Mill",abbreviation:"Mill"},{name:"Park",abbreviation:"Park"},{name:"Parkway",abbreviation:"Pkwy"},{name:"Pass",abbreviation:"Pass"},{name:"Path",abbreviation:"Path"},{name:"Pike",abbreviation:"Pike"},{name:"Place",abbreviation:"Pl"},{name:"Plaza",abbreviation:"Plz"},{name:"Point",abbreviation:"Pt"},{name:"Ridge",abbreviation:"Rdg"},{name:"River",abbreviation:"Riv"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Trail",abbreviation:"Trl"},{name:"Turnpike",abbreviation:"Tpke"},{name:"View",abbreviation:"Vw"},{name:"Way",abbreviation:"Way"}],it:[{name:"Accesso",abbreviation:"Acc."},{name:"Alzaia",abbreviation:"Alz."},{name:"Arco",abbreviation:"Arco"},{name:"Archivolto",abbreviation:"Acv."},{name:"Arena",abbreviation:"Arena"},{name:"Argine",abbreviation:"Argine"},{name:"Bacino",abbreviation:"Bacino"},{name:"Banchi",abbreviation:"Banchi"},{name:"Banchina",abbreviation:"Ban."},{name:"Bastioni",abbreviation:"Bas."},{name:"Belvedere",abbreviation:"Belv."},{name:"Borgata",abbreviation:"B.ta"},{name:"Borgo",abbreviation:"B.go"},{name:"Calata",abbreviation:"Cal."},{name:"Calle",abbreviation:"Calle"},{name:"Campiello",abbreviation:"Cam."},{name:"Campo",abbreviation:"Cam."},{name:"Canale",abbreviation:"Can."},{name:"Carraia",abbreviation:"Carr."},{name:"Cascina",abbreviation:"Cascina"},{name:"Case sparse",abbreviation:"c.s."},{name:"Cavalcavia",abbreviation:"Cv."},{name:"Circonvallazione",abbreviation:"Cv."},{name:"Complanare",abbreviation:"C.re"},{name:"Contrada",abbreviation:"C.da"},{name:"Corso",abbreviation:"C.so"},{name:"Corte",abbreviation:"C.te"},{name:"Cortile",abbreviation:"C.le"},{name:"Diramazione",abbreviation:"Dir."},{name:"Fondaco",abbreviation:"F.co"},{name:"Fondamenta",abbreviation:"F.ta"},{name:"Fondo",abbreviation:"F.do"},{name:"Frazione",abbreviation:"Fr."},{name:"Isola",abbreviation:"Is."},{name:"Largo",abbreviation:"L.go"},{name:"Litoranea",abbreviation:"Lit."},{name:"Lungolago",abbreviation:"L.go lago"},{name:"Lungo Po",abbreviation:"l.go Po"},{name:"Molo",abbreviation:"Molo"},{name:"Mura",abbreviation:"Mura"},{name:"Passaggio privato",abbreviation:"pass. priv."},{name:"Passeggiata",abbreviation:"Pass."},{name:"Piazza",abbreviation:"P.zza"},{name:"Piazzale",abbreviation:"P.le"},{name:"Ponte",abbreviation:"P.te"},{name:"Portico",abbreviation:"P.co"},{name:"Rampa",abbreviation:"Rampa"},{name:"Regione",abbreviation:"Reg."},{name:"Rione",abbreviation:"R.ne"},{name:"Rio",abbreviation:"Rio"},{name:"Ripa",abbreviation:"Ripa"},{name:"Riva",abbreviation:"Riva"},{name:"Rondò",abbreviation:"Rondò"},{name:"Rotonda",abbreviation:"Rot."},{name:"Sagrato",abbreviation:"Sagr."},{name:"Salita",abbreviation:"Sal."},{name:"Scalinata",abbreviation:"Scal."},{name:"Scalone",abbreviation:"Scal."},{name:"Slargo",abbreviation:"Sl."},{name:"Sottoportico",abbreviation:"Sott."},{name:"Strada",abbreviation:"Str."},{name:"Stradale",abbreviation:"Str.le"},{name:"Strettoia",abbreviation:"Strett."},{name:"Traversa",abbreviation:"Trav."},{name:"Via",abbreviation:"V."},{name:"Viale",abbreviation:"V.le"},{name:"Vicinale",abbreviation:"Vic.le"},{name:"Vicolo",abbreviation:"Vic."}],uk:[{name:"Avenue",abbreviation:"Ave"},{name:"Close",abbreviation:"Cl"},{name:"Court",abbreviation:"Ct"},{name:"Crescent",abbreviation:"Cr"},{name:"Drive",abbreviation:"Dr"},{name:"Garden",abbreviation:"Gdn"},{name:"Gardens",abbreviation:"Gdns"},{name:"Green",abbreviation:"Gn"},{name:"Grove",abbreviation:"Gr"},{name:"Lane",abbreviation:"Ln"},{name:"Mount",abbreviation:"Mt"},{name:"Place",abbreviation:"Pl"},{name:"Park",abbreviation:"Pk"},{name:"Ridge",abbreviation:"Rdg"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Valley",abbreviation:"Val"}]},months:[{name:"January",short_name:"Jan",numeric:"01",days:31},{name:"February",short_name:"Feb",numeric:"02",days:28},{name:"March",short_name:"Mar",numeric:"03",days:31},{name:"April",short_name:"Apr",numeric:"04",days:30},{name:"May",short_name:"May",numeric:"05",days:31},{name:"June",short_name:"Jun",numeric:"06",days:30},{name:"July",short_name:"Jul",numeric:"07",days:31},{name:"August",short_name:"Aug",numeric:"08",days:31},{name:"September",short_name:"Sep",numeric:"09",days:30},{name:"October",short_name:"Oct",numeric:"10",days:31},{name:"November",short_name:"Nov",numeric:"11",days:30},{name:"December",short_name:"Dec",numeric:"12",days:31}],cc_types:[{name:"American Express",short_name:"amex",prefix:"34",length:15},{name:"Bankcard",short_name:"bankcard",prefix:"5610",length:16},{name:"China UnionPay",short_name:"chinaunion",prefix:"62",length:16},{name:"Diners Club Carte Blanche",short_name:"dccarte",prefix:"300",length:14},{name:"Diners Club enRoute",short_name:"dcenroute",prefix:"2014",length:15},{name:"Diners Club International",short_name:"dcintl",prefix:"36",length:14},{name:"Diners Club United States & Canada",short_name:"dcusc",prefix:"54",length:16},{name:"Discover Card",short_name:"discover",prefix:"6011",length:16},{name:"InstaPayment",short_name:"instapay",prefix:"637",length:16},{name:"JCB",short_name:"jcb",prefix:"3528",length:16},{name:"Laser",short_name:"laser",prefix:"6304",length:16},{name:"Maestro",short_name:"maestro",prefix:"5018",length:16},{name:"Mastercard",short_name:"mc",prefix:"51",length:16},{name:"Solo",short_name:"solo",prefix:"6334",length:16},{name:"Switch",short_name:"switch",prefix:"4903",length:16},{name:"Visa",short_name:"visa",prefix:"4",length:16},{name:"Visa Electron",short_name:"electron",prefix:"4026",length:16}],currency_types:[{code:"AED",name:"United Arab Emirates Dirham"},{code:"AFN",name:"Afghanistan Afghani"},{code:"ALL",name:"Albania Lek"},{code:"AMD",name:"Armenia Dram"},{code:"ANG",name:"Netherlands Antilles Guilder"},{code:"AOA",name:"Angola Kwanza"},{code:"ARS",name:"Argentina Peso"},{code:"AUD",name:"Australia Dollar"},{code:"AWG",name:"Aruba Guilder"},{code:"AZN",name:"Azerbaijan New Manat"},{code:"BAM",name:"Bosnia and Herzegovina Convertible Marka"},{code:"BBD",name:"Barbados Dollar"},{code:"BDT",name:"Bangladesh Taka"},{code:"BGN",name:"Bulgaria Lev"},{code:"BHD",name:"Bahrain Dinar"},{code:"BIF",name:"Burundi Franc"},{code:"BMD",name:"Bermuda Dollar"},{code:"BND",name:"Brunei Darussalam Dollar"},{code:"BOB",name:"Bolivia Boliviano"},{code:"BRL",name:"Brazil Real"},{code:"BSD",name:"Bahamas Dollar"},{code:"BTN",name:"Bhutan Ngultrum"},{code:"BWP",name:"Botswana Pula"},{code:"BYR",name:"Belarus Ruble"},{code:"BZD",name:"Belize Dollar"},{code:"CAD",name:"Canada Dollar"},{code:"CDF",name:"Congo/Kinshasa Franc"},{code:"CHF",name:"Switzerland Franc"},{code:"CLP",name:"Chile Peso"},{code:"CNY",name:"China Yuan Renminbi"},{code:"COP",name:"Colombia Peso"},{code:"CRC",name:"Costa Rica Colon"},{code:"CUC",name:"Cuba Convertible Peso"},{code:"CUP",name:"Cuba Peso"},{code:"CVE",name:"Cape Verde Escudo"},{code:"CZK",name:"Czech Republic Koruna"},{code:"DJF",name:"Djibouti Franc"},{code:"DKK",name:"Denmark Krone"},{code:"DOP",name:"Dominican Republic Peso"},{code:"DZD",name:"Algeria Dinar"},{code:"EGP",name:"Egypt Pound"},{code:"ERN",name:"Eritrea Nakfa"},{code:"ETB",name:"Ethiopia Birr"},{code:"EUR",name:"Euro Member Countries"},{code:"FJD",name:"Fiji Dollar"},{code:"FKP",name:"Falkland Islands (Malvinas) Pound"},{code:"GBP",name:"United Kingdom Pound"},{code:"GEL",name:"Georgia Lari"},{code:"GGP",name:"Guernsey Pound"},{code:"GHS",name:"Ghana Cedi"},{code:"GIP",name:"Gibraltar Pound"},{code:"GMD",name:"Gambia Dalasi"},{code:"GNF",name:"Guinea Franc"},{code:"GTQ",name:"Guatemala Quetzal"},{code:"GYD",name:"Guyana Dollar"},{code:"HKD",name:"Hong Kong Dollar"},{code:"HNL",name:"Honduras Lempira"},{code:"HRK",name:"Croatia Kuna"},{code:"HTG",name:"Haiti Gourde"},{code:"HUF",name:"Hungary Forint"},{code:"IDR",name:"Indonesia Rupiah"},{code:"ILS",name:"Israel Shekel"},{code:"IMP",name:"Isle of Man Pound"},{code:"INR",name:"India Rupee"},{code:"IQD",name:"Iraq Dinar"},{code:"IRR",name:"Iran Rial"},{code:"ISK",name:"Iceland Krona"},{code:"JEP",name:"Jersey Pound"},{code:"JMD",name:"Jamaica Dollar"},{code:"JOD",name:"Jordan Dinar"},{code:"JPY",name:"Japan Yen"},{code:"KES",name:"Kenya Shilling"},{code:"KGS",name:"Kyrgyzstan Som"},{code:"KHR",name:"Cambodia Riel"},{code:"KMF",name:"Comoros Franc"},{code:"KPW",name:"Korea (North) Won"},{code:"KRW",name:"Korea (South) Won"},{code:"KWD",name:"Kuwait Dinar"},{code:"KYD",name:"Cayman Islands Dollar"},{code:"KZT",name:"Kazakhstan Tenge"},{code:"LAK",name:"Laos Kip"},{code:"LBP",name:"Lebanon Pound"},{code:"LKR",name:"Sri Lanka Rupee"},{code:"LRD",name:"Liberia Dollar"},{code:"LSL",name:"Lesotho Loti"},{code:"LTL",name:"Lithuania Litas"},{code:"LYD",name:"Libya Dinar"},{code:"MAD",name:"Morocco Dirham"},{code:"MDL",name:"Moldova Leu"},{code:"MGA",name:"Madagascar Ariary"},{code:"MKD",name:"Macedonia Denar"},{code:"MMK",name:"Myanmar (Burma) Kyat"},{code:"MNT",name:"Mongolia Tughrik"},{code:"MOP",name:"Macau Pataca"},{code:"MRO",name:"Mauritania Ouguiya"},{code:"MUR",name:"Mauritius Rupee"},{code:"MVR",name:"Maldives (Maldive Islands) Rufiyaa"},{code:"MWK",name:"Malawi Kwacha"},{code:"MXN",name:"Mexico Peso"},{code:"MYR",name:"Malaysia Ringgit"},{code:"MZN",name:"Mozambique Metical"},{code:"NAD",name:"Namibia Dollar"},{code:"NGN",name:"Nigeria Naira"},{code:"NIO",name:"Nicaragua Cordoba"},{code:"NOK",name:"Norway Krone"},{code:"NPR",name:"Nepal Rupee"},{code:"NZD",name:"New Zealand Dollar"},{code:"OMR",name:"Oman Rial"},{code:"PAB",name:"Panama Balboa"},{code:"PEN",name:"Peru Nuevo Sol"},{code:"PGK",name:"Papua New Guinea Kina"},{code:"PHP",name:"Philippines Peso"},{code:"PKR",name:"Pakistan Rupee"},{code:"PLN",name:"Poland Zloty"},{code:"PYG",name:"Paraguay Guarani"},{code:"QAR",name:"Qatar Riyal"},{code:"RON",name:"Romania New Leu"},{code:"RSD",name:"Serbia Dinar"},{code:"RUB",name:"Russia Ruble"},{code:"RWF",name:"Rwanda Franc"},{code:"SAR",name:"Saudi Arabia Riyal"},{code:"SBD",name:"Solomon Islands Dollar"},{code:"SCR",name:"Seychelles Rupee"},{code:"SDG",name:"Sudan Pound"},{code:"SEK",name:"Sweden Krona"},{code:"SGD",name:"Singapore Dollar"},{code:"SHP",name:"Saint Helena Pound"},{code:"SLL",name:"Sierra Leone Leone"},{code:"SOS",name:"Somalia Shilling"},{code:"SPL",name:"Seborga Luigino"},{code:"SRD",name:"Suriname Dollar"},{code:"STD",name:"São Tomé and Príncipe Dobra"},{code:"SVC",name:"El Salvador Colon"},{code:"SYP",name:"Syria Pound"},{code:"SZL",name:"Swaziland Lilangeni"},{code:"THB",name:"Thailand Baht"},{code:"TJS",name:"Tajikistan Somoni"},{code:"TMT",name:"Turkmenistan Manat"},{code:"TND",name:"Tunisia Dinar"},{code:"TOP",name:"Tonga Pa'anga"},{code:"TRY",name:"Turkey Lira"},{code:"TTD",name:"Trinidad and Tobago Dollar"},{code:"TVD",name:"Tuvalu Dollar"},{code:"TWD",name:"Taiwan New Dollar"},{code:"TZS",name:"Tanzania Shilling"},{code:"UAH",name:"Ukraine Hryvnia"},{code:"UGX",name:"Uganda Shilling"},{code:"USD",name:"United States Dollar"},{code:"UYU",name:"Uruguay Peso"},{code:"UZS",name:"Uzbekistan Som"},{code:"VEF",name:"Venezuela Bolivar"},{code:"VND",name:"Viet Nam Dong"},{code:"VUV",name:"Vanuatu Vatu"},{code:"WST",name:"Samoa Tala"},{code:"XAF",name:"Communauté Financière Africaine (BEAC) CFA Franc BEAC"},{code:"XCD",name:"East Caribbean Dollar"},{code:"XDR",name:"International Monetary Fund (IMF) Special Drawing Rights"},{code:"XOF",name:"Communauté Financière Africaine (BCEAO) Franc"},{code:"XPF",name:"Comptoirs Français du Pacifique (CFP) Franc"},{code:"YER",name:"Yemen Rial"},{code:"ZAR",name:"South Africa Rand"},{code:"ZMW",name:"Zambia Kwacha"},{code:"ZWD",name:"Zimbabwe Dollar"}],colorNames:["AliceBlue","Black","Navy","DarkBlue","MediumBlue","Blue","DarkGreen","Green","Teal","DarkCyan","DeepSkyBlue","DarkTurquoise","MediumSpringGreen","Lime","SpringGreen","Aqua","Cyan","MidnightBlue","DodgerBlue","LightSeaGreen","ForestGreen","SeaGreen","DarkSlateGray","LimeGreen","MediumSeaGreen","Turquoise","RoyalBlue","SteelBlue","DarkSlateBlue","MediumTurquoise","Indigo","DarkOliveGreen","CadetBlue","CornflowerBlue","RebeccaPurple","MediumAquaMarine","DimGray","SlateBlue","OliveDrab","SlateGray","LightSlateGray","MediumSlateBlue","LawnGreen","Chartreuse","Aquamarine","Maroon","Purple","Olive","Gray","SkyBlue","LightSkyBlue","BlueViolet","DarkRed","DarkMagenta","SaddleBrown","Ivory","White","DarkSeaGreen","LightGreen","MediumPurple","DarkViolet","PaleGreen","DarkOrchid","YellowGreen","Sienna","Brown","DarkGray","LightBlue","GreenYellow","PaleTurquoise","LightSteelBlue","PowderBlue","FireBrick","DarkGoldenRod","MediumOrchid","RosyBrown","DarkKhaki","Silver","MediumVioletRed","IndianRed","Peru","Chocolate","Tan","LightGray","Thistle","Orchid","GoldenRod","PaleVioletRed","Crimson","Gainsboro","Plum","BurlyWood","LightCyan","Lavender","DarkSalmon","Violet","PaleGoldenRod","LightCoral","Khaki","AliceBlue","HoneyDew","Azure","SandyBrown","Wheat","Beige","WhiteSmoke","MintCream","GhostWhite","Salmon","AntiqueWhite","Linen","LightGoldenRodYellow","OldLace","Red","Fuchsia","Magenta","DeepPink","OrangeRed","Tomato","HotPink","Coral","DarkOrange","LightSalmon","Orange","LightPink","Pink","Gold","PeachPuff","NavajoWhite","Moccasin","Bisque","MistyRose","BlanchedAlmond","PapayaWhip","LavenderBlush","SeaShell","Cornsilk","LemonChiffon","FloralWhite","Snow","Yellow","LightYellow"],company:["3Com Corp","3M Company","A.G. Edwards Inc.","Abbott Laboratories","Abercrombie & Fitch Co.","ABM Industries Incorporated","Ace Hardware Corporation","ACT Manufacturing Inc.","Acterna Corp.","Adams Resources & Energy, Inc.","ADC Telecommunications, Inc.","Adelphia Communications Corporation","Administaff, Inc.","Adobe Systems Incorporated","Adolph Coors Company","Advance Auto Parts, Inc.","Advanced Micro Devices, Inc.","AdvancePCS, Inc.","Advantica Restaurant Group, Inc.","The AES Corporation","Aetna Inc.","Affiliated Computer Services, Inc.","AFLAC Incorporated","AGCO Corporation","Agilent Technologies, Inc.","Agway Inc.","Apartment Investment and Management Company","Air Products and Chemicals, Inc.","Airborne, Inc.","Airgas, Inc.","AK Steel Holding Corporation","Alaska Air Group, Inc.","Alberto-Culver Company","Albertson's, Inc.","Alcoa Inc.","Alleghany Corporation","Allegheny Energy, Inc.","Allegheny Technologies Incorporated","Allergan, Inc.","ALLETE, Inc.","Alliant Energy Corporation","Allied Waste Industries, Inc.","Allmerica Financial Corporation","The Allstate Corporation","ALLTEL Corporation","The Alpine Group, Inc.","Amazon.com, Inc.","AMC Entertainment Inc.","American Power Conversion Corporation","Amerada Hess Corporation","AMERCO","Ameren Corporation","America West Holdings Corporation","American Axle & Manufacturing Holdings, Inc.","American Eagle Outfitters, Inc.","American Electric Power Company, Inc.","American Express Company","American Financial Group, Inc.","American Greetings Corporation","American International Group, Inc.","American Standard Companies Inc.","American Water Works Company, Inc.","AmerisourceBergen Corporation","Ames Department Stores, Inc.","Amgen Inc.","Amkor Technology, Inc.","AMR Corporation","AmSouth Bancorp.","Amtran, Inc.","Anadarko Petroleum Corporation","Analog Devices, Inc.","Anheuser-Busch Companies, Inc.","Anixter International Inc.","AnnTaylor Inc.","Anthem, Inc.","AOL Time Warner Inc.","Aon Corporation","Apache Corporation","Apple Computer, Inc.","Applera Corporation","Applied Industrial Technologies, Inc.","Applied Materials, Inc.","Aquila, Inc.","ARAMARK Corporation","Arch Coal, Inc.","Archer Daniels Midland Company","Arkansas Best Corporation","Armstrong Holdings, Inc.","Arrow Electronics, Inc.","ArvinMeritor, Inc.","Ashland Inc.","Astoria Financial Corporation","AT&T Corp.","Atmel Corporation","Atmos Energy Corporation","Audiovox Corporation","Autoliv, Inc.","Automatic Data Processing, Inc.","AutoNation, Inc.","AutoZone, Inc.","Avaya Inc.","Avery Dennison Corporation","Avista Corporation","Avnet, Inc.","Avon Products, Inc.","Baker Hughes Incorporated","Ball Corporation","Bank of America Corporation","The Bank of New York Company, Inc.","Bank One Corporation","Banknorth Group, Inc.","Banta Corporation","Barnes & Noble, Inc.","Bausch & Lomb Incorporated","Baxter International Inc.","BB&T Corporation","The Bear Stearns Companies Inc.","Beazer Homes USA, Inc.","Beckman Coulter, Inc.","Becton, Dickinson and Company","Bed Bath & Beyond Inc.","Belk, Inc.","Bell Microproducts Inc.","BellSouth Corporation","Belo Corp.","Bemis Company, Inc.","Benchmark Electronics, Inc.","Berkshire Hathaway Inc.","Best Buy Co., Inc.","Bethlehem Steel Corporation","Beverly Enterprises, Inc.","Big Lots, Inc.","BJ Services Company","BJ's Wholesale Club, Inc.","The Black & Decker Corporation","Black Hills Corporation","BMC Software, Inc.","The Boeing Company","Boise Cascade Corporation","Borders Group, Inc.","BorgWarner Inc.","Boston Scientific Corporation","Bowater Incorporated","Briggs & Stratton Corporation","Brightpoint, Inc.","Brinker International, Inc.","Bristol-Myers Squibb Company","Broadwing, Inc.","Brown Shoe Company, Inc.","Brown-Forman Corporation","Brunswick Corporation","Budget Group, Inc.","Burlington Coat Factory Warehouse Corporation","Burlington Industries, Inc.","Burlington Northern Santa Fe Corporation","Burlington Resources Inc.","C. H. Robinson Worldwide Inc.","Cablevision Systems Corp","Cabot Corp","Cadence Design Systems, Inc.","Calpine Corp.","Campbell Soup Co.","Capital One Financial Corp.","Cardinal Health Inc.","Caremark Rx Inc.","Carlisle Cos. Inc.","Carpenter Technology Corp.","Casey's General Stores Inc.","Caterpillar Inc.","CBRL Group Inc.","CDI Corp.","CDW Computer Centers Inc.","CellStar Corp.","Cendant Corp","Cenex Harvest States Cooperatives","Centex Corp.","CenturyTel Inc.","Ceridian Corp.","CH2M Hill Cos. Ltd.","Champion Enterprises Inc.","Charles Schwab Corp.","Charming Shoppes Inc.","Charter Communications Inc.","Charter One Financial Inc.","ChevronTexaco Corp.","Chiquita Brands International Inc.","Chubb Corp","Ciena Corp.","Cigna Corp","Cincinnati Financial Corp.","Cinergy Corp.","Cintas Corp.","Circuit City Stores Inc.","Cisco Systems Inc.","Citigroup, Inc","Citizens Communications Co.","CKE Restaurants Inc.","Clear Channel Communications Inc.","The Clorox Co.","CMGI Inc.","CMS Energy Corp.","CNF Inc.","Coca-Cola Co.","Coca-Cola Enterprises Inc.","Colgate-Palmolive Co.","Collins & Aikman Corp.","Comcast Corp.","Comdisco Inc.","Comerica Inc.","Comfort Systems USA Inc.","Commercial Metals Co.","Community Health Systems Inc.","Compass Bancshares Inc","Computer Associates International Inc.","Computer Sciences Corp.","Compuware Corp.","Comverse Technology Inc.","ConAgra Foods Inc.","Concord EFS Inc.","Conectiv, Inc","Conoco Inc","Conseco Inc.","Consolidated Freightways Corp.","Consolidated Edison Inc.","Constellation Brands Inc.","Constellation Emergy Group Inc.","Continental Airlines Inc.","Convergys Corp.","Cooper Cameron Corp.","Cooper Industries Ltd.","Cooper Tire & Rubber Co.","Corn Products International Inc.","Corning Inc.","Costco Wholesale Corp.","Countrywide Credit Industries Inc.","Coventry Health Care Inc.","Cox Communications Inc.","Crane Co.","Crompton Corp.","Crown Cork & Seal Co. Inc.","CSK Auto Corp.","CSX Corp.","Cummins Inc.","CVS Corp.","Cytec Industries Inc.","D&K Healthcare Resources, Inc.","D.R. Horton Inc.","Dana Corporation","Danaher Corporation","Darden Restaurants Inc.","DaVita Inc.","Dean Foods Company","Deere & Company","Del Monte Foods Co","Dell Computer Corporation","Delphi Corp.","Delta Air Lines Inc.","Deluxe Corporation","Devon Energy Corporation","Di Giorgio Corporation","Dial Corporation","Diebold Incorporated","Dillard's Inc.","DIMON Incorporated","Dole Food Company, Inc.","Dollar General Corporation","Dollar Tree Stores, Inc.","Dominion Resources, Inc.","Domino's Pizza LLC","Dover Corporation, Inc.","Dow Chemical Company","Dow Jones & Company, Inc.","DPL Inc.","DQE Inc.","Dreyer's Grand Ice Cream, Inc.","DST Systems, Inc.","DTE Energy Co.","E.I. Du Pont de Nemours and Company","Duke Energy Corp","Dun & Bradstreet Inc.","DURA Automotive Systems Inc.","DynCorp","Dynegy Inc.","E*Trade Group, Inc.","E.W. Scripps Company","Earthlink, Inc.","Eastman Chemical Company","Eastman Kodak Company","Eaton Corporation","Echostar Communications Corporation","Ecolab Inc.","Edison International","EGL Inc.","El Paso Corporation","Electronic Arts Inc.","Electronic Data Systems Corp.","Eli Lilly and Company","EMC Corporation","Emcor Group Inc.","Emerson Electric Co.","Encompass Services Corporation","Energizer Holdings Inc.","Energy East Corporation","Engelhard Corporation","Enron Corp.","Entergy Corporation","Enterprise Products Partners L.P.","EOG Resources, Inc.","Equifax Inc.","Equitable Resources Inc.","Equity Office Properties Trust","Equity Residential Properties Trust","Estee Lauder Companies Inc.","Exelon Corporation","Exide Technologies","Expeditors International of Washington Inc.","Express Scripts Inc.","ExxonMobil Corporation","Fairchild Semiconductor International Inc.","Family Dollar Stores Inc.","Farmland Industries Inc.","Federal Mogul Corp.","Federated Department Stores Inc.","Federal Express Corp.","Felcor Lodging Trust Inc.","Ferro Corp.","Fidelity National Financial Inc.","Fifth Third Bancorp","First American Financial Corp.","First Data Corp.","First National of Nebraska Inc.","First Tennessee National Corp.","FirstEnergy Corp.","Fiserv Inc.","Fisher Scientific International Inc.","FleetBoston Financial Co.","Fleetwood Enterprises Inc.","Fleming Companies Inc.","Flowers Foods Inc.","Flowserv Corp","Fluor Corp","FMC Corp","Foamex International Inc","Foot Locker Inc","Footstar Inc.","Ford Motor Co","Forest Laboratories Inc.","Fortune Brands Inc.","Foster Wheeler Ltd.","FPL Group Inc.","Franklin Resources Inc.","Freeport McMoran Copper & Gold Inc.","Frontier Oil Corp","Furniture Brands International Inc.","Gannett Co., Inc.","Gap Inc.","Gateway Inc.","GATX Corporation","Gemstar-TV Guide International Inc.","GenCorp Inc.","General Cable Corporation","General Dynamics Corporation","General Electric Company","General Mills Inc","General Motors Corporation","Genesis Health Ventures Inc.","Gentek Inc.","Gentiva Health Services Inc.","Genuine Parts Company","Genuity Inc.","Genzyme Corporation","Georgia Gulf Corporation","Georgia-Pacific Corporation","Gillette Company","Gold Kist Inc.","Golden State Bancorp Inc.","Golden West Financial Corporation","Goldman Sachs Group Inc.","Goodrich Corporation","The Goodyear Tire & Rubber Company","Granite Construction Incorporated","Graybar Electric Company Inc.","Great Lakes Chemical Corporation","Great Plains Energy Inc.","GreenPoint Financial Corp.","Greif Bros. Corporation","Grey Global Group Inc.","Group 1 Automotive Inc.","Guidant Corporation","H&R Block Inc.","H.B. Fuller Company","H.J. Heinz Company","Halliburton Co.","Harley-Davidson Inc.","Harman International Industries Inc.","Harrah's Entertainment Inc.","Harris Corp.","Harsco Corp.","Hartford Financial Services Group Inc.","Hasbro Inc.","Hawaiian Electric Industries Inc.","HCA Inc.","Health Management Associates Inc.","Health Net Inc.","Healthsouth Corp","Henry Schein Inc.","Hercules Inc.","Herman Miller Inc.","Hershey Foods Corp.","Hewlett-Packard Company","Hibernia Corp.","Hillenbrand Industries Inc.","Hilton Hotels Corp.","Hollywood Entertainment Corp.","Home Depot Inc.","Hon Industries Inc.","Honeywell International Inc.","Hormel Foods Corp.","Host Marriott Corp.","Household International Corp.","Hovnanian Enterprises Inc.","Hub Group Inc.","Hubbell Inc.","Hughes Supply Inc.","Humana Inc.","Huntington Bancshares Inc.","Idacorp Inc.","IDT Corporation","IKON Office Solutions Inc.","Illinois Tool Works Inc.","IMC Global Inc.","Imperial Sugar Company","IMS Health Inc.","Ingles Market Inc","Ingram Micro Inc.","Insight Enterprises Inc.","Integrated Electrical Services Inc.","Intel Corporation","International Paper Co.","Interpublic Group of Companies Inc.","Interstate Bakeries Corporation","International Business Machines Corp.","International Flavors & Fragrances Inc.","International Multifoods Corporation","Intuit Inc.","IT Group Inc.","ITT Industries Inc.","Ivax Corp.","J.B. Hunt Transport Services Inc.","J.C. Penny Co.","J.P. Morgan Chase & Co.","Jabil Circuit Inc.","Jack In The Box Inc.","Jacobs Engineering Group Inc.","JDS Uniphase Corp.","Jefferson-Pilot Co.","John Hancock Financial Services Inc.","Johnson & Johnson","Johnson Controls Inc.","Jones Apparel Group Inc.","KB Home","Kellogg Company","Kellwood Company","Kelly Services Inc.","Kemet Corp.","Kennametal Inc.","Kerr-McGee Corporation","KeyCorp","KeySpan Corp.","Kimball International Inc.","Kimberly-Clark Corporation","Kindred Healthcare Inc.","KLA-Tencor Corporation","K-Mart Corp.","Knight-Ridder Inc.","Kohl's Corp.","KPMG Consulting Inc.","Kroger Co.","L-3 Communications Holdings Inc.","Laboratory Corporation of America Holdings","Lam Research Corporation","LandAmerica Financial Group Inc.","Lands' End Inc.","Landstar System Inc.","La-Z-Boy Inc.","Lear Corporation","Legg Mason Inc.","Leggett & Platt Inc.","Lehman Brothers Holdings Inc.","Lennar Corporation","Lennox International Inc.","Level 3 Communications Inc.","Levi Strauss & Co.","Lexmark International Inc.","Limited Inc.","Lincoln National Corporation","Linens 'n Things Inc.","Lithia Motors Inc.","Liz Claiborne Inc.","Lockheed Martin Corporation","Loews Corporation","Longs Drug Stores Corporation","Louisiana-Pacific Corporation","Lowe's Companies Inc.","LSI Logic Corporation","The LTV Corporation","The Lubrizol Corporation","Lucent Technologies Inc.","Lyondell Chemical Company","M & T Bank Corporation","Magellan Health Services Inc.","Mail-Well Inc.","Mandalay Resort Group","Manor Care Inc.","Manpower Inc.","Marathon Oil Corporation","Mariner Health Care Inc.","Markel Corporation","Marriott International Inc.","Marsh & McLennan Companies Inc.","Marsh Supermarkets Inc.","Marshall & Ilsley Corporation","Martin Marietta Materials Inc.","Masco Corporation","Massey Energy Company","MasTec Inc.","Mattel Inc.","Maxim Integrated Products Inc.","Maxtor Corporation","Maxxam Inc.","The May Department Stores Company","Maytag Corporation","MBNA Corporation","McCormick & Company Incorporated","McDonald's Corporation","The McGraw-Hill Companies Inc.","McKesson Corporation","McLeodUSA Incorporated","M.D.C. Holdings Inc.","MDU Resources Group Inc.","MeadWestvaco Corporation","Medtronic Inc.","Mellon Financial Corporation","The Men's Wearhouse Inc.","Merck & Co., Inc.","Mercury General Corporation","Merrill Lynch & Co. Inc.","Metaldyne Corporation","Metals USA Inc.","MetLife Inc.","Metris Companies Inc","MGIC Investment Corporation","MGM Mirage","Michaels Stores Inc.","Micron Technology Inc.","Microsoft Corporation","Milacron Inc.","Millennium Chemicals Inc.","Mirant Corporation","Mohawk Industries Inc.","Molex Incorporated","The MONY Group Inc.","Morgan Stanley Dean Witter & Co.","Motorola Inc.","MPS Group Inc.","Murphy Oil Corporation","Nabors Industries Inc","Nacco Industries Inc","Nash Finch Company","National City Corp.","National Commerce Financial Corporation","National Fuel Gas Company","National Oilwell Inc","National Rural Utilities Cooperative Finance Corporation","National Semiconductor Corporation","National Service Industries Inc","Navistar International Corporation","NCR Corporation","The Neiman Marcus Group Inc.","New Jersey Resources Corporation","New York Times Company","Newell Rubbermaid Inc","Newmont Mining Corporation","Nextel Communications Inc","Nicor Inc","Nike Inc","NiSource Inc","Noble Energy Inc","Nordstrom Inc","Norfolk Southern Corporation","Nortek Inc","North Fork Bancorporation Inc","Northeast Utilities System","Northern Trust Corporation","Northrop Grumman Corporation","NorthWestern Corporation","Novellus Systems Inc","NSTAR","NTL Incorporated","Nucor Corp","Nvidia Corp","NVR Inc","Northwest Airlines Corp","Occidental Petroleum Corp","Ocean Energy Inc","Office Depot Inc.","OfficeMax Inc","OGE Energy Corp","Oglethorpe Power Corp.","Ohio Casualty Corp.","Old Republic International Corp.","Olin Corp.","OM Group Inc","Omnicare Inc","Omnicom Group","On Semiconductor Corp","ONEOK Inc","Oracle Corp","Oshkosh Truck Corp","Outback Steakhouse Inc.","Owens & Minor Inc.","Owens Corning","Owens-Illinois Inc","Oxford Health Plans Inc","Paccar Inc","PacifiCare Health Systems Inc","Packaging Corp. of America","Pactiv Corp","Pall Corp","Pantry Inc","Park Place Entertainment Corp","Parker Hannifin Corp.","Pathmark Stores Inc.","Paychex Inc","Payless Shoesource Inc","Penn Traffic Co.","Pennzoil-Quaker State Company","Pentair Inc","Peoples Energy Corp.","PeopleSoft Inc","Pep Boys Manny, Moe & Jack","Potomac Electric Power Co.","Pepsi Bottling Group Inc.","PepsiAmericas Inc.","PepsiCo Inc.","Performance Food Group Co.","Perini Corp","PerkinElmer Inc","Perot Systems Corp","Petco Animal Supplies Inc.","Peter Kiewit Sons', Inc.","PETsMART Inc","Pfizer Inc","Pacific Gas & Electric Corp.","Pharmacia Corp","Phar Mor Inc.","Phelps Dodge Corp.","Philip Morris Companies Inc.","Phillips Petroleum Co","Phillips Van Heusen Corp.","Phoenix Companies Inc","Pier 1 Imports Inc.","Pilgrim's Pride Corporation","Pinnacle West Capital Corp","Pioneer-Standard Electronics Inc.","Pitney Bowes Inc.","Pittston Brinks Group","Plains All American Pipeline LP","PNC Financial Services Group Inc.","PNM Resources Inc","Polaris Industries Inc.","Polo Ralph Lauren Corp","PolyOne Corp","Popular Inc","Potlatch Corp","PPG Industries Inc","PPL Corp","Praxair Inc","Precision Castparts Corp","Premcor Inc.","Pride International Inc","Primedia Inc","Principal Financial Group Inc.","Procter & Gamble Co.","Pro-Fac Cooperative Inc.","Progress Energy Inc","Progressive Corporation","Protective Life Corp","Provident Financial Group","Providian Financial Corp.","Prudential Financial Inc.","PSS World Medical Inc","Public Service Enterprise Group Inc.","Publix Super Markets Inc.","Puget Energy Inc.","Pulte Homes Inc","Qualcomm Inc","Quanta Services Inc.","Quantum Corp","Quest Diagnostics Inc.","Questar Corp","Quintiles Transnational","Qwest Communications Intl Inc","R.J. Reynolds Tobacco Company","R.R. Donnelley & Sons Company","Radio Shack Corporation","Raymond James Financial Inc.","Raytheon Company","Reader's Digest Association Inc.","Reebok International Ltd.","Regions Financial Corp.","Regis Corporation","Reliance Steel & Aluminum Co.","Reliant Energy Inc.","Rent A Center Inc","Republic Services Inc","Revlon Inc","RGS Energy Group Inc","Rite Aid Corp","Riverwood Holding Inc.","RoadwayCorp","Robert Half International Inc.","Rock-Tenn Co","Rockwell Automation Inc","Rockwell Collins Inc","Rohm & Haas Co.","Ross Stores Inc","RPM Inc.","Ruddick Corp","Ryder System Inc","Ryerson Tull Inc","Ryland Group Inc.","Sabre Holdings Corp","Safeco Corp","Safeguard Scientifics Inc.","Safeway Inc","Saks Inc","Sanmina-SCI Inc","Sara Lee Corp","SBC Communications Inc","Scana Corp.","Schering-Plough Corp","Scholastic Corp","SCI Systems Onc.","Science Applications Intl. Inc.","Scientific-Atlanta Inc","Scotts Company","Seaboard Corp","Sealed Air Corp","Sears Roebuck & Co","Sempra Energy","Sequa Corp","Service Corp. International","ServiceMaster Co","Shaw Group Inc","Sherwin-Williams Company","Shopko Stores Inc","Siebel Systems Inc","Sierra Health Services Inc","Sierra Pacific Resources","Silgan Holdings Inc.","Silicon Graphics Inc","Simon Property Group Inc","SLM Corporation","Smith International Inc","Smithfield Foods Inc","Smurfit-Stone Container Corp","Snap-On Inc","Solectron Corp","Solutia Inc","Sonic Automotive Inc.","Sonoco Products Co.","Southern Company","Southern Union Company","SouthTrust Corp.","Southwest Airlines Co","Southwest Gas Corp","Sovereign Bancorp Inc.","Spartan Stores Inc","Spherion Corp","Sports Authority Inc","Sprint Corp.","SPX Corp","St. Jude Medical Inc","St. Paul Cos.","Staff Leasing Inc.","StanCorp Financial Group Inc","Standard Pacific Corp.","Stanley Works","Staples Inc","Starbucks Corp","Starwood Hotels & Resorts Worldwide Inc","State Street Corp.","Stater Bros. Holdings Inc.","Steelcase Inc","Stein Mart Inc","Stewart & Stevenson Services Inc","Stewart Information Services Corp","Stilwell Financial Inc","Storage Technology Corporation","Stryker Corp","Sun Healthcare Group Inc.","Sun Microsystems Inc.","SunGard Data Systems Inc.","Sunoco Inc.","SunTrust Banks Inc","Supervalu Inc","Swift Transportation, Co., Inc","Symbol Technologies Inc","Synovus Financial Corp.","Sysco Corp","Systemax Inc.","Target Corp.","Tech Data Corporation","TECO Energy Inc","Tecumseh Products Company","Tektronix Inc","Teleflex Incorporated","Telephone & Data Systems Inc","Tellabs Inc.","Temple-Inland Inc","Tenet Healthcare Corporation","Tenneco Automotive Inc.","Teradyne Inc","Terex Corp","Tesoro Petroleum Corp.","Texas Industries Inc.","Texas Instruments Incorporated","Textron Inc","Thermo Electron Corporation","Thomas & Betts Corporation","Tiffany & Co","Timken Company","TJX Companies Inc","TMP Worldwide Inc","Toll Brothers Inc","Torchmark Corporation","Toro Company","Tower Automotive Inc.","Toys 'R' Us Inc","Trans World Entertainment Corp.","TransMontaigne Inc","Transocean Inc","TravelCenters of America Inc.","Triad Hospitals Inc","Tribune Company","Trigon Healthcare Inc.","Trinity Industries Inc","Trump Hotels & Casino Resorts Inc.","TruServ Corporation","TRW Inc","TXU Corp","Tyson Foods Inc","U.S. Bancorp","U.S. Industries Inc.","UAL Corporation","UGI Corporation","Unified Western Grocers Inc","Union Pacific Corporation","Union Planters Corp","Unisource Energy Corp","Unisys Corporation","United Auto Group Inc","United Defense Industries Inc.","United Parcel Service Inc","United Rentals Inc","United Stationers Inc","United Technologies Corporation","UnitedHealth Group Incorporated","Unitrin Inc","Universal Corporation","Universal Forest Products Inc","Universal Health Services Inc","Unocal Corporation","Unova Inc","UnumProvident Corporation","URS Corporation","US Airways Group Inc","US Oncology Inc","USA Interactive","USFreighways Corporation","USG Corporation","UST Inc","Valero Energy Corporation","Valspar Corporation","Value City Department Stores Inc","Varco International Inc","Vectren Corporation","Veritas Software Corporation","Verizon Communications Inc","VF Corporation","Viacom Inc","Viad Corp","Viasystems Group Inc","Vishay Intertechnology Inc","Visteon Corporation","Volt Information Sciences Inc","Vulcan Materials Company","W.R. Berkley Corporation","W.R. Grace & Co","W.W. Grainger Inc","Wachovia Corporation","Wakenhut Corporation","Walgreen Co","Wallace Computer Services Inc","Wal-Mart Stores Inc","Walt Disney Co","Walter Industries Inc","Washington Mutual Inc","Washington Post Co.","Waste Management Inc","Watsco Inc","Weatherford International Inc","Weis Markets Inc.","Wellpoint Health Networks Inc","Wells Fargo & Company","Wendy's International Inc","Werner Enterprises Inc","WESCO International Inc","Western Digital Inc","Western Gas Resources Inc","WestPoint Stevens Inc","Weyerhauser Company","WGL Holdings Inc","Whirlpool Corporation","Whole Foods Market Inc","Willamette Industries Inc.","Williams Companies Inc","Williams Sonoma Inc","Winn Dixie Stores Inc","Wisconsin Energy Corporation","Wm Wrigley Jr Company","World Fuel Services Corporation","WorldCom Inc","Worthington Industries Inc","WPS Resources Corporation","Wyeth","Wyndham International Inc","Xcel Energy Inc","Xerox Corp","Xilinx Inc","XO Communications Inc","Yellow Corporation","York International Corp","Yum Brands Inc.","Zale Corporation","Zions Bancorporation"],fileExtension:{raster:["bmp","gif","gpl","ico","jpeg","psd","png","psp","raw","tiff"],vector:["3dv","amf","awg","ai","cgm","cdr","cmx","dxf","e2d","egt","eps","fs","odg","svg","xar"],"3d":["3dmf","3dm","3mf","3ds","an8","aoi","blend","cal3d","cob","ctm","iob","jas","max","mb","mdx","obj","x","x3d"],document:["doc","docx","dot","html","xml","odt","odm","ott","csv","rtf","tex","xhtml","xps"]},timezones:[{name:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{name:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{name:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{name:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{name:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{name:"Pacific Standard Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Pacific Time (US & Canada)",utc:["America/Dawson","America/Los_Angeles","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{name:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{name:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{name:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{name:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{name:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{name:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{name:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{name:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{name:"Eastern Standard Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{name:"US Eastern Standard Time",abbr:"UEDT",offset:-4,isdst:!0,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{name:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{name:"Paraguay Standard Time",abbr:"PST",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{name:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{name:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{name:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{name:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{name:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{name:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{name:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{name:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{name:"Greenland Standard Time",abbr:"GDT",offset:-2,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{name:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{name:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{name:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{name:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old"},{name:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{name:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{name:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{name:"UTC",abbr:"CUT",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{name:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Edinburgh, Lisbon, London",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Guernsey","Europe/Isle_of_Man","Europe/Jersey","Europe/Lisbon","Europe/London"]},{name:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{name:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{name:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{name:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{name:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{name:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{name:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{name:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{name:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{name:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{name:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{name:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe"},{name:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{name:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{name:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!0,text:"(UTC+02:00) Istanbul",utc:["Europe/Istanbul"]},{name:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{name:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{name:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{name:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{name:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+03:00) Kaliningrad, Minsk",utc:["Europe/Kaliningrad","Europe/Minsk"]},{name:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{name:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{name:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{name:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{name:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{name:"Russian Standard Time",abbr:"RST",offset:4,isdst:!1,text:"(UTC+04:00) Moscow, St. Petersburg, Volgograd",utc:["Europe/Moscow","Europe/Samara","Europe/Simferopol","Europe/Volgograd"]},{name:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{name:"Georgian Standard Time",abbr:"GST",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{name:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{name:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{name:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{name:"Pakistan Standard Time",abbr:"PST",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{name:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Calcutta"]},{name:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{name:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Katmandu"]},{name:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Astana",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{name:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{name:"Ekaterinburg Standard Time",abbr:"EST",offset:6,isdst:!1,text:"(UTC+06:00) Ekaterinburg",utc:["Asia/Yekaterinburg"]},{name:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{name:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{name:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{name:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{name:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{name:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{name:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{name:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{name:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{name:"North Asia East Standard Time",abbr:"NAEST",offset:9,isdst:!1,text:"(UTC+09:00) Irkutsk",utc:["Asia/Irkutsk"]},{name:"Tokyo Standard Time",abbr:"TST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{name:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{name:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{name:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{name:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{name:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{name:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{name:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{name:"Yakutsk Standard Time",abbr:"YST",offset:10,isdst:!1,text:"(UTC+10:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{name:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{name:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{name:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{name:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{name:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{name:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{name:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old"},{name:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{name:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}],profession:["Airline Pilot","Academic Team","Accountant","Account Executive","Actor","Actuary","Acquisition Analyst","Administrative Asst.","Administrative Analyst","Administrator","Advertising Director","Aerospace Engineer","Agent","Agricultural Inspector","Agricultural Scientist","Air Traffic Controller","Animal Trainer","Anthropologist","Appraiser","Architect","Art Director","Artist","Astronomer","Athletic Coach","Auditor","Author","Baker","Banker","Bankruptcy Attorney","Benefits Manager","Biologist","Bio-feedback Specialist","Biomedical Engineer","Biotechnical Researcher","Broadcaster","Broker","Building Manager","Building Contractor","Building Inspector","Business Analyst","Business Planner","Business Manager","Buyer","Call Center Manager","Career Counselor","Cash Manager","Ceramic Engineer","Chief Executive Officer","Chief Operation Officer","Chef","Chemical Engineer","Chemist","Child Care Manager","Chief Medical Officer","Chiropractor","Cinematographer","City Housing Manager","City Manager","Civil Engineer","Claims Manager","Clinical Research Assistant","Collections Manager","Compliance Manager","Comptroller","Computer Manager","Commercial Artist","Communications Affairs Director","Communications Director","Communications Engineer","Compensation Analyst","Computer Programmer","Computer Ops. Manager","Computer Engineer","Computer Operator","Computer Graphics Specialist","Construction Engineer","Construction Manager","Consultant","Consumer Relations Manager","Contract Administrator","Copyright Attorney","Copywriter","Corporate Planner","Corrections Officer","Cosmetologist","Credit Analyst","Cruise Director","Chief Information Officer","Chief Technology Officer","Customer Service Manager","Cryptologist","Dancer","Data Security Manager","Database Manager","Day Care Instructor","Dentist","Designer","Design Engineer","Desktop Publisher","Developer","Development Officer","Diamond Merchant","Dietitian","Direct Marketer","Director","Distribution Manager","Diversity Manager","Economist","EEO Compliance Manager","Editor","Education Adminator","Electrical Engineer","Electro Optical Engineer","Electronics Engineer","Embassy Management","Employment Agent","Engineer Technician","Entrepreneur","Environmental Analyst","Environmental Attorney","Environmental Engineer","Environmental Specialist","Escrow Officer","Estimator","Executive Assistant","Executive Director","Executive Recruiter","Facilities Manager","Family Counselor","Fashion Events Manager","Fashion Merchandiser","Fast Food Manager","Film Producer","Film Production Assistant","Financial Analyst","Financial Planner","Financier","Fine Artist","Wildlife Specialist","Fitness Consultant","Flight Attendant","Flight Engineer","Floral Designer","Food & Beverage Director","Food Service Manager","Forestry Technician","Franchise Management","Franchise Sales","Fraud Investigator","Freelance Writer","Fund Raiser","General Manager","Geologist","General Counsel","Geriatric Specialist","Gerontologist","Glamour Photographer","Golf Club Manager","Gourmet Chef","Graphic Designer","Grounds Keeper","Hazardous Waste Manager","Health Care Manager","Health Therapist","Health Service Administrator","Hearing Officer","Home Economist","Horticulturist","Hospital Administrator","Hotel Manager","Human Resources Manager","Importer","Industrial Designer","Industrial Engineer","Information Director","Inside Sales","Insurance Adjuster","Interior Decorator","Internal Controls Director","International Acct.","International Courier","International Lawyer","Interpreter","Investigator","Investment Banker","Investment Manager","IT Architect","IT Project Manager","IT Systems Analyst","Jeweler","Joint Venture Manager","Journalist","Labor Negotiator","Labor Organizer","Labor Relations Manager","Lab Services Director","Lab Technician","Land Developer","Landscape Architect","Law Enforcement Officer","Lawyer","Lead Software Engineer","Lead Software Test Engineer","Leasing Manager","Legal Secretary","Library Manager","Litigation Attorney","Loan Officer","Lobbyist","Logistics Manager","Maintenance Manager","Management Consultant","Managed Care Director","Managing Partner","Manufacturing Director","Manpower Planner","Marine Biologist","Market Res. Analyst","Marketing Director","Materials Manager","Mathematician","Membership Chairman","Mechanic","Mechanical Engineer","Media Buyer","Medical Investor","Medical Secretary","Medical Technician","Mental Health Counselor","Merchandiser","Metallurgical Engineering","Meteorologist","Microbiologist","MIS Manager","Motion Picture Director","Multimedia Director","Musician","Network Administrator","Network Specialist","Network Operator","New Product Manager","Novelist","Nuclear Engineer","Nuclear Specialist","Nutritionist","Nursing Administrator","Occupational Therapist","Oceanographer","Office Manager","Operations Manager","Operations Research Director","Optical Technician","Optometrist","Organizational Development Manager","Outplacement Specialist","Paralegal","Park Ranger","Patent Attorney","Payroll Specialist","Personnel Specialist","Petroleum Engineer","Pharmacist","Photographer","Physical Therapist","Physician","Physician Assistant","Physicist","Planning Director","Podiatrist","Political Analyst","Political Scientist","Politician","Portfolio Manager","Preschool Management","Preschool Teacher","Principal","Private Banker","Private Investigator","Probation Officer","Process Engineer","Producer","Product Manager","Product Engineer","Production Engineer","Production Planner","Professional Athlete","Professional Coach","Professor","Project Engineer","Project Manager","Program Manager","Property Manager","Public Administrator","Public Safety Director","PR Specialist","Publisher","Purchasing Agent","Publishing Director","Quality Assurance Specialist","Quality Control Engineer","Quality Control Inspector","Radiology Manager","Railroad Engineer","Real Estate Broker","Recreational Director","Recruiter","Redevelopment Specialist","Regulatory Affairs Manager","Registered Nurse","Rehabilitation Counselor","Relocation Manager","Reporter","Research Specialist","Restaurant Manager","Retail Store Manager","Risk Analyst","Safety Engineer","Sales Engineer","Sales Trainer","Sales Promotion Manager","Sales Representative","Sales Manager","Service Manager","Sanitation Engineer","Scientific Programmer","Scientific Writer","Securities Analyst","Security Consultant","Security Director","Seminar Presenter","Ship's Officer","Singer","Social Director","Social Program Planner","Social Research","Social Scientist","Social Worker","Sociologist","Software Developer","Software Engineer","Software Test Engineer","Soil Scientist","Special Events Manager","Special Education Teacher","Special Projects Director","Speech Pathologist","Speech Writer","Sports Event Manager","Statistician","Store Manager","Strategic Alliance Director","Strategic Planning Director","Stress Reduction Specialist","Stockbroker","Surveyor","Structural Engineer","Superintendent","Supply Chain Director","System Engineer","Systems Analyst","Systems Programmer","System Administrator","Tax Specialist","Teacher","Technical Support Specialist","Technical Illustrator","Technical Writer","Technology Director","Telecom Analyst","Telemarketer","Theatrical Director","Title Examiner","Tour Escort","Tour Guide Director","Traffic Manager","Trainer Translator","Transportation Manager","Travel Agent","Treasurer","TV Programmer","Underwriter","Union Representative","University Administrator","University Dean","Urban Planner","Veterinarian","Vendor Relations Director","Viticulturist","Warehouse Manager"],animals:{ocean:["Acantharea","Anemone","Angelfish King","Ahi Tuna","Albacore","American Oyster","Anchovy","Armored Snail","Arctic Char","Atlantic Bluefin Tuna","Atlantic Cod","Atlantic Goliath Grouper","Atlantic Trumpetfish","Atlantic Wolffish","Baleen Whale","Banded Butterflyfish","Banded Coral Shrimp","Banded Sea Krait","Barnacle","Barndoor Skate","Barracuda","Basking Shark","Bass","Beluga Whale","Bluebanded Goby","Bluehead Wrasse","Bluefish","Bluestreak Cleaner-Wrasse","Blue Marlin","Blue Shark","Blue Spiny Lobster","Blue Tang","Blue Whale","Broadclub Cuttlefish","Bull Shark","Chambered Nautilus","Chilean Basket Star","Chilean Jack Mackerel","Chinook Salmon","Christmas Tree Worm","Clam","Clown Anemonefish","Clown Triggerfish","Cod","Coelacanth","Cockscomb Cup Coral","Common Fangtooth","Conch","Cookiecutter Shark","Copepod","Coral","Corydoras","Cownose Ray","Crab","Crown-of-Thorns Starfish","Cushion Star","Cuttlefish","California Sea Otters","Dolphin","Dolphinfish","Dory","Devil Fish","Dugong","Dumbo Octopus","Dungeness Crab","Eccentric Sand Dollar","Edible Sea Cucumber","Eel","Elephant Seal","Elkhorn Coral","Emperor Shrimp","Estuarine Crocodile","Fathead Sculpin","Fiddler Crab","Fin Whale","Flameback","Flamingo Tongue Snail","Flashlight Fish","Flatback Turtle","Flatfish","Flying Fish","Flounder","Fluke","French Angelfish","Frilled Shark","Fugu (also called Pufferfish)","Gar","Geoduck","Giant Barrel Sponge","Giant Caribbean Sea Anemone","Giant Clam","Giant Isopod","Giant Kingfish","Giant Oarfish","Giant Pacific Octopus","Giant Pyrosome","Giant Sea Star","Giant Squid","Glowing Sucker Octopus","Giant Tube Worm","Goblin Shark","Goosefish","Great White Shark","Greenland Shark","Grey Atlantic Seal","Grouper","Grunion","Guineafowl Puffer","Haddock","Hake","Halibut","Hammerhead Shark","Hapuka","Harbor Porpoise","Harbor Seal","Hatchetfish","Hawaiian Monk Seal","Hawksbill Turtle","Hector's Dolphin","Hermit Crab","Herring","Hoki","Horn Shark","Horseshoe Crab","Humpback Anglerfish","Humpback Whale","Icefish","Imperator Angelfish","Irukandji Jellyfish","Isopod","Ivory Bush Coral","Japanese Spider Crab","Jellyfish","John Dory","Juan Fernandez Fur Seal","Killer Whale","Kiwa Hirsuta","Krill","Lagoon Triggerfish","Lamprey","Leafy Seadragon","Leopard Seal","Limpet","Ling","Lionfish","Lions Mane Jellyfish","Lobe Coral","Lobster","Loggerhead Turtle","Longnose Sawshark","Longsnout Seahorse","Lophelia Coral","Marrus Orthocanna","Manatee","Manta Ray","Marlin","Megamouth Shark","Mexican Lookdown","Mimic Octopus","Moon Jelly","Mollusk","Monkfish","Moray Eel","Mullet","Mussel","Megaladon","Napoleon Wrasse","Nassau Grouper","Narwhal","Nautilus","Needlefish","Northern Seahorse","North Atlantic Right Whale","Northern Red Snapper","Norway Lobster","Nudibranch","Nurse Shark","Oarfish","Ocean Sunfish","Oceanic Whitetip Shark","Octopus","Olive Sea Snake","Orange Roughy","Ostracod","Otter","Oyster","Pacific Angelshark","Pacific Blackdragon","Pacific Halibut","Pacific Sardine","Pacific Sea Nettle Jellyfish","Pacific White Sided Dolphin","Pantropical Spotted Dolphin","Patagonian Toothfish","Peacock Mantis Shrimp","Pelagic Thresher Shark","Penguin","Peruvian Anchoveta","Pilchard","Pink Salmon","Pinniped","Plankton","Porpoise","Polar Bear","Portuguese Man o' War","Pycnogonid Sea Spider","Quahog","Queen Angelfish","Queen Conch","Queen Parrotfish","Queensland Grouper","Ragfish","Ratfish","Rattail Fish","Ray","Red Drum","Red King Crab","Ringed Seal","Risso's Dolphin","Ross Seals","Sablefish","Salmon","Sand Dollar","Sandbar Shark","Sawfish","Sarcastic Fringehead","Scalloped Hammerhead Shark","Seahorse","Sea Cucumber","Sea Lion","Sea Urchin","Seal","Shark","Shortfin Mako Shark","Shovelnose Guitarfish","Shrimp","Silverside Fish","Skipjack Tuna","Slender Snipe Eel","Smalltooth Sawfish","Smelts","Sockeye Salmon","Southern Stingray","Sponge","Spotted Porcupinefish","Spotted Dolphin","Spotted Eagle Ray","Spotted Moray","Squid","Squidworm","Starfish","Stickleback","Stonefish","Stoplight Loosejaw","Sturgeon","Swordfish","Tan Bristlemouth","Tasseled Wobbegong","Terrible Claw Lobster","Threespot Damselfish","Tiger Prawn","Tiger Shark","Tilefish","Toadfish","Tropical Two-Wing Flyfish","Tuna","Umbrella Squid","Velvet Crab","Venus Flytrap Sea Anemone","Vigtorniella Worm","Viperfish","Vampire Squid","Vaquita","Wahoo","Walrus","West Indian Manatee","Whale","Whale Shark","Whiptail Gulper","White-Beaked Dolphin","White-Ring Garden Eel","White Shrimp","Wobbegong","Wrasse","Wreckfish","Xiphosura","Yellowtail Damselfish","Yelloweye Rockfish","Yellow Cup Black Coral","Yellow Tube Sponge","Yellowfin Tuna","Zebrashark","Zooplankton"],desert:["Aardwolf","Addax","African Wild Ass","Ant","Antelope","Armadillo","Baboon","Badger","Bat","Bearded Dragon","Beetle","Bird","Black-footed Cat","Boa","Brown Bear","Bustard","Butterfly","Camel","Caracal","Caracara","Caterpillar","Centipede","Cheetah","Chipmunk","Chuckwalla","Climbing Mouse","Coati","Cobra","Cotton Rat","Cougar","Courser","Crane Fly","Crow","Dassie Rat","Dove","Dunnart","Eagle","Echidna","Elephant","Emu","Falcon","Fly","Fox","Frogmouth","Gecko","Geoffroy's Cat","Gerbil","Grasshopper","Guanaco","Gundi","Hamster","Hawk","Hedgehog","Hyena","Hyrax","Jackal","Kangaroo","Kangaroo Rat","Kestrel","Kowari","Kultarr","Leopard","Lion","Macaw","Meerkat","Mouse","Oryx","Ostrich","Owl","Pronghorn","Python","Rabbit","Raccoon","Rattlesnake","Rhinoceros","Sand Cat","Spectacled Bear","Spiny Mouse","Starling","Stick Bug","Tarantula","Tit","Toad","Tortoise","Tyrant Flycatcher","Viper","Vulture","Waxwing","Xerus","Zebra"],grassland:["Aardvark","Aardwolf","Accentor","African Buffalo","African Wild Dog","Alpaca","Anaconda","Ant","Anteater","Antelope","Armadillo","Baboon","Badger","Bandicoot","Barbet","Bat","Bee","Bee-eater","Beetle","Bird","Bison","Black-footed Cat","Black-footed Ferret","Bluebird","Boa","Bowerbird","Brown Bear","Bush Dog","Bushshrike","Bustard","Butterfly","Buzzard","Caracal","Caracara","Cardinal","Caterpillar","Cheetah","Chipmunk","Civet","Climbing Mouse","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Common Genet","Cotton Rat","Cougar","Courser","Coyote","Crane","Crane Fly","Cricket","Crow","Culpeo","Death Adder","Deer","Deer Mouse","Dingo","Dinosaur","Dove","Drongo","Duck","Duiker","Dunnart","Eagle","Echidna","Elephant","Elk","Emu","Falcon","Finch","Flea","Fly","Flying Frog","Fox","Frog","Frogmouth","Garter Snake","Gazelle","Gecko","Geoffroy's Cat","Gerbil","Giant Tortoise","Giraffe","Grasshopper","Grison","Groundhog","Grouse","Guanaco","Guinea Pig","Hamster","Harrier","Hartebeest","Hawk","Hedgehog","Helmetshrike","Hippopotamus","Hornbill","Hyena","Hyrax","Impala","Jackal","Jaguar","Jaguarundi","Kangaroo","Kangaroo Rat","Kestrel","Kultarr","Ladybug","Leopard","Lion","Macaw","Meerkat","Mouse","Newt","Oryx","Ostrich","Owl","Pangolin","Pheasant","Prairie Dog","Pronghorn","Przewalski's Horse","Python","Quoll","Rabbit","Raven","Rhinoceros","Shelduck","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Tamandua","Tasmanian Devil","Thornbill","Thrush","Toad","Tortoise"],forest:["Agouti","Anaconda","Anoa","Ant","Anteater","Antelope","Armadillo","Asian Black Bear","Aye-aye","Babirusa","Baboon","Badger","Bandicoot","Banteng","Barbet","Basilisk","Bat","Bearded Dragon","Bee","Bee-eater","Beetle","Bettong","Binturong","Bird-of-paradise","Bongo","Bowerbird","Bulbul","Bush Dog","Bushbaby","Bushshrike","Butterfly","Buzzard","Caecilian","Cardinal","Cassowary","Caterpillar","Centipede","Chameleon","Chimpanzee","Cicada","Civet","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Colugo","Cotinga","Cotton Rat","Cougar","Crane Fly","Cricket","Crocodile","Crow","Cuckoo","Cuscus","Death Adder","Deer","Dhole","Dingo","Dinosaur","Drongo","Duck","Duiker","Eagle","Echidna","Elephant","Finch","Flat-headed Cat","Flea","Flowerpecker","Fly","Flying Frog","Fossa","Frog","Frogmouth","Gaur","Gecko","Gorilla","Grison","Hawaiian Honeycreeper","Hawk","Hedgehog","Helmetshrike","Hornbill","Hyrax","Iguana","Jackal","Jaguar","Jaguarundi","Kestrel","Ladybug","Lemur","Leopard","Lion","Macaw","Mandrill","Margay","Monkey","Mouse","Mouse Deer","Newt","Okapi","Old World Flycatcher","Orangutan","Owl","Pangolin","Peafowl","Pheasant","Possum","Python","Quokka","Rabbit","Raccoon","Red Panda","Red River Hog","Rhinoceros","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Sun Bear","Tamandua","Tamarin","Tapir","Tarantula","Thrush","Tiger","Tit","Toad","Tortoise","Toucan","Trogon","Trumpeter","Turaco","Turtle","Tyrant Flycatcher","Viper","Vulture","Wallaby","Warbler","Wasp","Waxwing","Weaver","Weaver-finch","Whistler","White-eye","Whydah","Woodswallow","Worm","Wren","Xenops","Yellowjacket","Accentor","African Buffalo","American Black Bear","Anole","Bird","Bison","Boa","Brown Bear","Chipmunk","Common Genet","Copperhead","Coyote","Deer Mouse","Dormouse","Elk","Emu","Fisher","Fox","Garter Snake","Giant Panda","Giant Tortoise","Groundhog","Grouse","Guanaco","Himalayan Tahr","Kangaroo","Koala","Numbat","Quoll","Raccoon dog","Tasmanian Devil","Thornbill","Turkey","Vole","Weasel","Wildcat","Wolf","Wombat","Woodchuck","Woodpecker"],farm:["Alpaca","Buffalo","Banteng","Cow","Cat","Chicken","Carp","Camel","Donkey","Dog","Duck","Emu","Goat","Gayal","Guinea","Goose","Horse","Honey","Llama","Pig","Pigeon","Rhea","Rabbit","Sheep","Silkworm","Turkey","Yak","Zebu"],pet:["Bearded Dragon","Birds","Burro","Cats","Chameleons","Chickens","Chinchillas","Chinese Water Dragon","Cows","Dogs","Donkey","Ducks","Ferrets","Fish","Geckos","Geese","Gerbils","Goats","Guinea Fowl","Guinea Pigs","Hamsters","Hedgehogs","Horses","Iguanas","Llamas","Lizards","Mice","Mule","Peafowl","Pigs and Hogs","Pigeons","Ponies","Pot Bellied Pig","Rabbits","Rats","Sheep","Skinks","Snakes","Stick Insects","Sugar Gliders","Tarantula","Turkeys","Turtles"],zoo:["Aardvark","African Wild Dog","Aldabra Tortoise","American Alligator","American Bison","Amur Tiger","Anaconda","Andean Condor","Asian Elephant","Baby Doll Sheep","Bald Eagle","Barred Owl","Blue Iguana","Boer Goat","California Sea Lion","Caribbean Flamingo","Chinchilla","Collared Lemur","Coquerel's Sifaka","Cuban Amazon Parrot","Ebony Langur","Fennec Fox","Fossa","Gelada","Giant Anteater","Giraffe","Gorilla","Grizzly Bear","Henkel's Leaf-tailed Gecko","Indian Gharial","Indian Rhinoceros","King Cobra","King Vulture","Komodo Dragon","Linne's Two-toed Sloth","Lion","Little Penguin","Madagascar Tree Boa","Magellanic Penguin","Malayan Tapir","Malayan Tiger","Matschies Tree Kangaroo","Mini Donkey","Monarch Butterfly","Nile crocodile","North American Porcupine","Nubian Ibex","Okapi","Poison Dart Frog","Polar Bear","Pygmy Marmoset","Radiated Tortoise","Red Panda","Red Ruffed Lemur","Ring-tailed Lemur","Ring-tailed Mongoose","Rock Hyrax","Small Clawed Asian Otter","Snow Leopard","Snowy Owl","Southern White-faced Owl","Southern White Rhinocerous","Squirrel Monkey","Tufted Puffin","White Cheeked Gibbon","White-throated Bee Eater","Zebra"]},primes:[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973,10007],emotions:["love","joy","surprise","anger","sadness","fear"]},S=Object.prototype.hasOwnProperty,_=Object.keys||function(e){var t=[];for(var r in e)S.call(e,r)&&t.push(r);return t};function C(e,t){var r=Array.isArray(e),n=t||(r?new Array(e.length):{});return r?function(e,t){for(var r=0,n=e.length;r0)return this.normal_pool(e);var t,r,n,o=e.mean,i=e.dev;do{t=(r=2*this.random()-1)*r+(n=2*this.random()-1)*n}while(t>=1);return i*(r*Math.sqrt(-2*Math.log(t)/t))+o},d.prototype.normal_pool=function(e){var t=0;do{var r=Math.round(this.normal({mean:e.mean,dev:e.dev}));if(r=0)return e.pool[r];t++}while(t<100);throw new RangeError("Chance: Your pool is too small for the given mean and standard deviation. Please adjust.")},d.prototype.radio=function(e){var t="";switch((e=c(e,{side:"?"})).side.toLowerCase()){case"east":case"e":t="W";break;case"west":case"w":t="K";break;default:t=this.character({pool:"KW"})}return t+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})},d.prototype.set=function(e,t){"string"==typeof e?b[e]=t:b=C(e,b)},d.prototype.tv=function(e){return this.radio(e)},d.prototype.cnpj=function(){var e=this.n(this.natural,8,{max:9}),t=2+6*e[7]+7*e[6]+8*e[5]+9*e[4]+2*e[3]+3*e[2]+4*e[1]+5*e[0];(t=11-t%11)>=10&&(t=0);var r=2*t+3+7*e[7]+8*e[6]+9*e[5]+2*e[4]+3*e[3]+4*e[2]+5*e[1]+6*e[0];return(r=11-r%11)>=10&&(r=0),""+e[0]+e[1]+"."+e[2]+e[3]+e[4]+"."+e[5]+e[6]+e[7]+"/0001-"+t+r},d.prototype.emotion=function(){return this.pick(this.get("emotions"))},d.prototype.mersenne_twister=function(e){return new E(e)},d.prototype.blueimp_md5=function(){return new A};var E=function(e){void 0===e&&(e=Math.floor(Math.random()*Math.pow(10,13))),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};E.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0},E.prototype.init_by_array=function(e,t){var r,n,o=1,i=0;for(this.init_genrand(19650218),r=this.N>t?this.N:t;r;r--)n=this.mt[o-1]^this.mt[o-1]>>>30,this.mt[o]=(this.mt[o]^(1664525*((4294901760&n)>>>16)<<16)+1664525*(65535&n))+e[i]+i,this.mt[o]>>>=0,i++,++o>=this.N&&(this.mt[0]=this.mt[this.N-1],o=1),i>=t&&(i=0);for(r=this.N-1;r;r--)n=this.mt[o-1]^this.mt[o-1]>>>30,this.mt[o]=(this.mt[o]^(1566083941*((4294901760&n)>>>16)<<16)+1566083941*(65535&n))-o,this.mt[o]>>>=0,++o>=this.N&&(this.mt[0]=this.mt[this.N-1],o=1);this.mt[0]=2147483648},E.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti===this.N+1&&this.init_genrand(5489),r=0;r>>1^t[1&e];for(;r>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},E.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},E.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},E.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},E.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},E.prototype.genrand_res53=function(){return(67108864*(this.genrand_int32()>>>5)+(this.genrand_int32()>>>6))*(1/9007199254740992)};var A=function(){};A.prototype.VERSION="1.0.1",A.prototype.safe_add=function(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r},A.prototype.bit_roll=function(e,t){return e<>>32-t},A.prototype.md5_cmn=function(e,t,r,n,o,i){return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(t,e),this.safe_add(n,i)),o),r)},A.prototype.md5_ff=function(e,t,r,n,o,i,a){return this.md5_cmn(t&r|~t&n,e,t,o,i,a)},A.prototype.md5_gg=function(e,t,r,n,o,i,a){return this.md5_cmn(t&n|r&~n,e,t,o,i,a)},A.prototype.md5_hh=function(e,t,r,n,o,i,a){return this.md5_cmn(t^r^n,e,t,o,i,a)},A.prototype.md5_ii=function(e,t,r,n,o,i,a){return this.md5_cmn(r^(t|~n),e,t,o,i,a)},A.prototype.binl_md5=function(e,t){e[t>>5]|=128<>>9<<4)]=t;var r,n,o,i,a,s=1732584193,u=-271733879,l=-1732584194,d=271733878;for(r=0;r>5]>>>t%32&255);return r},A.prototype.rstr2binl=function(e){var t,r=[];for(r[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<16&&(o=this.binl_md5(o,8*e.length)),r=0;r<16;r+=1)i[r]=909522486^o[r],a[r]=1549556828^o[r];return n=this.binl_md5(i.concat(this.rstr2binl(t)),512+8*t.length),this.binl2rstr(this.binl_md5(a.concat(n),640))},A.prototype.rstr2hex=function(e){var t,r,n="0123456789abcdef",o="";for(r=0;r>>4&15)+n.charAt(15&t);return o},A.prototype.str2rstr_utf8=function(e){return unescape(encodeURIComponent(e))},A.prototype.raw_md5=function(e){return this.rstr_md5(this.str2rstr_utf8(e))},A.prototype.hex_md5=function(e){return this.rstr2hex(this.raw_md5(e))},A.prototype.raw_hmac_md5=function(e,t){return this.rstr_hmac_md5(this.str2rstr_utf8(e),this.str2rstr_utf8(t))},A.prototype.hex_hmac_md5=function(e,t){return this.rstr2hex(this.raw_hmac_md5(e,t))},A.prototype.md5=function(e,t,r){return t?r?this.raw_hmac_md5(t,e):this.hex_hmac_md5(t,e):r?this.raw_md5(e):this.hex_md5(e)},e.exports&&(t=e.exports=d),t.Chance=d,void 0===(r=function(){return d}.apply(t,[]))||(e.exports=r),"undefined"!=typeof importScripts&&(chance=new d,self.Chance=d),"object"==typeof window&&"object"==typeof window.document&&(window.Chance=d,window.chance=new d)}()},6880:e=>{"use strict";e.exports=()=>{const e="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",t="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",n="(?:\\uD83C[\\uDDE6-\\uDDFF]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",i=`(?:${e}|${t})?`,a="[\\ufe0e\\ufe0f]?",s=a+i+`(?:\\u200d(?:${[r,n,o].join("|")})${a+i})*`,u=`(?:${[`${r}${e}?`,e,n,o,"[\\ud800-\\udfff]","[\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83C\\uDF93]"].join("|")})`;return new RegExp(`(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40(?:\\udc65|\\udc73|\\udc77)\\udb40(?:\\udc6e|\\udc63|\\udc6c)\\udb40(?:\\udc67|\\udc74|\\udc73)\\udb40\\udc7f)|${t}(?=${t})|${u+s}`,"g")}},487:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],r=0;r{"use strict";r.r(t),r.d(t,{ARRAY_CONTAINS:()=>Go,ARRAY_MAX_SIZE:()=>Zo,ARRAY_MIN_SIZE:()=>Yo,ARRAY_NOT_CONTAINS:()=>ko,ARRAY_NOT_EMPTY:()=>Wo,ARRAY_UNIQUE:()=>ei,Allow:()=>S,ArrayContains:()=>Uo,ArrayMaxSize:()=>Qo,ArrayMinSize:()=>qo,ArrayNotContains:()=>Ho,ArrayNotEmpty:()=>zo,ArrayUnique:()=>ri,CONTAINS:()=>De,Contains:()=>Pe,EQUALS:()=>H,Equals:()=>K,IS_ALPHA:()=>Le,IS_ALPHANUMERIC:()=>Be,IS_ARRAY:()=>Fo,IS_ASCII:()=>He,IS_BASE32:()=>cn,IS_BASE64:()=>ze,IS_BIC:()=>fn,IS_BOOLEAN:()=>mo,IS_BOOLEAN_STRING:()=>on,IS_BTC_ADDRESS:()=>yn,IS_BYTE_LENGTH:()=>qe,IS_CREDIT_CARD:()=>Qe,IS_CURRENCY:()=>rt,IS_DATA_URI:()=>_n,IS_DATE:()=>bo,IS_DATE_STRING:()=>tn,IS_DECIMAL:()=>Ue,IS_DEFINED:()=>N,IS_DIVISIBLE_BY:()=>ue,IS_EAN:()=>An,IS_EMAIL:()=>it,IS_EMPTY:()=>q,IS_ENUM:()=>No,IS_ETHEREUM_ADDRESS:()=>Tn,IS_FIREBASE_PUSH_ID:()=>Nr,IS_FQDN:()=>ut,IS_FULL_WIDTH:()=>ct,IS_HALF_WIDTH:()=>ft,IS_HASH:()=>Xr,IS_HEXADECIMAL:()=>At,IS_HEX_COLOR:()=>_t,IS_HSL:()=>Dn,IS_IBAN:()=>Mn,IS_IDENTITY_CARD:()=>Ln,IS_IN:()=>re,IS_INSTANCE:()=>ai,IS_INT:()=>Io,IS_IP:()=>Rt,IS_ISBN:()=>$t,IS_ISIN:()=>Gt,IS_ISO31661_ALPHA_2:()=>nr,IS_ISO31661_ALPHA_3:()=>ar,IS_ISO8601:()=>kt,IS_ISRC:()=>Bn,IS_ISSN:()=>Jr,IS_JSON:()=>Wt,IS_JWT:()=>Yt,IS_LATITUDE:()=>B,IS_LATLONG:()=>L,IS_LOCALE:()=>Un,IS_LONGITUDE:()=>U,IS_LOWERCASE:()=>Zt,IS_MAC_ADDRESS:()=>It,IS_MAGNET_URI:()=>Hn,IS_MILITARY_TIME:()=>Kr,IS_MIME_TYPE:()=>zn,IS_MOBILE_PHONE:()=>er,IS_MONGO_ID:()=>lr,IS_MULTIBYTE:()=>pr,IS_NEGATIVE:()=>fe,IS_NOT_EMPTY:()=>Q,IS_NOT_EMPTY_OBJECT:()=>ni,IS_NOT_IN:()=>ie,IS_NUMBER:()=>Co,IS_NUMBER_STRING:()=>un,IS_OBJECT:()=>$o,IS_OCTAL:()=>qn,IS_PASSPORT_NUMBER:()=>Qn,IS_PHONE_NUMBER:()=>Vr,IS_PORT:()=>Ft,IS_POSITIVE:()=>ce,IS_POSTAL_CODE:()=>ro,IS_RFC_3339:()=>io,IS_RGB_COLOR:()=>uo,IS_SEM_VER:()=>po,IS_STRING:()=>Ro,IS_SURROGATE_PAIR:()=>mr,IS_UPPERCASE:()=>Ir,IS_URL:()=>br,IS_UUID:()=>Cr,IS_VARIABLE_WIDTH:()=>yt,IsAlpha:()=>we,IsAlphanumeric:()=>je,IsArray:()=>Lo,IsAscii:()=>Ke,IsBIC:()=>hn,IsBase32:()=>gn,IsBase64:()=>Xe,IsBoolean:()=>yo,IsBooleanString:()=>sn,IsBtcAddress:()=>Sn,IsByteLength:()=>Je,IsCreditCard:()=>tt,IsCurrency:()=>ot,IsDataURI:()=>En,IsDate:()=>_o,IsDateString:()=>nn,IsDecimal:()=>Ve,IsDefined:()=>T,IsDivisibleBy:()=>de,IsEAN:()=>vn,IsEmail:()=>st,IsEmpty:()=>J,IsEnum:()=>To,IsEthereumAddress:()=>On,IsFQDN:()=>dt,IsFirebasePushId:()=>Tr,IsFullWidth:()=>gt,IsHSL:()=>Pn,IsHalfWidth:()=>ht,IsHash:()=>Zr,IsHexColor:()=>Et,IsHexadecimal:()=>vt,IsIBAN:()=>xn,IsIP:()=>Mt,IsISBN:()=>Bt,IsISIN:()=>Ut,IsISO31661Alpha2:()=>ir,IsISO31661Alpha3:()=>ur,IsISO8601:()=>Ht,IsISRC:()=>jn,IsISSN:()=>en,IsIdentityCard:()=>wn,IsIn:()=>oe,IsInstance:()=>ui,IsInt:()=>Do,IsJSON:()=>zt,IsJWT:()=>qt,IsLatLong:()=>w,IsLatitude:()=>j,IsLocale:()=>Vn,IsLongitude:()=>V,IsLowercase:()=>Qt,IsMACAddress:()=>Dt,IsMagnetURI:()=>Kn,IsMilitaryTime:()=>Yr,IsMimeType:()=>Xn,IsMobilePhone:()=>rr,IsMongoId:()=>cr,IsMultibyte:()=>fr,IsNegative:()=>he,IsNotEmpty:()=>te,IsNotEmptyObject:()=>ii,IsNotIn:()=>se,IsNumber:()=>Ao,IsNumberString:()=>dn,IsObject:()=>Bo,IsOctal:()=>Jn,IsOptional:()=>I,IsPassportNumber:()=>to,IsPhoneNumber:()=>Wr,IsPort:()=>Lt,IsPositive:()=>ge,IsPostalCode:()=>oo,IsRFC3339:()=>so,IsRgbColor:()=>co,IsSemVer:()=>fo,IsString:()=>Mo,IsSurrogatePair:()=>yr,IsUUID:()=>Ar,IsUppercase:()=>Dr,IsUrl:()=>_r,IsVariableWidth:()=>St,LENGTH:()=>Rr,Length:()=>Mr,MATCHES:()=>Gr,MAX:()=>ye,MAX_DATE:()=>Te,MAX_LENGTH:()=>Fr,MIN:()=>_e,MIN_DATE:()=>Ae,MIN_LENGTH:()=>$r,Matches:()=>Ur,Max:()=>Se,MaxDate:()=>Oe,MaxLength:()=>Lr,MetadataStorage:()=>a,Min:()=>Ee,MinDate:()=>ve,MinLength:()=>Br,NOT_CONTAINS:()=>Me,NOT_EQUALS:()=>z,NotContains:()=>xe,NotEquals:()=>X,Validate:()=>D,ValidateBy:()=>A,ValidateIf:()=>R,ValidateNested:()=>P,ValidatePromise:()=>M,ValidationError:()=>u,ValidationTypes:()=>l,Validator:()=>m,ValidatorConstraint:()=>O,arrayContains:()=>jo,arrayMaxSize:()=>Jo,arrayMinSize:()=>Xo,arrayNotContains:()=>Vo,arrayNotEmpty:()=>Ko,arrayUnique:()=>ti,buildMessage:()=>E,contains:()=>Re,equals:()=>W,getFromContainer:()=>b,getMetadataStorage:()=>i,isAlpha:()=>$e,isAlphanumeric:()=>Ge,isArray:()=>xo,isAscii:()=>We,isBIC:()=>mn,isBase32:()=>pn,isBase64:()=>Ye,isBoolean:()=>ho,isBooleanString:()=>an,isBtcAddress:()=>bn,isByteLength:()=>Ze,isCreditCard:()=>et,isCurrency:()=>nt,isDataURI:()=>Cn,isDate:()=>So,isDateString:()=>rn,isDecimal:()=>ke,isDefined:()=>v,isDivisibleBy:()=>le,isEAN:()=>Nn,isEmail:()=>at,isEmpty:()=>Z,isEnum:()=>vo,isEthereumAddress:()=>In,isFQDN:()=>lt,isFirebasePushId:()=>vr,isFullWidth:()=>pt,isHSL:()=>Rn,isHalfWidth:()=>mt,isHash:()=>qr,isHexColor:()=>Ct,isHexadecimal:()=>Nt,isIBAN:()=>Fn,isIP:()=>Pt,isISBN:()=>wt,isISIN:()=>jt,isISO31661Alpha2:()=>or,isISO31661Alpha3:()=>sr,isISO8601:()=>Vt,isISRC:()=>Gn,isISSN:()=>Qr,isIdentityCard:()=>$n,isIn:()=>ne,isInstance:()=>si,isInt:()=>Oo,isJSON:()=>Kt,isJWT:()=>Xt,isLatLong:()=>$,isLatitude:()=>G,isLocale:()=>kn,isLongitude:()=>k,isLowercase:()=>Jt,isMACAddress:()=>Ot,isMagnetURI:()=>Wn,isMilitaryTime:()=>zr,isMimeType:()=>Yn,isMobilePhone:()=>tr,isMongoId:()=>dr,isMultibyte:()=>gr,isNegative:()=>me,isNotEmpty:()=>ee,isNotEmptyObject:()=>oi,isNotIn:()=>ae,isNumber:()=>Eo,isNumberString:()=>ln,isObject:()=>wo,isOctal:()=>Zn,isPassportNumber:()=>eo,isPhoneNumber:()=>Hr,isPort:()=>xt,isPositive:()=>pe,isPostalCode:()=>no,isRFC3339:()=>ao,isRgbColor:()=>lo,isSemVer:()=>go,isString:()=>Po,isSurrogatePair:()=>hr,isURL:()=>Sr,isUUID:()=>Er,isUppercase:()=>Or,isValidationOptions:()=>Tt,isVariableWidth:()=>bt,length:()=>Pr,matches:()=>jr,max:()=>be,maxDate:()=>Ie,maxLength:()=>xr,min:()=>Ce,minDate:()=>Ne,minLength:()=>wr,notContains:()=>Fe,notEquals:()=>Y,registerDecorator:()=>C,registerSchema:()=>pi,useContainer:()=>y,validate:()=>li,validateOrReject:()=>di,validateSync:()=>ci});var n=function(e){this.groups=[],this.always=!1,this.each=!1,this.context=void 0,this.type=e.type,this.target=e.target,this.propertyName=e.propertyName,this.constraints=e.constraints,this.constraintCls=e.constraintCls,this.validationTypeOptions=e.validationTypeOptions,e.validationOptions&&(this.message=e.validationOptions.message,this.groups=e.validationOptions.groups,this.always=e.validationOptions.always,this.each=e.validationOptions.each,this.context=e.validationOptions.context)},o=function(){function e(){}return e.prototype.transform=function(e){var t=[];return Object.keys(e.properties).forEach((function(r){e.properties[r].forEach((function(o){var i={message:o.message,groups:o.groups,always:o.always,each:o.each},a={type:o.type,target:e.name,propertyName:r,constraints:o.constraints,validationTypeOptions:o.options,validationOptions:i};t.push(new n(a))}))})),t},e}();function i(){return"undefined"!=typeof window&&(window.global=window),r.g.classValidatorMetadataStorage||(r.g.classValidatorMetadataStorage=new a),r.g.classValidatorMetadataStorage}var a=function(){function e(){this.validationMetadatas=[],this.constraintMetadatas=[]}return Object.defineProperty(e.prototype,"hasValidationMetaData",{get:function(){return!!this.validationMetadatas.length},enumerable:!0,configurable:!0}),e.prototype.addValidationSchema=function(e){var t=this;(new o).transform(e).forEach((function(e){return t.addValidationMetadata(e)}))},e.prototype.addValidationMetadata=function(e){this.validationMetadatas.push(e)},e.prototype.addConstraintMetadata=function(e){this.constraintMetadatas.push(e)},e.prototype.groupByPropertyName=function(e){var t={};return e.forEach((function(e){t[e.propertyName]||(t[e.propertyName]=[]),t[e.propertyName].push(e)})),t},e.prototype.getTargetValidationMetadatas=function(e,t,r){var n=this.validationMetadatas.filter((function(n){return(n.target===e||n.target===t)&&(!!n.always||!(r&&r.length>0)||n.groups&&!!n.groups.find((function(e){return-1!==r.indexOf(e)})))})),o=this.validationMetadatas.filter((function(t){return"string"!=typeof t.target&&t.target!==e&&(!(t.target instanceof Function)||e.prototype instanceof t.target)&&(!!t.always||!(r&&r.length>0)||t.groups&&!!t.groups.find((function(e){return-1!==r.indexOf(e)})))})).filter((function(e){return!n.find((function(t){return t.propertyName===e.propertyName&&t.type===e.type}))}));return n.concat(o)},e.prototype.getTargetValidatorConstraints=function(e){return this.constraintMetadatas.filter((function(t){return t.target===e}))},e}(),s=function(){return(s=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&(this.validatorOptions&&this.validatorOptions.forbidNonWhitelisted?o.forEach((function(t){var o,i=n.generateValidationError(e,e[t],t);i.constraints=((o={})[l.WHITELIST]="property "+t+" should not exist",o),i.children=void 0,r.push(i)})):o.forEach((function(t){return delete e[t]})))},e.prototype.stripEmptyErrors=function(e){var t=this;return e.filter((function(e){if(e.children&&(e.children=t.stripEmptyErrors(e.children)),0===Object.keys(e.constraints).length){if(0===e.children.length)return!1;delete e.constraints}return!0}))},e.prototype.performValidations=function(e,t,r,n,o,i){var a=o.filter((function(e){return e.type===l.CUSTOM_VALIDATION})),s=o.filter((function(e){return e.type===l.NESTED_VALIDATION})),u=o.filter((function(e){return e.type===l.CONDITIONAL_VALIDATION})),d=this.generateValidationError(e,t,r);i.push(d),this.conditionalValidations(e,t,u)&&(this.customValidations(e,t,n,d),this.mapContexts(e,t,n,d),void 0===t&&this.validatorOptions&&!0===this.validatorOptions.skipUndefinedProperties||null===t&&this.validatorOptions&&!0===this.validatorOptions.skipNullProperties||null==t&&this.validatorOptions&&!0===this.validatorOptions.skipMissingProperties||(this.customValidations(e,t,a,d),this.nestedValidations(t,s,d.children),this.mapContexts(e,t,o,d),this.mapContexts(e,t,a,d)))},e.prototype.generateValidationError=function(e,t,r){var n=new u;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(n.target=e),this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.value&&!0!==this.validatorOptions.validationError.value||(n.value=t),n.property=r,n.children=[],n.constraints={},n},e.prototype.conditionalValidations=function(e,t,r){return r.map((function(r){return r.constraints[0](e,t)})).reduce((function(e,t){return e&&t}),!0)},e.prototype.customValidations=function(e,t,r,n){var o=this;r.forEach((function(r){o.metadataStorage.getTargetValidatorConstraints(r.constraintCls).forEach((function(i){if(!i.async||!o.ignoreAsyncValidations){var a={targetName:e.constructor?e.constructor.name:void 0,property:r.propertyName,object:e,value:t,constraints:r.constraints};if(r.each&&(t instanceof Array||t instanceof Set||t instanceof Map)){var s,u=((s=t)instanceof Map?Array.from(s.values()):Array.isArray(s)?s:Array.from(s)).map((function(e){return i.instance.validate(e,a)}));if(u.some((function(e){return c(e)}))){var l=u.map((function(e){return c(e)?e:Promise.resolve(e)})),d=Promise.all(l).then((function(a){if(!a.every((function(e){return e}))){var s=o.createValidationError(e,t,r,i),u=s[0],l=s[1];n.constraints[u]=l,r.context&&(n.contexts||(n.contexts={}),n.contexts[u]=Object.assign(n.contexts[u]||{},r.context))}}));o.awaitingPromises.push(d)}else if(!u.every((function(e){return e}))){var p=o.createValidationError(e,t,r,i);h=p[0],y=p[1],n.constraints[h]=y}}else{var g=i.instance.validate(t,a);if(c(g)){var f=g.then((function(a){if(!a){var s=o.createValidationError(e,t,r,i),u=s[0],l=s[1];n.constraints[u]=l,r.context&&(n.contexts||(n.contexts={}),n.contexts[u]=Object.assign(n.contexts[u]||{},r.context))}}));o.awaitingPromises.push(f)}else if(!g){var m=o.createValidationError(e,t,r,i),h=m[0],y=m[1];n.constraints[h]=y}}}}))}))},e.prototype.nestedValidations=function(e,t,r){var n=this;void 0!==e&&t.forEach((function(o){var i;if(o.type===l.NESTED_VALIDATION||o.type===l.PROMISE_VALIDATION)if(e instanceof Array||e instanceof Set||e instanceof Map)(e instanceof Set?Array.from(e):e).forEach((function(o,i){n.performValidations(e,o,i.toString(),[],t,r)}));else if(e instanceof Object){var a="string"==typeof o.target?o.target:o.target.name;n.execute(e,a,r)}else{var s=new u;s.value=e,s.property=o.propertyName,s.target=o.target;var d=n.createValidationError(o.target,e,o),c=d[0],p=d[1];s.constraints=((i={})[c]=p,i),r.push(s)}}))},e.prototype.mapContexts=function(e,t,r,n){var o=this;return r.forEach((function(e){if(e.context){var t=void 0;e.type===l.CUSTOM_VALIDATION&&(t=o.metadataStorage.getTargetValidatorConstraints(e.constraintCls)[0]);var r=o.getConstraintType(e,t);n.constraints[r]&&(n.contexts||(n.contexts={}),n.contexts[r]=Object.assign(n.contexts[r]||{},e.context))}}))},e.prototype.createValidationError=function(e,t,r,n){var o=e.constructor?e.constructor.name:void 0,i=this.getConstraintType(r,n),a={targetName:o,property:r.propertyName,object:e,value:t,constraints:r.constraints},s=r.message||"";return r.message||this.validatorOptions&&(!this.validatorOptions||this.validatorOptions.dismissDefaultMessages)||n&&n.instance.defaultMessage instanceof Function&&(s=n.instance.defaultMessage(a)),[i,d.replaceMessageSpecialTokens(s,a)]},e.prototype.getConstraintType=function(e,t){return t&&t.name?t.name:e.type},e}(),m=function(){function e(){}return e.prototype.coreValidate=function(e,t,r){var n="string"==typeof e?t:e,o="string"==typeof e?e:void 0,i=new f(this,"string"==typeof e?r:t),a=[];return i.execute(n,o,a),Promise.all(i.awaitingPromises).then((function(){return i.stripEmptyErrors(a)}))},e.prototype.validate=function(e,t,r){return this.coreValidate(e,t,r)},e.prototype.validateOrReject=function(e,t,r){return n=this,o=void 0,a=function(){var n;return function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]1)throw"More than one implementation of ValidatorConstraintInterface found for validator on: "+e.target+":"+e.propertyName}else{var r=e.validator;t=function(){function e(){}return e.prototype.validate=function(e,t){return r.validate(e,t)},e.prototype.defaultMessage=function(e){return r.defaultMessage?r.defaultMessage(e):""},e}(),i().addConstraintMetadata(new _(t,e.name,e.async))}var o={type:e.name&&l.isValid(e.name)?e.name:l.CUSTOM_VALIDATION,target:e.target,propertyName:e.propertyName,validationOptions:e.options,constraintCls:t,constraints:e.constraints};i().addValidationMetadata(new n(o))}function E(e,t){return function(r){var n=t&&t.each?"each value in ":"";return e(n,r)}}function A(e,t){return function(r,n){C({name:e.name,target:r.constructor,propertyName:n,options:t,constraints:e.constraints,validator:e.validator})}}var N=l.IS_DEFINED;function v(e){return null!=e}function T(e){return A({name:N,validator:{validate:function(e){return v(e)},defaultMessage:E((function(e){return e+"$property should not be null or undefined"}),e)}},e)}function I(e){return function(t,r){var o={type:l.CONDITIONAL_VALIDATION,target:t.constructor,propertyName:r,constraints:[function(e,t){return null!==e[r]&&void 0!==e[r]}],validationOptions:e};i().addValidationMetadata(new n(o))}}function O(e){return function(t){var r=!(!e||!e.async),n=e&&e.name?e.name:"";n||(n=t.name)||(n=n.replace(/\.?([A-Z]+)/g,(function(e,t){return"_"+t.toLowerCase()})).replace(/^_/,""));var o=new _(t,n,r);i().addConstraintMetadata(o)}}function D(e,t,r){return function(o,a){var s={type:l.CUSTOM_VALIDATION,target:o.constructor,propertyName:a,constraintCls:e,constraints:t instanceof Array?t:void 0,validationOptions:t instanceof Array?r:t};i().addValidationMetadata(new n(s))}}function R(e,t){return function(r,o){var a={type:l.CONDITIONAL_VALIDATION,target:r.constructor,propertyName:o,constraints:[e],validationOptions:t};i().addValidationMetadata(new n(a))}}function P(e){var t=s({},e),r=t.each?"each value in ":"";return t.message=t.message||r+"nested property $property must be either object or array",function(e,r){var o={type:l.NESTED_VALIDATION,target:e.constructor,propertyName:r,validationOptions:t};i().addValidationMetadata(new n(o))}}function M(e){return function(t,r){var o={type:l.PROMISE_VALIDATION,target:t.constructor,propertyName:r,validationOptions:e};i().addValidationMetadata(new n(o))}}var F=r(8966),x=r.n(F),L="isLatLong";function $(e){return"string"==typeof e&&x().isLatLong(e)}function w(e){return A({name:L,validator:{validate:function(e,t){return $(e)},defaultMessage:E((function(e){return e+"$property must be a latitude,longitude string"}),e)}},e)}var B="isLatitude";function G(e){return("number"==typeof e||"string"==typeof e)&&$(e+",0")}function j(e){return A({name:B,validator:{validate:function(e,t){return G(e)},defaultMessage:E((function(e){return e+"$property must be a latitude string or number"}),e)}},e)}var U="isLongitude";function k(e){return("number"==typeof e||"string"==typeof e)&&$("0,"+e)}function V(e){return A({name:U,validator:{validate:function(e,t){return k(e)},defaultMessage:E((function(e){return e+"$property must be a longitude string or number"}),e)}},e)}var H="equals";function W(e,t){return e===t}function K(e,t){return A({name:H,constraints:[e],validator:{validate:function(e,t){return W(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be equal to $constraint1"}),t)}},t)}var z="notEquals";function Y(e,t){return e!==t}function X(e,t){return A({name:z,constraints:[e],validator:{validate:function(e,t){return Y(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property should not be equal to $constraint1"}),t)}},t)}var q="isEmpty";function Z(e){return""===e||null==e}function J(e){return A({name:q,validator:{validate:function(e,t){return Z(e)},defaultMessage:E((function(e){return e+"$property must be empty"}),e)}},e)}var Q="isNotEmpty";function ee(e){return""!==e&&null!=e}function te(e){return A({name:Q,validator:{validate:function(e,t){return ee(e)},defaultMessage:E((function(e){return e+"$property should not be empty"}),e)}},e)}var re="isIn";function ne(e,t){return!(t instanceof Array)||t.some((function(t){return t===e}))}function oe(e,t){return A({name:re,constraints:[e],validator:{validate:function(e,t){return ne(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be one of the following values: $constraint1"}),t)}},t)}var ie="isNotIn";function ae(e,t){return!(t instanceof Array&&t.some((function(t){return t===e})))}function se(e,t){return A({name:ie,constraints:[e],validator:{validate:function(e,t){return ae(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property should not be one of the following values: $constraint1"}),t)}},t)}var ue="isDivisibleBy";function le(e,t){return"number"==typeof e&&"number"==typeof t&&x().isDivisibleBy(String(e),t)}function de(e,t){return A({name:ue,constraints:[e],validator:{validate:function(e,t){return le(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be divisible by $constraint1"}),t)}},t)}var ce="isPositive";function pe(e){return"number"==typeof e&&e>0}function ge(e){return A({name:ce,validator:{validate:function(e,t){return pe(e)},defaultMessage:E((function(e){return e+"$property must be a positive number"}),e)}},e)}var fe="isNegative";function me(e){return"number"==typeof e&&e<0}function he(e){return A({name:fe,validator:{validate:function(e,t){return me(e)},defaultMessage:E((function(e){return e+"$property must be a negative number"}),e)}},e)}var ye="max";function be(e,t){return"number"==typeof e&&"number"==typeof t&&e<=t}function Se(e,t){return A({name:ye,constraints:[e],validator:{validate:function(e,t){return be(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must not be greater than $constraint1"}),t)}},t)}var _e="min";function Ce(e,t){return"number"==typeof e&&"number"==typeof t&&e>=t}function Ee(e,t){return A({name:_e,constraints:[e],validator:{validate:function(e,t){return Ce(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must not be less than $constraint1"}),t)}},t)}var Ae="minDate";function Ne(e,t){return e instanceof Date&&e.getTime()>=t.getTime()}function ve(e,t){return A({name:Ae,constraints:[e],validator:{validate:function(e,t){return Ne(e,t.constraints[0])},defaultMessage:E((function(e){return"minimal allowed date for "+e+"$property is $constraint1"}),t)}},t)}var Te="maxDate";function Ie(e,t){return e instanceof Date&&e.getTime()<=t.getTime()}function Oe(e,t){return A({name:Te,constraints:[e],validator:{validate:function(e,t){return Ie(e,t.constraints[0])},defaultMessage:E((function(e){return"maximal allowed date for "+e+"$property is $constraint1"}),t)}},t)}var De="contains";function Re(e,t){return"string"==typeof e&&x().contains(e,t)}function Pe(e,t){return A({name:De,constraints:[e],validator:{validate:function(e,t){return Re(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain a $constraint1 string"}),t)}},t)}var Me="notContains";function Fe(e,t){return"string"==typeof e&&!x().contains(e,t)}function xe(e,t){return A({name:Me,constraints:[e],validator:{validate:function(e,t){return Fe(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property should not contain a $constraint1 string"}),t)}},t)}var Le="isAlpha";function $e(e,t){return"string"==typeof e&&x().isAlpha(e,t)}function we(e,t){return A({name:Le,constraints:[e],validator:{validate:function(e,t){return $e(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain only letters (a-zA-Z)"}),t)}},t)}var Be="isAlphanumeric";function Ge(e,t){return"string"==typeof e&&x().isAlphanumeric(e,t)}function je(e,t){return A({name:Be,constraints:[e],validator:{validate:function(e,t){return Ge(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain only letters and numbers"}),t)}},t)}var Ue="isDecimal";function ke(e,t){return"string"==typeof e&&x().isDecimal(e,t)}function Ve(e,t){return A({name:Ue,constraints:[e],validator:{validate:function(e,t){return ke(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property is not a valid decimal number."}),t)}},t)}var He="isAscii";function We(e){return"string"==typeof e&&x().isAscii(e)}function Ke(e){return A({name:He,validator:{validate:function(e,t){return We(e)},defaultMessage:E((function(e){return e+"$property must contain only ASCII characters"}),e)}},e)}var ze="isBase64";function Ye(e){return"string"==typeof e&&x().isBase64(e)}function Xe(e){return A({name:ze,validator:{validate:function(e,t){return Ye(e)},defaultMessage:E((function(e){return e+"$property must be base64 encoded"}),e)}},e)}var qe="isByteLength";function Ze(e,t,r){return"string"==typeof e&&x().isByteLength(e,{min:t,max:r})}function Je(e,t,r){return A({name:qe,constraints:[e,t],validator:{validate:function(e,t){return Ze(e,t.constraints[0],t.constraints[1])},defaultMessage:E((function(e){return e+"$property's byte length must fall into ($constraint1, $constraint2) range"}),r)}},r)}var Qe="isCreditCard";function et(e){return"string"==typeof e&&x().isCreditCard(e)}function tt(e){return A({name:Qe,validator:{validate:function(e,t){return et(e)},defaultMessage:E((function(e){return e+"$property must be a credit card"}),e)}},e)}var rt="isCurrency";function nt(e,t){return"string"==typeof e&&x().isCurrency(e,t)}function ot(e,t){return A({name:rt,constraints:[e],validator:{validate:function(e,t){return nt(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a currency"}),t)}},t)}var it="isEmail";function at(e,t){return"string"==typeof e&&x().isEmail(e,t)}function st(e,t){return A({name:it,constraints:[e],validator:{validate:function(e,t){return at(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an email"}),t)}},t)}var ut="isFqdn";function lt(e,t){return"string"==typeof e&&x().isFQDN(e,t)}function dt(e,t){return A({name:ut,constraints:[e],validator:{validate:function(e,t){return lt(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a valid domain name"}),t)}},t)}var ct="isFullWidth";function pt(e){return"string"==typeof e&&x().isFullWidth(e)}function gt(e){return A({name:ct,validator:{validate:function(e,t){return pt(e)},defaultMessage:E((function(e){return e+"$property must contain a full-width characters"}),e)}},e)}var ft="isHalfWidth";function mt(e){return"string"==typeof e&&x().isHalfWidth(e)}function ht(e){return A({name:ft,validator:{validate:function(e,t){return mt(e)},defaultMessage:E((function(e){return e+"$property must contain a half-width characters"}),e)}},e)}var yt="isVariableWidth";function bt(e){return"string"==typeof e&&x().isVariableWidth(e)}function St(e){return A({name:yt,validator:{validate:function(e,t){return bt(e)},defaultMessage:E((function(e){return e+"$property must contain a full-width and half-width characters"}),e)}},e)}var _t="isHexColor";function Ct(e){return"string"==typeof e&&x().isHexColor(e)}function Et(e){return A({name:_t,validator:{validate:function(e,t){return Ct(e)},defaultMessage:E((function(e){return e+"$property must be a hexadecimal color"}),e)}},e)}var At="isHexadecimal";function Nt(e){return"string"==typeof e&&x().isHexadecimal(e)}function vt(e){return A({name:At,validator:{validate:function(e,t){return Nt(e)},defaultMessage:E((function(e){return e+"$property must be a hexadecimal number"}),e)}},e)}function Tt(e){return!!e&&("each"in e||"message"in e||"groups"in e||"always"in e||"context"in e)}var It="isMacAddress";function Ot(e,t){return"string"==typeof e&&x().isMACAddress(e,t)}function Dt(e,t){var r=Tt(e)?void 0:e,n=Tt(e)?e:t;return A({name:It,constraints:[r],validator:{validate:function(e,t){return Ot(e,r)},defaultMessage:E((function(e){return e+"$property must be a MAC Address"}),n)}},n)}var Rt="isIp";function Pt(e,t){var r=t?""+t:void 0;return"string"==typeof e&&x().isIP(e,r)}function Mt(e,t){return A({name:Rt,constraints:[e],validator:{validate:function(e,t){return Pt(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an ip address"}),t)}},t)}var Ft="isPort";function xt(e){return"string"==typeof e&&x().isPort(e)}function Lt(e){return A({name:Ft,validator:{validate:function(e,t){return xt(e)},defaultMessage:E((function(e){return e+"$property must be a port"}),e)}},e)}var $t="isIsbn";function wt(e,t){var r=t?""+t:void 0;return"string"==typeof e&&x().isISBN(e,r)}function Bt(e,t){return A({name:$t,constraints:[e],validator:{validate:function(e,t){return wt(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an ISBN"}),t)}},t)}var Gt="isIsin";function jt(e){return"string"==typeof e&&x().isISIN(e)}function Ut(e){return A({name:Gt,validator:{validate:function(e,t){return jt(e)},defaultMessage:E((function(e){return e+"$property must be an ISIN (stock/security identifier)"}),e)}},e)}var kt="isIso8601";function Vt(e,t){return"string"==typeof e&&x().isISO8601(e,t)}function Ht(e,t){return A({name:kt,constraints:[e],validator:{validate:function(e,t){return Vt(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a valid ISO 8601 date string"}),t)}},t)}var Wt="isJson";function Kt(e){return"string"==typeof e&&x().isJSON(e)}function zt(e){return A({name:Wt,validator:{validate:function(e,t){return Kt(e)},defaultMessage:E((function(e){return e+"$property must be a json string"}),e)}},e)}var Yt="isJwt";function Xt(e){return"string"==typeof e&&x().isJWT(e)}function qt(e){return A({name:Yt,validator:{validate:function(e,t){return Xt(e)},defaultMessage:E((function(e){return e+"$property must be a jwt string"}),e)}},e)}var Zt="isLowercase";function Jt(e){return"string"==typeof e&&x().isLowercase(e)}function Qt(e){return A({name:Zt,validator:{validate:function(e,t){return Jt(e)},defaultMessage:E((function(e){return e+"$property must be a lowercase string"}),e)}},e)}var er="isMobilePhone";function tr(e,t,r){return"string"==typeof e&&x().isMobilePhone(e,t,r)}function rr(e,t,r){return A({name:er,constraints:[e,t],validator:{validate:function(e,t){return tr(e,t.constraints[0],t.constraints[1])},defaultMessage:E((function(e){return e+"$property must be a phone number"}),r)}},r)}var nr="isISO31661Alpha2";function or(e){return"string"==typeof e&&x().isISO31661Alpha2(e)}function ir(e){return A({name:nr,validator:{validate:function(e,t){return or(e)},defaultMessage:E((function(e){return e+"$property must be a valid ISO31661 Alpha2 code"}),e)}},e)}var ar="isISO31661Alpha3";function sr(e){return"string"==typeof e&&x().isISO31661Alpha3(e)}function ur(e){return A({name:ar,validator:{validate:function(e,t){return sr(e)},defaultMessage:E((function(e){return e+"$property must be a valid ISO31661 Alpha3 code"}),e)}},e)}var lr="isMongoId";function dr(e){return"string"==typeof e&&x().isMongoId(e)}function cr(e){return A({name:lr,validator:{validate:function(e,t){return dr(e)},defaultMessage:E((function(e){return e+"$property must be a mongodb id"}),e)}},e)}var pr="isMultibyte";function gr(e){return"string"==typeof e&&x().isMultibyte(e)}function fr(e){return A({name:pr,validator:{validate:function(e,t){return gr(e)},defaultMessage:E((function(e){return e+"$property must contain one or more multibyte chars"}),e)}},e)}var mr="isSurrogatePair";function hr(e){return"string"==typeof e&&x().isSurrogatePair(e)}function yr(e){return A({name:mr,validator:{validate:function(e,t){return hr(e)},defaultMessage:E((function(e){return e+"$property must contain any surrogate pairs chars"}),e)}},e)}var br="isUrl";function Sr(e,t){return"string"==typeof e&&x().isURL(e,t)}function _r(e,t){return A({name:br,constraints:[e],validator:{validate:function(e,t){return Sr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an URL address"}),t)}},t)}var Cr="isUuid";function Er(e,t){return"string"==typeof e&&x().isUUID(e,t)}function Ar(e,t){return A({name:Cr,constraints:[e],validator:{validate:function(e,t){return Er(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an UUID"}),t)}},t)}var Nr="IsFirebasePushId";function vr(e){return"string"==typeof e&&20===e.length&&/^[a-zA-Z0-9_-]*$/.test(e)}function Tr(e){return A({name:Nr,validator:{validate:function(e,t){return vr(e)},defaultMessage:E((function(e){return e+"$property must be a Firebase Push Id"}),e)}},e)}var Ir="isUppercase";function Or(e){return"string"==typeof e&&x().isUppercase(e)}function Dr(e){return A({name:Ir,validator:{validate:function(e,t){return Or(e)},defaultMessage:E((function(e){return e+"$property must be uppercase"}),e)}},e)}var Rr="length";function Pr(e,t,r){return"string"==typeof e&&x().isLength(e,{min:t,max:r})}function Mr(e,t,r){return A({name:Rr,constraints:[e,t],validator:{validate:function(e,t){return Pr(e,t.constraints[0],t.constraints[1])},defaultMessage:E((function(e,t){var r=null!==t.constraints[0]&&void 0!==t.constraints[0],n=null!==t.constraints[1]&&void 0!==t.constraints[1];return r&&(!t.value||t.value.lengtht.constraints[1]?e+"$property must be shorter than or equal to $constraint2 characters":e+"$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters"}),r)}},r)}var Fr="maxLength";function xr(e,t){return"string"==typeof e&&x().isLength(e,{min:0,max:t})}function Lr(e,t){return A({name:Fr,constraints:[e],validator:{validate:function(e,t){return xr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be shorter than or equal to $constraint1 characters"}),t)}},t)}var $r="minLength";function wr(e,t){return"string"==typeof e&&x().isLength(e,{min:t})}function Br(e,t){return A({name:$r,constraints:[e],validator:{validate:function(e,t){return wr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be longer than or equal to $constraint1 characters"}),t)}},t)}var Gr="matches";function jr(e,t,r){return"string"==typeof e&&x().matches(e,t,r)}function Ur(e,t,r){var n;return t&&t instanceof Object&&!r?r=t:n=t,A({name:Gr,constraints:[e,n],validator:{validate:function(e,t){return jr(e,t.constraints[0],t.constraints[0])},defaultMessage:E((function(e,t){return e+"$property must match $constraint1 regular expression"}),r)}},r)}var kr=r(3791),Vr="isPhoneNumber";function Hr(e,t){var r=kr.PhoneNumberUtil.getInstance();try{var n=r.parseAndKeepRawInput(e,t);return r.isValidNumber(n)}catch(e){return!1}}function Wr(e,t){return A({name:Vr,constraints:[e],validator:{validate:function(e,t){return Hr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a valid phone number"}),t)}},t)}var Kr="isMilitaryTime";function zr(e){return"string"==typeof e&&x().matches(e,/^([01]\d|2[0-3]):?([0-5]\d)$/)}function Yr(e){return A({name:Kr,validator:{validate:function(e,t){return zr(e)},defaultMessage:E((function(e){return e+"$property must be a valid representation of military time in the format HH:MM"}),e)}},e)}var Xr="isHash";function qr(e,t){return"string"==typeof e&&x().isHash(e,t)}function Zr(e,t){return A({name:Xr,constraints:[e],validator:{validate:function(e,t){return qr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a hash of type $constraint1"}),t)}},t)}var Jr="isISSN";function Qr(e,t){return"string"==typeof e&&x().isISSN(e,t)}function en(e,t){return A({name:Jr,constraints:[e],validator:{validate:function(e,t){return Qr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a ISSN"}),t)}},t)}var tn="isDateString";function rn(e){return"string"==typeof e&&/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[\+\-][0-2]\d(?:\:[0-5]\d)?)?$/g.test(e)}function nn(e){return A({name:tn,validator:{validate:function(e,t){return rn(e)},defaultMessage:E((function(e){return e+"$property must be a ISOString"}),e)}},e)}var on="isBooleanString";function an(e){return"string"==typeof e&&x().isBoolean(e)}function sn(e){return A({name:on,validator:{validate:function(e,t){return an(e)},defaultMessage:E((function(e){return e+"$property must be a boolean string"}),e)}},e)}var un="isNumberString";function ln(e,t){return"string"==typeof e&&x().isNumeric(e,t)}function dn(e,t){return A({name:un,constraints:[e],validator:{validate:function(e,t){return ln(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a number string"}),t)}},t)}var cn="isBase32";function pn(e){return"string"==typeof e&&x().isBase32(e)}function gn(e){return A({name:cn,validator:{validate:function(e,t){return pn(e)},defaultMessage:E((function(e){return e+"$property must be base32 encoded"}),e)}},e)}var fn="isBIC";function mn(e){return"string"==typeof e&&x().isBIC(e)}function hn(e){return A({name:fn,validator:{validate:function(e,t){return mn(e)},defaultMessage:E((function(e){return e+"$property must be a BIC or SWIFT code"}),e)}},e)}var yn="isBtcAddress";function bn(e){return"string"==typeof e&&x().isBtcAddress(e)}function Sn(e){return A({name:yn,validator:{validate:function(e,t){return bn(e)},defaultMessage:E((function(e){return e+"$property must be a BTC address"}),e)}},e)}var _n="isDataURI";function Cn(e){return"string"==typeof e&&x().isDataURI(e)}function En(e){return A({name:_n,validator:{validate:function(e,t){return Cn(e)},defaultMessage:E((function(e){return e+"$property must be a data uri format"}),e)}},e)}var An="isEAN";function Nn(e){return"string"==typeof e&&x().isEAN(e)}function vn(e){return A({name:An,validator:{validate:function(e,t){return Nn(e)},defaultMessage:E((function(e){return e+"$property must be an EAN (European Article Number)"}),e)}},e)}var Tn="isEthereumAddress";function In(e){return"string"==typeof e&&x().isEthereumAddress(e)}function On(e){return A({name:Tn,validator:{validate:function(e,t){return In(e)},defaultMessage:E((function(e){return e+"$property must be an Ethereum address"}),e)}},e)}var Dn="isHSL";function Rn(e){return"string"==typeof e&&x().isHSL(e)}function Pn(e){return A({name:Dn,validator:{validate:function(e,t){return Rn(e)},defaultMessage:E((function(e){return e+"$property must be a HSL color"}),e)}},e)}var Mn="isIBAN";function Fn(e){return"string"==typeof e&&x().isIBAN(e)}function xn(e){return A({name:Mn,validator:{validate:function(e,t){return Fn(e)},defaultMessage:E((function(e){return e+"$property must be an IBAN"}),e)}},e)}var Ln="isIdentityCard";function $n(e,t){return"string"==typeof e&&x().isIdentityCard(e,t)}function wn(e,t){return A({name:Ln,constraints:[e],validator:{validate:function(e,t){return $n(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a identity card number"}),t)}},t)}var Bn="isISRC";function Gn(e){return"string"==typeof e&&x().isISRC(e)}function jn(e){return A({name:Bn,validator:{validate:function(e,t){return Gn(e)},defaultMessage:E((function(e){return e+"$property must be an ISRC"}),e)}},e)}var Un="isLocale";function kn(e){return"string"==typeof e&&x().isLocale(e)}function Vn(e){return A({name:Un,validator:{validate:function(e,t){return kn(e)},defaultMessage:E((function(e){return e+"$property must be locale"}),e)}},e)}var Hn="isMagnetURI";function Wn(e){return"string"==typeof e&&x().isMagnetURI(e)}function Kn(e){return A({name:Hn,validator:{validate:function(e,t){return Wn(e)},defaultMessage:E((function(e){return e+"$property must be magnet uri format"}),e)}},e)}var zn="isMimeType";function Yn(e){return"string"==typeof e&&x().isMimeType(e)}function Xn(e){return A({name:zn,validator:{validate:function(e,t){return Yn(e)},defaultMessage:E((function(e){return e+"$property must be MIME type format"}),e)}},e)}var qn="isOctal";function Zn(e){return"string"==typeof e&&x().isOctal(e)}function Jn(e){return A({name:qn,validator:{validate:function(e,t){return Zn(e)},defaultMessage:E((function(e){return e+"$property must be valid octal number"}),e)}},e)}var Qn="isPassportNumber";function eo(e,t){return"string"==typeof e&&x().isPassportNumber(e,t)}function to(e,t){return A({name:Qn,constraints:[e],validator:{validate:function(e,t){return eo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be valid passport number"}),t)}},t)}var ro="isPostalCode";function no(e,t){return"string"==typeof e&&x().isPostalCode(e,t)}function oo(e,t){return A({name:ro,constraints:[e],validator:{validate:function(e,t){return no(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a postal code"}),t)}},t)}var io="isRFC3339";function ao(e){return"string"==typeof e&&x().isRFC3339(e)}function so(e){return A({name:io,validator:{validate:function(e,t){return ao(e)},defaultMessage:E((function(e){return e+"$property must be RFC 3339 date"}),e)}},e)}var uo="isRgbColor";function lo(e,t){return"string"==typeof e&&x().isRgbColor(e,t)}function co(e,t){return A({name:uo,constraints:[e],validator:{validate:function(e,t){return lo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be RGB color"}),t)}},t)}var po="isSemVer";function go(e){return"string"==typeof e&&x().isSemVer(e)}function fo(e){return A({name:po,validator:{validate:function(e,t){return go(e)},defaultMessage:E((function(e){return e+"$property must be a Semantic Versioning Specification"}),e)}},e)}var mo="isBoolean";function ho(e){return e instanceof Boolean||"boolean"==typeof e}function yo(e){return A({name:mo,validator:{validate:function(e,t){return ho(e)},defaultMessage:E((function(e){return e+"$property must be a boolean value"}),e)}},e)}var bo="isDate";function So(e){return e instanceof Date&&!isNaN(e.getTime())}function _o(e){return A({name:bo,validator:{validate:function(e,t){return So(e)},defaultMessage:E((function(e){return e+"$property must be a Date instance"}),e)}},e)}var Co="isNumber";function Eo(e,t){if(void 0===t&&(t={}),"number"!=typeof e)return!1;if(e===1/0||e===-1/0)return t.allowInfinity;if(Number.isNaN(e))return t.allowNaN;if(void 0!==t.maxDecimalPlaces){var r=0;if(e%1!=0&&(r=e.toString().split(".")[1].length),r>t.maxDecimalPlaces)return!1}return Number.isFinite(e)}function Ao(e,t){return void 0===e&&(e={}),A({name:Co,constraints:[e],validator:{validate:function(e,t){return Eo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a number conforming to the specified constraints"}),t)}},t)}var No="isEnum";function vo(e,t){return Object.keys(t).map((function(e){return t[e]})).indexOf(e)>=0}function To(e,t){return A({name:No,constraints:[e],validator:{validate:function(e,t){return vo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a valid enum value"}),t)}},t)}var Io="isInt";function Oo(e){return"number"==typeof e&&Number.isInteger(e)}function Do(e){return A({name:Io,validator:{validate:function(e,t){return Oo(e)},defaultMessage:E((function(e){return e+"$property must be an integer number"}),e)}},e)}var Ro="isString";function Po(e){return e instanceof String||"string"==typeof e}function Mo(e){return A({name:Ro,validator:{validate:function(e,t){return Po(e)},defaultMessage:E((function(e){return e+"$property must be a string"}),e)}},e)}var Fo="isArray";function xo(e){return e instanceof Array}function Lo(e){return A({name:Fo,validator:{validate:function(e,t){return xo(e)},defaultMessage:E((function(e){return e+"$property must be an array"}),e)}},e)}var $o="isObject";function wo(e){return null!=e&&("object"==typeof e||"function"==typeof e)&&!Array.isArray(e)}function Bo(e){return A({name:$o,validator:{validate:function(e,t){return wo(e)},defaultMessage:E((function(e){return e+"$property must be an object"}),e)}},e)}var Go="arrayContains";function jo(e,t){return e instanceof Array&&t.every((function(t){return-1!==e.indexOf(t)}))}function Uo(e,t){return A({name:Go,constraints:[e],validator:{validate:function(e,t){return jo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain $constraint1 values"}),t)}},t)}var ko="arrayNotContains";function Vo(e,t){return e instanceof Array&&t.every((function(t){return-1===e.indexOf(t)}))}function Ho(e,t){return A({name:ko,constraints:[e],validator:{validate:function(e,t){return Vo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property should not contain $constraint1 values"}),t)}},t)}var Wo="arrayNotEmpty";function Ko(e){return e instanceof Array&&e.length>0}function zo(e){return A({name:Wo,validator:{validate:function(e,t){return Ko(e)},defaultMessage:E((function(e){return e+"$property should not be empty"}),e)}},e)}var Yo="arrayMinSize";function Xo(e,t){return e instanceof Array&&e.length>=t}function qo(e,t){return A({name:Yo,constraints:[e],validator:{validate:function(e,t){return Xo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain at least $constraint1 elements"}),t)}},t)}var Zo="arrayMaxSize";function Jo(e,t){return e instanceof Array&&e.length<=t}function Qo(e,t){return A({name:Zo,constraints:[e],validator:{validate:function(e,t){return Jo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain not more than $constraint1 elements"}),t)}},t)}var ei="arrayUnique";function ti(e){if(!(e instanceof Array))return!1;var t=e.filter((function(e,t,r){return r.indexOf(e)===t}));return e.length===t.length}function ri(e){return A({name:ei,validator:{validate:function(e,t){return ti(e)},defaultMessage:E((function(e){return e+"All $property's elements must be unique"}),e)}},e)}var ni="isNotEmptyObject";function oi(e){if(!wo(e))return!1;for(var t in e)if(e.hasOwnProperty(t))return!0;return!1}function ii(e){return A({name:ni,validator:{validate:function(e,t){return oi(e)},defaultMessage:E((function(e){return e+"$property must be a non-empty object"}),e)}},e)}var ai="isInstance";function si(e,t){return t&&"function"==typeof t&&e instanceof t}function ui(e,t){return A({name:ai,constraints:[e],validator:{validate:function(e,t){return si(e,t.constraints[0])},defaultMessage:E((function(e,t){return t.constraints[0]?e+"$property must be an instance of "+t.constraints[0].name:e+(ai+" decorator expects and object as value, but got falsy value.")}),t)}},t)}function li(e,t,r){return"string"==typeof e?b(m).validate(e,t,r):b(m).validate(e,t)}function di(e,t,r){return"string"==typeof e?b(m).validateOrReject(e,t,r):b(m).validateOrReject(e,t)}function ci(e,t,r){return"string"==typeof e?b(m).validateSync(e,t,r):b(m).validateSync(e,t)}function pi(e){i().addValidationSchema(e)}},8168:(e,t,r)=>{const n=r(8874),o={};for(const e of Object.keys(n))o[n[e]]=e;const i={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=i;for(const e of Object.keys(i)){if(!("channels"in i[e]))throw new Error("missing channels property: "+e);if(!("labels"in i[e]))throw new Error("missing channel labels property: "+e);if(i[e].labels.length!==i[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:r}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:r})}i.rgb.hsl=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,o=Math.min(t,r,n),i=Math.max(t,r,n),a=i-o;let s,u;i===o?s=0:t===i?s=(r-n)/a:r===i?s=2+(n-t)/a:n===i&&(s=4+(t-r)/a),s=Math.min(60*s,360),s<0&&(s+=360);const l=(o+i)/2;return u=i===o?0:l<=.5?a/(i+o):a/(2-i-o),[s,100*u,100*l]},i.rgb.hsv=function(e){let t,r,n,o,i;const a=e[0]/255,s=e[1]/255,u=e[2]/255,l=Math.max(a,s,u),d=l-Math.min(a,s,u),c=function(e){return(l-e)/6/d+.5};return 0===d?(o=0,i=0):(i=d/l,t=c(a),r=c(s),n=c(u),a===l?o=n-r:s===l?o=1/3+t-n:u===l&&(o=2/3+r-t),o<0?o+=1:o>1&&(o-=1)),[360*o,100*i,100*l]},i.rgb.hwb=function(e){const t=e[0],r=e[1];let n=e[2];const o=i.rgb.hsl(e)[0],a=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[o,100*a,100*n]},i.rgb.cmyk=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,o=Math.min(1-t,1-r,1-n);return[100*((1-t-o)/(1-o)||0),100*((1-r-o)/(1-o)||0),100*((1-n-o)/(1-o)||0),100*o]},i.rgb.keyword=function(e){const t=o[e];if(t)return t;let r,i=1/0;for(const t of Object.keys(n)){const o=(s=n[t],((a=e)[0]-s[0])**2+(a[1]-s[1])**2+(a[2]-s[2])**2);o.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,[100*(.4124*t+.3576*r+.1805*n),100*(.2126*t+.7152*r+.0722*n),100*(.0193*t+.1192*r+.9505*n)]},i.rgb.lab=function(e){const t=i.rgb.xyz(e);let r=t[0],n=t[1],o=t[2];return r/=95.047,n/=100,o/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,[116*n-16,500*(r-n),200*(n-o)]},i.hsl.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;let o,i,a;if(0===r)return a=255*n,[a,a,a];o=n<.5?n*(1+r):n+r-n*r;const s=2*n-o,u=[0,0,0];for(let e=0;e<3;e++)i=t+1/3*-(e-1),i<0&&i++,i>1&&i--,a=6*i<1?s+6*(o-s)*i:2*i<1?o:3*i<2?s+(o-s)*(2/3-i)*6:s,u[e]=255*a;return u},i.hsl.hsv=function(e){const t=e[0];let r=e[1]/100,n=e[2]/100,o=r;const i=Math.max(n,.01);return n*=2,r*=n<=1?n:2-n,o*=i<=1?i:2-i,[t,100*(0===n?2*o/(i+o):2*r/(n+r)),(n+r)/2*100]},i.hsv.rgb=function(e){const t=e[0]/60,r=e[1]/100;let n=e[2]/100;const o=Math.floor(t)%6,i=t-Math.floor(t),a=255*n*(1-r),s=255*n*(1-r*i),u=255*n*(1-r*(1-i));switch(n*=255,o){case 0:return[n,u,a];case 1:return[s,n,a];case 2:return[a,n,u];case 3:return[a,s,n];case 4:return[u,a,n];case 5:return[n,a,s]}},i.hsv.hsl=function(e){const t=e[0],r=e[1]/100,n=e[2]/100,o=Math.max(n,.01);let i,a;a=(2-r)*n;const s=(2-r)*o;return i=r*o,i/=s<=1?s:2-s,i=i||0,a/=2,[t,100*i,100*a]},i.hwb.rgb=function(e){const t=e[0]/360;let r=e[1]/100,n=e[2]/100;const o=r+n;let i;o>1&&(r/=o,n/=o);const a=Math.floor(6*t),s=1-n;i=6*t-a,0!=(1&a)&&(i=1-i);const u=r+i*(s-r);let l,d,c;switch(a){default:case 6:case 0:l=s,d=u,c=r;break;case 1:l=u,d=s,c=r;break;case 2:l=r,d=s,c=u;break;case 3:l=r,d=u,c=s;break;case 4:l=u,d=r,c=s;break;case 5:l=s,d=r,c=u}return[255*l,255*d,255*c]},i.cmyk.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100,o=e[3]/100;return[255*(1-Math.min(1,t*(1-o)+o)),255*(1-Math.min(1,r*(1-o)+o)),255*(1-Math.min(1,n*(1-o)+o))]},i.xyz.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100;let o,i,a;return o=3.2406*t+-1.5372*r+-.4986*n,i=-.9689*t+1.8758*r+.0415*n,a=.0557*t+-.204*r+1.057*n,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,o=Math.min(Math.max(0,o),1),i=Math.min(Math.max(0,i),1),a=Math.min(Math.max(0,a),1),[255*o,255*i,255*a]},i.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];return t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,[116*r-16,500*(t-r),200*(r-n)]},i.lab.xyz=function(e){let t,r,n;r=(e[0]+16)/116,t=e[1]/500+r,n=r-e[2]/200;const o=r**3,i=t**3,a=n**3;return r=o>.008856?o:(r-16/116)/7.787,t=i>.008856?i:(t-16/116)/7.787,n=a>.008856?a:(n-16/116)/7.787,t*=95.047,r*=100,n*=108.883,[t,r,n]},i.lab.lch=function(e){const t=e[0],r=e[1],n=e[2];let o;return o=360*Math.atan2(n,r)/2/Math.PI,o<0&&(o+=360),[t,Math.sqrt(r*r+n*n),o]},i.lch.lab=function(e){const t=e[0],r=e[1],n=e[2]/360*2*Math.PI;return[t,r*Math.cos(n),r*Math.sin(n)]},i.rgb.ansi16=function(e,t=null){const[r,n,o]=e;let a=null===t?i.rgb.hsv(e)[2]:t;if(a=Math.round(a/50),0===a)return 30;let s=30+(Math.round(o/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return 2===a&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){const t=e[0],r=e[1],n=e[2];return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},i.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const r=.5*(1+~~(e>50));return[(1&t)*r*255,(t>>1&1)*r*255,(t>>2&1)*r*255]},i.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;return e-=16,[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},i.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];3===t[0].length&&(r=r.split("").map((e=>e+e)).join(""));const n=parseInt(r,16);return[n>>16&255,n>>8&255,255&n]},i.rgb.hcg=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,o=Math.max(Math.max(t,r),n),i=Math.min(Math.min(t,r),n),a=o-i;let s,u;return s=a<1?i/(1-a):0,u=a<=0?0:o===t?(r-n)/a%6:o===r?2+(n-t)/a:4+(t-r)/a,u/=6,u%=1,[360*u,100*a,100*s]},i.hsl.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r);let o=0;return n<1&&(o=(r-.5*n)/(1-n)),[e[0],100*n,100*o]},i.hsv.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=t*r;let o=0;return n<1&&(o=(r-n)/(1-n)),[e[0],100*n,100*o]},i.hcg.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;if(0===r)return[255*n,255*n,255*n];const o=[0,0,0],i=t%1*6,a=i%1,s=1-a;let u=0;switch(Math.floor(i)){case 0:o[0]=1,o[1]=a,o[2]=0;break;case 1:o[0]=s,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=a;break;case 3:o[0]=0,o[1]=s,o[2]=1;break;case 4:o[0]=a,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=s}return u=(1-r)*n,[255*(r*o[0]+u),255*(r*o[1]+u),255*(r*o[2]+u)]},i.hcg.hsv=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);let n=0;return r>0&&(n=t/r),[e[0],100*n,100*r]},i.hcg.hsl=function(e){const t=e[1]/100,r=e[2]/100*(1-t)+.5*t;let n=0;return r>0&&r<.5?n=t/(2*r):r>=.5&&r<1&&(n=t/(2*(1-r))),[e[0],100*n,100*r]},i.hcg.hwb=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);return[e[0],100*(r-t),100*(1-r)]},i.hwb.hcg=function(e){const t=e[1]/100,r=1-e[2]/100,n=r-t;let o=0;return n<1&&(o=(r-n)/(1-n)),[e[0],100*n,100*o]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=function(e){return[0,0,e[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},2085:(e,t,r)=>{const n=r(8168),o=r(4111),i={};Object.keys(n).forEach((e=>{i[e]={},Object.defineProperty(i[e],"channels",{value:n[e].channels}),Object.defineProperty(i[e],"labels",{value:n[e].labels});const t=o(e);Object.keys(t).forEach((r=>{const n=t[r];i[e][r]=function(e){const t=function(...t){const r=t[0];if(null==r)return r;r.length>1&&(t=r);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t1&&(t=r),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)}))})),e.exports=i},4111:(e,t,r)=>{const n=r(8168);function o(e,t){return function(r){return t(e(r))}}function i(e,t){const r=[t[e].parent,e];let i=n[t[e].parent][e],a=t[e].parent;for(;t[a].parent;)r.unshift(t[a].parent),i=o(n[t[a].parent][a],i),a=t[a].parent;return i.conversion=r,i}e.exports=function(e){const t=function(e){const t=function(){const e={},t=Object.keys(n);for(let r=t.length,n=0;n{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},1012:e=>{var t,r;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],r=0,n=0;r>>5]|=e[r]<<24-n%32;return t},wordsToBytes:function(e){for(var t=[],r=0;r<32*e.length;r+=8)t.push(e[r>>>5]>>>24-r%32&255);return t},bytesToHex:function(e){for(var t=[],r=0;r>>4).toString(16)),t.push((15&e[r]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],r=0;r>>6*(3-i)&63)):r.push("=");return r.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var r=[],n=0,o=0;n>>6-2*o);return r}},e.exports=r},4289:(e,t,r)=>{"use strict";var n=r(2215),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,u=s&&function(){var e={};try{for(var t in s(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),l=function(e,t,r,n){var o;(!(t in e)||"function"==typeof(o=n)&&"[object Function]"===i.call(o)&&n())&&(u?s(e,t,{configurable:!0,enumerable:!1,value:r,writable:!0}):e[t]=r)},d=function(e,t){var r=arguments.length>2?arguments[2]:{},i=n(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s{"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var r=Object(e),n=1;n{"use strict";const n=r(1509);class o{constructor(e,t,r,n,o,i){this.type=e,this.name=t,this.node=r,this.parent=n,this.index=o,this.kind=i}}e.exports={ParameterDefinition:class extends o{constructor(e,t,r,o){super(n.Parameter,e,t,null,r,null),this.rest=o}},Definition:o}},5048:(e,t,r)=>{"use strict";const n=r(9282),o=r(4140),i=r(1625),a=r(6469),s=r(1509),u=r(5099).Scope,l=r(2245).i8;function d(e,t){function r(e){return"object"==typeof e&&e instanceof Object&&!(e instanceof Array)&&!(e instanceof RegExp)}for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)){const o=t[n];r(o)?r(e[n])?d(e[n],o):e[n]=d({},o):e[n]=o}return e}e.exports={version:l,Reference:a,Variable:s,Scope:u,ScopeManager:o,analyze:function(e,t){const r=d({optimistic:!1,directive:!1,nodejsScope:!1,impliedStrict:!1,sourceType:"script",ecmaVersion:5,childVisitorKeys:null,fallback:"iteration"},t),a=new o(r);return new i(r,a).visit(e),n(null===a.__currentScope,"currentScope should be null."),a}}},9851:(e,t,r)=>{"use strict";const n=r(7901).Syntax,o=r(8192);class i extends o.Visitor{static isPattern(e){const t=e.type;return t===n.Identifier||t===n.ObjectPattern||t===n.ArrayPattern||t===n.SpreadElement||t===n.RestElement||t===n.AssignmentPattern}constructor(e,t,r){super(null,e),this.rootPattern=t,this.callback=r,this.assignments=[],this.rightHandNodes=[],this.restElements=[]}Identifier(e){const t=(r=this.restElements)[r.length-1]||null;var r;this.callback(e,{topLevel:e===this.rootPattern,rest:null!=t&&t.argument===e,assignments:this.assignments})}Property(e){e.computed&&this.rightHandNodes.push(e.key),this.visit(e.value)}ArrayPattern(e){for(let t=0,r=e.elements.length;t{this.rightHandNodes.push(e)})),this.visit(e.callee)}}e.exports=i},6469:e=>{"use strict";class t{constructor(e,t,r,n,o,i,a){this.identifier=e,this.from=t,this.tainted=!1,this.resolved=null,this.flag=r,this.isWrite()&&(this.writeExpr=n,this.partial=i,this.init=a),this.__maybeImplicitGlobal=o}isStatic(){return!this.tainted&&this.resolved&&this.resolved.scope.isStatic()}isWrite(){return!!(this.flag&t.WRITE)}isRead(){return!!(this.flag&t.READ)}isReadOnly(){return this.flag===t.READ}isWriteOnly(){return this.flag===t.WRITE}isReadWrite(){return this.flag===t.RW}}t.READ=1,t.WRITE=2,t.RW=3,e.exports=t},1625:(e,t,r)=>{"use strict";const n=r(7901).Syntax,o=r(8192),i=r(6469),a=r(1509),s=r(9851),u=r(1300),l=r(9282),d=u.ParameterDefinition,c=u.Definition;class p extends o.Visitor{constructor(e,t){super(null,t.options),this.declaration=e,this.referencer=t}visitImport(e,t){this.referencer.visitPattern(e,(e=>{this.referencer.currentScope().__define(e,new c(a.ImportBinding,e,t,this.declaration,null,null))}))}ImportNamespaceSpecifier(e){const t=e.local||e.id;t&&this.visitImport(t,e)}ImportDefaultSpecifier(e){const t=e.local||e.id;this.visitImport(t,e)}ImportSpecifier(e){const t=e.local||e.id;e.name?this.visitImport(e.name,e):this.visitImport(t,e)}}class g extends o.Visitor{constructor(e,t){super(null,e),this.options=e,this.scopeManager=t,this.parent=null,this.isInnerMethodDefinition=!1}currentScope(){return this.scopeManager.__currentScope}close(e){for(;this.currentScope()&&e===this.currentScope().block;)this.scopeManager.__currentScope=this.currentScope().__close(this.scopeManager)}pushInnerMethodDefinition(e){const t=this.isInnerMethodDefinition;return this.isInnerMethodDefinition=e,t}popInnerMethodDefinition(e){this.isInnerMethodDefinition=e}referencingDefaultValue(e,t,r,n){const o=this.currentScope();t.forEach((t=>{o.__referencing(e,i.WRITE,t.right,r,e!==t.left,n)}))}visitPattern(e,t,r){let n=t,o=r;"function"==typeof t&&(o=t,n={processRightHandNodes:!1}),function(e,t,r,n){const o=new s(e,t,n);o.visit(t),null!=r&&o.rightHandNodes.forEach(r.visit,r)}(this.options,e,n.processRightHandNodes?this:null,o)}visitFunction(e){let t,r;e.type===n.FunctionDeclaration&&this.currentScope().__define(e.id,new c(a.FunctionName,e.id,e,null,null,null)),e.type===n.FunctionExpression&&e.id&&this.scopeManager.__nestFunctionExpressionNameScope(e),this.scopeManager.__nestFunctionScope(e,this.isInnerMethodDefinition);const o=this;function i(r,n){o.currentScope().__define(r,new d(r,e,t,n.rest)),o.referencingDefaultValue(r,n.assignments,null,!0)}for(t=0,r=e.params.length;t{this.currentScope().__define(t,new d(t,e,e.params.length,!0))})),e.body&&(e.body.type===n.BlockStatement?this.visitChildren(e.body):this.visit(e.body)),this.close(e)}visitClass(e){e.type===n.ClassDeclaration&&this.currentScope().__define(e.id,new c(a.ClassName,e.id,e,null,null,null)),this.visit(e.superClass),this.scopeManager.__nestClassScope(e),e.id&&this.currentScope().__define(e.id,new c(a.ClassName,e.id,e)),this.visit(e.body),this.close(e)}visitProperty(e){let t;e.computed&&this.visit(e.key);const r=e.type===n.MethodDefinition;r&&(t=this.pushInnerMethodDefinition(!0)),this.visit(e.value),r&&this.popInnerMethodDefinition(t)}visitForIn(e){e.left.type===n.VariableDeclaration&&"var"!==e.left.kind&&this.scopeManager.__nestForScope(e),e.left.type===n.VariableDeclaration?(this.visit(e.left),this.visitPattern(e.left.declarations[0].id,(t=>{this.currentScope().__referencing(t,i.WRITE,e.right,null,!0,!0)}))):this.visitPattern(e.left,{processRightHandNodes:!0},((t,r)=>{let n=null;this.currentScope().isStrict||(n={pattern:t,node:e}),this.referencingDefaultValue(t,r.assignments,n,!1),this.currentScope().__referencing(t,i.WRITE,e.right,n,!0,!1)})),this.visit(e.right),this.visit(e.body),this.close(e)}visitVariableDeclaration(e,t,r,n){const o=r.declarations[n],a=o.init;this.visitPattern(o.id,{processRightHandNodes:!0},((s,u)=>{e.__define(s,new c(t,s,o,r,n,r.kind)),this.referencingDefaultValue(s,u.assignments,null,!0),a&&this.currentScope().__referencing(s,i.WRITE,a,null,!u.topLevel,!0)}))}AssignmentExpression(e){s.isPattern(e.left)?"="===e.operator?this.visitPattern(e.left,{processRightHandNodes:!0},((t,r)=>{let n=null;this.currentScope().isStrict||(n={pattern:t,node:e}),this.referencingDefaultValue(t,r.assignments,n,!1),this.currentScope().__referencing(t,i.WRITE,e.right,n,!r.topLevel,!1)})):this.currentScope().__referencing(e.left,i.RW,e.right):this.visit(e.left),this.visit(e.right)}CatchClause(e){this.scopeManager.__nestCatchScope(e),this.visitPattern(e.param,{processRightHandNodes:!0},((t,r)=>{this.currentScope().__define(t,new c(a.CatchClause,e.param,e,null,null,null)),this.referencingDefaultValue(t,r.assignments,null,!0)})),this.visit(e.body),this.close(e)}Program(e){this.scopeManager.__nestGlobalScope(e),this.scopeManager.__isNodejsScope()&&(this.currentScope().isStrict=!1,this.scopeManager.__nestFunctionScope(e,!1)),this.scopeManager.__isES6()&&this.scopeManager.isModule()&&this.scopeManager.__nestModuleScope(e),this.scopeManager.isStrictModeSupported()&&this.scopeManager.isImpliedStrict()&&(this.currentScope().isStrict=!0),this.visitChildren(e),this.close(e)}Identifier(e){this.currentScope().__referencing(e)}UpdateExpression(e){s.isPattern(e.argument)?this.currentScope().__referencing(e.argument,i.RW,null):this.visitChildren(e)}MemberExpression(e){this.visit(e.object),e.computed&&this.visit(e.property)}Property(e){this.visitProperty(e)}MethodDefinition(e){this.visitProperty(e)}BreakStatement(){}ContinueStatement(){}LabeledStatement(e){this.visit(e.body)}ForStatement(e){e.init&&e.init.type===n.VariableDeclaration&&"var"!==e.init.kind&&this.scopeManager.__nestForScope(e),this.visitChildren(e),this.close(e)}ClassExpression(e){this.visitClass(e)}ClassDeclaration(e){this.visitClass(e)}CallExpression(e){this.scopeManager.__ignoreEval()||e.callee.type!==n.Identifier||"eval"!==e.callee.name||this.currentScope().variableScope.__detectEval(),this.visitChildren(e)}BlockStatement(e){this.scopeManager.__isES6()&&this.scopeManager.__nestBlockScope(e),this.visitChildren(e),this.close(e)}ThisExpression(){this.currentScope().variableScope.__detectThis()}WithStatement(e){this.visit(e.object),this.scopeManager.__nestWithScope(e),this.visit(e.body),this.close(e)}VariableDeclaration(e){const t="var"===e.kind?this.currentScope().variableScope:this.currentScope();for(let r=0,n=e.declarations.length;r{"use strict";const n=r(5099),o=r(9282),i=n.GlobalScope,a=n.CatchScope,s=n.WithScope,u=n.ModuleScope,l=n.ClassScope,d=n.SwitchScope,c=n.FunctionScope,p=n.ForScope,g=n.FunctionExpressionNameScope,f=n.BlockScope;e.exports=class{constructor(e){this.scopes=[],this.globalScope=null,this.__nodeToScope=new WeakMap,this.__currentScope=null,this.__options=e,this.__declaredVariables=new WeakMap}__useDirective(){return this.__options.directive}__isOptimistic(){return this.__options.optimistic}__ignoreEval(){return this.__options.ignoreEval}__isNodejsScope(){return this.__options.nodejsScope}isModule(){return"module"===this.__options.sourceType}isImpliedStrict(){return this.__options.impliedStrict}isStrictModeSupported(){return this.__options.ecmaVersion>=5}__get(e){return this.__nodeToScope.get(e)}getDeclaredVariables(e){return this.__declaredVariables.get(e)||[]}acquire(e,t){function r(e){return"function"!==e.type||!e.functionExpressionScope}const n=this.__get(e);if(!n||0===n.length)return null;if(1===n.length)return n[0];if(t)for(let e=n.length-1;e>=0;--e){const t=n[e];if(r(t))return t}else for(let e=0,t=n.length;e=6}}},5099:(e,t,r)=>{"use strict";const n=r(7901).Syntax,o=r(6469),i=r(1509),a=r(1300).Definition,s=r(9282);function u(e){return e.type===i.ClassName||e.type===i.Variable&&"var"!==e.parent.kind}class l{constructor(e,t,r,o,i){this.type=t,this.set=new Map,this.taints=new Map,this.dynamic="global"===this.type||"with"===this.type,this.block=o,this.through=[],this.variables=[],this.references=[],this.variableScope="global"===this.type||"function"===this.type||"module"===this.type?this:r.variableScope,this.functionExpressionScope=!1,this.directCallToEvalScope=!1,this.thisFound=!1,this.__left=[],this.upper=r,this.isStrict=function(e,t,r,o){let i;if(e.upper&&e.upper.isStrict)return!0;if(r)return!0;if("class"===e.type||"module"===e.type)return!0;if("block"===e.type||"switch"===e.type)return!1;if("function"===e.type){if(t.type===n.ArrowFunctionExpression&&t.body.type!==n.BlockStatement)return!1;if(i=t.type===n.Program?t:t.body,!i)return!1}else{if("global"!==e.type)return!1;i=t}if(o)for(let e=0,t=i.body.length;e0&&r.every(u)}__staticCloseRef(e){this.__resolve(e)||this.__delegateToUpperScope(e)}__dynamicCloseRef(e){let t=this;do{t.through.push(e),t=t.upper}while(t)}__globalCloseRef(e){this.__shouldStaticallyCloseForGlobal(e)?this.__staticCloseRef(e):this.__dynamicCloseRef(e)}__close(e){let t;t=this.__shouldStaticallyClose(e)?this.__staticCloseRef:"global"!==this.type?this.__dynamicCloseRef:this.__globalCloseRef;for(let e=0,r=this.__left.length;ee.name.range[0]>=r)))}},ForScope:class extends l{constructor(e,t,r){super(e,"for",t,r,!1)}},ClassScope:class extends l{constructor(e,t,r){super(e,"class",t,r,!1)}}}},1509:e=>{"use strict";class t{constructor(e,t){this.name=e,this.identifiers=[],this.references=[],this.defs=[],this.tainted=!1,this.stack=!0,this.scope=t}}t.CatchClause="CatchClause",t.Parameter="Parameter",t.FunctionName="FunctionName",t.ClassName="ClassName",t.Variable="Variable",t.ImportBinding="ImportBinding",t.ImplicitGlobalVariable="ImplicitGlobalVariable",e.exports=t},7901:(e,t,r)=>{!function e(t){"use strict";var n,o,i,a,s,u;function l(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?l(r):r);return n}function d(e,t){this.parent=e,this.key=t}function c(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function p(){}function g(e){return null!=e&&"object"==typeof e&&"string"==typeof e.type}function f(e,t){return(e===n.ObjectExpression||e===n.ObjectPattern)&&"properties"===t}function m(e,t){return(new p).traverse(e,t)}function h(e,t){var r;return r=function(t,r){var n,o,i,a;for(o=t.length,i=0;o;)t[a=i+(n=o>>>1)].range[0]>e.range[0]?o=n:(i=a+1,o-=n+1);return i}(t),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return n={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},i={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},o={Break:a={},Skip:s={},Remove:u={}},d.prototype.replace=function(e){this.parent[this.key]=e},d.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},p.prototype.path=function(){var e,t,r,n,o;function i(e,t){if(Array.isArray(t))for(r=0,n=t.length;r=0;)if(y=i[d=h[p]])if(Array.isArray(y)){for(m=y.length;(m-=1)>=0;)if(y[m]){if(f(u,h[p]))o=new c(y[m],[d,m],"Property",null);else{if(!g(y[m]))continue;o=new c(y[m],[d,m],null,null)}r.push(o)}}else g(y)&&r.push(new c(y,d,null,null))}}else if(o=n.pop(),l=this.__execute(t.leave,o),this.__state===a||l===a)return},p.prototype.replace=function(e,t){var r,n,o,i,l,p,m,h,y,b,S,_,C;function E(e){var t,n,o,i;if(e.ref.remove())for(n=e.ref.key,i=e.ref.parent,t=r.length;t--;)if((o=r[t]).ref&&o.ref.parent===i){if(o.ref.key=0;)if(b=o[C=y[m]])if(Array.isArray(b)){for(h=b.length;(h-=1)>=0;)if(b[h]){if(f(i,y[m]))p=new c(b[h],[C,h],"Property",new d(b,h));else{if(!g(b[h]))continue;p=new c(b[h],[C,h],null,new d(b,h))}r.push(p)}}else g(b)&&r.push(new c(b,C,null,new d(o,C)))}}else if(p=n.pop(),void 0!==(l=this.__execute(t.leave,p))&&l!==a&&l!==s&&l!==u&&p.ref.replace(l),this.__state!==u&&l!==u||E(p),this.__state===a||l===a)return _.root;return _.root},t.version=r(2887).i8,t.Syntax=n,t.traverse=m,t.replace=function(e,t){return(new p).replace(e,t)},t.attachComments=function(e,t,r){var n,i,a,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(a=0,i=t.length;ae.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?o.Break:u[s].extendedRange[0]>e.range[1]?o.Skip:void 0}}),s=0,m(e,{leave:function(e){for(var t;se.range[1]?o.Skip:void 0}}),e},t.VisitorKeys=i,t.VisitorOption=o,t.Controller=p,t.cloneEnvironment=function(){return e({})},t}(t)},2887:e=>{"use strict";e.exports={i8:"4.3.0"}},2245:e=>{"use strict";e.exports={i8:"5.1.1"}},8192:(e,t,r)=>{!function(){"use strict";var e=r(7085);function n(e){return null!=e&&"object"==typeof e&&"string"==typeof e.type}function o(t,r){r=r||{},this.__visitor=t||this,this.__childVisitorKeys=r.childVisitorKeys?Object.assign({},e.VisitorKeys,r.childVisitorKeys):e.VisitorKeys,"iteration"===r.fallback?this.__fallback=Object.keys:"function"==typeof r.fallback&&(this.__fallback=r.fallback)}o.prototype.visitChildren=function(t){var r,o,i,a,s,u,l;if(null!=t){if(r=t.type||e.Syntax.Property,!(o=this.__childVisitorKeys[r])){if(!this.__fallback)throw new Error("Unknown node type "+r+".");o=this.__fallback(t)}for(i=0,a=o.length;i{"use strict";e.exports={version:"4.3.0"}},7085:(e,t)=>{!function e(t){"use strict";var r,n,o,i,a,s;function u(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?u(r):r);return n}function l(e,t){this.parent=e,this.key=t}function d(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function c(){}function p(e){return null!=e&&"object"==typeof e&&"string"==typeof e.type}function g(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function f(e,t){for(var r=e.length-1;r>=0;--r)if(e[r].node===t)return!0;return!1}function m(e,t){return(new c).traverse(e,t)}function h(e,t){var r;return r=function(t,r){var n,o,i,a;for(o=t.length,i=0;o;)t[a=i+(n=o>>>1)].range[0]>e.range[0]?o=n:(i=a+1,o-=n+1);return i}(t),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},o={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n={Break:i={},Skip:a={},Remove:s={}},l.prototype.replace=function(e){this.parent[this.key]=e},l.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},c.prototype.path=function(){var e,t,r,n,o;function i(e,t){if(Array.isArray(t))for(r=0,n=t.length;r=0;)if(b=s[c=y[m]])if(Array.isArray(b)){for(h=b.length;(h-=1)>=0;)if(b[h]&&!f(n,b[h])){if(g(u,y[m]))o=new d(b[h],[c,h],"Property",null);else{if(!p(b[h]))continue;o=new d(b[h],[c,h],null,null)}r.push(o)}}else if(p(b)){if(f(n,b))continue;r.push(new d(b,c,null,null))}}}else if(o=n.pop(),l=this.__execute(t.leave,o),this.__state===i||l===i)return},c.prototype.replace=function(e,t){var r,n,o,u,c,f,m,h,y,b,S,_,C;function E(e){var t,n,o,i;if(e.ref.remove())for(n=e.ref.key,i=e.ref.parent,t=r.length;t--;)if((o=r[t]).ref&&o.ref.parent===i){if(o.ref.key=0;)if(b=o[C=y[m]])if(Array.isArray(b)){for(h=b.length;(h-=1)>=0;)if(b[h]){if(g(u,y[m]))f=new d(b[h],[C,h],"Property",new l(b,h));else{if(!p(b[h]))continue;f=new d(b[h],[C,h],null,new l(b,h))}r.push(f)}}else p(b)&&r.push(new d(b,C,null,new l(o,C)))}}else if(f=n.pop(),void 0!==(c=this.__execute(t.leave,f))&&c!==i&&c!==a&&c!==s&&f.ref.replace(c),this.__state!==s&&c!==s||E(f),this.__state===i||c===i)return _.root;return _.root},t.Syntax=r,t.traverse=m,t.replace=function(e,t){return(new c).replace(e,t)},t.attachComments=function(e,t,r){var o,i,a,s,l=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(a=0,i=t.length;ae.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),l.splice(s,1)):s+=1;return s===l.length?n.Break:l[s].extendedRange[0]>e.range[1]?n.Skip:void 0}}),s=0,m(e,{leave:function(e){for(var t;se.range[1]?n.Skip:void 0}}),e},t.VisitorKeys=o,t.VisitorOption=n,t.Controller=c,t.cloneEnvironment=function(){return e({})},t}(t)},4974:e=>{!function(){"use strict";function t(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function r(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return t(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=r(t)}while(t);return!1},trailingStatement:r}}()},5619:e=>{!function(){"use strict";var t,r,n,o,i,a;function s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},n=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],o=new Array(128),a=0;a<128;++a)o[a]=a>=97&&a<=122||a>=65&&a<=90||36===a||95===a;for(i=new Array(128),a=0;a<128;++a)i[a]=a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||36===a||95===a;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&n.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?o[e]:r.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES5:function(e){return e<128?i[e]:r.NonAsciiIdentifierPart.test(s(e))},isIdentifierStartES6:function(e){return e<128?o[e]:t.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES6:function(e){return e<128?i[e]:t.NonAsciiIdentifierPart.test(s(e))}}}()},702:(e,t,r)=>{!function(){"use strict";var t=r(5619);function n(e,t){return!(!t&&"yield"===e)&&o(e,t)}function o(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function i(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function a(e,t){return"null"===e||"true"===e||"false"===e||o(e,t)}function s(e){var r,n,o;if(0===e.length)return!1;if(o=e.charCodeAt(0),!t.isIdentifierStartES5(o))return!1;for(r=1,n=e.length;r=n)return!1;if(!(56320<=(i=e.charCodeAt(r))&&i<=57343))return!1;o=1024*(o-55296)+(i-56320)+65536}if(!a(o))return!1;a=t.isIdentifierPartES6}return!0}e.exports={isKeywordES5:n,isKeywordES6:o,isReservedWordES5:i,isReservedWordES6:a,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:s,isIdentifierNameES6:u,isIdentifierES5:function(e,t){return s(e)&&!i(e,t)},isIdentifierES6:function(e,t){return u(e)&&!a(e,t)}}}()},649:(e,t,r)=>{!function(){"use strict";t.ast=r(4974),t.code=r(5619),t.keyword=r(702)}()},4063:e=>{"use strict";e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,o,i;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(o=n;0!=o--;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(i=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(o=n;0!=o--;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=n;0!=o--;){var a=i[o];if(!e(t[a],r[a]))return!1}return!0}return t!=t&&r!=r}},9804:e=>{var t=Object.prototype.hasOwnProperty,r=Object.prototype.toString;e.exports=function(e,n,o){if("[object Function]"!==r.call(n))throw new TypeError("iterator must be a function");var i=e.length;if(i===+i)for(var a=0;a{"use strict";var t="Function.prototype.bind called on incompatible ",r=Array.prototype.slice,n=Object.prototype.toString,o="[object Function]";e.exports=function(e){var i=this;if("function"!=typeof i||n.call(i)!==o)throw new TypeError(t+i);for(var a,s=r.call(arguments,1),u=function(){if(this instanceof a){var t=i.apply(this,s.concat(r.call(arguments)));return Object(t)===t?t:this}return i.apply(e,s.concat(r.call(arguments)))},l=Math.max(0,i.length-s.length),d=[],c=0;c{"use strict";var n=r(7648);e.exports=Function.prototype.bind||n},3791:module=>{var f;f=function(){var define,module,exports;return function e(t,r,n){function o(a,s){if(!r[a]){if(!t[a]){if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=r[a]={exports:{}};t[a][0].call(l.exports,(function(e){return o(t[a][1][e]||e)}),l,l.exports,e,t,r,n)}return r[a].exports}for(var i=void 0,a=0;a>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){var t=goog.typeOf(e);if("object"==t||"array"==t){if("function"==typeof e.clone)return e.clone();for(var r in t="array"==t?[]:{},e)t[r]=goog.cloneObject(e[r]);return t}return e},goog.bindNative_=function(e,t,r){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,t,r){if(!e)throw Error();if(2{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')})),a("es7",(function(){return b("2 ** 2 == 4")})),a("es8",(function(){return b("async () => 1, true")})),a("es9",(function(){return b("({...rest} = {}), true")})),a("es_next",(function(){return!1})),{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(e,t){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var r=this.createRequiresTranspilation_();this.requiresTranspilation_=r.map,this.transpilationTarget_=this.transpilationTarget_||r.target}if(e in this.requiresTranspilation_)return!!this.requiresTranspilation_[e]||!(!goog.inHtmlDocument_()||"es6"!=t||"noModule"in goog.global.document.createElement("script"));throw Error("Unknown language mode: "+e)},goog.Transpiler.prototype.transpile=function(e,t){return goog.transpile_(e,t,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(e){return e.replace(/<\/(SCRIPT)/gi,"\\x3c/$1")},goog.DebugLoader_=function(){this.dependencies_={},this.idToPath_={},this.written_={},this.loadingDeps_=[],this.depsToLoad_=[],this.paused_=!1,this.factory_=new goog.DependencyFactory(goog.transpiler_),this.deferredCallbacks_={},this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(e,t){function r(){n&&(goog.global.setTimeout(n,0),n=null)}var n=t;if(e.length){for(var o=[],i=0;i<\/script>",t.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(n):n)}else{var o=t.createElement("script");o.defer=goog.Dependency.defer_,o.async=!1,o.type="text/javascript",(n=goog.getScriptNonce())&&o.setAttribute("nonce",n),goog.DebugLoader_.IS_OLD_IE_?(e.pause(),o.onreadystatechange=function(){"loaded"!=o.readyState&&"complete"!=o.readyState||(e.loaded(),e.resume())}):o.onload=function(){o.onload=null,e.loaded()},o.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path,t.head.appendChild(o)}}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),"deps.js"==this.relativePath?(goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."),e.loaded()):e.pause()},goog.Es6ModuleDependency=function(e,t,r,n,o){goog.Dependency.call(this,e,t,r,n,o)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(e){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?e.loaded():e.pause();else if(goog.inHtmlDocument_()){var t=goog.global.document,r=this;if(goog.isDocumentLoading_()){var n=function(e,r){var n=r?'