New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

objectmakr

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

objectmakr - npm Package Compare versions

Comparing version 0.5.3 to 0.6.0

2

docs/assets/js/search.js

@@ -1,1 +0,1 @@

var typedoc = typedoc || {};typedoc.search = typedoc.search || {};typedoc.search.data = {"kinds":{"1":"External module","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":1,"name":"\"IObjectMakr\"","url":"modules/_iobjectmakr_.html","classes":"tsd-kind-external-module"},{"id":1,"kind":256,"name":"IClassInheritance","url":"interfaces/_iobjectmakr_.iclassinheritance.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":2,"kind":256,"name":"IClassProperties","url":"interfaces/_iobjectmakr_.iclassproperties.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":3,"kind":256,"name":"IClassFunctions","url":"interfaces/_iobjectmakr_.iclassfunctions.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":4,"kind":256,"name":"IClassFunction","url":"interfaces/_iobjectmakr_.iclassfunction.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":5,"kind":512,"name":"constructor","url":"interfaces/_iobjectmakr_.iclassfunction.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-interface","parent":"\"IObjectMakr\".IClassFunction"},{"id":6,"kind":256,"name":"IOnMakeFunction","url":"interfaces/_iobjectmakr_.ionmakefunction.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":7,"kind":256,"name":"IObjectMakrSettings","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":8,"kind":1024,"name":"inheritance","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#inheritance","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":9,"kind":1024,"name":"properties","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#properties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":10,"kind":1024,"name":"doPropertiesFull","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#dopropertiesfull","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":11,"kind":1024,"name":"indexMap","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#indexmap","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":12,"kind":1024,"name":"onMake","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#onmake","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":13,"kind":1024,"name":"functions","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#functions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":14,"kind":1024,"name":"scope","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#scope","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":15,"kind":256,"name":"IObjectMakr","url":"interfaces/_iobjectmakr_.iobjectmakr.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":16,"kind":2048,"name":"getInheritance","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getinheritance","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":17,"kind":2048,"name":"getProperties","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getproperties","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":18,"kind":2048,"name":"getPropertiesOf","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getpropertiesof","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":19,"kind":2048,"name":"getFullProperties","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getfullproperties","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":20,"kind":2048,"name":"getFullPropertiesOf","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getfullpropertiesof","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":21,"kind":2048,"name":"getFunctions","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getfunctions","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":22,"kind":2048,"name":"getFunction","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getfunction","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":23,"kind":2048,"name":"hasFunction","url":"interfaces/_iobjectmakr_.iobjectmakr.html#hasfunction","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":24,"kind":2048,"name":"getScope","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getscope","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":25,"kind":2048,"name":"getIndexMap","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getindexmap","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":26,"kind":2048,"name":"make","url":"interfaces/_iobjectmakr_.iobjectmakr.html#make","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":27,"kind":1,"name":"\"ObjectMakr\"","url":"modules/_objectmakr_.html","classes":"tsd-kind-external-module"},{"id":28,"kind":128,"name":"ObjectMakr","url":"classes/_objectmakr_.objectmakr.html","classes":"tsd-kind-class tsd-parent-kind-external-module","parent":"\"ObjectMakr\""},{"id":29,"kind":1024,"name":"inheritance","url":"classes/_objectmakr_.objectmakr.html#inheritance","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":30,"kind":1024,"name":"properties","url":"classes/_objectmakr_.objectmakr.html#properties","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":31,"kind":1024,"name":"functions","url":"classes/_objectmakr_.objectmakr.html#functions","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":32,"kind":1024,"name":"scope","url":"classes/_objectmakr_.objectmakr.html#scope","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":33,"kind":1024,"name":"doPropertiesFull","url":"classes/_objectmakr_.objectmakr.html#dopropertiesfull","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":34,"kind":1024,"name":"propertiesFull","url":"classes/_objectmakr_.objectmakr.html#propertiesfull","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":35,"kind":1024,"name":"indexMap","url":"classes/_objectmakr_.objectmakr.html#indexmap","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":36,"kind":1024,"name":"onMake","url":"classes/_objectmakr_.objectmakr.html#onmake","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":37,"kind":512,"name":"constructor","url":"classes/_objectmakr_.objectmakr.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":38,"kind":2048,"name":"getInheritance","url":"classes/_objectmakr_.objectmakr.html#getinheritance","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":39,"kind":2048,"name":"getProperties","url":"classes/_objectmakr_.objectmakr.html#getproperties","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":40,"kind":2048,"name":"getPropertiesOf","url":"classes/_objectmakr_.objectmakr.html#getpropertiesof","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":41,"kind":2048,"name":"getFullProperties","url":"classes/_objectmakr_.objectmakr.html#getfullproperties","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":42,"kind":2048,"name":"getFullPropertiesOf","url":"classes/_objectmakr_.objectmakr.html#getfullpropertiesof","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":43,"kind":2048,"name":"getFunctions","url":"classes/_objectmakr_.objectmakr.html#getfunctions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":44,"kind":2048,"name":"getFunction","url":"classes/_objectmakr_.objectmakr.html#getfunction","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":45,"kind":2048,"name":"getScope","url":"classes/_objectmakr_.objectmakr.html#getscope","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":46,"kind":2048,"name":"hasFunction","url":"classes/_objectmakr_.objectmakr.html#hasfunction","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":47,"kind":2048,"name":"getIndexMap","url":"classes/_objectmakr_.objectmakr.html#getindexmap","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":48,"kind":2048,"name":"make","url":"classes/_objectmakr_.objectmakr.html#make","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":49,"kind":2048,"name":"processProperties","url":"classes/_objectmakr_.objectmakr.html#processproperties","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":50,"kind":2048,"name":"processPropertyArray","url":"classes/_objectmakr_.objectmakr.html#processpropertyarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":51,"kind":2048,"name":"processFunctions","url":"classes/_objectmakr_.objectmakr.html#processfunctions","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":52,"kind":2048,"name":"proliferate","url":"classes/_objectmakr_.objectmakr.html#proliferate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"}]};
var typedoc = typedoc || {};typedoc.search = typedoc.search || {};typedoc.search.data = {"kinds":{"1":"External module","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":1,"name":"\"IObjectMakr\"","url":"modules/_iobjectmakr_.html","classes":"tsd-kind-external-module"},{"id":1,"kind":256,"name":"IClassInheritance","url":"interfaces/_iobjectmakr_.iclassinheritance.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":2,"kind":256,"name":"IClassProperties","url":"interfaces/_iobjectmakr_.iclassproperties.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":3,"kind":256,"name":"IClassFunctions","url":"interfaces/_iobjectmakr_.iclassfunctions.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":4,"kind":256,"name":"IClassFunction","url":"interfaces/_iobjectmakr_.iclassfunction.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":5,"kind":512,"name":"constructor","url":"interfaces/_iobjectmakr_.iclassfunction.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-interface","parent":"\"IObjectMakr\".IClassFunction"},{"id":6,"kind":256,"name":"IOnMakeFunction","url":"interfaces/_iobjectmakr_.ionmakefunction.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":7,"kind":256,"name":"IObjectMakrSettings","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":8,"kind":1024,"name":"inheritance","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#inheritance","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":9,"kind":1024,"name":"properties","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#properties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":10,"kind":1024,"name":"doPropertiesFull","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#dopropertiesfull","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":11,"kind":1024,"name":"indexMap","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#indexmap","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":12,"kind":1024,"name":"onMake","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#onmake","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":13,"kind":1024,"name":"functions","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#functions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":14,"kind":1024,"name":"scope","url":"interfaces/_iobjectmakr_.iobjectmakrsettings.html#scope","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakrSettings"},{"id":15,"kind":256,"name":"IObjectMakr","url":"interfaces/_iobjectmakr_.iobjectmakr.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"IObjectMakr\""},{"id":16,"kind":1024,"name":"inheritance","url":"interfaces/_iobjectmakr_.iobjectmakr.html#inheritance","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":17,"kind":1024,"name":"properties","url":"interfaces/_iobjectmakr_.iobjectmakr.html#properties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":18,"kind":1024,"name":"functions","url":"interfaces/_iobjectmakr_.iobjectmakr.html#functions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":19,"kind":1024,"name":"doPropertiesFull","url":"interfaces/_iobjectmakr_.iobjectmakr.html#dopropertiesfull","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":20,"kind":1024,"name":"propertiesFull","url":"interfaces/_iobjectmakr_.iobjectmakr.html#propertiesfull","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":21,"kind":1024,"name":"indexMap","url":"interfaces/_iobjectmakr_.iobjectmakr.html#indexmap","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":22,"kind":1024,"name":"onMake","url":"interfaces/_iobjectmakr_.iobjectmakr.html#onmake","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":23,"kind":1024,"name":"scope","url":"interfaces/_iobjectmakr_.iobjectmakr.html#scope","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":24,"kind":2048,"name":"getPropertiesOf","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getpropertiesof","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":25,"kind":2048,"name":"getFullPropertiesOf","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getfullpropertiesof","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":26,"kind":2048,"name":"getFunction","url":"interfaces/_iobjectmakr_.iobjectmakr.html#getfunction","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":27,"kind":2048,"name":"hasFunction","url":"interfaces/_iobjectmakr_.iobjectmakr.html#hasfunction","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":28,"kind":2048,"name":"make","url":"interfaces/_iobjectmakr_.iobjectmakr.html#make","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"IObjectMakr\".IObjectMakr"},{"id":29,"kind":1,"name":"\"ObjectMakr\"","url":"modules/_objectmakr_.html","classes":"tsd-kind-external-module"},{"id":30,"kind":128,"name":"ObjectMakr","url":"classes/_objectmakr_.objectmakr.html","classes":"tsd-kind-class tsd-parent-kind-external-module","parent":"\"ObjectMakr\""},{"id":31,"kind":1024,"name":"inheritance","url":"classes/_objectmakr_.objectmakr.html#inheritance","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":32,"kind":1024,"name":"properties","url":"classes/_objectmakr_.objectmakr.html#properties","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":33,"kind":1024,"name":"functions","url":"classes/_objectmakr_.objectmakr.html#functions","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":34,"kind":1024,"name":"doPropertiesFull","url":"classes/_objectmakr_.objectmakr.html#dopropertiesfull","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":35,"kind":1024,"name":"propertiesFull","url":"classes/_objectmakr_.objectmakr.html#propertiesfull","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":36,"kind":1024,"name":"indexMap","url":"classes/_objectmakr_.objectmakr.html#indexmap","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":37,"kind":1024,"name":"onMake","url":"classes/_objectmakr_.objectmakr.html#onmake","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":38,"kind":1024,"name":"scope","url":"classes/_objectmakr_.objectmakr.html#scope","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":39,"kind":512,"name":"constructor","url":"classes/_objectmakr_.objectmakr.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":40,"kind":2048,"name":"getPropertiesOf","url":"classes/_objectmakr_.objectmakr.html#getpropertiesof","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":41,"kind":2048,"name":"getFullPropertiesOf","url":"classes/_objectmakr_.objectmakr.html#getfullpropertiesof","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":42,"kind":2048,"name":"getFunction","url":"classes/_objectmakr_.objectmakr.html#getfunction","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":43,"kind":2048,"name":"hasFunction","url":"classes/_objectmakr_.objectmakr.html#hasfunction","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":44,"kind":2048,"name":"make","url":"classes/_objectmakr_.objectmakr.html#make","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"ObjectMakr\".ObjectMakr"},{"id":45,"kind":2048,"name":"processProperties","url":"classes/_objectmakr_.objectmakr.html#processproperties","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":46,"kind":2048,"name":"processPropertyArray","url":"classes/_objectmakr_.objectmakr.html#processpropertyarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":47,"kind":2048,"name":"processFunctions","url":"classes/_objectmakr_.objectmakr.html#processfunctions","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"},{"id":48,"kind":2048,"name":"proliferate","url":"classes/_objectmakr_.objectmakr.html#proliferate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"ObjectMakr\".ObjectMakr"}]};

