PreparingTransformersModule.ts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { InversifyContainerFacade } from '../../InversifyContainerFacade';
  2. import { ContainerModule, interfaces } from 'inversify';
  3. import { ServiceIdentifiers } from '../../ServiceIdentifiers';
  4. import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
  5. import { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
  6. import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
  7. import { ObfuscatingGuard } from '../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard';
  8. import { BlackListObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard';
  9. import { ConditionalCommentObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard';
  10. import { CustomCodeHelpersTransformer } from '../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer';
  11. import { EvalCallExpressionTransformer } from '../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer';
  12. import { ForceTransformStringObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard';
  13. import { MetadataTransformer } from '../../../node-transformers/preparing-transformers/MetadataTransformer';
  14. import { ObfuscatingGuardsTransformer } from '../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer';
  15. import { ParentificationTransformer } from '../../../node-transformers/preparing-transformers/ParentificationTransformer';
  16. import { ReservedStringObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard';
  17. import { VariablePreserveTransformer } from '../../../node-transformers/preparing-transformers/VariablePreserveTransformer';
  18. export const preparingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
  19. // preparing transformers
  20. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  21. .to(CustomCodeHelpersTransformer)
  22. .whenTargetNamed(NodeTransformer.CustomCodeHelpersTransformer);
  23. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  24. .to(EvalCallExpressionTransformer)
  25. .whenTargetNamed(NodeTransformer.EvalCallExpressionTransformer);
  26. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  27. .to(MetadataTransformer)
  28. .whenTargetNamed(NodeTransformer.MetadataTransformer);
  29. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  30. .to(ObfuscatingGuardsTransformer)
  31. .whenTargetNamed(NodeTransformer.ObfuscatingGuardsTransformer);
  32. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  33. .to(ParentificationTransformer)
  34. .whenTargetNamed(NodeTransformer.ParentificationTransformer);
  35. bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
  36. .to(VariablePreserveTransformer)
  37. .whenTargetNamed(NodeTransformer.VariablePreserveTransformer);
  38. // obfuscating guards
  39. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  40. .to(BlackListObfuscatingGuard)
  41. .inSingletonScope()
  42. .whenTargetNamed(ObfuscatingGuard.BlackListObfuscatingGuard);
  43. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  44. .to(ConditionalCommentObfuscatingGuard)
  45. .inSingletonScope()
  46. .whenTargetNamed(ObfuscatingGuard.ConditionalCommentObfuscatingGuard);
  47. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  48. .to(ForceTransformStringObfuscatingGuard)
  49. .inSingletonScope()
  50. .whenTargetNamed(ObfuscatingGuard.ForceTransformStringObfuscatingGuard);
  51. bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
  52. .to(ReservedStringObfuscatingGuard)
  53. .inSingletonScope()
  54. .whenTargetNamed(ObfuscatingGuard.ReservedStringObfuscatingGuard);
  55. // obfuscating guards factory
  56. bind<IObfuscatingGuard>(ServiceIdentifiers.Factory__INodeGuard)
  57. .toFactory<IObfuscatingGuard>(InversifyContainerFacade
  58. .getCacheFactory<ObfuscatingGuard, IObfuscatingGuard>(
  59. ServiceIdentifiers.INodeGuard
  60. ));
  61. });