-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmessageport-observable.js.map
1 lines (1 loc) · 65.4 KB
/
messageport-observable.js.map
1
{"version":3,"file":"messageport-observable.js","sources":["node_modules/@stamp/is/array.js","node_modules/@stamp/is/function.js","node_modules/@stamp/is/object.js","node_modules/@stamp/is/stamp.js","node_modules/@stamp/is/composable.js","node_modules/@stamp/core/assign.js","node_modules/@stamp/is/plain-object.js","node_modules/@stamp/core/merge.js","node_modules/@stamp/compose/index.js","node_modules/@stamp/shortcut/index.js","node_modules/@stamp/it/index.js","node_modules/zen-observable/zen-observable.js","node_modules/zen-observable/index.js","index.mjs"],"sourcesContent":["module.exports = Array.isArray;\n","module.exports = function isFunction(arg) {\n return typeof arg === 'function';\n};\n","module.exports = function isObject(arg) {\n var type = typeof arg;\n return Boolean(arg) && (type === 'object' || type === 'function');\n};\n","var isFunction = require('./function');\n\nmodule.exports = function isStamp(arg) {\n return isFunction(arg) && isFunction(arg.compose);\n};\n","// More proper implementation would be\n// isDescriptor(obj) || isStamp(obj)\n// but there is no sense since stamp is function and function is object.\nmodule.exports = require('./object');\n","module.exports = Object.assign;\n","module.exports = function isPlainObject(value) {\n return Boolean(value) && typeof value === 'object' &&\n Object.getPrototypeOf(value) === Object.prototype;\n};\n","var isPlainObject = require('@stamp/is/plain-object');\nvar isObject = require('@stamp/is/object');\nvar isArray = require('@stamp/is/array');\n\n/**\n * The 'src' argument plays the command role.\n * The returned values is always of the same type as the 'src'.\n * @param dst The object to merge into\n * @param src The object to merge from\n * @returns {*}\n */\nfunction mergeOne(dst, src) {\n if (src === undefined) return dst;\n\n // According to specification arrays must be concatenated.\n // Also, the '.concat' creates a new array instance. Overrides the 'dst'.\n if (isArray(src)) return (isArray(dst) ? dst : []).concat(src);\n\n // Now deal with non plain 'src' object. 'src' overrides 'dst'\n // Note that functions are also assigned! We do not deep merge functions.\n if (!isPlainObject(src)) return src;\n\n // See if 'dst' is allowed to be mutated.\n // If not - it's overridden with a new plain object.\n var returnValue = isObject(dst) ? dst : {};\n\n var keys = Object.keys(src);\n for (var i = 0; i < keys.length; i += 1) {\n var key = keys[i];\n\n var srcValue = src[key];\n // Do not merge properties with the 'undefined' value.\n if (srcValue !== undefined) {\n var dstValue = returnValue[key];\n // Recursive calls to mergeOne() must allow only plain objects or arrays in dst\n var newDst = isPlainObject(dstValue) || isArray(srcValue) ? dstValue : {};\n\n // deep merge each property. Recursion!\n returnValue[key] = mergeOne(newDst, srcValue);\n }\n }\n\n return returnValue;\n}\n\nmodule.exports = function (dst) {\n for (var i = 1; i < arguments.length; i++) {\n dst = mergeOne(dst, arguments[i]);\n }\n return dst;\n};\n","var isArray = require('@stamp/is/array');\nvar isFunction = require('@stamp/is/function');\nvar isObject = require('@stamp/is/object');\nvar isStamp = require('@stamp/is/stamp');\nvar isComposable = require('@stamp/is/composable');\n\nvar assign = require('@stamp/core/assign');\nvar merge = require('@stamp/core/merge');\n\nvar slice = Array.prototype.slice;\n\n/**\n * Creates new factory instance.\n * @returns {Function} The new factory function.\n */\nfunction createFactory() {\n return function Stamp(options) {\n var descriptor = Stamp.compose || {};\n // Next line was optimized for most JS VMs. Please, be careful here!\n var obj = {__proto__: descriptor.methods}; // jshint ignore:line\n\n merge(obj, descriptor.deepProperties);\n assign(obj, descriptor.properties);\n Object.defineProperties(obj, descriptor.propertyDescriptors || {});\n\n if (!descriptor.initializers || descriptor.initializers.length === 0) return obj;\n\n if (options === undefined) options = {};\n var inits = descriptor.initializers;\n var length = inits.length;\n for (var i = 0; i < length; i += 1) {\n var initializer = inits[i];\n if (isFunction(initializer)) {\n var returnedValue = initializer.call(obj, options,\n {instance: obj, stamp: Stamp, args: slice.apply(arguments)});\n obj = returnedValue === undefined ? obj : returnedValue;\n }\n }\n\n return obj;\n };\n}\n\n/**\n * Returns a new stamp given a descriptor and a compose function implementation.\n * @param {Descriptor} [descriptor={}] The information about the object the stamp will be creating.\n * @param {Compose} composeFunction The \"compose\" function implementation.\n * @returns {Stamp}\n */\nfunction createStamp(descriptor, composeFunction) {\n var Stamp = createFactory();\n\n if (descriptor.staticDeepProperties) {\n merge(Stamp, descriptor.staticDeepProperties);\n }\n if (descriptor.staticProperties) {\n assign(Stamp, descriptor.staticProperties);\n }\n if (descriptor.staticPropertyDescriptors) {\n Object.defineProperties(Stamp, descriptor.staticPropertyDescriptors);\n }\n\n var composeImplementation = isFunction(Stamp.compose) ? Stamp.compose : composeFunction;\n Stamp.compose = function _compose() {\n 'use strict'; // to make sure `this` is not pointing to `global` or `window`\n return composeImplementation.apply(this, arguments);\n };\n assign(Stamp.compose, descriptor);\n\n return Stamp;\n}\n\nfunction concatAssignFunctions(dstObject, srcArray, propName) {\n if (!isArray(srcArray)) return;\n\n var length = srcArray.length;\n var dstArray = dstObject[propName] || [];\n dstObject[propName] = dstArray;\n for (var i = 0; i < length; i += 1) {\n var fn = srcArray[i];\n if (isFunction(fn) && dstArray.indexOf(fn) < 0) {\n dstArray.push(fn);\n }\n }\n}\n\n\nfunction combineProperties(dstObject, srcObject, propName, action) {\n if (!isObject(srcObject[propName])) return;\n if (!isObject(dstObject[propName])) dstObject[propName] = {};\n action(dstObject[propName], srcObject[propName]);\n}\n\nfunction deepMergeAssign(dstObject, srcObject, propName) {\n combineProperties(dstObject, srcObject, propName, merge);\n}\nfunction mergeAssign(dstObject, srcObject, propName) {\n combineProperties(dstObject, srcObject, propName, assign);\n}\n\n/**\n * Mutates the dstDescriptor by merging the srcComposable data into it.\n * @param {Descriptor} dstDescriptor The descriptor object to merge into.\n * @param {Composable} [srcComposable] The composable\n * (either descriptor or stamp) to merge data form.\n */\nfunction mergeComposable(dstDescriptor, srcComposable) {\n var srcDescriptor = (srcComposable && srcComposable.compose) || srcComposable;\n\n mergeAssign(dstDescriptor, srcDescriptor, 'methods');\n mergeAssign(dstDescriptor, srcDescriptor, 'properties');\n deepMergeAssign(dstDescriptor, srcDescriptor, 'deepProperties');\n mergeAssign(dstDescriptor, srcDescriptor, 'propertyDescriptors');\n mergeAssign(dstDescriptor, srcDescriptor, 'staticProperties');\n deepMergeAssign(dstDescriptor, srcDescriptor, 'staticDeepProperties');\n mergeAssign(dstDescriptor, srcDescriptor, 'staticPropertyDescriptors');\n mergeAssign(dstDescriptor, srcDescriptor, 'configuration');\n deepMergeAssign(dstDescriptor, srcDescriptor, 'deepConfiguration');\n concatAssignFunctions(dstDescriptor, srcDescriptor.initializers, 'initializers');\n concatAssignFunctions(dstDescriptor, srcDescriptor.composers, 'composers');\n}\n\n/**\n * Given the list of composables (stamp descriptors and stamps) returns\n * a new stamp (composable factory function).\n * @typedef {Function} Compose\n * @param {...(Composable)} [arguments] The list of composables.\n * @returns {Stamp} A new stamp (aka composable factory function)\n */\nmodule.exports = function compose() {\n 'use strict'; // to make sure `this` is not pointing to `global` or `window`\n var descriptor = {};\n var composables = [];\n if (isComposable(this)) {\n mergeComposable(descriptor, this);\n composables.push(this);\n }\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (isComposable(arg)) {\n mergeComposable(descriptor, arg);\n composables.push(arg);\n }\n }\n\n var stamp = createStamp(descriptor, compose);\n\n var composers = descriptor.composers;\n if (isArray(composers) && composers.length > 0) {\n for (var j = 0; j < composers.length; j += 1) {\n var composer = composers[j];\n var returnedValue = composer({stamp: stamp, composables: composables});\n stamp = isStamp(returnedValue) ? returnedValue : stamp;\n }\n }\n\n return stamp;\n};\n\n\n/**\n * The Stamp Descriptor\n * @typedef {Function|Object} Descriptor\n * @returns {Stamp} A new stamp based on this Stamp\n * @property {Object} [methods] Methods or other data used as object instances' prototype\n * @property {Array<Function>} [initializers] List of initializers called for each object instance\n * @property {Array<Function>} [composers] List of callbacks called each time a composition happens\n * @property {Object} [properties] Shallow assigned properties of object instances\n * @property {Object} [deepProperties] Deeply merged properties of object instances\n * @property {Object} [staticProperties] Shallow assigned properties of Stamps\n * @property {Object} [staticDeepProperties] Deeply merged properties of Stamps\n * @property {Object} [configuration] Shallow assigned properties of Stamp arbitrary metadata\n * @property {Object} [deepConfiguration] Deeply merged properties of Stamp arbitrary metadata\n * @property {Object} [propertyDescriptors] ES5 Property Descriptors applied to object instances\n * @property {Object} [staticPropertyDescriptors] ES5 Property Descriptors applied to Stamps\n */\n\n/**\n * The Stamp factory function\n * @typedef {Function} Stamp\n * @returns {*} Instantiated object\n * @property {Descriptor} compose - The Stamp descriptor and composition function\n */\n\n/**\n * A composable object - stamp or descriptor\n * @typedef {Stamp|Descriptor} Composable\n */\n\n","var compose = require('@stamp/compose');\n\nfunction createShortcut(propName) {\n return function (arg) {\n 'use strict';\n var param = {};\n param[propName] = arg;\n return this && this.compose ? this.compose(param) : compose(param);\n };\n}\n\nvar properties = createShortcut('properties');\nvar staticProperties = createShortcut('staticProperties');\nvar configuration = createShortcut('configuration');\nvar deepProperties = createShortcut('deepProperties');\nvar staticDeepProperties = createShortcut('staticDeepProperties');\nvar deepConfiguration = createShortcut('deepConfiguration');\nvar initializers = createShortcut('initializers');\n\nmodule.exports = compose({\n staticProperties: {\n methods: createShortcut('methods'),\n\n props: properties,\n properties: properties,\n\n statics: staticProperties,\n staticProperties: staticProperties,\n\n conf: configuration,\n configuration: configuration,\n\n deepProps: deepProperties,\n deepProperties: deepProperties,\n\n deepStatics: staticDeepProperties,\n staticDeepProperties: staticDeepProperties,\n\n deepConf: deepConfiguration,\n deepConfiguration: deepConfiguration,\n\n init: initializers,\n initializers: initializers,\n\n composers: createShortcut('composers'),\n\n propertyDescriptors: createShortcut('propertyDescriptors'),\n\n staticPropertyDescriptors: createShortcut('staticPropertyDescriptors')\n }\n});\n","var compose = require('@stamp/compose');\nvar Shortcut = require('@stamp/shortcut');\nvar isStamp = require('@stamp/is/stamp');\nvar isObject = require('@stamp/is/object');\nvar isFunction = require('@stamp/is/function');\nvar merge = require('@stamp/core/merge');\nvar assign = require('@stamp/core/assign');\n\nvar concat = Array.prototype.concat;\nfunction extractFunctions() {\n var fns = concat.apply([], arguments).filter(isFunction);\n return fns.length === 0 ? undefined : fns;\n}\n\nfunction standardiseDescriptor(descr) {\n if (!isObject(descr)) return descr;\n\n var methods = descr.methods;\n var properties = descr.properties;\n var props = descr.props;\n var initializers = descr.initializers;\n var init = descr.init;\n var composers = descr.composers;\n var deepProperties = descr.deepProperties;\n var deepProps = descr.deepProps;\n var pd = descr.propertyDescriptors;\n var staticProperties = descr.staticProperties;\n var statics = descr.statics;\n var staticDeepProperties = descr.staticDeepProperties;\n var deepStatics = descr.deepStatics;\n var spd = descr.staticPropertyDescriptors;\n var configuration = descr.configuration;\n var conf = descr.conf;\n var deepConfiguration = descr.deepConfiguration;\n var deepConf = descr.deepConf;\n\n var p = isObject(props) || isObject(properties) ?\n assign({}, props, properties) : undefined;\n\n var dp = isObject(deepProps) ? merge({}, deepProps) : undefined;\n dp = isObject(deepProperties) ? merge(dp, deepProperties) : dp;\n\n var sp = isObject(statics) || isObject(staticProperties) ?\n assign({}, statics, staticProperties) : undefined;\n\n var sdp = isObject(deepStatics) ? merge({}, deepStatics) : undefined;\n sdp = isObject(staticDeepProperties) ? merge(sdp, staticDeepProperties) : sdp;\n\n var c = isObject(conf) || isObject(configuration) ?\n assign({}, conf, configuration) : undefined;\n\n var dc = isObject(deepConf) ? merge({}, deepConf) : undefined;\n dc = isObject(deepConfiguration) ? merge(dc, deepConfiguration) : dc;\n\n var ii = extractFunctions(init, initializers);\n\n var cc = extractFunctions(composers);\n\n var descriptor = {};\n if (methods) descriptor.methods = methods;\n if (p) descriptor.properties = p;\n if (ii) descriptor.initializers = ii;\n if (cc) descriptor.composers = cc;\n if (dp) descriptor.deepProperties = dp;\n if (sp) descriptor.staticProperties = sp;\n if (sdp) descriptor.staticDeepProperties = sdp;\n if (pd) descriptor.propertyDescriptors = pd;\n if (spd) descriptor.staticPropertyDescriptors = spd;\n if (c) descriptor.configuration = c;\n if (dc) descriptor.deepConfiguration = dc;\n\n return descriptor;\n}\n\nfunction stampit() {\n 'use strict'; // to make sure `this` is not pointing to `global` or `window`\n var length = arguments.length, args = [];\n for (var i = 0; i < length; i += 1) {\n var arg = arguments[i];\n args.push(isStamp(arg) ? arg : standardiseDescriptor(arg));\n }\n\n return compose.apply(this || baseStampit, args); // jshint ignore:line\n}\n\nvar baseStampit = Shortcut.compose({\n staticProperties: {\n create: function () { return this.apply(this, arguments); },\n compose: stampit // infecting\n }\n});\n\nvar shortcuts = Shortcut.compose.staticProperties;\nfor (var prop in shortcuts) stampit[prop] = shortcuts[prop].bind(baseStampit);\nstampit.compose = stampit.bind();\n\nmodule.exports = stampit;\n","'use strict'; (function(fn, name) { if (typeof exports !== 'undefined') fn(exports, module); else if (typeof self !== 'undefined') fn(name === '*' ? self : (name ? self[name] = {} : {})); })(function(exports, module) { // === Symbol Support ===\n\nfunction hasSymbol(name) {\n return typeof Symbol === \"function\" && Boolean(Symbol[name]);\n}\n\nfunction getSymbol(name) {\n return hasSymbol(name) ? Symbol[name] : \"@@\" + name;\n}\n\n// Ponyfill Symbol.observable for interoperability with other libraries\nif (typeof Symbol === \"function\" && !Symbol.observable) {\n Symbol.observable = Symbol(\"observable\");\n}\n\n// === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n\n if (value == null)\n return undefined;\n\n if (typeof value !== \"function\")\n throw new TypeError(value + \" is not a function\");\n\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n if (ctor !== undefined) {\n ctor = ctor[getSymbol(\"species\")];\n if (ctor === null) {\n ctor = undefined;\n }\n }\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction addMethods(target, methods) {\n Object.keys(methods).forEach(function(k) {\n var desc = Object.getOwnPropertyDescriptor(methods, k);\n desc.enumerable = false;\n Object.defineProperty(target, k, desc);\n });\n}\n\nfunction cleanupSubscription(subscription) {\n // Assert: observer._observer is undefined\n\n var cleanup = subscription._cleanup;\n\n if (!cleanup)\n return;\n\n // Drop the reference to the cleanup function so that we won't call it\n // more than once\n subscription._cleanup = undefined;\n\n // Call the cleanup function\n cleanup();\n}\n\nfunction subscriptionClosed(subscription) {\n return subscription._observer === undefined;\n}\n\nfunction closeSubscription(subscription) {\n if (subscriptionClosed(subscription))\n return;\n\n subscription._observer = undefined;\n cleanupSubscription(subscription);\n}\n\nfunction cleanupFromSubscription(subscription) {\n return function() { subscription.unsubscribe() };\n}\n\nfunction Subscription(observer, subscriber) {\n // Assert: subscriber is callable\n\n // The observer must be an object\n if (Object(observer) !== observer)\n throw new TypeError(\"Observer must be an object\");\n\n this._cleanup = undefined;\n this._observer = observer;\n\n var start = getMethod(observer, \"start\");\n\n if (start)\n start.call(observer, this);\n\n if (subscriptionClosed(this))\n return;\n\n observer = new SubscriptionObserver(this);\n\n try {\n // Call the subscriber function\n var cleanup$0 = subscriber.call(undefined, observer);\n\n // The return value must be undefined, null, a subscription object, or a function\n if (cleanup$0 != null) {\n if (typeof cleanup$0.unsubscribe === \"function\")\n cleanup$0 = cleanupFromSubscription(cleanup$0);\n else if (typeof cleanup$0 !== \"function\")\n throw new TypeError(cleanup$0 + \" is not a function\");\n\n this._cleanup = cleanup$0;\n }\n } catch (e) {\n // If an error occurs during startup, then attempt to send the error\n // to the observer\n observer.error(e);\n return;\n }\n\n // If the stream is already finished, then perform cleanup\n if (subscriptionClosed(this))\n cleanupSubscription(this);\n}\n\naddMethods(Subscription.prototype = {}, {\n get closed() { return subscriptionClosed(this) },\n unsubscribe: function() { closeSubscription(this) },\n});\n\nfunction SubscriptionObserver(subscription) {\n this._subscription = subscription;\n}\n\naddMethods(SubscriptionObserver.prototype = {}, {\n\n get closed() { return subscriptionClosed(this._subscription) },\n\n next: function(value) {\n var subscription = this._subscription;\n\n // If the stream is closed, then return undefined\n if (subscriptionClosed(subscription))\n return undefined;\n\n var observer = subscription._observer;\n var m = getMethod(observer, \"next\");\n\n // If the observer doesn't support \"next\", then return undefined\n if (!m)\n return undefined;\n\n // Send the next value to the sink\n return m.call(observer, value);\n },\n\n error: function(value) {\n var subscription = this._subscription;\n\n // If the stream is closed, throw the error to the caller\n if (subscriptionClosed(subscription))\n throw value;\n\n var observer = subscription._observer;\n subscription._observer = undefined;\n\n try {\n var m$0 = getMethod(observer, \"error\");\n\n // If the sink does not support \"error\", then throw the error to the caller\n if (!m$0)\n throw value;\n\n value = m$0.call(observer, value);\n } catch (e) {\n try { cleanupSubscription(subscription) }\n finally { throw e }\n }\n\n cleanupSubscription(subscription);\n return value;\n },\n\n complete: function(value) {\n var subscription = this._subscription;\n\n // If the stream is closed, then return undefined\n if (subscriptionClosed(subscription))\n return undefined;\n\n var observer = subscription._observer;\n subscription._observer = undefined;\n\n try {\n var m$1 = getMethod(observer, \"complete\");\n\n // If the sink does not support \"complete\", then return undefined\n value = m$1 ? m$1.call(observer, value) : undefined;\n } catch (e) {\n try { cleanupSubscription(subscription) }\n finally { throw e }\n }\n\n cleanupSubscription(subscription);\n return value;\n },\n\n});\n\nfunction Observable(subscriber) {\n // The stream subscriber must be a function\n if (typeof subscriber !== \"function\")\n throw new TypeError(\"Observable initializer must be a function\");\n\n this._subscriber = subscriber;\n}\n\naddMethods(Observable.prototype, {\n\n subscribe: function(observer) { for (var args = [], __$0 = 1; __$0 < arguments.length; ++__$0) args.push(arguments[__$0]); \n if (typeof observer === 'function') {\n observer = {\n next: observer,\n error: args[0],\n complete: args[1],\n };\n }\n\n return new Subscription(observer, this._subscriber);\n },\n\n forEach: function(fn) { var __this = this; \n return new Promise(function(resolve, reject) {\n if (typeof fn !== \"function\")\n return Promise.reject(new TypeError(fn + \" is not a function\"));\n\n __this.subscribe({\n _subscription: null,\n\n start: function(subscription) {\n if (Object(subscription) !== subscription)\n throw new TypeError(subscription + \" is not an object\");\n\n this._subscription = subscription;\n },\n\n next: function(value) {\n var subscription = this._subscription;\n\n if (subscription.closed)\n return;\n\n try {\n return fn(value);\n } catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n },\n\n error: reject,\n complete: resolve,\n });\n });\n },\n\n map: function(fn) { var __this = this; \n if (typeof fn !== \"function\")\n throw new TypeError(fn + \" is not a function\");\n\n var C = getSpecies(this);\n\n return new C(function(observer) { return __this.subscribe({\n next: function(value) {\n if (observer.closed)\n return;\n\n try { value = fn(value) }\n catch (e) { return observer.error(e) }\n\n return observer.next(value);\n },\n\n error: function(e) { return observer.error(e) },\n complete: function(x) { return observer.complete(x) },\n }); });\n },\n\n filter: function(fn) { var __this = this; \n if (typeof fn !== \"function\")\n throw new TypeError(fn + \" is not a function\");\n\n var C = getSpecies(this);\n\n return new C(function(observer) { return __this.subscribe({\n next: function(value) {\n if (observer.closed)\n return;\n\n try { if (!fn(value)) return undefined }\n catch (e) { return observer.error(e) }\n\n return observer.next(value);\n },\n\n error: function(e) { return observer.error(e) },\n complete: function() { return observer.complete() },\n }); });\n },\n\n reduce: function(fn) { var __this = this; \n if (typeof fn !== \"function\")\n throw new TypeError(fn + \" is not a function\");\n\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n\n return new C(function(observer) { return __this.subscribe({\n\n next: function(value) {\n if (observer.closed)\n return;\n\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try { acc = fn(acc, value) }\n catch (e) { return observer.error(e) }\n } else {\n acc = value;\n }\n },\n\n error: function(e) { observer.error(e) },\n\n complete: function() {\n if (!hasValue && !hasSeed) {\n observer.error(new TypeError(\"Cannot reduce an empty sequence\"));\n return;\n }\n\n observer.next(acc);\n observer.complete();\n },\n\n }); });\n },\n\n flatMap: function(fn) { var __this = this; \n if (typeof fn !== \"function\")\n throw new TypeError(fn + \" is not a function\");\n\n var C = getSpecies(this);\n\n return new C(function(observer) {\n var completed = false;\n var subscriptions = [];\n\n // Subscribe to the outer Observable\n var outer = __this.subscribe({\n\n next: function(value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (x) {\n observer.error(x);\n return;\n }\n }\n\n // Subscribe to the inner Observable\n Observable.from(value).subscribe({\n _subscription: null,\n\n start: function(s) { subscriptions.push(this._subscription = s) },\n next: function(value) { observer.next(value) },\n error: function(e) { observer.error(e) },\n\n complete: function() {\n var i = subscriptions.indexOf(this._subscription);\n\n if (i >= 0)\n subscriptions.splice(i, 1);\n\n closeIfDone();\n }\n });\n },\n\n error: function(e) {\n return observer.error(e);\n },\n\n complete: function() {\n completed = true;\n closeIfDone();\n }\n });\n\n function closeIfDone() {\n if (completed && subscriptions.length === 0)\n observer.complete();\n }\n\n return function() {\n subscriptions.forEach(function(s) { return s.unsubscribe(); });\n outer.unsubscribe();\n };\n });\n },\n\n});\n\nObject.defineProperty(Observable.prototype, getSymbol(\"observable\"), {\n value: function() { return this },\n writable: true,\n configurable: true,\n});\n\naddMethods(Observable, {\n\n from: function(x) {\n var C = typeof this === \"function\" ? this : Observable;\n\n if (x == null)\n throw new TypeError(x + \" is not an object\");\n\n var method = getMethod(x, getSymbol(\"observable\"));\n\n if (method) {\n var observable$0 = method.call(x);\n\n if (Object(observable$0) !== observable$0)\n throw new TypeError(observable$0 + \" is not an object\");\n\n if (observable$0.constructor === C)\n return observable$0;\n\n return new C(function(observer) { return observable$0.subscribe(observer); });\n }\n\n if (hasSymbol(\"iterator\") && (method = getMethod(x, getSymbol(\"iterator\")))) {\n return new C(function(observer) {\n for (var __$0 = (method.call(x))[Symbol.iterator](), __$1; __$1 = __$0.next(), !__$1.done;) { var item$0 = __$1.value; \n observer.next(item$0);\n if (observer.closed)\n return;\n }\n\n observer.complete();\n });\n }\n\n if (Array.isArray(x)) {\n return new C(function(observer) {\n for (var i$0 = 0; i$0 < x.length; ++i$0) {\n observer.next(x[i$0]);\n if (observer.closed)\n return;\n }\n\n observer.complete();\n });\n }\n\n throw new TypeError(x + \" is not observable\");\n },\n\n of: function() { for (var items = [], __$0 = 0; __$0 < arguments.length; ++__$0) items.push(arguments[__$0]); \n var C = typeof this === \"function\" ? this : Observable;\n\n return new C(function(observer) {\n for (var i$1 = 0; i$1 < items.length; ++i$1) {\n observer.next(items[i$1]);\n if (observer.closed)\n return;\n }\n\n observer.complete();\n });\n },\n\n});\n\nObject.defineProperty(Observable, getSymbol(\"species\"), {\n get: function() { return this },\n configurable: true,\n});\n\nexports.Observable = Observable;\n\n\n}, \"*\");","module.exports = require(\"./zen-observable.js\").Observable;\n","import stampit from '@stamp/it';\nimport Observable from 'zen-observable';\n\n/**\n * This is a \"lightweight\" (is it?) wrapper around MessagePort / Window / Worker\n * objects (things that have a postMessage method).\n */\n\n/**\n * This is used to ensure that when the wrapped object is set, method bindings\n * happen\n */\nconst wrapper = stampit()\n .props({ isWrapped: true })\n .propertyDescriptors({\n wrapped: {\n enumerable: true,\n configurable: true,\n get() {\n return null;\n },\n set(obj) {\n if (!obj)\n throw new Error(\"Cannot set wrapped object to falsy\");\n\n delete this.wrapped;\n Object.defineProperty(this, 'wrapped', {\n value: obj,\n writable: true,\n configurable: true,\n enumerable: true\n });\n }\n }\n })\n .init(function(_, { instance, stamp }) {\n instance.wrapper = stamp;\n })\n .methods({\n unwrap() {\n if (!this.wrapped)\n throw new Error(\"No wrapped object in this wrapper\");\n\n return this.wrapped.isWrapped ? this.wrapped.unwrap() : this.wrapped;\n }\n });\n\nfunction filteringPropertyDescriptor(type) {\n const attribute = 'on' + type;\n\n return {\n enumerable: true,\n configurable: false,\n get() {\n return this.wrapped[attribute];\n },\n set(listener) {\n const eventFilter = this.eventFilters[type];\n if (eventFilter) {\n this.wrapped[attribute] = function(event) {\n if (eventFilter.call(this, event))\n listener.call(this, event);\n };\n }\n else {\n this.wrapped[attribute] = listener;\n }\n }\n };\n}\n\n// Use a WeakMap if poss. That way, if the messageport loses the ref to\n// the listener on its own, there's no memory leak\nconst mapImpl = typeof WeakMap === 'function' ? WeakMap : Map;\n\n/**\n * This is stamp returns an object that wraps event handlers so that they only\n * fire when the given filters apply\n */\nconst filteringPort = wrapper\n .init(function(_, { instance, stamp }) {\n instance.eventFilters = {};\n instance.eventListeners = {};\n })\n .methods({\n filter() {\n let newFilter, type;\n\n if (arguments.length === 1) {\n type = 'message';\n newFilter = arguments[0];\n }\n else {\n type = arguments[0];\n newFilter = arguments[1];\n }\n\n const clone = this.wrapper(this);\n clone.autostart = false;\n clone.eventFilters[type] = newFilter;\n\n return clone;\n },\n\n addEventListener(type, listener, options) {\n if (!this.eventListeners[type])\n this.eventListeners[type] = new mapImpl();\n\n // This ensures that we are only notified about events that haven't been\n // filtered out\n if (!this.eventListeners[type].has(listener)) {\n const eventFilter = this.eventFilters[type];\n\n let wrappedListener;\n if (eventFilter) {\n wrappedListener = function(event) {\n if (eventFilter(event)) {\n typeof listener.handleEvent === 'function' ?\n listener.handleEvent(event) :\n listener(event);\n }\n };\n }\n else {\n wrappedListener = listener;\n }\n\n this.wrapped.addEventListener(type, wrappedListener, options);\n this.eventListeners[type].set(listener, wrappedListener);\n }\n },\n\n removeEventListener(type, listener, options) {\n if (this.eventListeners[type] && this.eventListeners[type].has(listener)) {\n this.wrapped.removeEventListener(type, this.eventListeners[type].get(listener), options);\n this.eventListeners[type].delete(listener);\n }\n }\n })\n .propertyDescriptors({\n onmessage: filteringPropertyDescriptor('message'),\n onmessageerror: filteringPropertyDescriptor('messageerror')\n });\n\nconst observablePort = stampit()\n .props({\n autostart: true\n })\n .init(function(_, { instance }) {\n // Add standardised observable accessor, if poss.\n if (typeof Symbol === 'function' && Symbol.observable)\n instance[Symbol.observable] = () => instance.observable;\n })\n .propertyDescriptors({\n observable: {\n enumerable: true,\n configurable: true,\n get() {\n const observable = new Observable(observer => {\n const messageCb = observer.next.bind(observer);\n const messageErrorCb = observer.error.bind(observer);\n this.addEventListener('message', messageCb);\n this.addEventListener('messageerror', messageErrorCb);\n\n if (this.autostart && this.start)\n this.start();\n\n return () => {\n this.removeEventListener('message', messageCb);\n this.removeEventListener('messageerror', messageErrorCb);\n };\n });\n\n delete this.observable;\n Object.defineProperty(this, 'observable', {\n value: observable,\n writable: true,\n configurable: true,\n enumerable: true\n });\n\n return observable;\n }\n }\n })\n .methods({\n subscribe(...args) {\n return this.observable.subscribe(...args);\n },\n\n postMessageWithReply(message, listener) {\n const messageChannel = new MessageChannel(),\n replyPort = this.wrapper(messageChannel.port1);\n\n this.postMessage(message, [messageChannel.port2]);\n if (listener)\n listener(replyPort);\n else\n return replyPort;\n },\n\n postObservable(observable, splat = false, close = false) {\n const complete = close && typeof this.close === 'function' ?\n () => this.close() :\n undefined;\n\n const next = splat ?\n (args) => this.postMessage(...args) :\n this.postMessage.bind(this);\n\n return Observable.from(observable).subscribe(next, complete, complete);\n },\n\n postMessageWithObservable(message, observable, splat=false) {\n const messageChannel = new MessageChannel(),\n postPort = this.wrapper(messageChannel.port1);\n\n this.postMessage(message, [messageChannel.port2]);\n return postPort.postObservable(observable, splat, true);\n },\n\n subscribeWithPort(listener, splat=false) {\n const wrapper = this.wrapper;\n return this.subscribe(event => {\n const port = event.ports[0];\n const wrappedPort = port ? wrapper(port) : null;\n listener(event, wrappedPort);\n });\n },\n\n subscribeAndPostReplies(listener, splat = false) {\n return this.subscribeWithPort((event, replyPort) => {\n const response = listener(event);\n if (response && replyPort)\n replyPort.postObservable(response, splat, true);\n }, splat);\n }\n });\n\nconst filteringObservablePort = filteringPort.compose(observablePort);\n\n/**\n * A generic wrapper around MessagePort objects (incl. workers)\n */\nconst wrapPort = filteringObservablePort\n .init(function(port, { instance }) {\n if (!port)\n throw new Error(\"No port given\");\n\n instance.wrapped = port;\n for (let method of ['postMessage', 'start', 'close']) {\n if (typeof port[method] === 'function')\n instance[method] = port[method].bind(port);\n }\n });\n\n/**\n * A MessagePort-alike interface for windows. Adds the following:\n *\n * - filters to ensure that all events sent and received have an origin setting.\n * - shims the postMessage method so that it looks like the MessagePort one\n */\nconst wrapWindow = filteringObservablePort\n .init(function(options, { instance }) {\n if (!options.window)\n throw new Error(\"No window given\");\n\n if (!options.origin || options.origin === \"\")\n throw new Error(\"No origin given\");\n\n // Override the wrapper variable so that subsequently created ports don't\n // use this constructor. This can be provided as a parameter if you want to\n // compose in some stuff.\n instance.wrapper = options.wrapPort ? options.wrapPort : wrapPort;\n\n instance.wrapped = options.window;\n instance.origin = options.origin;\n\n // Set up initial filters if a specific origin is given.\n if (instance.origin !== '*') {\n instance.eventFilters['message'] = instance.eventFilters['messageerror'] =\n event => event.origin === options.origin;\n }\n })\n .methods({\n // Provide a compliant postMessage\n postMessage(message, transferList) {\n this.wrapped.postMessage(message, this.origin, transferList);\n }\n });\n\nexport { wrapPort, wrapWindow };\n"],"names":["isFunction","require$$0","isArray","isPlainObject","isObject","isComposable","stamp","isStamp","Shortcut","wrapper","stampit","props","isWrapped","propertyDescriptors","obj","Error","wrapped","defineProperty","init","_","instance","methods","unwrap","filteringPropertyDescriptor","type","attribute","listener","eventFilter","eventFilters","event","call","mapImpl","WeakMap","Map","filteringPort","eventListeners","newFilter","arguments","length","clone","autostart","options","has","wrappedListener","handleEvent","addEventListener","set","removeEventListener","get","delete","observablePort","Symbol","observable","Observable","messageCb","observer","next","bind","messageErrorCb","error","start","subscribe","message","messageChannel","MessageChannel","replyPort","port1","postMessage","port2","splat","close","complete","undefined","args","from","postPort","postObservable","port","ports","wrappedPort","subscribeWithPort","response","filteringObservablePort","compose","wrapPort","method","wrapWindow","window","origin","transferList"],"mappings":"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"}