@@ -39,3 +39,3 @@ /**

*/
inheritance: IClassInheritance;
inheritance?: IClassInheritance;
/**

@@ -50,8 +50,7 @@ * Properties for each class.

/**
* How propperties can be mapped from an Array to indices.
* How properties can be mapped from an Array to indices.
*/
indexMap?: any[];
/**
* Optionally, a String index for each generated Object's Function to
* be run when made.
* An index for each generated Object's Function to be run when made.
*/

@@ -73,10 +72,35 @@ onMake?: string;

/**
* @returns The complete inheritance mapping.
* The sketch of class inheritance.
*/
getInheritance(): any;
readonly inheritance: IClassInheritance;
/**
* @returns The complete properties mapping.
* Properties for each class.
*/
getProperties(): any;
readonly properties: IClassProperties;
/**
* The actual Functions for the classes to be made.
*/
readonly functions: IClassFunctions;
/**
* Whether a full property mapping should be made for each type.
*/
readonly doPropertiesFull: boolean;
/**
* If doPropertiesFull is true, a version of properties that contains the
* sum properties for each type (rather than missing inherited ones).
*/
readonly propertiesFull?: IClassProperties;
/**
* How properties can be mapped from an Array to indices.
*/
readonly indexMap?: string[];
/**
* An index for each generated Object's Function to be run when made.
*/
readonly onMake?: string;
/**
* A scope to call onMake functions in, if not this.
*/
readonly scope?: any;
/**
* @returns The properties for a particular class.

@@ -86,6 +110,2 @@ */

/**
* @returns Full properties, if doPropertiesFull is true.
*/
getFullProperties(): any;
/**
* @returns Full properties for a particular class, if

@@ -96,6 +116,2 @@ * doPropertiesFull is true.

/**
* @returns The full mapping of class constructors.
*/
getFunctions(): IClassFunctions;
/**
* @param name The name of a class to retrieve.

@@ -111,10 +127,2 @@ * @returns The constructor for the given class.

/**
* @returns The scope onMake functions are called in, if not this.
*/
getScope(): any;
/**
* @returns The optional mapping of indices.
*/
getIndexMap(): any[] | undefined;
/**
* Creates a new instance of the specified type and returns it.

@@ -121,0 +129,0 @@ * If desired, any settings are applied to it (deep copy using proliferate).

@@ -1,2 +0,2 @@

import { IClassFunction, IClassFunctions, IObjectMakr, IObjectMakrSettings } from "./IObjectMakr";
import { IClassFunction, IClassFunctions, IClassInheritance, IClassProperties, IObjectMakr, IObjectMakrSettings } from "./IObjectMakr";
/**

@@ -9,19 +9,15 @@ * A abstract factory for dynamic attribute-based JavaScript classes.

*/
private inheritance;
readonly inheritance: IClassInheritance;
/**
* Properties for each class.
*/
private properties;
readonly properties: IClassProperties;
/**
* The actual Functions for the classes to be made.
*/
private functions;
readonly functions: IClassFunctions;
/**
* A scope to call onMake functions in, if not this.
*/
private scope;
/**
* Whether a full property mapping should be made for each type.
*/
private doPropertiesFull;
readonly doPropertiesFull: boolean;
/**

@@ -31,13 +27,16 @@ * If doPropertiesFull is true, a version of properties that contains the

*/
private propertiesFull;
readonly propertiesFull?: IClassProperties;
/**
* How properties can be mapped from an Array to indices.
*/
private indexMap?;
readonly indexMap?: string[];
/**
* Optionally, a String index for each generated Object's Function to
* be run when made.
* An index for each generated Object's Function to be run when made.
*/
private onMake?;
readonly onMake?: string;
/**
* A scope to call onMake functions in, if not this.
*/
readonly scope?: any;
/**
* Initializes a new instance of the ObjectMakr class.

@@ -47,12 +46,4 @@ *

*/
constructor(settings: IObjectMakrSettings);
constructor(settings?: IObjectMakrSettings);
/**
* @returns The complete inheritance mapping.
*/
getInheritance(): any;
/**
* @returns The complete properties mapping.
*/
getProperties(): any;
/**
* @returns The properties for a particular class.

@@ -62,6 +53,2 @@ */

/**
* @returns Full properties, if doPropertiesFull is true.
*/
getFullProperties(): any;
/**
* @returns Full properties for a particular class, if

@@ -72,6 +59,2 @@ * doPropertiesFull is true.

/**
* @returns The full mapping of class constructors.
*/
getFunctions(): IClassFunctions;
/**
* @param name The name of a class to retrieve.

@@ -82,6 +65,2 @@ * @returns The constructor for the given class.

/**
* @returns The scope onMake functions are called in, if not this.
*/
getScope(): any;
/**
* @param type The name of a class to check for.

@@ -92,6 +71,2 @@ * @returns Whether that class exists.

/**
* @returns The optional mapping of indices.
*/
getIndexMap(): string[] | undefined;
/**
* Creates a new instance of the specified type and returns it.

@@ -98,0 +73,0 @@ * If desired, any settings are applied to it (deep copy using proliferate).

@@ -1,2 +0,2 @@

define(["require","exports"],function(t,r){"use strict";var e=function(){function t(t){if("undefined"==typeof t)throw new Error("No settings object given to ObjectMakr.");if("undefined"==typeof t.inheritance)throw new Error("No inheritance given to ObjectMakr.");this.inheritance=t.inheritance,this.properties=t.properties||{},this.doPropertiesFull=!!t.doPropertiesFull,this.indexMap=t.indexMap,this.onMake=t.onMake,this.functions=this.proliferate({},t.functions),this.scope=t.scope,this.doPropertiesFull&&(this.propertiesFull={}),this.indexMap&&this.processProperties(this.properties),this.processFunctions(this.inheritance,Object,"Object")}return t.prototype.getInheritance=function(){return this.inheritance},t.prototype.getProperties=function(){return this.properties},t.prototype.getPropertiesOf=function(t){return this.properties[t]},t.prototype.getFullProperties=function(){return this.propertiesFull},t.prototype.getFullPropertiesOf=function(t){return this.doPropertiesFull?this.propertiesFull[t]:void 0},t.prototype.getFunctions=function(){return this.functions},t.prototype.getFunction=function(t){return this.functions[t]},t.prototype.getScope=function(){return this.scope},t.prototype.hasFunction=function(t){return this.functions.hasOwnProperty(t)},t.prototype.getIndexMap=function(){return this.indexMap},t.prototype.make=function(t,r){if(!this.functions.hasOwnProperty(t))throw new Error("Unknown type given to ObjectMakr: "+t);var e=new this.functions[t];return r&&this.proliferate(e,r),this.onMake&&e[this.onMake]&&e[this.onMake].call(this.scope||this,e,t,r,(this.doPropertiesFull?this.propertiesFull:this.properties)[t]),e},t.prototype.processProperties=function(t){for(var r in t)t.hasOwnProperty(r)&&t[r]instanceof Array&&(t[r]=this.processPropertyArray(t[r]))},t.prototype.processPropertyArray=function(t){if(!this.indexMap)throw new Error("Cannot process property arrays without an indexMap.");for(var r={},e=0;e<t.length;e+=1)r[this.indexMap[e]]=t[e];return r},t.prototype.processFunctions=function(t,r,e){for(var i in t)if(t.hasOwnProperty(i)){this.functions[i]||(this.functions[i]=function(){function t(){}return t}(),this.functions[i].prototype=new r,this.functions[i].prototype.constructor=this.functions[i]);for(var o in this.properties[i])this.properties[i].hasOwnProperty(o)&&(this.functions[i].prototype[o]=this.properties[i][o]);if(this.doPropertiesFull){if(this.propertiesFull[i]={},e)for(var o in this.propertiesFull[e])this.propertiesFull[e].hasOwnProperty(o)&&(this.propertiesFull[i][o]=this.propertiesFull[e][o]);for(var o in this.properties[i])this.properties[i].hasOwnProperty(o)&&(this.propertiesFull[i][o]=this.properties[i][o])}this.processFunctions(t[i],this.functions[i],i)}},t.prototype.proliferate=function(t,r,e){for(var i in r)if(!e||!t.hasOwnProperty(i)){var o=r[i];"object"==typeof o?(t.hasOwnProperty(i)||(t[i]=new o.constructor),this.proliferate(t[i],o,e)):t[i]=o}return t},t}();r.ObjectMakr=e});
define(["require","exports"],function(t,r){"use strict";var i=function(){function t(t){void 0===t&&(t={}),this.inheritance=t.inheritance||{},this.properties=t.properties||{},this.doPropertiesFull=!!t.doPropertiesFull,this.indexMap=t.indexMap,this.onMake=t.onMake,this.functions=this.proliferate({},t.functions),this.scope=t.scope||this,this.doPropertiesFull&&(this.propertiesFull={}),this.indexMap&&this.processProperties(this.properties),this.processFunctions(this.inheritance,Object,"Object")}return t.prototype.getPropertiesOf=function(t){return this.properties[t]},t.prototype.getFullPropertiesOf=function(t){return this.doPropertiesFull?this.propertiesFull[t]:void 0},t.prototype.getFunction=function(t){return this.functions[t]},t.prototype.hasFunction=function(t){return t in this.functions},t.prototype.make=function(t,r){if(!this.functions.hasOwnProperty(t))throw new Error("Unknown type given to ObjectMakr: '"+t+"'.");var i=new this.functions[t];return r&&this.proliferate(i,r),this.onMake&&i[this.onMake]&&i[this.onMake].call(this.scope,i,t,r,(this.doPropertiesFull?this.propertiesFull:this.properties)[t]),i},t.prototype.processProperties=function(t){for(var r in t)t.hasOwnProperty(r)&&t[r]instanceof Array&&(t[r]=this.processPropertyArray(t[r]))},t.prototype.processPropertyArray=function(t){if(!this.indexMap)throw new Error("Cannot process property arrays without an indexMap.");for(var r={},i=0;i<t.length;i+=1)r[this.indexMap[i]]=t[i];return r},t.prototype.processFunctions=function(t,r,i){for(var e in t)if(t.hasOwnProperty(e)){this.functions[e]||(this.functions[e]=function(){function t(){}return t}(),this.functions[e].prototype=new r,this.functions[e].prototype.constructor=this.functions[e]);for(var o in this.properties[e])this.properties[e].hasOwnProperty(o)&&(this.functions[e].prototype[o]=this.properties[e][o]);if(this.doPropertiesFull){if(this.propertiesFull[e]={},i)for(var o in this.propertiesFull[i])this.propertiesFull[i].hasOwnProperty(o)&&(this.propertiesFull[e][o]=this.propertiesFull[i][o]);for(var o in this.properties[e])this.properties[e].hasOwnProperty(o)&&(this.propertiesFull[e][o]=this.properties[e][o])}this.processFunctions(t[e],this.functions[e],e)}},t.prototype.proliferate=function(t,r,i){for(var e in r)if(!i||!t.hasOwnProperty(e)){var o=r[e];"object"==typeof o?(t.hasOwnProperty(e)||(t[e]=new o.constructor),this.proliferate(t[e],o,i)):t[e]=o}return t},t}();r.ObjectMakr=i});
//# sourceMappingURL=ObjectMakr.js.map
{
"name": "objectmakr",
"description": "An abstract factory for dynamic attribute-based JavaScript classes.",
"version": "0.5.3",
"version": "0.6.0",
"author": {

@@ -18,4 +18,4 @@ "name": "Josh Goldberg",

"devDependencies": {
"gulp-shenanigans": "^0.5.18"
"gulp-shenanigans": "0.6.X"
}
}

@@ -5,4 +5,4 @@ {

"name": "ObjectMakr",
"version": "0.5.2"
"version": "0.6.0"
}
}

@@ -39,3 +39,3 @@ /**

*/
inheritance: IClassInheritance;
inheritance?: IClassInheritance;
/**

@@ -50,8 +50,7 @@ * Properties for each class.

/**
* How propperties can be mapped from an Array to indices.
* How properties can be mapped from an Array to indices.
*/
indexMap?: any[];
/**
* Optionally, a String index for each generated Object's Function to
* be run when made.
* An index for each generated Object's Function to be run when made.
*/

