Skip to content

Commit e7f2bd1

Browse files
committed
Replaced ObfuscationResult and SourceMapCorrector classes by ObfuscatedCode class
1 parent 66640b4 commit e7f2bd1

71 files changed

Lines changed: 911 additions & 1205 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

dist/index.browser.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.cli.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/JavaScriptObfuscator.ts

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ import * as escodegen from 'escodegen-wallaby';
55
import * as espree from 'espree';
66
import * as ESTree from 'estree';
77

8+
import { TObfuscatedCodeFactory } from './types/container/source-code/TObfuscatedCodeFactory';
9+
810
import { IGeneratorOutput } from './interfaces/IGeneratorOutput';
911
import { IJavaScriptObfuscator } from './interfaces/IJavaScriptObfsucator';
1012
import { ILogger } from './interfaces/logger/ILogger';
11-
import { IObfuscationResult } from './interfaces/IObfuscationResult';
13+
import { IObfuscatedCode } from './interfaces/source-code/IObfuscatedCode';
1214
import { IOptions } from './interfaces/options/IOptions';
1315
import { IRandomGenerator } from './interfaces/utils/IRandomGenerator';
14-
import { ISourceMapCorrector } from './interfaces/source-map/ISourceMapCorrector';
1516
import { ITransformersRunner } from './interfaces/node-transformers/ITransformersRunner';
1617

