@dashkite/joy
Version:
*The simplicity of Lodash with the functional flair of Rambda.*
303 lines (302 loc) • 29.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: Object.getOwnPropertyDescriptor(all, name).get
});
}
_export(exports, {
get AsyncGeneratorFunction () {
return AsyncGeneratorFunction;
},
get GeneratorFunction () {
return GeneratorFunction;
},
get ReactorFunction () {
return ReactorFunction;
},
get Type () {
return Type;
},
get instanceOf () {
return instanceOf;
},
get isAny () {
return isAny;
},
get isArray () {
return isArray;
},
get isArrayBuffer () {
return isArrayBuffer;
},
get isAsyncFunction () {
return isAsyncFunction;
},
get isAsyncGeneratorFunction () {
return isAsyncGeneratorFunction;
},
get isAsyncIterable () {
return isAsyncIterable;
},
get isAsyncIterator () {
return isAsyncIterator;
},
get isBigInt () {
return isBigInt;
},
get isBoolean () {
return isBoolean;
},
get isBuffer () {
return isBuffer;
},
get isDataView () {
return isDataView;
},
get isDate () {
return isDate;
},
get isDefined () {
return isDefined;
},
get isDerivedFrom () {
return isDerivedFrom;
},
get isError () {
return isError;
},
get isFinite () {
return isFinite;
},
get isFunction () {
return isFunction;
},
get isGeneratorFunction () {
return isGeneratorFunction;
},
get isInteger () {
return isInteger;
},
get isIterable () {
return isIterable;
},
get isIterator () {
return isIterator;
},
get isKind () {
return isKind;
},
get isMap () {
return isMap;
},
get isNaN () {
return isNaN;
},
get isNotNull () {
return isNotNull;
},
get isNotNullish () {
return isNotNullish;
},
get isNull () {
return isNull;
},
get isNullish () {
return isNullish;
},
get isNumber () {
return isNumber;
},
get isObject () {
return isObject;
},
get isPromise () {
return isPromise;
},
get isPrototype () {
return isPrototype;
},
get isReactor () {
return isReactor;
},
get isReactorFunction () {
return isReactorFunction;
},
get isReagent () {
return isReagent;
},
get isRegExp () {
return isRegExp;
},
get isRegularFunction () {
return isRegularFunction;
},
get isSet () {
return isSet;
},
get isString () {
return isString;
},
get isSymbol () {
return isSymbol;
},
get isSynonymousKind () {
return isSynonymousKind;
},
get isSynonymousType () {
return isSynonymousType;
},
get isThenable () {
return isThenable;
},
get isType () {
return isType;
},
get isTypedArray () {
return isTypedArray;
},
get isURL () {
return isURL;
},
get isUndefined () {
return isUndefined;
},
get isWeakMap () {
return isWeakMap;
},
get prototype () {
return prototype;
}
});
const _function = require("./function");
const _predicate = require("./predicate");
var AsyncGeneratorFunction, GeneratorFunction, ReactorFunction, Type, instanceOf, isAny, isArray, isArrayBuffer, isAsyncFunction, isAsyncGeneratorFunction, isAsyncIterable, isAsyncIterator, isBigInt, isBoolean, isBuffer, isDataView, isDate, isDefined, isDerivedFrom, isError, isFinite, isFunction, isGeneratorFunction, isInteger, isIterable, isIterator, isKind, isMap, isNaN, isNotNull, isNotNullish, isNull, isNullish, isNumber, isObject, isPromise, isPrototype, isReactor, isReactorFunction, isReagent, isRegExp, isRegularFunction, isSet, isString, isSymbol, isSynonymousKind, isSynonymousType, isThenable, isType, isTypedArray, isURL, isUndefined, isWeakMap, prototype;
prototype = function(value) {
if (value != null) {
return Object.getPrototypeOf(value);
}
};
isPrototype = (0, _function.curry)(function(p, value) {
return p != null && p === prototype(value);
});
isType = (0, _function.curry)(function(type, value) {
return isPrototype(type != null ? type.prototype : void 0, value);
});
isSynonymousType = (0, _function.curry)(function(type, value) {
return (type != null ? type.name : void 0) === value.constructor.name;
});
isKind = (0, _function.curry)(function(type, value) {
return isType(type, value) || function() {
try {
return value instanceof type;
} catch (error) {
return false;
}
}();
});
isSynonymousKind = (0, _function.curry)(function(type, value) {
return value != null && (isSynonymousType(type, value) || isSynonymousKind(type, prototype(value)));
});
isDerivedFrom = (0, _function.curry)(function(K, T) {
return isKind(K, T.prototype);
});
isAny = (0, _function.wrap)(true);
isNumber = (0, _predicate.any)([
isType(Number),
isType(BigInt)
]);
isNaN = Number.isNaN;
isFinite = Number.isFinite;
isInteger = Number.isInteger;
isBigInt = isType(BigInt);
isBoolean = isType(Boolean);
isSymbol = isType(Symbol);
isDate = isType(Date);
isRegExp = isType(RegExp);
isString = isType(String);
isRegularFunction = isType(Function);
isObject = isType(Object);
isArray = Array.isArray;
isMap = isType(Map);
isWeakMap = isType(WeakMap);
isSet = isType(Set);
isError = isKind(Error);
isURL = isType(URL);
isNotNullish = function(x) {
return x != null;
};
isNullish = function(x) {
return x == null;
};
isNull = function(x) {
return x === null;
};
isNotNull = function(x) {
return x !== null;
};
isDefined = function(x) {
return x !== void 0;
};
isUndefined = function(x) {
return x === void 0;
};
//--------------------------------------------------------------
GeneratorFunction = (function*() {
return yield null;
}).constructor;
isGeneratorFunction = isType(GeneratorFunction);
AsyncGeneratorFunction = (async function*() {
return yield await null;
}).constructor;
isAsyncGeneratorFunction = isType(AsyncGeneratorFunction);
ReactorFunction = AsyncGeneratorFunction;
isReactorFunction = isAsyncGeneratorFunction;
isPromise = isKind(Promise);
isThenable = function(x) {
return x.then != null;
};
isAsyncFunction = isType((async function() {
return await null;
}).constructor);
isFunction = isKind(Function);
instanceOf = (0, _function.curry)(function(t, x) {
return x instanceof t;
});
Type = {
create: function(type) {
return new type();
},
define: function(parent = Object) {
return class extends parent {
};
}
};
if (typeof Buffer !== "undefined" && Buffer !== null) {
isBuffer = isType(Buffer);
} else {
isBuffer = function(x) {
return false;
};
}
isArrayBuffer = isType(ArrayBuffer);
isDataView = isType(DataView);
isTypedArray = isKind(prototype(Uint8Array));
isIterable = function(x) {
return isFunction(x != null ? x[Symbol.iterator] : void 0);
};
isIterator = function(x) {
return isFunction(x != null ? x.next : void 0) && isIterable(x);
};
isReagent = isAsyncIterable = function(x) {
return isFunction(x != null ? x[Symbol.asyncIterator] : void 0);
};
isReactor = isAsyncIterator = function(x) {
return isFunction(x != null ? x.next : void 0) && isReagent(x);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL3R5cGUuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsc0JBQUEsRUFBQSxpQkFBQSxFQUFBLGVBQUEsRUFBQSxJQUFBLEVBQUEsVUFBQSxFQUFBLEtBQUEsRUFBQSxPQUFBLEVBQUEsYUFBQSxFQUFBLGVBQUEsRUFBQSx3QkFBQSxFQUFBLGVBQUEsRUFBQSxlQUFBLEVBQUEsUUFBQSxFQUFBLFNBQUEsRUFBQSxRQUFBLEVBQUEsVUFBQSxFQUFBLE1BQUEsRUFBQSxTQUFBLEVBQUEsYUFBQSxFQUFBLE9BQUEsRUFBQSxRQUFBLEVBQUEsVUFBQSxFQUFBLG1CQUFBLEVBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxVQUFBLEVBQUEsTUFBQSxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBQUEsU0FBQSxFQUFBLFlBQUEsRUFBQSxNQUFBLEVBQUEsU0FBQSxFQUFBLFFBQUEsRUFBQSxRQUFBLEVBQUEsU0FBQSxFQUFBLFdBQUEsRUFBQSxTQUFBLEVBQUEsaUJBQUEsRUFBQSxTQUFBLEVBQUEsUUFBQSxFQUFBLGlCQUFBLEVBQUEsS0FBQSxFQUFBLFFBQUEsRUFBQSxRQUFBLEVBQUEsZ0JBQUEsRUFBQSxnQkFBQSxFQUFBLFVBQUEsRUFBQSxNQUFBLEVBQUEsWUFBQSxFQUFBLEtBQUEsRUFBQSxXQUFBLEVBQUEsU0FBQSxFQUFBOztBQUFBLE9BQUE7RUFBUyxLQUFUO0VBQWdCLElBQWhCO0NBQUEsTUFBQTs7QUFDQSxPQUFBO0VBQVMsR0FBVDtDQUFBLE1BQUE7O0FBRUEsU0FBQSxHQUFZLFFBQUEsQ0FBQyxLQUFELENBQUE7RUFBVyxJQUFHLGFBQUg7V0FBZSxNQUFNLENBQUMsY0FBUCxDQUFzQixLQUF0QixFQUFmOztBQUFYOztBQUVaLFdBQUEsR0FBYyxLQUFBLENBQU0sUUFBQSxDQUFDLENBQUQsRUFBSSxLQUFKLENBQUE7U0FBYyxXQUFBLElBQU0sQ0FBQSxLQUFLLFNBQUEsQ0FBVSxLQUFWO0FBQXpCLENBQU47O0FBRWQsTUFBQSxHQUFTLEtBQUEsQ0FBTSxRQUFBLENBQUMsSUFBRCxFQUFPLEtBQVAsQ0FBQTtTQUFpQixXQUFBLGdCQUFZLElBQUksQ0FBRSxrQkFBbEIsRUFBNkIsS0FBN0I7QUFBakIsQ0FBTjs7QUFFVCxnQkFBQSxHQUFtQixLQUFBLENBQU0sUUFBQSxDQUFDLElBQUQsRUFBTyxLQUFQLENBQUE7eUJBQ3ZCLElBQUksQ0FBRSxjQUFOLEtBQWMsS0FBSyxDQUFDLFdBQVcsQ0FBQztBQURULENBQU47O0FBR25CLE1BQUEsR0FBUyxLQUFBLENBQU0sUUFBQSxDQUFDLElBQUQsRUFBTyxLQUFQLENBQUE7U0FDYixDQUFFLE1BQUEsQ0FBTyxJQUFQLEVBQWEsS0FBYixDQUFGLENBQUEsSUFBNkIsQ0FBQSxRQUFBLENBQUEsQ0FBQTtBQUMzQjthQUNFLEtBQUEsWUFBaUIsS0FEbkI7S0FFQSxhQUFBO2FBQ0UsTUFERjs7RUFIMkIsQ0FBQTtBQURoQixDQUFOOztBQU9ULGdCQUFBLEdBQW1CLEtBQUEsQ0FBTSxRQUFBLENBQUMsSUFBRCxFQUFPLEtBQVAsQ0FBQTtTQUN2QixlQUFBLElBQVUsQ0FBQyxDQUFDLGdCQUFBLENBQWlCLElBQWpCLEVBQXVCLEtBQXZCLENBQUQsQ0FBQSxJQUNULENBQUMsZ0JBQUEsQ0FBaUIsSUFBakIsRUFBd0IsU0FBQSxDQUFVLEtBQVYsQ0FBeEIsQ0FBRCxDQURRO0FBRGEsQ0FBTjs7QUFJbkIsYUFBQSxHQUFnQixLQUFBLENBQU0sUUFBQSxDQUFFLENBQUYsRUFBSyxDQUFMLENBQUE7U0FBWSxNQUFBLENBQU8sQ0FBUCxFQUFVLENBQUMsQ0FBQSxTQUFYO0FBQVosQ0FBTjs7QUFFaEIsS0FBQSxHQUFRLElBQUEsQ0FBSyxJQUFMOztBQUVSLFFBQUEsR0FBVyxHQUFBLENBQUksQ0FDYixNQUFBLENBQU8sTUFBUCxDQURhLEVBRWIsTUFBQSxDQUFPLE1BQVAsQ0FGYSxDQUFKOztBQUtYLEtBQUEsR0FBUSxNQUFNLENBQUM7O0FBRWYsUUFBQSxHQUFXLE1BQU0sQ0FBQzs7QUFFbEIsU0FBQSxHQUFZLE1BQU0sQ0FBQzs7QUFFbkIsUUFBQSxHQUFXLE1BQUEsQ0FBTyxNQUFQOztBQUVYLFNBQUEsR0FBWSxNQUFBLENBQU8sT0FBUDs7QUFFWixRQUFBLEdBQVcsTUFBQSxDQUFPLE1BQVA7O0FBRVgsTUFBQSxHQUFTLE1BQUEsQ0FBTyxJQUFQOztBQUVULFFBQUEsR0FBVyxNQUFBLENBQU8sTUFBUDs7QUFFWCxRQUFBLEdBQVcsTUFBQSxDQUFPLE1BQVA7O0FBRVgsaUJBQUEsR0FBb0IsTUFBQSxDQUFPLFFBQVA7O0FBRXBCLFFBQUEsR0FBVyxNQUFBLENBQU8sTUFBUDs7QUFFWCxPQUFBLEdBQVUsS0FBSyxDQUFDOztBQUVoQixLQUFBLEdBQVEsTUFBQSxDQUFPLEdBQVA7O0FBRVIsU0FBQSxHQUFZLE1BQUEsQ0FBTyxPQUFQOztBQUVaLEtBQUEsR0FBUSxNQUFBLENBQU8sR0FBUDs7QUFFUixPQUFBLEdBQVUsTUFBQSxDQUFPLEtBQVA7O0FBRVYsS0FBQSxHQUFRLE1BQUEsQ0FBTyxHQUFQOztBQUVSLFlBQUEsR0FBZSxRQUFBLENBQUMsQ0FBRCxDQUFBO1NBQU87QUFBUDs7QUFFZixTQUFBLEdBQVksUUFBQSxDQUFDLENBQUQsQ0FBQTtTQUFRO0FBQVI7O0FBRVosTUFBQSxHQUFTLFFBQUEsQ0FBRSxDQUFGLENBQUE7U0FBUyxDQUFBLEtBQUs7QUFBZDs7QUFFVCxTQUFBLEdBQVksUUFBQSxDQUFFLENBQUYsQ0FBQTtTQUFTLENBQUEsS0FBSztBQUFkOztBQUVaLFNBQUEsR0FBWSxRQUFBLENBQUUsQ0FBRixDQUFBO1NBQVMsQ0FBQSxLQUFLO0FBQWQ7O0FBRVosV0FBQSxHQUFjLFFBQUEsQ0FBRSxDQUFGLENBQUE7U0FBUyxDQUFBLEtBQUs7QUFBZCxFQTVFZDs7O0FBZ0ZBLGlCQUFBLEdBQW9CLENBQUMsU0FBQSxDQUFBLENBQUE7U0FBRyxDQUFBLE1BQU0sSUFBTjtBQUFILENBQUQsQ0FBZSxDQUFDOztBQUVwQyxtQkFBQSxHQUFzQixNQUFBLENBQU8saUJBQVA7O0FBRXRCLHNCQUFBLEdBQXlCLENBQUMsTUFBQSxTQUFBLENBQUEsQ0FBQTtTQUFHLENBQUEsTUFBTSxDQUFBLE1BQU0sSUFBTixDQUFOO0FBQUgsQ0FBRCxDQUFxQixDQUFDOztBQUUvQyx3QkFBQSxHQUEyQixNQUFBLENBQU8sc0JBQVA7O0FBRTNCLGVBQUEsR0FBa0I7O0FBRWxCLGlCQUFBLEdBQW9COztBQUVwQixTQUFBLEdBQVksTUFBQSxDQUFPLE9BQVA7O0FBRVosVUFBQSxHQUFhLFFBQUEsQ0FBRSxDQUFGLENBQUE7U0FBUztBQUFUOztBQUViLGVBQUEsR0FBa0IsTUFBQSxDQUFPLENBQUMsTUFBQSxRQUFBLENBQUEsQ0FBQTtTQUFHLENBQUEsTUFBTSxJQUFOO0FBQUgsQ0FBRCxDQUFlLENBQUMsV0FBdkI7O0FBRWxCLFVBQUEsR0FBYSxNQUFBLENBQU8sUUFBUDs7QUFFYixVQUFBLEdBQWEsS0FBQSxDQUFNLFFBQUEsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUFBO1NBQVUsQ0FBQSxZQUFhO0FBQXZCLENBQU47O0FBRWIsSUFBQSxHQUNFO0VBQUEsTUFBQSxFQUFRLFFBQUEsQ0FBQyxJQUFELENBQUE7V0FBVSxJQUFJLElBQUosQ0FBQTtFQUFWLENBQVI7RUFDQSxNQUFBLEVBQVEsUUFBQSxDQUFDLFNBQVMsTUFBVixDQUFBO1dBQXFCLE1BQUEsUUFBYyxPQUFkLENBQUE7RUFBckI7QUFEUjs7QUFHRixJQUFHLGdEQUFIO0VBQ0UsUUFBQSxHQUFXLE1BQUEsQ0FBTyxNQUFQLEVBRGI7Q0FBQSxNQUFBO0VBR0UsUUFBQSxHQUFXLFFBQUEsQ0FBQyxDQUFELENBQUE7V0FBTztFQUFQLEVBSGI7OztBQUtBLGFBQUEsR0FBZ0IsTUFBQSxDQUFPLFdBQVA7O0FBQ2hCLFVBQUEsR0FBYSxNQUFBLENBQU8sUUFBUDs7QUFDYixZQUFBLEdBQWUsTUFBQSxDQUFPLFNBQUEsQ0FBVSxVQUFWLENBQVA7O0FBRWYsVUFBQSxHQUFhLFFBQUEsQ0FBQyxDQUFELENBQUE7U0FBTyxVQUFBLGFBQVcsQ0FBQyxDQUFFLE1BQU0sQ0FBQyxRQUFULFVBQVo7QUFBUDs7QUFFYixVQUFBLEdBQWEsUUFBQSxDQUFDLENBQUQsQ0FBQTtTQUFPLENBQUMsVUFBQSxhQUFXLENBQUMsQ0FBRSxhQUFkLENBQUQsQ0FBQSxJQUF3QixDQUFDLFVBQUEsQ0FBVyxDQUFYLENBQUQ7QUFBL0I7O0FBRWIsU0FBQSxHQUFZLGVBQUEsR0FBa0IsUUFBQSxDQUFDLENBQUQsQ0FBQTtTQUFPLFVBQUEsYUFBVyxDQUFDLENBQUUsTUFBTSxDQUFDLGFBQVQsVUFBWjtBQUFQOztBQUU5QixTQUFBLEdBQVksZUFBQSxHQUFrQixRQUFBLENBQUMsQ0FBRCxDQUFBO1NBQU8sQ0FBQyxVQUFBLGFBQVcsQ0FBQyxDQUFFLGFBQWQsQ0FBRCxDQUFBLElBQXdCLENBQUMsU0FBQSxDQUFVLENBQVYsQ0FBRDtBQUEvQjs7QUFFOUIsT0FBQTtFQUNFLFNBREY7RUFFRSxXQUZGO0VBR0UsTUFIRjtFQUlFLE1BSkY7RUFLRSxnQkFMRjtFQU1FLGdCQU5GO0VBT0UsYUFQRjtFQVFFLElBUkY7RUFTRSxVQVRGO0VBVUUsTUFWRjtFQVdFLFNBWEY7RUFZRSxTQVpGO0VBYUUsV0FiRjtFQWNFLFNBZEY7RUFlRSxZQWZGO0VBZ0JFLEtBaEJGO0VBaUJFLFNBakJGO0VBa0JFLFFBbEJGO0VBbUJFLFFBbkJGO0VBb0JFLFFBcEJGO0VBcUJFLEtBckJGO0VBc0JFLFFBdEJGO0VBdUJFLFNBdkJGO0VBd0JFLFFBeEJGO0VBeUJFLE1BekJGO0VBMEJFLE9BMUJGO0VBMkJFLFFBM0JGO0VBNEJFLFNBNUJGO0VBNkJFLFVBN0JGO0VBOEJFLFFBOUJGO0VBK0JFLE9BL0JGO0VBZ0NFLEtBaENGO0VBaUNFLFNBakNGO0VBa0NFLEtBbENGO0VBbUNFLEtBbkNGO0VBb0NFLGlCQXBDRjtFQXFDRSxpQkFyQ0Y7RUFzQ0UsbUJBdENGO0VBdUNFLHNCQXZDRjtFQXdDRSx3QkF4Q0Y7RUF5Q0UsZUF6Q0Y7RUEwQ0UsaUJBMUNGO0VBMkNFLGVBM0NGO0VBNENFLFVBNUNGO0VBNkNFLFFBN0NGO0VBOENFLGFBOUNGO0VBK0NFLFVBL0NGO0VBZ0RFLFlBaERGO0VBaURFLFVBakRGO0VBa0RFLFVBbERGO0VBbURFLFNBbkRGO0VBb0RFLGVBcERGO0VBcURFLFNBckRGO0VBc0RFLGVBdERGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3VycnksIHdyYXAgfSBmcm9tIFwiLi9mdW5jdGlvblwiXG5pbXBvcnQgeyBhbnkgfSBmcm9tIFwiLi9wcmVkaWNhdGVcIlxuXG5wcm90b3R5cGUgPSAodmFsdWUpIC0+IGlmIHZhbHVlPyB0aGVuIE9iamVjdC5nZXRQcm90b3R5cGVPZiB2YWx1ZVxuXG5pc1Byb3RvdHlwZSA9IGN1cnJ5IChwLCB2YWx1ZSkgLT4gcD8gJiYgcCA9PSBwcm90b3R5cGUgdmFsdWVcblxuaXNUeXBlID0gY3VycnkgKHR5cGUsIHZhbHVlKSAtPiBpc1Byb3RvdHlwZSB0eXBlPy5wcm90b3R5cGUsIHZhbHVlXG5cbmlzU3lub255bW91c1R5cGUgPSBjdXJyeSAodHlwZSwgdmFsdWUpIC0+XG4gIHR5cGU/Lm5hbWUgPT0gdmFsdWUuY29uc3RydWN0b3IubmFtZVxuXG5pc0tpbmQgPSBjdXJyeSAodHlwZSwgdmFsdWUpIC0+XG4gICggaXNUeXBlIHR5cGUsIHZhbHVlICkgfHwgZG8gLT5cbiAgICB0cnlcbiAgICAgIHZhbHVlIGluc3RhbmNlb2YgdHlwZVxuICAgIGNhdGNoXG4gICAgICBmYWxzZVxuXG5pc1N5bm9ueW1vdXNLaW5kID0gY3VycnkgKHR5cGUsIHZhbHVlKSAtPlxuICB2YWx1ZT8gJiYgKChpc1N5bm9ueW1vdXNUeXBlIHR5cGUsIHZhbHVlKSB8fFxuICAgIChpc1N5bm9ueW1vdXNLaW5kIHR5cGUsIChwcm90b3R5cGUgdmFsdWUpKSlcblxuaXNEZXJpdmVkRnJvbSA9IGN1cnJ5ICggSywgVCApIC0+IGlzS2luZCBLLCBUOjpcblxuaXNBbnkgPSB3cmFwIHRydWVcblxuaXNOdW1iZXIgPSBhbnkgW1xuICBpc1R5cGUgTnVtYmVyXG4gIGlzVHlwZSBCaWdJbnRcbl1cblxuaXNOYU4gPSBOdW1iZXIuaXNOYU5cblxuaXNGaW5pdGUgPSBOdW1iZXIuaXNGaW5pdGVcblxuaXNJbnRlZ2VyID0gTnVtYmVyLmlzSW50ZWdlclxuXG5pc0JpZ0ludCA9IGlzVHlwZSBCaWdJbnRcblxuaXNCb29sZWFuID0gaXNUeXBlIEJvb2xlYW5cblxuaXNTeW1ib2wgPSBpc1R5cGUgU3ltYm9sXG5cbmlzRGF0ZSA9IGlzVHlwZSBEYXRlXG5cbmlzUmVnRXhwID0gaXNUeXBlIFJlZ0V4cFxuXG5pc1N0cmluZyA9IGlzVHlwZSBTdHJpbmdcblxuaXNSZWd1bGFyRnVuY3Rpb24gPSBpc1R5cGUgRnVuY3Rpb25cblxuaXNPYmplY3QgPSBpc1R5cGUgT2JqZWN0XG5cbmlzQXJyYXkgPSBBcnJheS5pc0FycmF5XG5cbmlzTWFwID0gaXNUeXBlIE1hcFxuXG5pc1dlYWtNYXAgPSBpc1R5cGUgV2Vha01hcFxuXG5pc1NldCA9IGlzVHlwZSBTZXRcblxuaXNFcnJvciA9IGlzS2luZCBFcnJvclxuXG5pc1VSTCA9IGlzVHlwZSBVUkxcblxuaXNOb3ROdWxsaXNoID0gKHgpIC0+IHg/XG5cbmlzTnVsbGlzaCA9ICh4KSAtPiAheD9cblxuaXNOdWxsID0gKCB4ICkgLT4geCA9PSBudWxsXG5cbmlzTm90TnVsbCA9ICggeCApIC0+IHggIT0gbnVsbFxuXG5pc0RlZmluZWQgPSAoIHggKSAtPiB4ICE9IHVuZGVmaW5lZFxuXG5pc1VuZGVmaW5lZCA9ICggeCApIC0+IHggPT0gdW5kZWZpbmVkXG5cbiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5HZW5lcmF0b3JGdW5jdGlvbiA9ICgtPiB5aWVsZCBudWxsKS5jb25zdHJ1Y3RvclxuXG5pc0dlbmVyYXRvckZ1bmN0aW9uID0gaXNUeXBlIEdlbmVyYXRvckZ1bmN0aW9uXG5cbkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24gPSAoLT4geWllbGQgYXdhaXQgbnVsbCkuY29uc3RydWN0b3JcblxuaXNBc3luY0dlbmVyYXRvckZ1bmN0aW9uID0gaXNUeXBlIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25cblxuUmVhY3RvckZ1bmN0aW9uID0gQXN5bmNHZW5lcmF0b3JGdW5jdGlvblxuXG5pc1JlYWN0b3JGdW5jdGlvbiA9IGlzQXN5bmNHZW5lcmF0b3JGdW5jdGlvblxuXG5pc1Byb21pc2UgPSBpc0tpbmQgUHJvbWlzZVxuXG5pc1RoZW5hYmxlID0gKCB4ICkgLT4geC50aGVuP1xuXG5pc0FzeW5jRnVuY3Rpb24gPSBpc1R5cGUgKC0+IGF3YWl0IG51bGwpLmNvbnN0cnVjdG9yXG5cbmlzRnVuY3Rpb24gPSBpc0tpbmQgRnVuY3Rpb25cblxuaW5zdGFuY2VPZiA9IGN1cnJ5ICh0LCB4KSAtPiB4IGluc3RhbmNlb2YgdFxuXG5UeXBlID1cbiAgY3JlYXRlOiAodHlwZSkgLT4gbmV3IHR5cGVcbiAgZGVmaW5lOiAocGFyZW50ID0gT2JqZWN0KSAtPiBjbGFzcyBleHRlbmRzIHBhcmVudFxuXG5pZiBCdWZmZXI/XG4gIGlzQnVmZmVyID0gaXNUeXBlIEJ1ZmZlclxuZWxzZVxuICBpc0J1ZmZlciA9ICh4KSAtPiBmYWxzZVxuXG5pc0FycmF5QnVmZmVyID0gaXNUeXBlIEFycmF5QnVmZmVyXG5pc0RhdGFWaWV3ID0gaXNUeXBlIERhdGFWaWV3XG5pc1R5cGVkQXJyYXkgPSBpc0tpbmQgcHJvdG90eXBlIFVpbnQ4QXJyYXlcblxuaXNJdGVyYWJsZSA9ICh4KSAtPiBpc0Z1bmN0aW9uIHg/W1N5bWJvbC5pdGVyYXRvcl1cblxuaXNJdGVyYXRvciA9ICh4KSAtPiAoaXNGdW5jdGlvbiB4Py5uZXh0KSAmJiAoaXNJdGVyYWJsZSB4KVxuXG5pc1JlYWdlbnQgPSBpc0FzeW5jSXRlcmFibGUgPSAoeCkgLT4gaXNGdW5jdGlvbiB4P1tTeW1ib2wuYXN5bmNJdGVyYXRvcl1cblxuaXNSZWFjdG9yID0gaXNBc3luY0l0ZXJhdG9yID0gKHgpIC0+IChpc0Z1bmN0aW9uIHg/Lm5leHQpICYmIChpc1JlYWdlbnQgeClcblxuZXhwb3J0IHtcbiAgcHJvdG90eXBlXG4gIGlzUHJvdG90eXBlXG4gIGlzVHlwZVxuICBpc0tpbmRcbiAgaXNTeW5vbnltb3VzVHlwZVxuICBpc1N5bm9ueW1vdXNLaW5kXG4gIGlzRGVyaXZlZEZyb21cbiAgVHlwZVxuICBpbnN0YW5jZU9mXG4gIGlzTnVsbFxuICBpc05vdE51bGxcbiAgaXNEZWZpbmVkXG4gIGlzVW5kZWZpbmVkXG4gIGlzTnVsbGlzaFxuICBpc05vdE51bGxpc2hcbiAgaXNBbnlcbiAgaXNCb29sZWFuXG4gIGlzU3RyaW5nXG4gIGlzU3ltYm9sXG4gIGlzTnVtYmVyXG4gIGlzTmFOXG4gIGlzRmluaXRlXG4gIGlzSW50ZWdlclxuICBpc0JpZ0ludFxuICBpc0RhdGVcbiAgaXNFcnJvclxuICBpc1JlZ0V4cFxuICBpc1Byb21pc2VcbiAgaXNUaGVuYWJsZVxuICBpc09iamVjdFxuICBpc0FycmF5XG4gIGlzTWFwXG4gIGlzV2Vha01hcFxuICBpc1NldFxuICBpc1VSTFxuICBpc1JlZ3VsYXJGdW5jdGlvblxuICBHZW5lcmF0b3JGdW5jdGlvblxuICBpc0dlbmVyYXRvckZ1bmN0aW9uXG4gIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25cbiAgaXNBc3luY0dlbmVyYXRvckZ1bmN0aW9uXG4gIFJlYWN0b3JGdW5jdGlvblxuICBpc1JlYWN0b3JGdW5jdGlvblxuICBpc0FzeW5jRnVuY3Rpb25cbiAgaXNGdW5jdGlvblxuICBpc0J1ZmZlclxuICBpc0FycmF5QnVmZmVyXG4gIGlzRGF0YVZpZXdcbiAgaXNUeXBlZEFycmF5XG4gIGlzSXRlcmFibGVcbiAgaXNJdGVyYXRvclxuICBpc1JlYWdlbnRcbiAgaXNBc3luY0l0ZXJhYmxlXG4gIGlzUmVhY3RvclxuICBpc0FzeW5jSXRlcmF0b3Jcbn1cbiJdfQ==
//# sourceURL=/@dashkite/joy/src/type.coffee
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyIvQGRhc2hraXRlL2pveS9zcmMvdHlwZS5jb2ZmZWUiXSwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1cnJ5LCB3cmFwIH0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuaW1wb3J0IHsgYW55IH0gZnJvbSBcIi4vcHJlZGljYXRlXCJcblxucHJvdG90eXBlID0gKHZhbHVlKSAtPiBpZiB2YWx1ZT8gdGhlbiBPYmplY3QuZ2V0UHJvdG90eXBlT2YgdmFsdWVcblxuaXNQcm90b3R5cGUgPSBjdXJyeSAocCwgdmFsdWUpIC0+IHA/ICYmIHAgPT0gcHJvdG90eXBlIHZhbHVlXG5cbmlzVHlwZSA9IGN1cnJ5ICh0eXBlLCB2YWx1ZSkgLT4gaXNQcm90b3R5cGUgdHlwZT8ucHJvdG90eXBlLCB2YWx1ZVxuXG5pc1N5bm9ueW1vdXNUeXBlID0gY3VycnkgKHR5cGUsIHZhbHVlKSAtPlxuICB0eXBlPy5uYW1lID09IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWVcblxuaXNLaW5kID0gY3VycnkgKHR5cGUsIHZhbHVlKSAtPlxuICAoIGlzVHlwZSB0eXBlLCB2YWx1ZSApIHx8IGRvIC0+XG4gICAgdHJ5XG4gICAgICB2YWx1ZSBpbnN0YW5jZW9mIHR5cGVcbiAgICBjYXRjaFxuICAgICAgZmFsc2VcblxuaXNTeW5vbnltb3VzS2luZCA9IGN1cnJ5ICh0eXBlLCB2YWx1ZSkgLT5cbiAgdmFsdWU/ICYmICgoaXNTeW5vbnltb3VzVHlwZSB0eXBlLCB2YWx1ZSkgfHxcbiAgICAoaXNTeW5vbnltb3VzS2luZCB0eXBlLCAocHJvdG90eXBlIHZhbHVlKSkpXG5cbmlzRGVyaXZlZEZyb20gPSBjdXJyeSAoIEssIFQgKSAtPiBpc0tpbmQgSywgVDo6XG5cbmlzQW55ID0gd3JhcCB0cnVlXG5cbmlzTnVtYmVyID0gYW55IFtcbiAgaXNUeXBlIE51bWJlclxuICBpc1R5cGUgQmlnSW50XG5dXG5cbmlzTmFOID0gTnVtYmVyLmlzTmFOXG5cbmlzRmluaXRlID0gTnVtYmVyLmlzRmluaXRlXG5cbmlzSW50ZWdlciA9IE51bWJlci5pc0ludGVnZXJcblxuaXNCaWdJbnQgPSBpc1R5cGUgQmlnSW50XG5cbmlzQm9vbGVhbiA9IGlzVHlwZSBCb29sZWFuXG5cbmlzU3ltYm9sID0gaXNUeXBlIFN5bWJvbFxuXG5pc0RhdGUgPSBpc1R5cGUgRGF0ZVxuXG5pc1JlZ0V4cCA9IGlzVHlwZSBSZWdFeHBcblxuaXNTdHJpbmcgPSBpc1R5cGUgU3RyaW5nXG5cbmlzUmVndWxhckZ1bmN0aW9uID0gaXNUeXBlIEZ1bmN0aW9uXG5cbmlzT2JqZWN0ID0gaXNUeXBlIE9iamVjdFxuXG5pc0FycmF5ID0gQXJyYXkuaXNBcnJheVxuXG5pc01hcCA9IGlzVHlwZSBNYXBcblxuaXNXZWFrTWFwID0gaXNUeXBlIFdlYWtNYXBcblxuaXNTZXQgPSBpc1R5cGUgU2V0XG5cbmlzRXJyb3IgPSBpc0tpbmQgRXJyb3JcblxuaXNVUkwgPSBpc1R5cGUgVVJMXG5cbmlzTm90TnVsbGlzaCA9ICh4KSAtPiB4P1xuXG5pc051bGxpc2ggPSAoeCkgLT4gIXg/XG5cbmlzTnVsbCA9ICggeCApIC0+IHggPT0gbnVsbFxuXG5pc05vdE51bGwgPSAoIHggKSAtPiB4ICE9IG51bGxcblxuaXNEZWZpbmVkID0gKCB4ICkgLT4geCAhPSB1bmRlZmluZWRcblxuaXNVbmRlZmluZWQgPSAoIHggKSAtPiB4ID09IHVuZGVmaW5lZFxuXG4jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuR2VuZXJhdG9yRnVuY3Rpb24gPSAoLT4geWllbGQgbnVsbCkuY29uc3RydWN0b3JcblxuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGlzVHlwZSBHZW5lcmF0b3JGdW5jdGlvblxuXG5Bc3luY0dlbmVyYXRvckZ1bmN0aW9uID0gKC0+IHlpZWxkIGF3YWl0IG51bGwpLmNvbnN0cnVjdG9yXG5cbmlzQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiA9IGlzVHlwZSBBc3luY0dlbmVyYXRvckZ1bmN0aW9uXG5cblJlYWN0b3JGdW5jdGlvbiA9IEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25cblxuaXNSZWFjdG9yRnVuY3Rpb24gPSBpc0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25cblxuaXNQcm9taXNlID0gaXNLaW5kIFByb21pc2VcblxuaXNUaGVuYWJsZSA9ICggeCApIC0+IHgudGhlbj9cblxuaXNBc3luY0Z1bmN0aW9uID0gaXNUeXBlICgtPiBhd2FpdCBudWxsKS5jb25zdHJ1Y3RvclxuXG5pc0Z1bmN0aW9uID0gaXNLaW5kIEZ1bmN0aW9uXG5cbmluc3RhbmNlT2YgPSBjdXJyeSAodCwgeCkgLT4geCBpbnN0YW5jZW9mIHRcblxuVHlwZSA9XG4gIGNyZWF0ZTogKHR5cGUpIC0+IG5ldyB0eXBlXG4gIGRlZmluZTogKHBhcmVudCA9IE9iamVjdCkgLT4gY2xhc3MgZXh0ZW5kcyBwYXJlbnRcblxuaWYgQnVmZmVyP1xuICBpc0J1ZmZlciA9IGlzVHlwZSBCdWZmZXJcbmVsc2VcbiAgaXNCdWZmZXIgPSAoeCkgLT4gZmFsc2VcblxuaXNBcnJheUJ1ZmZlciA9IGlzVHlwZSBBcnJheUJ1ZmZlclxuaXNEYXRhVmlldyA9IGlzVHlwZSBEYXRhVmlld1xuaXNUeXBlZEFycmF5ID0gaXNLaW5kIHByb3RvdHlwZSBVaW50OEFycmF5XG5cbmlzSXRlcmFibGUgPSAoeCkgLT4gaXNGdW5jdGlvbiB4P1tTeW1ib2wuaXRlcmF0b3JdXG5cbmlzSXRlcmF0b3IgPSAoeCkgLT4gKGlzRnVuY3Rpb24geD8ubmV4dCkgJiYgKGlzSXRlcmFibGUgeClcblxuaXNSZWFnZW50ID0gaXNBc3luY0l0ZXJhYmxlID0gKHgpIC0+IGlzRnVuY3Rpb24geD9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdXG5cbmlzUmVhY3RvciA9IGlzQXN5bmNJdGVyYXRvciA9ICh4KSAtPiAoaXNGdW5jdGlvbiB4Py5uZXh0KSAmJiAoaXNSZWFnZW50IHgpXG5cbmV4cG9ydCB7XG4gIHByb3RvdHlwZVxuICBpc1Byb3RvdHlwZVxuICBpc1R5cGVcbiAgaXNLaW5kXG4gIGlzU3lub255bW91c1R5cGVcbiAgaXNTeW5vbnltb3VzS2luZFxuICBpc0Rlcml2ZWRGcm9tXG4gIFR5cGVcbiAgaW5zdGFuY2VPZlxuICBpc051bGxcbiAgaXNOb3ROdWxsXG4gIGlzRGVmaW5lZFxuICBpc1VuZGVmaW5lZFxuICBpc051bGxpc2hcbiAgaXNOb3ROdWxsaXNoXG4gIGlzQW55XG4gIGlzQm9vbGVhblxuICBpc1N0cmluZ1xuICBpc1N5bWJvbFxuICBpc051bWJlclxuICBpc05hTlxuICBpc0Zpbml0ZVxuICBpc0ludGVnZXJcbiAgaXNCaWdJbnRcbiAgaXNEYXRlXG4gIGlzRXJyb3JcbiAgaXNSZWdFeHBcbiAgaXNQcm9taXNlXG4gIGlzVGhlbmFibGVcbiAgaXNPYmplY3RcbiAgaXNBcnJheVxuICBpc01hcFxuICBpc1dlYWtNYXBcbiAgaXNTZXRcbiAgaXNVUkxcbiAgaXNSZWd1bGFyRnVuY3Rpb25cbiAgR2VuZXJhdG9yRnVuY3Rpb25cbiAgaXNHZW5lcmF0b3JGdW5jdGlvblxuICBBc3luY0dlbmVyYXRvckZ1bmN0aW9uXG4gIGlzQXN5bmNHZW5lcmF0b3JGdW5jdGlvblxuICBSZWFjdG9yRnVuY3Rpb25cbiAgaXNSZWFjdG9yRnVuY3Rpb25cbiAgaXNBc3luY0Z1bmN0aW9uXG4gIGlzRnVuY3Rpb25cbiAgaXNCdWZmZXJcbiAgaXNBcnJheUJ1ZmZlclxuICBpc0RhdGFWaWV3XG4gIGlzVHlwZWRBcnJheVxuICBpc0l0ZXJhYmxlXG4gIGlzSXRlcmF0b3JcbiAgaXNSZWFnZW50XG4gIGlzQXN5bmNJdGVyYWJsZVxuICBpc1JlYWN0b3JcbiAgaXNBc3luY0l0ZXJhdG9yXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFrS0Usc0JBdkNGOzs7UUFxQ0UsaUJBckNGOzs7O2VBeUNFLGVBekNGOzs7ZUFRRSxJQVJGOzs7ZUFTRSxVQVRGOzs7ZUFnQkUsS0FoQkY7OztlQStCRSxPQS9CRjs7O2VB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