@@ -73,10 +72,35 @@ onMake?: string;

/**
* @returns The complete inheritance mapping.
* The sketch of class inheritance.
*/
getInheritance(): any;
readonly inheritance: IClassInheritance;
/**
* @returns The complete properties mapping.
* Properties for each class.
*/
getProperties(): any;
readonly properties: IClassProperties;
/**
* The actual Functions for the classes to be made.
*/
readonly functions: IClassFunctions;
/**
* Whether a full property mapping should be made for each type.
*/
readonly doPropertiesFull: boolean;
/**
* If doPropertiesFull is true, a version of properties that contains the
* sum properties for each type (rather than missing inherited ones).
*/
readonly propertiesFull?: IClassProperties;
/**
* How properties can be mapped from an Array to indices.
*/
readonly indexMap?: string[];
/**
* An index for each generated Object's Function to be run when made.
*/
readonly onMake?: string;
/**
* A scope to call onMake functions in, if not this.
*/
readonly scope?: any;
/**
* @returns The properties for a particular class.

@@ -86,6 +110,2 @@ */

/**
* @returns Full properties, if doPropertiesFull is true.
*/
getFullProperties(): any;
/**
* @returns Full properties for a particular class, if

@@ -96,6 +116,2 @@ * doPropertiesFull is true.

/**
* @returns The full mapping of class constructors.
*/
getFunctions(): IClassFunctions;
/**
* @param name The name of a class to retrieve.

@@ -111,10 +127,2 @@ * @returns The constructor for the given class.

/**
* @returns The scope onMake functions are called in, if not this.
*/
getScope(): any;
/**
* @returns The optional mapping of indices.
*/
getIndexMap(): any[] | undefined;
/**
* Creates a new instance of the specified type and returns it.

@@ -121,0 +129,0 @@ * If desired, any settings are applied to it (deep copy using proliferate).

@@ -44,3 +44,3 @@ /**

*/
inheritance: IClassInheritance;
inheritance?: IClassInheritance;

@@ -58,3 +58,3 @@ /**

/**
* How propperties can be mapped from an Array to indices.
* How properties can be mapped from an Array to indices.
*/

@@ -64,4 +64,3 @@ indexMap?: any[];

/**
* Optionally, a String index for each generated Object's Function to
* be run when made.
* An index for each generated Object's Function to be run when made.
*/

@@ -86,22 +85,48 @@ onMake?: string;

/**
* @returns The complete inheritance mapping.
* The sketch of class inheritance.
*/
getInheritance(): any;
readonly inheritance: IClassInheritance;
/**
* @returns The complete properties mapping.
* Properties for each class.
*/
getProperties(): any;
readonly properties: IClassProperties;
/**
* @returns The properties for a particular class.
* The actual Functions for the classes to be made.
*/
getPropertiesOf(title: string): any;
readonly functions: IClassFunctions;
/**
* @returns Full properties, if doPropertiesFull is true.
* Whether a full property mapping should be made for each type.
*/
getFullProperties(): any;
readonly doPropertiesFull: boolean;
/**
* If doPropertiesFull is true, a version of properties that contains the
* sum properties for each type (rather than missing inherited ones).
*/
readonly propertiesFull?: IClassProperties;
/**
* How properties can be mapped from an Array to indices.
*/
readonly indexMap?: string[];
/**
* An index for each generated Object's Function to be run when made.
*/
readonly onMake?: string;
/**
* A scope to call onMake functions in, if not this.
*/
readonly scope?: any;
/**
* @returns The properties for a particular class.
*/
getPropertiesOf(title: string): any;
/**
* @returns Full properties for a particular class, if

@@ -113,7 +138,2 @@ * doPropertiesFull is true.

/**
* @returns The full mapping of class constructors.
*/
getFunctions(): IClassFunctions;
/**
* @param name The name of a class to retrieve.

@@ -131,12 +151,2 @@ * @returns The constructor for the given class.

/**
* @returns The scope onMake functions are called in, if not this.
*/
getScope(): any;
/**
* @returns The optional mapping of indices.
*/
getIndexMap(): any[] | undefined;
/**
* Creates a new instance of the specified type and returns it.

@@ -143,0 +153,0 @@ * If desired, any settings are applied to it (deep copy using proliferate).

@@ -1,2 +0,2 @@

import { IClassFunction, IClassFunctions, IObjectMakr, IObjectMakrSettings } from "./IObjectMakr";
import { IClassFunction, IClassFunctions, IClassInheritance, IClassProperties, IObjectMakr, IObjectMakrSettings } from "./IObjectMakr";
/**

@@ -9,19 +9,15 @@ * A abstract factory for dynamic attribute-based JavaScript classes.

*/
private inheritance;
readonly inheritance: IClassInheritance;
/**
* Properties for each class.
*/
private properties;
readonly properties: IClassProperties;
/**
* The actual Functions for the classes to be made.
*/
private functions;
readonly functions: IClassFunctions;
/**
* A scope to call onMake functions in, if not this.
*/
private scope;
/**
* Whether a full property mapping should be made for each type.
*/
private doPropertiesFull;
readonly doPropertiesFull: boolean;
/**

@@ -31,13 +27,16 @@ * If doPropertiesFull is true, a version of properties that contains the

*/
private propertiesFull;
readonly propertiesFull?: IClassProperties;
/**
* How properties can be mapped from an Array to indices.
*/
private indexMap?;
readonly indexMap?: string[];
/**
* Optionally, a String index for each generated Object's Function to
* be run when made.
* An index for each generated Object's Function to be run when made.
*/
private onMake?;
readonly onMake?: string;
/**
* A scope to call onMake functions in, if not this.
*/
readonly scope?: any;
/**
* Initializes a new instance of the ObjectMakr class.

@@ -47,12 +46,4 @@ *

*/
constructor(settings: IObjectMakrSettings);
constructor(settings?: IObjectMakrSettings);
/**
* @returns The complete inheritance mapping.
*/
getInheritance(): any;
/**
* @returns The complete properties mapping.
*/
getProperties(): any;
/**
* @returns The properties for a particular class.

@@ -62,6 +53,2 @@ */

