import { InversifyContainerFacade } from '../../InversifyContainerFacade'; import { ContainerModule, interfaces } from 'inversify'; import { ServiceIdentifiers } from '../../ServiceIdentifiers'; import { IIdentifierObfuscatingReplacer } from '../../../interfaces/node-transformers/obfuscating-transformers/obfuscating-replacers/IIdentifierObfuscatingReplacer'; import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer'; import { IObfuscatingReplacer } from '../../../interfaces/node-transformers/obfuscating-transformers/obfuscating-replacers/IObfuscatingReplacer'; import { IdentifierObfuscatingReplacer } from '../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer'; import { LiteralObfuscatingReplacer } from '../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer'; import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer'; import { BaseIdentifierObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer'; import { BooleanLiteralObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer'; import { CatchClauseTransformer } from '../../../node-transformers/obfuscating-transformers/CatchClauseTransformer'; import { ClassDeclarationTransformer } from '../../../node-transformers/obfuscating-transformers/ClassDeclarationTransformer'; import { FunctionDeclarationTransformer } from '../../../node-transformers/obfuscating-transformers/FunctionDeclarationTransformer'; import { FunctionTransformer } from '../../../node-transformers/obfuscating-transformers/FunctionTransformer'; import { LabeledStatementTransformer } from '../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer'; import { LiteralTransformer } from '../../../node-transformers/obfuscating-transformers/LiteralTransformer'; import { NumberLiteralObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer'; import { ObjectExpressionTransformer } from '../../../node-transformers/obfuscating-transformers/ObjectExpressionTransformer'; import { StringLiteralObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer'; import { VariableDeclarationTransformer } from '../../../node-transformers/obfuscating-transformers/VariableDeclarationTransformer'; export const obfuscatingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => { // obfuscating transformers bind(ServiceIdentifiers.INodeTransformer) .to(CatchClauseTransformer) .whenTargetNamed(NodeTransformer.CatchClauseTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(ClassDeclarationTransformer) .whenTargetNamed(NodeTransformer.ClassDeclarationTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(FunctionDeclarationTransformer) .whenTargetNamed(NodeTransformer.FunctionDeclarationTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(FunctionTransformer) .whenTargetNamed(NodeTransformer.FunctionTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(LabeledStatementTransformer) .whenTargetNamed(NodeTransformer.LabeledStatementTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(LiteralTransformer) .whenTargetNamed(NodeTransformer.LiteralTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(ObjectExpressionTransformer) .whenTargetNamed(NodeTransformer.ObjectExpressionTransformer); bind(ServiceIdentifiers.INodeTransformer) .to(VariableDeclarationTransformer) .whenTargetNamed(NodeTransformer.VariableDeclarationTransformer); // literal obfuscating replacers bind(ServiceIdentifiers.IObfuscatingReplacer) .to(BooleanLiteralObfuscatingReplacer) .whenTargetNamed(LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer); bind(ServiceIdentifiers.IObfuscatingReplacer) .to(NumberLiteralObfuscatingReplacer) .whenTargetNamed(LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer); bind(ServiceIdentifiers.IObfuscatingReplacer) .to(StringLiteralObfuscatingReplacer) .whenTargetNamed(LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer); // identifier obfuscating replacers bind(ServiceIdentifiers.IIdentifierObfuscatingReplacer) .to(BaseIdentifierObfuscatingReplacer) .whenTargetNamed(IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); // literal obfuscating replacer factory bind(ServiceIdentifiers.Factory__IObfuscatingReplacer) .toFactory(InversifyContainerFacade .getCacheFactory( ServiceIdentifiers.IObfuscatingReplacer )); // identifier obfuscating replacer factory bind(ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer) .toFactory(InversifyContainerFacade .getCacheFactory( ServiceIdentifiers.IIdentifierObfuscatingReplacer )); });