1718
import { LoggingMessage } from './enums/logger/LoggingMessage';
@@ -79,6 +80,11 @@ export class JavaScriptObfuscator implements IJavaScriptObfuscator {
7980
*/
8081
private readonly logger: ILogger;
8182

83+
/**
84+
* @type {TObfuscatedCodeFactory}
85+
*/
86+
private readonly obfuscatedCodeFactory: TObfuscatedCodeFactory;
87+
8288
/**
8389
* @type {IOptions}
8490
*/
@@ -89,42 +95,37 @@ export class JavaScriptObfuscator implements IJavaScriptObfuscator {
8995
*/
9096
private readonly randomGenerator: IRandomGenerator;
9197

92-
/**
93-
* @type {ISourceMapCorrector}
94-
*/
95-
private readonly sourceMapCorrector: ISourceMapCorrector;
96-
9798
/**
9899
* @type {ITransformersRunner}
99100
*/
100101
private readonly transformersRunner: ITransformersRunner;
101102

102103
/**
103104
* @param {ITransformersRunner} transformersRunner
104-
* @param {ISourceMapCorrector} sourceMapCorrector
105105
* @param {IRandomGenerator} randomGenerator
106+
* @param {TObfuscatedCodeFactory} obfuscatedCodeFactory
106107
* @param {ILogger} logger
107108
* @param {IOptions} options
108109
*/
109110
constructor (
110111
@inject(ServiceIdentifiers.ITransformersRunner) transformersRunner: ITransformersRunner,
111-
@inject(ServiceIdentifiers.ISourceMapCorrector) sourceMapCorrector: ISourceMapCorrector,
112112
@inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
113+
@inject(ServiceIdentifiers.Factory__IObfuscatedCode) obfuscatedCodeFactory: TObfuscatedCodeFactory,
113114
@inject(ServiceIdentifiers.ILogger) logger: ILogger,
114115
@inject(ServiceIdentifiers.IOptions) options: IOptions
115116
) {
116117
this.transformersRunner = transformersRunner;
117-
this.sourceMapCorrector = sourceMapCorrector;
118118
this.randomGenerator = randomGenerator;
119+
this.obfuscatedCodeFactory = obfuscatedCodeFactory;
119120
this.logger = logger;
120121
this.options = options;
121122
}
122123

123124
/**
124125
* @param {string} sourceCode
125-
* @returns {IObfuscationResult}
126+
* @returns {IObfuscatedCode}
126127
*/
127-
public obfuscate (sourceCode: string): IObfuscationResult {
128+
public obfuscate (sourceCode: string): IObfuscatedCode {
128129
const timeStart: number = Date.now();
129130
this.logger.info(LoggingMessage.Version, process.env.VERSION);
130131
this.logger.info(LoggingMessage.ObfuscationStarted);
@@ -142,7 +143,7 @@ export class JavaScriptObfuscator implements IJavaScriptObfuscator {
142143
const obfuscationTime: number = (Date.now() - timeStart) / 1000;
143144
this.logger.success(LoggingMessage.ObfuscationCompleted, obfuscationTime);
144145

145-
return this.getObfuscationResult(generatorOutput);
146+
return this.getObfuscatedCode(generatorOutput);
146147
}
147148

148149
/**
@@ -215,13 +216,10 @@ export class JavaScriptObfuscator implements IJavaScriptObfuscator {
215216

216217
/**
217218
* @param {IGeneratorOutput} generatorOutput
218-
* @returns {IObfuscationResult}
219+
* @returns {IObfuscatedCode}
219220
*/
220-
private getObfuscationResult (generatorOutput: IGeneratorOutput): IObfuscationResult {
221-
return this.sourceMapCorrector.correct(
222-
generatorOutput.code,
223-
generatorOutput.map
224-
);
221+
private getObfuscatedCode (generatorOutput: IGeneratorOutput): IObfuscatedCode {
222+
return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map);
225223
}
226224

227225
/**

src/JavaScriptObfuscatorFacade.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { TInputOptions } from './types/options/TInputOptions';
66

77
import { IInversifyContainerFacade } from './interfaces/container/IInversifyContainerFacade';
88
import { IJavaScriptObfuscator } from './interfaces/IJavaScriptObfsucator';
9-
import { IObfuscationResult } from './interfaces/IObfuscationResult';
9+
import { IObfuscatedCode } from './interfaces/source-code/IObfuscatedCode';
1010

1111
import { InversifyContainerFacade } from './container/InversifyContainerFacade';
1212

@@ -19,20 +19,20 @@ class JavaScriptObfuscatorFacade {
1919
/**
2020
* @param {string} sourceCode
2121
* @param {TInputOptions} inputOptions
22-
* @returns {IObfuscationResult}
22+
* @returns {IObfuscatedCode}
2323
*/
24-
public static obfuscate (sourceCode: string, inputOptions: TInputOptions = {}): IObfuscationResult {
24+
public static obfuscate (sourceCode: string, inputOptions: TInputOptions = {}): IObfuscatedCode {
2525
const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
2626

27-
inversifyContainerFacade.load(sourceCode, inputOptions);
27+
inversifyContainerFacade.load(sourceCode, '', inputOptions);
2828

2929
const javaScriptObfuscator: IJavaScriptObfuscator = inversifyContainerFacade
3030
.get<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator);
31-
const obfuscationResult: IObfuscationResult = javaScriptObfuscator.obfuscate(sourceCode);
31+
const obfuscatedCode: IObfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode);
3232

3333
inversifyContainerFacade.unload();
3434

35-
return obfuscationResult;
35+
return obfuscatedCode;
3636
}
3737
}
3838

src/ObfuscationResult.ts

Lines changed: 0 additions & 50 deletions
This file was deleted.

src/SourceCode.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/cli/JavaScriptObfuscatorCLI.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { TSourceCodeData } from '../types/cli/TSourceCodeData';
77

88
import { IFileData } from '../interfaces/cli/IFileData';
99
import { IInitializable } from '../interfaces/IInitializable';
10-
import { IObfuscationResult } from '../interfaces/IObfuscationResult';
10+
import { IObfuscatedCode } from '../interfaces/source-code/IObfuscatedCode';
1111

1212
import { initializable } from '../decorators/Initializable';
1313

@@ -131,12 +131,12 @@ export class JavaScriptObfuscatorCLI implements IInitializable {
131131
sourceMapFileName: path.basename(outputSourceMapPath)
132132
};
133133

134-
const obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(sourceCode, options);
134+
const obfuscatedCode: IObfuscatedCode = JavaScriptObfuscator.obfuscate(sourceCode, options);
135135

136-
CLIUtils.writeFile(outputCodePath, obfuscationResult.getObfuscatedCode());
136+
CLIUtils.writeFile(outputCodePath, obfuscatedCode.getObfuscatedCode());
137137

138-
if (options.sourceMapMode === 'separate' && obfuscationResult.getSourceMap()) {
139-
CLIUtils.writeFile(outputSourceMapPath, obfuscationResult.getSourceMap());
138+
if (options.sourceMapMode === 'separate' && obfuscatedCode.getSourceMap()) {
139+
CLIUtils.writeFile(outputSourceMapPath, obfuscatedCode.getSourceMap());
140140
}
141141
}
142142

src/container/InversifyContainerFacade.ts

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,15 @@ import { IInversifyContainerFacade } from '../interfaces/container/IInversifyCon
2020
import { IJavaScriptObfuscator } from '../interfaces/IJavaScriptObfsucator';
2121
import { ILogger } from '../interfaces/logger/ILogger';
2222
import { IObfuscationEventEmitter } from '../interfaces/event-emitters/IObfuscationEventEmitter';
23-
import { IObfuscationResult } from '../interfaces/IObfuscationResult';
24-
import { ISourceCode } from '../interfaces/ISourceCode';
25-
import { ISourceMapCorrector } from '../interfaces/source-map/ISourceMapCorrector';
23+
import { IObfuscatedCode } from '../interfaces/source-code/IObfuscatedCode';
24+
import { ISourceCode } from '../interfaces/source-code/ISourceCode';
2625
import { ITransformersRunner } from '../interfaces/node-transformers/ITransformersRunner';
2726

2827
import { JavaScriptObfuscator } from '../JavaScriptObfuscator';
2928
import { Logger } from '../logger/Logger';
3029
import { ObfuscationEventEmitter } from '../event-emitters/ObfuscationEventEmitter';
31-
import { ObfuscationResult } from '../ObfuscationResult';
32-
import { SourceCode } from '../SourceCode';
33-
import { SourceMapCorrector } from '../source-map/SourceMapCorrector';
30+
import { ObfuscatedCode } from '../source-code/ObfuscatedCode';
31+
import { SourceCode } from '../source-code/SourceCode';
3432
import { TransformersRunner } from '../node-transformers/TransformersRunner';
3533

3634
export class InversifyContainerFacade implements IInversifyContainerFacade {
@@ -140,12 +138,13 @@ export class InversifyContainerFacade implements IInversifyContainerFacade {
140138

141139
/**
142140
* @param {string} sourceCode
141+
* @param {string} sourceMap
143142
* @param {TInputOptions} options
144143
*/
145-
public load (sourceCode: string, options: TInputOptions): void {
144+
public load (sourceCode: string, sourceMap: string, options: TInputOptions): void {
146145
this.container
147146
.bind<ISourceCode>(ServiceIdentifiers.ISourceCode)
148-
.toDynamicValue(() => new SourceCode(sourceCode))
147+
.toDynamicValue(() => new SourceCode(sourceCode, sourceMap))
149148
.inSingletonScope();
150149

151150
this.container
@@ -169,28 +168,22 @@ export class InversifyContainerFacade implements IInversifyContainerFacade {
169168
.inSingletonScope();
170169

171170
this.container
172-
.bind<IObfuscationResult>(ServiceIdentifiers.IObfuscationResult)
173-
.to(ObfuscationResult)
174-
.inSingletonScope();
171+
.bind<IObfuscatedCode>(ServiceIdentifiers.IObfuscatedCode)
172+
.to(ObfuscatedCode);
175173

176174
this.container
177-
.bind<IObfuscationResult>(ServiceIdentifiers.Factory__IObfuscationResult)
178-
.toFactory<IObfuscationResult>((context: interfaces.Context) => {
179-
return (obfuscatedCode: string, sourceMap: string) => {
180-
const obfuscationResult: IObfuscationResult = context.container
181-
.get<IObfuscationResult>(ServiceIdentifiers.IObfuscationResult);
175+
.bind<IObfuscatedCode>(ServiceIdentifiers.Factory__IObfuscatedCode)
176+
.toFactory<IObfuscatedCode>((context: interfaces.Context) => {
177+
return (obfuscatedCodeAsString: string, sourceMapAsString: string) => {
178+
const obfuscatedCode: IObfuscatedCode = context.container
179+
.get<IObfuscatedCode>(ServiceIdentifiers.IObfuscatedCode);
182180

183-
obfuscationResult.initialize(obfuscatedCode, sourceMap);
181+
obfuscatedCode.initialize(obfuscatedCodeAsString, sourceMapAsString);
184182

185-
return obfuscationResult;
183+
return obfuscatedCode;
186184
};
187185
});
188186

189-
this.container
190-
.bind<ISourceMapCorrector>(ServiceIdentifiers.ISourceMapCorrector)
191-
.to(SourceMapCorrector)
192-
.inSingletonScope();
193-
194187
this.container
195188
.bind<IObfuscationEventEmitter>(ServiceIdentifiers.IObfuscationEventEmitter)
196189
.to(ObfuscationEventEmitter)

src/container/ServiceIdentifiers.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export enum ServiceIdentifiers {
99
Factory__IIdentifierObfuscatingReplacer = 'Factory<IIdentifierObfuscatingReplacer>',
1010
Factory__INodeGuard = 'Factory<INodeGuard>',
1111
Factory__INodeTransformer = 'Factory<INodeTransformer[]>',
12-
Factory__IObfuscationResult = 'Factory<IObfuscationResult>',
12+
Factory__IObfuscatedCode = 'Factory<IObfuscatedCode>',
1313
Factory__IObfuscatingReplacer = 'Factory<IObfuscatingReplacer>',
1414
Factory__IPropertiesExtractor = 'Factory<IPropertiesExtractor>',
1515
Factory__TControlFlowStorage = 'Factory<TControlFlowStorage>',
@@ -27,7 +27,7 @@ export enum ServiceIdentifiers {
2727
INodeGuard = 'INodeGuard',
2828
INodeTransformer = 'INodeTransformer',
2929
IObfuscationEventEmitter = 'IObfuscationEventEmitter',
30-
IObfuscationResult = 'IObfuscationResult',
30+
IObfuscatedCode = 'IObfuscatedCode',
3131
IOptions = 'IOptions',
3232
IOptionsNormalizer = 'IOptionsNormalizer',
3333
IObfuscatingReplacer = 'IObfuscatingReplacer',

0 commit comments

Comments
 (0)