(function (root, factory) { if (typeof define === 'function' && define.amd) define(['exports', 'kotlin'], factory); else if (typeof exports === 'object') factory(module.exports, require('kotlin')); else { if (typeof kotlin === 'undefined') { throw new Error("Error loading module 'Kaverit-kaverit'. Its dependency 'kotlin' was not found. Please, check whether 'kotlin' is loaded prior to 'Kaverit-kaverit'."); } root['Kaverit-kaverit'] = factory(typeof this['Kaverit-kaverit'] === 'undefined' ? {} : this['Kaverit-kaverit'], kotlin); } }(this, function (_, Kotlin) { 'use strict'; var $$importsForInline$$ = _.$$importsForInline$$ || (_.$$importsForInline$$ = {}); var emptyList = Kotlin.kotlin.collections.emptyList_287e2$; var PrimitiveClasses$anyClass = Kotlin.kotlin.reflect.js.internal.PrimitiveClasses.anyClass; var Kind_CLASS = Kotlin.Kind.CLASS; var IllegalArgumentException_init = Kotlin.kotlin.IllegalArgumentException_init_pdl1vj$; var joinToString = Kotlin.kotlin.collections.joinToString_cgipc5$; var equals = Kotlin.equals; var throwCCE = Kotlin.throwCCE; var contentEquals = Kotlin.arrayEquals; var hashCode = Kotlin.hashCode; var contentHashCode = Kotlin.arrayHashCode; var IllegalStateException_init = Kotlin.kotlin.IllegalStateException_init_pdl1vj$; var kotlin = Kotlin.kotlin; var getKClass = Kotlin.getKClass; var Kind_OBJECT = Kotlin.Kind.OBJECT; var Kind_INTERFACE = Kotlin.Kind.INTERFACE; var Collection = Kotlin.kotlin.collections.Collection; var KClass = Kotlin.kotlin.reflect.KClass; var KTypeProjection = Kotlin.kotlin.reflect.KTypeProjection; var collectionSizeOrDefault = Kotlin.kotlin.collections.collectionSizeOrDefault_ba2ldo$; var ArrayList_init = Kotlin.kotlin.collections.ArrayList_init_ww73n8$; var copyToArray = Kotlin.kotlin.collections.copyToArray; var defineInlineFunction = Kotlin.defineInlineFunction; var wrapFunction = Kotlin.wrapFunction; AbstractKClassTypeToken.prototype = Object.create(AbstractTypeToken.prototype); AbstractKClassTypeToken.prototype.constructor = AbstractKClassTypeToken; CompositeTypeToken.prototype = Object.create(AbstractTypeToken.prototype); CompositeTypeToken.prototype.constructor = CompositeTypeToken; JSKClassTypeToken.prototype = Object.create(AbstractKClassTypeToken.prototype); JSKClassTypeToken.prototype.constructor = JSKClassTypeToken; JSKTypeTypeToken.prototype = Object.create(AbstractTypeToken.prototype); JSKTypeTypeToken.prototype.constructor = JSKTypeTypeToken; function AbstractKClassTypeToken(type) { AbstractTypeToken.call(this); this.type_0 = type; } AbstractKClassTypeToken.prototype.simpleDispString = function () { return this.simpleErasedDispString(); }; AbstractKClassTypeToken.prototype.qualifiedDispString = function () { return this.qualifiedErasedDispString(); }; AbstractKClassTypeToken.prototype.getRaw = function () { return this; }; AbstractKClassTypeToken.prototype.isGeneric = function () { return false; }; AbstractKClassTypeToken.prototype.isWildcard = function () { return true; }; AbstractKClassTypeToken.prototype.getSuper = function () { return emptyList(); }; AbstractKClassTypeToken.prototype.getGenericParameters = function () { return []; }; AbstractKClassTypeToken.prototype.isAssignableFrom_q3o5v9$ = function (typeToken) { var tmp$; if (this != null ? this.equals(typeToken) : null) return true; if ((tmp$ = this.type_0) != null ? tmp$.equals(PrimitiveClasses$anyClass) : null) return true; return false; }; AbstractKClassTypeToken.prototype.typeEquals_q3o5v9$ = function (other) { var tmp$; if (!Kotlin.isType(other, AbstractKClassTypeToken)) { var message = 'Failed requirement.'; throw IllegalArgumentException_init(message.toString()); } if (!((tmp$ = this.type_0) != null ? tmp$.equals(other.type_0) : null)) return false; return true; }; AbstractKClassTypeToken.prototype.typeHashCode = function () { return this.type_0.hashCode(); }; AbstractKClassTypeToken.$metadata$ = { kind: Kind_CLASS, simpleName: 'AbstractKClassTypeToken', interfaces: [AbstractTypeToken] }; function CompositeTypeToken(main, params) { AbstractTypeToken.call(this); this.main = main; this.params = params; if (this.params.length === 0) throw IllegalStateException_init('CompositeTypeToken must be given at least one type parameter'); } function CompositeTypeToken$simpleDispString$lambda(it) { return it.simpleDispString(); } CompositeTypeToken.prototype.simpleDispString = function () { return this.main.simpleErasedDispString() + '<' + joinToString(this.params, ', ', void 0, void 0, void 0, void 0, CompositeTypeToken$simpleDispString$lambda) + '>'; }; CompositeTypeToken.prototype.simpleErasedDispString = function () { return this.main.simpleErasedDispString(); }; function CompositeTypeToken$qualifiedDispString$lambda(it) { return it.qualifiedDispString(); } CompositeTypeToken.prototype.qualifiedDispString = function () { return this.main.qualifiedErasedDispString() + '<' + joinToString(this.params, ', ', void 0, void 0, void 0, void 0, CompositeTypeToken$qualifiedDispString$lambda) + '>'; }; CompositeTypeToken.prototype.qualifiedErasedDispString = function () { return this.main.qualifiedErasedDispString(); }; CompositeTypeToken.prototype.getRaw = function () { return this.main.getRaw(); }; CompositeTypeToken.prototype.isGeneric = function () { return true; }; CompositeTypeToken.prototype.isWildcard = function () { var $receiver = this.params; var all$result; all$break: do { var tmp$; for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { var element = $receiver[tmp$]; if (!equals(element, AbstractTypeToken$Companion_getInstance().Any)) { all$result = false; break all$break; } } all$result = true; } while (false); return all$result; }; CompositeTypeToken.prototype.getSuper = function () { return this.main.getSuper(); }; CompositeTypeToken.prototype.getGenericParameters = function () { var tmp$; return Kotlin.isArray(tmp$ = this.params) ? tmp$ : throwCCE(); }; CompositeTypeToken.prototype.typeEquals_q3o5v9$ = function (other) { if (!Kotlin.isType(other, CompositeTypeToken)) { var message = 'Failed requirement.'; throw IllegalArgumentException_init(message.toString()); } return equals(this.main, other.main) && contentEquals(this.params, other.params); }; CompositeTypeToken.prototype.typeHashCode = function () { return (31 * hashCode(this.main) | 0) + contentHashCode(this.params) | 0; }; CompositeTypeToken.$metadata$ = { kind: Kind_CLASS, simpleName: 'CompositeTypeToken', interfaces: [AbstractTypeToken] }; function erasedComp(main, params) { return params.length === 0 ? erased(main) : new CompositeTypeToken(erased(main), params.slice()); } function TypeToken() { TypeToken$Companion_getInstance(); } function TypeToken$Companion() { TypeToken$Companion_instance = this; var T_0 = Object.getPrototypeOf(kotlin.Unit).constructor; kotlin.Unit; this.Unit = erased(getKClass(T_0)); this.Any = erased(PrimitiveClasses$anyClass); } TypeToken$Companion.$metadata$ = { kind: Kind_OBJECT, simpleName: 'Companion', interfaces: [] }; var TypeToken$Companion_instance = null; function TypeToken$Companion_getInstance() { if (TypeToken$Companion_instance === null) { new TypeToken$Companion(); } return TypeToken$Companion_instance; } TypeToken.$metadata$ = { kind: Kind_INTERFACE, simpleName: 'TypeToken', interfaces: [] }; function AbstractTypeToken() { AbstractTypeToken$Companion_getInstance(); } AbstractTypeToken.prototype.isAssignableFrom_q3o5v9$ = function (typeToken) { if ((this != null ? this.equals(typeToken) : null) || (this != null ? this.equals(AbstractTypeToken$Companion_getInstance().Any) : null)) return true; var raw = this.getRaw(); if (equals(raw, typeToken.getRaw())) { var thisParams = this.getGenericParameters(); if (thisParams.length === 0) return true; var tokenParams = typeToken.getGenericParameters(); var tmp$, tmp$_0; var index = 0; for (tmp$ = 0; tmp$ !== thisParams.length; ++tmp$) { var item = thisParams[tmp$]; var tokenParam = tokenParams[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0]; if (!item.isAssignableFrom_q3o5v9$(tokenParam)) return false; } return true; } var $receiver = typeToken.getSuper(); var any$result; any$break: do { var tmp$_1; if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) { any$result = false; break any$break; } tmp$_1 = $receiver.iterator(); while (tmp$_1.hasNext()) { var element = tmp$_1.next(); if (this.isAssignableFrom_q3o5v9$(element)) { any$result = true; break any$break; } } any$result = false; } while (false); return any$result; }; AbstractTypeToken.prototype.toString = function () { return this.qualifiedDispString(); }; AbstractTypeToken.prototype.equals = function (other) { var tmp$; if (this === other) return true; if (!Kotlin.isType(other, TypeToken)) return false; if ((tmp$ = Kotlin.getKClassFromExpression(this)) != null ? tmp$.equals(Kotlin.getKClassFromExpression(other)) : null) return this.typeEquals_q3o5v9$(other); if (!equals(this.getRaw(), other.getRaw())) return false; if (!this.isWildcard() || !other.isWildcard()) { var tParams = this.getGenericParameters(); var oParams = other.getGenericParameters(); if (tParams.length !== oParams.length) return false; for (var i = 0; i !== tParams.length; ++i) { if (!equals(tParams[i], oParams[i])) return false; } } return true; }; AbstractTypeToken.prototype.hashCode = function () { return this.typeHashCode(); }; function AbstractTypeToken$Companion() { AbstractTypeToken$Companion_instance = this; var T_0 = Object.getPrototypeOf(kotlin.Unit).constructor; kotlin.Unit; this.Unit = erased(getKClass(T_0)); this.Any = erased(PrimitiveClasses$anyClass); } AbstractTypeToken$Companion.$metadata$ = { kind: Kind_OBJECT, simpleName: 'Companion', interfaces: [] }; var AbstractTypeToken$Companion_instance = null; function AbstractTypeToken$Companion_getInstance() { if (AbstractTypeToken$Companion_instance === null) { new AbstractTypeToken$Companion(); } return AbstractTypeToken$Companion_instance; } AbstractTypeToken.$metadata$ = { kind: Kind_CLASS, simpleName: 'AbstractTypeToken', interfaces: [TypeToken] }; function JSKClassTypeToken(type) { AbstractKClassTypeToken.call(this, type); } JSKClassTypeToken.prototype.simpleErasedDispString = function () { var tmp$; return (tmp$ = this.type_0.simpleName) != null ? tmp$ : '(non-denotable type)'; }; JSKClassTypeToken.prototype.qualifiedErasedDispString = function () { var tmp$; return (tmp$ = this.type_0.simpleName) != null ? tmp$ : '(non-denotable type)'; }; JSKClassTypeToken.$metadata$ = { kind: Kind_CLASS, simpleName: 'JSKClassTypeToken', interfaces: [AbstractKClassTypeToken] }; function JSKTypeTypeToken(type) { AbstractTypeToken.call(this); this.type_0 = type; } JSKTypeTypeToken.prototype.simpleDispString = function () { return this.type_0.toString(); }; JSKTypeTypeToken.prototype.simpleErasedDispString = function () { var tmp$, tmp$_0, tmp$_1; return (tmp$_1 = (tmp$_0 = Kotlin.isType(tmp$ = this.type_0.classifier, KClass) ? tmp$ : null) != null ? tmp$_0.simpleName : null) != null ? tmp$_1 : '(non-denotable type)'; }; JSKTypeTypeToken.prototype.qualifiedDispString = function () { return this.type_0.toString(); }; JSKTypeTypeToken.prototype.qualifiedErasedDispString = function () { var tmp$, tmp$_0, tmp$_1; return (tmp$_1 = (tmp$_0 = Kotlin.isType(tmp$ = this.type_0.classifier, KClass) ? tmp$ : null) != null ? tmp$_0.simpleName : null) != null ? tmp$_1 : '(non-denotable type)'; }; JSKTypeTypeToken.prototype.getRaw = function () { var tmp$; return new JSKClassTypeToken(Kotlin.isType(tmp$ = this.type_0.classifier, KClass) ? tmp$ : throwCCE()); }; JSKTypeTypeToken.prototype.isGeneric = function () { return true; }; JSKTypeTypeToken.prototype.getGenericParameters = function () { var $receiver = this.type_0.arguments; var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); var tmp$; tmp$ = $receiver.iterator(); while (tmp$.hasNext()) { var item = tmp$.next(); var tmp$_0, tmp$_1; destination.add_11rb$((tmp$_1 = (tmp$_0 = item.type) != null ? typeToken(tmp$_0) : null) != null ? tmp$_1 : AbstractTypeToken$Companion_getInstance().Any); } return copyToArray(destination); }; JSKTypeTypeToken.prototype.isWildcard = function () { var $receiver = this.type_0.arguments; var all$result; all$break: do { var tmp$; if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) { all$result = true; break all$break; } tmp$ = $receiver.iterator(); while (tmp$.hasNext()) { var element = tmp$.next(); if (!(element != null ? element.equals(KTypeProjection.Companion.STAR) : null)) { all$result = false; break all$break; } } all$result = true; } while (false); return all$result; }; JSKTypeTypeToken.prototype.getSuper = function () { return emptyList(); }; JSKTypeTypeToken.prototype.typeEquals_q3o5v9$ = function (other) { if (!Kotlin.isType(other, JSKTypeTypeToken)) { var message = 'Failed requirement.'; throw IllegalArgumentException_init(message.toString()); } return equals(this.type_0, other.type_0); }; JSKTypeTypeToken.prototype.typeHashCode = function () { return hashCode(this.type_0); }; JSKTypeTypeToken.$metadata$ = { kind: Kind_CLASS, simpleName: 'JSKTypeTypeToken', interfaces: [AbstractTypeToken] }; function erasedOf(obj) { return new JSKClassTypeToken(Kotlin.getKClassFromExpression(obj)); } function erased(cls) { return new JSKClassTypeToken(cls); } var erased_0 = defineInlineFunction('Kaverit-kaverit.org.kodein.type.erased_30y1fr$', wrapFunction(function () { var getKClass = Kotlin.getKClass; var erased = _.org.kodein.type.erased_lmshww$; return function (T_0, isT) { return erased(getKClass(T_0)); }; })); var generic = defineInlineFunction('Kaverit-kaverit.org.kodein.type.generic_30y1fr$', wrapFunction(function () { var getReifiedTypeParameterKType = Kotlin.getReifiedTypeParameterKType; var typeToken = _.org.kodein.type.typeToken_saj79j$; var TypeToken = _.org.kodein.type.TypeToken; var throwCCE = Kotlin.throwCCE; return function (T_0, isT) { var tmp$; return Kotlin.isType(tmp$ = typeToken(getReifiedTypeParameterKType(T_0)), TypeToken) ? tmp$ : throwCCE(); }; })); function typeToken(type) { var tmp$; if (type.arguments.isEmpty()) { return new JSKClassTypeToken(Kotlin.isType(tmp$ = type.classifier, KClass) ? tmp$ : throwCCE()); } else return new JSKTypeTypeToken(type); } var package$org = _.org || (_.org = {}); var package$kodein = package$org.kodein || (package$org.kodein = {}); var package$type = package$kodein.type || (package$kodein.type = {}); package$type.AbstractKClassTypeToken = AbstractKClassTypeToken; package$type.CompositeTypeToken = CompositeTypeToken; package$type.erasedComp_6wtypk$ = erasedComp; $$importsForInline$$['Kaverit-kaverit'] = _; Object.defineProperty(TypeToken, 'Companion', { get: TypeToken$Companion_getInstance }); package$type.TypeToken = TypeToken; Object.defineProperty(AbstractTypeToken, 'Companion', { get: AbstractTypeToken$Companion_getInstance }); package$type.AbstractTypeToken = AbstractTypeToken; package$type.JSKClassTypeToken = JSKClassTypeToken; package$type.JSKTypeTypeToken = JSKTypeTypeToken; package$type.erasedOf_issdgt$ = erasedOf; package$type.erased_lmshww$ = erased; package$type.typeToken_saj79j$ = typeToken; Kotlin.defineModule('Kaverit-kaverit', _); return _; })); //# sourceMappingURL=Kaverit-kaverit.js.map