Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

automutate

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

automutate - npm Package Compare versions

Comparing version 0.3.3 to 0.5.0

docs/onboarding.md

22

lib/autoMutator.d.ts

@@ -5,2 +5,19 @@ import { ILogger } from "./logger";

/**
* Settings to initialize a new IAutoMutator.
*/
export interface IAutoMutatorSettings {
/**
* Applies individual waves of file mutations.
*/
mutationsApplier?: IMutationsApplier;
/**
* Provides waves of file mutations.
*/
mutationsProvider: IMutationsProvider;
/**
* Generates output messages for significant operations.
*/
logger?: ILogger;
}
/**
* Runs waves of file mutations.

@@ -35,6 +52,5 @@ */

*
* @param mutationsApplier Applies individual waves of file mutations.
* @param mutationsProvider Provides waves of file mutations.
* @param settings Settings to be used for initialization.
*/
constructor(mutationsApplier: IMutationsApplier, mutationsProvider: IMutationsProvider, logger: ILogger);
constructor(settings: IAutoMutatorSettings);
/**

@@ -41,0 +57,0 @@ * Runs waves of file mutations.

17

lib/autoMutator.js

@@ -10,2 +10,4 @@ "use strict";

};
const consoleLogger_1 = require("./loggers/consoleLogger");
const fileMutationsApplier_1 = require("./mutationsAppliers/fileMutationsApplier");
/**

@@ -18,9 +20,10 @@ * Runs waves of file mutations.

*
* @param mutationsApplier Applies individual waves of file mutations.
* @param mutationsProvider Provides waves of file mutations.
* @param settings Settings to be used for initialization.
*/
constructor(mutationsApplier, mutationsProvider, logger) {
this.mutationsApplier = mutationsApplier;
this.mutationsProvider = mutationsProvider;
this.logger = logger;
constructor(settings) {
this.logger = settings.logger || new consoleLogger_1.ConsoleLogger();
this.mutationsApplier = settings.mutationsApplier || new fileMutationsApplier_1.FileMutationsApplier({
logger: this.logger
});
this.mutationsProvider = settings.mutationsProvider;
}

@@ -48,2 +51,2 @@ /**

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hdXRvTXV0YXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFnQkE7O0dBRUc7QUFDSDtJQWdCSTs7Ozs7T0FLRztJQUNILFlBQVksZ0JBQW1DLEVBQUUsaUJBQXFDLEVBQUUsTUFBZTtRQUNuRyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ1UsR0FBRzs7WUFDWixPQUFPLElBQUksRUFBRSxDQUFDO2dCQUNWLE1BQU0sYUFBYSxHQUFtQixNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztvQkFDL0IsS0FBSyxDQUFDO2dCQUNWLENBQUM7Z0JBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDTCxDQUFDO0tBQUE7QUFDTCxDQUFDO0FBN0NZLG1CQUFXLGNBNkN2QixDQUFBIiwiZmlsZSI6ImF1dG9NdXRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuL2xvZ2dlclwiO1xyXG5pbXBvcnQgeyBJTXV0YXRpb25zQXBwbGllciB9IGZyb20gXCIuL211dGF0aW9uc0FwcGxpZXJcIjtcclxuaW1wb3J0IHsgSU11dGF0aW9uc1Byb3ZpZGVyLCBJTXV0YXRpb25zV2F2ZSB9IGZyb20gXCIuL211dGF0aW9uc1Byb3ZpZGVyXCI7XHJcblxyXG4vKipcclxuICogUnVucyB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUF1dG9NdXRhdG9yIHtcclxuICAgIC8qKlxyXG4gICAgICogUnVucyB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucy5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSBQcm9taXNlIGZvciB0aGUgd2F2ZXMgY29tcGxldGluZy5cclxuICAgICAqL1xyXG4gICAgcnVuKCk6IFByb21pc2U8dm9pZD47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSdW5zIHdhdmVzIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEF1dG9NdXRhdG9yIGltcGxlbWVudHMgSUF1dG9NdXRhdG9yIHtcclxuICAgIC8qKlxyXG4gICAgICogQXBwbGllcyBpbmRpdmlkdWFsIHdhdmVzIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG11dGF0aW9uc0FwcGxpZXI6IElNdXRhdGlvbnNBcHBsaWVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvdmlkZXMgd2F2ZXMgb2YgZmlsZSBtdXRhdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbXV0YXRpb25zUHJvdmlkZXI6IElNdXRhdGlvbnNQcm92aWRlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBvdXRwdXQgbWVzc2FnZXMgZm9yIHNpZ25pZmljYW50IG9wZXJhdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBJTG9nZ2VyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIEF1dG9NdXRhdG9yIGNsYXNzLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gbXV0YXRpb25zQXBwbGllciAgIEFwcGxpZXMgaW5kaXZpZHVhbCB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucy5cclxuICAgICAqIEBwYXJhbSBtdXRhdGlvbnNQcm92aWRlciAgIFByb3ZpZGVzIHdhdmVzIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihtdXRhdGlvbnNBcHBsaWVyOiBJTXV0YXRpb25zQXBwbGllciwgbXV0YXRpb25zUHJvdmlkZXI6IElNdXRhdGlvbnNQcm92aWRlciwgbG9nZ2VyOiBJTG9nZ2VyKSB7XHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNBcHBsaWVyID0gbXV0YXRpb25zQXBwbGllcjtcclxuICAgICAgICB0aGlzLm11dGF0aW9uc1Byb3ZpZGVyID0gbXV0YXRpb25zUHJvdmlkZXI7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSdW5zIHdhdmVzIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIFByb21pc2UgZm9yIHRoZSB3YXZlcyBjb21wbGV0aW5nLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG11dGF0aW9uc1dhdmU6IElNdXRhdGlvbnNXYXZlID0gYXdhaXQgdGhpcy5tdXRhdGlvbnNQcm92aWRlci5wcm92aWRlKCk7XHJcbiAgICAgICAgICAgIGlmICghbXV0YXRpb25zV2F2ZS5maWxlTXV0YXRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5sb2dnZXIub25XYXZlQmVnaW4obXV0YXRpb25zV2F2ZSk7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubXV0YXRpb25zQXBwbGllci5hcHBseShtdXRhdGlvbnNXYXZlLmZpbGVNdXRhdGlvbnMpO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5vbldhdmVFbmQobXV0YXRpb25zV2F2ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hdXRvTXV0YXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxnQ0FBOEIseUJBQXlCLENBQUMsQ0FBQTtBQUV4RCx1Q0FBcUMsMENBQTBDLENBQUMsQ0FBQTtBQW1DaEY7O0dBRUc7QUFDSDtJQWdCSTs7OztPQUlHO0lBQ0gsWUFBWSxRQUE4QjtRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSw2QkFBYSxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLDJDQUFvQixDQUFDO1lBQzFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUN0QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ1UsR0FBRzs7WUFDWixPQUFPLElBQUksRUFBRSxDQUFDO2dCQUNWLE1BQU0sYUFBYSxHQUFtQixNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztvQkFDL0IsS0FBSyxDQUFDO2dCQUNWLENBQUM7Z0JBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDTCxDQUFDO0tBQUE7QUFDTCxDQUFDO0FBOUNZLG1CQUFXLGNBOEN2QixDQUFBIiwiZmlsZSI6ImF1dG9NdXRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuL2xvZ2dlclwiO1xyXG5pbXBvcnQgeyBDb25zb2xlTG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2Vycy9jb25zb2xlTG9nZ2VyXCI7XHJcbmltcG9ydCB7IElNdXRhdGlvbnNBcHBsaWVyIH0gZnJvbSBcIi4vbXV0YXRpb25zQXBwbGllclwiO1xyXG5pbXBvcnQgeyBGaWxlTXV0YXRpb25zQXBwbGllciB9IGZyb20gXCIuL211dGF0aW9uc0FwcGxpZXJzL2ZpbGVNdXRhdGlvbnNBcHBsaWVyXCI7XHJcbmltcG9ydCB7IElNdXRhdGlvbnNQcm92aWRlciwgSU11dGF0aW9uc1dhdmUgfSBmcm9tIFwiLi9tdXRhdGlvbnNQcm92aWRlclwiO1xyXG5cclxuLyoqXHJcbiAqIFNldHRpbmdzIHRvIGluaXRpYWxpemUgYSBuZXcgSUF1dG9NdXRhdG9yLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJQXV0b011dGF0b3JTZXR0aW5ncyB7XHJcbiAgICAvKipcclxuICAgICAqIEFwcGxpZXMgaW5kaXZpZHVhbCB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucy5cclxuICAgICAqL1xyXG4gICAgbXV0YXRpb25zQXBwbGllcj86IElNdXRhdGlvbnNBcHBsaWVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvdmlkZXMgd2F2ZXMgb2YgZmlsZSBtdXRhdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIG11dGF0aW9uc1Byb3ZpZGVyOiBJTXV0YXRpb25zUHJvdmlkZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZXMgb3V0cHV0IG1lc3NhZ2VzIGZvciBzaWduaWZpY2FudCBvcGVyYXRpb25zLlxyXG4gICAgICovXHJcbiAgICBsb2dnZXI/OiBJTG9nZ2VyO1xyXG59XHJcblxyXG4vKipcclxuICogUnVucyB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUF1dG9NdXRhdG9yIHtcclxuICAgIC8qKlxyXG4gICAgICogUnVucyB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucy5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSBQcm9taXNlIGZvciB0aGUgd2F2ZXMgY29tcGxldGluZy5cclxuICAgICAqL1xyXG4gICAgcnVuKCk6IFByb21pc2U8dm9pZD47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSdW5zIHdhdmVzIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEF1dG9NdXRhdG9yIGltcGxlbWVudHMgSUF1dG9NdXRhdG9yIHtcclxuICAgIC8qKlxyXG4gICAgICogQXBwbGllcyBpbmRpdmlkdWFsIHdhdmVzIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG11dGF0aW9uc0FwcGxpZXI6IElNdXRhdGlvbnNBcHBsaWVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvdmlkZXMgd2F2ZXMgb2YgZmlsZSBtdXRhdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbXV0YXRpb25zUHJvdmlkZXI6IElNdXRhdGlvbnNQcm92aWRlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBvdXRwdXQgbWVzc2FnZXMgZm9yIHNpZ25pZmljYW50IG9wZXJhdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBJTG9nZ2VyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIEF1dG9NdXRhdG9yIGNsYXNzLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gc2V0dGluZ3MgICBTZXR0aW5ncyB0byBiZSB1c2VkIGZvciBpbml0aWFsaXphdGlvbi5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Ioc2V0dGluZ3M6IElBdXRvTXV0YXRvclNldHRpbmdzKSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBzZXR0aW5ncy5sb2dnZXIgfHwgbmV3IENvbnNvbGVMb2dnZXIoKTtcclxuICAgICAgICB0aGlzLm11dGF0aW9uc0FwcGxpZXIgPSBzZXR0aW5ncy5tdXRhdGlvbnNBcHBsaWVyIHx8IG5ldyBGaWxlTXV0YXRpb25zQXBwbGllcih7XHJcbiAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXJcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm11dGF0aW9uc1Byb3ZpZGVyID0gc2V0dGluZ3MubXV0YXRpb25zUHJvdmlkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSdW5zIHdhdmVzIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIFByb21pc2UgZm9yIHRoZSB3YXZlcyBjb21wbGV0aW5nLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG11dGF0aW9uc1dhdmU6IElNdXRhdGlvbnNXYXZlID0gYXdhaXQgdGhpcy5tdXRhdGlvbnNQcm92aWRlci5wcm92aWRlKCk7XHJcbiAgICAgICAgICAgIGlmICghbXV0YXRpb25zV2F2ZS5maWxlTXV0YXRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5sb2dnZXIub25XYXZlQmVnaW4obXV0YXRpb25zV2F2ZSk7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubXV0YXRpb25zQXBwbGllci5hcHBseShtdXRhdGlvbnNXYXZlLmZpbGVNdXRhdGlvbnMpO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5vbldhdmVFbmQobXV0YXRpb25zV2F2ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==

@@ -7,2 +7,19 @@ import { IFileProviderFactory } from "./fileProviderFactory";

/**
* Settings to initialize a new IMutationsApplier.
*/
export interface IMutationsApplierSettings {
/**
* Generates output messages for significant operations.
*/
logger: ILogger;
/**
* Creates file providers for files.
*/
fileProviderFactory: IFileProviderFactory;
/**
* Creates mutators for mutations.
*/
mutatorFactory: IMutatorFactory;
}
/**
* Applies individual waves of file mutations.

@@ -46,7 +63,5 @@ */

*
* @param logger Generates output messages for significant operations.
* @param fileProviderFactory Creates file providers for files.
* @param mutatorFactory Creates mutators for mutations.
* @param settings Settings to be used for initialization.
*/
constructor(logger: ILogger, fileProviderFactory: IFileProviderFactory, mutatorFactory: IMutatorFactory);
constructor(settings: IMutationsApplierSettings);
/**

@@ -53,0 +68,0 @@ * Applies an iteration of file mutations.

@@ -17,10 +17,8 @@ "use strict";

*
* @param logger Generates output messages for significant operations.
* @param fileProviderFactory Creates file providers for files.
* @param mutatorFactory Creates mutators for mutations.
* @param settings Settings to be used for initialization.
*/
constructor(logger, fileProviderFactory, mutatorFactory) {
this.logger = logger;
this.fileProviderFactory = fileProviderFactory;
this.mutatorFactory = mutatorFactory;
constructor(settings) {
this.logger = settings.logger;
this.fileProviderFactory = settings.fileProviderFactory;
this.mutatorFactory = settings.mutatorFactory;
}

@@ -36,5 +34,5 @@ /**

yield Promise.all(Object.keys(mutations)
.map((fileName) => {
return this.applyFileMutations(fileName, mutations[fileName]);
}));
.map((fileName) => __awaiter(this, void 0, void 0, function* () {
yield this.applyFileMutations(fileName, mutations[fileName]);
})));
this.logger.onComplete();

@@ -87,2 +85,2 @@ });

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tdXRhdGlvbnNBcHBsaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQTZCQTs7R0FFRztBQUNIO0lBZ0JJOzs7Ozs7T0FNRztJQUNILFlBQW1CLE1BQWUsRUFBRSxtQkFBeUMsRUFBRSxjQUErQjtRQUMxRyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ1UsS0FBSyxDQUFDLFNBQXlCOztZQUN4QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7aUJBQ2pCLEdBQUcsQ0FBQyxDQUFDLFFBQWdCO2dCQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRVosSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixDQUFDO0tBQUE7SUFFRDs7Ozs7O09BTUc7SUFDVSxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLFNBQXNCOztZQUNwRSxNQUFNLGdCQUFnQixHQUFnQixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sWUFBWSxHQUFrQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hGLElBQUksWUFBWSxHQUFXLE1BQU0sWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJELEdBQUcsQ0FBQyxDQUFDLE1BQU0sUUFBUSxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDdEMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELE1BQU0sWUFBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN2QyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hCLENBQUM7S0FBQTtJQUVEOzs7OztPQUtHO0lBQ0ssY0FBYyxDQUFDLFNBQXNCO1FBQ3pDLE1BQU0sT0FBTyxHQUFnQixFQUFFLENBQUM7UUFDaEMsSUFBSSxTQUFTLEdBQVcsUUFBUSxDQUFDO1FBRWpDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFXLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hELE1BQU0sUUFBUSxHQUFjLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDM0QsUUFBUSxDQUFDO1lBQ2IsQ0FBQztZQUVELFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVksRUFBRSxDQUFZO1lBQzNDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztBQUNMLENBQUM7QUExRlksd0JBQWdCLG1CQTBGNUIsQ0FBQSIsImZpbGUiOiJtdXRhdGlvbnNBcHBsaWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZpbGVQcm92aWRlciB9IGZyb20gXCIuL2ZpbGVQcm92aWRlclwiO1xyXG5pbXBvcnQgeyBJRmlsZVByb3ZpZGVyRmFjdG9yeSB9IGZyb20gXCIuL2ZpbGVQcm92aWRlckZhY3RvcnlcIjtcclxuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuL2xvZ2dlclwiO1xyXG5pbXBvcnQgeyBJTXV0YXRpb24gfSBmcm9tIFwiLi9tdXRhdGlvblwiO1xyXG5pbXBvcnQgeyBJRmlsZU11dGF0aW9ucyB9IGZyb20gXCIuL211dGF0aW9uc1Byb3ZpZGVyXCI7XHJcbmltcG9ydCB7IElNdXRhdG9yRmFjdG9yeSB9IGZyb20gXCIuL211dGF0b3JGYWN0b3J5XCI7XHJcblxyXG4vKipcclxuICogQXBwbGllcyBpbmRpdmlkdWFsIHdhdmVzIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJTXV0YXRpb25zQXBwbGllciB7XHJcbiAgICAvKipcclxuICAgICAqIEFwcGxpZXMgYW4gaXRlcmF0aW9uIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gbXV0YXRpb25zICAgTXV0YXRpb25zIHRvIGJlIGFwcGxpZWQgdG8gZmlsZXMuXHJcbiAgICAgKiBAcmV0dXJucyBBIFByb21pc2UgZm9yIHRoZSBmaWxlIG11dGF0aW9ucyBiZWluZyBhcHBsaWVkLlxyXG4gICAgICovXHJcbiAgICBhcHBseShtdXRhdGlvbnM6IElGaWxlTXV0YXRpb25zKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFwcGxpZXMgYSBmaWxlJ3MgbXV0YXRpb25zLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gZmlsZU5hbWUgICBOYW1lIG9mIHRoZSBmaWxlLlxyXG4gICAgICogQHBhcmFtIG11dGF0aW9ucyAgIE11dGF0aW9ucyB0byBiZSBhcHBsaWVkIHRvIHRoZSBmaWxlLlxyXG4gICAgICogQHJldHVybnMgQSBQcm9taXNlIGZvciB0aGUgcmVzdWx0IG9mIHRoZSBmaWxlJ3MgbXV0YXRpb25zLlxyXG4gICAgICovXHJcbiAgICBhcHBseUZpbGVNdXRhdGlvbnMoZmlsZU5hbWU6IHN0cmluZywgbXV0YXRpb25zOiBJTXV0YXRpb25bXSk6IFByb21pc2U8c3RyaW5nPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFwcGxpZXMgaW5kaXZpZHVhbCB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBNdXRhdGlvbnNBcHBsaWVyIGltcGxlbWVudHMgSU11dGF0aW9uc0FwcGxpZXIge1xyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZXMgb3V0cHV0IG1lc3NhZ2VzIGZvciBzaWduaWZpY2FudCBvcGVyYXRpb25zLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgZmlsZSBwcm92aWRlcnMgZm9yIGZpbGVzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVQcm92aWRlckZhY3Rvcnk6IElGaWxlUHJvdmlkZXJGYWN0b3J5O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBtdXRhdG9ycyBmb3IgbXV0YXRpb25zLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG11dGF0b3JGYWN0b3J5OiBJTXV0YXRvckZhY3Rvcnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgTXV0YXRpb25zQXBwbGllciBjbGFzcy5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGxvZ2dlciAgIEdlbmVyYXRlcyBvdXRwdXQgbWVzc2FnZXMgZm9yIHNpZ25pZmljYW50IG9wZXJhdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0gZmlsZVByb3ZpZGVyRmFjdG9yeSAgIENyZWF0ZXMgZmlsZSBwcm92aWRlcnMgZm9yIGZpbGVzLlxyXG4gICAgICogQHBhcmFtIG11dGF0b3JGYWN0b3J5ICAgQ3JlYXRlcyBtdXRhdG9ycyBmb3IgbXV0YXRpb25zLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IobG9nZ2VyOiBJTG9nZ2VyLCBmaWxlUHJvdmlkZXJGYWN0b3J5OiBJRmlsZVByb3ZpZGVyRmFjdG9yeSwgbXV0YXRvckZhY3Rvcnk6IElNdXRhdG9yRmFjdG9yeSkge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xyXG4gICAgICAgIHRoaXMuZmlsZVByb3ZpZGVyRmFjdG9yeSA9IGZpbGVQcm92aWRlckZhY3Rvcnk7XHJcbiAgICAgICAgdGhpcy5tdXRhdG9yRmFjdG9yeSA9IG11dGF0b3JGYWN0b3J5O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBwbGllcyBhbiBpdGVyYXRpb24gb2YgZmlsZSBtdXRhdGlvbnMuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBtdXRhdGlvbnMgICBNdXRhdGlvbnMgdG8gYmUgYXBwbGllZCB0byBmaWxlcy5cclxuICAgICAqIEByZXR1cm5zIEEgUHJvbWlzZSBmb3IgdGhlIGZpbGUgbXV0YXRpb25zIGJlaW5nIGFwcGxpZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBhcHBseShtdXRhdGlvbnM6IElGaWxlTXV0YXRpb25zKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG11dGF0aW9ucylcclxuICAgICAgICAgICAgICAgIC5tYXAoKGZpbGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseUZpbGVNdXRhdGlvbnMoZmlsZU5hbWUsIG11dGF0aW9uc1tmaWxlTmFtZV0pO1xyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICB0aGlzLmxvZ2dlci5vbkNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBsaWVzIGEgZmlsZSdzIG11dGF0aW9ucy5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGZpbGVOYW1lICAgTmFtZSBvZiB0aGUgZmlsZS5cclxuICAgICAqIEBwYXJhbSBtdXRhdGlvbnMgICBNdXRhdGlvbnMgdG8gYmUgYXBwbGllZCB0byB0aGUgZmlsZS5cclxuICAgICAqIEByZXR1cm5zIEEgUHJvbWlzZSBmb3IgdGhlIHJlc3VsdCBvZiB0aGUgZmlsZSdzIG11dGF0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFzeW5jIGFwcGx5RmlsZU11dGF0aW9ucyhmaWxlTmFtZTogc3RyaW5nLCBtdXRhdGlvbnM6IElNdXRhdGlvbltdKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICBjb25zdCBtdXRhdGlvbnNPcmRlcmVkOiBJTXV0YXRpb25bXSA9IHRoaXMub3JkZXJNdXRhdGlvbnMobXV0YXRpb25zKTtcclxuICAgICAgICBjb25zdCBmaWxlUHJvdmlkZXI6IElGaWxlUHJvdmlkZXIgPSB0aGlzLmZpbGVQcm92aWRlckZhY3RvcnkuZ2VuZXJhdGUoZmlsZU5hbWUpO1xyXG4gICAgICAgIGxldCBmaWxlQ29udGVudHM6IHN0cmluZyA9IGF3YWl0IGZpbGVQcm92aWRlci5yZWFkKCk7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zT3JkZXJlZCkge1xyXG4gICAgICAgICAgICBmaWxlQ29udGVudHMgPSB0aGlzLm11dGF0b3JGYWN0b3J5LmdlbmVyYXRlQW5kQXBwbHkoZmlsZUNvbnRlbnRzLCBtdXRhdGlvbik7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLm9uTXV0YXRpb24oZmlsZU5hbWUsIG11dGF0aW9uKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGF3YWl0IGZpbGVQcm92aWRlci53cml0ZShmaWxlQ29udGVudHMpO1xyXG4gICAgICAgIHJldHVybiBmaWxlQ29udGVudHM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcmRlcnMgYSBzZXQgb2YgbXV0YXRpb25zIGxhc3QtdG8tZmlyc3QsIHdpdGhvdXQgb3ZlcmxhcHMuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBtdXRhdGlvbnMgICBNdXRhdGlvbnMgdG8gYmUgYXBwbGllZCB0byBhIGZpbGUuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgbXV0YXRpb25zIGluIGxhc3QtdG8tZmlyc3Qgb3JkZXIsIHdpdGhvdXQgb3ZlcmxhcHMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb3JkZXJNdXRhdGlvbnMobXV0YXRpb25zOiBJTXV0YXRpb25bXSk6IElNdXRhdGlvbltdIHtcclxuICAgICAgICBjb25zdCBvcmRlcmVkOiBJTXV0YXRpb25bXSA9IFtdO1xyXG4gICAgICAgIGxldCBsYXN0U3RhcnQ6IG51bWJlciA9IEluZmluaXR5O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSBtdXRhdGlvbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDEpIHtcclxuICAgICAgICAgICAgY29uc3QgbXV0YXRpb246IElNdXRhdGlvbiA9IG11dGF0aW9uc1tpXTtcclxuICAgICAgICAgICAgaWYgKChtdXRhdGlvbi5yYW5nZS5lbmQgfHwgbXV0YXRpb24ucmFuZ2UuYmVnaW4pID4gbGFzdFN0YXJ0KSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGFzdFN0YXJ0ID0gbXV0YXRpb24ucmFuZ2UuYmVnaW47XHJcbiAgICAgICAgICAgIG9yZGVyZWQucHVzaChtdXRhdGlvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3JkZXJlZC5zb3J0KChhOiBJTXV0YXRpb24sIGI6IElNdXRhdGlvbik6IG51bWJlciA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoYi5yYW5nZS5lbmQgfHwgYi5yYW5nZS5iZWdpbikgLSAoYS5yYW5nZS5lbmQgfHwgYS5yYW5nZS5iZWdpbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tdXRhdGlvbnNBcHBsaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWlEQTs7R0FFRztBQUNIO0lBZ0JJOzs7O09BSUc7SUFDSCxZQUFtQixRQUFtQztRQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztRQUN4RCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ1UsS0FBSyxDQUFDLFNBQXlCOztZQUN4QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7aUJBQ2pCLEdBQUcsQ0FBQyxDQUFPLFFBQWdCO2dCQUN4QixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO1lBRVosSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixDQUFDO0tBQUE7SUFFRDs7Ozs7O09BTUc7SUFDVSxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLFNBQXNCOztZQUNwRSxNQUFNLGdCQUFnQixHQUFnQixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sWUFBWSxHQUFrQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hGLElBQUksWUFBWSxHQUFXLE1BQU0sWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJELEdBQUcsQ0FBQyxDQUFDLE1BQU0sUUFBUSxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDdEMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELE1BQU0sWUFBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN2QyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hCLENBQUM7S0FBQTtJQUVEOzs7OztPQUtHO0lBQ0ssY0FBYyxDQUFDLFNBQXNCO1FBQ3pDLE1BQU0sT0FBTyxHQUFnQixFQUFFLENBQUM7UUFDaEMsSUFBSSxTQUFTLEdBQVcsUUFBUSxDQUFDO1FBRWpDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFXLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hELE1BQU0sUUFBUSxHQUFjLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDM0QsUUFBUSxDQUFDO1lBQ2IsQ0FBQztZQUVELFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVksRUFBRSxDQUFZO1lBQzNDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztBQUNMLENBQUM7QUF4Rlksd0JBQWdCLG1CQXdGNUIsQ0FBQSIsImZpbGUiOiJtdXRhdGlvbnNBcHBsaWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZpbGVQcm92aWRlciB9IGZyb20gXCIuL2ZpbGVQcm92aWRlclwiO1xyXG5pbXBvcnQgeyBJRmlsZVByb3ZpZGVyRmFjdG9yeSB9IGZyb20gXCIuL2ZpbGVQcm92aWRlckZhY3RvcnlcIjtcclxuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuL2xvZ2dlclwiO1xyXG5pbXBvcnQgeyBJTXV0YXRpb24gfSBmcm9tIFwiLi9tdXRhdGlvblwiO1xyXG5pbXBvcnQgeyBJRmlsZU11dGF0aW9ucyB9IGZyb20gXCIuL211dGF0aW9uc1Byb3ZpZGVyXCI7XHJcbmltcG9ydCB7IElNdXRhdG9yRmFjdG9yeSB9IGZyb20gXCIuL211dGF0b3JGYWN0b3J5XCI7XHJcblxyXG4vKipcclxuICogU2V0dGluZ3MgdG8gaW5pdGlhbGl6ZSBhIG5ldyBJTXV0YXRpb25zQXBwbGllci5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU11dGF0aW9uc0FwcGxpZXJTZXR0aW5ncyB7XHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBvdXRwdXQgbWVzc2FnZXMgZm9yIHNpZ25pZmljYW50IG9wZXJhdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIGxvZ2dlcjogSUxvZ2dlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgZmlsZSBwcm92aWRlcnMgZm9yIGZpbGVzLlxyXG4gICAgICovXHJcbiAgICBmaWxlUHJvdmlkZXJGYWN0b3J5OiBJRmlsZVByb3ZpZGVyRmFjdG9yeTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgbXV0YXRvcnMgZm9yIG11dGF0aW9ucy5cclxuICAgICAqL1xyXG4gICAgbXV0YXRvckZhY3Rvcnk6IElNdXRhdG9yRmFjdG9yeTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFwcGxpZXMgaW5kaXZpZHVhbCB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU11dGF0aW9uc0FwcGxpZXIge1xyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBsaWVzIGFuIGl0ZXJhdGlvbiBvZiBmaWxlIG11dGF0aW9ucy5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIG11dGF0aW9ucyAgIE11dGF0aW9ucyB0byBiZSBhcHBsaWVkIHRvIGZpbGVzLlxyXG4gICAgICogQHJldHVybnMgQSBQcm9taXNlIGZvciB0aGUgZmlsZSBtdXRhdGlvbnMgYmVpbmcgYXBwbGllZC5cclxuICAgICAqL1xyXG4gICAgYXBwbHkobXV0YXRpb25zOiBJRmlsZU11dGF0aW9ucyk6IFByb21pc2U8dm9pZD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBsaWVzIGEgZmlsZSdzIG11dGF0aW9ucy5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGZpbGVOYW1lICAgTmFtZSBvZiB0aGUgZmlsZS5cclxuICAgICAqIEBwYXJhbSBtdXRhdGlvbnMgICBNdXRhdGlvbnMgdG8gYmUgYXBwbGllZCB0byB0aGUgZmlsZS5cclxuICAgICAqIEByZXR1cm5zIEEgUHJvbWlzZSBmb3IgdGhlIHJlc3VsdCBvZiB0aGUgZmlsZSdzIG11dGF0aW9ucy5cclxuICAgICAqL1xyXG4gICAgYXBwbHlGaWxlTXV0YXRpb25zKGZpbGVOYW1lOiBzdHJpbmcsIG11dGF0aW9uczogSU11dGF0aW9uW10pOiBQcm9taXNlPHN0cmluZz47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBcHBsaWVzIGluZGl2aWR1YWwgd2F2ZXMgb2YgZmlsZSBtdXRhdGlvbnMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTXV0YXRpb25zQXBwbGllciBpbXBsZW1lbnRzIElNdXRhdGlvbnNBcHBsaWVyIHtcclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGVzIG91dHB1dCBtZXNzYWdlcyBmb3Igc2lnbmlmaWNhbnQgb3BlcmF0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IElMb2dnZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGZpbGUgcHJvdmlkZXJzIGZvciBmaWxlcy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlUHJvdmlkZXJGYWN0b3J5OiBJRmlsZVByb3ZpZGVyRmFjdG9yeTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgbXV0YXRvcnMgZm9yIG11dGF0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtdXRhdG9yRmFjdG9yeTogSU11dGF0b3JGYWN0b3J5O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIE11dGF0aW9uc0FwcGxpZXIgY2xhc3MuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBzZXR0aW5ncyAgIFNldHRpbmdzIHRvIGJlIHVzZWQgZm9yIGluaXRpYWxpemF0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2V0dGluZ3M6IElNdXRhdGlvbnNBcHBsaWVyU2V0dGluZ3MpIHtcclxuICAgICAgICB0aGlzLmxvZ2dlciA9IHNldHRpbmdzLmxvZ2dlcjtcclxuICAgICAgICB0aGlzLmZpbGVQcm92aWRlckZhY3RvcnkgPSBzZXR0aW5ncy5maWxlUHJvdmlkZXJGYWN0b3J5O1xyXG4gICAgICAgIHRoaXMubXV0YXRvckZhY3RvcnkgPSBzZXR0aW5ncy5tdXRhdG9yRmFjdG9yeTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFwcGxpZXMgYW4gaXRlcmF0aW9uIG9mIGZpbGUgbXV0YXRpb25zLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gbXV0YXRpb25zICAgTXV0YXRpb25zIHRvIGJlIGFwcGxpZWQgdG8gZmlsZXMuXHJcbiAgICAgKiBAcmV0dXJucyBBIFByb21pc2UgZm9yIHRoZSBmaWxlIG11dGF0aW9ucyBiZWluZyBhcHBsaWVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgYXBwbHkobXV0YXRpb25zOiBJRmlsZU11dGF0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhtdXRhdGlvbnMpXHJcbiAgICAgICAgICAgICAgICAubWFwKGFzeW5jIChmaWxlTmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5hcHBseUZpbGVNdXRhdGlvbnMoZmlsZU5hbWUsIG11dGF0aW9uc1tmaWxlTmFtZV0pO1xyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICB0aGlzLmxvZ2dlci5vbkNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBsaWVzIGEgZmlsZSdzIG11dGF0aW9ucy5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGZpbGVOYW1lICAgTmFtZSBvZiB0aGUgZmlsZS5cclxuICAgICAqIEBwYXJhbSBtdXRhdGlvbnMgICBNdXRhdGlvbnMgdG8gYmUgYXBwbGllZCB0byB0aGUgZmlsZS5cclxuICAgICAqIEByZXR1cm5zIEEgUHJvbWlzZSBmb3IgdGhlIHJlc3VsdCBvZiB0aGUgZmlsZSdzIG11dGF0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFzeW5jIGFwcGx5RmlsZU11dGF0aW9ucyhmaWxlTmFtZTogc3RyaW5nLCBtdXRhdGlvbnM6IElNdXRhdGlvbltdKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICBjb25zdCBtdXRhdGlvbnNPcmRlcmVkOiBJTXV0YXRpb25bXSA9IHRoaXMub3JkZXJNdXRhdGlvbnMobXV0YXRpb25zKTtcclxuICAgICAgICBjb25zdCBmaWxlUHJvdmlkZXI6IElGaWxlUHJvdmlkZXIgPSB0aGlzLmZpbGVQcm92aWRlckZhY3RvcnkuZ2VuZXJhdGUoZmlsZU5hbWUpO1xyXG4gICAgICAgIGxldCBmaWxlQ29udGVudHM6IHN0cmluZyA9IGF3YWl0IGZpbGVQcm92aWRlci5yZWFkKCk7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zT3JkZXJlZCkge1xyXG4gICAgICAgICAgICBmaWxlQ29udGVudHMgPSB0aGlzLm11dGF0b3JGYWN0b3J5LmdlbmVyYXRlQW5kQXBwbHkoZmlsZUNvbnRlbnRzLCBtdXRhdGlvbik7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLm9uTXV0YXRpb24oZmlsZU5hbWUsIG11dGF0aW9uKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGF3YWl0IGZpbGVQcm92aWRlci53cml0ZShmaWxlQ29udGVudHMpO1xyXG4gICAgICAgIHJldHVybiBmaWxlQ29udGVudHM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcmRlcnMgYSBzZXQgb2YgbXV0YXRpb25zIGxhc3QtdG8tZmlyc3QsIHdpdGhvdXQgb3ZlcmxhcHMuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBtdXRhdGlvbnMgICBNdXRhdGlvbnMgdG8gYmUgYXBwbGllZCB0byBhIGZpbGUuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgbXV0YXRpb25zIGluIGxhc3QtdG8tZmlyc3Qgb3JkZXIsIHdpdGhvdXQgb3ZlcmxhcHMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb3JkZXJNdXRhdGlvbnMobXV0YXRpb25zOiBJTXV0YXRpb25bXSk6IElNdXRhdGlvbltdIHtcclxuICAgICAgICBjb25zdCBvcmRlcmVkOiBJTXV0YXRpb25bXSA9IFtdO1xyXG4gICAgICAgIGxldCBsYXN0U3RhcnQ6IG51bWJlciA9IEluZmluaXR5O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSBtdXRhdGlvbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDEpIHtcclxuICAgICAgICAgICAgY29uc3QgbXV0YXRpb246IElNdXRhdGlvbiA9IG11dGF0aW9uc1tpXTtcclxuICAgICAgICAgICAgaWYgKChtdXRhdGlvbi5yYW5nZS5lbmQgfHwgbXV0YXRpb24ucmFuZ2UuYmVnaW4pID4gbGFzdFN0YXJ0KSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGFzdFN0YXJ0ID0gbXV0YXRpb24ucmFuZ2UuYmVnaW47XHJcbiAgICAgICAgICAgIG9yZGVyZWQucHVzaChtdXRhdGlvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3JkZXJlZC5zb3J0KChhOiBJTXV0YXRpb24sIGI6IElNdXRhdGlvbik6IG51bWJlciA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoYi5yYW5nZS5lbmQgfHwgYi5yYW5nZS5iZWdpbikgLSAoYS5yYW5nZS5lbmQgfHwgYS5yYW5nZS5iZWdpbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19

@@ -6,4 +6,8 @@ import { ILogger } from "../logger";

*/
export interface IFileMutationSettings {
export interface IFileMutationsApplierSettings {
/**
* Generates output messages for significant operations.
*/
logger: ILogger;
/**
* Additional directories to search for mutators within.

@@ -20,6 +24,5 @@ */

*
* @param logger Generates output messages for significant operations.
* @param fileSettings Settings for manipulating local files.
* @param settings Settings to be used for initialization.
*/
constructor(logger: ILogger, settings?: IFileMutationSettings);
constructor(settings: IFileMutationsApplierSettings);
}

@@ -15,10 +15,13 @@ "use strict";

*
* @param logger Generates output messages for significant operations.
* @param fileSettings Settings for manipulating local files.
* @param settings Settings to be used for initialization.
*/
constructor(logger, settings = {}) {
super(logger, new fileProviderFactory_1.FileProviderFactory((fileName) => new localFileProvider_1.LocalFileProvider(fileName)), new mutatorFactory_1.MutatorFactory(new mutatorSearcher_1.MutatorSearcher([
path.join(__dirname, "../../lib/mutators"),
...(settings.mutatorDirectories || [])
]), logger));
constructor(settings) {
super({
logger: settings.logger,
fileProviderFactory: new fileProviderFactory_1.FileProviderFactory((fileName) => new localFileProvider_1.LocalFileProvider(fileName)),
mutatorFactory: new mutatorFactory_1.MutatorFactory(new mutatorSearcher_1.MutatorSearcher([
path.join(__dirname, "../../lib/mutators"),
...(settings.mutatorDirectories || [])
]), settings.logger)
});
}

@@ -28,2 +31,2 @@ }

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tdXRhdGlvbnNBcHBsaWVycy9maWxlTXV0YXRpb25zQXBwbGllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBWSxJQUFJLFdBQU0sTUFBTSxDQUFDLENBQUE7QUFHN0Isc0NBQW9DLHdCQUF3QixDQUFDLENBQUE7QUFFN0Qsb0NBQWtDLG9DQUFvQyxDQUFDLENBQUE7QUFDdkUsbUNBQWlDLHFCQUFxQixDQUFDLENBQUE7QUFDdkQsaUNBQStCLG1CQUFtQixDQUFDLENBQUE7QUFDbkQsa0NBQWdDLG9CQUFvQixDQUFDLENBQUE7QUFZckQ7O0dBRUc7QUFDSCxtQ0FBMEMsbUNBQWdCO0lBQ3REOzs7OztPQUtHO0lBQ0gsWUFBbUIsTUFBZSxFQUFFLFFBQVEsR0FBMEIsRUFBRTtRQUNwRSxNQUNJLE1BQU0sRUFDTixJQUFJLHlDQUFtQixDQUNuQixDQUFDLFFBQWdCLEtBQW9CLElBQUkscUNBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDekUsSUFBSSwrQkFBYyxDQUNkLElBQUksaUNBQWUsQ0FBQztZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQztZQUMxQyxHQUFHLENBQUMsUUFBUSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQztTQUN6QyxDQUFDLEVBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQW5CWSw0QkFBb0IsdUJBbUJoQyxDQUFBIiwiZmlsZSI6Im11dGF0aW9uc0FwcGxpZXJzL2ZpbGVNdXRhdGlvbnNBcHBsaWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xyXG5cclxuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi9sb2dnZXJcIjtcclxuaW1wb3J0IHsgRmlsZVByb3ZpZGVyRmFjdG9yeSB9IGZyb20gXCIuLi9maWxlUHJvdmlkZXJGYWN0b3J5XCI7XHJcbmltcG9ydCB7IElGaWxlUHJvdmlkZXIgfSBmcm9tIFwiLi4vZmlsZVByb3ZpZGVyXCI7XHJcbmltcG9ydCB7IExvY2FsRmlsZVByb3ZpZGVyIH0gZnJvbSBcIi4uL2ZpbGVQcm92aWRlcnMvbG9jYWxGaWxlUHJvdmlkZXJcIjtcclxuaW1wb3J0IHsgTXV0YXRpb25zQXBwbGllciB9IGZyb20gXCIuLi9tdXRhdGlvbnNBcHBsaWVyXCI7XHJcbmltcG9ydCB7IE11dGF0b3JGYWN0b3J5IH0gZnJvbSBcIi4uL211dGF0b3JGYWN0b3J5XCI7XHJcbmltcG9ydCB7IE11dGF0b3JTZWFyY2hlciB9IGZyb20gXCIuLi9tdXRhdG9yU2VhcmNoZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXR0aW5ncyB0byBhcHBseSBpbmRpdmlkdWFsIHdhdmVzIG9mIGZpbGUgbXV0YXRpb25zIHRvIGxvY2FsIGZpbGVzLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJRmlsZU11dGF0aW9uU2V0dGluZ3Mge1xyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRpdGlvbmFsIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3IgbXV0YXRvcnMgd2l0aGluLlxyXG4gICAgICovXHJcbiAgICBtdXRhdG9yRGlyZWN0b3JpZXM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFwcGxpZXMgaW5kaXZpZHVhbCB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucyB0byBsb2NhbCBmaWxlcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBGaWxlTXV0YXRpb25zQXBwbGllciBleHRlbmRzIE11dGF0aW9uc0FwcGxpZXIge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgRmlsZU11dGF0aW9uc0FwcGxpZXIgY2xhc3MuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBsb2dnZXIgICBHZW5lcmF0ZXMgb3V0cHV0IG1lc3NhZ2VzIGZvciBzaWduaWZpY2FudCBvcGVyYXRpb25zLlxyXG4gICAgICogQHBhcmFtIGZpbGVTZXR0aW5ncyAgIFNldHRpbmdzIGZvciBtYW5pcHVsYXRpbmcgbG9jYWwgZmlsZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihsb2dnZXI6IElMb2dnZXIsIHNldHRpbmdzOiBJRmlsZU11dGF0aW9uU2V0dGluZ3MgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKFxyXG4gICAgICAgICAgICBsb2dnZXIsXHJcbiAgICAgICAgICAgIG5ldyBGaWxlUHJvdmlkZXJGYWN0b3J5KFxyXG4gICAgICAgICAgICAgICAgKGZpbGVOYW1lOiBzdHJpbmcpOiBJRmlsZVByb3ZpZGVyID0+IG5ldyBMb2NhbEZpbGVQcm92aWRlcihmaWxlTmFtZSkpLFxyXG4gICAgICAgICAgICBuZXcgTXV0YXRvckZhY3RvcnkoXHJcbiAgICAgICAgICAgICAgICBuZXcgTXV0YXRvclNlYXJjaGVyKFtcclxuICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uLy4uL2xpYi9tdXRhdG9yc1wiKSxcclxuICAgICAgICAgICAgICAgICAgICAuLi4oc2V0dGluZ3MubXV0YXRvckRpcmVjdG9yaWVzIHx8IFtdKVxyXG4gICAgICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgICAgICBsb2dnZXIpKTtcclxuICAgIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tdXRhdGlvbnNBcHBsaWVycy9maWxlTXV0YXRpb25zQXBwbGllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBWSxJQUFJLFdBQU0sTUFBTSxDQUFDLENBQUE7QUFHN0Isc0NBQW9DLHdCQUF3QixDQUFDLENBQUE7QUFFN0Qsb0NBQWtDLG9DQUFvQyxDQUFDLENBQUE7QUFDdkUsbUNBQWlDLHFCQUFxQixDQUFDLENBQUE7QUFDdkQsaUNBQStCLG1CQUFtQixDQUFDLENBQUE7QUFDbkQsa0NBQWdDLG9CQUFvQixDQUFDLENBQUE7QUFpQnJEOztHQUVHO0FBQ0gsbUNBQTBDLG1DQUFnQjtJQUN0RDs7OztPQUlHO0lBQ0gsWUFBbUIsUUFBdUM7UUFDdEQsTUFBTTtZQUNGLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTtZQUN2QixtQkFBbUIsRUFBRSxJQUFJLHlDQUFtQixDQUN4QyxDQUFDLFFBQWdCLEtBQW9CLElBQUkscUNBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekUsY0FBYyxFQUFFLElBQUksK0JBQWMsQ0FDOUIsSUFBSSxpQ0FBZSxDQUFDO2dCQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQztnQkFDMUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7YUFDekMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxNQUFNLENBQUM7U0FDdkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztBQUNMLENBQUM7QUFuQlksNEJBQW9CLHVCQW1CaEMsQ0FBQSIsImZpbGUiOiJtdXRhdGlvbnNBcHBsaWVycy9maWxlTXV0YXRpb25zQXBwbGllci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcclxuXHJcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi4vbG9nZ2VyXCI7XHJcbmltcG9ydCB7IEZpbGVQcm92aWRlckZhY3RvcnkgfSBmcm9tIFwiLi4vZmlsZVByb3ZpZGVyRmFjdG9yeVwiO1xyXG5pbXBvcnQgeyBJRmlsZVByb3ZpZGVyIH0gZnJvbSBcIi4uL2ZpbGVQcm92aWRlclwiO1xyXG5pbXBvcnQgeyBMb2NhbEZpbGVQcm92aWRlciB9IGZyb20gXCIuLi9maWxlUHJvdmlkZXJzL2xvY2FsRmlsZVByb3ZpZGVyXCI7XHJcbmltcG9ydCB7IE11dGF0aW9uc0FwcGxpZXIgfSBmcm9tIFwiLi4vbXV0YXRpb25zQXBwbGllclwiO1xyXG5pbXBvcnQgeyBNdXRhdG9yRmFjdG9yeSB9IGZyb20gXCIuLi9tdXRhdG9yRmFjdG9yeVwiO1xyXG5pbXBvcnQgeyBNdXRhdG9yU2VhcmNoZXIgfSBmcm9tIFwiLi4vbXV0YXRvclNlYXJjaGVyXCI7XHJcblxyXG4vKipcclxuICogU2V0dGluZ3MgdG8gYXBwbHkgaW5kaXZpZHVhbCB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucyB0byBsb2NhbCBmaWxlcy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZpbGVNdXRhdGlvbnNBcHBsaWVyU2V0dGluZ3Mge1xyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZXMgb3V0cHV0IG1lc3NhZ2VzIGZvciBzaWduaWZpY2FudCBvcGVyYXRpb25zLlxyXG4gICAgICovXHJcbiAgICBsb2dnZXI6IElMb2dnZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRpdGlvbmFsIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3IgbXV0YXRvcnMgd2l0aGluLlxyXG4gICAgICovXHJcbiAgICBtdXRhdG9yRGlyZWN0b3JpZXM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFwcGxpZXMgaW5kaXZpZHVhbCB3YXZlcyBvZiBmaWxlIG11dGF0aW9ucyB0byBsb2NhbCBmaWxlcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBGaWxlTXV0YXRpb25zQXBwbGllciBleHRlbmRzIE11dGF0aW9uc0FwcGxpZXIge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgRmlsZU11dGF0aW9uc0FwcGxpZXIgY2xhc3MuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBzZXR0aW5ncyAgIFNldHRpbmdzIHRvIGJlIHVzZWQgZm9yIGluaXRpYWxpemF0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2V0dGluZ3M6IElGaWxlTXV0YXRpb25zQXBwbGllclNldHRpbmdzKSB7XHJcbiAgICAgICAgc3VwZXIoe1xyXG4gICAgICAgICAgICBsb2dnZXI6IHNldHRpbmdzLmxvZ2dlcixcclxuICAgICAgICAgICAgZmlsZVByb3ZpZGVyRmFjdG9yeTogbmV3IEZpbGVQcm92aWRlckZhY3RvcnkoXHJcbiAgICAgICAgICAgICAgICAoZmlsZU5hbWU6IHN0cmluZyk6IElGaWxlUHJvdmlkZXIgPT4gbmV3IExvY2FsRmlsZVByb3ZpZGVyKGZpbGVOYW1lKSksXHJcbiAgICAgICAgICAgIG11dGF0b3JGYWN0b3J5OiBuZXcgTXV0YXRvckZhY3RvcnkoXHJcbiAgICAgICAgICAgICAgICBuZXcgTXV0YXRvclNlYXJjaGVyKFtcclxuICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uLy4uL2xpYi9tdXRhdG9yc1wiKSxcclxuICAgICAgICAgICAgICAgICAgICAuLi4oc2V0dGluZ3MubXV0YXRvckRpcmVjdG9yaWVzIHx8IFtdKVxyXG4gICAgICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgICAgICBzZXR0aW5ncy5sb2dnZXIpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
{
"name": "automutate",
"version": "0.3.3",
"version": "0.5.0",
"description": "Applies waves of mutations provided by other tools, such as linters.",

@@ -49,2 +49,3 @@ "index": "lib/index.js",

"tslint",
"lesshint",
"eslint"

@@ -51,0 +52,0 @@ ],

# automutate
[![npm](https://img.shields.io/npm/v/automutate.svg)](https://www.npmjs.com/package/automutate)

@@ -68,3 +69,4 @@ Applies waves of mutations provided by other tools, such as linters.

Mutators are also given the *original* file contents at construction time, which allows for custom mutators to perform setup logic (for example, a language's linter creating an abstract syntax tree for the file).
Mutators are also given the *original* file contents at construction time, which allows for custom mutators to perform setup logic.
For example, a language's linter might create an abstract syntax tree for the file.

@@ -74,3 +76,2 @@

In order to be compatible with `automutate`, a linter must allow for some rules to report proposed fixes using the standard format.
Once that is possible, it's a matter of creating a [mutations provider](https://github.com/autolint/automutate/blob/master/src/mutationsProvider.ts) that continuously retrieves these proposed fixes using the linter.
See [Onboarding](docs/onboarding.md).
import { ILogger } from "./logger";
import { ConsoleLogger } from "./loggers/consoleLogger";
import { IMutationsApplier } from "./mutationsApplier";
import { FileMutationsApplier } from "./mutationsAppliers/fileMutationsApplier";
import { IMutationsProvider, IMutationsWave } from "./mutationsProvider";
/**
* Settings to initialize a new IAutoMutator.
*/
export interface IAutoMutatorSettings {
/**
* Applies individual waves of file mutations.
*/
mutationsApplier?: IMutationsApplier;
/**
* Provides waves of file mutations.
*/
mutationsProvider: IMutationsProvider;
/**
* Generates output messages for significant operations.
*/
logger?: ILogger;
}
/**
* Runs waves of file mutations.

@@ -39,9 +61,10 @@ */

*
* @param mutationsApplier Applies individual waves of file mutations.
* @param mutationsProvider Provides waves of file mutations.
* @param settings Settings to be used for initialization.
*/
constructor(mutationsApplier: IMutationsApplier, mutationsProvider: IMutationsProvider, logger: ILogger) {
this.mutationsApplier = mutationsApplier;
this.mutationsProvider = mutationsProvider;
this.logger = logger;
constructor(settings: IAutoMutatorSettings) {
this.logger = settings.logger || new ConsoleLogger();
this.mutationsApplier = settings.mutationsApplier || new FileMutationsApplier({
logger: this.logger
});
this.mutationsProvider = settings.mutationsProvider;
}

@@ -48,0 +71,0 @@

@@ -9,2 +9,22 @@ import { IFileProvider } from "./fileProvider";

/**
* Settings to initialize a new IMutationsApplier.
*/
export interface IMutationsApplierSettings {
/**
* Generates output messages for significant operations.
*/
logger: ILogger;
/**
* Creates file providers for files.
*/
fileProviderFactory: IFileProviderFactory;
/**
* Creates mutators for mutations.
*/
mutatorFactory: IMutatorFactory;
}
/**
* Applies individual waves of file mutations.

@@ -53,10 +73,8 @@ */

*
* @param logger Generates output messages for significant operations.
* @param fileProviderFactory Creates file providers for files.
* @param mutatorFactory Creates mutators for mutations.
* @param settings Settings to be used for initialization.
*/
public constructor(logger: ILogger, fileProviderFactory: IFileProviderFactory, mutatorFactory: IMutatorFactory) {
this.logger = logger;
this.fileProviderFactory = fileProviderFactory;
this.mutatorFactory = mutatorFactory;
public constructor(settings: IMutationsApplierSettings) {
this.logger = settings.logger;
this.fileProviderFactory = settings.fileProviderFactory;
this.mutatorFactory = settings.mutatorFactory;
}

@@ -73,4 +91,4 @@

Object.keys(mutations)
.map((fileName: string): Promise<void> => {
return this.applyFileMutations(fileName, mutations[fileName]);
.map(async (fileName: string): Promise<void> => {
await this.applyFileMutations(fileName, mutations[fileName]);
}));

@@ -77,0 +95,0 @@

@@ -14,4 +14,9 @@ import * as path from "path";

*/
export interface IFileMutationSettings {
export interface IFileMutationsApplierSettings {
/**
* Generates output messages for significant operations.
*/
logger: ILogger;
/**
* Additional directories to search for mutators within.

@@ -29,11 +34,10 @@ */

*
* @param logger Generates output messages for significant operations.
* @param fileSettings Settings for manipulating local files.
* @param settings Settings to be used for initialization.
*/
public constructor(logger: ILogger, settings: IFileMutationSettings = {}) {
super(
logger,
new FileProviderFactory(
public constructor(settings: IFileMutationsApplierSettings) {
super({
logger: settings.logger,
fileProviderFactory: new FileProviderFactory(
(fileName: string): IFileProvider => new LocalFileProvider(fileName)),
new MutatorFactory(
mutatorFactory: new MutatorFactory(
new MutatorSearcher([

@@ -43,4 +47,5 @@ path.join(__dirname, "../../lib/mutators"),

]),
logger));
settings.logger)
});
}
}

@@ -43,3 +43,7 @@ "use strict";

const stubFileProvider = new stubFileProvider_1.StubFileProvider(testCase.before);
const mutationsApplier = new mutationsApplier_1.MutationsApplier(stubLogger, new fileProviderFactory_1.FileProviderFactory(() => stubFileProvider), new mutatorFactory_1.MutatorFactory(mutatorSearcher, stubLogger));
const mutationsApplier = new mutationsApplier_1.MutationsApplier({
logger: stubLogger,
fileProviderFactory: new fileProviderFactory_1.FileProviderFactory(() => stubFileProvider),
mutatorFactory: new mutatorFactory_1.MutatorFactory(mutatorSearcher, stubLogger)
});
// Act

@@ -46,0 +50,0 @@ const actual = yield mutationsApplier.applyFileMutations([testCase.directoryPath.join("/"), testCase.name].join("/"), testCase.mutations);

@@ -53,6 +53,7 @@ import * as path from "path";

const stubFileProvider: IFileProvider = new StubFileProvider(testCase.before);
const mutationsApplier: IMutationsApplier = new MutationsApplier(
stubLogger,
new FileProviderFactory((): IFileProvider => stubFileProvider),
new MutatorFactory(mutatorSearcher, stubLogger));
const mutationsApplier: IMutationsApplier = new MutationsApplier({
logger: stubLogger,
fileProviderFactory: new FileProviderFactory((): IFileProvider => stubFileProvider),
mutatorFactory: new MutatorFactory(mutatorSearcher, stubLogger)
});

@@ -59,0 +60,0 @@ // Act

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc