Socket
Socket
Sign inDemoInstall

@lifaon/class-factory

Package Overview
Dependencies
0
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.1.1 to 1.2.0

cjs/core/traits.js

97

bundles/class-factory.core.umd.js

@@ -320,2 +320,5 @@ (function (global, factory) {

}
function ObjectHasOwnProperty(obj, propertyKey) {
return Object.prototype.hasOwnProperty.call(obj, propertyKey);
}
//# sourceMappingURL=helpers.js.map

@@ -551,2 +554,87 @@

var TRAITS = Symbol('traits');
function RegisterTraits(obj, traits) {
if (ObjectHasOwnProperty(obj, TRAITS)) {
var _traits = obj[TRAITS];
for (var i = 0, l = traits.length; i < l; i++) {
_traits.add(traits[i]);
}
}
else {
Object.defineProperty(obj, TRAITS, {
value: new WeakSet(traits),
writable: false,
enumerable: false,
configurable: false,
});
}
}
function ImplementTraits(obj, traits) {
RegisterTraits(obj, traits);
for (var i = 0, l = traits.length; i < l; i++) {
var trait = traits[i];
if ((trait !== null)
&& (typeof trait === 'object')
&& (Object.getPrototypeOf(trait) === Object.prototype)) {
var iterator = GetOwnPropertyDescriptors(trait);
var result = void 0;
while (!(result = iterator.next()).done) {
var _a = result.value, propertyKey = _a[0], descriptor = _a[1];
if ((propertyKey !== 'constructor') && (propertyKey !== TRAITS)) {
if (ObjectHasOwnProperty(obj, propertyKey)) {
throw new Error("The property '" + String(propertyKey) + "' is already implemented");
}
else {
Object.defineProperty(obj, propertyKey, descriptor);
}
}
}
}
else {
throw new Error("The trait must be a plain object");
}
}
return obj;
}
function SuperTrait(traits, baseClass) {
var TraitClass = (function (_super) {
__extends(TraitClass, _super);
function TraitClass() {
return _super !== null && _super.apply(this, arguments) || this;
}
return TraitClass;
}(baseClass));
ImplementTraits(TraitClass.prototype, traits);
return TraitClass;
}
function ImplementsTrait(obj, trait) {
if ((obj !== null)
&& (typeof obj === 'object')) {
if (ObjectHasOwnProperty(obj, TRAITS)
&& obj[TRAITS].has(trait)) {
return true;
}
else {
return ImplementsTrait(Object.getPrototypeOf(obj), trait);
}
}
else {
return false;
}
}
function ImplementsTraits(obj, traits) {
return traits.every(function (trait) { return ImplementsTrait(obj, trait); });
}
function TraitFromClass(classTrait) {
return classTrait.prototype;
}
function TraitsFromClasses() {
var classTrait = [];
for (var _i = 0; _i < arguments.length; _i++) {
classTrait[_i] = arguments[_i];
}
return classTrait.map(TraitFromClass);
}
//# sourceMappingURL=traits.js.map
exports.BaseClass = BaseClass;

@@ -572,2 +660,5 @@ exports.BindDescriptor = BindDescriptor;

exports.HasFactoryWaterMark = HasFactoryWaterMark;
exports.ImplementTraits = ImplementTraits;
exports.ImplementsTrait = ImplementsTrait;
exports.ImplementsTraits = ImplementsTraits;
exports.IsFactoryClass = IsFactoryClass;

@@ -577,4 +668,6 @@ exports.IsInstanceOf = IsInstanceOf;

exports.MixOverrideSuperArgumentsFunction = MixOverrideSuperArgumentsFunction;
exports.ObjectHasOwnProperty = ObjectHasOwnProperty;
exports.OwnArguments = OwnArguments;
exports.PROTECTED = PROTECTED;
exports.RegisterTraits = RegisterTraits;
exports.SearchSuperClass = SearchSuperClass;

@@ -586,2 +679,6 @@ exports.SetClassName = SetClassName;

exports.SuperArguments = SuperArguments;
exports.SuperTrait = SuperTrait;
exports.TRAITS = TRAITS;
exports.TraitFromClass = TraitFromClass;
exports.TraitsFromClasses = TraitsFromClasses;

@@ -588,0 +685,0 @@ Object.defineProperty(exports, '__esModule', { value: true });

2

bundles/class-factory.core.umd.min.js

@@ -15,3 +15,3 @@ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("class-factory",["exports"],t):t((e=e||self)["class-factory"]={})}(this,(function(e){"use strict";var t=function(){},r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};

and limitations under the License.
***************************************************************************** */function n(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function o(e,t){var r,n,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;c;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return c.label++,{value:a[1],done:!1};case 5:c.label++,n=a[1],a=[0];continue;case 7:a=c.ops.pop(),c.trys.pop();continue;default:if(!(o=c.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){c=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){c.label=a[1];break}if(6===a[0]&&c.label<o[1]){c.label=o[1],o=a;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(a);break}o[2]&&c.ops.pop(),c.trys.pop();continue}a=t.call(e,c)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var a=Symbol("instanceof");function c(e,t){var r=Symbol.hasInstance in e?e[Symbol.hasInstance].bind(e):function(){return!1};Object.defineProperty(e,Symbol.hasInstance,{configurable:!0,enumerable:!1,writable:!1,value:function(e){return e instanceof t||r(e)}}),a in t||Object.defineProperty(t,a,{value:new Set}),t[a].add(e)}var i=new Set(function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],c=0,i=a.length;c<i;c++,o++)n[o]=a[c];return n}(["prototype","constructor"],u(Object.prototype)));function u(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}function s(e){var t,r,n,a,c;return o(this,(function(o){switch(o.label){case 0:t=new Set,o.label=1;case 1:if(null===e)return[3,6];r=u(e),n=0,a=r,o.label=2;case 2:return n<a.length?(c=a[n],t.has(c)?[3,4]:(t.add(c),[4,[c,Object.getOwnPropertyDescriptor(e,c),e]])):[3,5];case 3:o.sent(),o.label=4;case 4:return n++,[3,2];case 5:return e=Object.getPrototypeOf(e),[3,1];case 6:return[2]}}))}function l(e,t,r){void 0===r&&(r=i);for(var n,o=s(e);!(n=o.next()).done;){var a=n.value,c=a[0],u=a[1];r.has(c)||Object.defineProperty(t,c,u)}}function f(e,t,r){l(e.prototype,t.prototype,r)}function p(e,t,r){l(e,t,r)}function y(e,t){Object.defineProperty(e,"name",{configurable:!0,enumerable:!1,value:t,writable:!1})}function b(e,t){f(e,t),p(e,t),c(e,t)}function v(e,t,r){var n,o,a={};(a.configurable=r.configurable,a.enumerable=r.enumerable,void 0!==r.value)?(a.get=function(){return"function"==typeof e[t]?(n!==e[t]&&(n=e[t],o=n.bind(e)),o):e[t]},r.writable&&(a.set=function(r){e[t]=r})):("function"==typeof r.get&&(a.get=r.get.bind(e)),"function"==typeof r.set&&(a.set=r.set.bind(e)));return a}var d=Symbol("is-factory-class");function h(e,t){return void 0===t&&(t=!0),!0===e[d]&&(!t||e.hasOwnProperty(d))}function g(e,t){for(var r=0;null!==e;){if(t(e))return{index:r,ctor:e};r++,e=Object.getPrototypeOf(e)}return null}function O(e,t){if(Array.isArray(e[0]))return e[0]=t,e;throw new TypeError("Expected array as argument 0")}function w(e,t){for(var r=0,n=t.length;r<n;r++)e[r]=t[r];return e}var m=Symbol("protected");e.BaseClass=t,e.BindDescriptor=function(e,t,r){var n={};if(n.configurable=r.configurable,n.enumerable=r.enumerable,void 0!==r.value){var o=new WeakMap;n.get=function(){var r=e(this),n=Reflect.get(r,t);return"function"==typeof n?(o.has(n)||o.set(n,n.bind(r)),o.get(n)):n},r.writable&&(n.set=function(r){var n=e(this);Reflect.set(n,t,r)})}else"function"==typeof r.get&&(n.get=function(){var t=e(this);return r.get.call(t)}),"function"==typeof r.set&&(n.set=function(t){var n=e(this);return r.set.call(n,t)});return n},e.BindDescriptorOld=v,e.ClassToFactory=function(e){return function(r,o){var a;return void 0===o&&(o="auto"),r===Object||r===t?c(r,a=function(e){function t(t){return e.apply(this,t)||this}return n(t,e),t}(e)):(a=function(t){function r(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var a,c=this,l=r[0];switch(c=t.apply(this,r.slice(1))||this,o){case"auto":try{void 0===(a=e.apply(c,l))&&(a=c),o="function"}catch(t){a=Reflect.construct(e,l),o="class"}break;case"function":void 0===(a=e.apply(c,l))&&(a=c);break;case"class":a=Reflect.construct(e,l)}if(c!==a){for(var f=s(Object.getPrototypeOf(a)),p=void 0;!(p=f.next()).done;){var y=p.value[0];i.has(y)||Object.defineProperty(c,y,v(a,y,p.value[1]))}for(var b=u(a),d=0,h=b;d<h.length;d++){y=h[d];i.has(y)||(y in c&&console.warn("Crossing properties !"),Object.defineProperty(c,y,v(a,y,Object.getOwnPropertyDescriptor(a,y))))}Object.seal(a)}return c}return n(r,t),r}(r),b(e,a)),y(a,e.name),a}},e.ConstructClassWithPrivateMembers=function(e,t){Object.defineProperty(e,t,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.ConstructClassWithProtectedMembers=function(e){Object.defineProperty(e,m,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.CopyClass=b,e.CopyClassName=function(e,t){var r=Object.getOwnPropertyDescriptor(e,"name");void 0===r?r={configurable:!0,enumerable:!1,value:e.name,writable:!1}:r.value=e.name,r.configurable&&Object.defineProperty(t,"name",r)},e.CopyClassPrototype=f,e.CopyClassStaticProperties=p,e.CopyOwnProperties=function(e,t,r){void 0===r&&(r=i);for(var n=0,o=u(e);n<o.length;n++){var a=o[n],c=Object.getOwnPropertyDescriptor(e,a);void 0===c||r.has(a)||Object.defineProperty(t,a,c)}},e.CopyProperties=l,e.EXCLUDED_PROPERTY_NAMES=i,e.GenerateOverrideSuperArgumentsFunction=function(e,t){var r=g(e,t);if(null===r)throw new Error("Failed to find super class of the class "+e.name);var n=r.index;return h(r.ctor)?function(e,t){if(Array.isArray(e[n]))return e.slice(0,n).concat([t(e[n])]).concat(e.slice(n+1));throw new TypeError("Expected array as argument["+n+"]")}:function(e,t){return e.slice(0,n).concat(t(e.slice(n)))}},e.GetOwnPropertyDescriptors=function(e){var t,r,n,a;return o(this,(function(o){switch(o.label){case 0:t=u(e),r=0,n=t.length,o.label=1;case 1:return r<n?[4,[a=t[r],Object.getOwnPropertyDescriptor(e,a),e]]:[3,4];case 2:o.sent(),o.label=3;case 3:return r++,[3,1];case 4:return[2]}}))},e.GetOwnPropertyKeys=u,e.GetPropertyDescriptors=s,e.GetSafePropertyDescriptors=function(e){var t,r,n,a,c;return o(this,(function(o){switch(o.label){case 0:t=s(e),o.label=1;case 1:return(r=t.next()).done?[3,4]:(n=r.value,a=n[0],(c=n[2])===Object.prototype||c===Function.prototype||i.has(a)?[3,3]:[4,r.value]);case 2:o.sent(),o.label=3;case 3:return[3,1];case 4:return[2]}}))},e.GetSetSuperArgsFunction=function(e){return e?O:w},e.HasFactoryWaterMark=function(e,t,r){return void 0===r&&(r=!0),!0===e[t]&&(!r||e.hasOwnProperty(t))},e.IsFactoryClass=h,e.IsInstanceOf=function(e,t){return e instanceof t||!(!e.constructor||!(a in e.constructor))&&e.constructor[a].has(t)},e.MakeFactory=function(e,t,r,n){void 0===n&&(n={});for(var o=r,a=t.length-1;a>=0;a--)o=t[a](o);var i=e(o);if(Object.defineProperty(i,d,{value:!0}),"string"==typeof n.name&&Object.defineProperty(i,"name",{configurable:!0,enumerable:!1,value:n.name,writable:!1}),Array.isArray(n.waterMarks)){a=0;for(var u=n.waterMarks.length;a<u;a++)Object.defineProperty(i,n.waterMarks[a],{value:!0})}return void 0!==n.instanceOf&&c(n.instanceOf,i),i},e.MixOverrideSuperArgumentsFunction=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];for(var o=0,a=e.length;o<a;o++)t=e[o](t,r[o]);return t}},e.OwnArguments=function(e){return e[0]},e.PROTECTED=m,e.SearchSuperClass=g,e.SetClassName=y,e.SetInstanceOf=c,e.SetSuperArgsForFactoryClass=O,e.SetSuperArgsForStandardClass=w,e.SuperArguments=function(e){return e.slice(1)},Object.defineProperty(e,"__esModule",{value:!0})}));
***************************************************************************** */function n(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function o(e,t){var r,n,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;c;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return c.label++,{value:a[1],done:!1};case 5:c.label++,n=a[1],a=[0];continue;case 7:a=c.ops.pop(),c.trys.pop();continue;default:if(!(o=c.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){c=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){c.label=a[1];break}if(6===a[0]&&c.label<o[1]){c.label=o[1],o=a;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(a);break}o[2]&&c.ops.pop(),c.trys.pop();continue}a=t.call(e,c)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var a=Symbol("instanceof");function c(e,t){var r=Symbol.hasInstance in e?e[Symbol.hasInstance].bind(e):function(){return!1};Object.defineProperty(e,Symbol.hasInstance,{configurable:!0,enumerable:!1,writable:!1,value:function(e){return e instanceof t||r(e)}}),a in t||Object.defineProperty(t,a,{value:new Set}),t[a].add(e)}var i=new Set(function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],c=0,i=a.length;c<i;c++,o++)n[o]=a[c];return n}(["prototype","constructor"],u(Object.prototype)));function u(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}function s(e){var t,r,n,a;return o(this,(function(o){switch(o.label){case 0:t=u(e),r=0,n=t.length,o.label=1;case 1:return r<n?[4,[a=t[r],Object.getOwnPropertyDescriptor(e,a),e]]:[3,4];case 2:o.sent(),o.label=3;case 3:return r++,[3,1];case 4:return[2]}}))}function l(e){var t,r,n,a,c;return o(this,(function(o){switch(o.label){case 0:t=new Set,o.label=1;case 1:if(null===e)return[3,6];r=u(e),n=0,a=r,o.label=2;case 2:return n<a.length?(c=a[n],t.has(c)?[3,4]:(t.add(c),[4,[c,Object.getOwnPropertyDescriptor(e,c),e]])):[3,5];case 3:o.sent(),o.label=4;case 4:return n++,[3,2];case 5:return e=Object.getPrototypeOf(e),[3,1];case 6:return[2]}}))}function f(e,t,r){void 0===r&&(r=i);for(var n,o=l(e);!(n=o.next()).done;){var a=n.value,c=a[0],u=a[1];r.has(c)||Object.defineProperty(t,c,u)}}function p(e,t,r){f(e.prototype,t.prototype,r)}function y(e,t,r){f(e,t,r)}function b(e,t){Object.defineProperty(e,"name",{configurable:!0,enumerable:!1,value:t,writable:!1})}function v(e,t){p(e,t),y(e,t),c(e,t)}function d(e,t,r){var n,o,a={};(a.configurable=r.configurable,a.enumerable=r.enumerable,void 0!==r.value)?(a.get=function(){return"function"==typeof e[t]?(n!==e[t]&&(n=e[t],o=n.bind(e)),o):e[t]},r.writable&&(a.set=function(r){e[t]=r})):("function"==typeof r.get&&(a.get=r.get.bind(e)),"function"==typeof r.set&&(a.set=r.set.bind(e)));return a}function h(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var O=Symbol("is-factory-class");function g(e,t){return void 0===t&&(t=!0),!0===e[O]&&(!t||e.hasOwnProperty(O))}function m(e,t){for(var r=0;null!==e;){if(t(e))return{index:r,ctor:e};r++,e=Object.getPrototypeOf(e)}return null}function w(e,t){if(Array.isArray(e[0]))return e[0]=t,e;throw new TypeError("Expected array as argument 0")}function P(e,t){for(var r=0,n=t.length;r<n;r++)e[r]=t[r];return e}var j=Symbol("protected");var S=Symbol("traits");function C(e,t){if(h(e,S))for(var r=e[S],n=0,o=t.length;n<o;n++)r.add(t[n]);else Object.defineProperty(e,S,{value:new WeakSet(t),writable:!1,enumerable:!1,configurable:!1})}function T(e,t){C(e,t);for(var r=0,n=t.length;r<n;r++){var o=t[r];if(null===o||"object"!=typeof o||Object.getPrototypeOf(o)!==Object.prototype)throw new Error("The trait must be a plain object");for(var a=s(o),c=void 0;!(c=a.next()).done;){var i=c.value,u=i[0],l=i[1];if("constructor"!==u&&u!==S){if(h(e,u))throw new Error("The property '"+String(u)+"' is already implemented");Object.defineProperty(e,u,l)}}}return e}function A(e,t){return null!==e&&"object"==typeof e&&(!(!h(e,S)||!e[S].has(t))||A(Object.getPrototypeOf(e),t))}function x(e){return e.prototype}e.BaseClass=t,e.BindDescriptor=function(e,t,r){var n={};if(n.configurable=r.configurable,n.enumerable=r.enumerable,void 0!==r.value){var o=new WeakMap;n.get=function(){var r=e(this),n=Reflect.get(r,t);return"function"==typeof n?(o.has(n)||o.set(n,n.bind(r)),o.get(n)):n},r.writable&&(n.set=function(r){var n=e(this);Reflect.set(n,t,r)})}else"function"==typeof r.get&&(n.get=function(){var t=e(this);return r.get.call(t)}),"function"==typeof r.set&&(n.set=function(t){var n=e(this);return r.set.call(n,t)});return n},e.BindDescriptorOld=d,e.ClassToFactory=function(e){return function(r,o){var a;return void 0===o&&(o="auto"),r===Object||r===t?c(r,a=function(e){function t(t){return e.apply(this,t)||this}return n(t,e),t}(e)):(a=function(t){function r(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var a,c=this,s=r[0];switch(c=t.apply(this,r.slice(1))||this,o){case"auto":try{void 0===(a=e.apply(c,s))&&(a=c),o="function"}catch(t){a=Reflect.construct(e,s),o="class"}break;case"function":void 0===(a=e.apply(c,s))&&(a=c);break;case"class":a=Reflect.construct(e,s)}if(c!==a){for(var f=l(Object.getPrototypeOf(a)),p=void 0;!(p=f.next()).done;){var y=p.value[0];i.has(y)||Object.defineProperty(c,y,d(a,y,p.value[1]))}for(var b=u(a),v=0,h=b;v<h.length;v++){y=h[v];i.has(y)||(y in c&&console.warn("Crossing properties !"),Object.defineProperty(c,y,d(a,y,Object.getOwnPropertyDescriptor(a,y))))}Object.seal(a)}return c}return n(r,t),r}(r),v(e,a)),b(a,e.name),a}},e.ConstructClassWithPrivateMembers=function(e,t){Object.defineProperty(e,t,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.ConstructClassWithProtectedMembers=function(e){Object.defineProperty(e,j,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.CopyClass=v,e.CopyClassName=function(e,t){var r=Object.getOwnPropertyDescriptor(e,"name");void 0===r?r={configurable:!0,enumerable:!1,value:e.name,writable:!1}:r.value=e.name,r.configurable&&Object.defineProperty(t,"name",r)},e.CopyClassPrototype=p,e.CopyClassStaticProperties=y,e.CopyOwnProperties=function(e,t,r){void 0===r&&(r=i);for(var n=0,o=u(e);n<o.length;n++){var a=o[n],c=Object.getOwnPropertyDescriptor(e,a);void 0===c||r.has(a)||Object.defineProperty(t,a,c)}},e.CopyProperties=f,e.EXCLUDED_PROPERTY_NAMES=i,e.GenerateOverrideSuperArgumentsFunction=function(e,t){var r=m(e,t);if(null===r)throw new Error("Failed to find super class of the class "+e.name);var n=r.index;return g(r.ctor)?function(e,t){if(Array.isArray(e[n]))return e.slice(0,n).concat([t(e[n])]).concat(e.slice(n+1));throw new TypeError("Expected array as argument["+n+"]")}:function(e,t){return e.slice(0,n).concat(t(e.slice(n)))}},e.GetOwnPropertyDescriptors=s,e.GetOwnPropertyKeys=u,e.GetPropertyDescriptors=l,e.GetSafePropertyDescriptors=function(e){var t,r,n,a,c;return o(this,(function(o){switch(o.label){case 0:t=l(e),o.label=1;case 1:return(r=t.next()).done?[3,4]:(n=r.value,a=n[0],(c=n[2])===Object.prototype||c===Function.prototype||i.has(a)?[3,3]:[4,r.value]);case 2:o.sent(),o.label=3;case 3:return[3,1];case 4:return[2]}}))},e.GetSetSuperArgsFunction=function(e){return e?w:P},e.HasFactoryWaterMark=function(e,t,r){return void 0===r&&(r=!0),!0===e[t]&&(!r||e.hasOwnProperty(t))},e.ImplementTraits=T,e.ImplementsTrait=A,e.ImplementsTraits=function(e,t){return t.every((function(t){return A(e,t)}))},e.IsFactoryClass=g,e.IsInstanceOf=function(e,t){return e instanceof t||!(!e.constructor||!(a in e.constructor))&&e.constructor[a].has(t)},e.MakeFactory=function(e,t,r,n){void 0===n&&(n={});for(var o=r,a=t.length-1;a>=0;a--)o=t[a](o);var i=e(o);if(Object.defineProperty(i,O,{value:!0}),"string"==typeof n.name&&Object.defineProperty(i,"name",{configurable:!0,enumerable:!1,value:n.name,writable:!1}),Array.isArray(n.waterMarks)){a=0;for(var u=n.waterMarks.length;a<u;a++)Object.defineProperty(i,n.waterMarks[a],{value:!0})}return void 0!==n.instanceOf&&c(n.instanceOf,i),i},e.MixOverrideSuperArgumentsFunction=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];for(var o=0,a=e.length;o<a;o++)t=e[o](t,r[o]);return t}},e.ObjectHasOwnProperty=h,e.OwnArguments=function(e){return e[0]},e.PROTECTED=j,e.RegisterTraits=C,e.SearchSuperClass=m,e.SetClassName=b,e.SetInstanceOf=c,e.SetSuperArgsForFactoryClass=w,e.SetSuperArgsForStandardClass=P,e.SuperArguments=function(e){return e.slice(1)},e.SuperTrait=function(e,t){var r=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t}(t);return T(r.prototype,e),r},e.TRAITS=S,e.TraitFromClass=x,e.TraitsFromClasses=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.map(x)},Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=class-factory.core.umd.min.js.map