/**
* @returns Full properties, if doPropertiesFull is true.
*/
getFullProperties(): any;
/**
* @returns Full properties for a particular class, if

@@ -72,6 +59,2 @@ * doPropertiesFull is true.

/**
* @returns The full mapping of class constructors.
*/
getFunctions(): IClassFunctions;
/**
* @param name The name of a class to retrieve.

@@ -82,6 +65,2 @@ * @returns The constructor for the given class.

/**
* @returns The scope onMake functions are called in, if not this.
*/
getScope(): any;
/**
* @param type The name of a class to check for.

@@ -92,6 +71,2 @@ * @returns Whether that class exists.

/**
* @returns The optional mapping of indices.
*/
getIndexMap(): string[] | undefined;
/**
* Creates a new instance of the specified type and returns it.

@@ -98,0 +73,0 @@ * If desired, any settings are applied to it (deep copy using proliferate).

@@ -13,9 +13,4 @@ define(["require", "exports"], function (require, exports) {

function ObjectMakr(settings) {
if (typeof settings === "undefined") {
throw new Error("No settings object given to ObjectMakr.");
}
if (typeof settings.inheritance === "undefined") {
throw new Error("No inheritance given to ObjectMakr.");
}
this.inheritance = settings.inheritance;
if (settings === void 0) { settings = {}; }
this.inheritance = settings.inheritance || {};
this.properties = settings.properties || {};

@@ -26,3 +21,3 @@ this.doPropertiesFull = !!settings.doPropertiesFull;

this.functions = this.proliferate({}, settings.functions);
this.scope = settings.scope;
this.scope = settings.scope || this;
if (this.doPropertiesFull) {

@@ -37,14 +32,2 @@ this.propertiesFull = {};

/**
* @returns The complete inheritance mapping.
*/
ObjectMakr.prototype.getInheritance = function () {
return this.inheritance;
};
/**
* @returns The complete properties mapping.
*/
ObjectMakr.prototype.getProperties = function () {
return this.properties;
};
/**
* @returns The properties for a particular class.

@@ -56,8 +39,2 @@ */

