diff --git a/dist/creed.es.js b/dist/creed.es.js index 2165182..f0887f1 100644 --- a/dist/creed.es.js +++ b/dist/creed.es.js @@ -71,6 +71,12 @@ var isNode = typeof process !== 'undefined' && var MutationObs = (typeof MutationObserver === 'function' && MutationObserver) || (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver); +var getenv = function (name) { return isNode && process.env[name]; }; + +var isDebug = getenv('CREED_DEBUG') || + getenv('NODE_ENV') === 'development' || + getenv('NODE_ENV') === 'test'; + /* global process,document */ var makeAsync = function (f) { @@ -122,6 +128,93 @@ TaskQueue.prototype._drain = function _drain () { this.length = 0; }; +var noop = function () {}; + +// WARNING: shared mutable notion of "current context" +var _currentContext; +var _createContext = noop; + +// Get the current context +var peekContext = function () { return _currentContext; }; + +// Append a new context to the current, and set the current context +// to the newly appended one +var pushContext = function (at, tag) { return _createContext(_currentContext, at, tag); }; + +// Set the current context to the provided one, returning the +// previously current context (which makes it easy to swap back +// to it) +var swapContext = function (context) { + var previousContext = _currentContext; + _currentContext = context; + return previousContext +}; + +// Enable context tracing. Must provide: +// createContext :: c -> Function -> String -> c +// Given the current context, and a function and string tag representing a new context, +// return a new current context +// initialContext :: c +// An initial current context +var traceAsync = function (createContext, initialContext) { + _createContext = createContext; + _currentContext = initialContext; +}; + +// Enable default context tracing +var enableAsyncTraces = function () { return traceAsync(createContext, undefined); }; + +// Disable context tracing +var disableAsyncTraces = function () { return traceAsync(noop, undefined); }; + +// ------------------------------------------------------ +// Default context tracing + +var createContext = function (currentContext, at, tag) { return new Context(currentContext, tag || at.name, at); }; + +var captureStackTrace = Error.captureStackTrace || noop; + +var Context = function Context (next, tag, at) { + this.next = next; + this.tag = tag; + captureStackTrace(this, at); +}; + +Context.prototype.toString = function toString () { + return this.tag ? (" from " + (this.tag) + ":") : ' from previous context:' +}; + +// ------------------------------------------------------ +// Default context formatting + +// If e is an Error, attach an async trace for the provided context. +// Otherwise, do nothing. +var attachTrace = function (e, context) { return context != null && e instanceof Error ? formatTrace(e, context) : e; }; + +// Attach an async trace to e for the provided context +function formatTrace (e, context) { + if (!e._creedOriginalStack) { + e._creedOriginalStack = e.stack; + e.stack = formatContext(elideTrace(e.stack), context); + } + return e +} + +// Fold context list into a newline-separated, combined async trace +function formatContext (trace, context) { + if (context == null) { + return trace + } + var s = elideTrace(context.stack); + return formatContext(s.indexOf(' at ') < 0 ? trace : (trace + '\n' + s), context.next) +} + +var elideTraceRx = + /\s*at\s.*(creed[\\/](src|dist)[\\/]|internal[\\/]process[\\/]|\((timers|module)\.js).+:\d.*/g; + +// Remove internal stack frames +var elideTrace = function (stack) { return stack.replace(elideTraceRx, ''); }; + var UNHANDLED_REJECTION = 'unhandledRejection'; var HANDLED_REJECTION = 'rejectionHandled'; @@ -132,7 +225,9 @@ var ErrorHandler = function ErrorHandler (emitEvent, reportError) { }; ErrorHandler.prototype.track = function track (rejected) { - if (!this.emit(UNHANDLED_REJECTION, rejected, rejected.value)) { + var e = attachTrace(rejected.value, rejected.context); + + if (!this.emit(UNHANDLED_REJECTION, rejected, e)) { /* istanbul ignore else */ if (this.rejections.length === 0) { setTimeout(reportErrors, 1, this.reportError, this.rejections); @@ -200,15 +295,15 @@ var makeEmitError = function () { return !self.dispatchEvent(ev) } - }(noop, self, CustomEvent)) + }(noop$1, self, CustomEvent)) } // istanbul ignore next */ - return noop + return noop$1 }; // istanbul ignore next */ -function noop () {} +function noop$1 () {} // maybeThenable :: * -> boolean function maybeThenable (x) { @@ -217,6 +312,7 @@ function maybeThenable (x) { var Action = function Action (promise) { this.promise = promise; + this.context = pushContext(this.constructor); }; // default onFulfilled action @@ -478,30 +574,30 @@ function handleItem (resolve, handler, x, i, promise) { } else if (isRejected(p)) { handler.rejectAt(p, i, promise); } else { - p._runAction(new Indexed(handler, i, promise)); + p._runAction(new AtIndex(handler, i, promise)); } } -var Indexed = (function (Action$$1) { - function Indexed (handler, i, promise) { +var AtIndex = (function (Action$$1) { + function AtIndex (handler, i, promise) { Action$$1.call(this, promise); this.i = i; this.handler = handler; } - if ( Action$$1 ) Indexed.__proto__ = Action$$1; - Indexed.prototype = Object.create( Action$$1 && Action$$1.prototype ); - Indexed.prototype.constructor = Indexed; + if ( Action$$1 ) AtIndex.__proto__ = Action$$1; + AtIndex.prototype = Object.create( Action$$1 && Action$$1.prototype ); + AtIndex.prototype.constructor = AtIndex; - Indexed.prototype.fulfilled = function fulfilled (p) { + AtIndex.prototype.fulfilled = function fulfilled (p) { this.handler.fulfillAt(p, this.i, this.promise); }; - Indexed.prototype.rejected = function rejected (p) { + AtIndex.prototype.rejected = function rejected (p) { return this.handler.rejectAt(p, this.i, this.promise) }; - return Indexed; + return AtIndex; }(Action)); function createCommonjsModule(fn, module) { @@ -544,9 +640,12 @@ var index = createCommonjsModule(function (module) { var taskQueue = new TaskQueue(); /* istanbul ignore next */ -var errorHandler = new ErrorHandler(makeEmitError(), function (e) { - throw e.value -}); +var handleError = function (ref) { +var value = ref.value; + throw value }; + +/* istanbul ignore next */ +var errorHandler = new ErrorHandler(makeEmitError(), handleError); // ------------------------------------------------------------- // ## Types @@ -554,8 +653,10 @@ var errorHandler = new ErrorHandler(makeEmitError(), function (e) { // Internal base type, provides fantasy-land namespace // and type representative -var Core = function Core () {}; - +var Core = function Core () { + this.context = peekContext(); +}; +// empty :: Promise e a Core.empty = function empty () { return never() }; @@ -830,7 +931,9 @@ var Fulfilled = (function (Core) { }; Fulfilled.prototype._runAction = function _runAction (action) { + var c = swapContext(action.context); action.fulfilled(this); + swapContext(c); }; return Fulfilled; @@ -899,9 +1002,11 @@ var Rejected = (function (Core) { }; Rejected.prototype._runAction = function _runAction (action) { + var c = swapContext(action.context); if (action.rejected(this)) { errorHandler.untrack(this); } + swapContext(c); }; return Rejected; @@ -1231,13 +1336,17 @@ Settle.prototype.check = function check (pending, promise) { }; function runPromise$1 (f, thisArg, args, promise) { - /* eslint complexity:[2,5] */ + /* eslint complexity:[2,5] */ function resolve (x) { + var c = swapContext(promise.context); promise._resolve(x); + swapContext(c); } function reject (e) { + var c = swapContext(promise.context); promise._reject(e); + swapContext(c); } switch (args.length) { @@ -1262,13 +1371,15 @@ function runPromise$1 (f, thisArg, args, promise) { } function runNode$1 (f, thisArg, args, promise) { - /* eslint complexity:[2,5] */ + /* eslint complexity:[2,5] */ function settleNode (e, x) { + var c = swapContext(promise.context); if (e) { promise._reject(e); } else { promise._fulfill(x); } + swapContext(c); } switch (args.length) { @@ -1313,18 +1424,22 @@ var Coroutine = (function (Action$$1) { }; Coroutine.prototype.tryStep = function tryStep (resume, x) { + var context = swapContext(this.context); var result; // test if `resume` (and only it) throws try { result = resume.call(this.generator, x); } catch (e) { - this.promise._reject(e); + this.handleReject(e); return - } // else - this.handle(result); + } finally { + swapContext(context); + }// else + + this.handleResult(result); }; - Coroutine.prototype.handle = function handle (result) { + Coroutine.prototype.handleResult = function handleResult (result) { if (result.done) { return this.promise._resolve(result.value) } @@ -1332,18 +1447,27 @@ var Coroutine = (function (Action$$1) { this.resolve(result.value)._when(this); }; - Coroutine.prototype.fulfilled = function fulfilled (ref) { - this.tryStep(this.generator.next, ref.value); + Coroutine.prototype.handleReject = function handleReject (e) { + this.promise._reject(e); + }; + + Coroutine.prototype.fulfilled = function fulfilled (p) { + this.tryStep(this.generator.next, p.value); }; - Coroutine.prototype.rejected = function rejected (ref) { - this.tryStep(this.generator.throw, ref.value); + Coroutine.prototype.rejected = function rejected (p) { + this.tryStep(this.generator.throw, p.value); return true }; return Coroutine; }(Action)); +/* istanbul ignore next */ +if (isDebug) { + enableAsyncTraces(); +} + // ------------------------------------------------------------- // ## Coroutine // ------------------------------------------------------------- @@ -1469,6 +1593,7 @@ function runMerge (f, thisArg, args) { } var MergeHandler = function MergeHandler (f, c) { + this.context = pushContext(this.constructor, Merge.name); this.f = f; this.c = c; this.promise = void 0; @@ -1482,11 +1607,13 @@ MergeHandler.prototype.merge = function merge (promise, args) { }; MergeHandler.prototype.run = function run () { + var c = swapContext(this.context); try { this.promise._resolve(this.f.apply(this.c, this.args)); } catch (e) { this.promise._reject(e); } + swapContext(c); }; function checkFunction (f) { @@ -1542,5 +1669,5 @@ if (typeof Promise !== 'function') { shim(); } -export { resolve, reject, future, never, fulfill, all, race, isFulfilled, isRejected, isSettled, isPending, isNever, getValue, getReason, coroutine, fromNode, runNode, runPromise, delay, timeout, any, settle, merge, shim, CreedPromise as Promise }; +export { enableAsyncTraces, disableAsyncTraces, resolve, reject, future, never, fulfill, all, race, isFulfilled, isRejected, isSettled, isPending, isNever, getValue, getReason, coroutine, fromNode, runNode, runPromise, delay, timeout, any, settle, merge, shim, CreedPromise as Promise }; //# sourceMappingURL=creed.es.js.map diff --git a/dist/creed.es.js.map b/dist/creed.es.js.map index 36dabe2..b5fda93 100644 --- a/dist/creed.es.js.map +++ b/dist/creed.es.js.map @@ -1 +1 @@ -{"version":3,"file":"creed.es.js","sources":["../src/state.js","../src/inspect.js","../src/env.js","../src/async.js","../src/TaskQueue.js","../src/ErrorHandler.js","../src/emitError.js","../src/maybeThenable.js","../src/Action.js","../src/tryCall.js","../src/then.js","../src/map.js","../src/bimap.js","../src/chain.js","../src/Race.js","../src/Merge.js","../src/iterable.js","../node_modules/fantasy-land/index.js","../src/Promise.js","../src/delay.js","../src/TimeoutError.js","../src/timeout.js","../src/Any.js","../src/Settle.js","../src/runPromise.js","../src/node.js","../src/coroutine.js","../src/main.js"],"sourcesContent":["/* eslint no-multi-spaces: 0 */\nexport const PENDING = 1 << 0\nexport const FULFILLED = 1 << 1\nexport const REJECTED = 1 << 2\nexport const SETTLED = FULFILLED | REJECTED\nexport const NEVER = 1 << 3\n\nexport const HANDLED = 1 << 4\n","import { PENDING, FULFILLED, REJECTED, SETTLED, NEVER, HANDLED } from './state'\n\nexport function isPending (p) {\n\treturn (p.state() & PENDING) > 0\n}\n\nexport function isFulfilled (p) {\n\treturn (p.state() & FULFILLED) > 0\n}\n\nexport function isRejected (p) {\n\treturn (p.state() & REJECTED) > 0\n}\n\nexport function isSettled (p) {\n\treturn (p.state() & SETTLED) > 0\n}\n\nexport function isNever (p) {\n\treturn (p.state() & NEVER) > 0\n}\n\nexport function isHandled (p) {\n\treturn (p.state() & HANDLED) > 0\n}\n\nexport function getValue (p) {\n\tconst n = p.near()\n\tif (!isFulfilled(n)) {\n\t\tthrow new TypeError('getValue called on ' + p)\n\t}\n\n\treturn n.value\n}\n\nexport function getReason (p) {\n\tconst n = p.near()\n\tif (!isRejected(n)) {\n\t\tthrow new TypeError('getReason called on ' + p)\n\t}\n\n\tsilenceError(n)\n\treturn n.value\n}\n\nexport function silenceError (p) {\n\tp._runAction(silencer)\n}\n\n// implements Action\nconst silencer = {\n\tfulfilled () {},\n\trejected (p) {\n\t\tp._state |= HANDLED\n\t}\n}\n","/* global process,MutationObserver,WebKitMutationObserver */\n\nconst isNode = typeof process !== 'undefined' &&\n Object.prototype.toString.call(process) === '[object process]'\n\n/* istanbul ignore next */\nconst MutationObs = (typeof MutationObserver === 'function' && MutationObserver) ||\n (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver)\n\nexport { isNode, MutationObs }\n","import { isNode, MutationObs } from './env'\n\n/* global process,document */\n\nexport default function (f) {\n\treturn isNode ? createNodeScheduler(f) /* istanbul ignore next */\n\t\t: MutationObs ? createBrowserScheduler(f)\n\t\t: createFallbackScheduler(f)\n}\n\n/* istanbul ignore next */\nfunction createFallbackScheduler (f) {\n\treturn () => setTimeout(f, 0)\n}\n\nfunction createNodeScheduler (f) {\n\treturn () => process.nextTick(f)\n}\n\n/* istanbul ignore next */\nfunction createBrowserScheduler (f) {\n\tconst node = document.createTextNode('')\n\tnew MutationObs(f).observe(node, { characterData: true })\n\n\tlet i = 0\n\treturn () => { node.data = (i ^= 1) }\n}\n","import makeAsync from './async'\n\nexport default class TaskQueue {\n\tconstructor () {\n\t\tthis.tasks = new Array(2 << 15)\n\t\tthis.length = 0\n\t\tthis.drain = makeAsync(() => this._drain())\n\t}\n\n\tadd (task) {\n\t\tif (this.length === 0) {\n\t\t\tthis.drain()\n\t\t}\n\n\t\tthis.tasks[this.length++] = task\n\t}\n\n\t_drain () {\n\t\tconst q = this.tasks\n\t\tfor (let i = 0; i < this.length; ++i) {\n\t\t\tq[i].run()\n\t\t\tq[i] = void 0\n\t\t}\n\t\tthis.length = 0\n\t}\n}\n","import { silenceError, isHandled } from './inspect'\n\nconst UNHANDLED_REJECTION = 'unhandledRejection'\nconst HANDLED_REJECTION = 'rejectionHandled'\n\nexport default class ErrorHandler {\n\tconstructor (emitEvent, reportError) {\n\t\tthis.rejections = []\n\t\tthis.emit = emitEvent\n\t\tthis.reportError = reportError\n\t}\n\n\ttrack (rejected) {\n\t\tif (!this.emit(UNHANDLED_REJECTION, rejected, rejected.value)) {\n\t\t\t/* istanbul ignore else */\n\t\t\tif (this.rejections.length === 0) {\n\t\t\t\tsetTimeout(reportErrors, 1, this.reportError, this.rejections)\n\t\t\t}\n\t\t\tthis.rejections.push(rejected)\n\t\t}\n\t}\n\n\tuntrack (rejected) {\n\t\tsilenceError(rejected)\n\t\tthis.emit(HANDLED_REJECTION, rejected)\n\t}\n}\n\nfunction reportErrors (report, rejections) {\n\ttry {\n\t\treportAll(rejections, report)\n\t} finally {\n\t\trejections.length = 0\n\t}\n}\n\nfunction reportAll (rejections, report) {\n\tfor (let i = 0; i < rejections.length; ++i) {\n\t\tconst rejected = rejections[i]\n\t\t/* istanbul ignore else */\n\t\tif (!isHandled(rejected)) {\n\t\t\treport(rejected)\n\t\t}\n\t}\n}\n","import { isNode } from './env'\n\nconst UNHANDLED_REJECTION = 'unhandledRejection'\n\nexport default function () {\n\t/* global process, self, CustomEvent */\n\t// istanbul ignore else */\n\tif (isNode && typeof process.emit === 'function') {\n\t\t// Returning falsy here means to call the default reportRejection API.\n\t\t// This is safe even in browserify since process.emit always returns\n\t\t// falsy in browserify:\n\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\treturn function (type, error) {\n\t\t\treturn type === UNHANDLED_REJECTION\n\t\t\t\t? process.emit(type, error.value, error)\n\t\t\t\t: process.emit(type, error)\n\t\t}\n\t} else if (typeof self !== 'undefined' && typeof CustomEvent === 'function') {\n\t\treturn (function (noop, self, CustomEvent) {\n\t\t\tvar hasCustomEvent\n\t\t\ttry {\n\t\t\t\thasCustomEvent = new CustomEvent(UNHANDLED_REJECTION) instanceof CustomEvent\n\t\t\t} catch (e) {\n\t\t\t\thasCustomEvent = false\n\t\t\t}\n\n\t\t\treturn !hasCustomEvent ? noop : function (type, error) {\n\t\t\t\tconst ev = new CustomEvent(type, {\n\t\t\t\t\tdetail: {\n\t\t\t\t\t\treason: error.value,\n\t\t\t\t\t\tpromise: error\n\t\t\t\t\t},\n\t\t\t\t\tbubbles: false,\n\t\t\t\t\tcancelable: true\n\t\t\t\t})\n\n\t\t\t\treturn !self.dispatchEvent(ev)\n\t\t\t}\n\t\t}(noop, self, CustomEvent))\n\t}\n\n\t// istanbul ignore next */\n\treturn noop\n}\n\n// istanbul ignore next */\nfunction noop () {}\n","// maybeThenable :: * -> boolean\nexport default function maybeThenable (x) {\n\treturn (typeof x === 'object' || typeof x === 'function') && x !== null\n}\n","export default class Action {\n\tconstructor (promise) {\n\t\tthis.promise = promise\n\t}\n\n\t// default onFulfilled action\n\t/* istanbul ignore next */\n\tfulfilled (p) {\n\t\tthis.promise._become(p)\n\t}\n\n\t// default onRejected action\n\trejected (p) {\n\t\tthis.promise._become(p)\n\t\treturn false\n\t}\n}\n","export default function tryCall (f, x, handle, promise) {\n\tlet result\n\t// test if `f` (and only it) throws\n\ttry {\n\t\tresult = f(x)\n\t} catch (e) {\n\t\tpromise._reject(e)\n\t\treturn\n\t} // else\n\thandle(promise, result)\n}\n","import Action from './Action'\nimport tryCall from './tryCall'\n\nexport default function then (f, r, p, promise) {\n\tp._when(new Then(f, r, promise))\n\treturn promise\n}\n\nclass Then extends Action {\n\tconstructor (f, r, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t\tthis.r = r\n\t}\n\n\tfulfilled (p) {\n\t\tthis.runThen(this.f, p)\n\t}\n\n\trejected (p) {\n\t\treturn this.runThen(this.r, p)\n\t}\n\n\trunThen (f, p) {\n\t\tif (typeof f !== 'function') {\n\t\t\tthis.promise._become(p)\n\t\t\treturn false\n\t\t}\n\t\ttryCall(f, p.value, handleThen, this.promise)\n\t\treturn true\n\t}\n}\n\nfunction handleThen (promise, result) {\n\tpromise._resolve(result)\n}\n\n","import Action from './Action'\nimport tryCall from './tryCall'\n\nexport default function (f, p, promise) {\n\tp._when(new Map(f, promise))\n\treturn promise\n}\n\nexport class Map extends Action {\n\tconstructor (f, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t}\n\n\tfulfilled (p) {\n\t\ttryCall(this.f, p.value, handleMap, this.promise)\n\t}\n}\n\nfunction handleMap (promise, result) {\n\tpromise._fulfill(result)\n}\n\n","import { Map } from './map'\nimport tryCall from './tryCall'\n\nexport default function (r, f, p, promise) {\n\tp._when(new Bimap(r, f, promise))\n\treturn promise\n}\n\nclass Bimap extends Map {\n\tconstructor (r, f, promise) {\n\t\tsuper(f, promise)\n\t\tthis.r = r\n\t}\n\n\trejected (p) {\n\t\ttryCall(this.r, p.value, handleMapRejected, this.promise)\n\t}\n}\n\nfunction handleMapRejected (promise, result) {\n\tpromise._reject(result)\n}\n","import Action from './Action'\nimport tryCall from './tryCall'\nimport maybeThenable from './maybeThenable'\n\nexport default function (f, p, promise) {\n\tp._when(new Chain(f, promise))\n\treturn promise\n}\n\nclass Chain extends Action {\n\tconstructor (f, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t}\n\n\tfulfilled (p) {\n\t\ttryCall(this.f, p.value, handleChain, this.promise)\n\t}\n}\n\nfunction handleChain (promise, result) {\n\tif (!(maybeThenable(result) && typeof result.then === 'function')) {\n\t\tpromise._reject(new TypeError('f must return a promise'))\n\t}\n\n\tpromise._resolve(result)\n}\n","import { silenceError } from './inspect'\n\nexport default class Race {\n\tconstructor (never) {\n\t\tthis.never = never\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tpromise._fulfill(x)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tpromise._become(p)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\t// In the case where the result promise has been resolved\n\t\t// need to silence all subsequently seen rejections\n\t\tpromise._isResolved() ? silenceError(p) : promise._become(p)\n\t}\n\n\tcomplete (total, promise) {\n\t\tif (total === 0) {\n\t\t\tpromise._become(this.never())\n\t\t}\n\t}\n}\n","import { silenceError } from './inspect'\n\nexport default class Merge {\n\tconstructor (mergeHandler, results) {\n\t\tthis.pending = 0\n\t\tthis.results = results\n\t\tthis.mergeHandler = mergeHandler\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tthis.results[i] = x\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tthis.valueAt(p.value, i, promise)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\t// In the case where the result promise has been resolved\n\t\t// need to silence all subsequently seen rejections\n\t\tpromise._isResolved() ? silenceError(p) : promise._become(p)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tthis.mergeHandler.merge(promise, this.results)\n\t\t}\n\t}\n}\n","import { isFulfilled, isRejected, silenceError } from './inspect'\nimport Action from './Action'\nimport maybeThenable from './maybeThenable'\n\nexport function resultsArray (iterable) {\n\treturn Array.isArray(iterable) ? new Array(iterable.length) : []\n}\n\nexport function resolveIterable (resolve, handler, promises, promise) {\n\tconst run = Array.isArray(promises) ? runArray : runIterable\n\ttry {\n\t\trun(resolve, handler, promises, promise)\n\t} catch (e) {\n\t\tpromise._reject(e)\n\t}\n\treturn promise.near()\n}\n\nfunction runArray (resolve, handler, promises, promise) {\n\tlet i = 0\n\n\tfor (; i < promises.length; ++i) {\n\t\thandleItem(resolve, handler, promises[i], i, promise)\n\t}\n\n\thandler.complete(i, promise)\n}\n\nfunction runIterable (resolve, handler, promises, promise) {\n\tlet i = 0\n\tconst iter = promises[Symbol.iterator]()\n\n\twhile (true) {\n\t\tconst step = iter.next()\n\t\tif (step.done) {\n\t\t\tbreak\n\t\t}\n\t\thandleItem(resolve, handler, step.value, i++, promise)\n\t}\n\n\thandler.complete(i, promise)\n}\n\nfunction handleItem (resolve, handler, x, i, promise) {\n\t/* eslint complexity:[1,6] */\n\tif (!maybeThenable(x)) {\n\t\thandler.valueAt(x, i, promise)\n\t\treturn\n\t}\n\n\tconst p = resolve(x)\n\n\tif (promise._isResolved()) {\n\t\tif (!isFulfilled(p)) {\n\t\t\tsilenceError(p)\n\t\t}\n\t} else if (isFulfilled(p)) {\n\t\thandler.fulfillAt(p, i, promise)\n\t} else if (isRejected(p)) {\n\t\thandler.rejectAt(p, i, promise)\n\t} else {\n\t\tp._runAction(new Indexed(handler, i, promise))\n\t}\n}\n\nclass Indexed extends Action {\n\tconstructor (handler, i, promise) {\n\t\tsuper(promise)\n\t\tthis.i = i\n\t\tthis.handler = handler\n\t}\n\n\tfulfilled (p) {\n\t\tthis.handler.fulfillAt(p, this.i, this.promise)\n\t}\n\n\trejected (p) {\n\t\treturn this.handler.rejectAt(p, this.i, this.promise)\n\t}\n}\n","(function() {\n\n 'use strict';\n\n /* eslint comma-dangle: [\"off\"], no-var: [\"off\"], strict: [\"error\", \"function\"] */\n /* global self */\n\n var mapping = {\n equals: 'fantasy-land/equals',\n concat: 'fantasy-land/concat',\n empty: 'fantasy-land/empty',\n map: 'fantasy-land/map',\n ap: 'fantasy-land/ap',\n of: 'fantasy-land/of',\n alt: 'fantasy-land/alt',\n zero: 'fantasy-land/zero',\n reduce: 'fantasy-land/reduce',\n traverse: 'fantasy-land/traverse',\n chain: 'fantasy-land/chain',\n chainRec: 'fantasy-land/chainRec',\n extend: 'fantasy-land/extend',\n extract: 'fantasy-land/extract',\n bimap: 'fantasy-land/bimap',\n promap: 'fantasy-land/promap'\n };\n\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = mapping;\n } else {\n self.FantasyLand = mapping;\n }\n\n}());\n","import TaskQueue from './TaskQueue'\nimport ErrorHandler from './ErrorHandler'\nimport makeEmitError from './emitError'\nimport maybeThenable from './maybeThenable'\nimport { PENDING, FULFILLED, REJECTED, NEVER } from './state'\nimport { isNever, isSettled } from './inspect'\n\nimport then from './then'\nimport map from './map'\nimport bimap from './bimap'\nimport chain from './chain'\n\nimport Race from './Race'\nimport Merge from './Merge'\nimport { resolveIterable, resultsArray } from './iterable'\n\nimport fl from 'fantasy-land'\n\nconst taskQueue = new TaskQueue()\nexport { taskQueue }\n\n/* istanbul ignore next */\nconst errorHandler = new ErrorHandler(makeEmitError(), e => {\n\tthrow e.value\n})\n\n// -------------------------------------------------------------\n// ## Types\n// -------------------------------------------------------------\n\n// Internal base type, provides fantasy-land namespace\n// and type representative\nclass Core {\n\t// empty :: Promise e a\n\tstatic empty () {\n\t\treturn never()\n\t}\n\n\t// of :: a -> Promise e a\n\tstatic of (x) {\n\t\treturn fulfill(x)\n\t}\n\n\tstatic [fl.empty] () {\n\t\treturn never()\n\t}\n\n\tstatic [fl.of] (x) {\n\t\treturn fulfill(x)\n\t}\n\n\t[fl.map] (f) {\n\t\treturn this.map(f)\n\t}\n\n\t[fl.bimap] (r, f) {\n\t\treturn this.bimap(r, f)\n\t}\n\n\t[fl.ap] (pf) {\n\t\treturn pf.ap(this)\n\t}\n\n\t[fl.chain] (f) {\n\t\treturn this.chain(f)\n\t}\n\n\t[fl.concat] (p) {\n\t\treturn this.concat(p)\n\t}\n\n\t[fl.alt] (p) {\n\t\treturn this.or(p)\n\t}\n\n\tstatic [fl.zero] () {\n\t\treturn never()\n\t}\n\n\t// @deprecated The name concat is deprecated, use or() instead.\n\tconcat (b) {\n\t\treturn this.or(b)\n\t}\n}\n\n// data Promise e a where\n// Future :: Promise e a\n// Fulfilled :: a -> Promise e a\n// Rejected :: Error e => e -> Promise e a\n// Never :: Promise e a\n\n// Future :: Promise e a\n// A promise whose value cannot be known until some future time\nexport class Future extends Core {\n\tconstructor () {\n\t\tsuper()\n\t\tthis.ref = void 0\n\t\tthis.action = void 0\n\t\tthis.length = 0\n\t}\n\n\t// then :: Promise e a -> (a -> b) -> Promise e b\n\t// then :: Promise e a -> () -> (e -> b) -> Promise e b\n\t// then :: Promise e a -> (a -> b) -> (e -> b) -> Promise e b\n\tthen (f, r) {\n\t\tconst n = this.near()\n\t\treturn n === this ? then(f, r, this, new Future()) : n.then(f, r)\n\t}\n\n\t// catch :: Promise e a -> (e -> b) -> Promise e b\n\tcatch (r) {\n\t\tconst n = this.near()\n\t\treturn n === this ? then(void 0, r, this, new Future()) : n.catch(r)\n\t}\n\n\t// map :: Promise e a -> (a -> b) -> Promise e b\n\tmap (f) {\n\t\tconst n = this.near()\n\t\treturn n === this ? map(f, this, new Future()) : n.map(f)\n\t}\n\n\tbimap (r, f) {\n\t\tconst n = this.near()\n\t\treturn n === this\n\t\t\t? bimap(r, f, this, new Future())\n\t\t\t: n.bimap(r, f)\n\t}\n\n\t// ap :: Promise e (a -> b) -> Promise e a -> Promise e b\n\tap (p) {\n\t\tconst n = this.near()\n\t\tconst pn = p.near()\n\t\treturn n === this ? this.chain(f => pn.map(f)) : n.ap(pn)\n\t}\n\n\t// chain :: Promise e a -> (a -> Promise e b) -> Promise e b\n\tchain (f) {\n\t\tconst n = this.near()\n\t\treturn n === this ? chain(f, this, new Future()) : n.chain(f)\n\t}\n\n\t// or :: Promise e a -> Promise e a -> Promise e a\n\tor (b) {\n\t\t/* eslint complexity:[2,5] */\n\t\tconst n = this.near()\n\t\tconst bn = b.near()\n\n\t\treturn isSettled(n) || isNever(bn) ? n\n\t\t\t: isSettled(bn) || isNever(n) ? bn\n\t\t\t: race([n, bn])\n\t}\n\n\t// toString :: Promise e a -> String\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\t// inspect :: Promise e a -> String\n\tinspect () {\n\t\tconst n = this.near()\n\t\treturn n === this ? 'Promise { pending }' : n.inspect()\n\t}\n\n\t// near :: Promise e a -> Promise e a\n\tnear () {\n\t\tif (!this._isResolved()) {\n\t\t\treturn this\n\t\t}\n\n\t\tthis.ref = this.ref.near()\n\t\treturn this.ref\n\t}\n\n\t// state :: Promise e a -> Int\n\tstate () {\n\t\treturn this._isResolved() ? this.ref.near().state() : PENDING\n\t}\n\n\t_isResolved () {\n\t\treturn this.ref !== void 0\n\t}\n\n\t_when (action) {\n\t\tthis._runAction(action)\n\t}\n\n\t_runAction (action) {\n\t\tif (this.action === void 0) {\n\t\t\tthis.action = action\n\t\t} else {\n\t\t\tthis[this.length++] = action\n\t\t}\n\t}\n\n\t_resolve (x) {\n\t\tthis._become(resolve(x))\n\t}\n\n\t_fulfill (x) {\n\t\tthis._become(new Fulfilled(x))\n\t}\n\n\t_reject (e) {\n\t\tif (this._isResolved()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.__become(new Rejected(e))\n\t}\n\n\t_become (p) {\n\t\tif (this._isResolved()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.__become(p)\n\t}\n\n\t__become (p) {\n\t\tthis.ref = p === this ? cycle() : p\n\n\t\tif (this.action === void 0) {\n\t\t\treturn\n\t\t}\n\n\t\ttaskQueue.add(this)\n\t}\n\n\trun () {\n\t\tconst p = this.ref.near()\n\t\tp._runAction(this.action)\n\t\tthis.action = void 0\n\n\t\tfor (let i = 0; i < this.length; ++i) {\n\t\t\tp._runAction(this[i])\n\t\t\tthis[i] = void 0\n\t\t}\n\t}\n}\n\n// Fulfilled :: a -> Promise e a\n// A promise whose value is already known\nclass Fulfilled extends Core {\n\tconstructor (x) {\n\t\tsuper()\n\t\tthis.value = x\n\t}\n\n\tthen (f) {\n\t\treturn typeof f === 'function' ? then(f, void 0, this, new Future()) : this\n\t}\n\n\tcatch () {\n\t\treturn this\n\t}\n\n\tmap (f) {\n\t\treturn map(f, this, new Future())\n\t}\n\n\tbimap (_, f) {\n\t\treturn this.map(f)\n\t}\n\n\tap (p) {\n\t\treturn p.map(this.value)\n\t}\n\n\tchain (f) {\n\t\treturn chain(f, this, new Future())\n\t}\n\n\tor () {\n\t\treturn this\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { fulfilled: ' + this.value + ' }'\n\t}\n\n\tstate () {\n\t\treturn FULFILLED\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when (action) {\n\t\ttaskQueue.add(new Continuation(action, this))\n\t}\n\n\t_runAction (action) {\n\t\taction.fulfilled(this)\n\t}\n}\n\n// Rejected :: Error e => e -> Promise e a\n// A promise whose value cannot be known due to some reason/error\nclass Rejected extends Core {\n\tconstructor (e) {\n\t\tsuper()\n\t\tthis.value = e\n\t\tthis._state = REJECTED\n\t\terrorHandler.track(this)\n\t}\n\n\tthen (_, r) {\n\t\treturn typeof r === 'function' ? this.catch(r) : this\n\t}\n\n\tcatch (r) {\n\t\treturn then(void 0, r, this, new Future())\n\t}\n\n\tmap () {\n\t\treturn this\n\t}\n\n\tbimap (r) {\n\t\treturn bimap(r, void 0, this, new Future())\n\t}\n\n\tap () {\n\t\treturn this\n\t}\n\n\tchain () {\n\t\treturn this\n\t}\n\n\tor () {\n\t\treturn this\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { rejected: ' + this.value + ' }'\n\t}\n\n\tstate () {\n\t\treturn this._state\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when (action) {\n\t\ttaskQueue.add(new Continuation(action, this))\n\t}\n\n\t_runAction (action) {\n\t\tif (action.rejected(this)) {\n\t\t\terrorHandler.untrack(this)\n\t\t}\n\t}\n}\n\n// Never :: Promise e a\n// A promise that waits forever for its value to be known\nclass Never extends Core {\n\tthen () {\n\t\treturn this\n\t}\n\n\tcatch () {\n\t\treturn this\n\t}\n\n\tmap () {\n\t\treturn this\n\t}\n\n\tbimap () {\n\t\treturn this\n\t}\n\n\tap () {\n\t\treturn this\n\t}\n\n\tchain () {\n\t\treturn this\n\t}\n\n\tor (b) {\n\t\treturn b\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { never }'\n\t}\n\n\tstate () {\n\t\treturn PENDING | NEVER\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when () {\n\t}\n\n\t_runAction () {\n\t}\n}\n\n// -------------------------------------------------------------\n// ## Creating promises\n// -------------------------------------------------------------\n\n// resolve :: Thenable e a -> Promise e a\n// resolve :: a -> Promise e a\nexport function resolve (x) {\n\treturn isPromise(x) ? x.near()\n\t\t: maybeThenable(x) ? refForMaybeThenable(fulfill, x)\n\t\t: new Fulfilled(x)\n}\n\n// reject :: e -> Promise e a\nexport function reject (e) {\n\treturn new Rejected(e)\n}\n\n// never :: Promise e a\nexport function never () {\n\treturn new Never()\n}\n\n// fulfill :: a -> Promise e a\nexport function fulfill (x) {\n\treturn new Fulfilled(x)\n}\n\n// future :: () -> { resolve: Resolve e a, promise: Promise e a }\n// type Resolve e a = a|Thenable e a -> ()\nexport function future () {\n\tconst promise = new Future()\n\treturn {resolve: x => promise._resolve(x), promise}\n}\n\n// -------------------------------------------------------------\n// ## Iterables\n// -------------------------------------------------------------\n\n// all :: Iterable (Promise e a) -> Promise e [a]\nexport function all (promises) {\n\tconst handler = new Merge(allHandler, resultsArray(promises))\n\treturn iterablePromise(handler, promises)\n}\n\nconst allHandler = {\n\tmerge (promise, args) {\n\t\tpromise._fulfill(args)\n\t}\n}\n\n// race :: Iterable (Promise e a) -> Promise e a\nexport function race (promises) {\n\treturn iterablePromise(new Race(never), promises)\n}\n\nfunction isIterable (x) {\n\treturn typeof x === 'object' && x !== null\n}\n\nexport function iterablePromise (handler, iterable) {\n\tif (!isIterable(iterable)) {\n\t\treturn reject(new TypeError('expected an iterable'))\n\t}\n\n\tconst p = new Future()\n\treturn resolveIterable(resolveMaybeThenable, handler, iterable, p)\n}\n\n// -------------------------------------------------------------\n// # Internals\n// -------------------------------------------------------------\n\n// isPromise :: * -> boolean\nfunction isPromise (x) {\n\treturn x instanceof Core\n}\n\nfunction resolveMaybeThenable (x) {\n\treturn isPromise(x) ? x.near() : refForMaybeThenable(fulfill, x)\n}\n\nfunction refForMaybeThenable (otherwise, x) {\n\ttry {\n\t\tconst then = x.then\n\t\treturn typeof then === 'function'\n\t\t\t? extractThenable(then, x)\n\t\t\t: otherwise(x)\n\t} catch (e) {\n\t\treturn new Rejected(e)\n\t}\n}\n\n// WARNING: Naming the first arg \"then\" triggers babel compilation bug\nfunction extractThenable (thn, thenable) {\n\tconst p = new Future()\n\n\ttry {\n\t\tthn.call(thenable, x => p._resolve(x), e => p._reject(e))\n\t} catch (e) {\n\t\tp._reject(e)\n\t}\n\n\treturn p.near()\n}\n\nfunction cycle () {\n\treturn new Rejected(new TypeError('resolution cycle'))\n}\n\nclass Continuation {\n\tconstructor (action, promise) {\n\t\tthis.action = action\n\t\tthis.promise = promise\n\t}\n\n\trun () {\n\t\tthis.promise._runAction(this.action)\n\t}\n}\n","import Action from './Action'\n\nexport default function (ms, p, promise) {\n\tp._runAction(new Delay(ms, promise))\n\treturn promise\n}\n\nclass Delay extends Action {\n\tconstructor (time, promise) {\n\t\tsuper(promise)\n\t\tthis.time = time\n\t}\n\n\tfulfilled (p) {\n\t\t/* global setTimeout */\n\t\tsetTimeout(become, this.time, p, this.promise)\n\t}\n}\n\nfunction become (p, promise) {\n\tpromise._become(p)\n}\n","export default class TimeoutError extends Error {\n\tconstructor (message) {\n\t\tsuper()\n\t\tthis.message = message\n\t\tthis.name = TimeoutError.name\n\t\t/* istanbul ignore else */\n\t\tif (typeof Error.captureStackTrace === 'function') {\n\t\t\tError.captureStackTrace(this, TimeoutError)\n\t\t}\n\t}\n}\n","import Action from './Action'\nimport TimeoutError from './TimeoutError'\n\nexport default function (ms, p, promise) {\n\tconst timer = setTimeout(rejectOnTimeout, ms, promise)\n\tp._runAction(new Timeout(timer, promise))\n\treturn promise\n}\n\nclass Timeout extends Action {\n\tconstructor (timer, promise) {\n\t\tsuper(promise)\n\t\tthis.timer = timer\n\t}\n\n\tfulfilled (p) {\n\t\tclearTimeout(this.timer)\n\t\tthis.promise._become(p)\n\t}\n\n\trejected (p) {\n\t\tclearTimeout(this.timer)\n\t\treturn super.rejected(p)\n\t}\n}\n\nfunction rejectOnTimeout (promise) {\n\tpromise._reject(new TimeoutError('promise timeout'))\n}\n","import { silenceError } from './inspect.js'\n\nexport default class Any {\n\tconstructor () {\n\t\tthis.pending = 0\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tpromise._fulfill(x)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tpromise._become(p)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\tsilenceError(p)\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tpromise._reject(new RangeError('No fulfilled promises in input'))\n\t\t}\n\t}\n}\n","import { silenceError } from './inspect'\n\nexport default class Settle {\n\tconstructor (resolve, results) {\n\t\tthis.pending = 0\n\t\tthis.results = results\n\t\tthis.resolve = resolve\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tthis.settleAt(this.resolve(x), i, promise)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tthis.settleAt(p, i, promise)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\tsilenceError(p)\n\t\tthis.settleAt(p, i, promise)\n\t}\n\n\tsettleAt (p, i, promise) {\n\t\tthis.results[i] = p\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tpromise._fulfill(this.results)\n\t\t}\n\t}\n}\n","export default function runPromise (f, thisArg, args, promise) {\n\t/* eslint complexity:[2,5] */\n\tfunction resolve (x) {\n\t\tpromise._resolve(x)\n\t}\n\n\tfunction reject (e) {\n\t\tpromise._reject(e)\n\t}\n\n\tswitch (args.length) {\n\t\tcase 0:\n\t\t\tf.call(thisArg, resolve, reject)\n\t\t\tbreak\n\t\tcase 1:\n\t\t\tf.call(thisArg, args[0], resolve, reject)\n\t\t\tbreak\n\t\tcase 2:\n\t\t\tf.call(thisArg, args[0], args[1], resolve, reject)\n\t\t\tbreak\n\t\tcase 3:\n\t\t\tf.call(thisArg, args[0], args[1], args[2], resolve, reject)\n\t\t\tbreak\n\t\tdefault:\n\t\t\targs.push(resolve, reject)\n\t\t\tf.apply(thisArg, args)\n\t}\n\n\treturn promise\n}\n","export default function runNode (f, thisArg, args, promise) {\n\t/* eslint complexity:[2,5] */\n\tfunction settleNode (e, x) {\n\t\tif (e) {\n\t\t\tpromise._reject(e)\n\t\t} else {\n\t\t\tpromise._fulfill(x)\n\t\t}\n\t}\n\n\tswitch (args.length) {\n\t\tcase 0:\n\t\t\tf.call(thisArg, settleNode)\n\t\t\tbreak\n\t\tcase 1:\n\t\t\tf.call(thisArg, args[0], settleNode)\n\t\t\tbreak\n\t\tcase 2:\n\t\t\tf.call(thisArg, args[0], args[1], settleNode)\n\t\t\tbreak\n\t\tcase 3:\n\t\t\tf.call(thisArg, args[0], args[1], args[2], settleNode)\n\t\t\tbreak\n\t\tdefault:\n\t\t\targs.push(settleNode)\n\t\t\tf.apply(thisArg, args)\n\t}\n\n\treturn promise\n}\n","import Action from './Action'\n\nexport default function (resolve, iterator, promise) {\n\tnew Coroutine(resolve, iterator, promise).run()\n\treturn promise\n}\n\nclass Coroutine extends Action {\n\tconstructor (resolve, iterator, promise) {\n\t\tsuper(promise)\n\t\tthis.resolve = resolve\n\t\tthis.generator = iterator\n\t}\n\n\trun () {\n\t\tthis.tryStep(this.generator.next, void 0)\n\t}\n\n\ttryStep (resume, x) {\n\t\tlet result\n\t\t// test if `resume` (and only it) throws\n\t\ttry {\n\t\t\tresult = resume.call(this.generator, x)\n\t\t} catch (e) {\n\t\t\tthis.promise._reject(e)\n\t\t\treturn\n\t\t} // else\n\t\tthis.handle(result)\n\t}\n\n\thandle (result) {\n\t\tif (result.done) {\n\t\t\treturn this.promise._resolve(result.value)\n\t\t}\n\n\t\tthis.resolve(result.value)._when(this)\n\t}\n\n\tfulfilled (ref) {\n\t\tthis.tryStep(this.generator.next, ref.value)\n\t}\n\n\trejected (ref) {\n\t\tthis.tryStep(this.generator.throw, ref.value)\n\t\treturn true\n\t}\n}\n","import { isFulfilled, isRejected, isSettled, isPending, isNever, getValue, getReason } from './inspect'\nimport { Future, resolve, reject, future, never, fulfill, all, race, iterablePromise, taskQueue } from './Promise'\n\nimport _delay from './delay'\nimport _timeout from './timeout'\n\nimport Any from './Any'\nimport Merge from './Merge'\nimport Settle from './Settle'\nimport { resultsArray } from './iterable'\n\nimport _runPromise from './runPromise'\nimport _runNode from './node'\nimport _runCoroutine from './coroutine.js'\n\n// -------------------------------------------------------------\n// ## Core promise methods\n// -------------------------------------------------------------\n\nexport {\n\tresolve, reject, future, never, fulfill, all, race,\n\tisFulfilled, isRejected, isSettled, isPending, isNever,\n\tgetValue, getReason\n}\n\n// -------------------------------------------------------------\n// ## Coroutine\n// -------------------------------------------------------------\n\n// coroutine :: Generator e a -> (...* -> Promise e a)\n// Make a coroutine from a promise-yielding generator\nexport function coroutine (generator) {\n\treturn function coroutinified (...args) {\n\t\treturn runGenerator(generator, this, args)\n\t}\n}\n\nfunction runGenerator (generator, thisArg, args) {\n\tconst iterator = generator.apply(thisArg, args)\n\treturn _runCoroutine(resolve, iterator, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Node-style async\n// -------------------------------------------------------------\n\n// type Nodeback e a = e -> a -> ()\n// type NodeApi e a = ...* -> Nodeback e a -> ()\n\n// fromNode :: NodeApi e a -> (...args -> Promise e a)\n// Turn a Node API into a promise API\nexport function fromNode (f) {\n\treturn function promisified (...args) {\n\t\treturn runResolver(_runNode, f, this, args, new Future())\n\t}\n}\n\n// runNode :: NodeApi e a -> ...* -> Promise e a\n// Run a Node API, returning a promise for the outcome\nexport function runNode (f, ...args) {\n\treturn runResolver(_runNode, f, this, args, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Make a promise\n// -------------------------------------------------------------\n\n// type Resolve e a = a|Thenable e a -> ()\n// type Reject e = e -> ()\n// type Producer e a = (...* -> Resolve e a -> Reject e -> ())\n// runPromise :: Producer e a -> ...* -> Promise e a\nexport function runPromise (f, ...args) {\n\treturn runResolver(_runPromise, f, this, args, new Future())\n}\n\nfunction runResolver (run, f, thisArg, args, p) {\n\tcheckFunction(f)\n\n\ttry {\n\t\trun(f, thisArg, args, p)\n\t} catch (e) {\n\t\tp._reject(e)\n\t}\n\n\treturn p\n}\n\n// -------------------------------------------------------------\n// ## Time\n// -------------------------------------------------------------\n\n// delay :: number -> Promise e a -> Promise e a\nexport function delay (ms, x) {\n\t/* eslint complexity:[2,4] */\n\tconst p = resolve(x)\n\treturn ms <= 0 || isRejected(p) || isNever(p) ? p\n\t\t: _delay(ms, p, new Future())\n}\n\n// timeout :: number -> Promise e a -> Promise (e|TimeoutError) a\nexport function timeout (ms, x) {\n\tconst p = resolve(x)\n\treturn isSettled(p) ? p : _timeout(ms, p, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Iterables\n// -------------------------------------------------------------\n\n// any :: Iterable (Promise e a) -> Promise e a\nexport function any (promises) {\n\treturn iterablePromise(new Any(), promises)\n}\n\n// settle :: Iterable (Promise e a) -> Promise e [Promise e a]\nexport function settle (promises) {\n\tconst handler = new Settle(resolve, resultsArray(promises))\n\treturn iterablePromise(handler, promises)\n}\n\n// -------------------------------------------------------------\n// ## Lifting\n// -------------------------------------------------------------\n\n// merge :: (...* -> b) -> ...Promise e a -> Promise e b\nexport function merge (f, ...args) {\n\treturn runMerge(f, this, args)\n}\n\nfunction runMerge (f, thisArg, args) {\n\tconst handler = new Merge(new MergeHandler(f, thisArg), resultsArray(args))\n\treturn iterablePromise(handler, args)\n}\n\nclass MergeHandler {\n\tconstructor (f, c) {\n\t\tthis.f = f\n\t\tthis.c = c\n\t\tthis.promise = void 0\n\t\tthis.args = void 0\n\t}\n\n\tmerge (promise, args) {\n\t\tthis.promise = promise\n\t\tthis.args = args\n\t\ttaskQueue.add(this)\n\t}\n\n\trun () {\n\t\ttry {\n\t\t\tthis.promise._resolve(this.f.apply(this.c, this.args))\n\t\t} catch (e) {\n\t\t\tthis.promise._reject(e)\n\t\t}\n\t}\n}\n\nfunction checkFunction (f) {\n\tif (typeof f !== 'function') {\n\t\tthrow new TypeError('must provide a resolver function')\n\t}\n}\n\n// -------------------------------------------------------------\n// ## ES6 Promise polyfill\n// -------------------------------------------------------------\n\nconst NOARGS = []\n\n// type Resolve a = a -> ()\n// type Reject e = e -> ()\n// Promise :: (Resolve a -> Reject e) -> Promise e a\nclass CreedPromise extends Future {\n\tconstructor (f) {\n\t\tsuper()\n\t\trunResolver(_runPromise, f, void 0, NOARGS, this)\n\t}\n}\n\nCreedPromise.resolve = resolve\nCreedPromise.reject = reject\nCreedPromise.all = all\nCreedPromise.race = race\n\nexport function shim () {\n\t/* global self */\n\tconst orig = typeof Promise === 'function' && Promise\n\n\t/* istanbul ignore if */\n\tif (typeof self !== 'undefined') {\n\t\tself.Promise = CreedPromise\n\t\t/* istanbul ignore else */\n\t} else if (typeof global !== 'undefined') {\n\t\tglobal.Promise = CreedPromise\n\t}\n\n\treturn orig\n}\n\nexport { CreedPromise as Promise }\n\n/* istanbul ignore if */\nif (typeof Promise !== 'function') {\n\tshim()\n}\n"],"names":["const","let","this","UNHANDLED_REJECTION","super","fl","then","runPromise","runNode","_runNode","_runPromise"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"creed.es.js","sources":["../src/state.js","../src/inspect.js","../src/env.js","../src/async.js","../src/TaskQueue.js","../src/trace.js","../src/ErrorHandler.js","../src/emitError.js","../src/maybeThenable.js","../src/Action.js","../src/tryCall.js","../src/then.js","../src/map.js","../src/bimap.js","../src/chain.js","../src/Race.js","../src/Merge.js","../src/iterable.js","../node_modules/fantasy-land/index.js","../src/Promise.js","../src/delay.js","../src/TimeoutError.js","../src/timeout.js","../src/Any.js","../src/Settle.js","../src/runPromise.js","../src/node.js","../src/coroutine.js","../src/main.js"],"sourcesContent":["/* eslint no-multi-spaces: 0 */\nexport const PENDING = 1 << 0\nexport const FULFILLED = 1 << 1\nexport const REJECTED = 1 << 2\nexport const SETTLED = FULFILLED | REJECTED\nexport const NEVER = 1 << 3\n\nexport const HANDLED = 1 << 4\n","import { PENDING, FULFILLED, REJECTED, SETTLED, NEVER, HANDLED } from './state'\n\nexport function isPending (p) {\n\treturn (p.state() & PENDING) > 0\n}\n\nexport function isFulfilled (p) {\n\treturn (p.state() & FULFILLED) > 0\n}\n\nexport function isRejected (p) {\n\treturn (p.state() & REJECTED) > 0\n}\n\nexport function isSettled (p) {\n\treturn (p.state() & SETTLED) > 0\n}\n\nexport function isNever (p) {\n\treturn (p.state() & NEVER) > 0\n}\n\nexport function isHandled (p) {\n\treturn (p.state() & HANDLED) > 0\n}\n\nexport function getValue (p) {\n\tconst n = p.near()\n\tif (!isFulfilled(n)) {\n\t\tthrow new TypeError('getValue called on ' + p)\n\t}\n\n\treturn n.value\n}\n\nexport function getReason (p) {\n\tconst n = p.near()\n\tif (!isRejected(n)) {\n\t\tthrow new TypeError('getReason called on ' + p)\n\t}\n\n\tsilenceError(n)\n\treturn n.value\n}\n\nexport function silenceError (p) {\n\tp._runAction(silencer)\n}\n\n// implements Action\nconst silencer = {\n\tfulfilled () {},\n\trejected (p) {\n\t\tp._state |= HANDLED\n\t}\n}\n","/* global process,MutationObserver,WebKitMutationObserver */\n\nconst isNode = typeof process !== 'undefined' &&\n Object.prototype.toString.call(process) === '[object process]'\n\n/* istanbul ignore next */\nconst MutationObs = (typeof MutationObserver === 'function' && MutationObserver) ||\n (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver)\n\nconst getenv = name => isNode && process.env[name]\n\nconst isDebug = getenv('CREED_DEBUG') ||\n getenv('NODE_ENV') === 'development' ||\n getenv('NODE_ENV') === 'test'\n\nexport { isNode, MutationObs, isDebug }\n","import { isNode, MutationObs } from './env'\n\n/* global process,document */\n\nexport default function (f) {\n\treturn isNode ? createNodeScheduler(f) /* istanbul ignore next */\n\t\t: MutationObs ? createBrowserScheduler(f)\n\t\t: createFallbackScheduler(f)\n}\n\n/* istanbul ignore next */\nfunction createFallbackScheduler (f) {\n\treturn () => setTimeout(f, 0)\n}\n\nfunction createNodeScheduler (f) {\n\treturn () => process.nextTick(f)\n}\n\n/* istanbul ignore next */\nfunction createBrowserScheduler (f) {\n\tconst node = document.createTextNode('')\n\tnew MutationObs(f).observe(node, { characterData: true })\n\n\tlet i = 0\n\treturn () => { node.data = (i ^= 1) }\n}\n","import makeAsync from './async'\n\nexport default class TaskQueue {\n\tconstructor () {\n\t\tthis.tasks = new Array(2 << 15)\n\t\tthis.length = 0\n\t\tthis.drain = makeAsync(() => this._drain())\n\t}\n\n\tadd (task) {\n\t\tif (this.length === 0) {\n\t\t\tthis.drain()\n\t\t}\n\n\t\tthis.tasks[this.length++] = task\n\t}\n\n\t_drain () {\n\t\tconst q = this.tasks\n\t\tfor (let i = 0; i < this.length; ++i) {\n\t\t\tq[i].run()\n\t\t\tq[i] = void 0\n\t\t}\n\t\tthis.length = 0\n\t}\n}\n","const noop = () => {}\n\n// WARNING: shared mutable notion of \"current context\"\nlet _currentContext\nlet _createContext = noop\n\n// Get the current context\nexport const peekContext = () => _currentContext\n\n// Append a new context to the current, and set the current context\n// to the newly appended one\nexport const pushContext = (at, tag) =>\n\t_createContext(_currentContext, at, tag)\n\n// Set the current context to the provided one, returning the\n// previously current context (which makes it easy to swap back\n// to it)\nexport const swapContext = context => {\n\tconst previousContext = _currentContext\n\t_currentContext = context\n\treturn previousContext\n}\n\n// Enable context tracing. Must provide:\n// createContext :: c -> Function -> String -> c\n// Given the current context, and a function and string tag representing a new context,\n// return a new current context\n// initialContext :: c\n// An initial current context\nexport const traceAsync = (createContext, initialContext) => {\n\t_createContext = createContext\n\t_currentContext = initialContext\n}\n\n// Enable default context tracing\nexport const enableAsyncTraces = () =>\n\ttraceAsync(createContext, undefined)\n\n// Disable context tracing\nexport const disableAsyncTraces = () =>\n traceAsync(noop, undefined)\n\n// ------------------------------------------------------\n// Default context tracing\n\nexport const createContext = (currentContext, at, tag) =>\n new Context(currentContext, tag || at.name, at)\n\nexport const captureStackTrace = Error.captureStackTrace || noop\n\nexport class Context {\n\tconstructor (next, tag, at) {\n\t\tthis.next = next\n\t\tthis.tag = tag\n\t\tcaptureStackTrace(this, at)\n\t}\n\n\ttoString () {\n\t\treturn this.tag ? ` from ${this.tag}:` : ' from previous context:'\n\t}\n}\n\n// ------------------------------------------------------\n// Default context formatting\n\n// If e is an Error, attach an async trace for the provided context.\n// Otherwise, do nothing.\nexport const attachTrace = (e, context) =>\n context != null && e instanceof Error ? formatTrace(e, context) : e\n\n// Attach an async trace to e for the provided context\nfunction formatTrace (e, context) {\n\tif (!e._creedOriginalStack) {\n\t\te._creedOriginalStack = e.stack\n\t\te.stack = formatContext(elideTrace(e.stack), context)\n\t}\n\treturn e\n}\n\n// Fold context list into a newline-separated, combined async trace\nexport function formatContext (trace, context) {\n\tif (context == null) {\n\t\treturn trace\n\t}\n\tconst s = elideTrace(context.stack)\n\treturn formatContext(s.indexOf(' at ') < 0 ? trace : (trace + '\\n' + s), context.next)\n}\n\nexport const elideTraceRx =\n /\\s*at\\s.*(creed[\\\\/](src|dist)[\\\\/]|internal[\\\\/]process[\\\\/]|\\((timers|module)\\.js).+:\\d.*/g\n\n// Remove internal stack frames\nexport const elideTrace = stack =>\n\tstack.replace(elideTraceRx, '')\n","import { silenceError, isHandled } from './inspect'\nimport { attachTrace } from './trace'\n\nconst UNHANDLED_REJECTION = 'unhandledRejection'\nconst HANDLED_REJECTION = 'rejectionHandled'\n\nexport default class ErrorHandler {\n\tconstructor (emitEvent, reportError) {\n\t\tthis.rejections = []\n\t\tthis.emit = emitEvent\n\t\tthis.reportError = reportError\n\t}\n\n\ttrack (rejected) {\n\t\tconst e = attachTrace(rejected.value, rejected.context)\n\n\t\tif (!this.emit(UNHANDLED_REJECTION, rejected, e)) {\n\t\t\t/* istanbul ignore else */\n\t\t\tif (this.rejections.length === 0) {\n\t\t\t\tsetTimeout(reportErrors, 1, this.reportError, this.rejections)\n\t\t\t}\n\t\t\tthis.rejections.push(rejected)\n\t\t}\n\t}\n\n\tuntrack (rejected) {\n\t\tsilenceError(rejected)\n\t\tthis.emit(HANDLED_REJECTION, rejected)\n\t}\n}\n\nfunction reportErrors (report, rejections) {\n\ttry {\n\t\treportAll(rejections, report)\n\t} finally {\n\t\trejections.length = 0\n\t}\n}\n\nfunction reportAll (rejections, report) {\n\tfor (let i = 0; i < rejections.length; ++i) {\n\t\tconst rejected = rejections[i]\n\t\t/* istanbul ignore else */\n\t\tif (!isHandled(rejected)) {\n\t\t\treport(rejected)\n\t\t}\n\t}\n}\n","import { isNode } from './env'\n\nconst UNHANDLED_REJECTION = 'unhandledRejection'\n\nexport default function () {\n\t/* global process, self, CustomEvent */\n\t// istanbul ignore else */\n\tif (isNode && typeof process.emit === 'function') {\n\t\t// Returning falsy here means to call the default reportRejection API.\n\t\t// This is safe even in browserify since process.emit always returns\n\t\t// falsy in browserify:\n\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\treturn function (type, error) {\n\t\t\treturn type === UNHANDLED_REJECTION\n\t\t\t\t? process.emit(type, error.value, error)\n\t\t\t\t: process.emit(type, error)\n\t\t}\n\t} else if (typeof self !== 'undefined' && typeof CustomEvent === 'function') {\n\t\treturn (function (noop, self, CustomEvent) {\n\t\t\tvar hasCustomEvent\n\t\t\ttry {\n\t\t\t\thasCustomEvent = new CustomEvent(UNHANDLED_REJECTION) instanceof CustomEvent\n\t\t\t} catch (e) {\n\t\t\t\thasCustomEvent = false\n\t\t\t}\n\n\t\t\treturn !hasCustomEvent ? noop : function (type, error) {\n\t\t\t\tconst ev = new CustomEvent(type, {\n\t\t\t\t\tdetail: {\n\t\t\t\t\t\treason: error.value,\n\t\t\t\t\t\tpromise: error\n\t\t\t\t\t},\n\t\t\t\t\tbubbles: false,\n\t\t\t\t\tcancelable: true\n\t\t\t\t})\n\n\t\t\t\treturn !self.dispatchEvent(ev)\n\t\t\t}\n\t\t}(noop, self, CustomEvent))\n\t}\n\n\t// istanbul ignore next */\n\treturn noop\n}\n\n// istanbul ignore next */\nfunction noop () {}\n","// maybeThenable :: * -> boolean\nexport default function maybeThenable (x) {\n\treturn (typeof x === 'object' || typeof x === 'function') && x !== null\n}\n","import { pushContext } from './trace'\n\nexport default class Action {\n\tconstructor (promise) {\n\t\tthis.promise = promise\n\t\tthis.context = pushContext(this.constructor)\n\t}\n\n\t// default onFulfilled action\n\t/* istanbul ignore next */\n\tfulfilled (p) {\n\t\tthis.promise._become(p)\n\t}\n\n\t// default onRejected action\n\trejected (p) {\n\t\tthis.promise._become(p)\n\t\treturn false\n\t}\n}\n","export default function tryCall (f, x, handle, promise) {\n\tlet result\n\t// test if `f` (and only it) throws\n\ttry {\n\t\tresult = f(x)\n\t} catch (e) {\n\t\tpromise._reject(e)\n\t\treturn\n\t} // else\n\thandle(promise, result)\n}\n","import Action from './Action'\nimport tryCall from './tryCall'\n\nexport default function then (f, r, p, promise) {\n\tp._when(new Then(f, r, promise))\n\treturn promise\n}\n\nclass Then extends Action {\n\tconstructor (f, r, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t\tthis.r = r\n\t}\n\n\tfulfilled (p) {\n\t\tthis.runThen(this.f, p)\n\t}\n\n\trejected (p) {\n\t\treturn this.runThen(this.r, p)\n\t}\n\n\trunThen (f, p) {\n\t\tif (typeof f !== 'function') {\n\t\t\tthis.promise._become(p)\n\t\t\treturn false\n\t\t}\n\t\ttryCall(f, p.value, handleThen, this.promise)\n\t\treturn true\n\t}\n}\n\nfunction handleThen (promise, result) {\n\tpromise._resolve(result)\n}\n\n","import Action from './Action'\nimport tryCall from './tryCall'\n\nexport default function (f, p, promise) {\n\tp._when(new Map(f, promise))\n\treturn promise\n}\n\nexport class Map extends Action {\n\tconstructor (f, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t}\n\n\tfulfilled (p) {\n\t\ttryCall(this.f, p.value, handleMap, this.promise)\n\t}\n}\n\nfunction handleMap (promise, result) {\n\tpromise._fulfill(result)\n}\n\n","import { Map } from './map'\nimport tryCall from './tryCall'\n\nexport default function (r, f, p, promise) {\n\tp._when(new Bimap(r, f, promise))\n\treturn promise\n}\n\nclass Bimap extends Map {\n\tconstructor (r, f, promise) {\n\t\tsuper(f, promise)\n\t\tthis.r = r\n\t}\n\n\trejected (p) {\n\t\ttryCall(this.r, p.value, handleMapRejected, this.promise)\n\t}\n}\n\nfunction handleMapRejected (promise, result) {\n\tpromise._reject(result)\n}\n","import Action from './Action'\nimport tryCall from './tryCall'\nimport maybeThenable from './maybeThenable'\n\nexport default function (f, p, promise) {\n\tp._when(new Chain(f, promise))\n\treturn promise\n}\n\nclass Chain extends Action {\n\tconstructor (f, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t}\n\n\tfulfilled (p) {\n\t\ttryCall(this.f, p.value, handleChain, this.promise)\n\t}\n}\n\nfunction handleChain (promise, result) {\n\tif (!(maybeThenable(result) && typeof result.then === 'function')) {\n\t\tpromise._reject(new TypeError('f must return a promise'))\n\t}\n\n\tpromise._resolve(result)\n}\n","import { silenceError } from './inspect'\n\nexport default class Race {\n\tconstructor (never) {\n\t\tthis.never = never\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tpromise._fulfill(x)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tpromise._become(p)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\t// In the case where the result promise has been resolved\n\t\t// need to silence all subsequently seen rejections\n\t\tpromise._isResolved() ? silenceError(p) : promise._become(p)\n\t}\n\n\tcomplete (total, promise) {\n\t\tif (total === 0) {\n\t\t\tpromise._become(this.never())\n\t\t}\n\t}\n}\n","import { silenceError } from './inspect'\n\nexport default class Merge {\n\tconstructor (mergeHandler, results) {\n\t\tthis.pending = 0\n\t\tthis.results = results\n\t\tthis.mergeHandler = mergeHandler\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tthis.results[i] = x\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tthis.valueAt(p.value, i, promise)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\t// In the case where the result promise has been resolved\n\t\t// need to silence all subsequently seen rejections\n\t\tpromise._isResolved() ? silenceError(p) : promise._become(p)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tthis.mergeHandler.merge(promise, this.results)\n\t\t}\n\t}\n}\n","import { isFulfilled, isRejected, silenceError } from './inspect'\nimport Action from './Action'\nimport maybeThenable from './maybeThenable'\n\nexport function resultsArray (iterable) {\n\treturn Array.isArray(iterable) ? new Array(iterable.length) : []\n}\n\nexport function resolveIterable (resolve, handler, promises, promise) {\n\tconst run = Array.isArray(promises) ? runArray : runIterable\n\ttry {\n\t\trun(resolve, handler, promises, promise)\n\t} catch (e) {\n\t\tpromise._reject(e)\n\t}\n\treturn promise.near()\n}\n\nfunction runArray (resolve, handler, promises, promise) {\n\tlet i = 0\n\n\tfor (; i < promises.length; ++i) {\n\t\thandleItem(resolve, handler, promises[i], i, promise)\n\t}\n\n\thandler.complete(i, promise)\n}\n\nfunction runIterable (resolve, handler, promises, promise) {\n\tlet i = 0\n\tconst iter = promises[Symbol.iterator]()\n\n\twhile (true) {\n\t\tconst step = iter.next()\n\t\tif (step.done) {\n\t\t\tbreak\n\t\t}\n\t\thandleItem(resolve, handler, step.value, i++, promise)\n\t}\n\n\thandler.complete(i, promise)\n}\n\nfunction handleItem (resolve, handler, x, i, promise) {\n\t/* eslint complexity:[1,6] */\n\tif (!maybeThenable(x)) {\n\t\thandler.valueAt(x, i, promise)\n\t\treturn\n\t}\n\n\tconst p = resolve(x)\n\n\tif (promise._isResolved()) {\n\t\tif (!isFulfilled(p)) {\n\t\t\tsilenceError(p)\n\t\t}\n\t} else if (isFulfilled(p)) {\n\t\thandler.fulfillAt(p, i, promise)\n\t} else if (isRejected(p)) {\n\t\thandler.rejectAt(p, i, promise)\n\t} else {\n\t\tp._runAction(new AtIndex(handler, i, promise))\n\t}\n}\n\nclass AtIndex extends Action {\n\tconstructor (handler, i, promise) {\n\t\tsuper(promise)\n\t\tthis.i = i\n\t\tthis.handler = handler\n\t}\n\n\tfulfilled (p) {\n\t\tthis.handler.fulfillAt(p, this.i, this.promise)\n\t}\n\n\trejected (p) {\n\t\treturn this.handler.rejectAt(p, this.i, this.promise)\n\t}\n}\n","(function() {\n\n 'use strict';\n\n /* eslint comma-dangle: [\"off\"], no-var: [\"off\"], strict: [\"error\", \"function\"] */\n /* global self */\n\n var mapping = {\n equals: 'fantasy-land/equals',\n concat: 'fantasy-land/concat',\n empty: 'fantasy-land/empty',\n map: 'fantasy-land/map',\n ap: 'fantasy-land/ap',\n of: 'fantasy-land/of',\n alt: 'fantasy-land/alt',\n zero: 'fantasy-land/zero',\n reduce: 'fantasy-land/reduce',\n traverse: 'fantasy-land/traverse',\n chain: 'fantasy-land/chain',\n chainRec: 'fantasy-land/chainRec',\n extend: 'fantasy-land/extend',\n extract: 'fantasy-land/extract',\n bimap: 'fantasy-land/bimap',\n promap: 'fantasy-land/promap'\n };\n\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = mapping;\n } else {\n self.FantasyLand = mapping;\n }\n\n}());\n","import TaskQueue from './TaskQueue'\nimport ErrorHandler from './ErrorHandler'\nimport makeEmitError from './emitError'\nimport maybeThenable from './maybeThenable'\nimport { PENDING, FULFILLED, REJECTED, NEVER } from './state'\nimport { isNever, isSettled } from './inspect'\n\nimport then from './then'\nimport map from './map'\nimport bimap from './bimap'\nimport chain from './chain'\n\nimport Race from './Race'\nimport Merge from './Merge'\nimport { resolveIterable, resultsArray } from './iterable'\n\nimport { swapContext, peekContext } from './trace'\n\nimport fl from 'fantasy-land'\n\nconst taskQueue = new TaskQueue()\nexport { taskQueue }\n\n/* istanbul ignore next */\nconst handleError = ({ value }) => { throw value }\n\n/* istanbul ignore next */\nconst errorHandler = new ErrorHandler(makeEmitError(), handleError)\n\n// -------------------------------------------------------------\n// ## Types\n// -------------------------------------------------------------\n\n// Internal base type, provides fantasy-land namespace\n// and type representative\nclass Core {\n\tconstructor () {\n\t\tthis.context = peekContext()\n\t}\n\t// empty :: Promise e a\n\tstatic empty () {\n\t\treturn never()\n\t}\n\n\t// of :: a -> Promise e a\n\tstatic of (x) {\n\t\treturn fulfill(x)\n\t}\n\n\tstatic [fl.empty] () {\n\t\treturn never()\n\t}\n\n\tstatic [fl.of] (x) {\n\t\treturn fulfill(x)\n\t}\n\n\t[fl.map] (f) {\n\t\treturn this.map(f)\n\t}\n\n\t[fl.bimap] (r, f) {\n\t\treturn this.bimap(r, f)\n\t}\n\n\t[fl.ap] (pf) {\n\t\treturn pf.ap(this)\n\t}\n\n\t[fl.chain] (f) {\n\t\treturn this.chain(f)\n\t}\n\n\t[fl.concat] (p) {\n\t\treturn this.concat(p)\n\t}\n\n\t[fl.alt] (p) {\n\t\treturn this.or(p)\n\t}\n\n\tstatic [fl.zero] () {\n\t\treturn never()\n\t}\n\n\t// @deprecated The name concat is deprecated, use or() instead.\n\tconcat (b) {\n\t\treturn this.or(b)\n\t}\n}\n\n// data Promise e a where\n// Future :: Promise e a\n// Fulfilled :: a -> Promise e a\n// Rejected :: Error e => e -> Promise e a\n// Never :: Promise e a\n\n// Future :: Promise e a\n// A promise whose value cannot be known until some future time\nexport class Future extends Core {\n\tconstructor () {\n\t\tsuper()\n\t\tthis.ref = void 0\n\t\tthis.action = void 0\n\t\tthis.length = 0\n\t}\n\n\t// then :: Promise e a -> (a -> b) -> Promise e b\n\t// then :: Promise e a -> () -> (e -> b) -> Promise e b\n\t// then :: Promise e a -> (a -> b) -> (e -> b) -> Promise e b\n\tthen (f, r) {\n\t\tconst n = this.near()\n\t\treturn n === this ? then(f, r, this, new Future()) : n.then(f, r)\n\t}\n\n\t// catch :: Promise e a -> (e -> b) -> Promise e b\n\tcatch (r) {\n\t\tconst n = this.near()\n\t\treturn n === this ? then(void 0, r, this, new Future()) : n.catch(r)\n\t}\n\n\t// map :: Promise e a -> (a -> b) -> Promise e b\n\tmap (f) {\n\t\tconst n = this.near()\n\t\treturn n === this ? map(f, this, new Future()) : n.map(f)\n\t}\n\n\tbimap (r, f) {\n\t\tconst n = this.near()\n\t\treturn n === this\n\t\t\t? bimap(r, f, this, new Future())\n\t\t\t: n.bimap(r, f)\n\t}\n\n\t// ap :: Promise e (a -> b) -> Promise e a -> Promise e b\n\tap (p) {\n\t\tconst n = this.near()\n\t\tconst pn = p.near()\n\t\treturn n === this ? this.chain(f => pn.map(f)) : n.ap(pn)\n\t}\n\n\t// chain :: Promise e a -> (a -> Promise e b) -> Promise e b\n\tchain (f) {\n\t\tconst n = this.near()\n\t\treturn n === this ? chain(f, this, new Future()) : n.chain(f)\n\t}\n\n\t// or :: Promise e a -> Promise e a -> Promise e a\n\tor (b) {\n\t\t/* eslint complexity:[2,5] */\n\t\tconst n = this.near()\n\t\tconst bn = b.near()\n\n\t\treturn isSettled(n) || isNever(bn) ? n\n\t\t\t: isSettled(bn) || isNever(n) ? bn\n\t\t\t: race([n, bn])\n\t}\n\n\t// toString :: Promise e a -> String\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\t// inspect :: Promise e a -> String\n\tinspect () {\n\t\tconst n = this.near()\n\t\treturn n === this ? 'Promise { pending }' : n.inspect()\n\t}\n\n\t// near :: Promise e a -> Promise e a\n\tnear () {\n\t\tif (!this._isResolved()) {\n\t\t\treturn this\n\t\t}\n\n\t\tthis.ref = this.ref.near()\n\t\treturn this.ref\n\t}\n\n\t// state :: Promise e a -> Int\n\tstate () {\n\t\treturn this._isResolved() ? this.ref.near().state() : PENDING\n\t}\n\n\t_isResolved () {\n\t\treturn this.ref !== void 0\n\t}\n\n\t_when (action) {\n\t\tthis._runAction(action)\n\t}\n\n\t_runAction (action) {\n\t\tif (this.action === void 0) {\n\t\t\tthis.action = action\n\t\t} else {\n\t\t\tthis[this.length++] = action\n\t\t}\n\t}\n\n\t_resolve (x) {\n\t\tthis._become(resolve(x))\n\t}\n\n\t_fulfill (x) {\n\t\tthis._become(new Fulfilled(x))\n\t}\n\n\t_reject (e) {\n\t\tif (this._isResolved()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.__become(new Rejected(e))\n\t}\n\n\t_become (p) {\n\t\tif (this._isResolved()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.__become(p)\n\t}\n\n\t__become (p) {\n\t\tthis.ref = p === this ? cycle() : p\n\n\t\tif (this.action === void 0) {\n\t\t\treturn\n\t\t}\n\n\t\ttaskQueue.add(this)\n\t}\n\n\trun () {\n\t\tconst p = this.ref.near()\n\t\tp._runAction(this.action)\n\t\tthis.action = void 0\n\n\t\tfor (let i = 0; i < this.length; ++i) {\n\t\t\tp._runAction(this[i])\n\t\t\tthis[i] = void 0\n\t\t}\n\t}\n}\n\n// Fulfilled :: a -> Promise e a\n// A promise whose value is already known\nclass Fulfilled extends Core {\n\tconstructor (x) {\n\t\tsuper()\n\t\tthis.value = x\n\t}\n\n\tthen (f) {\n\t\treturn typeof f === 'function' ? then(f, void 0, this, new Future()) : this\n\t}\n\n\tcatch () {\n\t\treturn this\n\t}\n\n\tmap (f) {\n\t\treturn map(f, this, new Future())\n\t}\n\n\tbimap (_, f) {\n\t\treturn this.map(f)\n\t}\n\n\tap (p) {\n\t\treturn p.map(this.value)\n\t}\n\n\tchain (f) {\n\t\treturn chain(f, this, new Future())\n\t}\n\n\tor () {\n\t\treturn this\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { fulfilled: ' + this.value + ' }'\n\t}\n\n\tstate () {\n\t\treturn FULFILLED\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when (action) {\n\t\ttaskQueue.add(new Continuation(action, this))\n\t}\n\n\t_runAction (action) {\n\t\tconst c = swapContext(action.context)\n\t\taction.fulfilled(this)\n\t\tswapContext(c)\n\t}\n}\n\n// Rejected :: Error e => e -> Promise e a\n// A promise whose value cannot be known due to some reason/error\nclass Rejected extends Core {\n\tconstructor (e) {\n\t\tsuper()\n\t\tthis.value = e\n\t\tthis._state = REJECTED\n\t\terrorHandler.track(this)\n\t}\n\n\tthen (_, r) {\n\t\treturn typeof r === 'function' ? this.catch(r) : this\n\t}\n\n\tcatch (r) {\n\t\treturn then(void 0, r, this, new Future())\n\t}\n\n\tmap () {\n\t\treturn this\n\t}\n\n\tbimap (r) {\n\t\treturn bimap(r, void 0, this, new Future())\n\t}\n\n\tap () {\n\t\treturn this\n\t}\n\n\tchain () {\n\t\treturn this\n\t}\n\n\tor () {\n\t\treturn this\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { rejected: ' + this.value + ' }'\n\t}\n\n\tstate () {\n\t\treturn this._state\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when (action) {\n\t\ttaskQueue.add(new Continuation(action, this))\n\t}\n\n\t_runAction (action) {\n\t\tconst c = swapContext(action.context)\n\t\tif (action.rejected(this)) {\n\t\t\terrorHandler.untrack(this)\n\t\t}\n\t\tswapContext(c)\n\t}\n}\n\n// Never :: Promise e a\n// A promise that waits forever for its value to be known\nclass Never extends Core {\n\tthen () {\n\t\treturn this\n\t}\n\n\tcatch () {\n\t\treturn this\n\t}\n\n\tmap () {\n\t\treturn this\n\t}\n\n\tbimap () {\n\t\treturn this\n\t}\n\n\tap () {\n\t\treturn this\n\t}\n\n\tchain () {\n\t\treturn this\n\t}\n\n\tor (b) {\n\t\treturn b\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { never }'\n\t}\n\n\tstate () {\n\t\treturn PENDING | NEVER\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when () {\n\t}\n\n\t_runAction () {\n\t}\n}\n\n// -------------------------------------------------------------\n// ## Creating promises\n// -------------------------------------------------------------\n\n// resolve :: Thenable e a -> Promise e a\n// resolve :: a -> Promise e a\nexport function resolve (x) {\n\treturn isPromise(x) ? x.near()\n\t\t: maybeThenable(x) ? refForMaybeThenable(fulfill, x)\n\t\t: new Fulfilled(x)\n}\n\n// reject :: e -> Promise e a\nexport function reject (e) {\n\treturn new Rejected(e)\n}\n\n// never :: Promise e a\nexport function never () {\n\treturn new Never()\n}\n\n// fulfill :: a -> Promise e a\nexport function fulfill (x) {\n\treturn new Fulfilled(x)\n}\n\n// future :: () -> { resolve: Resolve e a, promise: Promise e a }\n// type Resolve e a = a|Thenable e a -> ()\nexport function future () {\n\tconst promise = new Future()\n\treturn {resolve: x => promise._resolve(x), promise}\n}\n\n// -------------------------------------------------------------\n// ## Iterables\n// -------------------------------------------------------------\n\n// all :: Iterable (Promise e a) -> Promise e [a]\nexport function all (promises) {\n\tconst handler = new Merge(allHandler, resultsArray(promises))\n\treturn iterablePromise(handler, promises)\n}\n\nconst allHandler = {\n\tmerge (promise, args) {\n\t\tpromise._fulfill(args)\n\t}\n}\n\n// race :: Iterable (Promise e a) -> Promise e a\nexport function race (promises) {\n\treturn iterablePromise(new Race(never), promises)\n}\n\nfunction isIterable (x) {\n\treturn typeof x === 'object' && x !== null\n}\n\nexport function iterablePromise (handler, iterable) {\n\tif (!isIterable(iterable)) {\n\t\treturn reject(new TypeError('expected an iterable'))\n\t}\n\n\tconst p = new Future()\n\treturn resolveIterable(resolveMaybeThenable, handler, iterable, p)\n}\n\n// -------------------------------------------------------------\n// # Internals\n// -------------------------------------------------------------\n\n// isPromise :: * -> boolean\nfunction isPromise (x) {\n\treturn x instanceof Core\n}\n\nfunction resolveMaybeThenable (x) {\n\treturn isPromise(x) ? x.near() : refForMaybeThenable(fulfill, x)\n}\n\nfunction refForMaybeThenable (otherwise, x) {\n\ttry {\n\t\tconst then = x.then\n\t\treturn typeof then === 'function'\n\t\t\t? extractThenable(then, x)\n\t\t\t: otherwise(x)\n\t} catch (e) {\n\t\treturn new Rejected(e)\n\t}\n}\n\n// WARNING: Naming the first arg \"then\" triggers babel compilation bug\nfunction extractThenable (thn, thenable) {\n\tconst p = new Future()\n\n\ttry {\n\t\tthn.call(thenable, x => p._resolve(x), e => p._reject(e))\n\t} catch (e) {\n\t\tp._reject(e)\n\t}\n\n\treturn p.near()\n}\n\nfunction cycle () {\n\treturn new Rejected(new TypeError('resolution cycle'))\n}\n\nclass Continuation {\n\tconstructor (action, promise) {\n\t\tthis.action = action\n\t\tthis.promise = promise\n\t}\n\n\trun () {\n\t\tthis.promise._runAction(this.action)\n\t}\n}\n","import Action from './Action'\n\nexport default function (ms, p, promise) {\n\tp._runAction(new Delay(ms, promise))\n\treturn promise\n}\n\nclass Delay extends Action {\n\tconstructor (time, promise) {\n\t\tsuper(promise)\n\t\tthis.time = time\n\t}\n\n\tfulfilled (p) {\n\t\t/* global setTimeout */\n\t\tsetTimeout(become, this.time, p, this.promise)\n\t}\n}\n\nfunction become (p, promise) {\n\tpromise._become(p)\n}\n","export default class TimeoutError extends Error {\n\tconstructor (message) {\n\t\tsuper()\n\t\tthis.message = message\n\t\tthis.name = TimeoutError.name\n\t\t/* istanbul ignore else */\n\t\tif (typeof Error.captureStackTrace === 'function') {\n\t\t\tError.captureStackTrace(this, TimeoutError)\n\t\t}\n\t}\n}\n","import Action from './Action'\nimport TimeoutError from './TimeoutError'\n\nexport default function (ms, p, promise) {\n\tconst timer = setTimeout(rejectOnTimeout, ms, promise)\n\tp._runAction(new Timeout(timer, promise))\n\treturn promise\n}\n\nclass Timeout extends Action {\n\tconstructor (timer, promise) {\n\t\tsuper(promise)\n\t\tthis.timer = timer\n\t}\n\n\tfulfilled (p) {\n\t\tclearTimeout(this.timer)\n\t\tthis.promise._become(p)\n\t}\n\n\trejected (p) {\n\t\tclearTimeout(this.timer)\n\t\treturn super.rejected(p)\n\t}\n}\n\nfunction rejectOnTimeout (promise) {\n\tpromise._reject(new TimeoutError('promise timeout'))\n}\n","import { silenceError } from './inspect.js'\n\nexport default class Any {\n\tconstructor () {\n\t\tthis.pending = 0\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tpromise._fulfill(x)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tpromise._become(p)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\tsilenceError(p)\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tpromise._reject(new RangeError('No fulfilled promises in input'))\n\t\t}\n\t}\n}\n","import { silenceError } from './inspect'\n\nexport default class Settle {\n\tconstructor (resolve, results) {\n\t\tthis.pending = 0\n\t\tthis.results = results\n\t\tthis.resolve = resolve\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tthis.settleAt(this.resolve(x), i, promise)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tthis.settleAt(p, i, promise)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\tsilenceError(p)\n\t\tthis.settleAt(p, i, promise)\n\t}\n\n\tsettleAt (p, i, promise) {\n\t\tthis.results[i] = p\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tpromise._fulfill(this.results)\n\t\t}\n\t}\n}\n","import { swapContext } from './trace'\n\nexport default function runPromise (f, thisArg, args, promise) {\n /* eslint complexity:[2,5] */\n\tfunction resolve (x) {\n\t\tconst c = swapContext(promise.context)\n\t\tpromise._resolve(x)\n\t\tswapContext(c)\n\t}\n\n\tfunction reject (e) {\n\t\tconst c = swapContext(promise.context)\n\t\tpromise._reject(e)\n\t\tswapContext(c)\n\t}\n\n\tswitch (args.length) {\n\t\tcase 0:\n\t\t\tf.call(thisArg, resolve, reject)\n\t\t\tbreak\n\t\tcase 1:\n\t\t\tf.call(thisArg, args[0], resolve, reject)\n\t\t\tbreak\n\t\tcase 2:\n\t\t\tf.call(thisArg, args[0], args[1], resolve, reject)\n\t\t\tbreak\n\t\tcase 3:\n\t\t\tf.call(thisArg, args[0], args[1], args[2], resolve, reject)\n\t\t\tbreak\n\t\tdefault:\n\t\t\targs.push(resolve, reject)\n\t\t\tf.apply(thisArg, args)\n\t}\n\n\treturn promise\n}\n","import { swapContext } from './trace'\n\nexport default function runNode (f, thisArg, args, promise) {\n /* eslint complexity:[2,5] */\n\tfunction settleNode (e, x) {\n\t\tconst c = swapContext(promise.context)\n\t\tif (e) {\n\t\t\tpromise._reject(e)\n\t\t} else {\n\t\t\tpromise._fulfill(x)\n\t\t}\n\t\tswapContext(c)\n\t}\n\n\tswitch (args.length) {\n\t\tcase 0:\n\t\t\tf.call(thisArg, settleNode)\n\t\t\tbreak\n\t\tcase 1:\n\t\t\tf.call(thisArg, args[0], settleNode)\n\t\t\tbreak\n\t\tcase 2:\n\t\t\tf.call(thisArg, args[0], args[1], settleNode)\n\t\t\tbreak\n\t\tcase 3:\n\t\t\tf.call(thisArg, args[0], args[1], args[2], settleNode)\n\t\t\tbreak\n\t\tdefault:\n\t\t\targs.push(settleNode)\n\t\t\tf.apply(thisArg, args)\n\t}\n\n\treturn promise\n}\n","import Action from './Action'\nimport { swapContext } from './trace'\n\nexport default function (resolve, iterator, promise) {\n\tnew Coroutine(resolve, iterator, promise).run()\n\treturn promise\n}\n\nclass Coroutine extends Action {\n\tconstructor (resolve, iterator, promise) {\n\t\tsuper(promise)\n\t\tthis.resolve = resolve\n\t\tthis.generator = iterator\n\t}\n\n\trun () {\n\t\tthis.tryStep(this.generator.next, void 0)\n\t}\n\n\ttryStep (resume, x) {\n\t\tconst context = swapContext(this.context)\n\t\tlet result\n\t\t// test if `resume` (and only it) throws\n\t\ttry {\n\t\t\tresult = resume.call(this.generator, x)\n\t\t} catch (e) {\n\t\t\tthis.handleReject(e)\n\t\t\treturn\n\t\t} finally {\n\t\t\tswapContext(context)\n\t\t}// else\n\n\t\tthis.handleResult(result)\n\t}\n\n\thandleResult (result) {\n\t\tif (result.done) {\n\t\t\treturn this.promise._resolve(result.value)\n\t\t}\n\n\t\tthis.resolve(result.value)._when(this)\n\t}\n\n\thandleReject (e) {\n\t\tthis.promise._reject(e)\n\t}\n\n\tfulfilled (p) {\n\t\tthis.tryStep(this.generator.next, p.value)\n\t}\n\n\trejected (p) {\n\t\tthis.tryStep(this.generator.throw, p.value)\n\t\treturn true\n\t}\n}\n","import { isFulfilled, isRejected, isSettled, isPending, isNever, getValue, getReason } from './inspect'\nimport { Future, resolve, reject, future, never, fulfill, all, race, iterablePromise, taskQueue } from './Promise'\n\nimport _delay from './delay'\nimport _timeout from './timeout'\n\nimport Any from './Any'\nimport Merge from './Merge'\nimport Settle from './Settle'\nimport { resultsArray } from './iterable'\n\nimport _runPromise from './runPromise'\nimport _runNode from './node'\nimport _runCoroutine from './coroutine.js'\n\nimport { isDebug } from './env'\nimport { swapContext, pushContext, enableAsyncTraces, disableAsyncTraces } from './trace'\n\nexport { enableAsyncTraces, disableAsyncTraces }\n\n/* istanbul ignore next */\nif (isDebug) {\n\tenableAsyncTraces()\n}\n\n// -------------------------------------------------------------\n// ## Core promise methods\n// -------------------------------------------------------------\n\nexport {\n\tresolve, reject, future, never, fulfill, all, race,\n\tisFulfilled, isRejected, isSettled, isPending, isNever,\n\tgetValue, getReason\n}\n\n// -------------------------------------------------------------\n// ## Coroutine\n// -------------------------------------------------------------\n\n// coroutine :: Generator e a -> (...* -> Promise e a)\n// Make a coroutine from a promise-yielding generator\nexport function coroutine (generator) {\n\treturn function coroutinified (...args) {\n\t\treturn runGenerator(generator, this, args)\n\t}\n}\n\nfunction runGenerator (generator, thisArg, args) {\n\tconst iterator = generator.apply(thisArg, args)\n\treturn _runCoroutine(resolve, iterator, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Node-style async\n// -------------------------------------------------------------\n\n// type Nodeback e a = e -> a -> ()\n// type NodeApi e a = ...* -> Nodeback e a -> ()\n\n// fromNode :: NodeApi e a -> (...args -> Promise e a)\n// Turn a Node API into a promise API\nexport function fromNode (f) {\n\treturn function promisified (...args) {\n\t\treturn runResolver(_runNode, f, this, args, new Future())\n\t}\n}\n\n// runNode :: NodeApi e a -> ...* -> Promise e a\n// Run a Node API, returning a promise for the outcome\nexport function runNode (f, ...args) {\n\treturn runResolver(_runNode, f, this, args, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Make a promise\n// -------------------------------------------------------------\n\n// type Resolve e a = a|Thenable e a -> ()\n// type Reject e = e -> ()\n// type Producer e a = (...* -> Resolve e a -> Reject e -> ())\n// runPromise :: Producer e a -> ...* -> Promise e a\nexport function runPromise (f, ...args) {\n\treturn runResolver(_runPromise, f, this, args, new Future())\n}\n\nfunction runResolver (run, f, thisArg, args, p) {\n\tcheckFunction(f)\n\n\ttry {\n\t\trun(f, thisArg, args, p)\n\t} catch (e) {\n\t\tp._reject(e)\n\t}\n\n\treturn p\n}\n\n// -------------------------------------------------------------\n// ## Time\n// -------------------------------------------------------------\n\n// delay :: number -> Promise e a -> Promise e a\nexport function delay (ms, x) {\n\t/* eslint complexity:[2,4] */\n\tconst p = resolve(x)\n\treturn ms <= 0 || isRejected(p) || isNever(p) ? p\n\t\t: _delay(ms, p, new Future())\n}\n\n// timeout :: number -> Promise e a -> Promise (e|TimeoutError) a\nexport function timeout (ms, x) {\n\tconst p = resolve(x)\n\treturn isSettled(p) ? p : _timeout(ms, p, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Iterables\n// -------------------------------------------------------------\n\n// any :: Iterable (Promise e a) -> Promise e a\nexport function any (promises) {\n\treturn iterablePromise(new Any(), promises)\n}\n\n// settle :: Iterable (Promise e a) -> Promise e [Promise e a]\nexport function settle (promises) {\n\tconst handler = new Settle(resolve, resultsArray(promises))\n\treturn iterablePromise(handler, promises)\n}\n\n// -------------------------------------------------------------\n// ## Lifting\n// -------------------------------------------------------------\n\n// merge :: (...* -> b) -> ...Promise e a -> Promise e b\nexport function merge (f, ...args) {\n\treturn runMerge(f, this, args)\n}\n\nfunction runMerge (f, thisArg, args) {\n\tconst handler = new Merge(new MergeHandler(f, thisArg), resultsArray(args))\n\treturn iterablePromise(handler, args)\n}\n\nclass MergeHandler {\n\tconstructor (f, c) {\n\t\tthis.context = pushContext(this.constructor, Merge.name)\n\t\tthis.f = f\n\t\tthis.c = c\n\t\tthis.promise = void 0\n\t\tthis.args = void 0\n\t}\n\n\tmerge (promise, args) {\n\t\tthis.promise = promise\n\t\tthis.args = args\n\t\ttaskQueue.add(this)\n\t}\n\n\trun () {\n\t\tconst c = swapContext(this.context)\n\t\ttry {\n\t\t\tthis.promise._resolve(this.f.apply(this.c, this.args))\n\t\t} catch (e) {\n\t\t\tthis.promise._reject(e)\n\t\t}\n\t\tswapContext(c)\n\t}\n}\n\nfunction checkFunction (f) {\n\tif (typeof f !== 'function') {\n\t\tthrow new TypeError('must provide a resolver function')\n\t}\n}\n\n// -------------------------------------------------------------\n// ## ES6 Promise polyfill\n// -------------------------------------------------------------\n\nconst NOARGS = []\n\n// type Resolve a = a -> ()\n// type Reject e = e -> ()\n// Promise :: (Resolve a -> Reject e) -> Promise e a\nclass CreedPromise extends Future {\n\tconstructor (f) {\n\t\tsuper()\n\t\trunResolver(_runPromise, f, void 0, NOARGS, this)\n\t}\n}\n\nCreedPromise.resolve = resolve\nCreedPromise.reject = reject\nCreedPromise.all = all\nCreedPromise.race = race\n\nexport function shim () {\n\t/* global self */\n\tconst orig = typeof Promise === 'function' && Promise\n\n\t/* istanbul ignore if */\n\tif (typeof self !== 'undefined') {\n\t\tself.Promise = CreedPromise\n\t\t/* istanbul ignore else */\n\t} else if (typeof global !== 'undefined') {\n\t\tglobal.Promise = CreedPromise\n\t}\n\n\treturn orig\n}\n\nexport { CreedPromise as Promise }\n\n/* istanbul ignore if */\nif (typeof Promise !== 'function') {\n\tshim()\n}\n"],"names":["const","let","this","UNHANDLED_REJECTION","noop","super","fl","then","runPromise","runNode","_runNode","_runPromise"],"mappings":"AAAA;AACA,AAAOA,IAAM,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AAC/B,AAAOA,IAAM,SAAS,GAAG,CAAC,IAAI,CAAC,CAAA;AAC/B,AAAOA,IAAM,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAA;AAC/B,AAAOA,IAAM,OAAO,KAAK,SAAS,GAAG,QAAQ,CAAA;AAC7C,AAAOA,IAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;;AAE/B,AAAOA,IAAM,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;;ACLxB,SAAS,SAAS,EAAE,CAAC,EAAE;CAC7B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,IAAI,CAAC;CAChC;;AAED,AAAO,SAAS,WAAW,EAAE,CAAC,EAAE;CAC/B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,SAAS,IAAI,CAAC;CAClC;;AAED,AAAO,SAAS,UAAU,EAAE,CAAC,EAAE;CAC9B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,QAAQ,IAAI,CAAC;CACjC;;AAED,AAAO,SAAS,SAAS,EAAE,CAAC,EAAE;CAC7B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,IAAI,CAAC;CAChC;;AAED,AAAO,SAAS,OAAO,EAAE,CAAC,EAAE;CAC3B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC9B;;AAED,AAAO,SAAS,SAAS,EAAE,CAAC,EAAE;CAC7B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,IAAI,CAAC;CAChC;;AAED,AAAO,SAAS,QAAQ,EAAE,CAAC,EAAE;CAC5BA,IAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;CAClB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;EACpB,MAAM,IAAI,SAAS,CAAC,qBAAqB,GAAG,CAAC,CAAC;EAC9C;;CAED,OAAO,CAAC,CAAC,KAAK;CACd;;AAED,AAAO,SAAS,SAAS,EAAE,CAAC,EAAE;CAC7BA,IAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;CAClB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;EACnB,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,CAAC,CAAC;EAC/C;;CAED,YAAY,CAAC,CAAC,CAAC,CAAA;CACf,OAAO,CAAC,CAAC,KAAK;CACd;;AAED,AAAO,SAAS,YAAY,EAAE,CAAC,EAAE;CAChC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;CACtB;;;AAGDA,IAAM,QAAQ,GAAG;CAChB,SAAS,oBAAA,IAAI,EAAE;CACf,QAAQ,mBAAA,EAAE,CAAC,EAAE;EACZ,CAAC,CAAC,MAAM,IAAI,OAAO,CAAA;EACnB;CACD,CAAA;;ACvDD;;AAEAA,IAAM,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW;IACzC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,kBAAkB,CAAA;;;AAGlEA,IAAM,WAAW,GAAG,CAAC,OAAO,gBAAgB,KAAK,UAAU,IAAI,gBAAgB;KAC1E,OAAO,sBAAsB,KAAK,UAAU,IAAI,sBAAsB,CAAC,CAAA;;AAE5EA,IAAM,MAAM,GAAG,UAAA,IAAI,EAAC,SAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAA,CAAA;;AAElDA,IAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;EACnC,MAAM,CAAC,UAAU,CAAC,KAAK,aAAa;EACpC,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAA,AAE/B,AAAuC;;;;ACXvC,gBAAe,UAAU,CAAC,EAAE;CAC3B,OAAO,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC;IACnC,WAAW,GAAG,sBAAsB,CAAC,CAAC,CAAC;IACvC,uBAAuB,CAAC,CAAC,CAAC;CAC7B,CAAA;;;AAGD,SAAS,uBAAuB,EAAE,CAAC,EAAE;CACpC,OAAO,YAAG,SAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAA;CAC7B;;AAED,SAAS,mBAAmB,EAAE,CAAC,EAAE;CAChC,OAAO,YAAG,SAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAA;CAChC;;;AAGD,SAAS,sBAAsB,EAAE,CAAC,EAAE;CACnCA,IAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;CACxC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;;CAEzDC,IAAI,CAAC,GAAG,CAAC,CAAA;CACT,OAAO,YAAG,EAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE;CACrC;;ACxBD,IAAqB,SAAS,GAAC,kBACnB,IAAI;;;CACf,IAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;CAChC,IAAK,CAAC,MAAM,GAAG,CAAC,CAAA;CAChB,IAAK,CAAC,KAAK,GAAG,SAAS,CAAC,YAAG,SAAGC,MAAI,CAAC,MAAM,EAAE,GAAA,CAAC,CAAA;CAC3C,CAAA;;AAEF,oBAAC,GAAG,iBAAE,IAAI,EAAE;CACX,IAAK,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;EACvB,IAAK,CAAC,KAAK,EAAE,CAAA;EACZ;;CAEF,IAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;CAChC,CAAA;;AAEF,oBAAC,MAAM,sBAAI;CACV,IAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;CACrB,KAAMD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;EACtC,CAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;EACX,CAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;EACb;CACF,IAAK,CAAC,MAAM,GAAG,CAAC,CAAA;CACf,CAAA,AACD;;ACzBDD,IAAM,IAAI,GAAG,YAAG,EAAK,CAAA;;;AAGrBC,IAAI,eAAe,CAAA;AACnBA,IAAI,cAAc,GAAG,IAAI,CAAA;;;AAGzB,AAAOD,IAAM,WAAW,GAAG,YAAG,SAAG,eAAe,GAAA,CAAA;;;;AAIhD,AAAOA,IAAM,WAAW,GAAG,UAAC,EAAE,EAAE,GAAG,EAAE,SACpC,cAAc,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,GAAA,CAAA;;;;;AAKzC,AAAOA,IAAM,WAAW,GAAG,UAAA,OAAO,EAAC;CAClCA,IAAM,eAAe,GAAG,eAAe,CAAA;CACvC,eAAe,GAAG,OAAO,CAAA;CACzB,OAAO,eAAe;CACtB,CAAA;;;;;;;;AAQD,AAAOA,IAAM,UAAU,GAAG,UAAC,aAAa,EAAE,cAAc,EAAE;CACzD,cAAc,GAAG,aAAa,CAAA;CAC9B,eAAe,GAAG,cAAc,CAAA;CAChC,CAAA;;;AAGD,AAAOA,IAAM,iBAAiB,GAAG,YAAG,SACnC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,GAAA,CAAA;;;AAGrC,AAAOA,IAAM,kBAAkB,GAAG,YAAG,SACnC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,GAAA,CAAA;;;;;AAK7B,AAAOA,IAAM,aAAa,GAAG,UAAC,cAAc,EAAE,EAAE,EAAE,GAAG,EAAE,SACrD,IAAI,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAA,CAAA;;AAEjD,AAAOA,IAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAA;;AAEhE,AAAO,IAAM,OAAO,GAAC,gBACT,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;CAC5B,IAAK,CAAC,IAAI,GAAG,IAAI,CAAA;CACjB,IAAK,CAAC,GAAG,GAAG,GAAG,CAAA;CACf,iBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;CAC3B,CAAA;;AAEF,kBAAC,QAAQ,wBAAI;CACZ,OAAQ,IAAI,CAAC,GAAG,IAAG,QAAO,IAAE,IAAI,CAAC,GAAG,CAAA,MAAE,IAAI,yBAAyB;CAClE,CAAA;;;;;;;AAQF,AAAOA,IAAM,WAAW,GAAG,UAAC,CAAC,EAAE,OAAO,EAAE,SACtC,OAAO,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAA,CAAA;;;AAGrE,SAAS,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE;CACjC,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE;EAC3B,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAA;EAC/B,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;EACrD;CACD,OAAO,CAAC;CACR;;;AAGD,AAAO,SAAS,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE;CAC9C,IAAI,OAAO,IAAI,IAAI,EAAE;EACpB,OAAO,KAAK;EACZ;CACDA,IAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;CACnC,OAAO,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC;CACtF;;AAED,AAAOA,IAAM,YAAY;EACvB,8FAA8F,CAAA;;;AAGhG,AAAOA,IAAM,UAAU,GAAG,UAAA,KAAK,EAAC,SAC/B,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,GAAA,CAAA;;AC1FhCA,IAAM,mBAAmB,GAAG,oBAAoB,CAAA;AAChDA,IAAM,iBAAiB,GAAG,kBAAkB,CAAA;;AAE5C,IAAqB,YAAY,GAAC,qBACtB,EAAE,SAAS,EAAE,WAAW,EAAE;CACrC,IAAK,CAAC,UAAU,GAAG,EAAE,CAAA;CACrB,IAAK,CAAC,IAAI,GAAG,SAAS,CAAA;CACtB,IAAK,CAAC,WAAW,GAAG,WAAW,CAAA;CAC9B,CAAA;;AAEF,uBAAC,KAAK,mBAAE,QAAQ,EAAE;CACjB,IAAO,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;;CAExD,IAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE;;EAElD,IAAK,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;GAClC,UAAW,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;GAC9D;EACF,IAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;EAC9B;CACD,CAAA;;AAEF,uBAAC,OAAO,qBAAE,QAAQ,EAAE;CACnB,YAAa,CAAC,QAAQ,CAAC,CAAA;CACvB,IAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;CACtC,CAAA;;AAGF,SAAS,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE;CAC1C,IAAI;EACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;EAC7B,SAAS;EACT,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;EACrB;CACD;;AAED,SAAS,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE;CACvC,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;EAC3CD,IAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;;EAE9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;GACzB,MAAM,CAAC,QAAQ,CAAC,CAAA;GAChB;EACD;CACD;;AC7CDA,IAAMG,qBAAmB,GAAG,oBAAoB,CAAA;;AAEhD,oBAAe,YAAY;;;CAG1B,IAAI,MAAM,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;;;;;EAKjD,OAAO,UAAU,IAAI,EAAE,KAAK,EAAE;GAC7B,OAAO,IAAI,KAAKA,qBAAmB;MAChC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;MACtC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;GAC5B;EACD,MAAM,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;EAC5E,QAAQ,UAAU,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;GAC1C,IAAI,cAAc,CAAA;GAClB,IAAI;IACH,cAAc,GAAG,IAAI,WAAW,CAACA,qBAAmB,CAAC,YAAY,WAAW,CAAA;IAC5E,CAAC,OAAO,CAAC,EAAE;IACX,cAAc,GAAG,KAAK,CAAA;IACtB;;GAED,OAAO,CAAC,cAAc,GAAG,IAAI,GAAG,UAAU,IAAI,EAAE,KAAK,EAAE;IACtDH,IAAM,EAAE,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE;KAChC,MAAM,EAAE;MACP,MAAM,EAAE,KAAK,CAAC,KAAK;MACnB,OAAO,EAAE,KAAK;MACd;KACD,OAAO,EAAE,KAAK;KACd,UAAU,EAAE,IAAI;KAChB,CAAC,CAAA;;IAEF,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;IAC9B;GACD,CAACI,MAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;EAC3B;;;CAGD,OAAOA,MAAI;CACX,CAAA;;;AAGD,SAASA,MAAI,IAAI,EAAE;;AC9CnB;AACA,AAAe,SAAS,aAAa,EAAE,CAAC,EAAE;CACzC,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,KAAK,CAAC,KAAK,IAAI;CACvE;;ACDD,IAAqB,MAAM,GAAC,eAChB,EAAE,OAAO,EAAE;CACtB,IAAK,CAAC,OAAO,GAAG,OAAO,CAAA;CACvB,IAAK,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;CAC5C,CAAA;;;;AAIF,iBAAC,SAAS,uBAAE,CAAC,EAAE;CACd,IAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CACvB,CAAA;;;AAGF,iBAAC,QAAQ,sBAAE,CAAC,EAAE;CACb,IAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CACxB,OAAQ,KAAK;CACZ,CAAA,AACD;;ACnBc,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;CACvDH,IAAI,MAAM,CAAA;;CAEV,IAAI;EACH,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;EACb,CAAC,OAAO,CAAC,EAAE;EACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;EAClB,MAAM;EACN;CACD,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;CACvB;;ACPc,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CAC/C,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;CAChC,OAAO,OAAO;CACd;;AAED,IAAM,IAAI;CAAgB,aACd,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;EAC3BI,SAAK,KAAA,CAAC,MAAA,OAAO,CAAC,CAAA;EACd,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;EACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;EACV;;;;mCAAA;;CAED,eAAA,SAAS,uBAAE,CAAC,EAAE;EACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;EACvB,CAAA;;CAED,eAAA,QAAQ,sBAAE,CAAC,EAAE;EACZ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;EAC9B,CAAA;;CAED,eAAA,OAAO,qBAAE,CAAC,EAAE,CAAC,EAAE;EACd,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;GAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;GACvB,OAAO,KAAK;GACZ;EACD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;EAC7C,OAAO,IAAI;EACX,CAAA;;;EAtBiB,MAuBlB,GAAA;;AAED,SAAS,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;CACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;CACxB;;AChCD,UAAe,UAAU,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CACvC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;CAC5B,OAAO,OAAO;CACd,CAAA;;AAED,AAAO,IAAM,GAAG;CAAgB,YACpB,EAAE,CAAC,EAAE,OAAO,EAAE;EACxBA,SAAK,KAAA,CAAC,MAAA,OAAO,CAAC,CAAA;EACd,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;EACV;;;;iCAAA;;CAED,cAAA,SAAS,uBAAE,CAAC,EAAE;EACb,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;EACjD,CAAA;;;EARuB,MASxB,GAAA;;AAED,SAAS,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;CACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;CACxB;;AClBD,YAAe,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CAC1C,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;CACjC,OAAO,OAAO;CACd,CAAA;;AAED,IAAM,KAAK;CAAa,cACZ,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;EAC3BA,MAAK,KAAA,CAAC,MAAA,CAAC,EAAE,OAAO,CAAC,CAAA;EACjB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;EACV;;;;qCAAA;;CAED,gBAAA,QAAQ,sBAAE,CAAC,EAAE;EACZ,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;EACzD,CAAA;;;EARkB,GASnB,GAAA;;AAED,SAAS,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE;CAC5C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;CACvB;;ACjBD,YAAe,UAAU,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CACvC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;CAC9B,OAAO,OAAO;CACd,CAAA;;AAED,IAAM,KAAK;CAAgB,cACf,EAAE,CAAC,EAAE,OAAO,EAAE;EACxBA,SAAK,KAAA,CAAC,MAAA,OAAO,CAAC,CAAA;EACd,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;EACV;;;;qCAAA;;CAED,gBAAA,SAAS,uBAAE,CAAC,EAAE;EACb,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;EACnD,CAAA;;;EARkB,MASnB,GAAA;;AAED,SAAS,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE;CACtC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE;EAClE,OAAO,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAA;EACzD;;CAED,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;CACxB;;ACxBD,IAAqB,IAAI,GAAC,aACd,EAAE,KAAK,EAAE;CACpB,IAAK,CAAC,KAAK,GAAG,KAAK,CAAA;CAClB,CAAA;;AAEF,eAAC,OAAO,qBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CACxB,OAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;CACnB,CAAA;;AAEF,eAAC,SAAS,uBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CAC1B,OAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CAClB,CAAA;;AAEF,eAAC,QAAQ,sBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;;;CAGzB,OAAQ,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CAC5D,CAAA;;AAEF,eAAC,QAAQ,sBAAE,KAAK,EAAE,OAAO,EAAE;CAC1B,IAAK,KAAK,KAAK,CAAC,EAAE;EACjB,OAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;EAC7B;CACD,CAAA,AACD;;ACxBD,IAAqB,KAAK,GAAC,cACf,EAAE,YAAY,EAAE,OAAO,EAAE;CACpC,IAAK,CAAC,OAAO,GAAG,CAAC,CAAA;CACjB,IAAK,CAAC,OAAO,GAAG,OAAO,CAAA;CACvB,IAAK,CAAC,YAAY,GAAG,YAAY,CAAA;CAChC,CAAA;;AAEF,gBAAC,OAAO,qBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CACxB,IAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;CACpB,IAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;;AAEF,gBAAC,SAAS,uBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CAC1B,IAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;CACjC,CAAA;;AAEF,gBAAC,QAAQ,sBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;;;CAGzB,OAAQ,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CAC5D,CAAA;;AAEF,gBAAC,QAAQ,sBAAE,KAAK,EAAE,OAAO,EAAE;CAC1B,IAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC,CAAA;CACzC,CAAA;;AAEF,gBAAC,KAAK,mBAAE,OAAO,EAAE,OAAO,EAAE;CACzB,IAAK,CAAC,OAAO,GAAG,OAAO,CAAA;CACvB,IAAK,OAAO,KAAK,CAAC,EAAE;EACnB,IAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;EAC9C;CACD,CAAA,AACD;;AC9BM,SAAS,YAAY,EAAE,QAAQ,EAAE;CACvC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE;CAChE;;AAED,AAAO,SAAS,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;CACrEL,IAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,WAAW,CAAA;CAC5D,IAAI;EACH,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;EACxC,CAAC,OAAO,CAAC,EAAE;EACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;EAClB;CACD,OAAO,OAAO,CAAC,IAAI,EAAE;CACrB;;AAED,SAAS,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;CACvDC,IAAI,CAAC,GAAG,CAAC,CAAA;;CAET,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;EAChC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;EACrD;;CAED,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;CAC5B;;AAED,SAAS,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;CAC1DA,IAAI,CAAC,GAAG,CAAC,CAAA;CACTD,IAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;;CAExC,OAAO,IAAI,EAAE;EACZA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;EACxB,IAAI,IAAI,CAAC,IAAI,EAAE;GACd,KAAK;GACL;EACD,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;EACtD;;CAED,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;CAC5B;;AAED,SAAS,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;;CAErD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;EACtB,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;EAC9B,MAAM;EACN;;CAEDA,IAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;;CAEpB,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE;EAC1B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;GACpB,YAAY,CAAC,CAAC,CAAC,CAAA;GACf;EACD,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;EAC1B,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;EAChC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;EACzB,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;EAC/B,MAAM;EACN,CAAC,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;EAC9C;CACD;;AAED,IAAM,OAAO;CAAgB,gBACjB,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE;EACjCK,SAAK,KAAA,CAAC,MAAA,OAAO,CAAC,CAAA;EACd,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;EACV,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;EACtB;;;;yCAAA;;CAED,kBAAA,SAAS,uBAAE,CAAC,EAAE;EACb,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;EAC/C,CAAA;;CAED,kBAAA,QAAQ,sBAAE,CAAC,EAAE;EACZ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC;EACrD,CAAA;;;EAboB,MAcrB,GAAA;;;;;;;AC/ED,CAAC,WAAW;;EAEV,YAAY,CAAC;;;;;EAKb,IAAI,OAAO,GAAG;IACZ,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,qBAAqB;IAC7B,KAAK,EAAE,oBAAoB;IAC3B,GAAG,EAAE,kBAAkB;IACvB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,GAAG,EAAE,kBAAkB;IACvB,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,qBAAqB;IAC7B,QAAQ,EAAE,uBAAuB;IACjC,KAAK,EAAE,oBAAoB;IAC3B,QAAQ,EAAE,uBAAuB;IACjC,MAAM,EAAE,qBAAqB;IAC7B,OAAO,EAAE,sBAAsB;IAC/B,KAAK,EAAE,oBAAoB;IAC3B,MAAM,EAAE,qBAAqB;GAC9B,CAAC;;EAEF,AAAI,AAAgE,AAAE;IACpE,cAAc,GAAG,OAAO,CAAC;GAC1B,AAEA;;CAEF,EAAE,EAAE;;;ACZLL,IAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;AACjC;AAGAA,IAAM,WAAW,GAAG,UAAC,GAAA,EAAW;IAAT,KAAK;CAAS,MAAM,KAAK,EAAE,CAAA;;;AAGlDA,IAAM,YAAY,GAAG,IAAI,YAAY,CAAC,aAAa,EAAE,EAAE,WAAW,CAAC,CAAA;;;;;;;;AAQnE,IAAM,IAAI,GAAC,aACC,IAAI;CACf,IAAK,CAAC,OAAO,GAAG,WAAW,EAAE,CAAA;CAC5B,CAAA;;AAEF,KAAC,KAAY,qBAAI;CAChB,OAAQ,KAAK,EAAE;CACd,CAAA;;;AAGF,KAAC,EAAS,gBAAE,CAAC,EAAE;CACd,OAAQ,OAAO,CAAC,CAAC,CAAC;CACjB,CAAA;;AAEF,IAAC,CAAQM,KAAE,CAAC,KAAK,CAAC,eAAI;CACrB,OAAQ,KAAK,EAAE;CACd,CAAA;;AAEF,IAAC,CAAQA,KAAE,CAAC,EAAE,CAAC,aAAE,CAAC,EAAE;CACnB,OAAQ,OAAO,CAAC,CAAC,CAAC;CACjB,CAAA;;AAEF,cAAC,CAACA,KAAE,CAAC,GAAG,CAAC,aAAE,CAAC,EAAE;CACb,OAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAClB,CAAA;;AAEF,cAAC,CAACA,KAAE,CAAC,KAAK,CAAC,aAAE,CAAC,EAAE,CAAC,EAAE;CAClB,OAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;CACvB,CAAA;;AAEF,cAAC,CAACA,KAAE,CAAC,EAAE,CAAC,aAAE,EAAE,EAAE;CACb,OAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;CAClB,CAAA;;AAEF,cAAC,CAACA,KAAE,CAAC,KAAK,CAAC,aAAE,CAAC,EAAE;CACf,OAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CACpB,CAAA;;AAEF,cAAC,CAACA,KAAE,CAAC,MAAM,CAAC,aAAE,CAAC,EAAE;CAChB,OAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CACrB,CAAA;;AAEF,cAAC,CAACA,KAAE,CAAC,GAAG,CAAC,aAAE,CAAC,EAAE;CACb,OAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CACjB,CAAA;;AAEF,IAAC,CAAQA,KAAE,CAAC,IAAI,CAAC,eAAI;CACpB,OAAQ,KAAK,EAAE;CACd,CAAA;;;AAGF,eAAC,MAAM,oBAAE,CAAC,EAAE;CACX,OAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CACjB,CAAA;;;;;;;;;;AAWF,AAAO,IAAM,MAAM;CAAc,eACrB,IAAI;EACdD,IAAK,KAAA,CAAC,IAAA,CAAC,CAAA;EACP,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;EACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAA;EACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;EACf;;;;uCAAA;;;;;CAKD,iBAAA,IAAI,oBAAE,CAAC,EAAE,CAAC,EAAE;EACXL,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;EACrB,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;EACjE,CAAA;;;CAGD,iBAAA,KAAK,qBAAE,CAAC,EAAE;EACTA,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;EACrB,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;EACpE,CAAA;;;CAGD,iBAAA,GAAG,mBAAE,CAAC,EAAE;EACPA,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;EACrB,OAAO,CAAC,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;EACzD,CAAA;;CAED,iBAAA,KAAK,qBAAE,CAAC,EAAE,CAAC,EAAE;EACZA,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;EACrB,OAAO,CAAC,KAAK,IAAI;KACd,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;KAC/B,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;EAChB,CAAA;;;CAGD,iBAAA,EAAE,gBAAE,CAAC,EAAE;EACNA,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;EACrBA,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;EACnB,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAA,CAAC,EAAC,SAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAA,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;EACzD,CAAA;;;CAGD,iBAAA,KAAK,qBAAE,CAAC,EAAE;EACTA,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;EACrB,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;EAC7D,CAAA;;;CAGD,iBAAA,EAAE,gBAAE,CAAC,EAAE;;EAENA,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;EACrBA,IAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;;EAEnB,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC;KACnC,SAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE;KAChC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;EAChB,CAAA;;;CAGD,iBAAA,QAAQ,wBAAI;EACX,OAAO,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG;EACxC,CAAA;;;CAGD,iBAAA,OAAO,uBAAI;EACVA,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;EACrB,OAAO,CAAC,KAAK,IAAI,GAAG,qBAAqB,GAAG,CAAC,CAAC,OAAO,EAAE;EACvD,CAAA;;;CAGD,iBAAA,IAAI,oBAAI;EACP,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;GACxB,OAAO,IAAI;GACX;;EAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;EAC1B,OAAO,IAAI,CAAC,GAAG;EACf,CAAA;;;CAGD,iBAAA,KAAK,qBAAI;EACR,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,OAAO;EAC7D,CAAA;;CAED,iBAAA,WAAW,2BAAI;EACd,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC;EAC1B,CAAA;;CAED,iBAAA,KAAK,mBAAE,MAAM,EAAE;EACd,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;EACvB,CAAA;;CAED,iBAAA,UAAU,wBAAE,MAAM,EAAE;EACnB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE;GAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;GACpB,MAAM;GACN,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,CAAA;GAC5B;EACD,CAAA;;CAED,iBAAA,QAAQ,sBAAE,CAAC,EAAE;EACZ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;EACxB,CAAA;;CAED,iBAAA,QAAQ,sBAAE,CAAC,EAAE;EACZ,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;EAC9B,CAAA;;CAED,iBAAA,OAAO,qBAAE,CAAC,EAAE;EACX,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;GACvB,MAAM;GACN;;EAED,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;EAC9B,CAAA;;CAED,iBAAA,OAAO,qBAAE,CAAC,EAAE;EACX,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;GACvB,MAAM;GACN;;EAED,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;EAChB,CAAA;;CAED,iBAAA,QAAQ,sBAAE,CAAC,EAAE;EACZ,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,CAAA;;EAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE;GAC3B,MAAM;GACN;;EAED,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;EACnB,CAAA;;CAED,iBAAA,GAAG,mBAAI;;;EACNA,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;EACzB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;EACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAA;;EAEpB,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;GACrC,CAAC,CAAC,UAAU,CAACC,MAAI,CAAC,CAAC,CAAC,CAAC,CAAA;GACrBA,MAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;GAChB;EACD,CAAA;;;EAhJ0B,IAiJ3B,GAAA;;;;AAID,IAAM,SAAS;CAAc,kBACjB,EAAE,CAAC,EAAE;EACfG,IAAK,KAAA,CAAC,IAAA,CAAC,CAAA;EACP,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;EACd;;;;6CAAA;;CAED,oBAAA,IAAI,oBAAE,CAAC,EAAE;EACR,OAAO,OAAO,CAAC,KAAK,UAAU,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC,GAAG,IAAI;EAC3E,CAAA;;CAED,oBAAA,KAAK,uBAAI;EACR,OAAO,IAAI;EACX,CAAA;;CAED,oBAAA,GAAG,mBAAE,CAAC,EAAE;EACP,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;EACjC,CAAA;;CAED,oBAAA,KAAK,sBAAE,CAAC,EAAE,CAAC,EAAE;EACZ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;EAClB,CAAA;;CAED,oBAAA,EAAE,gBAAE,CAAC,EAAE;EACN,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;EACxB,CAAA;;CAED,oBAAA,KAAK,qBAAE,CAAC,EAAE;EACT,OAAO,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;EACnC,CAAA;;CAED,oBAAA,EAAE,kBAAI;EACL,OAAO,IAAI;EACX,CAAA;;CAED,oBAAA,QAAQ,wBAAI;EACX,OAAO,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG;EACxC,CAAA;;CAED,oBAAA,OAAO,uBAAI;EACV,OAAO,uBAAuB,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;EAClD,CAAA;;CAED,oBAAA,KAAK,qBAAI;EACR,OAAO,SAAS;EAChB,CAAA;;CAED,oBAAA,IAAI,oBAAI;EACP,OAAO,IAAI;EACX,CAAA;;CAED,oBAAA,KAAK,mBAAE,MAAM,EAAE;EACd,SAAS,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;EAC7C,CAAA;;CAED,oBAAA,UAAU,wBAAE,MAAM,EAAE;EACnBL,IAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;EACrC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;EACtB,WAAW,CAAC,CAAC,CAAC,CAAA;EACd,CAAA;;;EA1DsB,IA2DvB,GAAA;;;;AAID,IAAM,QAAQ;CAAc,iBAChB,EAAE,CAAC,EAAE;EACfK,IAAK,KAAA,CAAC,IAAA,CAAC,CAAA;EACP,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;EACd,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAA;EACtB,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;EACxB;;;;2CAAA;;CAED,mBAAA,IAAI,qBAAE,CAAC,EAAE,CAAC,EAAE;EACX,OAAO,OAAO,CAAC,KAAK,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;EACrD,CAAA;;CAED,mBAAA,KAAK,qBAAE,CAAC,EAAE;EACT,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;EAC1C,CAAA;;CAED,mBAAA,GAAG,sBAAI;EACN,OAAO,IAAI;EACX,CAAA;;CAED,mBAAA,KAAK,qBAAE,CAAC,EAAE;EACT,OAAO,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;EAC3C,CAAA;;CAED,mBAAA,EAAE,kBAAI;EACL,OAAO,IAAI;EACX,CAAA;;CAED,mBAAA,KAAK,wBAAI;EACR,OAAO,IAAI;EACX,CAAA;;CAED,mBAAA,EAAE,kBAAI;EACL,OAAO,IAAI;EACX,CAAA;;CAED,mBAAA,QAAQ,wBAAI;EACX,OAAO,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG;EACxC,CAAA;;CAED,mBAAA,OAAO,uBAAI;EACV,OAAO,sBAAsB,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;EACjD,CAAA;;CAED,mBAAA,KAAK,qBAAI;EACR,OAAO,IAAI,CAAC,MAAM;EAClB,CAAA;;CAED,mBAAA,IAAI,oBAAI;EACP,OAAO,IAAI;EACX,CAAA;;CAED,mBAAA,KAAK,mBAAE,MAAM,EAAE;EACd,SAAS,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;EAC7C,CAAA;;CAED,mBAAA,UAAU,wBAAE,MAAM,EAAE;EACnBL,IAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;EACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;GAC1B,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;GAC1B;EACD,WAAW,CAAC,CAAC,CAAC,CAAA;EACd,CAAA;;;EA9DqB,IA+DtB,GAAA;;;;AAID,IAAM,KAAK;CAAc;;;;;;;;CAAA,gBACxB,IAAI,uBAAI;EACP,OAAO,IAAI;EACX,CAAA;;CAED,gBAAA,KAAK,uBAAI;EACR,OAAO,IAAI;EACX,CAAA;;CAED,gBAAA,GAAG,sBAAI;EACN,OAAO,IAAI;EACX,CAAA;;CAED,gBAAA,KAAK,wBAAI;EACR,OAAO,IAAI;EACX,CAAA;;CAED,gBAAA,EAAE,kBAAI;EACL,OAAO,IAAI;EACX,CAAA;;CAED,gBAAA,KAAK,wBAAI;EACR,OAAO,IAAI;EACX,CAAA;;CAED,gBAAA,EAAE,gBAAE,CAAC,EAAE;EACN,OAAO,CAAC;EACR,CAAA;;CAED,gBAAA,QAAQ,wBAAI;EACX,OAAO,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG;EACxC,CAAA;;CAED,gBAAA,OAAO,uBAAI;EACV,OAAO,mBAAmB;EAC1B,CAAA;;CAED,gBAAA,KAAK,qBAAI;EACR,OAAO,OAAO,GAAG,KAAK;EACtB,CAAA;;CAED,gBAAA,IAAI,oBAAI;EACP,OAAO,IAAI;EACX,CAAA;;CAED,gBAAA,KAAK,qBAAI;EACR,CAAA;;CAED,gBAAA,UAAU,0BAAI;EACb,CAAA;;;EAjDkB,IAkDnB,GAAA;;;;;;;;AAQD,AAAO,SAAS,OAAO,EAAE,CAAC,EAAE;CAC3B,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC3B,aAAa,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,IAAI,SAAS,CAAC,CAAC,CAAC;CACnB;;;AAGD,AAAO,SAAS,MAAM,EAAE,CAAC,EAAE;CAC1B,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;CACtB;;;AAGD,AAAO,SAAS,KAAK,IAAI;CACxB,OAAO,IAAI,KAAK,EAAE;CAClB;;;AAGD,AAAO,SAAS,OAAO,EAAE,CAAC,EAAE;CAC3B,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;CACvB;;;;AAID,AAAO,SAAS,MAAM,IAAI;CACzBA,IAAM,OAAO,GAAG,IAAI,MAAM,EAAE,CAAA;CAC5B,OAAO,CAAC,OAAO,EAAE,UAAA,CAAC,EAAC,SAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAA,EAAE,SAAA,OAAO,CAAC;CACnD;;;;;;;AAOD,AAAO,SAAS,GAAG,EAAE,QAAQ,EAAE;CAC9BA,IAAM,OAAO,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;CAC7D,OAAO,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;CACzC;;AAEDA,IAAM,UAAU,GAAG;CAClB,KAAK,gBAAA,EAAE,OAAO,EAAE,IAAI,EAAE;EACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;EACtB;CACD,CAAA;;;AAGD,AAAO,SAAS,IAAI,EAAE,QAAQ,EAAE;CAC/B,OAAO,eAAe,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;CACjD;;AAED,SAAS,UAAU,EAAE,CAAC,EAAE;CACvB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;CAC1C;;AAED,AAAO,SAAS,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE;CACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;EAC1B,OAAO,MAAM,CAAC,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAAC;EACpD;;CAEDA,IAAM,CAAC,GAAG,IAAI,MAAM,EAAE,CAAA;CACtB,OAAO,eAAe,CAAC,oBAAoB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;CAClE;;;;;;;AAOD,SAAS,SAAS,EAAE,CAAC,EAAE;CACtB,OAAO,CAAC,YAAY,IAAI;CACxB;;AAED,SAAS,oBAAoB,EAAE,CAAC,EAAE;CACjC,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC;CAChE;;AAED,SAAS,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE;CAC3C,IAAI;EACHA,IAAMO,OAAI,GAAG,CAAC,CAAC,IAAI,CAAA;EACnB,OAAO,OAAOA,OAAI,KAAK,UAAU;KAC9B,eAAe,CAACA,OAAI,EAAE,CAAC,CAAC;KACxB,SAAS,CAAC,CAAC,CAAC;EACf,CAAC,OAAO,CAAC,EAAE;EACX,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;EACtB;CACD;;;AAGD,SAAS,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE;CACxCP,IAAM,CAAC,GAAG,IAAI,MAAM,EAAE,CAAA;;CAEtB,IAAI;EACH,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAA,CAAC,EAAC,SAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAA,EAAE,UAAA,CAAC,EAAC,SAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAA,CAAC,CAAA;EACzD,CAAC,OAAO,CAAC,EAAE;EACX,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;EACZ;;CAED,OAAO,CAAC,CAAC,IAAI,EAAE;CACf;;AAED,SAAS,KAAK,IAAI;CACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAC;CACtD;;AAED,IAAM,YAAY,GAAC,qBACP,EAAE,MAAM,EAAE,OAAO,EAAE;CAC9B,IAAK,CAAC,MAAM,GAAG,MAAM,CAAA;CACrB,IAAK,CAAC,OAAO,GAAG,OAAO,CAAA;CACtB,CAAA;;AAEF,uBAAC,GAAG,mBAAI;CACP,IAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;CACpC,CAAA;;ACjiBF,aAAe,UAAU,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE;CACxC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;CACpC,OAAO,OAAO;CACd,CAAA;;AAED,IAAM,KAAK;CAAgB,cACf,EAAE,IAAI,EAAE,OAAO,EAAE;EAC3BK,SAAK,KAAA,CAAC,MAAA,OAAO,CAAC,CAAA;EACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;EAChB;;;;qCAAA;;CAED,gBAAA,SAAS,uBAAE,CAAC,EAAE;;EAEb,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;EAC9C,CAAA;;;EATkB,MAUnB,GAAA;;AAED,SAAS,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE;CAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CAClB;;ACrBc,IAAM,YAAY;CAAe,qBACpC,EAAE,OAAO,EAAE;EACrBA,KAAK,KAAA,CAAC,IAAA,CAAC,CAAA;EACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;EACtB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAA;;EAE7B,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,UAAU,EAAE;GAClD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;GAC3C;EACD;;;;mDAAA;;;EATwC,KAUzC,GAAA;;ACPD,eAAe,UAAU,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE;CACxCL,IAAM,KAAK,GAAG,UAAU,CAAC,eAAe,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;CACtD,CAAC,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;CACzC,OAAO,OAAO;CACd,CAAA;;AAED,IAAM,OAAO;CAAgB,gBACjB,EAAE,KAAK,EAAE,OAAO,EAAE;EAC5BK,SAAK,KAAA,CAAC,MAAA,OAAO,CAAC,CAAA;EACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;EAClB;;;;yCAAA;;CAED,kBAAA,SAAS,uBAAE,CAAC,EAAE;EACb,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;EACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;EACvB,CAAA;;CAED,kBAAA,QAAQ,sBAAE,CAAC,EAAE;EACZ,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;EACxB,OAAOA,mBAAK,CAAC,QAAQ,KAAA,CAAC,MAAA,CAAC,CAAC;EACxB,CAAA;;;EAdoB,MAerB,GAAA;;AAED,SAAS,eAAe,EAAE,OAAO,EAAE;CAClC,OAAO,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAA;CACpD;;AC1BD,IAAqB,GAAG,GAAC,YACb,IAAI;CACf,IAAK,CAAC,OAAO,GAAG,CAAC,CAAA;CAChB,CAAA;;AAEF,cAAC,OAAO,qBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CACxB,OAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;CACnB,CAAA;;AAEF,cAAC,SAAS,uBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CAC1B,OAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CAClB,CAAA;;AAEF,cAAC,QAAQ,sBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CACzB,YAAa,CAAC,CAAC,CAAC,CAAA;CAChB,IAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;;AAEF,cAAC,QAAQ,sBAAE,KAAK,EAAE,OAAO,EAAE;CAC1B,IAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC,CAAA;CACzC,CAAA;;AAEF,cAAC,KAAK,mBAAE,OAAO,EAAE,OAAO,EAAE;CACzB,IAAK,CAAC,OAAO,GAAG,OAAO,CAAA;CACvB,IAAK,OAAO,KAAK,CAAC,EAAE;EACnB,OAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAAA;EACjE;CACD,CAAA,AACD;;AC5BD,IAAqB,MAAM,GAAC,eAChB,EAAE,OAAO,EAAE,OAAO,EAAE;CAC/B,IAAK,CAAC,OAAO,GAAG,CAAC,CAAA;CACjB,IAAK,CAAC,OAAO,GAAG,OAAO,CAAA;CACvB,IAAK,CAAC,OAAO,GAAG,OAAO,CAAA;CACtB,CAAA;;AAEF,iBAAC,OAAO,qBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CACxB,IAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;;AAEF,iBAAC,SAAS,uBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CAC1B,IAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;CAC5B,CAAA;;AAEF,iBAAC,QAAQ,sBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CACzB,YAAa,CAAC,CAAC,CAAC,CAAA;CAChB,IAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;CAC5B,CAAA;;AAEF,iBAAC,QAAQ,sBAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;CACzB,IAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;CACpB,IAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;;AAEF,iBAAC,QAAQ,sBAAE,KAAK,EAAE,OAAO,EAAE;CAC1B,IAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC,CAAA;CACzC,CAAA;;AAEF,iBAAC,KAAK,mBAAE,OAAO,EAAE,OAAO,EAAE;CACzB,IAAK,CAAC,OAAO,GAAG,OAAO,CAAA;CACvB,IAAK,OAAO,KAAK,CAAC,EAAE;EACnB,OAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;EAC9B;CACD,CAAA,AACD;;ACnCc,SAASG,YAAU,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;;CAE9D,SAAS,OAAO,EAAE,CAAC,EAAE;EACpBR,IAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;EACtC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;EACnB,WAAW,CAAC,CAAC,CAAC,CAAA;EACd;;CAED,SAAS,MAAM,EAAE,CAAC,EAAE;EACnBA,IAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;EACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;EAClB,WAAW,CAAC,CAAC,CAAC,CAAA;EACd;;CAED,QAAQ,IAAI,CAAC,MAAM;EAClB,KAAK,CAAC;GACL,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;GAChC,KAAK;EACN,KAAK,CAAC;GACL,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;GACzC,KAAK;EACN,KAAK,CAAC;GACL,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;GAClD,KAAK;EACN,KAAK,CAAC;GACL,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;GAC3D,KAAK;EACN;GACC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;GAC1B,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;EACvB;;CAED,OAAO,OAAO;CACd;;ACjCc,SAASS,SAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;;CAE3D,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE;EAC1BT,IAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;EACtC,IAAI,CAAC,EAAE;GACN,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;GAClB,MAAM;GACN,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;GACnB;EACD,WAAW,CAAC,CAAC,CAAC,CAAA;EACd;;CAED,QAAQ,IAAI,CAAC,MAAM;EAClB,KAAK,CAAC;GACL,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;GAC3B,KAAK;EACN,KAAK,CAAC;GACL,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;GACpC,KAAK;EACN,KAAK,CAAC;GACL,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;GAC7C,KAAK;EACN,KAAK,CAAC;GACL,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;GACtD,KAAK;EACN;GACC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;GACrB,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;EACvB;;CAED,OAAO,OAAO;CACd;;AC9BD,oBAAe,UAAU,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;CACpD,IAAI,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,CAAA;CAC/C,OAAO,OAAO;CACd,CAAA;;AAED,IAAM,SAAS;CAAgB,kBACnB,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;EACxCK,SAAK,KAAA,CAAC,MAAA,OAAO,CAAC,CAAA;EACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;EACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;EACzB;;;;6CAAA;;CAED,oBAAA,GAAG,mBAAI;EACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;EACzC,CAAA;;CAED,oBAAA,OAAO,qBAAE,MAAM,EAAE,CAAC,EAAE;EACnBL,IAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;EACzCC,IAAI,MAAM,CAAA;;EAEV,IAAI;GACH,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;GACvC,CAAC,OAAO,CAAC,EAAE;GACX,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;GACpB,MAAM;GACN,SAAS;GACT,WAAW,CAAC,OAAO,CAAC,CAAA;GACpB;;EAED,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;EACzB,CAAA;;CAED,oBAAA,YAAY,0BAAE,MAAM,EAAE;EACrB,IAAI,MAAM,CAAC,IAAI,EAAE;GAChB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;GAC1C;;EAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;EACtC,CAAA;;CAED,oBAAA,YAAY,0BAAE,CAAC,EAAE;EAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;EACvB,CAAA;;CAED,oBAAA,SAAS,uBAAE,CAAC,EAAE;EACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;EAC1C,CAAA;;CAED,oBAAA,QAAQ,sBAAE,CAAC,EAAE;EACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;EAC3C,OAAO,IAAI;EACX,CAAA;;;EA9CsB,MA+CvB,GAAA;;;AClCD,IAAI,OAAO,EAAE;CACZ,iBAAiB,EAAE,CAAA;CACnB;;;;;;;;AAkBD,AAAO,SAAS,SAAS,EAAE,SAAS,EAAE;CACrC,OAAO,SAAS,aAAa,IAAW;;;;EACvC,OAAO,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;EAC1C;CACD;;AAED,SAAS,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;CAChDD,IAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;CAC/C,OAAO,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC;CACrD;;;;;;;;;;;AAWD,AAAO,SAAS,QAAQ,EAAE,CAAC,EAAE;CAC5B,OAAO,SAAS,WAAW,IAAW;;;;EACrC,OAAO,WAAW,CAACU,SAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;EACzD;CACD;;;;AAID,AAAO,SAAS,OAAO,EAAE,CAAC,EAAW;;;;CACpC,OAAO,WAAW,CAACA,SAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;CACzD;;;;;;;;;;AAUD,AAAO,SAAS,UAAU,EAAE,CAAC,EAAW;;;;CACvC,OAAO,WAAW,CAACC,YAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;CAC5D;;AAED,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE;CAC/C,aAAa,CAAC,CAAC,CAAC,CAAA;;CAEhB,IAAI;EACH,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;EACxB,CAAC,OAAO,CAAC,EAAE;EACX,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;EACZ;;CAED,OAAO,CAAC;CACR;;;;;;;AAOD,AAAO,SAAS,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE;;CAE7BX,IAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACpB,OAAO,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;CAC9B;;;AAGD,AAAO,SAAS,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE;CAC/BA,IAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACpB,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;CACvD;;;;;;;AAOD,AAAO,SAAS,GAAG,EAAE,QAAQ,EAAE;CAC9B,OAAO,eAAe,CAAC,IAAI,GAAG,EAAE,EAAE,QAAQ,CAAC;CAC3C;;;AAGD,AAAO,SAAS,MAAM,EAAE,QAAQ,EAAE;CACjCA,IAAM,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;CAC3D,OAAO,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;CACzC;;;;;;;AAOD,AAAO,SAAS,KAAK,EAAE,CAAC,EAAW;;;;CAClC,OAAO,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;CAC9B;;AAED,SAAS,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;CACpCA,IAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;CAC3E,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC;CACrC;;AAED,IAAM,YAAY,GAAC,qBACP,EAAE,CAAC,EAAE,CAAC,EAAE;CACnB,IAAK,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;CACzD,IAAK,CAAC,CAAC,GAAG,CAAC,CAAA;CACX,IAAK,CAAC,CAAC,GAAG,CAAC,CAAA;CACX,IAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAA;CACtB,IAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAA;CAClB,CAAA;;AAEF,uBAAC,KAAK,mBAAE,OAAO,EAAE,IAAI,EAAE;CACtB,IAAK,CAAC,OAAO,GAAG,OAAO,CAAA;CACvB,IAAK,CAAC,IAAI,GAAG,IAAI,CAAA;CACjB,SAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;CACnB,CAAA;;AAEF,uBAAC,GAAG,mBAAI;CACP,IAAO,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;CACpC,IAAK;EACJ,IAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;EACtD,CAAC,OAAO,CAAC,EAAE;EACZ,IAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;EACvB;CACF,WAAY,CAAC,CAAC,CAAC,CAAA;CACd,CAAA;;AAGF,SAAS,aAAa,EAAE,CAAC,EAAE;CAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;EAC5B,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC;EACvD;CACD;;;;;;AAMDA,IAAM,MAAM,GAAG,EAAE,CAAA;;;;;AAKjB,IAAM,YAAY;CAAgB,qBACtB,EAAE,CAAC,EAAE;EACfK,SAAK,KAAA,CAAC,IAAA,CAAC,CAAA;EACP,WAAW,CAACM,YAAW,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;EACjD;;;;mDAAA;;;EAJyB,MAK1B,GAAA;;AAED,YAAY,CAAC,OAAO,GAAG,OAAO,CAAA;AAC9B,YAAY,CAAC,MAAM,GAAG,MAAM,CAAA;AAC5B,YAAY,CAAC,GAAG,GAAG,GAAG,CAAA;AACtB,YAAY,CAAC,IAAI,GAAG,IAAI,CAAA;;AAExB,AAAO,SAAS,IAAI,IAAI;;CAEvBX,IAAM,IAAI,GAAG,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,CAAA;;;CAGrD,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;EAChC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAA;;EAE3B,MAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;EACzC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAA;EAC7B;;CAED,OAAO,IAAI;CACX;;AAED;AAGA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;CAClC,IAAI,EAAE,CAAA;CACN;;"} \ No newline at end of file diff --git a/dist/creed.js b/dist/creed.js index 2cb5706..4061516 100644 --- a/dist/creed.js +++ b/dist/creed.js @@ -77,6 +77,12 @@ var isNode = typeof process !== 'undefined' && var MutationObs = (typeof MutationObserver === 'function' && MutationObserver) || (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver); +var getenv = function (name) { return isNode && process.env[name]; }; + +var isDebug = getenv('CREED_DEBUG') || + getenv('NODE_ENV') === 'development' || + getenv('NODE_ENV') === 'test'; + /* global process,document */ var makeAsync = function (f) { @@ -128,6 +134,93 @@ TaskQueue.prototype._drain = function _drain () { this.length = 0; }; +var noop = function () {}; + +// WARNING: shared mutable notion of "current context" +var _currentContext; +var _createContext = noop; + +// Get the current context +var peekContext = function () { return _currentContext; }; + +// Append a new context to the current, and set the current context +// to the newly appended one +var pushContext = function (at, tag) { return _createContext(_currentContext, at, tag); }; + +// Set the current context to the provided one, returning the +// previously current context (which makes it easy to swap back +// to it) +var swapContext = function (context) { + var previousContext = _currentContext; + _currentContext = context; + return previousContext +}; + +// Enable context tracing. Must provide: +// createContext :: c -> Function -> String -> c +// Given the current context, and a function and string tag representing a new context, +// return a new current context +// initialContext :: c +// An initial current context +var traceAsync = function (createContext, initialContext) { + _createContext = createContext; + _currentContext = initialContext; +}; + +// Enable default context tracing +var enableAsyncTraces = function () { return traceAsync(createContext, undefined); }; + +// Disable context tracing +var disableAsyncTraces = function () { return traceAsync(noop, undefined); }; + +// ------------------------------------------------------ +// Default context tracing + +var createContext = function (currentContext, at, tag) { return new Context(currentContext, tag || at.name, at); }; + +var captureStackTrace = Error.captureStackTrace || noop; + +var Context = function Context (next, tag, at) { + this.next = next; + this.tag = tag; + captureStackTrace(this, at); +}; + +Context.prototype.toString = function toString () { + return this.tag ? (" from " + (this.tag) + ":") : ' from previous context:' +}; + +// ------------------------------------------------------ +// Default context formatting + +// If e is an Error, attach an async trace for the provided context. +// Otherwise, do nothing. +var attachTrace = function (e, context) { return context != null && e instanceof Error ? formatTrace(e, context) : e; }; + +// Attach an async trace to e for the provided context +function formatTrace (e, context) { + if (!e._creedOriginalStack) { + e._creedOriginalStack = e.stack; + e.stack = formatContext(elideTrace(e.stack), context); + } + return e +} + +// Fold context list into a newline-separated, combined async trace +function formatContext (trace, context) { + if (context == null) { + return trace + } + var s = elideTrace(context.stack); + return formatContext(s.indexOf(' at ') < 0 ? trace : (trace + '\n' + s), context.next) +} + +var elideTraceRx = + /\s*at\s.*(creed[\\/](src|dist)[\\/]|internal[\\/]process[\\/]|\((timers|module)\.js).+:\d.*/g; + +// Remove internal stack frames +var elideTrace = function (stack) { return stack.replace(elideTraceRx, ''); }; + var UNHANDLED_REJECTION = 'unhandledRejection'; var HANDLED_REJECTION = 'rejectionHandled'; @@ -138,7 +231,9 @@ var ErrorHandler = function ErrorHandler (emitEvent, reportError) { }; ErrorHandler.prototype.track = function track (rejected) { - if (!this.emit(UNHANDLED_REJECTION, rejected, rejected.value)) { + var e = attachTrace(rejected.value, rejected.context); + + if (!this.emit(UNHANDLED_REJECTION, rejected, e)) { /* istanbul ignore else */ if (this.rejections.length === 0) { setTimeout(reportErrors, 1, this.reportError, this.rejections); @@ -206,15 +301,15 @@ var makeEmitError = function () { return !self.dispatchEvent(ev) } - }(noop, self, CustomEvent)) + }(noop$1, self, CustomEvent)) } // istanbul ignore next */ - return noop + return noop$1 }; // istanbul ignore next */ -function noop () {} +function noop$1 () {} // maybeThenable :: * -> boolean function maybeThenable (x) { @@ -223,6 +318,7 @@ function maybeThenable (x) { var Action = function Action (promise) { this.promise = promise; + this.context = pushContext(this.constructor); }; // default onFulfilled action @@ -484,30 +580,30 @@ function handleItem (resolve, handler, x, i, promise) { } else if (isRejected(p)) { handler.rejectAt(p, i, promise); } else { - p._runAction(new Indexed(handler, i, promise)); + p._runAction(new AtIndex(handler, i, promise)); } } -var Indexed = (function (Action$$1) { - function Indexed (handler, i, promise) { +var AtIndex = (function (Action$$1) { + function AtIndex (handler, i, promise) { Action$$1.call(this, promise); this.i = i; this.handler = handler; } - if ( Action$$1 ) Indexed.__proto__ = Action$$1; - Indexed.prototype = Object.create( Action$$1 && Action$$1.prototype ); - Indexed.prototype.constructor = Indexed; + if ( Action$$1 ) AtIndex.__proto__ = Action$$1; + AtIndex.prototype = Object.create( Action$$1 && Action$$1.prototype ); + AtIndex.prototype.constructor = AtIndex; - Indexed.prototype.fulfilled = function fulfilled (p) { + AtIndex.prototype.fulfilled = function fulfilled (p) { this.handler.fulfillAt(p, this.i, this.promise); }; - Indexed.prototype.rejected = function rejected (p) { + AtIndex.prototype.rejected = function rejected (p) { return this.handler.rejectAt(p, this.i, this.promise) }; - return Indexed; + return AtIndex; }(Action)); function createCommonjsModule(fn, module) { @@ -550,9 +646,12 @@ var index = createCommonjsModule(function (module) { var taskQueue = new TaskQueue(); /* istanbul ignore next */ -var errorHandler = new ErrorHandler(makeEmitError(), function (e) { - throw e.value -}); +var handleError = function (ref) { +var value = ref.value; + throw value }; + +/* istanbul ignore next */ +var errorHandler = new ErrorHandler(makeEmitError(), handleError); // ------------------------------------------------------------- // ## Types @@ -560,8 +659,10 @@ var errorHandler = new ErrorHandler(makeEmitError(), function (e) { // Internal base type, provides fantasy-land namespace // and type representative -var Core = function Core () {}; - +var Core = function Core () { + this.context = peekContext(); +}; +// empty :: Promise e a Core.empty = function empty () { return never() }; @@ -836,7 +937,9 @@ var Fulfilled = (function (Core) { }; Fulfilled.prototype._runAction = function _runAction (action) { + var c = swapContext(action.context); action.fulfilled(this); + swapContext(c); }; return Fulfilled; @@ -905,9 +1008,11 @@ var Rejected = (function (Core) { }; Rejected.prototype._runAction = function _runAction (action) { + var c = swapContext(action.context); if (action.rejected(this)) { errorHandler.untrack(this); } + swapContext(c); }; return Rejected; @@ -1237,13 +1342,17 @@ Settle.prototype.check = function check (pending, promise) { }; function runPromise$1 (f, thisArg, args, promise) { - /* eslint complexity:[2,5] */ + /* eslint complexity:[2,5] */ function resolve (x) { + var c = swapContext(promise.context); promise._resolve(x); + swapContext(c); } function reject (e) { + var c = swapContext(promise.context); promise._reject(e); + swapContext(c); } switch (args.length) { @@ -1268,13 +1377,15 @@ function runPromise$1 (f, thisArg, args, promise) { } function runNode$1 (f, thisArg, args, promise) { - /* eslint complexity:[2,5] */ + /* eslint complexity:[2,5] */ function settleNode (e, x) { + var c = swapContext(promise.context); if (e) { promise._reject(e); } else { promise._fulfill(x); } + swapContext(c); } switch (args.length) { @@ -1319,18 +1430,22 @@ var Coroutine = (function (Action$$1) { }; Coroutine.prototype.tryStep = function tryStep (resume, x) { + var context = swapContext(this.context); var result; // test if `resume` (and only it) throws try { result = resume.call(this.generator, x); } catch (e) { - this.promise._reject(e); + this.handleReject(e); return - } // else - this.handle(result); + } finally { + swapContext(context); + }// else + + this.handleResult(result); }; - Coroutine.prototype.handle = function handle (result) { + Coroutine.prototype.handleResult = function handleResult (result) { if (result.done) { return this.promise._resolve(result.value) } @@ -1338,18 +1453,27 @@ var Coroutine = (function (Action$$1) { this.resolve(result.value)._when(this); }; - Coroutine.prototype.fulfilled = function fulfilled (ref) { - this.tryStep(this.generator.next, ref.value); + Coroutine.prototype.handleReject = function handleReject (e) { + this.promise._reject(e); + }; + + Coroutine.prototype.fulfilled = function fulfilled (p) { + this.tryStep(this.generator.next, p.value); }; - Coroutine.prototype.rejected = function rejected (ref) { - this.tryStep(this.generator.throw, ref.value); + Coroutine.prototype.rejected = function rejected (p) { + this.tryStep(this.generator.throw, p.value); return true }; return Coroutine; }(Action)); +/* istanbul ignore next */ +if (isDebug) { + enableAsyncTraces(); +} + // ------------------------------------------------------------- // ## Coroutine // ------------------------------------------------------------- @@ -1475,6 +1599,7 @@ function runMerge (f, thisArg, args) { } var MergeHandler = function MergeHandler (f, c) { + this.context = pushContext(this.constructor, Merge.name); this.f = f; this.c = c; this.promise = void 0; @@ -1488,11 +1613,13 @@ MergeHandler.prototype.merge = function merge (promise, args) { }; MergeHandler.prototype.run = function run () { + var c = swapContext(this.context); try { this.promise._resolve(this.f.apply(this.c, this.args)); } catch (e) { this.promise._reject(e); } + swapContext(c); }; function checkFunction (f) { @@ -1548,6 +1675,8 @@ if (typeof Promise !== 'function') { shim(); } +exports.enableAsyncTraces = enableAsyncTraces; +exports.disableAsyncTraces = disableAsyncTraces; exports.resolve = resolve; exports.reject = reject; exports.future = future; diff --git a/dist/creed.js.map b/dist/creed.js.map index 72e877d..89459da 100644 --- a/dist/creed.js.map +++ b/dist/creed.js.map @@ -1 +1 @@ -{"version":3,"file":"creed.js","sources":["../src/state.js","../src/inspect.js","../src/env.js","../src/async.js","../src/TaskQueue.js","../src/ErrorHandler.js","../src/emitError.js","../src/maybeThenable.js","../src/Action.js","../src/tryCall.js","../src/then.js","../src/map.js","../src/bimap.js","../src/chain.js","../src/Race.js","../src/Merge.js","../src/iterable.js","../node_modules/fantasy-land/index.js","../src/Promise.js","../src/delay.js","../src/TimeoutError.js","../src/timeout.js","../src/Any.js","../src/Settle.js","../src/runPromise.js","../src/node.js","../src/coroutine.js","../src/main.js"],"sourcesContent":["/* eslint no-multi-spaces: 0 */\nexport const PENDING = 1 << 0\nexport const FULFILLED = 1 << 1\nexport const REJECTED = 1 << 2\nexport const SETTLED = FULFILLED | REJECTED\nexport const NEVER = 1 << 3\n\nexport const HANDLED = 1 << 4\n","import { PENDING, FULFILLED, REJECTED, SETTLED, NEVER, HANDLED } from './state'\n\nexport function isPending (p) {\n\treturn (p.state() & PENDING) > 0\n}\n\nexport function isFulfilled (p) {\n\treturn (p.state() & FULFILLED) > 0\n}\n\nexport function isRejected (p) {\n\treturn (p.state() & REJECTED) > 0\n}\n\nexport function isSettled (p) {\n\treturn (p.state() & SETTLED) > 0\n}\n\nexport function isNever (p) {\n\treturn (p.state() & NEVER) > 0\n}\n\nexport function isHandled (p) {\n\treturn (p.state() & HANDLED) > 0\n}\n\nexport function getValue (p) {\n\tconst n = p.near()\n\tif (!isFulfilled(n)) {\n\t\tthrow new TypeError('getValue called on ' + p)\n\t}\n\n\treturn n.value\n}\n\nexport function getReason (p) {\n\tconst n = p.near()\n\tif (!isRejected(n)) {\n\t\tthrow new TypeError('getReason called on ' + p)\n\t}\n\n\tsilenceError(n)\n\treturn n.value\n}\n\nexport function silenceError (p) {\n\tp._runAction(silencer)\n}\n\n// implements Action\nconst silencer = {\n\tfulfilled () {},\n\trejected (p) {\n\t\tp._state |= HANDLED\n\t}\n}\n","/* global process,MutationObserver,WebKitMutationObserver */\n\nconst isNode = typeof process !== 'undefined' &&\n Object.prototype.toString.call(process) === '[object process]'\n\n/* istanbul ignore next */\nconst MutationObs = (typeof MutationObserver === 'function' && MutationObserver) ||\n (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver)\n\nexport { isNode, MutationObs }\n","import { isNode, MutationObs } from './env'\n\n/* global process,document */\n\nexport default function (f) {\n\treturn isNode ? createNodeScheduler(f) /* istanbul ignore next */\n\t\t: MutationObs ? createBrowserScheduler(f)\n\t\t: createFallbackScheduler(f)\n}\n\n/* istanbul ignore next */\nfunction createFallbackScheduler (f) {\n\treturn () => setTimeout(f, 0)\n}\n\nfunction createNodeScheduler (f) {\n\treturn () => process.nextTick(f)\n}\n\n/* istanbul ignore next */\nfunction createBrowserScheduler (f) {\n\tconst node = document.createTextNode('')\n\tnew MutationObs(f).observe(node, { characterData: true })\n\n\tlet i = 0\n\treturn () => { node.data = (i ^= 1) }\n}\n","import makeAsync from './async'\n\nexport default class TaskQueue {\n\tconstructor () {\n\t\tthis.tasks = new Array(2 << 15)\n\t\tthis.length = 0\n\t\tthis.drain = makeAsync(() => this._drain())\n\t}\n\n\tadd (task) {\n\t\tif (this.length === 0) {\n\t\t\tthis.drain()\n\t\t}\n\n\t\tthis.tasks[this.length++] = task\n\t}\n\n\t_drain () {\n\t\tconst q = this.tasks\n\t\tfor (let i = 0; i < this.length; ++i) {\n\t\t\tq[i].run()\n\t\t\tq[i] = void 0\n\t\t}\n\t\tthis.length = 0\n\t}\n}\n","import { silenceError, isHandled } from './inspect'\n\nconst UNHANDLED_REJECTION = 'unhandledRejection'\nconst HANDLED_REJECTION = 'rejectionHandled'\n\nexport default class ErrorHandler {\n\tconstructor (emitEvent, reportError) {\n\t\tthis.rejections = []\n\t\tthis.emit = emitEvent\n\t\tthis.reportError = reportError\n\t}\n\n\ttrack (rejected) {\n\t\tif (!this.emit(UNHANDLED_REJECTION, rejected, rejected.value)) {\n\t\t\t/* istanbul ignore else */\n\t\t\tif (this.rejections.length === 0) {\n\t\t\t\tsetTimeout(reportErrors, 1, this.reportError, this.rejections)\n\t\t\t}\n\t\t\tthis.rejections.push(rejected)\n\t\t}\n\t}\n\n\tuntrack (rejected) {\n\t\tsilenceError(rejected)\n\t\tthis.emit(HANDLED_REJECTION, rejected)\n\t}\n}\n\nfunction reportErrors (report, rejections) {\n\ttry {\n\t\treportAll(rejections, report)\n\t} finally {\n\t\trejections.length = 0\n\t}\n}\n\nfunction reportAll (rejections, report) {\n\tfor (let i = 0; i < rejections.length; ++i) {\n\t\tconst rejected = rejections[i]\n\t\t/* istanbul ignore else */\n\t\tif (!isHandled(rejected)) {\n\t\t\treport(rejected)\n\t\t}\n\t}\n}\n","import { isNode } from './env'\n\nconst UNHANDLED_REJECTION = 'unhandledRejection'\n\nexport default function () {\n\t/* global process, self, CustomEvent */\n\t// istanbul ignore else */\n\tif (isNode && typeof process.emit === 'function') {\n\t\t// Returning falsy here means to call the default reportRejection API.\n\t\t// This is safe even in browserify since process.emit always returns\n\t\t// falsy in browserify:\n\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\treturn function (type, error) {\n\t\t\treturn type === UNHANDLED_REJECTION\n\t\t\t\t? process.emit(type, error.value, error)\n\t\t\t\t: process.emit(type, error)\n\t\t}\n\t} else if (typeof self !== 'undefined' && typeof CustomEvent === 'function') {\n\t\treturn (function (noop, self, CustomEvent) {\n\t\t\tvar hasCustomEvent\n\t\t\ttry {\n\t\t\t\thasCustomEvent = new CustomEvent(UNHANDLED_REJECTION) instanceof CustomEvent\n\t\t\t} catch (e) {\n\t\t\t\thasCustomEvent = false\n\t\t\t}\n\n\t\t\treturn !hasCustomEvent ? noop : function (type, error) {\n\t\t\t\tconst ev = new CustomEvent(type, {\n\t\t\t\t\tdetail: {\n\t\t\t\t\t\treason: error.value,\n\t\t\t\t\t\tpromise: error\n\t\t\t\t\t},\n\t\t\t\t\tbubbles: false,\n\t\t\t\t\tcancelable: true\n\t\t\t\t})\n\n\t\t\t\treturn !self.dispatchEvent(ev)\n\t\t\t}\n\t\t}(noop, self, CustomEvent))\n\t}\n\n\t// istanbul ignore next */\n\treturn noop\n}\n\n// istanbul ignore next */\nfunction noop () {}\n","// maybeThenable :: * -> boolean\nexport default function maybeThenable (x) {\n\treturn (typeof x === 'object' || typeof x === 'function') && x !== null\n}\n","export default class Action {\n\tconstructor (promise) {\n\t\tthis.promise = promise\n\t}\n\n\t// default onFulfilled action\n\t/* istanbul ignore next */\n\tfulfilled (p) {\n\t\tthis.promise._become(p)\n\t}\n\n\t// default onRejected action\n\trejected (p) {\n\t\tthis.promise._become(p)\n\t\treturn false\n\t}\n}\n","export default function tryCall (f, x, handle, promise) {\n\tlet result\n\t// test if `f` (and only it) throws\n\ttry {\n\t\tresult = f(x)\n\t} catch (e) {\n\t\tpromise._reject(e)\n\t\treturn\n\t} // else\n\thandle(promise, result)\n}\n","import Action from './Action'\nimport tryCall from './tryCall'\n\nexport default function then (f, r, p, promise) {\n\tp._when(new Then(f, r, promise))\n\treturn promise\n}\n\nclass Then extends Action {\n\tconstructor (f, r, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t\tthis.r = r\n\t}\n\n\tfulfilled (p) {\n\t\tthis.runThen(this.f, p)\n\t}\n\n\trejected (p) {\n\t\treturn this.runThen(this.r, p)\n\t}\n\n\trunThen (f, p) {\n\t\tif (typeof f !== 'function') {\n\t\t\tthis.promise._become(p)\n\t\t\treturn false\n\t\t}\n\t\ttryCall(f, p.value, handleThen, this.promise)\n\t\treturn true\n\t}\n}\n\nfunction handleThen (promise, result) {\n\tpromise._resolve(result)\n}\n\n","import Action from './Action'\nimport tryCall from './tryCall'\n\nexport default function (f, p, promise) {\n\tp._when(new Map(f, promise))\n\treturn promise\n}\n\nexport class Map extends Action {\n\tconstructor (f, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t}\n\n\tfulfilled (p) {\n\t\ttryCall(this.f, p.value, handleMap, this.promise)\n\t}\n}\n\nfunction handleMap (promise, result) {\n\tpromise._fulfill(result)\n}\n\n","import { Map } from './map'\nimport tryCall from './tryCall'\n\nexport default function (r, f, p, promise) {\n\tp._when(new Bimap(r, f, promise))\n\treturn promise\n}\n\nclass Bimap extends Map {\n\tconstructor (r, f, promise) {\n\t\tsuper(f, promise)\n\t\tthis.r = r\n\t}\n\n\trejected (p) {\n\t\ttryCall(this.r, p.value, handleMapRejected, this.promise)\n\t}\n}\n\nfunction handleMapRejected (promise, result) {\n\tpromise._reject(result)\n}\n","import Action from './Action'\nimport tryCall from './tryCall'\nimport maybeThenable from './maybeThenable'\n\nexport default function (f, p, promise) {\n\tp._when(new Chain(f, promise))\n\treturn promise\n}\n\nclass Chain extends Action {\n\tconstructor (f, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t}\n\n\tfulfilled (p) {\n\t\ttryCall(this.f, p.value, handleChain, this.promise)\n\t}\n}\n\nfunction handleChain (promise, result) {\n\tif (!(maybeThenable(result) && typeof result.then === 'function')) {\n\t\tpromise._reject(new TypeError('f must return a promise'))\n\t}\n\n\tpromise._resolve(result)\n}\n","import { silenceError } from './inspect'\n\nexport default class Race {\n\tconstructor (never) {\n\t\tthis.never = never\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tpromise._fulfill(x)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tpromise._become(p)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\t// In the case where the result promise has been resolved\n\t\t// need to silence all subsequently seen rejections\n\t\tpromise._isResolved() ? silenceError(p) : promise._become(p)\n\t}\n\n\tcomplete (total, promise) {\n\t\tif (total === 0) {\n\t\t\tpromise._become(this.never())\n\t\t}\n\t}\n}\n","import { silenceError } from './inspect'\n\nexport default class Merge {\n\tconstructor (mergeHandler, results) {\n\t\tthis.pending = 0\n\t\tthis.results = results\n\t\tthis.mergeHandler = mergeHandler\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tthis.results[i] = x\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tthis.valueAt(p.value, i, promise)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\t// In the case where the result promise has been resolved\n\t\t// need to silence all subsequently seen rejections\n\t\tpromise._isResolved() ? silenceError(p) : promise._become(p)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tthis.mergeHandler.merge(promise, this.results)\n\t\t}\n\t}\n}\n","import { isFulfilled, isRejected, silenceError } from './inspect'\nimport Action from './Action'\nimport maybeThenable from './maybeThenable'\n\nexport function resultsArray (iterable) {\n\treturn Array.isArray(iterable) ? new Array(iterable.length) : []\n}\n\nexport function resolveIterable (resolve, handler, promises, promise) {\n\tconst run = Array.isArray(promises) ? runArray : runIterable\n\ttry {\n\t\trun(resolve, handler, promises, promise)\n\t} catch (e) {\n\t\tpromise._reject(e)\n\t}\n\treturn promise.near()\n}\n\nfunction runArray (resolve, handler, promises, promise) {\n\tlet i = 0\n\n\tfor (; i < promises.length; ++i) {\n\t\thandleItem(resolve, handler, promises[i], i, promise)\n\t}\n\n\thandler.complete(i, promise)\n}\n\nfunction runIterable (resolve, handler, promises, promise) {\n\tlet i = 0\n\tconst iter = promises[Symbol.iterator]()\n\n\twhile (true) {\n\t\tconst step = iter.next()\n\t\tif (step.done) {\n\t\t\tbreak\n\t\t}\n\t\thandleItem(resolve, handler, step.value, i++, promise)\n\t}\n\n\thandler.complete(i, promise)\n}\n\nfunction handleItem (resolve, handler, x, i, promise) {\n\t/* eslint complexity:[1,6] */\n\tif (!maybeThenable(x)) {\n\t\thandler.valueAt(x, i, promise)\n\t\treturn\n\t}\n\n\tconst p = resolve(x)\n\n\tif (promise._isResolved()) {\n\t\tif (!isFulfilled(p)) {\n\t\t\tsilenceError(p)\n\t\t}\n\t} else if (isFulfilled(p)) {\n\t\thandler.fulfillAt(p, i, promise)\n\t} else if (isRejected(p)) {\n\t\thandler.rejectAt(p, i, promise)\n\t} else {\n\t\tp._runAction(new Indexed(handler, i, promise))\n\t}\n}\n\nclass Indexed extends Action {\n\tconstructor (handler, i, promise) {\n\t\tsuper(promise)\n\t\tthis.i = i\n\t\tthis.handler = handler\n\t}\n\n\tfulfilled (p) {\n\t\tthis.handler.fulfillAt(p, this.i, this.promise)\n\t}\n\n\trejected (p) {\n\t\treturn this.handler.rejectAt(p, this.i, this.promise)\n\t}\n}\n","(function() {\n\n 'use strict';\n\n /* eslint comma-dangle: [\"off\"], no-var: [\"off\"], strict: [\"error\", \"function\"] */\n /* global self */\n\n var mapping = {\n equals: 'fantasy-land/equals',\n concat: 'fantasy-land/concat',\n empty: 'fantasy-land/empty',\n map: 'fantasy-land/map',\n ap: 'fantasy-land/ap',\n of: 'fantasy-land/of',\n alt: 'fantasy-land/alt',\n zero: 'fantasy-land/zero',\n reduce: 'fantasy-land/reduce',\n traverse: 'fantasy-land/traverse',\n chain: 'fantasy-land/chain',\n chainRec: 'fantasy-land/chainRec',\n extend: 'fantasy-land/extend',\n extract: 'fantasy-land/extract',\n bimap: 'fantasy-land/bimap',\n promap: 'fantasy-land/promap'\n };\n\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = mapping;\n } else {\n self.FantasyLand = mapping;\n }\n\n}());\n","import TaskQueue from './TaskQueue'\nimport ErrorHandler from './ErrorHandler'\nimport makeEmitError from './emitError'\nimport maybeThenable from './maybeThenable'\nimport { PENDING, FULFILLED, REJECTED, NEVER } from './state'\nimport { isNever, isSettled } from './inspect'\n\nimport then from './then'\nimport map from './map'\nimport bimap from './bimap'\nimport chain from './chain'\n\nimport Race from './Race'\nimport Merge from './Merge'\nimport { resolveIterable, resultsArray } from './iterable'\n\nimport fl from 'fantasy-land'\n\nconst taskQueue = new TaskQueue()\nexport { taskQueue }\n\n/* istanbul ignore next */\nconst errorHandler = new ErrorHandler(makeEmitError(), e => {\n\tthrow e.value\n})\n\n// -------------------------------------------------------------\n// ## Types\n// -------------------------------------------------------------\n\n// Internal base type, provides fantasy-land namespace\n// and type representative\nclass Core {\n\t// empty :: Promise e a\n\tstatic empty () {\n\t\treturn never()\n\t}\n\n\t// of :: a -> Promise e a\n\tstatic of (x) {\n\t\treturn fulfill(x)\n\t}\n\n\tstatic [fl.empty] () {\n\t\treturn never()\n\t}\n\n\tstatic [fl.of] (x) {\n\t\treturn fulfill(x)\n\t}\n\n\t[fl.map] (f) {\n\t\treturn this.map(f)\n\t}\n\n\t[fl.bimap] (r, f) {\n\t\treturn this.bimap(r, f)\n\t}\n\n\t[fl.ap] (pf) {\n\t\treturn pf.ap(this)\n\t}\n\n\t[fl.chain] (f) {\n\t\treturn this.chain(f)\n\t}\n\n\t[fl.concat] (p) {\n\t\treturn this.concat(p)\n\t}\n\n\t[fl.alt] (p) {\n\t\treturn this.or(p)\n\t}\n\n\tstatic [fl.zero] () {\n\t\treturn never()\n\t}\n\n\t// @deprecated The name concat is deprecated, use or() instead.\n\tconcat (b) {\n\t\treturn this.or(b)\n\t}\n}\n\n// data Promise e a where\n// Future :: Promise e a\n// Fulfilled :: a -> Promise e a\n// Rejected :: Error e => e -> Promise e a\n// Never :: Promise e a\n\n// Future :: Promise e a\n// A promise whose value cannot be known until some future time\nexport class Future extends Core {\n\tconstructor () {\n\t\tsuper()\n\t\tthis.ref = void 0\n\t\tthis.action = void 0\n\t\tthis.length = 0\n\t}\n\n\t// then :: Promise e a -> (a -> b) -> Promise e b\n\t// then :: Promise e a -> () -> (e -> b) -> Promise e b\n\t// then :: Promise e a -> (a -> b) -> (e -> b) -> Promise e b\n\tthen (f, r) {\n\t\tconst n = this.near()\n\t\treturn n === this ? then(f, r, this, new Future()) : n.then(f, r)\n\t}\n\n\t// catch :: Promise e a -> (e -> b) -> Promise e b\n\tcatch (r) {\n\t\tconst n = this.near()\n\t\treturn n === this ? then(void 0, r, this, new Future()) : n.catch(r)\n\t}\n\n\t// map :: Promise e a -> (a -> b) -> Promise e b\n\tmap (f) {\n\t\tconst n = this.near()\n\t\treturn n === this ? map(f, this, new Future()) : n.map(f)\n\t}\n\n\tbimap (r, f) {\n\t\tconst n = this.near()\n\t\treturn n === this\n\t\t\t? bimap(r, f, this, new Future())\n\t\t\t: n.bimap(r, f)\n\t}\n\n\t// ap :: Promise e (a -> b) -> Promise e a -> Promise e b\n\tap (p) {\n\t\tconst n = this.near()\n\t\tconst pn = p.near()\n\t\treturn n === this ? this.chain(f => pn.map(f)) : n.ap(pn)\n\t}\n\n\t// chain :: Promise e a -> (a -> Promise e b) -> Promise e b\n\tchain (f) {\n\t\tconst n = this.near()\n\t\treturn n === this ? chain(f, this, new Future()) : n.chain(f)\n\t}\n\n\t// or :: Promise e a -> Promise e a -> Promise e a\n\tor (b) {\n\t\t/* eslint complexity:[2,5] */\n\t\tconst n = this.near()\n\t\tconst bn = b.near()\n\n\t\treturn isSettled(n) || isNever(bn) ? n\n\t\t\t: isSettled(bn) || isNever(n) ? bn\n\t\t\t: race([n, bn])\n\t}\n\n\t// toString :: Promise e a -> String\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\t// inspect :: Promise e a -> String\n\tinspect () {\n\t\tconst n = this.near()\n\t\treturn n === this ? 'Promise { pending }' : n.inspect()\n\t}\n\n\t// near :: Promise e a -> Promise e a\n\tnear () {\n\t\tif (!this._isResolved()) {\n\t\t\treturn this\n\t\t}\n\n\t\tthis.ref = this.ref.near()\n\t\treturn this.ref\n\t}\n\n\t// state :: Promise e a -> Int\n\tstate () {\n\t\treturn this._isResolved() ? this.ref.near().state() : PENDING\n\t}\n\n\t_isResolved () {\n\t\treturn this.ref !== void 0\n\t}\n\n\t_when (action) {\n\t\tthis._runAction(action)\n\t}\n\n\t_runAction (action) {\n\t\tif (this.action === void 0) {\n\t\t\tthis.action = action\n\t\t} else {\n\t\t\tthis[this.length++] = action\n\t\t}\n\t}\n\n\t_resolve (x) {\n\t\tthis._become(resolve(x))\n\t}\n\n\t_fulfill (x) {\n\t\tthis._become(new Fulfilled(x))\n\t}\n\n\t_reject (e) {\n\t\tif (this._isResolved()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.__become(new Rejected(e))\n\t}\n\n\t_become (p) {\n\t\tif (this._isResolved()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.__become(p)\n\t}\n\n\t__become (p) {\n\t\tthis.ref = p === this ? cycle() : p\n\n\t\tif (this.action === void 0) {\n\t\t\treturn\n\t\t}\n\n\t\ttaskQueue.add(this)\n\t}\n\n\trun () {\n\t\tconst p = this.ref.near()\n\t\tp._runAction(this.action)\n\t\tthis.action = void 0\n\n\t\tfor (let i = 0; i < this.length; ++i) {\n\t\t\tp._runAction(this[i])\n\t\t\tthis[i] = void 0\n\t\t}\n\t}\n}\n\n// Fulfilled :: a -> Promise e a\n// A promise whose value is already known\nclass Fulfilled extends Core {\n\tconstructor (x) {\n\t\tsuper()\n\t\tthis.value = x\n\t}\n\n\tthen (f) {\n\t\treturn typeof f === 'function' ? then(f, void 0, this, new Future()) : this\n\t}\n\n\tcatch () {\n\t\treturn this\n\t}\n\n\tmap (f) {\n\t\treturn map(f, this, new Future())\n\t}\n\n\tbimap (_, f) {\n\t\treturn this.map(f)\n\t}\n\n\tap (p) {\n\t\treturn p.map(this.value)\n\t}\n\n\tchain (f) {\n\t\treturn chain(f, this, new Future())\n\t}\n\n\tor () {\n\t\treturn this\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { fulfilled: ' + this.value + ' }'\n\t}\n\n\tstate () {\n\t\treturn FULFILLED\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when (action) {\n\t\ttaskQueue.add(new Continuation(action, this))\n\t}\n\n\t_runAction (action) {\n\t\taction.fulfilled(this)\n\t}\n}\n\n// Rejected :: Error e => e -> Promise e a\n// A promise whose value cannot be known due to some reason/error\nclass Rejected extends Core {\n\tconstructor (e) {\n\t\tsuper()\n\t\tthis.value = e\n\t\tthis._state = REJECTED\n\t\terrorHandler.track(this)\n\t}\n\n\tthen (_, r) {\n\t\treturn typeof r === 'function' ? this.catch(r) : this\n\t}\n\n\tcatch (r) {\n\t\treturn then(void 0, r, this, new Future())\n\t}\n\n\tmap () {\n\t\treturn this\n\t}\n\n\tbimap (r) {\n\t\treturn bimap(r, void 0, this, new Future())\n\t}\n\n\tap () {\n\t\treturn this\n\t}\n\n\tchain () {\n\t\treturn this\n\t}\n\n\tor () {\n\t\treturn this\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { rejected: ' + this.value + ' }'\n\t}\n\n\tstate () {\n\t\treturn this._state\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when (action) {\n\t\ttaskQueue.add(new Continuation(action, this))\n\t}\n\n\t_runAction (action) {\n\t\tif (action.rejected(this)) {\n\t\t\terrorHandler.untrack(this)\n\t\t}\n\t}\n}\n\n// Never :: Promise e a\n// A promise that waits forever for its value to be known\nclass Never extends Core {\n\tthen () {\n\t\treturn this\n\t}\n\n\tcatch () {\n\t\treturn this\n\t}\n\n\tmap () {\n\t\treturn this\n\t}\n\n\tbimap () {\n\t\treturn this\n\t}\n\n\tap () {\n\t\treturn this\n\t}\n\n\tchain () {\n\t\treturn this\n\t}\n\n\tor (b) {\n\t\treturn b\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { never }'\n\t}\n\n\tstate () {\n\t\treturn PENDING | NEVER\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when () {\n\t}\n\n\t_runAction () {\n\t}\n}\n\n// -------------------------------------------------------------\n// ## Creating promises\n// -------------------------------------------------------------\n\n// resolve :: Thenable e a -> Promise e a\n// resolve :: a -> Promise e a\nexport function resolve (x) {\n\treturn isPromise(x) ? x.near()\n\t\t: maybeThenable(x) ? refForMaybeThenable(fulfill, x)\n\t\t: new Fulfilled(x)\n}\n\n// reject :: e -> Promise e a\nexport function reject (e) {\n\treturn new Rejected(e)\n}\n\n// never :: Promise e a\nexport function never () {\n\treturn new Never()\n}\n\n// fulfill :: a -> Promise e a\nexport function fulfill (x) {\n\treturn new Fulfilled(x)\n}\n\n// future :: () -> { resolve: Resolve e a, promise: Promise e a }\n// type Resolve e a = a|Thenable e a -> ()\nexport function future () {\n\tconst promise = new Future()\n\treturn {resolve: x => promise._resolve(x), promise}\n}\n\n// -------------------------------------------------------------\n// ## Iterables\n// -------------------------------------------------------------\n\n// all :: Iterable (Promise e a) -> Promise e [a]\nexport function all (promises) {\n\tconst handler = new Merge(allHandler, resultsArray(promises))\n\treturn iterablePromise(handler, promises)\n}\n\nconst allHandler = {\n\tmerge (promise, args) {\n\t\tpromise._fulfill(args)\n\t}\n}\n\n// race :: Iterable (Promise e a) -> Promise e a\nexport function race (promises) {\n\treturn iterablePromise(new Race(never), promises)\n}\n\nfunction isIterable (x) {\n\treturn typeof x === 'object' && x !== null\n}\n\nexport function iterablePromise (handler, iterable) {\n\tif (!isIterable(iterable)) {\n\t\treturn reject(new TypeError('expected an iterable'))\n\t}\n\n\tconst p = new Future()\n\treturn resolveIterable(resolveMaybeThenable, handler, iterable, p)\n}\n\n// -------------------------------------------------------------\n// # Internals\n// -------------------------------------------------------------\n\n// isPromise :: * -> boolean\nfunction isPromise (x) {\n\treturn x instanceof Core\n}\n\nfunction resolveMaybeThenable (x) {\n\treturn isPromise(x) ? x.near() : refForMaybeThenable(fulfill, x)\n}\n\nfunction refForMaybeThenable (otherwise, x) {\n\ttry {\n\t\tconst then = x.then\n\t\treturn typeof then === 'function'\n\t\t\t? extractThenable(then, x)\n\t\t\t: otherwise(x)\n\t} catch (e) {\n\t\treturn new Rejected(e)\n\t}\n}\n\n// WARNING: Naming the first arg \"then\" triggers babel compilation bug\nfunction extractThenable (thn, thenable) {\n\tconst p = new Future()\n\n\ttry {\n\t\tthn.call(thenable, x => p._resolve(x), e => p._reject(e))\n\t} catch (e) {\n\t\tp._reject(e)\n\t}\n\n\treturn p.near()\n}\n\nfunction cycle () {\n\treturn new Rejected(new TypeError('resolution cycle'))\n}\n\nclass Continuation {\n\tconstructor (action, promise) {\n\t\tthis.action = action\n\t\tthis.promise = promise\n\t}\n\n\trun () {\n\t\tthis.promise._runAction(this.action)\n\t}\n}\n","import Action from './Action'\n\nexport default function (ms, p, promise) {\n\tp._runAction(new Delay(ms, promise))\n\treturn promise\n}\n\nclass Delay extends Action {\n\tconstructor (time, promise) {\n\t\tsuper(promise)\n\t\tthis.time = time\n\t}\n\n\tfulfilled (p) {\n\t\t/* global setTimeout */\n\t\tsetTimeout(become, this.time, p, this.promise)\n\t}\n}\n\nfunction become (p, promise) {\n\tpromise._become(p)\n}\n","export default class TimeoutError extends Error {\n\tconstructor (message) {\n\t\tsuper()\n\t\tthis.message = message\n\t\tthis.name = TimeoutError.name\n\t\t/* istanbul ignore else */\n\t\tif (typeof Error.captureStackTrace === 'function') {\n\t\t\tError.captureStackTrace(this, TimeoutError)\n\t\t}\n\t}\n}\n","import Action from './Action'\nimport TimeoutError from './TimeoutError'\n\nexport default function (ms, p, promise) {\n\tconst timer = setTimeout(rejectOnTimeout, ms, promise)\n\tp._runAction(new Timeout(timer, promise))\n\treturn promise\n}\n\nclass Timeout extends Action {\n\tconstructor (timer, promise) {\n\t\tsuper(promise)\n\t\tthis.timer = timer\n\t}\n\n\tfulfilled (p) {\n\t\tclearTimeout(this.timer)\n\t\tthis.promise._become(p)\n\t}\n\n\trejected (p) {\n\t\tclearTimeout(this.timer)\n\t\treturn super.rejected(p)\n\t}\n}\n\nfunction rejectOnTimeout (promise) {\n\tpromise._reject(new TimeoutError('promise timeout'))\n}\n","import { silenceError } from './inspect.js'\n\nexport default class Any {\n\tconstructor () {\n\t\tthis.pending = 0\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tpromise._fulfill(x)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tpromise._become(p)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\tsilenceError(p)\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tpromise._reject(new RangeError('No fulfilled promises in input'))\n\t\t}\n\t}\n}\n","import { silenceError } from './inspect'\n\nexport default class Settle {\n\tconstructor (resolve, results) {\n\t\tthis.pending = 0\n\t\tthis.results = results\n\t\tthis.resolve = resolve\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tthis.settleAt(this.resolve(x), i, promise)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tthis.settleAt(p, i, promise)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\tsilenceError(p)\n\t\tthis.settleAt(p, i, promise)\n\t}\n\n\tsettleAt (p, i, promise) {\n\t\tthis.results[i] = p\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tpromise._fulfill(this.results)\n\t\t}\n\t}\n}\n","export default function runPromise (f, thisArg, args, promise) {\n\t/* eslint complexity:[2,5] */\n\tfunction resolve (x) {\n\t\tpromise._resolve(x)\n\t}\n\n\tfunction reject (e) {\n\t\tpromise._reject(e)\n\t}\n\n\tswitch (args.length) {\n\t\tcase 0:\n\t\t\tf.call(thisArg, resolve, reject)\n\t\t\tbreak\n\t\tcase 1:\n\t\t\tf.call(thisArg, args[0], resolve, reject)\n\t\t\tbreak\n\t\tcase 2:\n\t\t\tf.call(thisArg, args[0], args[1], resolve, reject)\n\t\t\tbreak\n\t\tcase 3:\n\t\t\tf.call(thisArg, args[0], args[1], args[2], resolve, reject)\n\t\t\tbreak\n\t\tdefault:\n\t\t\targs.push(resolve, reject)\n\t\t\tf.apply(thisArg, args)\n\t}\n\n\treturn promise\n}\n","export default function runNode (f, thisArg, args, promise) {\n\t/* eslint complexity:[2,5] */\n\tfunction settleNode (e, x) {\n\t\tif (e) {\n\t\t\tpromise._reject(e)\n\t\t} else {\n\t\t\tpromise._fulfill(x)\n\t\t}\n\t}\n\n\tswitch (args.length) {\n\t\tcase 0:\n\t\t\tf.call(thisArg, settleNode)\n\t\t\tbreak\n\t\tcase 1:\n\t\t\tf.call(thisArg, args[0], settleNode)\n\t\t\tbreak\n\t\tcase 2:\n\t\t\tf.call(thisArg, args[0], args[1], settleNode)\n\t\t\tbreak\n\t\tcase 3:\n\t\t\tf.call(thisArg, args[0], args[1], args[2], settleNode)\n\t\t\tbreak\n\t\tdefault:\n\t\t\targs.push(settleNode)\n\t\t\tf.apply(thisArg, args)\n\t}\n\n\treturn promise\n}\n","import Action from './Action'\n\nexport default function (resolve, iterator, promise) {\n\tnew Coroutine(resolve, iterator, promise).run()\n\treturn promise\n}\n\nclass Coroutine extends Action {\n\tconstructor (resolve, iterator, promise) {\n\t\tsuper(promise)\n\t\tthis.resolve = resolve\n\t\tthis.generator = iterator\n\t}\n\n\trun () {\n\t\tthis.tryStep(this.generator.next, void 0)\n\t}\n\n\ttryStep (resume, x) {\n\t\tlet result\n\t\t// test if `resume` (and only it) throws\n\t\ttry {\n\t\t\tresult = resume.call(this.generator, x)\n\t\t} catch (e) {\n\t\t\tthis.promise._reject(e)\n\t\t\treturn\n\t\t} // else\n\t\tthis.handle(result)\n\t}\n\n\thandle (result) {\n\t\tif (result.done) {\n\t\t\treturn this.promise._resolve(result.value)\n\t\t}\n\n\t\tthis.resolve(result.value)._when(this)\n\t}\n\n\tfulfilled (ref) {\n\t\tthis.tryStep(this.generator.next, ref.value)\n\t}\n\n\trejected (ref) {\n\t\tthis.tryStep(this.generator.throw, ref.value)\n\t\treturn true\n\t}\n}\n","import { isFulfilled, isRejected, isSettled, isPending, isNever, getValue, getReason } from './inspect'\nimport { Future, resolve, reject, future, never, fulfill, all, race, iterablePromise, taskQueue } from './Promise'\n\nimport _delay from './delay'\nimport _timeout from './timeout'\n\nimport Any from './Any'\nimport Merge from './Merge'\nimport Settle from './Settle'\nimport { resultsArray } from './iterable'\n\nimport _runPromise from './runPromise'\nimport _runNode from './node'\nimport _runCoroutine from './coroutine.js'\n\n// -------------------------------------------------------------\n// ## Core promise methods\n// -------------------------------------------------------------\n\nexport {\n\tresolve, reject, future, never, fulfill, all, race,\n\tisFulfilled, isRejected, isSettled, isPending, isNever,\n\tgetValue, getReason\n}\n\n// -------------------------------------------------------------\n// ## Coroutine\n// -------------------------------------------------------------\n\n// coroutine :: Generator e a -> (...* -> Promise e a)\n// Make a coroutine from a promise-yielding generator\nexport function coroutine (generator) {\n\treturn function coroutinified (...args) {\n\t\treturn runGenerator(generator, this, args)\n\t}\n}\n\nfunction runGenerator (generator, thisArg, args) {\n\tconst iterator = generator.apply(thisArg, args)\n\treturn _runCoroutine(resolve, iterator, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Node-style async\n// -------------------------------------------------------------\n\n// type Nodeback e a = e -> a -> ()\n// type NodeApi e a = ...* -> Nodeback e a -> ()\n\n// fromNode :: NodeApi e a -> (...args -> Promise e a)\n// Turn a Node API into a promise API\nexport function fromNode (f) {\n\treturn function promisified (...args) {\n\t\treturn runResolver(_runNode, f, this, args, new Future())\n\t}\n}\n\n// runNode :: NodeApi e a -> ...* -> Promise e a\n// Run a Node API, returning a promise for the outcome\nexport function runNode (f, ...args) {\n\treturn runResolver(_runNode, f, this, args, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Make a promise\n// -------------------------------------------------------------\n\n// type Resolve e a = a|Thenable e a -> ()\n// type Reject e = e -> ()\n// type Producer e a = (...* -> Resolve e a -> Reject e -> ())\n// runPromise :: Producer e a -> ...* -> Promise e a\nexport function runPromise (f, ...args) {\n\treturn runResolver(_runPromise, f, this, args, new Future())\n}\n\nfunction runResolver (run, f, thisArg, args, p) {\n\tcheckFunction(f)\n\n\ttry {\n\t\trun(f, thisArg, args, p)\n\t} catch (e) {\n\t\tp._reject(e)\n\t}\n\n\treturn p\n}\n\n// -------------------------------------------------------------\n// ## Time\n// -------------------------------------------------------------\n\n// delay :: number -> Promise e a -> Promise e a\nexport function delay (ms, x) {\n\t/* eslint complexity:[2,4] */\n\tconst p = resolve(x)\n\treturn ms <= 0 || isRejected(p) || isNever(p) ? p\n\t\t: _delay(ms, p, new Future())\n}\n\n// timeout :: number -> Promise e a -> Promise (e|TimeoutError) a\nexport function timeout (ms, x) {\n\tconst p = resolve(x)\n\treturn isSettled(p) ? p : _timeout(ms, p, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Iterables\n// -------------------------------------------------------------\n\n// any :: Iterable (Promise e a) -> Promise e a\nexport function any (promises) {\n\treturn iterablePromise(new Any(), promises)\n}\n\n// settle :: Iterable (Promise e a) -> Promise e [Promise e a]\nexport function settle (promises) {\n\tconst handler = new Settle(resolve, resultsArray(promises))\n\treturn iterablePromise(handler, promises)\n}\n\n// -------------------------------------------------------------\n// ## Lifting\n// -------------------------------------------------------------\n\n// merge :: (...* -> b) -> ...Promise e a -> Promise e b\nexport function merge (f, ...args) {\n\treturn runMerge(f, this, args)\n}\n\nfunction runMerge (f, thisArg, args) {\n\tconst handler = new Merge(new MergeHandler(f, thisArg), resultsArray(args))\n\treturn iterablePromise(handler, args)\n}\n\nclass MergeHandler {\n\tconstructor (f, c) {\n\t\tthis.f = f\n\t\tthis.c = c\n\t\tthis.promise = void 0\n\t\tthis.args = void 0\n\t}\n\n\tmerge (promise, args) {\n\t\tthis.promise = promise\n\t\tthis.args = args\n\t\ttaskQueue.add(this)\n\t}\n\n\trun () {\n\t\ttry {\n\t\t\tthis.promise._resolve(this.f.apply(this.c, this.args))\n\t\t} catch (e) {\n\t\t\tthis.promise._reject(e)\n\t\t}\n\t}\n}\n\nfunction checkFunction (f) {\n\tif (typeof f !== 'function') {\n\t\tthrow new TypeError('must provide a resolver function')\n\t}\n}\n\n// -------------------------------------------------------------\n// ## ES6 Promise polyfill\n// -------------------------------------------------------------\n\nconst NOARGS = []\n\n// type Resolve a = a -> ()\n// type Reject e = e -> ()\n// Promise :: (Resolve a -> Reject e) -> Promise e a\nclass CreedPromise extends Future {\n\tconstructor (f) {\n\t\tsuper()\n\t\trunResolver(_runPromise, f, void 0, NOARGS, this)\n\t}\n}\n\nCreedPromise.resolve = resolve\nCreedPromise.reject = reject\nCreedPromise.all = all\nCreedPromise.race = race\n\nexport function shim () {\n\t/* global self */\n\tconst orig = typeof Promise === 'function' && Promise\n\n\t/* istanbul ignore if */\n\tif (typeof self !== 'undefined') {\n\t\tself.Promise = CreedPromise\n\t\t/* istanbul ignore else */\n\t} else if (typeof global !== 'undefined') {\n\t\tglobal.Promise = CreedPromise\n\t}\n\n\treturn orig\n}\n\nexport { CreedPromise as Promise }\n\n/* istanbul ignore if */\nif (typeof Promise !== 'function') {\n\tshim()\n}\n"],"names":["const","let","this","UNHANDLED_REJECTION","super","fl","then","runPromise","runNode","_runNode","_runPromise"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"creed.js","sources":["../src/state.js","../src/inspect.js","../src/env.js","../src/async.js","../src/TaskQueue.js","../src/trace.js","../src/ErrorHandler.js","../src/emitError.js","../src/maybeThenable.js","../src/Action.js","../src/tryCall.js","../src/then.js","../src/map.js","../src/bimap.js","../src/chain.js","../src/Race.js","../src/Merge.js","../src/iterable.js","../node_modules/fantasy-land/index.js","../src/Promise.js","../src/delay.js","../src/TimeoutError.js","../src/timeout.js","../src/Any.js","../src/Settle.js","../src/runPromise.js","../src/node.js","../src/coroutine.js","../src/main.js"],"sourcesContent":["/* eslint no-multi-spaces: 0 */\nexport const PENDING = 1 << 0\nexport const FULFILLED = 1 << 1\nexport const REJECTED = 1 << 2\nexport const SETTLED = FULFILLED | REJECTED\nexport const NEVER = 1 << 3\n\nexport const HANDLED = 1 << 4\n","import { PENDING, FULFILLED, REJECTED, SETTLED, NEVER, HANDLED } from './state'\n\nexport function isPending (p) {\n\treturn (p.state() & PENDING) > 0\n}\n\nexport function isFulfilled (p) {\n\treturn (p.state() & FULFILLED) > 0\n}\n\nexport function isRejected (p) {\n\treturn (p.state() & REJECTED) > 0\n}\n\nexport function isSettled (p) {\n\treturn (p.state() & SETTLED) > 0\n}\n\nexport function isNever (p) {\n\treturn (p.state() & NEVER) > 0\n}\n\nexport function isHandled (p) {\n\treturn (p.state() & HANDLED) > 0\n}\n\nexport function getValue (p) {\n\tconst n = p.near()\n\tif (!isFulfilled(n)) {\n\t\tthrow new TypeError('getValue called on ' + p)\n\t}\n\n\treturn n.value\n}\n\nexport function getReason (p) {\n\tconst n = p.near()\n\tif (!isRejected(n)) {\n\t\tthrow new TypeError('getReason called on ' + p)\n\t}\n\n\tsilenceError(n)\n\treturn n.value\n}\n\nexport function silenceError (p) {\n\tp._runAction(silencer)\n}\n\n// implements Action\nconst silencer = {\n\tfulfilled () {},\n\trejected (p) {\n\t\tp._state |= HANDLED\n\t}\n}\n","/* global process,MutationObserver,WebKitMutationObserver */\n\nconst isNode = typeof process !== 'undefined' &&\n Object.prototype.toString.call(process) === '[object process]'\n\n/* istanbul ignore next */\nconst MutationObs = (typeof MutationObserver === 'function' && MutationObserver) ||\n (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver)\n\nconst getenv = name => isNode && process.env[name]\n\nconst isDebug = getenv('CREED_DEBUG') ||\n getenv('NODE_ENV') === 'development' ||\n getenv('NODE_ENV') === 'test'\n\nexport { isNode, MutationObs, isDebug }\n","import { isNode, MutationObs } from './env'\n\n/* global process,document */\n\nexport default function (f) {\n\treturn isNode ? createNodeScheduler(f) /* istanbul ignore next */\n\t\t: MutationObs ? createBrowserScheduler(f)\n\t\t: createFallbackScheduler(f)\n}\n\n/* istanbul ignore next */\nfunction createFallbackScheduler (f) {\n\treturn () => setTimeout(f, 0)\n}\n\nfunction createNodeScheduler (f) {\n\treturn () => process.nextTick(f)\n}\n\n/* istanbul ignore next */\nfunction createBrowserScheduler (f) {\n\tconst node = document.createTextNode('')\n\tnew MutationObs(f).observe(node, { characterData: true })\n\n\tlet i = 0\n\treturn () => { node.data = (i ^= 1) }\n}\n","import makeAsync from './async'\n\nexport default class TaskQueue {\n\tconstructor () {\n\t\tthis.tasks = new Array(2 << 15)\n\t\tthis.length = 0\n\t\tthis.drain = makeAsync(() => this._drain())\n\t}\n\n\tadd (task) {\n\t\tif (this.length === 0) {\n\t\t\tthis.drain()\n\t\t}\n\n\t\tthis.tasks[this.length++] = task\n\t}\n\n\t_drain () {\n\t\tconst q = this.tasks\n\t\tfor (let i = 0; i < this.length; ++i) {\n\t\t\tq[i].run()\n\t\t\tq[i] = void 0\n\t\t}\n\t\tthis.length = 0\n\t}\n}\n","const noop = () => {}\n\n// WARNING: shared mutable notion of \"current context\"\nlet _currentContext\nlet _createContext = noop\n\n// Get the current context\nexport const peekContext = () => _currentContext\n\n// Append a new context to the current, and set the current context\n// to the newly appended one\nexport const pushContext = (at, tag) =>\n\t_createContext(_currentContext, at, tag)\n\n// Set the current context to the provided one, returning the\n// previously current context (which makes it easy to swap back\n// to it)\nexport const swapContext = context => {\n\tconst previousContext = _currentContext\n\t_currentContext = context\n\treturn previousContext\n}\n\n// Enable context tracing. Must provide:\n// createContext :: c -> Function -> String -> c\n// Given the current context, and a function and string tag representing a new context,\n// return a new current context\n// initialContext :: c\n// An initial current context\nexport const traceAsync = (createContext, initialContext) => {\n\t_createContext = createContext\n\t_currentContext = initialContext\n}\n\n// Enable default context tracing\nexport const enableAsyncTraces = () =>\n\ttraceAsync(createContext, undefined)\n\n// Disable context tracing\nexport const disableAsyncTraces = () =>\n traceAsync(noop, undefined)\n\n// ------------------------------------------------------\n// Default context tracing\n\nexport const createContext = (currentContext, at, tag) =>\n new Context(currentContext, tag || at.name, at)\n\nexport const captureStackTrace = Error.captureStackTrace || noop\n\nexport class Context {\n\tconstructor (next, tag, at) {\n\t\tthis.next = next\n\t\tthis.tag = tag\n\t\tcaptureStackTrace(this, at)\n\t}\n\n\ttoString () {\n\t\treturn this.tag ? ` from ${this.tag}:` : ' from previous context:'\n\t}\n}\n\n// ------------------------------------------------------\n// Default context formatting\n\n// If e is an Error, attach an async trace for the provided context.\n// Otherwise, do nothing.\nexport const attachTrace = (e, context) =>\n context != null && e instanceof Error ? formatTrace(e, context) : e\n\n// Attach an async trace to e for the provided context\nfunction formatTrace (e, context) {\n\tif (!e._creedOriginalStack) {\n\t\te._creedOriginalStack = e.stack\n\t\te.stack = formatContext(elideTrace(e.stack), context)\n\t}\n\treturn e\n}\n\n// Fold context list into a newline-separated, combined async trace\nexport function formatContext (trace, context) {\n\tif (context == null) {\n\t\treturn trace\n\t}\n\tconst s = elideTrace(context.stack)\n\treturn formatContext(s.indexOf(' at ') < 0 ? trace : (trace + '\\n' + s), context.next)\n}\n\nexport const elideTraceRx =\n /\\s*at\\s.*(creed[\\\\/](src|dist)[\\\\/]|internal[\\\\/]process[\\\\/]|\\((timers|module)\\.js).+:\\d.*/g\n\n// Remove internal stack frames\nexport const elideTrace = stack =>\n\tstack.replace(elideTraceRx, '')\n","import { silenceError, isHandled } from './inspect'\nimport { attachTrace } from './trace'\n\nconst UNHANDLED_REJECTION = 'unhandledRejection'\nconst HANDLED_REJECTION = 'rejectionHandled'\n\nexport default class ErrorHandler {\n\tconstructor (emitEvent, reportError) {\n\t\tthis.rejections = []\n\t\tthis.emit = emitEvent\n\t\tthis.reportError = reportError\n\t}\n\n\ttrack (rejected) {\n\t\tconst e = attachTrace(rejected.value, rejected.context)\n\n\t\tif (!this.emit(UNHANDLED_REJECTION, rejected, e)) {\n\t\t\t/* istanbul ignore else */\n\t\t\tif (this.rejections.length === 0) {\n\t\t\t\tsetTimeout(reportErrors, 1, this.reportError, this.rejections)\n\t\t\t}\n\t\t\tthis.rejections.push(rejected)\n\t\t}\n\t}\n\n\tuntrack (rejected) {\n\t\tsilenceError(rejected)\n\t\tthis.emit(HANDLED_REJECTION, rejected)\n\t}\n}\n\nfunction reportErrors (report, rejections) {\n\ttry {\n\t\treportAll(rejections, report)\n\t} finally {\n\t\trejections.length = 0\n\t}\n}\n\nfunction reportAll (rejections, report) {\n\tfor (let i = 0; i < rejections.length; ++i) {\n\t\tconst rejected = rejections[i]\n\t\t/* istanbul ignore else */\n\t\tif (!isHandled(rejected)) {\n\t\t\treport(rejected)\n\t\t}\n\t}\n}\n","import { isNode } from './env'\n\nconst UNHANDLED_REJECTION = 'unhandledRejection'\n\nexport default function () {\n\t/* global process, self, CustomEvent */\n\t// istanbul ignore else */\n\tif (isNode && typeof process.emit === 'function') {\n\t\t// Returning falsy here means to call the default reportRejection API.\n\t\t// This is safe even in browserify since process.emit always returns\n\t\t// falsy in browserify:\n\t\t// https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46\n\t\treturn function (type, error) {\n\t\t\treturn type === UNHANDLED_REJECTION\n\t\t\t\t? process.emit(type, error.value, error)\n\t\t\t\t: process.emit(type, error)\n\t\t}\n\t} else if (typeof self !== 'undefined' && typeof CustomEvent === 'function') {\n\t\treturn (function (noop, self, CustomEvent) {\n\t\t\tvar hasCustomEvent\n\t\t\ttry {\n\t\t\t\thasCustomEvent = new CustomEvent(UNHANDLED_REJECTION) instanceof CustomEvent\n\t\t\t} catch (e) {\n\t\t\t\thasCustomEvent = false\n\t\t\t}\n\n\t\t\treturn !hasCustomEvent ? noop : function (type, error) {\n\t\t\t\tconst ev = new CustomEvent(type, {\n\t\t\t\t\tdetail: {\n\t\t\t\t\t\treason: error.value,\n\t\t\t\t\t\tpromise: error\n\t\t\t\t\t},\n\t\t\t\t\tbubbles: false,\n\t\t\t\t\tcancelable: true\n\t\t\t\t})\n\n\t\t\t\treturn !self.dispatchEvent(ev)\n\t\t\t}\n\t\t}(noop, self, CustomEvent))\n\t}\n\n\t// istanbul ignore next */\n\treturn noop\n}\n\n// istanbul ignore next */\nfunction noop () {}\n","// maybeThenable :: * -> boolean\nexport default function maybeThenable (x) {\n\treturn (typeof x === 'object' || typeof x === 'function') && x !== null\n}\n","import { pushContext } from './trace'\n\nexport default class Action {\n\tconstructor (promise) {\n\t\tthis.promise = promise\n\t\tthis.context = pushContext(this.constructor)\n\t}\n\n\t// default onFulfilled action\n\t/* istanbul ignore next */\n\tfulfilled (p) {\n\t\tthis.promise._become(p)\n\t}\n\n\t// default onRejected action\n\trejected (p) {\n\t\tthis.promise._become(p)\n\t\treturn false\n\t}\n}\n","export default function tryCall (f, x, handle, promise) {\n\tlet result\n\t// test if `f` (and only it) throws\n\ttry {\n\t\tresult = f(x)\n\t} catch (e) {\n\t\tpromise._reject(e)\n\t\treturn\n\t} // else\n\thandle(promise, result)\n}\n","import Action from './Action'\nimport tryCall from './tryCall'\n\nexport default function then (f, r, p, promise) {\n\tp._when(new Then(f, r, promise))\n\treturn promise\n}\n\nclass Then extends Action {\n\tconstructor (f, r, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t\tthis.r = r\n\t}\n\n\tfulfilled (p) {\n\t\tthis.runThen(this.f, p)\n\t}\n\n\trejected (p) {\n\t\treturn this.runThen(this.r, p)\n\t}\n\n\trunThen (f, p) {\n\t\tif (typeof f !== 'function') {\n\t\t\tthis.promise._become(p)\n\t\t\treturn false\n\t\t}\n\t\ttryCall(f, p.value, handleThen, this.promise)\n\t\treturn true\n\t}\n}\n\nfunction handleThen (promise, result) {\n\tpromise._resolve(result)\n}\n\n","import Action from './Action'\nimport tryCall from './tryCall'\n\nexport default function (f, p, promise) {\n\tp._when(new Map(f, promise))\n\treturn promise\n}\n\nexport class Map extends Action {\n\tconstructor (f, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t}\n\n\tfulfilled (p) {\n\t\ttryCall(this.f, p.value, handleMap, this.promise)\n\t}\n}\n\nfunction handleMap (promise, result) {\n\tpromise._fulfill(result)\n}\n\n","import { Map } from './map'\nimport tryCall from './tryCall'\n\nexport default function (r, f, p, promise) {\n\tp._when(new Bimap(r, f, promise))\n\treturn promise\n}\n\nclass Bimap extends Map {\n\tconstructor (r, f, promise) {\n\t\tsuper(f, promise)\n\t\tthis.r = r\n\t}\n\n\trejected (p) {\n\t\ttryCall(this.r, p.value, handleMapRejected, this.promise)\n\t}\n}\n\nfunction handleMapRejected (promise, result) {\n\tpromise._reject(result)\n}\n","import Action from './Action'\nimport tryCall from './tryCall'\nimport maybeThenable from './maybeThenable'\n\nexport default function (f, p, promise) {\n\tp._when(new Chain(f, promise))\n\treturn promise\n}\n\nclass Chain extends Action {\n\tconstructor (f, promise) {\n\t\tsuper(promise)\n\t\tthis.f = f\n\t}\n\n\tfulfilled (p) {\n\t\ttryCall(this.f, p.value, handleChain, this.promise)\n\t}\n}\n\nfunction handleChain (promise, result) {\n\tif (!(maybeThenable(result) && typeof result.then === 'function')) {\n\t\tpromise._reject(new TypeError('f must return a promise'))\n\t}\n\n\tpromise._resolve(result)\n}\n","import { silenceError } from './inspect'\n\nexport default class Race {\n\tconstructor (never) {\n\t\tthis.never = never\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tpromise._fulfill(x)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tpromise._become(p)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\t// In the case where the result promise has been resolved\n\t\t// need to silence all subsequently seen rejections\n\t\tpromise._isResolved() ? silenceError(p) : promise._become(p)\n\t}\n\n\tcomplete (total, promise) {\n\t\tif (total === 0) {\n\t\t\tpromise._become(this.never())\n\t\t}\n\t}\n}\n","import { silenceError } from './inspect'\n\nexport default class Merge {\n\tconstructor (mergeHandler, results) {\n\t\tthis.pending = 0\n\t\tthis.results = results\n\t\tthis.mergeHandler = mergeHandler\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tthis.results[i] = x\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tthis.valueAt(p.value, i, promise)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\t// In the case where the result promise has been resolved\n\t\t// need to silence all subsequently seen rejections\n\t\tpromise._isResolved() ? silenceError(p) : promise._become(p)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tthis.mergeHandler.merge(promise, this.results)\n\t\t}\n\t}\n}\n","import { isFulfilled, isRejected, silenceError } from './inspect'\nimport Action from './Action'\nimport maybeThenable from './maybeThenable'\n\nexport function resultsArray (iterable) {\n\treturn Array.isArray(iterable) ? new Array(iterable.length) : []\n}\n\nexport function resolveIterable (resolve, handler, promises, promise) {\n\tconst run = Array.isArray(promises) ? runArray : runIterable\n\ttry {\n\t\trun(resolve, handler, promises, promise)\n\t} catch (e) {\n\t\tpromise._reject(e)\n\t}\n\treturn promise.near()\n}\n\nfunction runArray (resolve, handler, promises, promise) {\n\tlet i = 0\n\n\tfor (; i < promises.length; ++i) {\n\t\thandleItem(resolve, handler, promises[i], i, promise)\n\t}\n\n\thandler.complete(i, promise)\n}\n\nfunction runIterable (resolve, handler, promises, promise) {\n\tlet i = 0\n\tconst iter = promises[Symbol.iterator]()\n\n\twhile (true) {\n\t\tconst step = iter.next()\n\t\tif (step.done) {\n\t\t\tbreak\n\t\t}\n\t\thandleItem(resolve, handler, step.value, i++, promise)\n\t}\n\n\thandler.complete(i, promise)\n}\n\nfunction handleItem (resolve, handler, x, i, promise) {\n\t/* eslint complexity:[1,6] */\n\tif (!maybeThenable(x)) {\n\t\thandler.valueAt(x, i, promise)\n\t\treturn\n\t}\n\n\tconst p = resolve(x)\n\n\tif (promise._isResolved()) {\n\t\tif (!isFulfilled(p)) {\n\t\t\tsilenceError(p)\n\t\t}\n\t} else if (isFulfilled(p)) {\n\t\thandler.fulfillAt(p, i, promise)\n\t} else if (isRejected(p)) {\n\t\thandler.rejectAt(p, i, promise)\n\t} else {\n\t\tp._runAction(new AtIndex(handler, i, promise))\n\t}\n}\n\nclass AtIndex extends Action {\n\tconstructor (handler, i, promise) {\n\t\tsuper(promise)\n\t\tthis.i = i\n\t\tthis.handler = handler\n\t}\n\n\tfulfilled (p) {\n\t\tthis.handler.fulfillAt(p, this.i, this.promise)\n\t}\n\n\trejected (p) {\n\t\treturn this.handler.rejectAt(p, this.i, this.promise)\n\t}\n}\n","(function() {\n\n 'use strict';\n\n /* eslint comma-dangle: [\"off\"], no-var: [\"off\"], strict: [\"error\", \"function\"] */\n /* global self */\n\n var mapping = {\n equals: 'fantasy-land/equals',\n concat: 'fantasy-land/concat',\n empty: 'fantasy-land/empty',\n map: 'fantasy-land/map',\n ap: 'fantasy-land/ap',\n of: 'fantasy-land/of',\n alt: 'fantasy-land/alt',\n zero: 'fantasy-land/zero',\n reduce: 'fantasy-land/reduce',\n traverse: 'fantasy-land/traverse',\n chain: 'fantasy-land/chain',\n chainRec: 'fantasy-land/chainRec',\n extend: 'fantasy-land/extend',\n extract: 'fantasy-land/extract',\n bimap: 'fantasy-land/bimap',\n promap: 'fantasy-land/promap'\n };\n\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = mapping;\n } else {\n self.FantasyLand = mapping;\n }\n\n}());\n","import TaskQueue from './TaskQueue'\nimport ErrorHandler from './ErrorHandler'\nimport makeEmitError from './emitError'\nimport maybeThenable from './maybeThenable'\nimport { PENDING, FULFILLED, REJECTED, NEVER } from './state'\nimport { isNever, isSettled } from './inspect'\n\nimport then from './then'\nimport map from './map'\nimport bimap from './bimap'\nimport chain from './chain'\n\nimport Race from './Race'\nimport Merge from './Merge'\nimport { resolveIterable, resultsArray } from './iterable'\n\nimport { swapContext, peekContext } from './trace'\n\nimport fl from 'fantasy-land'\n\nconst taskQueue = new TaskQueue()\nexport { taskQueue }\n\n/* istanbul ignore next */\nconst handleError = ({ value }) => { throw value }\n\n/* istanbul ignore next */\nconst errorHandler = new ErrorHandler(makeEmitError(), handleError)\n\n// -------------------------------------------------------------\n// ## Types\n// -------------------------------------------------------------\n\n// Internal base type, provides fantasy-land namespace\n// and type representative\nclass Core {\n\tconstructor () {\n\t\tthis.context = peekContext()\n\t}\n\t// empty :: Promise e a\n\tstatic empty () {\n\t\treturn never()\n\t}\n\n\t// of :: a -> Promise e a\n\tstatic of (x) {\n\t\treturn fulfill(x)\n\t}\n\n\tstatic [fl.empty] () {\n\t\treturn never()\n\t}\n\n\tstatic [fl.of] (x) {\n\t\treturn fulfill(x)\n\t}\n\n\t[fl.map] (f) {\n\t\treturn this.map(f)\n\t}\n\n\t[fl.bimap] (r, f) {\n\t\treturn this.bimap(r, f)\n\t}\n\n\t[fl.ap] (pf) {\n\t\treturn pf.ap(this)\n\t}\n\n\t[fl.chain] (f) {\n\t\treturn this.chain(f)\n\t}\n\n\t[fl.concat] (p) {\n\t\treturn this.concat(p)\n\t}\n\n\t[fl.alt] (p) {\n\t\treturn this.or(p)\n\t}\n\n\tstatic [fl.zero] () {\n\t\treturn never()\n\t}\n\n\t// @deprecated The name concat is deprecated, use or() instead.\n\tconcat (b) {\n\t\treturn this.or(b)\n\t}\n}\n\n// data Promise e a where\n// Future :: Promise e a\n// Fulfilled :: a -> Promise e a\n// Rejected :: Error e => e -> Promise e a\n// Never :: Promise e a\n\n// Future :: Promise e a\n// A promise whose value cannot be known until some future time\nexport class Future extends Core {\n\tconstructor () {\n\t\tsuper()\n\t\tthis.ref = void 0\n\t\tthis.action = void 0\n\t\tthis.length = 0\n\t}\n\n\t// then :: Promise e a -> (a -> b) -> Promise e b\n\t// then :: Promise e a -> () -> (e -> b) -> Promise e b\n\t// then :: Promise e a -> (a -> b) -> (e -> b) -> Promise e b\n\tthen (f, r) {\n\t\tconst n = this.near()\n\t\treturn n === this ? then(f, r, this, new Future()) : n.then(f, r)\n\t}\n\n\t// catch :: Promise e a -> (e -> b) -> Promise e b\n\tcatch (r) {\n\t\tconst n = this.near()\n\t\treturn n === this ? then(void 0, r, this, new Future()) : n.catch(r)\n\t}\n\n\t// map :: Promise e a -> (a -> b) -> Promise e b\n\tmap (f) {\n\t\tconst n = this.near()\n\t\treturn n === this ? map(f, this, new Future()) : n.map(f)\n\t}\n\n\tbimap (r, f) {\n\t\tconst n = this.near()\n\t\treturn n === this\n\t\t\t? bimap(r, f, this, new Future())\n\t\t\t: n.bimap(r, f)\n\t}\n\n\t// ap :: Promise e (a -> b) -> Promise e a -> Promise e b\n\tap (p) {\n\t\tconst n = this.near()\n\t\tconst pn = p.near()\n\t\treturn n === this ? this.chain(f => pn.map(f)) : n.ap(pn)\n\t}\n\n\t// chain :: Promise e a -> (a -> Promise e b) -> Promise e b\n\tchain (f) {\n\t\tconst n = this.near()\n\t\treturn n === this ? chain(f, this, new Future()) : n.chain(f)\n\t}\n\n\t// or :: Promise e a -> Promise e a -> Promise e a\n\tor (b) {\n\t\t/* eslint complexity:[2,5] */\n\t\tconst n = this.near()\n\t\tconst bn = b.near()\n\n\t\treturn isSettled(n) || isNever(bn) ? n\n\t\t\t: isSettled(bn) || isNever(n) ? bn\n\t\t\t: race([n, bn])\n\t}\n\n\t// toString :: Promise e a -> String\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\t// inspect :: Promise e a -> String\n\tinspect () {\n\t\tconst n = this.near()\n\t\treturn n === this ? 'Promise { pending }' : n.inspect()\n\t}\n\n\t// near :: Promise e a -> Promise e a\n\tnear () {\n\t\tif (!this._isResolved()) {\n\t\t\treturn this\n\t\t}\n\n\t\tthis.ref = this.ref.near()\n\t\treturn this.ref\n\t}\n\n\t// state :: Promise e a -> Int\n\tstate () {\n\t\treturn this._isResolved() ? this.ref.near().state() : PENDING\n\t}\n\n\t_isResolved () {\n\t\treturn this.ref !== void 0\n\t}\n\n\t_when (action) {\n\t\tthis._runAction(action)\n\t}\n\n\t_runAction (action) {\n\t\tif (this.action === void 0) {\n\t\t\tthis.action = action\n\t\t} else {\n\t\t\tthis[this.length++] = action\n\t\t}\n\t}\n\n\t_resolve (x) {\n\t\tthis._become(resolve(x))\n\t}\n\n\t_fulfill (x) {\n\t\tthis._become(new Fulfilled(x))\n\t}\n\n\t_reject (e) {\n\t\tif (this._isResolved()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.__become(new Rejected(e))\n\t}\n\n\t_become (p) {\n\t\tif (this._isResolved()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.__become(p)\n\t}\n\n\t__become (p) {\n\t\tthis.ref = p === this ? cycle() : p\n\n\t\tif (this.action === void 0) {\n\t\t\treturn\n\t\t}\n\n\t\ttaskQueue.add(this)\n\t}\n\n\trun () {\n\t\tconst p = this.ref.near()\n\t\tp._runAction(this.action)\n\t\tthis.action = void 0\n\n\t\tfor (let i = 0; i < this.length; ++i) {\n\t\t\tp._runAction(this[i])\n\t\t\tthis[i] = void 0\n\t\t}\n\t}\n}\n\n// Fulfilled :: a -> Promise e a\n// A promise whose value is already known\nclass Fulfilled extends Core {\n\tconstructor (x) {\n\t\tsuper()\n\t\tthis.value = x\n\t}\n\n\tthen (f) {\n\t\treturn typeof f === 'function' ? then(f, void 0, this, new Future()) : this\n\t}\n\n\tcatch () {\n\t\treturn this\n\t}\n\n\tmap (f) {\n\t\treturn map(f, this, new Future())\n\t}\n\n\tbimap (_, f) {\n\t\treturn this.map(f)\n\t}\n\n\tap (p) {\n\t\treturn p.map(this.value)\n\t}\n\n\tchain (f) {\n\t\treturn chain(f, this, new Future())\n\t}\n\n\tor () {\n\t\treturn this\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { fulfilled: ' + this.value + ' }'\n\t}\n\n\tstate () {\n\t\treturn FULFILLED\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when (action) {\n\t\ttaskQueue.add(new Continuation(action, this))\n\t}\n\n\t_runAction (action) {\n\t\tconst c = swapContext(action.context)\n\t\taction.fulfilled(this)\n\t\tswapContext(c)\n\t}\n}\n\n// Rejected :: Error e => e -> Promise e a\n// A promise whose value cannot be known due to some reason/error\nclass Rejected extends Core {\n\tconstructor (e) {\n\t\tsuper()\n\t\tthis.value = e\n\t\tthis._state = REJECTED\n\t\terrorHandler.track(this)\n\t}\n\n\tthen (_, r) {\n\t\treturn typeof r === 'function' ? this.catch(r) : this\n\t}\n\n\tcatch (r) {\n\t\treturn then(void 0, r, this, new Future())\n\t}\n\n\tmap () {\n\t\treturn this\n\t}\n\n\tbimap (r) {\n\t\treturn bimap(r, void 0, this, new Future())\n\t}\n\n\tap () {\n\t\treturn this\n\t}\n\n\tchain () {\n\t\treturn this\n\t}\n\n\tor () {\n\t\treturn this\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { rejected: ' + this.value + ' }'\n\t}\n\n\tstate () {\n\t\treturn this._state\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when (action) {\n\t\ttaskQueue.add(new Continuation(action, this))\n\t}\n\n\t_runAction (action) {\n\t\tconst c = swapContext(action.context)\n\t\tif (action.rejected(this)) {\n\t\t\terrorHandler.untrack(this)\n\t\t}\n\t\tswapContext(c)\n\t}\n}\n\n// Never :: Promise e a\n// A promise that waits forever for its value to be known\nclass Never extends Core {\n\tthen () {\n\t\treturn this\n\t}\n\n\tcatch () {\n\t\treturn this\n\t}\n\n\tmap () {\n\t\treturn this\n\t}\n\n\tbimap () {\n\t\treturn this\n\t}\n\n\tap () {\n\t\treturn this\n\t}\n\n\tchain () {\n\t\treturn this\n\t}\n\n\tor (b) {\n\t\treturn b\n\t}\n\n\ttoString () {\n\t\treturn '[object ' + this.inspect() + ']'\n\t}\n\n\tinspect () {\n\t\treturn 'Promise { never }'\n\t}\n\n\tstate () {\n\t\treturn PENDING | NEVER\n\t}\n\n\tnear () {\n\t\treturn this\n\t}\n\n\t_when () {\n\t}\n\n\t_runAction () {\n\t}\n}\n\n// -------------------------------------------------------------\n// ## Creating promises\n// -------------------------------------------------------------\n\n// resolve :: Thenable e a -> Promise e a\n// resolve :: a -> Promise e a\nexport function resolve (x) {\n\treturn isPromise(x) ? x.near()\n\t\t: maybeThenable(x) ? refForMaybeThenable(fulfill, x)\n\t\t: new Fulfilled(x)\n}\n\n// reject :: e -> Promise e a\nexport function reject (e) {\n\treturn new Rejected(e)\n}\n\n// never :: Promise e a\nexport function never () {\n\treturn new Never()\n}\n\n// fulfill :: a -> Promise e a\nexport function fulfill (x) {\n\treturn new Fulfilled(x)\n}\n\n// future :: () -> { resolve: Resolve e a, promise: Promise e a }\n// type Resolve e a = a|Thenable e a -> ()\nexport function future () {\n\tconst promise = new Future()\n\treturn {resolve: x => promise._resolve(x), promise}\n}\n\n// -------------------------------------------------------------\n// ## Iterables\n// -------------------------------------------------------------\n\n// all :: Iterable (Promise e a) -> Promise e [a]\nexport function all (promises) {\n\tconst handler = new Merge(allHandler, resultsArray(promises))\n\treturn iterablePromise(handler, promises)\n}\n\nconst allHandler = {\n\tmerge (promise, args) {\n\t\tpromise._fulfill(args)\n\t}\n}\n\n// race :: Iterable (Promise e a) -> Promise e a\nexport function race (promises) {\n\treturn iterablePromise(new Race(never), promises)\n}\n\nfunction isIterable (x) {\n\treturn typeof x === 'object' && x !== null\n}\n\nexport function iterablePromise (handler, iterable) {\n\tif (!isIterable(iterable)) {\n\t\treturn reject(new TypeError('expected an iterable'))\n\t}\n\n\tconst p = new Future()\n\treturn resolveIterable(resolveMaybeThenable, handler, iterable, p)\n}\n\n// -------------------------------------------------------------\n// # Internals\n// -------------------------------------------------------------\n\n// isPromise :: * -> boolean\nfunction isPromise (x) {\n\treturn x instanceof Core\n}\n\nfunction resolveMaybeThenable (x) {\n\treturn isPromise(x) ? x.near() : refForMaybeThenable(fulfill, x)\n}\n\nfunction refForMaybeThenable (otherwise, x) {\n\ttry {\n\t\tconst then = x.then\n\t\treturn typeof then === 'function'\n\t\t\t? extractThenable(then, x)\n\t\t\t: otherwise(x)\n\t} catch (e) {\n\t\treturn new Rejected(e)\n\t}\n}\n\n// WARNING: Naming the first arg \"then\" triggers babel compilation bug\nfunction extractThenable (thn, thenable) {\n\tconst p = new Future()\n\n\ttry {\n\t\tthn.call(thenable, x => p._resolve(x), e => p._reject(e))\n\t} catch (e) {\n\t\tp._reject(e)\n\t}\n\n\treturn p.near()\n}\n\nfunction cycle () {\n\treturn new Rejected(new TypeError('resolution cycle'))\n}\n\nclass Continuation {\n\tconstructor (action, promise) {\n\t\tthis.action = action\n\t\tthis.promise = promise\n\t}\n\n\trun () {\n\t\tthis.promise._runAction(this.action)\n\t}\n}\n","import Action from './Action'\n\nexport default function (ms, p, promise) {\n\tp._runAction(new Delay(ms, promise))\n\treturn promise\n}\n\nclass Delay extends Action {\n\tconstructor (time, promise) {\n\t\tsuper(promise)\n\t\tthis.time = time\n\t}\n\n\tfulfilled (p) {\n\t\t/* global setTimeout */\n\t\tsetTimeout(become, this.time, p, this.promise)\n\t}\n}\n\nfunction become (p, promise) {\n\tpromise._become(p)\n}\n","export default class TimeoutError extends Error {\n\tconstructor (message) {\n\t\tsuper()\n\t\tthis.message = message\n\t\tthis.name = TimeoutError.name\n\t\t/* istanbul ignore else */\n\t\tif (typeof Error.captureStackTrace === 'function') {\n\t\t\tError.captureStackTrace(this, TimeoutError)\n\t\t}\n\t}\n}\n","import Action from './Action'\nimport TimeoutError from './TimeoutError'\n\nexport default function (ms, p, promise) {\n\tconst timer = setTimeout(rejectOnTimeout, ms, promise)\n\tp._runAction(new Timeout(timer, promise))\n\treturn promise\n}\n\nclass Timeout extends Action {\n\tconstructor (timer, promise) {\n\t\tsuper(promise)\n\t\tthis.timer = timer\n\t}\n\n\tfulfilled (p) {\n\t\tclearTimeout(this.timer)\n\t\tthis.promise._become(p)\n\t}\n\n\trejected (p) {\n\t\tclearTimeout(this.timer)\n\t\treturn super.rejected(p)\n\t}\n}\n\nfunction rejectOnTimeout (promise) {\n\tpromise._reject(new TimeoutError('promise timeout'))\n}\n","import { silenceError } from './inspect.js'\n\nexport default class Any {\n\tconstructor () {\n\t\tthis.pending = 0\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tpromise._fulfill(x)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tpromise._become(p)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\tsilenceError(p)\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tpromise._reject(new RangeError('No fulfilled promises in input'))\n\t\t}\n\t}\n}\n","import { silenceError } from './inspect'\n\nexport default class Settle {\n\tconstructor (resolve, results) {\n\t\tthis.pending = 0\n\t\tthis.results = results\n\t\tthis.resolve = resolve\n\t}\n\n\tvalueAt (x, i, promise) {\n\t\tthis.settleAt(this.resolve(x), i, promise)\n\t}\n\n\tfulfillAt (p, i, promise) {\n\t\tthis.settleAt(p, i, promise)\n\t}\n\n\trejectAt (p, i, promise) {\n\t\tsilenceError(p)\n\t\tthis.settleAt(p, i, promise)\n\t}\n\n\tsettleAt (p, i, promise) {\n\t\tthis.results[i] = p\n\t\tthis.check(this.pending - 1, promise)\n\t}\n\n\tcomplete (total, promise) {\n\t\tthis.check(this.pending + total, promise)\n\t}\n\n\tcheck (pending, promise) {\n\t\tthis.pending = pending\n\t\tif (pending === 0) {\n\t\t\tpromise._fulfill(this.results)\n\t\t}\n\t}\n}\n","import { swapContext } from './trace'\n\nexport default function runPromise (f, thisArg, args, promise) {\n /* eslint complexity:[2,5] */\n\tfunction resolve (x) {\n\t\tconst c = swapContext(promise.context)\n\t\tpromise._resolve(x)\n\t\tswapContext(c)\n\t}\n\n\tfunction reject (e) {\n\t\tconst c = swapContext(promise.context)\n\t\tpromise._reject(e)\n\t\tswapContext(c)\n\t}\n\n\tswitch (args.length) {\n\t\tcase 0:\n\t\t\tf.call(thisArg, resolve, reject)\n\t\t\tbreak\n\t\tcase 1:\n\t\t\tf.call(thisArg, args[0], resolve, reject)\n\t\t\tbreak\n\t\tcase 2:\n\t\t\tf.call(thisArg, args[0], args[1], resolve, reject)\n\t\t\tbreak\n\t\tcase 3:\n\t\t\tf.call(thisArg, args[0], args[1], args[2], resolve, reject)\n\t\t\tbreak\n\t\tdefault:\n\t\t\targs.push(resolve, reject)\n\t\t\tf.apply(thisArg, args)\n\t}\n\n\treturn promise\n}\n","import { swapContext } from './trace'\n\nexport default function runNode (f, thisArg, args, promise) {\n /* eslint complexity:[2,5] */\n\tfunction settleNode (e, x) {\n\t\tconst c = swapContext(promise.context)\n\t\tif (e) {\n\t\t\tpromise._reject(e)\n\t\t} else {\n\t\t\tpromise._fulfill(x)\n\t\t}\n\t\tswapContext(c)\n\t}\n\n\tswitch (args.length) {\n\t\tcase 0:\n\t\t\tf.call(thisArg, settleNode)\n\t\t\tbreak\n\t\tcase 1:\n\t\t\tf.call(thisArg, args[0], settleNode)\n\t\t\tbreak\n\t\tcase 2:\n\t\t\tf.call(thisArg, args[0], args[1], settleNode)\n\t\t\tbreak\n\t\tcase 3:\n\t\t\tf.call(thisArg, args[0], args[1], args[2], settleNode)\n\t\t\tbreak\n\t\tdefault:\n\t\t\targs.push(settleNode)\n\t\t\tf.apply(thisArg, args)\n\t}\n\n\treturn promise\n}\n","import Action from './Action'\nimport { swapContext } from './trace'\n\nexport default function (resolve, iterator, promise) {\n\tnew Coroutine(resolve, iterator, promise).run()\n\treturn promise\n}\n\nclass Coroutine extends Action {\n\tconstructor (resolve, iterator, promise) {\n\t\tsuper(promise)\n\t\tthis.resolve = resolve\n\t\tthis.generator = iterator\n\t}\n\n\trun () {\n\t\tthis.tryStep(this.generator.next, void 0)\n\t}\n\n\ttryStep (resume, x) {\n\t\tconst context = swapContext(this.context)\n\t\tlet result\n\t\t// test if `resume` (and only it) throws\n\t\ttry {\n\t\t\tresult = resume.call(this.generator, x)\n\t\t} catch (e) {\n\t\t\tthis.handleReject(e)\n\t\t\treturn\n\t\t} finally {\n\t\t\tswapContext(context)\n\t\t}// else\n\n\t\tthis.handleResult(result)\n\t}\n\n\thandleResult (result) {\n\t\tif (result.done) {\n\t\t\treturn this.promise._resolve(result.value)\n\t\t}\n\n\t\tthis.resolve(result.value)._when(this)\n\t}\n\n\thandleReject (e) {\n\t\tthis.promise._reject(e)\n\t}\n\n\tfulfilled (p) {\n\t\tthis.tryStep(this.generator.next, p.value)\n\t}\n\n\trejected (p) {\n\t\tthis.tryStep(this.generator.throw, p.value)\n\t\treturn true\n\t}\n}\n","import { isFulfilled, isRejected, isSettled, isPending, isNever, getValue, getReason } from './inspect'\nimport { Future, resolve, reject, future, never, fulfill, all, race, iterablePromise, taskQueue } from './Promise'\n\nimport _delay from './delay'\nimport _timeout from './timeout'\n\nimport Any from './Any'\nimport Merge from './Merge'\nimport Settle from './Settle'\nimport { resultsArray } from './iterable'\n\nimport _runPromise from './runPromise'\nimport _runNode from './node'\nimport _runCoroutine from './coroutine.js'\n\nimport { isDebug } from './env'\nimport { swapContext, pushContext, enableAsyncTraces, disableAsyncTraces } from './trace'\n\nexport { enableAsyncTraces, disableAsyncTraces }\n\n/* istanbul ignore next */\nif (isDebug) {\n\tenableAsyncTraces()\n}\n\n// -------------------------------------------------------------\n// ## Core promise methods\n// -------------------------------------------------------------\n\nexport {\n\tresolve, reject, future, never, fulfill, all, race,\n\tisFulfilled, isRejected, isSettled, isPending, isNever,\n\tgetValue, getReason\n}\n\n// -------------------------------------------------------------\n// ## Coroutine\n// -------------------------------------------------------------\n\n// coroutine :: Generator e a -> (...* -> Promise e a)\n// Make a coroutine from a promise-yielding generator\nexport function coroutine (generator) {\n\treturn function coroutinified (...args) {\n\t\treturn runGenerator(generator, this, args)\n\t}\n}\n\nfunction runGenerator (generator, thisArg, args) {\n\tconst iterator = generator.apply(thisArg, args)\n\treturn _runCoroutine(resolve, iterator, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Node-style async\n// -------------------------------------------------------------\n\n// type Nodeback e a = e -> a -> ()\n// type NodeApi e a = ...* -> Nodeback e a -> ()\n\n// fromNode :: NodeApi e a -> (...args -> Promise e a)\n// Turn a Node API into a promise API\nexport function fromNode (f) {\n\treturn function promisified (...args) {\n\t\treturn runResolver(_runNode, f, this, args, new Future())\n\t}\n}\n\n// runNode :: NodeApi e a -> ...* -> Promise e a\n// Run a Node API, returning a promise for the outcome\nexport function runNode (f, ...args) {\n\treturn runResolver(_runNode, f, this, args, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Make a promise\n// -------------------------------------------------------------\n\n// type Resolve e a = a|Thenable e a -> ()\n// type Reject e = e -> ()\n// type Producer e a = (...* -> Resolve e a -> Reject e -> ())\n// runPromise :: Producer e a -> ...* -> Promise e a\nexport function runPromise (f, ...args) {\n\treturn runResolver(_runPromise, f, this, args, new Future())\n}\n\nfunction runResolver (run, f, thisArg, args, p) {\n\tcheckFunction(f)\n\n\ttry {\n\t\trun(f, thisArg, args, p)\n\t} catch (e) {\n\t\tp._reject(e)\n\t}\n\n\treturn p\n}\n\n// -------------------------------------------------------------\n// ## Time\n// -------------------------------------------------------------\n\n// delay :: number -> Promise e a -> Promise e a\nexport function delay (ms, x) {\n\t/* eslint complexity:[2,4] */\n\tconst p = resolve(x)\n\treturn ms <= 0 || isRejected(p) || isNever(p) ? p\n\t\t: _delay(ms, p, new Future())\n}\n\n// timeout :: number -> Promise e a -> Promise (e|TimeoutError) a\nexport function timeout (ms, x) {\n\tconst p = resolve(x)\n\treturn isSettled(p) ? p : _timeout(ms, p, new Future())\n}\n\n// -------------------------------------------------------------\n// ## Iterables\n// -------------------------------------------------------------\n\n// any :: Iterable (Promise e a) -> Promise e a\nexport function any (promises) {\n\treturn iterablePromise(new Any(), promises)\n}\n\n// settle :: Iterable (Promise e a) -> Promise e [Promise e a]\nexport function settle (promises) {\n\tconst handler = new Settle(resolve, resultsArray(promises))\n\treturn iterablePromise(handler, promises)\n}\n\n// -------------------------------------------------------------\n// ## Lifting\n// -------------------------------------------------------------\n\n// merge :: (...* -> b) -> ...Promise e a -> Promise e b\nexport function merge (f, ...args) {\n\treturn runMerge(f, this, args)\n}\n\nfunction runMerge (f, thisArg, args) {\n\tconst handler = new Merge(new MergeHandler(f, thisArg), resultsArray(args))\n\treturn iterablePromise(handler, args)\n}\n\nclass MergeHandler {\n\tconstructor (f, c) {\n\t\tthis.context = pushContext(this.constructor, Merge.name)\n\t\tthis.f = f\n\t\tthis.c = c\n\t\tthis.promise = void 0\n\t\tthis.args = void 0\n\t}\n\n\tmerge (promise, args) {\n\t\tthis.promise = promise\n\t\tthis.args = args\n\t\ttaskQueue.add(this)\n\t}\n\n\trun () {\n\t\tconst c = swapContext(this.context)\n\t\ttry {\n\t\t\tthis.promise._resolve(this.f.apply(this.c, this.args))\n\t\t} catch (e) {\n\t\t\tthis.promise._reject(e)\n\t\t}\n\t\tswapContext(c)\n\t}\n}\n\nfunction checkFunction (f) {\n\tif (typeof f !== 'function') {\n\t\tthrow new TypeError('must provide a resolver function')\n\t}\n}\n\n// -------------------------------------------------------------\n// ## ES6 Promise polyfill\n// -------------------------------------------------------------\n\nconst NOARGS = []\n\n// type Resolve a = a -> ()\n// type Reject e = e -> ()\n// Promise :: (Resolve a -> Reject e) -> Promise e a\nclass CreedPromise extends Future {\n\tconstructor (f) {\n\t\tsuper()\n\t\trunResolver(_runPromise, f, void 0, NOARGS, this)\n\t}\n}\n\nCreedPromise.resolve = resolve\nCreedPromise.reject = reject\nCreedPromise.all = all\nCreedPromise.race = race\n\nexport function shim () {\n\t/* global self */\n\tconst orig = typeof Promise === 'function' && Promise\n\n\t/* istanbul ignore if */\n\tif (typeof self !== 'undefined') {\n\t\tself.Promise = CreedPromise\n\t\t/* istanbul ignore else */\n\t} else if (typeof global !== 'undefined') {\n\t\tglobal.Promise = CreedPromise\n\t}\n\n\treturn orig\n}\n\nexport { CreedPromise as Promise }\n\n/* istanbul ignore if */\nif (typeof Promise !== 'function') {\n\tshim()\n}\n"],"names":["const","let","this","UNHANDLED_REJECTION","noop","super","fl","then","runPromise","runNode","_runNode","_runPromise"],"mappings":"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"} \ No newline at end of file diff --git a/dist/creed.min.js b/dist/creed.min.js index cc05da9..ba4ad26 100644 --- a/dist/creed.min.js +++ b/dist/creed.min.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.creed=t.creed||{})}(this,function(t){"use strict";function e(t){return(t.state()&ut)>0}function n(t){return(t.state()&pt)>0}function r(t){return(t.state()&st)>0}function o(t){return(t.state()&ft)>0}function i(t){return(t.state()&at)>0}function c(t){return(t.state()&ht)>0}function u(t){var e=t.near();if(!n(e))throw new TypeError("getValue called on "+t);return e.value}function p(t){var e=t.near();if(!r(e))throw new TypeError("getReason called on "+t);return s(e),e.value}function s(t){t._runAction(lt)}function f(t){return function(){return setTimeout(t,0)}}function a(t){return function(){return process.nextTick(t)}}function h(t){var e=document.createTextNode("");new dt(t).observe(e,{characterData:!0});var n=0;return function(){e.data=n^=1}}function l(t,e){try{y(e,t)}finally{e.length=0}}function y(t,e){for(var n=0;n0;)e[n]=arguments[n+1];return Z(J,t,this,e,new Kt)}function Y(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return Z(I,t,this,e,new Kt)}function Z(t,e,n,r,o){it(e);try{t(e,n,r,o)}catch(t){o._reject(t)}return o}function $(t,e){var n=E(e);return t<=0||r(n)||i(n)?n:Gt(t,n,new Kt)}function tt(t,e){var n=E(e);return o(n)?n:Lt(t,n,new Kt)}function et(t){return C(new Ut,t)}function nt(t){var e=new Xt(E,A(t));return C(e,t)}function rt(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return ot(t,this,e)}function ot(t,e,n){var r=new Mt(new $t(t,e),A(n));return C(r,n)}function it(t){if("function"!=typeof t)throw new TypeError("must provide a resolver function")}function ct(){var t="function"==typeof Promise&&Promise;return"undefined"!=typeof self?self.Promise=ee:"undefined"!=typeof global&&(global.Promise=ee),t}var ut=1,pt=2,st=4,ft=pt|st,at=8,ht=16,lt={fulfilled:function(){},rejected:function(t){t._state|=ht}},yt="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process),dt="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver,vt=function(t){return yt?a(t):dt?h(t):f(t)},_t=function(){var t=this;this.tasks=new Array(65536),this.length=0,this.drain=vt(function(){return t._drain()})};_t.prototype.add=function(t){0===this.length&&this.drain(),this.tasks[this.length++]=t},_t.prototype._drain=function(){for(var t=this.tasks,e=0;e0}function n(t){return(t.state()&at)>0}function r(t){return(t.state()&ft)>0}function o(t){return(t.state()&ht)>0}function i(t){return(t.state()<)>0}function c(t){return(t.state()&yt)>0}function u(t){var e=t.near();if(!n(e))throw new TypeError("getValue called on "+t);return e.value}function s(t){var e=t.near();if(!r(e))throw new TypeError("getReason called on "+t);return p(e),e.value}function p(t){t._runAction(dt)}function a(t){return function(){return setTimeout(t,0)}}function f(t){return function(){return process.nextTick(t)}}function h(t){var e=document.createTextNode("");new _t(t).observe(e,{characterData:!0});var n=0;return function(){e.data=n^=1}}function l(t,e){return t._creedOriginalStack||(t._creedOriginalStack=t.stack,t.stack=y(zt(t.stack),e)),t}function y(t,e){if(null==e)return t;var n=zt(e.stack);return y(n.indexOf(" at ")<0?t:t+"\n"+n,e.next)}function d(t,e){try{v(e,t)}finally{e.length=0}}function v(t,e){for(var n=0;n0;)e[n]=arguments[n+1];return tt(L,t,this,e,new oe)}function $(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return tt(J,t,this,e,new oe)}function tt(t,e,n,r,o){ut(e);try{t(e,n,r,o)}catch(t){o._reject(t)}return o}function et(t,e){var n=P(e);return t<=0||r(n)||i(n)?n:ae(t,n,new oe)}function nt(t,e){var n=P(e);return o(n)?n:le(t,n,new oe)}function rt(t){return q(new de,t)}function ot(t){var e=new ve(P,x(t));return q(e,t)}function it(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return ct(t,this,e)}function ct(t,e,n){var r=new Yt(new be(t,e),x(n));return q(r,n)}function ut(t){if("function"!=typeof t)throw new TypeError("must provide a resolver function")}function st(){var t="function"==typeof Promise&&Promise;return"undefined"!=typeof self?self.Promise=ge:"undefined"!=typeof global&&(global.Promise=ge),t}var pt=1,at=2,ft=4,ht=at|ft,lt=8,yt=16,dt={fulfilled:function(){},rejected:function(t){t._state|=yt}},vt="undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process),_t="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver,mt=function(t){return vt&&process.env[t]},bt=mt("CREED_DEBUG")||"development"===mt("NODE_ENV")||"test"===mt("NODE_ENV"),wt=function(t){return vt?f(t):_t?h(t):a(t)},gt=function(){var t=this;this.tasks=new Array(65536),this.length=0,this.drain=wt(function(){return t._drain()})};gt.prototype.add=function(t){0===this.length&&this.drain(),this.tasks[this.length++]=t},gt.prototype._drain=function(){for(var t=this.tasks,e=0;e