@@ -206,2 +206,5 @@ (function (global, factory) {

}
function ObjectHasOwnProperty(obj, propertyKey) {
return Object.prototype.hasOwnProperty.call(obj, propertyKey);
}

@@ -412,2 +415,77 @@ function MakeFactory(create, factories, superClass, options = {}) {

const TRAITS = Symbol('traits');
function RegisterTraits(obj, traits) {
if (ObjectHasOwnProperty(obj, TRAITS)) {
const _traits = obj[TRAITS];
for (let i = 0, l = traits.length; i < l; i++) {
_traits.add(traits[i]);
}
}
else {
Object.defineProperty(obj, TRAITS, {
value: new WeakSet(traits),
writable: false,
enumerable: false,
configurable: false,
});
}
}
function ImplementTraits(obj, traits) {
RegisterTraits(obj, traits);
for (let i = 0, l = traits.length; i < l; i++) {
const trait = traits[i];
if ((trait !== null)
&& (typeof trait === 'object')
&& (Object.getPrototypeOf(trait) === Object.prototype)) {
const iterator = GetOwnPropertyDescriptors(trait);
let result;
while (!(result = iterator.next()).done) {
const [propertyKey, descriptor] = result.value;
if ((propertyKey !== 'constructor') && (propertyKey !== TRAITS)) {
if (ObjectHasOwnProperty(obj, propertyKey)) {
throw new Error(`The property '${String(propertyKey)}' is already implemented`);
}
else {
Object.defineProperty(obj, propertyKey, descriptor);
}
}
}
}
else {
throw new Error(`The trait must be a plain object`);
}
}
return obj;
}
function SuperTrait(traits, baseClass) {
const TraitClass = class TraitClass extends baseClass {
};
ImplementTraits(TraitClass.prototype, traits);
return TraitClass;
}
function ImplementsTrait(obj, trait) {
if ((obj !== null)
&& (typeof obj === 'object')) {
if (ObjectHasOwnProperty(obj, TRAITS)
&& obj[TRAITS].has(trait)) {
return true;
}
else {
return ImplementsTrait(Object.getPrototypeOf(obj), trait);
}
}
else {
return false;
}
}
function ImplementsTraits(obj, traits) {
return traits.every((trait) => ImplementsTrait(obj, trait));
}
function TraitFromClass(classTrait) {
return classTrait.prototype;
}
function TraitsFromClasses(...classTrait) {
return classTrait.map(TraitFromClass);
}
exports.BaseClass = BaseClass;

@@ -433,2 +511,5 @@ exports.BindDescriptor = BindDescriptor;

exports.HasFactoryWaterMark = HasFactoryWaterMark;
exports.ImplementTraits = ImplementTraits;
exports.ImplementsTrait = ImplementsTrait;
exports.ImplementsTraits = ImplementsTraits;
exports.IsFactoryClass = IsFactoryClass;

@@ -438,4 +519,6 @@ exports.IsInstanceOf = IsInstanceOf;

exports.MixOverrideSuperArgumentsFunction = MixOverrideSuperArgumentsFunction;
exports.ObjectHasOwnProperty = ObjectHasOwnProperty;
exports.OwnArguments = OwnArguments;
exports.PROTECTED = PROTECTED;
exports.RegisterTraits = RegisterTraits;
exports.SearchSuperClass = SearchSuperClass;

@@ -447,2 +530,6 @@ exports.SetClassName = SetClassName;

exports.SuperArguments = SuperArguments;
exports.SuperTrait = SuperTrait;
exports.TRAITS = TRAITS;
exports.TraitFromClass = TraitFromClass;
exports.TraitsFromClasses = TraitsFromClasses;

@@ -449,0 +536,0 @@ Object.defineProperty(exports, '__esModule', { value: true });

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

((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("class-factory",["exports"],t):t((e=e||self)["class-factory"]={})})(this,(function(e){"use strict";class t{}const n=Symbol("instanceof");function r(e,t){const r=Symbol.hasInstance in e?e[Symbol.hasInstance].bind(e):()=>!1;Object.defineProperty(e,Symbol.hasInstance,{configurable:!0,enumerable:!1,writable:!1,value(e){return e instanceof t||r(e)}}),n in t||Object.defineProperty(t,n,{value:new Set}),t[n].add(e)}const o=new Set(["prototype","constructor",...c(Object.prototype)]);function c(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}function*s(e){const t=new Set;for(;null!==e;){const n=c(e);for(const r of n)t.has(r)||(t.add(r),yield[r,Object.getOwnPropertyDescriptor(e,r),e]);e=Object.getPrototypeOf(e)}}function i(e,t,n=o){const r=s(e);let c;for(;!(c=r.next()).done;){const[e,r]=c.value;n.has(e)||Object.defineProperty(t,e,r)}}function a(e,t,n){i(e.prototype,t.prototype,n)}function u(e,t,n){i(e,t,n)}function l(e,t){Object.defineProperty(e,"name",{configurable:!0,enumerable:!1,value:t,writable:!1})}function f(e,t){a(e,t),u(e,t),r(e,t)}function p(e,t,n){const r={};if(r.configurable=n.configurable,r.enumerable=n.enumerable,void 0!==n.value){let o,c;r.get=()=>"function"==typeof e[t]?(o!==e[t]&&(o=e[t],c=o.bind(e)),c):e[t],n.writable&&(r.set=n=>{e[t]=n})}else"function"==typeof n.get&&(r.get=n.get.bind(e)),"function"==typeof n.set&&(r.set=n.set.bind(e));return r}const y=Symbol("is-factory-class");function b(e,t=!0){return!0===e[y]&&(!t||e.hasOwnProperty(y))}function d(e,t){let n=0;for(;null!==e;){if(t(e))return{index:n,ctor:e};n++,e=Object.getPrototypeOf(e)}return null}function O(e,t){if(Array.isArray(e[0]))return e[0]=t,e;throw new TypeError("Expected array as argument 0")}function g(e,t){for(let n=0,r=t.length;r>n;n++)e[n]=t[n];return e}const h=Symbol("protected");e.BaseClass=t,e.BindDescriptor=function(e,t,n){const r={};if(r.configurable=n.configurable,r.enumerable=n.enumerable,void 0!==n.value){let o=new WeakMap;r.get=function(){const n=e(this),r=Reflect.get(n,t);return"function"==typeof r?(o.has(r)||o.set(r,r.bind(n)),o.get(r)):r},n.writable&&(r.set=function(n){const r=e(this);Reflect.set(r,t,n)})}else"function"==typeof n.get&&(r.get=function(){const t=e(this);return n.get.call(t)}),"function"==typeof n.set&&(r.set=function(t){const r=e(this);return n.set.call(r,t)});return r},e.BindDescriptorOld=p,e.ClassToFactory=function(e){return function(n,i="auto"){let a;return n===Object||n===t?(a=class extends e{constructor(e){super(...e)}},r(n,a)):(a=class extends n{constructor(...t){const n=t[0];let r;switch(super(...t.slice(1)),i){case"auto":try{r=e.apply(this,n),void 0===r&&(r=this),i="function"}catch(t){r=Reflect.construct(e,n),i="class"}break;case"function":r=e.apply(this,n),void 0===r&&(r=this);break;case"class":r=Reflect.construct(e,n)}if(this!==r){const e=s(Object.getPrototypeOf(r));let t;for(;!(t=e.next()).done;){const e=t.value[0];o.has(e)||Object.defineProperty(this,e,p(r,e,t.value[1]))}const n=c(r);for(const e of n)o.has(e)||(e in this&&console.warn("Crossing properties !"),Object.defineProperty(this,e,p(r,e,Object.getOwnPropertyDescriptor(r,e))));Object.seal(r)}}},f(e,a)),l(a,e.name),a}},e.ConstructClassWithPrivateMembers=function(e,t){Object.defineProperty(e,t,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.ConstructClassWithProtectedMembers=function(e){Object.defineProperty(e,h,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.CopyClass=f,e.CopyClassName=function(e,t){let n=Object.getOwnPropertyDescriptor(e,"name");void 0===n?n={configurable:!0,enumerable:!1,value:e.name,writable:!1}:n.value=e.name,n.configurable&&Object.defineProperty(t,"name",n)},e.CopyClassPrototype=a,e.CopyClassStaticProperties=u,e.CopyOwnProperties=function(e,t,n=o){const r=c(e);for(const o of r){const r=Object.getOwnPropertyDescriptor(e,o);void 0===r||n.has(o)||Object.defineProperty(t,o,r)}},e.CopyProperties=i,e.EXCLUDED_PROPERTY_NAMES=o,e.GenerateOverrideSuperArgumentsFunction=function(e,t){const n=d(e,t);if(null===n)throw new Error("Failed to find super class of the class "+e.name);{const e=n.index;return b(n.ctor)?(t,n)=>{if(Array.isArray(t[e]))return t.slice(0,e).concat([n(t[e])]).concat(t.slice(e+1));throw new TypeError(`Expected array as argument[${e}]`)}:(t,n)=>t.slice(0,e).concat(n(t.slice(e)))}},e.GetOwnPropertyDescriptors=function*(e){const t=c(e);for(let n=0,r=t.length;r>n;n++){const r=t[n];yield[r,Object.getOwnPropertyDescriptor(e,r),e]}},e.GetOwnPropertyKeys=c,e.GetPropertyDescriptors=s,e.GetSafePropertyDescriptors=function*(e){const t=s(e);let n;for(;!(n=t.next()).done;){const[e,,t]=n.value;t===Object.prototype||t===Function.prototype||o.has(e)||(yield n.value)}},e.GetSetSuperArgsFunction=function(e){return e?O:g},e.HasFactoryWaterMark=function(e,t,n=!0){return!0===e[t]&&(!n||e.hasOwnProperty(t))},e.IsFactoryClass=b,e.IsInstanceOf=function(e,t){return e instanceof t||!(!e.constructor||!(n in e.constructor))&&e.constructor[n].has(t)},e.MakeFactory=function(e,t,n,o={}){let c=n;for(let e=t.length-1;e>=0;e--)c=t[e](c);const s=e(c);if(Object.defineProperty(s,y,{value:!0}),"string"==typeof o.name&&Object.defineProperty(s,"name",{configurable:!0,enumerable:!1,value:o.name,writable:!1}),Array.isArray(o.waterMarks))for(let e=0,t=o.waterMarks.length;t>e;e++)Object.defineProperty(s,o.waterMarks[e],{value:!0});return void 0!==o.instanceOf&&r(o.instanceOf,s),s},e.MixOverrideSuperArgumentsFunction=function(...e){return(t,...n)=>{for(let r=0,o=e.length;o>r;r++)t=e[r](t,n[r]);return t}},e.OwnArguments=function(e){return e[0]},e.PROTECTED=h,e.SearchSuperClass=d,e.SetClassName=l,e.SetInstanceOf=r,e.SetSuperArgsForFactoryClass=O,e.SetSuperArgsForStandardClass=g,e.SuperArguments=function(e){return e.slice(1)},Object.defineProperty(e,"__esModule",{value:!0})}));
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("class-factory",["exports"],t):t((e=e||self)["class-factory"]={})})(this,(function(e){"use strict";class t{}const n=Symbol("instanceof");function r(e,t){const r=Symbol.hasInstance in e?e[Symbol.hasInstance].bind(e):()=>!1;Object.defineProperty(e,Symbol.hasInstance,{configurable:!0,enumerable:!1,writable:!1,value(e){return e instanceof t||r(e)}}),n in t||Object.defineProperty(t,n,{value:new Set}),t[n].add(e)}const o=new Set(["prototype","constructor",...c(Object.prototype)]);function c(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}function*s(e){const t=c(e);for(let n=0,r=t.length;r>n;n++){const r=t[n];yield[r,Object.getOwnPropertyDescriptor(e,r),e]}}function*i(e){const t=new Set;for(;null!==e;){const n=c(e);for(const r of n)t.has(r)||(t.add(r),yield[r,Object.getOwnPropertyDescriptor(e,r),e]);e=Object.getPrototypeOf(e)}}function a(e,t,n=o){const r=i(e);let c;for(;!(c=r.next()).done;){const[e,r]=c.value;n.has(e)||Object.defineProperty(t,e,r)}}function u(e,t,n){a(e.prototype,t.prototype,n)}function l(e,t,n){a(e,t,n)}function f(e,t){Object.defineProperty(e,"name",{configurable:!0,enumerable:!1,value:t,writable:!1})}function p(e,t){u(e,t),l(e,t),r(e,t)}function y(e,t,n){const r={};if(r.configurable=n.configurable,r.enumerable=n.enumerable,void 0!==n.value){let o,c;r.get=()=>"function"==typeof e[t]?(o!==e[t]&&(o=e[t],c=o.bind(e)),c):e[t],n.writable&&(r.set=n=>{e[t]=n})}else"function"==typeof n.get&&(r.get=n.get.bind(e)),"function"==typeof n.set&&(r.set=n.set.bind(e));return r}function b(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const d=Symbol("is-factory-class");function O(e,t=!0){return!0===e[d]&&(!t||e.hasOwnProperty(d))}function g(e,t){let n=0;for(;null!==e;){if(t(e))return{index:n,ctor:e};n++,e=Object.getPrototypeOf(e)}return null}function m(e,t){if(Array.isArray(e[0]))return e[0]=t,e;throw new TypeError("Expected array as argument 0")}function h(e,t){for(let n=0,r=t.length;r>n;n++)e[n]=t[n];return e}const P=Symbol("protected");const w=Symbol("traits");function j(e,t){if(b(e,w)){const n=e[w];for(let e=0,r=t.length;r>e;e++)n.add(t[e])}else Object.defineProperty(e,w,{value:new WeakSet(t),writable:!1,enumerable:!1,configurable:!1})}function S(e,t){j(e,t);for(let n=0,r=t.length;r>n;n++){const r=t[n];if(null===r||"object"!=typeof r||Object.getPrototypeOf(r)!==Object.prototype)throw new Error("The trait must be a plain object");{const t=s(r);let n;for(;!(n=t.next()).done;){const[t,r]=n.value;if("constructor"!==t&&t!==w){if(b(e,t))throw new Error(`The property '${String(t)}' is already implemented`);Object.defineProperty(e,t,r)}}}}return e}function v(e,t){return null!==e&&"object"==typeof e&&(!(!b(e,w)||!e[w].has(t))||v(Object.getPrototypeOf(e),t))}function C(e){return e.prototype}e.BaseClass=t,e.BindDescriptor=function(e,t,n){const r={};if(r.configurable=n.configurable,r.enumerable=n.enumerable,void 0!==n.value){let o=new WeakMap;r.get=function(){const n=e(this),r=Reflect.get(n,t);return"function"==typeof r?(o.has(r)||o.set(r,r.bind(n)),o.get(r)):r},n.writable&&(r.set=function(n){const r=e(this);Reflect.set(r,t,n)})}else"function"==typeof n.get&&(r.get=function(){const t=e(this);return n.get.call(t)}),"function"==typeof n.set&&(r.set=function(t){const r=e(this);return n.set.call(r,t)});return r},e.BindDescriptorOld=y,e.ClassToFactory=function(e){return function(n,s="auto"){let a;return n===Object||n===t?(a=class extends e{constructor(e){super(...e)}},r(n,a)):(a=class extends n{constructor(...t){const n=t[0];let r;switch(super(...t.slice(1)),s){case"auto":try{r=e.apply(this,n),void 0===r&&(r=this),s="function"}catch(t){r=Reflect.construct(e,n),s="class"}break;case"function":r=e.apply(this,n),void 0===r&&(r=this);break;case"class":r=Reflect.construct(e,n)}if(this!==r){const e=i(Object.getPrototypeOf(r));let t;for(;!(t=e.next()).done;){const e=t.value[0];o.has(e)||Object.defineProperty(this,e,y(r,e,t.value[1]))}const n=c(r);for(const e of n)o.has(e)||(e in this&&console.warn("Crossing properties !"),Object.defineProperty(this,e,y(r,e,Object.getOwnPropertyDescriptor(r,e))));Object.seal(r)}}},p(e,a)),f(a,e.name),a}},e.ConstructClassWithPrivateMembers=function(e,t){Object.defineProperty(e,t,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.ConstructClassWithProtectedMembers=function(e){Object.defineProperty(e,P,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.CopyClass=p,e.CopyClassName=function(e,t){let n=Object.getOwnPropertyDescriptor(e,"name");void 0===n?n={configurable:!0,enumerable:!1,value:e.name,writable:!1}:n.value=e.name,n.configurable&&Object.defineProperty(t,"name",n)},e.CopyClassPrototype=u,e.CopyClassStaticProperties=l,e.CopyOwnProperties=function(e,t,n=o){const r=c(e);for(const o of r){const r=Object.getOwnPropertyDescriptor(e,o);void 0===r||n.has(o)||Object.defineProperty(t,o,r)}},e.CopyProperties=a,e.EXCLUDED_PROPERTY_NAMES=o,e.GenerateOverrideSuperArgumentsFunction=function(e,t){const n=g(e,t);if(null===n)throw new Error("Failed to find super class of the class "+e.name);{const e=n.index;return O(n.ctor)?(t,n)=>{if(Array.isArray(t[e]))return t.slice(0,e).concat([n(t[e])]).concat(t.slice(e+1));throw new TypeError(`Expected array as argument[${e}]`)}:(t,n)=>t.slice(0,e).concat(n(t.slice(e)))}},e.GetOwnPropertyDescriptors=s,e.GetOwnPropertyKeys=c,e.GetPropertyDescriptors=i,e.GetSafePropertyDescriptors=function*(e){const t=i(e);let n;for(;!(n=t.next()).done;){const[e,,t]=n.value;t===Object.prototype||t===Function.prototype||o.has(e)||(yield n.value)}},e.GetSetSuperArgsFunction=function(e){return e?m:h},e.HasFactoryWaterMark=function(e,t,n=!0){return!0===e[t]&&(!n||e.hasOwnProperty(t))},e.ImplementTraits=S,e.ImplementsTrait=v,e.ImplementsTraits=function(e,t){return t.every(t=>v(e,t))},e.IsFactoryClass=O,e.IsInstanceOf=function(e,t){return e instanceof t||!(!e.constructor||!(n in e.constructor))&&e.constructor[n].has(t)},e.MakeFactory=function(e,t,n,o={}){let c=n;for(let e=t.length-1;e>=0;e--)c=t[e](c);const s=e(c);if(Object.defineProperty(s,d,{value:!0}),"string"==typeof o.name&&Object.defineProperty(s,"name",{configurable:!0,enumerable:!1,value:o.name,writable:!1}),Array.isArray(o.waterMarks))for(let e=0,t=o.waterMarks.length;t>e;e++)Object.defineProperty(s,o.waterMarks[e],{value:!0});return void 0!==o.instanceOf&&r(o.instanceOf,s),s},e.MixOverrideSuperArgumentsFunction=function(...e){return(t,...n)=>{for(let r=0,o=e.length;o>r;r++)t=e[r](t,n[r]);return t}},e.ObjectHasOwnProperty=b,e.OwnArguments=function(e){return e[0]},e.PROTECTED=P,e.RegisterTraits=j,e.SearchSuperClass=g,e.SetClassName=f,e.SetInstanceOf=r,e.SetSuperArgsForFactoryClass=m,e.SetSuperArgsForStandardClass=h,e.SuperArguments=function(e){return e.slice(1)},e.SuperTrait=function(e,t){const n=class extends t{};return S(n.prototype,e),n},e.TRAITS=w,e.TraitFromClass=C,e.TraitsFromClasses=function(...e){return e.map(C)},Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=class-factory.esnext.core.umd.min.js.map

@@ -206,2 +206,5 @@ (function (global, factory) {

}
function ObjectHasOwnProperty(obj, propertyKey) {
return Object.prototype.hasOwnProperty.call(obj, propertyKey);
}

@@ -412,2 +415,77 @@ function MakeFactory(create, factories, superClass, options = {}) {

const TRAITS = Symbol('traits');
function RegisterTraits(obj, traits) {
if (ObjectHasOwnProperty(obj, TRAITS)) {
const _traits = obj[TRAITS];
for (let i = 0, l = traits.length; i < l; i++) {
_traits.add(traits[i]);
}
}
else {
Object.defineProperty(obj, TRAITS, {
value: new WeakSet(traits),
writable: false,
enumerable: false,
configurable: false,
});
}
}
function ImplementTraits(obj, traits) {
RegisterTraits(obj, traits);
for (let i = 0, l = traits.length; i < l; i++) {
const trait = traits[i];
if ((trait !== null)
&& (typeof trait === 'object')
&& (Object.getPrototypeOf(trait) === Object.prototype)) {
const iterator = GetOwnPropertyDescriptors(trait);
let result;
while (!(result = iterator.next()).done) {
const [propertyKey, descriptor] = result.value;
if ((propertyKey !== 'constructor') && (propertyKey !== TRAITS)) {
if (ObjectHasOwnProperty(obj, propertyKey)) {
throw new Error(`The property '${String(propertyKey)}' is already implemented`);
}
else {
Object.defineProperty(obj, propertyKey, descriptor);
}
}
}
}
else {
throw new Error(`The trait must be a plain object`);
}
}
return obj;
}
function SuperTrait(traits, baseClass) {
const TraitClass = class TraitClass extends baseClass {
};
ImplementTraits(TraitClass.prototype, traits);
return TraitClass;
}
function ImplementsTrait(obj, trait) {
if ((obj !== null)
&& (typeof obj === 'object')) {
if (ObjectHasOwnProperty(obj, TRAITS)
&& obj[TRAITS].has(trait)) {
return true;
}
else {
return ImplementsTrait(Object.getPrototypeOf(obj), trait);
}
}
else {
return false;
}
}
function ImplementsTraits(obj, traits) {
return traits.every((trait) => ImplementsTrait(obj, trait));
}
function TraitFromClass(classTrait) {
return classTrait.prototype;
}
function TraitsFromClasses(...classTrait) {
return classTrait.map(TraitFromClass);
}
exports.BaseClass = BaseClass;

@@ -433,2 +511,5 @@ exports.BindDescriptor = BindDescriptor;

exports.HasFactoryWaterMark = HasFactoryWaterMark;
exports.ImplementTraits = ImplementTraits;
exports.ImplementsTrait = ImplementsTrait;
exports.ImplementsTraits = ImplementsTraits;
exports.IsFactoryClass = IsFactoryClass;

@@ -438,4 +519,6 @@ exports.IsInstanceOf = IsInstanceOf;

exports.MixOverrideSuperArgumentsFunction = MixOverrideSuperArgumentsFunction;
exports.ObjectHasOwnProperty = ObjectHasOwnProperty;
exports.OwnArguments = OwnArguments;
exports.PROTECTED = PROTECTED;
exports.RegisterTraits = RegisterTraits;
exports.SearchSuperClass = SearchSuperClass;

@@ -447,2 +530,6 @@ exports.SetClassName = SetClassName;

exports.SuperArguments = SuperArguments;
exports.SuperTrait = SuperTrait;
exports.TRAITS = TRAITS;
exports.TraitFromClass = TraitFromClass;
exports.TraitsFromClasses = TraitsFromClasses;

@@ -449,0 +536,0 @@ Object.defineProperty(exports, '__esModule', { value: true });

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("class-factory",["exports"],t):t((e=e||self)["class-factory"]={})}(this,(function(e){"use strict";class t{}const n=Symbol("instanceof");function r(e,t){const r=Symbol.hasInstance in e?e[Symbol.hasInstance].bind(e):()=>!1;Object.defineProperty(e,Symbol.hasInstance,{configurable:!0,enumerable:!1,writable:!1,value:e=>e instanceof t||r(e)}),n in t||Object.defineProperty(t,n,{value:new Set}),t[n].add(e)}const o=new Set(["prototype","constructor",...c(Object.prototype)]);function c(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}function*s(e){const t=new Set;for(;null!==e;){const n=c(e);for(const r of n)t.has(r)||(t.add(r),yield[r,Object.getOwnPropertyDescriptor(e,r),e]);e=Object.getPrototypeOf(e)}}function i(e,t,n=o){const r=s(e);let c;for(;!(c=r.next()).done;){const[e,r]=c.value;n.has(e)||Object.defineProperty(t,e,r)}}function a(e,t,n){i(e.prototype,t.prototype,n)}function u(e,t,n){i(e,t,n)}function l(e,t){Object.defineProperty(e,"name",{configurable:!0,enumerable:!1,value:t,writable:!1})}function f(e,t){a(e,t),u(e,t),r(e,t)}function p(e,t,n){const r={};if(r.configurable=n.configurable,r.enumerable=n.enumerable,void 0!==n.value){let o,c;r.get=()=>"function"==typeof e[t]?(o!==e[t]&&(o=e[t],c=o.bind(e)),c):e[t],n.writable&&(r.set=n=>{e[t]=n})}else"function"==typeof n.get&&(r.get=n.get.bind(e)),"function"==typeof n.set&&(r.set=n.set.bind(e));return r}const y=Symbol("is-factory-class");function b(e,t=!0){return!0===e[y]&&(!t||e.hasOwnProperty(y))}function d(e,t){let n=0;for(;null!==e;){if(t(e))return{index:n,ctor:e};n++,e=Object.getPrototypeOf(e)}return null}function O(e,t){if(Array.isArray(e[0]))return e[0]=t,e;throw new TypeError("Expected array as argument 0")}function g(e,t){for(let n=0,r=t.length;n<r;n++)e[n]=t[n];return e}const h=Symbol("protected");e.BaseClass=t,e.BindDescriptor=function(e,t,n){const r={};if(r.configurable=n.configurable,r.enumerable=n.enumerable,void 0!==n.value){let o=new WeakMap;r.get=function(){const n=e(this),r=Reflect.get(n,t);return"function"==typeof r?(o.has(r)||o.set(r,r.bind(n)),o.get(r)):r},n.writable&&(r.set=function(n){const r=e(this);Reflect.set(r,t,n)})}else"function"==typeof n.get&&(r.get=function(){const t=e(this);return n.get.call(t)}),"function"==typeof n.set&&(r.set=function(t){const r=e(this);return n.set.call(r,t)});return r},e.BindDescriptorOld=p,e.ClassToFactory=function(e){return function(n,i="auto"){let a;return n===Object||n===t?(a=class extends e{constructor(e){super(...e)}},r(n,a)):(a=class extends n{constructor(...t){const n=t[0];let r;switch(super(...t.slice(1)),i){case"auto":try{r=e.apply(this,n),void 0===r&&(r=this),i="function"}catch(t){r=Reflect.construct(e,n),i="class"}break;case"function":r=e.apply(this,n),void 0===r&&(r=this);break;case"class":r=Reflect.construct(e,n)}if(this!==r){const e=s(Object.getPrototypeOf(r));let t;for(;!(t=e.next()).done;){const e=t.value[0];o.has(e)||Object.defineProperty(this,e,p(r,e,t.value[1]))}const n=c(r);for(const e of n)o.has(e)||(e in this&&console.warn("Crossing properties !"),Object.defineProperty(this,e,p(r,e,Object.getOwnPropertyDescriptor(r,e))));Object.seal(r)}}},f(e,a)),l(a,e.name),a}},e.ConstructClassWithPrivateMembers=function(e,t){Object.defineProperty(e,t,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.ConstructClassWithProtectedMembers=function(e){Object.defineProperty(e,h,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.CopyClass=f,e.CopyClassName=function(e,t){let n=Object.getOwnPropertyDescriptor(e,"name");void 0===n?n={configurable:!0,enumerable:!1,value:e.name,writable:!1}:n.value=e.name,n.configurable&&Object.defineProperty(t,"name",n)},e.CopyClassPrototype=a,e.CopyClassStaticProperties=u,e.CopyOwnProperties=function(e,t,n=o){const r=c(e);for(const o of r){const r=Object.getOwnPropertyDescriptor(e,o);void 0===r||n.has(o)||Object.defineProperty(t,o,r)}},e.CopyProperties=i,e.EXCLUDED_PROPERTY_NAMES=o,e.GenerateOverrideSuperArgumentsFunction=function(e,t){const n=d(e,t);if(null===n)throw new Error("Failed to find super class of the class "+e.name);{const e=n.index;return b(n.ctor)?(t,n)=>{if(Array.isArray(t[e]))return t.slice(0,e).concat([n(t[e])]).concat(t.slice(e+1));throw new TypeError(`Expected array as argument[${e}]`)}:(t,n)=>t.slice(0,e).concat(n(t.slice(e)))}},e.GetOwnPropertyDescriptors=function*(e){const t=c(e);for(let n=0,r=t.length;n<r;n++){const r=t[n];yield[r,Object.getOwnPropertyDescriptor(e,r),e]}},e.GetOwnPropertyKeys=c,e.GetPropertyDescriptors=s,e.GetSafePropertyDescriptors=function*(e){const t=s(e);let n;for(;!(n=t.next()).done;){const[e,,t]=n.value;t===Object.prototype||t===Function.prototype||o.has(e)||(yield n.value)}},e.GetSetSuperArgsFunction=function(e){return e?O:g},e.HasFactoryWaterMark=function(e,t,n=!0){return!0===e[t]&&(!n||e.hasOwnProperty(t))},e.IsFactoryClass=b,e.IsInstanceOf=function(e,t){return e instanceof t||!(!e.constructor||!(n in e.constructor))&&e.constructor[n].has(t)},e.MakeFactory=function(e,t,n,o={}){let c=n;for(let e=t.length-1;e>=0;e--)c=t[e](c);const s=e(c);if(Object.defineProperty(s,y,{value:!0}),"string"==typeof o.name&&Object.defineProperty(s,"name",{configurable:!0,enumerable:!1,value:o.name,writable:!1}),Array.isArray(o.waterMarks))for(let e=0,t=o.waterMarks.length;e<t;e++)Object.defineProperty(s,o.waterMarks[e],{value:!0});return void 0!==o.instanceOf&&r(o.instanceOf,s),s},e.MixOverrideSuperArgumentsFunction=function(...e){return(t,...n)=>{for(let r=0,o=e.length;r<o;r++)t=e[r](t,n[r]);return t}},e.OwnArguments=function(e){return e[0]},e.PROTECTED=h,e.SearchSuperClass=d,e.SetClassName=l,e.SetInstanceOf=r,e.SetSuperArgsForFactoryClass=O,e.SetSuperArgsForStandardClass=g,e.SuperArguments=function(e){return e.slice(1)},Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("class-factory",["exports"],t):t((e=e||self)["class-factory"]={})}(this,(function(e){"use strict";class t{}const n=Symbol("instanceof");function r(e,t){const r=Symbol.hasInstance in e?e[Symbol.hasInstance].bind(e):()=>!1;Object.defineProperty(e,Symbol.hasInstance,{configurable:!0,enumerable:!1,writable:!1,value:e=>e instanceof t||r(e)}),n in t||Object.defineProperty(t,n,{value:new Set}),t[n].add(e)}const o=new Set(["prototype","constructor",...c(Object.prototype)]);function c(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}function*s(e){const t=c(e);for(let n=0,r=t.length;n<r;n++){const r=t[n];yield[r,Object.getOwnPropertyDescriptor(e,r),e]}}function*i(e){const t=new Set;for(;null!==e;){const n=c(e);for(const r of n)t.has(r)||(t.add(r),yield[r,Object.getOwnPropertyDescriptor(e,r),e]);e=Object.getPrototypeOf(e)}}function a(e,t,n=o){const r=i(e);let c;for(;!(c=r.next()).done;){const[e,r]=c.value;n.has(e)||Object.defineProperty(t,e,r)}}function u(e,t,n){a(e.prototype,t.prototype,n)}function l(e,t,n){a(e,t,n)}function f(e,t){Object.defineProperty(e,"name",{configurable:!0,enumerable:!1,value:t,writable:!1})}function p(e,t){u(e,t),l(e,t),r(e,t)}function y(e,t,n){const r={};if(r.configurable=n.configurable,r.enumerable=n.enumerable,void 0!==n.value){let o,c;r.get=()=>"function"==typeof e[t]?(o!==e[t]&&(o=e[t],c=o.bind(e)),c):e[t],n.writable&&(r.set=n=>{e[t]=n})}else"function"==typeof n.get&&(r.get=n.get.bind(e)),"function"==typeof n.set&&(r.set=n.set.bind(e));return r}function b(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const d=Symbol("is-factory-class");function O(e,t=!0){return!0===e[d]&&(!t||e.hasOwnProperty(d))}function g(e,t){let n=0;for(;null!==e;){if(t(e))return{index:n,ctor:e};n++,e=Object.getPrototypeOf(e)}return null}function m(e,t){if(Array.isArray(e[0]))return e[0]=t,e;throw new TypeError("Expected array as argument 0")}function h(e,t){for(let n=0,r=t.length;n<r;n++)e[n]=t[n];return e}const P=Symbol("protected");const w=Symbol("traits");function j(e,t){if(b(e,w)){const n=e[w];for(let e=0,r=t.length;e<r;e++)n.add(t[e])}else Object.defineProperty(e,w,{value:new WeakSet(t),writable:!1,enumerable:!1,configurable:!1})}function S(e,t){j(e,t);for(let n=0,r=t.length;n<r;n++){const r=t[n];if(null===r||"object"!=typeof r||Object.getPrototypeOf(r)!==Object.prototype)throw new Error("The trait must be a plain object");{const t=s(r);let n;for(;!(n=t.next()).done;){const[t,r]=n.value;if("constructor"!==t&&t!==w){if(b(e,t))throw new Error(`The property '${String(t)}' is already implemented`);Object.defineProperty(e,t,r)}}}}return e}function v(e,t){return null!==e&&"object"==typeof e&&(!(!b(e,w)||!e[w].has(t))||v(Object.getPrototypeOf(e),t))}function C(e){return e.prototype}e.BaseClass=t,e.BindDescriptor=function(e,t,n){const r={};if(r.configurable=n.configurable,r.enumerable=n.enumerable,void 0!==n.value){let o=new WeakMap;r.get=function(){const n=e(this),r=Reflect.get(n,t);return"function"==typeof r?(o.has(r)||o.set(r,r.bind(n)),o.get(r)):r},n.writable&&(r.set=function(n){const r=e(this);Reflect.set(r,t,n)})}else"function"==typeof n.get&&(r.get=function(){const t=e(this);return n.get.call(t)}),"function"==typeof n.set&&(r.set=function(t){const r=e(this);return n.set.call(r,t)});return r},e.BindDescriptorOld=y,e.ClassToFactory=function(e){return function(n,s="auto"){let a;return n===Object||n===t?(a=class extends e{constructor(e){super(...e)}},r(n,a)):(a=class extends n{constructor(...t){const n=t[0];let r;switch(super(...t.slice(1)),s){case"auto":try{r=e.apply(this,n),void 0===r&&(r=this),s="function"}catch(t){r=Reflect.construct(e,n),s="class"}break;case"function":r=e.apply(this,n),void 0===r&&(r=this);break;case"class":r=Reflect.construct(e,n)}if(this!==r){const e=i(Object.getPrototypeOf(r));let t;for(;!(t=e.next()).done;){const e=t.value[0];o.has(e)||Object.defineProperty(this,e,y(r,e,t.value[1]))}const n=c(r);for(const e of n)o.has(e)||(e in this&&console.warn("Crossing properties !"),Object.defineProperty(this,e,y(r,e,Object.getOwnPropertyDescriptor(r,e))));Object.seal(r)}}},p(e,a)),f(a,e.name),a}},e.ConstructClassWithPrivateMembers=function(e,t){Object.defineProperty(e,t,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.ConstructClassWithProtectedMembers=function(e){Object.defineProperty(e,P,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.CopyClass=p,e.CopyClassName=function(e,t){let n=Object.getOwnPropertyDescriptor(e,"name");void 0===n?n={configurable:!0,enumerable:!1,value:e.name,writable:!1}:n.value=e.name,n.configurable&&Object.defineProperty(t,"name",n)},e.CopyClassPrototype=u,e.CopyClassStaticProperties=l,e.CopyOwnProperties=function(e,t,n=o){const r=c(e);for(const o of r){const r=Object.getOwnPropertyDescriptor(e,o);void 0===r||n.has(o)||Object.defineProperty(t,o,r)}},e.CopyProperties=a,e.EXCLUDED_PROPERTY_NAMES=o,e.GenerateOverrideSuperArgumentsFunction=function(e,t){const n=g(e,t);if(null===n)throw new Error("Failed to find super class of the class "+e.name);{const e=n.index;return O(n.ctor)?(t,n)=>{if(Array.isArray(t[e]))return t.slice(0,e).concat([n(t[e])]).concat(t.slice(e+1));throw new TypeError(`Expected array as argument[${e}]`)}:(t,n)=>t.slice(0,e).concat(n(t.slice(e)))}},e.GetOwnPropertyDescriptors=s,e.GetOwnPropertyKeys=c,e.GetPropertyDescriptors=i,e.GetSafePropertyDescriptors=function*(e){const t=i(e);let n;for(;!(n=t.next()).done;){const[e,,t]=n.value;t===Object.prototype||t===Function.prototype||o.has(e)||(yield n.value)}},e.GetSetSuperArgsFunction=function(e){return e?m:h},e.HasFactoryWaterMark=function(e,t,n=!0){return!0===e[t]&&(!n||e.hasOwnProperty(t))},e.ImplementTraits=S,e.ImplementsTrait=v,e.ImplementsTraits=function(e,t){return t.every(t=>v(e,t))},e.IsFactoryClass=O,e.IsInstanceOf=function(e,t){return e instanceof t||!(!e.constructor||!(n in e.constructor))&&e.constructor[n].has(t)},e.MakeFactory=function(e,t,n,o={}){let c=n;for(let e=t.length-1;e>=0;e--)c=t[e](c);const s=e(c);if(Object.defineProperty(s,d,{value:!0}),"string"==typeof o.name&&Object.defineProperty(s,"name",{configurable:!0,enumerable:!1,value:o.name,writable:!1}),Array.isArray(o.waterMarks))for(let e=0,t=o.waterMarks.length;e<t;e++)Object.defineProperty(s,o.waterMarks[e],{value:!0});return void 0!==o.instanceOf&&r(o.instanceOf,s),s},e.MixOverrideSuperArgumentsFunction=function(...e){return(t,...n)=>{for(let r=0,o=e.length;r<o;r++)t=e[r](t,n[r]);return t}},e.ObjectHasOwnProperty=b,e.OwnArguments=function(e){return e[0]},e.PROTECTED=P,e.RegisterTraits=j,e.SearchSuperClass=g,e.SetClassName=f,e.SetInstanceOf=r,e.SetSuperArgsForFactoryClass=m,e.SetSuperArgsForStandardClass=h,e.SuperArguments=function(e){return e.slice(1)},e.SuperTrait=function(e,t){const n=class extends t{};return S(n.prototype,e),n},e.TRAITS=w,e.TraitFromClass=C,e.TraitsFromClasses=function(...e){return e.map(C)},Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=class-factory.esnext.umd.min.js.map

@@ -320,2 +320,5 @@ (function (global, factory) {

}
function ObjectHasOwnProperty(obj, propertyKey) {
return Object.prototype.hasOwnProperty.call(obj, propertyKey);
}
//# sourceMappingURL=helpers.js.map

@@ -551,2 +554,87 @@

var TRAITS = Symbol('traits');
function RegisterTraits(obj, traits) {
if (ObjectHasOwnProperty(obj, TRAITS)) {
var _traits = obj[TRAITS];
for (var i = 0, l = traits.length; i < l; i++) {
_traits.add(traits[i]);
}
}
else {
Object.defineProperty(obj, TRAITS, {
value: new WeakSet(traits),
writable: false,
enumerable: false,
configurable: false,
});
}
}
function ImplementTraits(obj, traits) {
RegisterTraits(obj, traits);
for (var i = 0, l = traits.length; i < l; i++) {
var trait = traits[i];
if ((trait !== null)
&& (typeof trait === 'object')
&& (Object.getPrototypeOf(trait) === Object.prototype)) {
var iterator = GetOwnPropertyDescriptors(trait);
var result = void 0;
while (!(result = iterator.next()).done) {
var _a = result.value, propertyKey = _a[0], descriptor = _a[1];
if ((propertyKey !== 'constructor') && (propertyKey !== TRAITS)) {
if (ObjectHasOwnProperty(obj, propertyKey)) {
throw new Error("The property '" + String(propertyKey) + "' is already implemented");
}
else {
Object.defineProperty(obj, propertyKey, descriptor);
}
}
}
}
else {
throw new Error("The trait must be a plain object");
}
}
return obj;
}
function SuperTrait(traits, baseClass) {
var TraitClass = (function (_super) {
__extends(TraitClass, _super);
function TraitClass() {
return _super !== null && _super.apply(this, arguments) || this;
}
return TraitClass;
}(baseClass));
ImplementTraits(TraitClass.prototype, traits);
return TraitClass;
}
function ImplementsTrait(obj, trait) {
if ((obj !== null)
&& (typeof obj === 'object')) {
if (ObjectHasOwnProperty(obj, TRAITS)
&& obj[TRAITS].has(trait)) {
return true;
}
else {
return ImplementsTrait(Object.getPrototypeOf(obj), trait);
}
}
else {
return false;
}
}
function ImplementsTraits(obj, traits) {
return traits.every(function (trait) { return ImplementsTrait(obj, trait); });
}
function TraitFromClass(classTrait) {
return classTrait.prototype;
}
function TraitsFromClasses() {
var classTrait = [];
for (var _i = 0; _i < arguments.length; _i++) {
classTrait[_i] = arguments[_i];
}
return classTrait.map(TraitFromClass);
}
//# sourceMappingURL=traits.js.map
exports.BaseClass = BaseClass;

@@ -572,2 +660,5 @@ exports.BindDescriptor = BindDescriptor;

exports.HasFactoryWaterMark = HasFactoryWaterMark;
exports.ImplementTraits = ImplementTraits;
exports.ImplementsTrait = ImplementsTrait;
exports.ImplementsTraits = ImplementsTraits;
exports.IsFactoryClass = IsFactoryClass;

@@ -577,4 +668,6 @@ exports.IsInstanceOf = IsInstanceOf;

exports.MixOverrideSuperArgumentsFunction = MixOverrideSuperArgumentsFunction;
exports.ObjectHasOwnProperty = ObjectHasOwnProperty;
exports.OwnArguments = OwnArguments;
exports.PROTECTED = PROTECTED;
exports.RegisterTraits = RegisterTraits;
exports.SearchSuperClass = SearchSuperClass;

@@ -586,2 +679,6 @@ exports.SetClassName = SetClassName;

exports.SuperArguments = SuperArguments;
exports.SuperTrait = SuperTrait;
exports.TRAITS = TRAITS;
exports.TraitFromClass = TraitFromClass;
exports.TraitsFromClasses = TraitsFromClasses;

@@ -588,0 +685,0 @@ Object.defineProperty(exports, '__esModule', { value: true });

@@ -15,3 +15,3 @@ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("class-factory",["exports"],t):t((e=e||self)["class-factory"]={})}(this,(function(e){"use strict";var t=function(){},r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};

and limitations under the License.
***************************************************************************** */function n(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function o(e,t){var r,n,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;c;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return c.label++,{value:a[1],done:!1};case 5:c.label++,n=a[1],a=[0];continue;case 7:a=c.ops.pop(),c.trys.pop();continue;default:if(!(o=c.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){c=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){c.label=a[1];break}if(6===a[0]&&c.label<o[1]){c.label=o[1],o=a;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(a);break}o[2]&&c.ops.pop(),c.trys.pop();continue}a=t.call(e,c)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var a=Symbol("instanceof");function c(e,t){var r=Symbol.hasInstance in e?e[Symbol.hasInstance].bind(e):function(){return!1};Object.defineProperty(e,Symbol.hasInstance,{configurable:!0,enumerable:!1,writable:!1,value:function(e){return e instanceof t||r(e)}}),a in t||Object.defineProperty(t,a,{value:new Set}),t[a].add(e)}var i=new Set(function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],c=0,i=a.length;c<i;c++,o++)n[o]=a[c];return n}(["prototype","constructor"],u(Object.prototype)));function u(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}function s(e){var t,r,n,a,c;return o(this,(function(o){switch(o.label){case 0:t=new Set,o.label=1;case 1:if(null===e)return[3,6];r=u(e),n=0,a=r,o.label=2;case 2:return n<a.length?(c=a[n],t.has(c)?[3,4]:(t.add(c),[4,[c,Object.getOwnPropertyDescriptor(e,c),e]])):[3,5];case 3:o.sent(),o.label=4;case 4:return n++,[3,2];case 5:return e=Object.getPrototypeOf(e),[3,1];case 6:return[2]}}))}function l(e,t,r){void 0===r&&(r=i);for(var n,o=s(e);!(n=o.next()).done;){var a=n.value,c=a[0],u=a[1];r.has(c)||Object.defineProperty(t,c,u)}}function f(e,t,r){l(e.prototype,t.prototype,r)}function p(e,t,r){l(e,t,r)}function y(e,t){Object.defineProperty(e,"name",{configurable:!0,enumerable:!1,value:t,writable:!1})}function b(e,t){f(e,t),p(e,t),c(e,t)}function v(e,t,r){var n,o,a={};(a.configurable=r.configurable,a.enumerable=r.enumerable,void 0!==r.value)?(a.get=function(){return"function"==typeof e[t]?(n!==e[t]&&(n=e[t],o=n.bind(e)),o):e[t]},r.writable&&(a.set=function(r){e[t]=r})):("function"==typeof r.get&&(a.get=r.get.bind(e)),"function"==typeof r.set&&(a.set=r.set.bind(e)));return a}var d=Symbol("is-factory-class");function h(e,t){return void 0===t&&(t=!0),!0===e[d]&&(!t||e.hasOwnProperty(d))}function g(e,t){for(var r=0;null!==e;){if(t(e))return{index:r,ctor:e};r++,e=Object.getPrototypeOf(e)}return null}function O(e,t){if(Array.isArray(e[0]))return e[0]=t,e;throw new TypeError("Expected array as argument 0")}function w(e,t){for(var r=0,n=t.length;r<n;r++)e[r]=t[r];return e}var m=Symbol("protected");e.BaseClass=t,e.BindDescriptor=function(e,t,r){var n={};if(n.configurable=r.configurable,n.enumerable=r.enumerable,void 0!==r.value){var o=new WeakMap;n.get=function(){var r=e(this),n=Reflect.get(r,t);return"function"==typeof n?(o.has(n)||o.set(n,n.bind(r)),o.get(n)):n},r.writable&&(n.set=function(r){var n=e(this);Reflect.set(n,t,r)})}else"function"==typeof r.get&&(n.get=function(){var t=e(this);return r.get.call(t)}),"function"==typeof r.set&&(n.set=function(t){var n=e(this);return r.set.call(n,t)});return n},e.BindDescriptorOld=v,e.ClassToFactory=function(e){return function(r,o){var a;return void 0===o&&(o="auto"),r===Object||r===t?c(r,a=function(e){function t(t){return e.apply(this,t)||this}return n(t,e),t}(e)):(a=function(t){function r(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var a,c=this,l=r[0];switch(c=t.apply(this,r.slice(1))||this,o){case"auto":try{void 0===(a=e.apply(c,l))&&(a=c),o="function"}catch(t){a=Reflect.construct(e,l),o="class"}break;case"function":void 0===(a=e.apply(c,l))&&(a=c);break;case"class":a=Reflect.construct(e,l)}if(c!==a){for(var f=s(Object.getPrototypeOf(a)),p=void 0;!(p=f.next()).done;){var y=p.value[0];i.has(y)||Object.defineProperty(c,y,v(a,y,p.value[1]))}for(var b=u(a),d=0,h=b;d<h.length;d++){y=h[d];i.has(y)||(y in c&&console.warn("Crossing properties !"),Object.defineProperty(c,y,v(a,y,Object.getOwnPropertyDescriptor(a,y))))}Object.seal(a)}return c}return n(r,t),r}(r),b(e,a)),y(a,e.name),a}},e.ConstructClassWithPrivateMembers=function(e,t){Object.defineProperty(e,t,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.ConstructClassWithProtectedMembers=function(e){Object.defineProperty(e,m,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.CopyClass=b,e.CopyClassName=function(e,t){var r=Object.getOwnPropertyDescriptor(e,"name");void 0===r?r={configurable:!0,enumerable:!1,value:e.name,writable:!1}:r.value=e.name,r.configurable&&Object.defineProperty(t,"name",r)},e.CopyClassPrototype=f,e.CopyClassStaticProperties=p,e.CopyOwnProperties=function(e,t,r){void 0===r&&(r=i);for(var n=0,o=u(e);n<o.length;n++){var a=o[n],c=Object.getOwnPropertyDescriptor(e,a);void 0===c||r.has(a)||Object.defineProperty(t,a,c)}},e.CopyProperties=l,e.EXCLUDED_PROPERTY_NAMES=i,e.GenerateOverrideSuperArgumentsFunction=function(e,t){var r=g(e,t);if(null===r)throw new Error("Failed to find super class of the class "+e.name);var n=r.index;return h(r.ctor)?function(e,t){if(Array.isArray(e[n]))return e.slice(0,n).concat([t(e[n])]).concat(e.slice(n+1));throw new TypeError("Expected array as argument["+n+"]")}:function(e,t){return e.slice(0,n).concat(t(e.slice(n)))}},e.GetOwnPropertyDescriptors=function(e){var t,r,n,a;return o(this,(function(o){switch(o.label){case 0:t=u(e),r=0,n=t.length,o.label=1;case 1:return r<n?[4,[a=t[r],Object.getOwnPropertyDescriptor(e,a),e]]:[3,4];case 2:o.sent(),o.label=3;case 3:return r++,[3,1];case 4:return[2]}}))},e.GetOwnPropertyKeys=u,e.GetPropertyDescriptors=s,e.GetSafePropertyDescriptors=function(e){var t,r,n,a,c;return o(this,(function(o){switch(o.label){case 0:t=s(e),o.label=1;case 1:return(r=t.next()).done?[3,4]:(n=r.value,a=n[0],(c=n[2])===Object.prototype||c===Function.prototype||i.has(a)?[3,3]:[4,r.value]);case 2:o.sent(),o.label=3;case 3:return[3,1];case 4:return[2]}}))},e.GetSetSuperArgsFunction=function(e){return e?O:w},e.HasFactoryWaterMark=function(e,t,r){return void 0===r&&(r=!0),!0===e[t]&&(!r||e.hasOwnProperty(t))},e.IsFactoryClass=h,e.IsInstanceOf=function(e,t){return e instanceof t||!(!e.constructor||!(a in e.constructor))&&e.constructor[a].has(t)},e.MakeFactory=function(e,t,r,n){void 0===n&&(n={});for(var o=r,a=t.length-1;a>=0;a--)o=t[a](o);var i=e(o);if(Object.defineProperty(i,d,{value:!0}),"string"==typeof n.name&&Object.defineProperty(i,"name",{configurable:!0,enumerable:!1,value:n.name,writable:!1}),Array.isArray(n.waterMarks)){a=0;for(var u=n.waterMarks.length;a<u;a++)Object.defineProperty(i,n.waterMarks[a],{value:!0})}return void 0!==n.instanceOf&&c(n.instanceOf,i),i},e.MixOverrideSuperArgumentsFunction=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];for(var o=0,a=e.length;o<a;o++)t=e[o](t,r[o]);return t}},e.OwnArguments=function(e){return e[0]},e.PROTECTED=m,e.SearchSuperClass=g,e.SetClassName=y,e.SetInstanceOf=c,e.SetSuperArgsForFactoryClass=O,e.SetSuperArgsForStandardClass=w,e.SuperArguments=function(e){return e.slice(1)},Object.defineProperty(e,"__esModule",{value:!0})}));
***************************************************************************** */function n(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function o(e,t){var r,n,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;c;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return c.label++,{value:a[1],done:!1};case 5:c.label++,n=a[1],a=[0];continue;case 7:a=c.ops.pop(),c.trys.pop();continue;default:if(!(o=c.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){c=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){c.label=a[1];break}if(6===a[0]&&c.label<o[1]){c.label=o[1],o=a;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(a);break}o[2]&&c.ops.pop(),c.trys.pop();continue}a=t.call(e,c)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var a=Symbol("instanceof");function c(e,t){var r=Symbol.hasInstance in e?e[Symbol.hasInstance].bind(e):function(){return!1};Object.defineProperty(e,Symbol.hasInstance,{configurable:!0,enumerable:!1,writable:!1,value:function(e){return e instanceof t||r(e)}}),a in t||Object.defineProperty(t,a,{value:new Set}),t[a].add(e)}var i=new Set(function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],c=0,i=a.length;c<i;c++,o++)n[o]=a[c];return n}(["prototype","constructor"],u(Object.prototype)));function u(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}function s(e){var t,r,n,a;return o(this,(function(o){switch(o.label){case 0:t=u(e),r=0,n=t.length,o.label=1;case 1:return r<n?[4,[a=t[r],Object.getOwnPropertyDescriptor(e,a),e]]:[3,4];case 2:o.sent(),o.label=3;case 3:return r++,[3,1];case 4:return[2]}}))}function l(e){var t,r,n,a,c;return o(this,(function(o){switch(o.label){case 0:t=new Set,o.label=1;case 1:if(null===e)return[3,6];r=u(e),n=0,a=r,o.label=2;case 2:return n<a.length?(c=a[n],t.has(c)?[3,4]:(t.add(c),[4,[c,Object.getOwnPropertyDescriptor(e,c),e]])):[3,5];case 3:o.sent(),o.label=4;case 4:return n++,[3,2];case 5:return e=Object.getPrototypeOf(e),[3,1];case 6:return[2]}}))}function f(e,t,r){void 0===r&&(r=i);for(var n,o=l(e);!(n=o.next()).done;){var a=n.value,c=a[0],u=a[1];r.has(c)||Object.defineProperty(t,c,u)}}function p(e,t,r){f(e.prototype,t.prototype,r)}function y(e,t,r){f(e,t,r)}function b(e,t){Object.defineProperty(e,"name",{configurable:!0,enumerable:!1,value:t,writable:!1})}function v(e,t){p(e,t),y(e,t),c(e,t)}function d(e,t,r){var n,o,a={};(a.configurable=r.configurable,a.enumerable=r.enumerable,void 0!==r.value)?(a.get=function(){return"function"==typeof e[t]?(n!==e[t]&&(n=e[t],o=n.bind(e)),o):e[t]},r.writable&&(a.set=function(r){e[t]=r})):("function"==typeof r.get&&(a.get=r.get.bind(e)),"function"==typeof r.set&&(a.set=r.set.bind(e)));return a}function h(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var O=Symbol("is-factory-class");function g(e,t){return void 0===t&&(t=!0),!0===e[O]&&(!t||e.hasOwnProperty(O))}function m(e,t){for(var r=0;null!==e;){if(t(e))return{index:r,ctor:e};r++,e=Object.getPrototypeOf(e)}return null}function w(e,t){if(Array.isArray(e[0]))return e[0]=t,e;throw new TypeError("Expected array as argument 0")}function P(e,t){for(var r=0,n=t.length;r<n;r++)e[r]=t[r];return e}var j=Symbol("protected");var S=Symbol("traits");function C(e,t){if(h(e,S))for(var r=e[S],n=0,o=t.length;n<o;n++)r.add(t[n]);else Object.defineProperty(e,S,{value:new WeakSet(t),writable:!1,enumerable:!1,configurable:!1})}function T(e,t){C(e,t);for(var r=0,n=t.length;r<n;r++){var o=t[r];if(null===o||"object"!=typeof o||Object.getPrototypeOf(o)!==Object.prototype)throw new Error("The trait must be a plain object");for(var a=s(o),c=void 0;!(c=a.next()).done;){var i=c.value,u=i[0],l=i[1];if("constructor"!==u&&u!==S){if(h(e,u))throw new Error("The property '"+String(u)+"' is already implemented");Object.defineProperty(e,u,l)}}}return e}function A(e,t){return null!==e&&"object"==typeof e&&(!(!h(e,S)||!e[S].has(t))||A(Object.getPrototypeOf(e),t))}function x(e){return e.prototype}e.BaseClass=t,e.BindDescriptor=function(e,t,r){var n={};if(n.configurable=r.configurable,n.enumerable=r.enumerable,void 0!==r.value){var o=new WeakMap;n.get=function(){var r=e(this),n=Reflect.get(r,t);return"function"==typeof n?(o.has(n)||o.set(n,n.bind(r)),o.get(n)):n},r.writable&&(n.set=function(r){var n=e(this);Reflect.set(n,t,r)})}else"function"==typeof r.get&&(n.get=function(){var t=e(this);return r.get.call(t)}),"function"==typeof r.set&&(n.set=function(t){var n=e(this);return r.set.call(n,t)});return n},e.BindDescriptorOld=d,e.ClassToFactory=function(e){return function(r,o){var a;return void 0===o&&(o="auto"),r===Object||r===t?c(r,a=function(e){function t(t){return e.apply(this,t)||this}return n(t,e),t}(e)):(a=function(t){function r(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var a,c=this,s=r[0];switch(c=t.apply(this,r.slice(1))||this,o){case"auto":try{void 0===(a=e.apply(c,s))&&(a=c),o="function"}catch(t){a=Reflect.construct(e,s),o="class"}break;case"function":void 0===(a=e.apply(c,s))&&(a=c);break;case"class":a=Reflect.construct(e,s)}if(c!==a){for(var f=l(Object.getPrototypeOf(a)),p=void 0;!(p=f.next()).done;){var y=p.value[0];i.has(y)||Object.defineProperty(c,y,d(a,y,p.value[1]))}for(var b=u(a),v=0,h=b;v<h.length;v++){y=h[v];i.has(y)||(y in c&&console.warn("Crossing properties !"),Object.defineProperty(c,y,d(a,y,Object.getOwnPropertyDescriptor(a,y))))}Object.seal(a)}return c}return n(r,t),r}(r),v(e,a)),b(a,e.name),a}},e.ConstructClassWithPrivateMembers=function(e,t){Object.defineProperty(e,t,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.ConstructClassWithProtectedMembers=function(e){Object.defineProperty(e,j,{value:{},configurable:!1,writable:!1,enumerable:!1})},e.CopyClass=v,e.CopyClassName=function(e,t){var r=Object.getOwnPropertyDescriptor(e,"name");void 0===r?r={configurable:!0,enumerable:!1,value:e.name,writable:!1}:r.value=e.name,r.configurable&&Object.defineProperty(t,"name",r)},e.CopyClassPrototype=p,e.CopyClassStaticProperties=y,e.CopyOwnProperties=function(e,t,r){void 0===r&&(r=i);for(var n=0,o=u(e);n<o.length;n++){var a=o[n],c=Object.getOwnPropertyDescriptor(e,a);void 0===c||r.has(a)||Object.defineProperty(t,a,c)}},e.CopyProperties=f,e.EXCLUDED_PROPERTY_NAMES=i,e.GenerateOverrideSuperArgumentsFunction=function(e,t){var r=m(e,t);if(null===r)throw new Error("Failed to find super class of the class "+e.name);var n=r.index;return g(r.ctor)?function(e,t){if(Array.isArray(e[n]))return e.slice(0,n).concat([t(e[n])]).concat(e.slice(n+1));throw new TypeError("Expected array as argument["+n+"]")}:function(e,t){return e.slice(0,n).concat(t(e.slice(n)))}},e.GetOwnPropertyDescriptors=s,e.GetOwnPropertyKeys=u,e.GetPropertyDescriptors=l,e.GetSafePropertyDescriptors=function(e){var t,r,n,a,c;return o(this,(function(o){switch(o.label){case 0:t=l(e),o.label=1;case 1:return(r=t.next()).done?[3,4]:(n=r.value,a=n[0],(c=n[2])===Object.prototype||c===Function.prototype||i.has(a)?[3,3]:[4,r.value]);case 2:o.sent(),o.label=3;case 3:return[3,1];case 4:return[2]}}))},e.GetSetSuperArgsFunction=function(e){return e?w:P},e.HasFactoryWaterMark=function(e,t,r){return void 0===r&&(r=!0),!0===e[t]&&(!r||e.hasOwnProperty(t))},e.ImplementTraits=T,e.ImplementsTrait=A,e.ImplementsTraits=function(e,t){return t.every((function(t){return A(e,t)}))},e.IsFactoryClass=g,e.IsInstanceOf=function(e,t){return e instanceof t||!(!e.constructor||!(a in e.constructor))&&e.constructor[a].has(t)},e.MakeFactory=function(e,t,r,n){void 0===n&&(n={});for(var o=r,a=t.length-1;a>=0;a--)o=t[a](o);var i=e(o);if(Object.defineProperty(i,O,{value:!0}),"string"==typeof n.name&&Object.defineProperty(i,"name",{configurable:!0,enumerable:!1,value:n.name,writable:!1}),Array.isArray(n.waterMarks)){a=0;for(var u=n.waterMarks.length;a<u;a++)Object.defineProperty(i,n.waterMarks[a],{value:!0})}return void 0!==n.instanceOf&&c(n.instanceOf,i),i},e.MixOverrideSuperArgumentsFunction=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];for(var o=0,a=e.length;o<a;o++)t=e[o](t,r[o]);return t}},e.ObjectHasOwnProperty=h,e.OwnArguments=function(e){return e[0]},e.PROTECTED=j,e.RegisterTraits=C,e.SearchSuperClass=m,e.SetClassName=b,e.SetInstanceOf=c,e.SetSuperArgsForFactoryClass=w,e.SetSuperArgsForStandardClass=P,e.SuperArguments=function(e){return e.slice(1)},e.SuperTrait=function(e,t){var r=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t}(t);return T(r.prototype,e),r},e.TRAITS=S,e.TraitFromClass=x,e.TraitsFromClasses=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.map(x)},Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=class-factory.umd.min.js.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseClass = void 0;
var BaseClass = (function () {

@@ -4,0 +5,0 @@ function BaseClass() {

@@ -16,2 +16,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.GetSetSuperArgsFunction = exports.SetSuperArgsForStandardClass = exports.SetSuperArgsForFactoryClass = exports.MixOverrideSuperArgumentsFunction = exports.GenerateOverrideSuperArgumentsFunction = exports.SuperArguments = exports.OwnArguments = exports.SearchSuperClass = exports.IsFactoryClass = exports.HasFactoryWaterMark = exports.ClassToFactory = exports.MakeFactory = void 0;
var instance_of_1 = require("./instance-of");

@@ -18,0 +19,0 @@ var base_class_1 = require("./base-class");

@@ -37,2 +37,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.ObjectHasOwnProperty = exports.BindDescriptorOld = exports.BindDescriptor = exports.CopyClass = exports.SetClassName = exports.CopyClassName = exports.CopyClassStaticProperties = exports.CopyClassPrototype = exports.CopyOwnProperties = exports.CopyProperties = exports.GetSafePropertyDescriptors = exports.GetPropertyDescriptors = exports.GetOwnPropertyDescriptors = exports.GetOwnPropertyKeys = exports.EXCLUDED_PROPERTY_NAMES = void 0;
var instance_of_1 = require("./instance-of");

@@ -267,2 +268,6 @@ exports.EXCLUDED_PROPERTY_NAMES = new Set(__spreadArrays(['prototype', 'constructor'], GetOwnPropertyKeys(Object.prototype)));

exports.BindDescriptorOld = BindDescriptorOld;
function ObjectHasOwnProperty(obj, propertyKey) {
return Object.prototype.hasOwnProperty.call(obj, propertyKey);
}
exports.ObjectHasOwnProperty = ObjectHasOwnProperty;
//# sourceMappingURL=helpers.js.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IsInstanceOf = exports.SetInstanceOf = void 0;
var INSTANCE_OF_SYMBOL = Symbol('instanceof');

@@ -4,0 +5,0 @@ function SetInstanceOf(source, destination) {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConstructClassWithProtectedMembers = exports.PROTECTED = exports.ConstructClassWithPrivateMembers = void 0;
function ConstructClassWithPrivateMembers(instance, symbol) {

@@ -4,0 +5,0 @@ Object.defineProperty(instance, symbol, {

"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("./base-class"));
__export(require("./factory"));
__export(require("./helpers"));
__export(require("./instance-of"));
__export(require("./private-members"));
__exportStar(require("./types/public"), exports);
__exportStar(require("./base-class"), exports);
__exportStar(require("./factory"), exports);
__exportStar(require("./helpers"), exports);
__exportStar(require("./instance-of"), exports);
__exportStar(require("./private-members"), exports);
__exportStar(require("./traits"), exports);
//# sourceMappingURL=public.js.map
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./class-types"), exports);
__exportStar(require("./factory-types"), exports);
__exportStar(require("./misc-types"), exports);
//# sourceMappingURL=public.js.map
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("./core/public"));
__exportStar(require("./core/public"), exports);
//# sourceMappingURL=public.js.map

@@ -171,2 +171,5 @@ import { SetInstanceOf } from './instance-of';

}
export function ObjectHasOwnProperty(obj, propertyKey) {
return Object.prototype.hasOwnProperty.call(obj, propertyKey);
}
//# sourceMappingURL=helpers.js.map

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

export * from './types/public';
export * from './base-class';

@@ -6,2 +7,3 @@ export * from './factory';

export * from './private-members';
export * from './traits';
//# sourceMappingURL=public.js.map

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

export * from './class-types';
export * from './factory-types';
export * from './misc-types';
//# sourceMappingURL=public.js.map

@@ -218,2 +218,5 @@ import { __generator, __spreadArrays } from "tslib";

}
export function ObjectHasOwnProperty(obj, propertyKey) {
return Object.prototype.hasOwnProperty.call(obj, propertyKey);
}
//# sourceMappingURL=helpers.js.map

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

export * from './types/public';
export * from './base-class';

@@ -6,2 +7,3 @@ export * from './factory';

export * from './private-members';
export * from './traits';
//# sourceMappingURL=public.js.map

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

export * from './class-types';
export * from './factory-types';
export * from './misc-types';
//# sourceMappingURL=public.js.map

@@ -171,2 +171,5 @@ import { SetInstanceOf } from './instance-of';

}
export function ObjectHasOwnProperty(obj, propertyKey) {
return Object.prototype.hasOwnProperty.call(obj, propertyKey);
}
//# sourceMappingURL=helpers.js.map

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

export * from './types/public';
export * from './base-class';

@@ -6,2 +7,3 @@ export * from './factory';

export * from './private-members';
export * from './traits';
//# sourceMappingURL=public.js.map

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

export * from './class-types';
export * from './factory-types';
export * from './misc-types';
//# sourceMappingURL=public.js.map
{
"name": "@lifaon/class-factory",
"version": "1.1.1",
"version": "1.2.0",
"description": "Description",

@@ -31,3 +31,3 @@ "main": "./index.js",

"tslib": "^1.11.1",
"typescript": "3.8.3",
"typescript": "3.9.3",
"typescript-tuple": "^2.2.1",

@@ -34,0 +34,0 @@ "wait-on": "^4.0.2"

@@ -0,4 +1,7 @@

import { debugClassGenerator } from './generator/debug';
import { debugTrait } from './debug/debug-traits';
export function debugFactory() {
// TODO
export async function debugFactory() {
// await debugClassGenerator();
await debugTrait();
}

@@ -5,0 +8,0 @@

@@ -238,2 +238,5 @@ import { AbstractClass } from './types/class-types';

export function ObjectHasOwnProperty<GObj extends any, GPropertyKey extends PropertyKey>(obj: GObj, propertyKey: GPropertyKey): obj is (GObj & { [GKey in GPropertyKey]: any }) {
return Object.prototype.hasOwnProperty.call(obj, propertyKey);
}

@@ -7,1 +7,2 @@ export * from './types/public';

export * from './private-members';
export * from './traits';

@@ -35,1 +35,7 @@ export interface Constructor<Instance = any, Args extends any[] = any[]> extends Function {

export type TMakeTypedConstructor<GTypedInstance, Args extends any[], GConstructor extends Constructor<GTypedInstance, Args>> =
ExcludeConstructor<GConstructor>
& {
new(...args: Args): GTypedInstance;
}

@@ -16,3 +16,3 @@ /***** MAKE *****/

*/
export declare function ClassToFactory<TSource extends Constructor>(source: TSource): <TBase extends Constructor<any, any[]>>(superClass: TBase, mode?: "function" | "auto" | "class") => TMakeFactoryClass<TSource, [], TBase>;
export declare function ClassToFactory<TSource extends Constructor>(source: TSource): <TBase extends Constructor<any, any[]>>(superClass: TBase, mode?: 'function' | 'class' | 'auto') => TMakeFactoryClass<TSource, [], TBase>;
/***** WATERMARK *****/

@@ -19,0 +19,0 @@ /**

@@ -44,1 +44,4 @@ import { AbstractClass } from './types/class-types';

export declare function BindDescriptorOld(instance: object, key: PropertyKey, descriptor: PropertyDescriptor): PropertyDescriptor;
export declare function ObjectHasOwnProperty<GObj extends any, GPropertyKey extends PropertyKey>(obj: GObj, propertyKey: GPropertyKey): obj is (GObj & {
[GKey in GPropertyKey]: any;
});

@@ -7,1 +7,2 @@ export * from './types/public';

export * from './private-members';
export * from './traits';

@@ -23,1 +23,4 @@ export interface Constructor<Instance = any, Args extends any[] = any[]> extends Function {

};
export declare type TMakeTypedConstructor<GTypedInstance, Args extends any[], GConstructor extends Constructor<GTypedInstance, Args>> = ExcludeConstructor<GConstructor> & {
new (...args: Args): GTypedInstance;
};

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

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

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

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc