forked from javascript-obfuscator/javascript-obfuscator
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathObfuscatingTransformersModule.ts
More file actions
91 lines (74 loc) · 5.82 KB
/
Copy pathObfuscatingTransformersModule.ts
File metadata and controls
91 lines (74 loc) · 5.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(CatchClauseTransformer)
.whenTargetNamed(NodeTransformer.CatchClauseTransformer);
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(ClassDeclarationTransformer)
.whenTargetNamed(NodeTransformer.ClassDeclarationTransformer);
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(FunctionDeclarationTransformer)
.whenTargetNamed(NodeTransformer.FunctionDeclarationTransformer);
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(FunctionTransformer)
.whenTargetNamed(NodeTransformer.FunctionTransformer);
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(LabeledStatementTransformer)
.whenTargetNamed(NodeTransformer.LabeledStatementTransformer);
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(LiteralTransformer)
.whenTargetNamed(NodeTransformer.LiteralTransformer);
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(ObjectExpressionTransformer)
.whenTargetNamed(NodeTransformer.ObjectExpressionTransformer);
bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
.to(VariableDeclarationTransformer)
.whenTargetNamed(NodeTransformer.VariableDeclarationTransformer);
// literal obfuscating replacers
bind<IObfuscatingReplacer>(ServiceIdentifiers.IObfuscatingReplacer)
.to(BooleanLiteralObfuscatingReplacer)
.whenTargetNamed(LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer);
bind<IObfuscatingReplacer>(ServiceIdentifiers.IObfuscatingReplacer)
.to(NumberLiteralObfuscatingReplacer)
.whenTargetNamed(LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer);
bind<IObfuscatingReplacer>(ServiceIdentifiers.IObfuscatingReplacer)
.to(StringLiteralObfuscatingReplacer)
.whenTargetNamed(LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer);
// identifier obfuscating replacers
bind<IIdentifierObfuscatingReplacer>(ServiceIdentifiers.IIdentifierObfuscatingReplacer)
.to(BaseIdentifierObfuscatingReplacer)
.whenTargetNamed(IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer);
// literal obfuscating replacer factory
bind<IObfuscatingReplacer>(ServiceIdentifiers.Factory__IObfuscatingReplacer)
.toFactory<IObfuscatingReplacer>(InversifyContainerFacade
.getCacheFactory<LiteralObfuscatingReplacer, IObfuscatingReplacer>(
ServiceIdentifiers.IObfuscatingReplacer
));
// identifier obfuscating replacer factory
bind<IIdentifierObfuscatingReplacer>(ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)
.toFactory<IIdentifierObfuscatingReplacer>(InversifyContainerFacade
.getCacheFactory<IdentifierObfuscatingReplacer, IIdentifierObfuscatingReplacer>(
ServiceIdentifiers.IIdentifierObfuscatingReplacer
));
});