/**
* @returns Full properties, if doPropertiesFull is true.
*/
ObjectMakr.prototype.getFullProperties = function () {
return this.propertiesFull;
};
/**
* @returns Full properties for a particular class, if

@@ -70,8 +47,2 @@ * doPropertiesFull is true.

/**
* @returns The full mapping of class constructors.
*/
ObjectMakr.prototype.getFunctions = function () {
return this.functions;
};
/**
* @param name The name of a class to retrieve.

@@ -84,8 +55,2 @@ * @returns The constructor for the given class.

/**
* @returns The scope onMake functions are called in, if not this.
*/
ObjectMakr.prototype.getScope = function () {
return this.scope;
};
/**
* @param type The name of a class to check for.

@@ -95,11 +60,5 @@ * @returns Whether that class exists.

ObjectMakr.prototype.hasFunction = function (name) {
return this.functions.hasOwnProperty(name);
return name in this.functions;
};
/**
* @returns The optional mapping of indices.
*/
ObjectMakr.prototype.getIndexMap = function () {
return this.indexMap;
};
/**
* Creates a new instance of the specified type and returns it.

@@ -115,3 +74,3 @@ * If desired, any settings are applied to it (deep copy using proliferate).

if (!this.functions.hasOwnProperty(name)) {
throw new Error("Unknown type given to ObjectMakr: " + name);
throw new Error("Unknown type given to ObjectMakr: '" + name + "'.");
}

@@ -125,3 +84,3 @@ // Create the new object, copying any given settings

if (this.onMake && output[this.onMake]) {
output[this.onMake].call(this.scope || this, output, name, settings, (this.doPropertiesFull ? this.propertiesFull : this.properties)[name]);
output[this.onMake].call(this.scope, output, name, settings, (this.doPropertiesFull ? this.propertiesFull : this.properties)[name]);
}

@@ -248,2 +207,2 @@ return output;

//# sourceMappingURL=data:application/json;charset=utf8;base64,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R0FBRyxDQUFDLENBQUMsSUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsa0VBQWtFO2dCQUNsRSxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzVDLFFBQVEsQ0FBQztnQkFDYixDQUFDO2dCQUVELG9EQUFvRDtnQkFDcEQsSUFBTSxPQUFPLEdBQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUM5QixFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUMvQixTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQzdDLENBQUM7b0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNKLGdEQUFnRDtvQkFDaEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztnQkFDM0IsQ0FBQztZQUNMLENBQUM7WUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFDTCxpQkFBQztJQUFELENBaFRBLEFBZ1RDLElBQUE7SUFoVFksa0JBQVUsYUFnVHRCLENBQUEiLCJmaWxlIjoiT2JqZWN0TWFrci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBJQ2xhc3NGdW5jdGlvbiwgSUNsYXNzRnVuY3Rpb25zLCBJQ2xhc3NJbmhlcml0YW5jZSwgSUNsYXNzUHJvcGVydGllcyxcclxuICAgIElPYmplY3RNYWtyLCBJT2JqZWN0TWFrclNldHRpbmdzLCBJT25NYWtlRnVuY3Rpb25cclxufSBmcm9tIFwiLi9JT2JqZWN0TWFrclwiO1xyXG5cclxuLyoqXHJcbiAqIEEgYWJzdHJhY3QgZmFjdG9yeSBmb3IgZHluYW1pYyBhdHRyaWJ1dGUtYmFzZWQgSmF2YVNjcmlwdCBjbGFzc2VzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE9iamVjdE1ha3IgaW1wbGVtZW50cyBJT2JqZWN0TWFrciB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBza2V0Y2ggb2YgY2xhc3MgaW5oZXJpdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW5oZXJpdGFuY2U6IElDbGFzc0luaGVyaXRhbmNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydGllcyBmb3IgZWFjaCBjbGFzcy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9wZXJ0aWVzOiBJQ2xhc3NQcm9wZXJ0aWVzO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFjdHVhbCBGdW5jdGlvbnMgZm9yIHRoZSBjbGFzc2VzIHRvIGJlIG1hZGUuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZnVuY3Rpb25zOiBJQ2xhc3NGdW5jdGlvbnM7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIHNjb3BlIHRvIGNhbGwgb25NYWtlIGZ1bmN0aW9ucyBpbiwgaWYgbm90IHRoaXMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2NvcGU6IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgYSBmdWxsIHByb3BlcnR5IG1hcHBpbmcgc2hvdWxkIGJlIG1hZGUgZm9yIGVhY2ggdHlwZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBkb1Byb3BlcnRpZXNGdWxsOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgZG9Qcm9wZXJ0aWVzRnVsbCBpcyB0cnVlLCBhIHZlcnNpb24gb2YgcHJvcGVydGllcyB0aGF0IGNvbnRhaW5zIHRoZVxyXG4gICAgICogc3VtIHByb3BlcnRpZXMgZm9yIGVhY2ggdHlwZSAocmF0aGVyIHRoYW4gbWlzc2luZyBpbmhlcml0ZWQgb25lcykuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvcGVydGllc0Z1bGw6IElDbGFzc1Byb3BlcnRpZXM7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIb3cgcHJvcGVydGllcyBjYW4gYmUgbWFwcGVkIGZyb20gYW4gQXJyYXkgdG8gaW5kaWNlcy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbmRleE1hcD86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uYWxseSwgYSBTdHJpbmcgaW5kZXggZm9yIGVhY2ggZ2VuZXJhdGVkIE9iamVjdCdzIEZ1bmN0aW9uIHRvXHJcbiAgICAgKiBiZSBydW4gd2hlbiBtYWRlLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG9uTWFrZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBPYmplY3RNYWtyIGNsYXNzLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gc2V0dGluZ3MgICBTZXR0aW5ncyB0byBiZSB1c2VkIGZvciBpbml0aWFsaXphdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHNldHRpbmdzOiBJT2JqZWN0TWFrclNldHRpbmdzKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBzZXR0aW5ncyA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBzZXR0aW5ncyBvYmplY3QgZ2l2ZW4gdG8gT2JqZWN0TWFrci5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2Ygc2V0dGluZ3MuaW5oZXJpdGFuY2UgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gaW5oZXJpdGFuY2UgZ2l2ZW4gdG8gT2JqZWN0TWFrci5cIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmluaGVyaXRhbmNlID0gc2V0dGluZ3MuaW5oZXJpdGFuY2U7XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gc2V0dGluZ3MucHJvcGVydGllcyB8fCB7fTtcclxuICAgICAgICB0aGlzLmRvUHJvcGVydGllc0Z1bGwgPSAhIXNldHRpbmdzLmRvUHJvcGVydGllc0Z1bGw7XHJcbiAgICAgICAgdGhpcy5pbmRleE1hcCA9IHNldHRpbmdzLmluZGV4TWFwO1xyXG4gICAgICAgIHRoaXMub25NYWtlID0gc2V0dGluZ3Mub25NYWtlO1xyXG4gICAgICAgIHRoaXMuZnVuY3Rpb25zID0gdGhpcy5wcm9saWZlcmF0ZSh7fSwgc2V0dGluZ3MuZnVuY3Rpb25zKTtcclxuICAgICAgICB0aGlzLnNjb3BlID0gc2V0dGluZ3Muc2NvcGU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRvUHJvcGVydGllc0Z1bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzRnVsbCA9IHt9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW5kZXhNYXApIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzUHJvcGVydGllcyh0aGlzLnByb3BlcnRpZXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wcm9jZXNzRnVuY3Rpb25zKHRoaXMuaW5oZXJpdGFuY2UsIE9iamVjdCwgXCJPYmplY3RcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgY29tcGxldGUgaW5oZXJpdGFuY2UgbWFwcGluZy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEluaGVyaXRhbmNlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5oZXJpdGFuY2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgY29tcGxldGUgcHJvcGVydGllcyBtYXBwaW5nLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgcHJvcGVydGllcyBmb3IgYSBwYXJ0aWN1bGFyIGNsYXNzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UHJvcGVydGllc09mKHRpdGxlOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXNbdGl0bGVdO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHJldHVybnMgRnVsbCBwcm9wZXJ0aWVzLCBpZiBkb1Byb3BlcnRpZXNGdWxsIGlzIHRydWUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGdWxsUHJvcGVydGllcygpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXNGdWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHJldHVybnMgRnVsbCBwcm9wZXJ0aWVzIGZvciBhIHBhcnRpY3VsYXIgY2xhc3MsIGlmXHJcbiAgICAgKiAgICAgICAgICBkb1Byb3BlcnRpZXNGdWxsIGlzIHRydWUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGdWxsUHJvcGVydGllc09mKHRpdGxlOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvUHJvcGVydGllc0Z1bGwgPyB0aGlzLnByb3BlcnRpZXNGdWxsW3RpdGxlXSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEByZXR1cm5zIFRoZSBmdWxsIG1hcHBpbmcgb2YgY2xhc3MgY29uc3RydWN0b3JzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RnVuY3Rpb25zKCk6IElDbGFzc0Z1bmN0aW9ucyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZnVuY3Rpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHBhcmFtIG5hbWUgICBUaGUgbmFtZSBvZiBhIGNsYXNzIHRvIHJldHJpZXZlLlxyXG4gICAgICogQHJldHVybnMgVGhlIGNvbnN0cnVjdG9yIGZvciB0aGUgZ2l2ZW4gY2xhc3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGdW5jdGlvbihuYW1lOiBzdHJpbmcpOiBJQ2xhc3NGdW5jdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZnVuY3Rpb25zW25hbWVdO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHJldHVybnMgVGhlIHNjb3BlIG9uTWFrZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBpbiwgaWYgbm90IHRoaXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTY29wZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNjb3BlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHBhcmFtIHR5cGUgICBUaGUgbmFtZSBvZiBhIGNsYXNzIHRvIGNoZWNrIGZvci5cclxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgdGhhdCBjbGFzcyBleGlzdHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYXNGdW5jdGlvbihuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mdW5jdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgb3B0aW9uYWwgbWFwcGluZyBvZiBpbmRpY2VzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0SW5kZXhNYXAoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4TWFwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUgYW5kIHJldHVybnMgaXQuXHJcbiAgICAgKiBJZiBkZXNpcmVkLCBhbnkgc2V0dGluZ3MgYXJlIGFwcGxpZWQgdG8gaXQgKGRlZXAgY29weSB1c2luZyBwcm9saWZlcmF0ZSkuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBuYW1lICAgVGhlIG5hbWUgb2YgdGhlIHR5cGUgdG8gaW5pdGlhbGl6ZSBhIG5ldyBpbnN0YW5jZSBvZi5cclxuICAgICAqIEBwYXJhbSBzZXR0aW5ncyAgIEFkZGl0aW9uYWwgYXR0cmlidXRlcyB0byBhZGQgdG8gdGhlIG5ldyBpbnN0YW5jZS5cclxuICAgICAqIEByZXR1cm5zIEEgbmV3bHkgY3JlYXRlZCBpbnN0YW5jZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtYWtlKG5hbWU6IHN0cmluZywgc2V0dGluZ3M/OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgdHlwZSBhY3R1YWxseSBleGlzdHMgaW4gRnVuY3Rpb25zXHJcbiAgICAgICAgaWYgKCF0aGlzLmZ1bmN0aW9ucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIHR5cGUgZ2l2ZW4gdG8gT2JqZWN0TWFrcjogXCIgKyBuYW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgbmV3IG9iamVjdCwgY29weWluZyBhbnkgZ2l2ZW4gc2V0dGluZ3NcclxuICAgICAgICBjb25zdCBvdXRwdXQ6IGFueSA9IG5ldyB0aGlzLmZ1bmN0aW9uc1tuYW1lXSgpO1xyXG4gICAgICAgIGlmIChzZXR0aW5ncykge1xyXG4gICAgICAgICAgICB0aGlzLnByb2xpZmVyYXRlKG91dHB1dCwgc2V0dGluZ3MpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gb25NYWtlIHRyaWdnZXJzIGFyZSBoYW5kbGVkIHJlc3BlY3RpbmcgZG9Qcm9wZXJ0aWVzRnVsbC5cclxuICAgICAgICBpZiAodGhpcy5vbk1ha2UgJiYgb3V0cHV0W3RoaXMub25NYWtlXSkge1xyXG4gICAgICAgICAgICAob3V0cHV0W3RoaXMub25NYWtlXSBhcyBJT25NYWtlRnVuY3Rpb24pLmNhbGwoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjb3BlIHx8IHRoaXMsXHJcbiAgICAgICAgICAgICAgICBvdXRwdXQsXHJcbiAgICAgICAgICAgICAgICBuYW1lLFxyXG4gICAgICAgICAgICAgICAgc2V0dGluZ3MsXHJcbiAgICAgICAgICAgICAgICAodGhpcy5kb1Byb3BlcnRpZXNGdWxsID8gdGhpcy5wcm9wZXJ0aWVzRnVsbCA6IHRoaXMucHJvcGVydGllcylbbmFtZV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcnNlciB0aGF0IGNhbGxzIHByb2Nlc3NQcm9wZXJ0eUFycmF5IG9uIGFsbCBwcm9wZXJ0aWVzIGdpdmVuIGFzIGFycmF5c1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyAgIFR5cGUgcHJvcGVydGllcyBmb3IgY2xhc3NlcyB0byBjcmVhdGUuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1Byb3BlcnRpZXMocHJvcGVydGllczogYW55KTogdm9pZCB7XHJcbiAgICAgICAgLy8gRm9yIGVhY2ggb2YgdGhlIGdpdmVuIHByb3BlcnRpZXM6XHJcbiAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIC8vIElmIGl0J3MgYW4gQXJyYXksIHJlcGxhY2UgaXQgd2l0aCBhIG1hcHBlZCB2ZXJzaW9uXHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcGVydGllc1tuYW1lXSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllc1tuYW1lXSA9IHRoaXMucHJvY2Vzc1Byb3BlcnR5QXJyYXkocHJvcGVydGllc1tuYW1lXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGFuIG91dHB1dCBwcm9wZXJ0aWVzIG9iamVjdCB3aXRoIHRoZSBtYXBwaW5nIHNob3duIGluIGluZGV4TWFwXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzICAgQW4gQXJyYXkgd2l0aCBpbmRpY2VkIHZlcnNpb25zIG9mIHByb3BlcnRpZXNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzUHJvcGVydHlBcnJheShpbmRleE1hcDogc3RyaW5nW10pOiBhbnkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbmRleE1hcCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgcHJvY2VzcyBwcm9wZXJ0eSBhcnJheXMgd2l0aG91dCBhbiBpbmRleE1hcC5cIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBvdXRwdXQ6IGFueSA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgaW5kZXhNYXAubGVuZ3RoOyBpICs9IDEpIHtcclxuICAgICAgICAgICAgb3V0cHV0W3RoaXMuaW5kZXhNYXBbaV1dID0gaW5kZXhNYXBbaV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjdXJzaXZlIHBhcnNlciB0byBnZW5lcmF0ZSBlYWNoIEZ1bmN0aW9uLCBzdGFydGluZyBmcm9tIHRoZSBiYXNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gYmFzZSAgIEFuIG9iamVjdCB3aG9zZSBrZXlzIGFyZSB0aGUgbmFtZXMgb2YgRnVuY3Rpb25zIHRvXHJcbiAgICAgKiAgICAgICAgICAgICAgIG1hZGUsIGFuZCB3aG9zZSB2YWx1ZXMgYXJlIG9iamVjdHMgd2hvc2Uga2V5cyBhcmVcclxuICAgICAqICAgICAgICAgICAgICAgZm9yIGNoaWxkcmVuIHRoYXQgaW5oZXJpdCBmcm9tIHRoZXNlIEZ1bmN0aW9uc1xyXG4gICAgICogQHBhcmFtIHBhcmVudCAgIFRoZSBwYXJlbnQgY2xhc3MgRnVuY3Rpb24gb2YgdGhlIGNsYXNzZXMgYWJvdXQgdG8gYmUgbWFkZS5cclxuICAgICAqIEBwYXJhbSBwYXJlbnROYW1lICAgVGhlIG5hbWUgb2YgdGhlIHBhcmVudCBjbGFzcyB0byBiZSBpbmhlcml0ZWQgZnJvbSxcclxuICAgICAqICAgICAgICAgICAgICAgICAgICAgaWYgaXQgaXMgYSBnZW5lcmF0ZWQgb25lIChhbmQgbm90IE9iamVjdCBpdHNlbGYpLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NGdW5jdGlvbnMoYmFzZTogYW55LCBwYXJlbnQ6IElDbGFzc0Z1bmN0aW9uLCBwYXJlbnROYW1lPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgLy8gRm9yIGVhY2ggbmFtZSBpbiB0aGUgY3VycmVudCBvYmplY3Q6XHJcbiAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIGJhc2UpIHtcclxuICAgICAgICAgICAgaWYgKCFiYXNlLmhhc093blByb3BlcnR5KG5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmZ1bmN0aW9uc1tuYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mdW5jdGlvbnNbbmFtZV0gPSBjbGFzcyB7IH07XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBzZXRzIHRoZSBGdW5jdGlvbiBhcyBpbmhlcml0aW5nIGZyb20gdGhlIHBhcmVudFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mdW5jdGlvbnNbbmFtZV0ucHJvdG90eXBlID0gbmV3IHBhcmVudCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mdW5jdGlvbnNbbmFtZV0ucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gdGhpcy5mdW5jdGlvbnNbbmFtZV07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEFkZCBlYWNoIHByb3BlcnR5IGZyb20gcHJvcGVydGllcyB0byB0aGUgRnVuY3Rpb24gcHJvdG90eXBlXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVmIGluIHRoaXMucHJvcGVydGllc1tuYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcGVydGllc1tuYW1lXS5oYXNPd25Qcm9wZXJ0eShyZWYpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mdW5jdGlvbnNbbmFtZV0ucHJvdG90eXBlW3JlZl0gPSB0aGlzLnByb3BlcnRpZXNbbmFtZV1bcmVmXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gSWYgdGhlIGVudGlyZSBwcm9wZXJ0eSB0cmVlIGlzIGJlaW5nIG1hcHBlZCwgY29weSBldmVyeXRoaW5nXHJcbiAgICAgICAgICAgIC8vIGZyb20gYm90aCB0aGlzIGFuZCBpdHMgcGFyZW50IHRvIGl0cyBlcXVpdmFsZW50XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRvUHJvcGVydGllc0Z1bGwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcGVydGllc0Z1bGxbbmFtZV0gPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50TmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmIGluIHRoaXMucHJvcGVydGllc0Z1bGxbcGFyZW50TmFtZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcGVydGllc0Z1bGxbcGFyZW50TmFtZV0uaGFzT3duUHJvcGVydHkocmVmKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzRnVsbFtuYW1lXVtyZWZdID0gdGhpcy5wcm9wZXJ0aWVzRnVsbFtwYXJlbnROYW1lXVtyZWZdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmIGluIHRoaXMucHJvcGVydGllc1tuYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXNbbmFtZV0uaGFzT3duUHJvcGVydHkocmVmKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNGdWxsW25hbWVdW3JlZl0gPSB0aGlzLnByb3BlcnRpZXNbbmFtZV1bcmVmXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Z1bmN0aW9ucyhiYXNlW25hbWVdLCB0aGlzLmZ1bmN0aW9uc1tuYW1lXSwgbmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvbGlmZXJhdGVzIGFsbCBtZW1iZXJzIG9mIHRoZSBkb25vciB0byB0aGUgcmVjaXBpZW50IHJlY3Vyc2l2ZWx5LCBhc1xyXG4gICAgICogYSBkZWVwIGNvcHkuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSByZWNpcGllbnQgICBBbiBvYmplY3QgcmVjZWl2aW5nIHRoZSBkb25vcidzIG1lbWJlcnMuXHJcbiAgICAgKiBAcGFyYW0gZG9ub3IgICBBbiBvYmplY3Qgd2hvc2UgbWVtYmVycyBhcmUgY29waWVkIHRvIHJlY2lwaWVudC5cclxuICAgICAqIEBwYXJhbSBub092ZXJyaWRlICAgSWYgcmVjaXBpZW50IHByb3BlcnRpZXMgbWF5IGJlIG92ZXJyaWRlbiAoYnkgZGVmYXVsdCwgZmFsc2UpLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2xpZmVyYXRlKHJlY2lwaWVudDogYW55LCBkb25vcjogYW55LCBub092ZXJyaWRlPzogYm9vbGVhbik6IGFueSB7XHJcbiAgICAgICAgLy8gRm9yIGVhY2ggYXR0cmlidXRlIG9mIHRoZSBkb25vcjpcclxuICAgICAgICBmb3IgKGNvbnN0IGkgaW4gZG9ub3IpIHtcclxuICAgICAgICAgICAgLy8gSWYgbm9PdmVycmlkZSBpcyBzcGVjaWZpZWQsIGRvbid0IG92ZXJyaWRlIGlmIGl0IGFscmVhZHkgZXhpc3RzXHJcbiAgICAgICAgICAgIGlmIChub092ZXJyaWRlICYmIHJlY2lwaWVudC5oYXNPd25Qcm9wZXJ0eShpKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIElmIGl0J3MgYW4gb2JqZWN0LCByZWN1cnNlIG9uIGEgbmV3IHZlcnNpb24gb2YgaXRcclxuICAgICAgICAgICAgY29uc3Qgc2V0dGluZzogYW55ID0gZG9ub3JbaV07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2V0dGluZyA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyZWNpcGllbnQuaGFzT3duUHJvcGVydHkoaSkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZWNpcGllbnRbaV0gPSBuZXcgc2V0dGluZy5jb25zdHJ1Y3RvcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9saWZlcmF0ZShyZWNpcGllbnRbaV0sIHNldHRpbmcsIG5vT3ZlcnJpZGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gUmVndWxhciBwcmltaXRpdmVzIGFyZSBlYXN5IHRvIGNvcHkgb3RoZXJ3aXNlXHJcbiAgICAgICAgICAgICAgICByZWNpcGllbnRbaV0gPSBzZXR0aW5nO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVjaXBpZW50O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUM7SUFBRCxDQTlQQSxBQThQQyxJQUFBO0lBOVBZLGdDQUFVIiwiZmlsZSI6Ik9iamVjdE1ha3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgSUNsYXNzRnVuY3Rpb24sIElDbGFzc0Z1bmN0aW9ucywgSUNsYXNzSW5oZXJpdGFuY2UsIElDbGFzc1Byb3BlcnRpZXMsXHJcbiAgICBJT2JqZWN0TWFrciwgSU9iamVjdE1ha3JTZXR0aW5ncywgSU9uTWFrZUZ1bmN0aW9uXHJcbn0gZnJvbSBcIi4vSU9iamVjdE1ha3JcIjtcclxuXHJcbi8qKlxyXG4gKiBBIGFic3RyYWN0IGZhY3RvcnkgZm9yIGR5bmFtaWMgYXR0cmlidXRlLWJhc2VkIEphdmFTY3JpcHQgY2xhc3Nlcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RNYWtyIGltcGxlbWVudHMgSU9iamVjdE1ha3Ige1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc2tldGNoIG9mIGNsYXNzIGluaGVyaXRhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5oZXJpdGFuY2U6IElDbGFzc0luaGVyaXRhbmNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvcGVydGllcyBmb3IgZWFjaCBjbGFzcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHByb3BlcnRpZXM6IElDbGFzc1Byb3BlcnRpZXM7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYWN0dWFsIEZ1bmN0aW9ucyBmb3IgdGhlIGNsYXNzZXMgdG8gYmUgbWFkZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uczogSUNsYXNzRnVuY3Rpb25zO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciBhIGZ1bGwgcHJvcGVydHkgbWFwcGluZyBzaG91bGQgYmUgbWFkZSBmb3IgZWFjaCB0eXBlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9Qcm9wZXJ0aWVzRnVsbDogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElmIGRvUHJvcGVydGllc0Z1bGwgaXMgdHJ1ZSwgYSB2ZXJzaW9uIG9mIHByb3BlcnRpZXMgdGhhdCBjb250YWlucyB0aGVcclxuICAgICAqIHN1bSBwcm9wZXJ0aWVzIGZvciBlYWNoIHR5cGUgKHJhdGhlciB0aGFuIG1pc3NpbmcgaW5oZXJpdGVkIG9uZXMpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllc0Z1bGw/OiBJQ2xhc3NQcm9wZXJ0aWVzO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSG93IHByb3BlcnRpZXMgY2FuIGJlIG1hcHBlZCBmcm9tIGFuIEFycmF5IHRvIGluZGljZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBpbmRleE1hcD86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW4gaW5kZXggZm9yIGVhY2ggZ2VuZXJhdGVkIE9iamVjdCdzIEZ1bmN0aW9uIHRvIGJlIHJ1biB3aGVuIG1hZGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBvbk1ha2U/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIHNjb3BlIHRvIGNhbGwgb25NYWtlIGZ1bmN0aW9ucyBpbiwgaWYgbm90IHRoaXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBzY29wZT86IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBPYmplY3RNYWtyIGNsYXNzLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gc2V0dGluZ3MgICBTZXR0aW5ncyB0byBiZSB1c2VkIGZvciBpbml0aWFsaXphdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHNldHRpbmdzOiBJT2JqZWN0TWFrclNldHRpbmdzID0ge30pIHtcclxuICAgICAgICB0aGlzLmluaGVyaXRhbmNlID0gc2V0dGluZ3MuaW5oZXJpdGFuY2UgfHwge307XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gc2V0dGluZ3MucHJvcGVydGllcyB8fCB7fTtcclxuICAgICAgICB0aGlzLmRvUHJvcGVydGllc0Z1bGwgPSAhIXNldHRpbmdzLmRvUHJvcGVydGllc0Z1bGw7XHJcbiAgICAgICAgdGhpcy5pbmRleE1hcCA9IHNldHRpbmdzLmluZGV4TWFwO1xyXG4gICAgICAgIHRoaXMub25NYWtlID0gc2V0dGluZ3Mub25NYWtlO1xyXG4gICAgICAgIHRoaXMuZnVuY3Rpb25zID0gdGhpcy5wcm9saWZlcmF0ZSh7fSwgc2V0dGluZ3MuZnVuY3Rpb25zKTtcclxuICAgICAgICB0aGlzLnNjb3BlID0gc2V0dGluZ3Muc2NvcGUgfHwgdGhpcztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZG9Qcm9wZXJ0aWVzRnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNGdWxsID0ge307XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pbmRleE1hcCkge1xyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NQcm9wZXJ0aWVzKHRoaXMucHJvcGVydGllcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByb2Nlc3NGdW5jdGlvbnModGhpcy5pbmhlcml0YW5jZSwgT2JqZWN0LCBcIk9iamVjdFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEByZXR1cm5zIFRoZSBwcm9wZXJ0aWVzIGZvciBhIHBhcnRpY3VsYXIgY2xhc3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQcm9wZXJ0aWVzT2YodGl0bGU6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllc1t0aXRsZV07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcmV0dXJucyBGdWxsIHByb3BlcnRpZXMgZm9yIGEgcGFydGljdWxhciBjbGFzcywgaWZcclxuICAgICAqICAgICAgICAgIGRvUHJvcGVydGllc0Z1bGwgaXMgdHJ1ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEZ1bGxQcm9wZXJ0aWVzT2YodGl0bGU6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9Qcm9wZXJ0aWVzRnVsbCA/IHRoaXMucHJvcGVydGllc0Z1bGwhW3RpdGxlXSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwYXJhbSBuYW1lICAgVGhlIG5hbWUgb2YgYSBjbGFzcyB0byByZXRyaWV2ZS5cclxuICAgICAqIEByZXR1cm5zIFRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlIGdpdmVuIGNsYXNzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RnVuY3Rpb24obmFtZTogc3RyaW5nKTogSUNsYXNzRnVuY3Rpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uc1tuYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwYXJhbSB0eXBlICAgVGhlIG5hbWUgb2YgYSBjbGFzcyB0byBjaGVjayBmb3IuXHJcbiAgICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoYXQgY2xhc3MgZXhpc3RzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFzRnVuY3Rpb24obmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG5hbWUgaW4gdGhpcy5mdW5jdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBzcGVjaWZpZWQgdHlwZSBhbmQgcmV0dXJucyBpdC5cclxuICAgICAqIElmIGRlc2lyZWQsIGFueSBzZXR0aW5ncyBhcmUgYXBwbGllZCB0byBpdCAoZGVlcCBjb3B5IHVzaW5nIHByb2xpZmVyYXRlKS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIG5hbWUgICBUaGUgbmFtZSBvZiB0aGUgdHlwZSB0byBpbml0aWFsaXplIGEgbmV3IGluc3RhbmNlIG9mLlxyXG4gICAgICogQHBhcmFtIHNldHRpbmdzICAgQWRkaXRpb25hbCBhdHRyaWJ1dGVzIHRvIGFkZCB0byB0aGUgbmV3IGluc3RhbmNlLlxyXG4gICAgICogQHJldHVybnMgQSBuZXdseSBjcmVhdGVkIGluc3RhbmNlIG9mIHRoZSBzcGVjaWZpZWQgdHlwZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1ha2UobmFtZTogc3RyaW5nLCBzZXR0aW5ncz86IGFueSk6IGFueSB7XHJcbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSB0eXBlIGFjdHVhbGx5IGV4aXN0cyBpbiBGdW5jdGlvbnNcclxuICAgICAgICBpZiAoIXRoaXMuZnVuY3Rpb25zLmhhc093blByb3BlcnR5KG5hbWUpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0eXBlIGdpdmVuIHRvIE9iamVjdE1ha3I6ICcke25hbWV9Jy5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgbmV3IG9iamVjdCwgY29weWluZyBhbnkgZ2l2ZW4gc2V0dGluZ3NcclxuICAgICAgICBjb25zdCBvdXRwdXQ6IGFueSA9IG5ldyB0aGlzLmZ1bmN0aW9uc1tuYW1lXSgpO1xyXG4gICAgICAgIGlmIChzZXR0aW5ncykge1xyXG4gICAgICAgICAgICB0aGlzLnByb2xpZmVyYXRlKG91dHB1dCwgc2V0dGluZ3MpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gb25NYWtlIHRyaWdnZXJzIGFyZSBoYW5kbGVkIHJlc3BlY3RpbmcgZG9Qcm9wZXJ0aWVzRnVsbC5cclxuICAgICAgICBpZiAodGhpcy5vbk1ha2UgJiYgb3V0cHV0W3RoaXMub25NYWtlXSkge1xyXG4gICAgICAgICAgICAob3V0cHV0W3RoaXMub25NYWtlXSBhcyBJT25NYWtlRnVuY3Rpb24pLmNhbGwoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjb3BlLFxyXG4gICAgICAgICAgICAgICAgb3V0cHV0LFxyXG4gICAgICAgICAgICAgICAgbmFtZSxcclxuICAgICAgICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgICAgICAgKHRoaXMuZG9Qcm9wZXJ0aWVzRnVsbCA/IHRoaXMucHJvcGVydGllc0Z1bGwhIDogdGhpcy5wcm9wZXJ0aWVzKVtuYW1lXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGFyc2VyIHRoYXQgY2FsbHMgcHJvY2Vzc1Byb3BlcnR5QXJyYXkgb24gYWxsIHByb3BlcnRpZXMgZ2l2ZW4gYXMgYXJyYXlzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzICAgVHlwZSBwcm9wZXJ0aWVzIGZvciBjbGFzc2VzIHRvIGNyZWF0ZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICAvLyBGb3IgZWFjaCBvZiB0aGUgZ2l2ZW4gcHJvcGVydGllczpcclxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICBpZiAocHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgaXQncyBhbiBBcnJheSwgcmVwbGFjZSBpdCB3aXRoIGEgbWFwcGVkIHZlcnNpb25cclxuICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzW25hbWVdIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW25hbWVdID0gdGhpcy5wcm9jZXNzUHJvcGVydHlBcnJheShwcm9wZXJ0aWVzW25hbWVdKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW4gb3V0cHV0IHByb3BlcnRpZXMgb2JqZWN0IHdpdGggdGhlIG1hcHBpbmcgc2hvd24gaW4gaW5kZXhNYXBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgICBBbiBBcnJheSB3aXRoIGluZGljZWQgdmVyc2lvbnMgb2YgcHJvcGVydGllc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NQcm9wZXJ0eUFycmF5KGluZGV4TWFwOiBzdHJpbmdbXSk6IGFueSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmluZGV4TWFwKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBwcm9jZXNzIHByb3BlcnR5IGFycmF5cyB3aXRob3V0IGFuIGluZGV4TWFwLlwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG91dHB1dDogYW55ID0ge307XHJcblxyXG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBpbmRleE1hcC5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICAgICAgICBvdXRwdXRbdGhpcy5pbmRleE1hcFtpXV0gPSBpbmRleE1hcFtpXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWN1cnNpdmUgcGFyc2VyIHRvIGdlbmVyYXRlIGVhY2ggRnVuY3Rpb24sIHN0YXJ0aW5nIGZyb20gdGhlIGJhc2UuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBiYXNlICAgQW4gb2JqZWN0IHdob3NlIGtleXMgYXJlIHRoZSBuYW1lcyBvZiBGdW5jdGlvbnMgdG9cclxuICAgICAqICAgICAgICAgICAgICAgbWFkZSwgYW5kIHdob3NlIHZhbHVlcyBhcmUgb2JqZWN0cyB3aG9zZSBrZXlzIGFyZVxyXG4gICAgICogICAgICAgICAgICAgICBmb3IgY2hpbGRyZW4gdGhhdCBpbmhlcml0IGZyb20gdGhlc2UgRnVuY3Rpb25zXHJcbiAgICAgKiBAcGFyYW0gcGFyZW50ICAgVGhlIHBhcmVudCBjbGFzcyBGdW5jdGlvbiBvZiB0aGUgY2xhc3NlcyBhYm91dCB0byBiZSBtYWRlLlxyXG4gICAgICogQHBhcmFtIHBhcmVudE5hbWUgICBUaGUgbmFtZSBvZiB0aGUgcGFyZW50IGNsYXNzIHRvIGJlIGluaGVyaXRlZCBmcm9tLFxyXG4gICAgICogICAgICAgICAgICAgICAgICAgICBpZiBpdCBpcyBhIGdlbmVyYXRlZCBvbmUgKGFuZCBub3QgT2JqZWN0IGl0c2VsZikuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc0Z1bmN0aW9ucyhiYXNlOiBhbnksIHBhcmVudDogSUNsYXNzRnVuY3Rpb24sIHBhcmVudE5hbWU/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICAvLyBGb3IgZWFjaCBuYW1lIGluIHRoZSBjdXJyZW50IG9iamVjdDpcclxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gYmFzZSkge1xyXG4gICAgICAgICAgICBpZiAoIWJhc2UuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZnVuY3Rpb25zW25hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZ1bmN0aW9uc1tuYW1lXSA9IGNsYXNzIHsgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBUaGlzIHNldHMgdGhlIEZ1bmN0aW9uIGFzIGluaGVyaXRpbmcgZnJvbSB0aGUgcGFyZW50XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZ1bmN0aW9uc1tuYW1lXS5wcm90b3R5cGUgPSBuZXcgcGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZ1bmN0aW9uc1tuYW1lXS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSB0aGlzLmZ1bmN0aW9uc1tuYW1lXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gQWRkIGVhY2ggcHJvcGVydHkgZnJvbSBwcm9wZXJ0aWVzIHRvIHRoZSBGdW5jdGlvbiBwcm90b3R5cGVcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWYgaW4gdGhpcy5wcm9wZXJ0aWVzW25hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wZXJ0aWVzW25hbWVdLmhhc093blByb3BlcnR5KHJlZikpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZ1bmN0aW9uc1tuYW1lXS5wcm90b3R5cGVbcmVmXSA9IHRoaXMucHJvcGVydGllc1tuYW1lXVtyZWZdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgZW50aXJlIHByb3BlcnR5IHRyZWUgaXMgYmVpbmcgbWFwcGVkLCBjb3B5IGV2ZXJ5dGhpbmdcclxuICAgICAgICAgICAgLy8gZnJvbSBib3RoIHRoaXMgYW5kIGl0cyBwYXJlbnQgdG8gaXRzIGVxdWl2YWxlbnRcclxuICAgICAgICAgICAgaWYgKHRoaXMuZG9Qcm9wZXJ0aWVzRnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzRnVsbCFbbmFtZV0gPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50TmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmIGluIHRoaXMucHJvcGVydGllc0Z1bGwhW3BhcmVudE5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXNGdWxsIVtwYXJlbnROYW1lXS5oYXNPd25Qcm9wZXJ0eShyZWYpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNGdWxsIVtuYW1lXVtyZWZdID0gdGhpcy5wcm9wZXJ0aWVzRnVsbCFbcGFyZW50TmFtZV1bcmVmXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZiBpbiB0aGlzLnByb3BlcnRpZXNbbmFtZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wZXJ0aWVzW25hbWVdLmhhc093blByb3BlcnR5KHJlZikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzRnVsbCFbbmFtZV1bcmVmXSA9IHRoaXMucHJvcGVydGllc1tuYW1lXVtyZWZdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRnVuY3Rpb25zKGJhc2VbbmFtZV0sIHRoaXMuZnVuY3Rpb25zW25hbWVdLCBuYW1lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9saWZlcmF0ZXMgYWxsIG1lbWJlcnMgb2YgdGhlIGRvbm9yIHRvIHRoZSByZWNpcGllbnQgcmVjdXJzaXZlbHksIGFzXHJcbiAgICAgKiBhIGRlZXAgY29weS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHJlY2lwaWVudCAgIEFuIG9iamVjdCByZWNlaXZpbmcgdGhlIGRvbm9yJ3MgbWVtYmVycy5cclxuICAgICAqIEBwYXJhbSBkb25vciAgIEFuIG9iamVjdCB3aG9zZSBtZW1iZXJzIGFyZSBjb3BpZWQgdG8gcmVjaXBpZW50LlxyXG4gICAgICogQHBhcmFtIG5vT3ZlcnJpZGUgICBJZiByZWNpcGllbnQgcHJvcGVydGllcyBtYXkgYmUgb3ZlcnJpZGVuIChieSBkZWZhdWx0LCBmYWxzZSkuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvbGlmZXJhdGUocmVjaXBpZW50OiBhbnksIGRvbm9yOiBhbnksIG5vT3ZlcnJpZGU/OiBib29sZWFuKTogYW55IHtcclxuICAgICAgICAvLyBGb3IgZWFjaCBhdHRyaWJ1dGUgb2YgdGhlIGRvbm9yOlxyXG4gICAgICAgIGZvciAoY29uc3QgaSBpbiBkb25vcikge1xyXG4gICAgICAgICAgICAvLyBJZiBub092ZXJyaWRlIGlzIHNwZWNpZmllZCwgZG9uJ3Qgb3ZlcnJpZGUgaWYgaXQgYWxyZWFkeSBleGlzdHNcclxuICAgICAgICAgICAgaWYgKG5vT3ZlcnJpZGUgJiYgcmVjaXBpZW50Lmhhc093blByb3BlcnR5KGkpKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gSWYgaXQncyBhbiBvYmplY3QsIHJlY3Vyc2Ugb24gYSBuZXcgdmVyc2lvbiBvZiBpdFxyXG4gICAgICAgICAgICBjb25zdCBzZXR0aW5nOiBhbnkgPSBkb25vcltpXTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzZXR0aW5nID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlY2lwaWVudC5oYXNPd25Qcm9wZXJ0eShpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlY2lwaWVudFtpXSA9IG5ldyBzZXR0aW5nLmNvbnN0cnVjdG9yKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2xpZmVyYXRlKHJlY2lwaWVudFtpXSwgc2V0dGluZywgbm9PdmVycmlkZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBSZWd1bGFyIHByaW1pdGl2ZXMgYXJlIGVhc3kgdG8gY29weSBvdGhlcndpc2VcclxuICAgICAgICAgICAgICAgIHJlY2lwaWVudFtpXSA9IHNldHRpbmc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZWNpcGllbnQ7XHJcbiAgICB9XHJcbn1cclxuIl19

@@ -13,3 +13,3 @@ import {

*/
private inheritance: IClassInheritance;
public readonly inheritance: IClassInheritance;

