ObfuscatingTransformersModule.ts 5.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import { InversifyContainerFacade } from '../../InversifyContainerFacade';
  2. import { ContainerModule, interfaces } from 'inversify';
  3. import { ServiceIdentifiers } from '../../ServiceIdentifiers';
  4. import { IIdentifierObfuscatingReplacer } from '../../../interfaces/node-transformers/obfuscating-transformers/obfuscating-replacers/IIdentifierObfuscatingReplacer';
  5. import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
  6. import { IObfuscatingReplacer } from '../../../interfaces/node-transformers/obfuscating-transformers/obfuscating-replacers/IObfuscatingReplacer';
  7. import { IdentifierObfuscatingReplacer } from '../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer';
  8. import { LiteralObfuscatingReplacer } from '../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer';
  9. import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
  10. import { BaseIdentifierObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer';
  11. import { BooleanLiteralObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer';
  12. import { CatchClauseTransformer } from '../../../node-transformers/obfuscating-transformers/CatchClauseTransformer';
  13. import { ClassDeclarationTransformer } from '../../../node-transformers/obfuscating-transformers/ClassDeclarationTransformer';
  14. import { FunctionDeclarationTransformer } from '../../../node-transformers/obfuscating-transformers/FunctionDeclarationTransformer';
  15. import { FunctionTransformer } from '../../../node-transformers/obfuscating-transformers/FunctionTransformer';
  16. import { LabeledStatementTransformer } from '../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer';
  17. import { LiteralTransformer } from '../../../node-transformers/obfuscating-transformers/LiteralTransformer';
  18. import { NumberLiteralObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer';
  19. import { ObjectExpressionTransformer } from '../../../node-transformers/obfuscating-transformers/ObjectExpressionTransformer';
  20. import { StringLiteralObfuscatingReplacer } from '../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer';
  21. import { VariableDeclarationTransformer } from '../../../node-transformers/obfuscating-transformers/VariableDeclarationTransformer';
  22. export const obfuscatingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
  23. // obfuscating transformers
  24. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  25. .to(CatchClauseTransformer)
  26. .whenTargetNamed(NodeTransformer.CatchClauseTransformer);
  27. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  28. .to(ClassDeclarationTransformer)
  29. .whenTargetNamed(NodeTransformer.ClassDeclarationTransformer);
  30. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  31. .to(FunctionDeclarationTransformer)
  32. .whenTargetNamed(NodeTransformer.FunctionDeclarationTransformer);
  33. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  34. .to(FunctionTransformer)
  35. .whenTargetNamed(NodeTransformer.FunctionTransformer);
  36. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  37. .to(LabeledStatementTransformer)
  38. .whenTargetNamed(NodeTransformer.LabeledStatementTransformer);
  39. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  40. .to(LiteralTransformer)
  41. .whenTargetNamed(NodeTransformer.LiteralTransformer);
  42. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  43. .to(ObjectExpressionTransformer)
  44. .whenTargetNamed(NodeTransformer.ObjectExpressionTransformer);
  45. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  46. .to(VariableDeclarationTransformer)
  47. .whenTargetNamed(NodeTransformer.VariableDeclarationTransformer);
  48. // literal obfuscating replacers
  49. bind<IObfuscatingReplacer>(ServiceIdentifiers.IObfuscatingReplacer)
  50. .to(BooleanLiteralObfuscatingReplacer)
  51. .whenTargetNamed(LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer);
  52. bind<IObfuscatingReplacer>(ServiceIdentifiers.IObfuscatingReplacer)
  53. .to(NumberLiteralObfuscatingReplacer)
  54. .whenTargetNamed(LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer);
  55. bind<IObfuscatingReplacer>(ServiceIdentifiers.IObfuscatingReplacer)
  56. .to(StringLiteralObfuscatingReplacer)
  57. .whenTargetNamed(LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer);
  58. // identifier obfuscating replacers
  59. bind<IIdentifierObfuscatingReplacer>(ServiceIdentifiers.IIdentifierObfuscatingReplacer)
  60. .to(BaseIdentifierObfuscatingReplacer)
  61. .whenTargetNamed(IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
  62. // literal obfuscating replacer factory
  63. bind<IObfuscatingReplacer>(ServiceIdentifiers.Factory__IObfuscatingReplacer)
  64. .toFactory<IObfuscatingReplacer>(InversifyContainerFacade
  65. .getCacheFactory<LiteralObfuscatingReplacer, IObfuscatingReplacer>(
  66. ServiceIdentifiers.IObfuscatingReplacer
  67. ));
  68. // identifier obfuscating replacer factory
  69. bind<IIdentifierObfuscatingReplacer>(ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)
  70. .toFactory<IIdentifierObfuscatingReplacer>(InversifyContainerFacade
  71. .getCacheFactory<IdentifierObfuscatingReplacer, IIdentifierObfuscatingReplacer>(
  72. ServiceIdentifiers.IIdentifierObfuscatingReplacer
  73. ));
  74. });