@@ -19,3 +19,3 @@ /**

*/
private properties: IClassProperties;
public readonly properties: IClassProperties;

@@ -25,13 +25,8 @@ /**

*/
private functions: IClassFunctions;
public readonly functions: IClassFunctions;
/**
* A scope to call onMake functions in, if not this.
*/
private scope: any;
/**
* Whether a full property mapping should be made for each type.
*/
private doPropertiesFull: boolean;
public readonly doPropertiesFull: boolean;

@@ -42,3 +37,3 @@ /**

*/
private propertiesFull: IClassProperties;
public readonly propertiesFull?: IClassProperties;

@@ -48,11 +43,15 @@ /**

*/
private indexMap?: string[];
public readonly indexMap?: string[];
/**
* Optionally, a String index for each generated Object's Function to
* be run when made.
* An index for each generated Object's Function to be run when made.
*/
private onMake?: string;
public readonly onMake?: string;
/**
* A scope to call onMake functions in, if not this.
*/
public readonly scope?: any;
/**
* Initializes a new instance of the ObjectMakr class.

@@ -62,11 +61,4 @@ *

*/
public constructor(settings: IObjectMakrSettings) {
if (typeof settings === "undefined") {
throw new Error("No settings object given to ObjectMakr.");
}
if (typeof settings.inheritance === "undefined") {
throw new Error("No inheritance given to ObjectMakr.");
}
this.inheritance = settings.inheritance;
public constructor(settings: IObjectMakrSettings = {}) {
this.inheritance = settings.inheritance || {};
this.properties = settings.properties || {};

@@ -77,3 +69,3 @@ this.doPropertiesFull = !!settings.doPropertiesFull;

this.functions = this.proliferate({}, settings.functions);
this.scope = settings.scope;
this.scope = settings.scope || this;

@@ -92,16 +84,2 @@ if (this.doPropertiesFull) {

/**
* @returns The complete inheritance mapping.
*/
public getInheritance(): any {
return this.inheritance;
}
/**
* @returns The complete properties mapping.
*/
public getProperties(): any {
return this.properties;
}
/**
* @returns The properties for a particular class.

@@ -114,9 +92,2 @@ */

/**
* @returns Full properties, if doPropertiesFull is true.
*/
public getFullProperties(): any {
return this.propertiesFull;
}
/**
* @returns Full properties for a particular class, if

@@ -126,13 +97,6 @@ * doPropertiesFull is true.

public getFullPropertiesOf(title: string): any {
return this.doPropertiesFull ? this.propertiesFull[title] : undefined;
return this.doPropertiesFull ? this.propertiesFull![title] : undefined;
}
/**
* @returns The full mapping of class constructors.
*/
public getFunctions(): IClassFunctions {
return this.functions;
}
/**
* @param name The name of a class to retrieve.

@@ -146,9 +110,2 @@ * @returns The constructor for the given class.

/**
* @returns The scope onMake functions are called in, if not this.
*/
public getScope(): any {
return this.scope;
}
/**
* @param type The name of a class to check for.

@@ -158,13 +115,6 @@ * @returns Whether that class exists.

public hasFunction(name: string): boolean {
return this.functions.hasOwnProperty(name);
return name in this.functions;
}
/**
* @returns The optional mapping of indices.
*/
public getIndexMap(): string[] | undefined {
return this.indexMap;
}
/**
* Creates a new instance of the specified type and returns it.

@@ -180,3 +130,3 @@ * If desired, any settings are applied to it (deep copy using proliferate).

if (!this.functions.hasOwnProperty(name)) {
throw new Error("Unknown type given to ObjectMakr: " + name);
throw new Error(`Unknown type given to ObjectMakr: '${name}'.`);
}

@@ -193,7 +143,7 @@

(output[this.onMake] as IOnMakeFunction).call(
this.scope || this,
this.scope,
output,
name,
settings,
(this.doPropertiesFull ? this.propertiesFull : this.properties)[name]);
(this.doPropertiesFull ? this.propertiesFull! : this.properties)[name]);
}

@@ -275,8 +225,8 @@

if (this.doPropertiesFull) {
this.propertiesFull[name] = {};
this.propertiesFull![name] = {};
if (parentName) {
for (const ref in this.propertiesFull[parentName]) {
if (this.propertiesFull[parentName].hasOwnProperty(ref)) {
this.propertiesFull[name][ref] = this.propertiesFull[parentName][ref];
for (const ref in this.propertiesFull![parentName]) {
if (this.propertiesFull![parentName].hasOwnProperty(ref)) {
this.propertiesFull![name][ref] = this.propertiesFull![parentName][ref];
}

@@ -288,3 +238,3 @@ }

if (this.properties[name].hasOwnProperty(ref)) {
this.propertiesFull[name][ref] = this.properties[name][ref];
this.propertiesFull![name][ref] = this.properties[name][ref];
}

@@ -291,0 +241,0 @@ }

@@ -6,2 +6,18 @@ /* This file was auto-generated by gulp-shenanigans */

/**
* Informs RequireJS of the file location for a test dependency.
*
* @param testDependencies Modules depended upon for tests.
*/
function redirectTestDependencies(dependencies) {
for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) {
var dependency = dependencies_1[_i];
requirejs.config({
paths: (_a = {},
_a[dependency.toLowerCase() + "/lib"] = "../node_modules/" + dependency.toLowerCase() + "/src",
_a)
});
}
var _a;
}
/**
* Recursively loads test paths under mocha loader.

@@ -20,10 +36,13 @@ *

exports.mochaLoader.setTestPath(loadingPaths[i]);
require([loadingPaths[i]], function () {
requirejs([loadingPaths[i]], function () {
loadTestPaths(loadingPaths, i + 1, onComplete);
});
}
loadTestPaths(testPaths, 0, function () {
exports.mochaLoader.describeTests();
exports.mochaLoader.run();
});
(function () {
redirectTestDependencies(testDependencies);
loadTestPaths(testPaths, 0, function () {
exports.mochaLoader.describeTests();
exports.mochaLoader.run();
});
})();
});

@@ -5,4 +5,5 @@ /* This file was auto-generated by gulp-shenanigans */

declare var require: any;
declare var testPaths: any;
declare var requirejs: any;
declare var testDependencies: string[];
declare var testPaths: string[];

@@ -12,2 +13,17 @@ export const mochaLoader: MochaLoader = new MochaLoader(mocha);

/**
* Informs RequireJS of the file location for a test dependency.
*
* @param testDependencies Modules depended upon for tests.
*/
function redirectTestDependencies(dependencies: string[]): void {
for (const dependency of dependencies) {
requirejs.config({
paths: {
[dependency.toLowerCase() + "/lib"]: `../node_modules/${dependency.toLowerCase()}/src`
}
});
}
}
/**
* Recursively loads test paths under mocha loader.

@@ -28,3 +44,3 @@ *

mochaLoader.setTestPath(loadingPaths[i]);
require(
requirejs(
[loadingPaths[i]],

@@ -36,8 +52,12 @@ (): void => {

loadTestPaths(
testPaths,
0,
(): void => {
mochaLoader.describeTests();
mochaLoader.run();
});
((): void => {
redirectTestDependencies(testDependencies);
loadTestPaths(
testPaths,
0,
(): void => {
mochaLoader.describeTests();
mochaLoader.run();
});
})();

@@ -37,3 +37,3 @@ define(["require", "exports", "../utils/fakes", "../main"], function (require, exports, fakes_1, main_1) {

// Assert
chai.expect(madeObject.hasOwnProperty("property")).to.be.false;
chai.expect(madeObject.hasOwnProperty("property")).to.be["false"];
});

@@ -40,0 +40,0 @@ main_1.mochaLoader.it("copies a property", function () {

@@ -83,3 +83,3 @@ /* This file was auto-generated by gulp-shenanigans */

}
var _loop_1 = function(childName) {
var _loop_1 = function (childName) {
if (childName in testHierarchy.children) {

@@ -86,0 +86,0 @@ describe(childName, function () { return _this.describeTestHierarchy(testHierarchy.children[childName]); });

@@ -20,3 +20,3 @@ /* This file was auto-generated by gulp-shenanigans */

tests: {
[i: string]: () => void;
[i: string]: (done: Function) => void;
};

@@ -72,3 +72,3 @@ }

*/
public it(testName: string, test: (done?: Function) => void): void {
public it(testName: string, test: (done: Function) => void): void {
if (!this.currentTestPath) {

@@ -75,0 +75,0 @@ throw new Error(`No test path defined before adding test '${testName}'.`);

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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