marko 5.20.8 → 5.20.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -66,7 +66,7 @@ var proto = RenderResult.prototype = {
66
66
  toString: function () {
67
67
  return this.y_.toString();
68
68
  },
69
- document: typeof window === "object" && document };
69
+ document: typeof document === "object" && document };
70
70
 
71
71
 
72
72
  Object.defineProperty(proto, "html", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/runtime/RenderResult.js"],"names":["domInsert","require","getRootNode","el","cur","parentNode","getComponentDefs","result","componentDefs","Error","RenderResult","out","undefined","module","exports","proto","prototype","getComponent","getComponents","selector","components","forEach","componentDef","component","push","afterInsert","host","componentsContext","getNode","getOutput","toString","document","window","Object","defineProperty","get","getEl","renderResult","referenceEl"],"mappings":"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","sourcesContent":["var domInsert = require(\"./dom-insert\");\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\n\nfunction getRootNode(el) {\n var cur = el;\n while (cur.parentNode) cur = cur.parentNode;\n return cur;\n}\n\nfunction getComponentDefs(result) {\n var componentDefs = result.___components;\n\n if (!componentDefs) {\n throw Error(\"No component\");\n }\n return componentDefs;\n}\n\nfunction RenderResult(out) {\n this.out = this.___out = out;\n this.___components = undefined;\n}\n\nmodule.exports = RenderResult;\n\nvar proto = (RenderResult.prototype = {\n getComponent: function () {\n return this.getComponents()[0];\n },\n getComponents: function (selector) {\n if (this.___components === undefined) {\n throw Error(\"Not added to DOM\");\n }\n\n var componentDefs = getComponentDefs(this);\n\n var components = [];\n\n componentDefs.forEach(function (componentDef) {\n var component = componentDef.___component;\n if (!selector || selector(component)) {\n components.push(component);\n }\n });\n\n return components;\n },\n\n afterInsert: function (host) {\n var out = this.___out;\n var componentsContext = out.___components;\n if (componentsContext) {\n this.___components = componentsContext.___initComponents(host);\n } else {\n this.___components = null;\n }\n\n return this;\n },\n getNode: function (host) {\n return this.___out.___getNode(host);\n },\n getOutput: function () {\n return this.___out.___getOutput();\n },\n toString: function () {\n return this.___out.toString();\n },\n document: typeof window === \"object\" && document\n});\n\nObject.defineProperty(proto, \"html\", {\n get: function () {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n 'The \"html\" property is deprecated. Please use \"toString\" instead.'\n );\n }\n return this.toString();\n }\n});\n\nObject.defineProperty(proto, \"context\", {\n get: function () {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n 'The \"context\" property is deprecated. Please use \"out\" instead.'\n );\n }\n return this.___out;\n }\n});\n\n// Add all of the following DOM methods to Component.prototype:\n// - appendTo(referenceEl)\n// - replace(referenceEl)\n// - replaceChildrenOf(referenceEl)\n// - insertBefore(referenceEl)\n// - insertAfter(referenceEl)\n// - prependTo(referenceEl)\ndomInsert(\n proto,\n function getEl(renderResult, referenceEl) {\n return renderResult.getNode(getRootNode(referenceEl));\n },\n function afterInsert(renderResult, referenceEl) {\n return renderResult.afterInsert(getRootNode(referenceEl));\n }\n);\n"],"file":"RenderResult.js"}
1
+ {"version":3,"sources":["../../src/runtime/RenderResult.js"],"names":["domInsert","require","getRootNode","el","cur","parentNode","getComponentDefs","result","componentDefs","Error","RenderResult","out","undefined","module","exports","proto","prototype","getComponent","getComponents","selector","components","forEach","componentDef","component","push","afterInsert","host","componentsContext","getNode","getOutput","toString","document","Object","defineProperty","get","getEl","renderResult","referenceEl"],"mappings":"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","sourcesContent":["var domInsert = require(\"./dom-insert\");\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\n\nfunction getRootNode(el) {\n var cur = el;\n while (cur.parentNode) cur = cur.parentNode;\n return cur;\n}\n\nfunction getComponentDefs(result) {\n var componentDefs = result.___components;\n\n if (!componentDefs) {\n throw Error(\"No component\");\n }\n return componentDefs;\n}\n\nfunction RenderResult(out) {\n this.out = this.___out = out;\n this.___components = undefined;\n}\n\nmodule.exports = RenderResult;\n\nvar proto = (RenderResult.prototype = {\n getComponent: function () {\n return this.getComponents()[0];\n },\n getComponents: function (selector) {\n if (this.___components === undefined) {\n throw Error(\"Not added to DOM\");\n }\n\n var componentDefs = getComponentDefs(this);\n\n var components = [];\n\n componentDefs.forEach(function (componentDef) {\n var component = componentDef.___component;\n if (!selector || selector(component)) {\n components.push(component);\n }\n });\n\n return components;\n },\n\n afterInsert: function (host) {\n var out = this.___out;\n var componentsContext = out.___components;\n if (componentsContext) {\n this.___components = componentsContext.___initComponents(host);\n } else {\n this.___components = null;\n }\n\n return this;\n },\n getNode: function (host) {\n return this.___out.___getNode(host);\n },\n getOutput: function () {\n return this.___out.___getOutput();\n },\n toString: function () {\n return this.___out.toString();\n },\n document: typeof document === \"object\" && document\n});\n\nObject.defineProperty(proto, \"html\", {\n get: function () {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n 'The \"html\" property is deprecated. Please use \"toString\" instead.'\n );\n }\n return this.toString();\n }\n});\n\nObject.defineProperty(proto, \"context\", {\n get: function () {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n 'The \"context\" property is deprecated. Please use \"out\" instead.'\n );\n }\n return this.___out;\n }\n});\n\n// Add all of the following DOM methods to Component.prototype:\n// - appendTo(referenceEl)\n// - replace(referenceEl)\n// - replaceChildrenOf(referenceEl)\n// - insertBefore(referenceEl)\n// - insertAfter(referenceEl)\n// - prependTo(referenceEl)\ndomInsert(\n proto,\n function getEl(renderResult, referenceEl) {\n return renderResult.getNode(getRootNode(referenceEl));\n },\n function afterInsert(renderResult, referenceEl) {\n return renderResult.afterInsert(getRootNode(referenceEl));\n }\n);\n"],"file":"RenderResult.js"}
@@ -114,7 +114,7 @@ AsyncStream.enableAsyncStackTrace = function () {
114
114
 
115
115
  var proto = AsyncStream.prototype = {
116
116
  constructor: AsyncStream,
117
- X_: typeof window === "object" && document,
117
+ X_: typeof document === "object" && document,
118
118
  aQ_: true,
119
119
 
120
120
  sync: function () {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/html/AsyncStream.js"],"names":["EventEmitter","require","StringWriter","BufferedWriter","RenderResult","attrsHelper","markoAttr","escapeXmlHelper","parseHTML","escapeXmlOrNullish","x","escapeXmlString","selfClosingTags","noop","voidWriter","write","script","merge","clear","get","toString","State","root","stream","writer","events","finished","escapeEndingComment","text","replace","AsyncStream","global","parentOut","Error","finalGlobal","attributes","originalStream","state","_state","on","runtimeId","_ended","_remaining","_lastCount","_last","undefined","_parentOut","data","_sync","_stack","name","_timeoutId","_node","_elStack","DEFAULT_TIMEOUT","INCLUDE_STACK","process","env","NODE_ENV","enableAsyncStackTrace","proto","prototype","constructor","window","document","sync","isSync","str","getOutput","_result","beginAsync","options","currentWriter","newWriter","newStream","next","timeout","last","setTimeout","error","emit","out","_doFinish","end","remaining","_flushNext","_emitLast","timeoutId","clearTimeout","_handleChildDone","childOut","nextWriter","nextStream","event","callback","onLast","once","lastArray","push","i","length","lastCallback","type","arg","arguments","apply","removeListener","prependListener","pipe","e","stack","getNonMarkoStack","JSON","stringify","message","flush","scheduleFlush","createOut","newOut","bind","tagName","elementAttrs","key","componentDef","props","voidElements","indexOf","svgElements","element","openTagOnly","beginElement","endElement","pop","comment","bf","component","preserve","ef","host","node","nextEl","fragment","html","doc","ownerDocument","nextSibling","createDocumentFragment","appendChild","then","fn","fnErr","promise","Promise","resolve","reject","result","catch","c","customEvents","w","module","exports","split","slice","filter","line","test","join"],"mappings":"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","sourcesContent":["\"use strict\";\nvar EventEmitter = require(\"events-light\");\nvar StringWriter = require(\"./StringWriter\");\nvar BufferedWriter = require(\"./BufferedWriter\");\nvar RenderResult = require(\"../RenderResult\");\nvar attrsHelper = require(\"./helpers/attrs\");\nvar markoAttr = require(\"./helpers/data-marko\");\nvar escapeXmlHelper = require(\"./helpers/escape-xml\");\nvar parseHTML = require(\"../vdom/parse-html\");\nvar escapeXmlOrNullish = escapeXmlHelper.x;\nvar escapeXmlString = escapeXmlHelper.___escapeXML;\nvar selfClosingTags = require(\"self-closing-tags\");\n\nfunction noop() {}\n\nvar voidWriter = {\n write: noop,\n script: noop,\n merge: noop,\n clear: noop,\n get: function () {\n return [];\n },\n toString: function () {\n return \"\";\n }\n};\n\nfunction State(root, stream, writer, events) {\n this.root = root;\n this.stream = stream;\n this.writer = writer;\n this.events = events;\n\n this.finished = false;\n}\n\nfunction escapeEndingComment(text) {\n return text.replace(/-->/g, \"--&gt;\");\n}\n\nfunction AsyncStream(global, writer, parentOut) {\n if (parentOut === null) {\n throw new Error(\"illegal state\");\n }\n var finalGlobal = (this.attributes = global || {});\n var originalStream;\n var state;\n\n if (parentOut) {\n state = parentOut._state;\n originalStream = state.stream;\n } else {\n var events = (finalGlobal.events /* deprecated */ =\n writer && writer.on ? writer : new EventEmitter());\n\n if (writer) {\n originalStream = writer;\n writer = new BufferedWriter(writer);\n } else {\n writer = originalStream = new StringWriter();\n }\n\n state = new State(this, originalStream, writer, events);\n writer.state = state;\n }\n\n finalGlobal.runtimeId = finalGlobal.runtimeId || \"M\";\n this.global = finalGlobal;\n this.stream = originalStream;\n this._state = state;\n\n this._ended = false;\n this._remaining = 1;\n this._lastCount = 0;\n this._last = undefined; // Array\n this._parentOut = parentOut;\n\n this.data = {};\n this.writer = writer;\n writer.stream = this;\n\n this._sync = false;\n this._stack = undefined;\n this.name = undefined;\n this._timeoutId = undefined;\n\n this._node = undefined;\n\n this._elStack = undefined; // Array\n\n this.___components = null; // ComponentsContext\n\n this.___assignedComponentDef = null;\n this.___assignedKey = null;\n this.___assignedCustomEvents = null;\n this.___isLast = false;\n}\n\nAsyncStream.DEFAULT_TIMEOUT = 10000;\n\n/**\n * If set to `true`, AsyncStream errors will include the full stack trace\n */\nAsyncStream.INCLUDE_STACK =\n typeof process !== \"undefined\" &&\n (!process.env.NODE_ENV ||\n process.env.NODE_ENV === \"development\" ||\n process.env.NODE_ENV === \"dev\");\n\nAsyncStream.enableAsyncStackTrace = function () {\n AsyncStream.INCLUDE_STACK = true;\n};\n\nvar proto = (AsyncStream.prototype = {\n constructor: AsyncStream,\n ___host: typeof window === \"object\" && document,\n ___isOut: true,\n\n sync: function () {\n this._sync = true;\n },\n\n isSync: function () {\n return this._sync === true;\n },\n\n write: function (str) {\n if (str != null) {\n this.writer.write(str.toString());\n }\n return this;\n },\n\n script: function (str) {\n if (str != null) {\n this.writer.script(str.toString());\n }\n return this;\n },\n\n ___getOutput: function () {\n return this._state.writer.toString();\n },\n\n /**\n * Legacy...\n */\n getOutput: function () {\n return this.___getOutput();\n },\n\n toString: function () {\n return this._state.writer.toString();\n },\n\n ___getResult: function () {\n this._result = this._result || new RenderResult(this);\n return this._result;\n },\n\n beginAsync: function (options) {\n if (this._sync) {\n throw new Error(\"beginAsync() not allowed when using renderSync()\");\n }\n\n var state = this._state;\n\n var currentWriter = this.writer;\n\n /* ┏━━━━━┓ this\n ┃ WAS ┃ ↓↑\n ┗━━━━━┛ prevWriter → currentWriter → nextWriter */\n\n var newWriter = new StringWriter();\n var newStream = new AsyncStream(this.global, currentWriter, this);\n newWriter.state = state;\n\n this.writer = newWriter;\n newWriter.stream = this;\n\n newWriter.next = currentWriter.next;\n currentWriter.next = newWriter;\n\n /* ┏━━━━━┓ newStream this\n ┃ NOW ┃ ↓↑ ↓↑\n ┗━━━━━┛ prevWriter → currentWriter → newWriter → nextWriter */\n\n var timeout;\n var name;\n\n this._remaining++;\n\n if (options != null) {\n if (typeof options === \"number\") {\n timeout = options;\n } else {\n timeout = options.timeout;\n\n if (options.last === true) {\n if (timeout == null) {\n // Don't assign a timeout to last flush fragments\n // unless it is explicitly given a timeout\n timeout = 0;\n }\n\n this._lastCount++;\n newStream.___isLast = true;\n }\n\n name = options.name;\n }\n }\n\n if (timeout == null) {\n timeout = AsyncStream.DEFAULT_TIMEOUT;\n }\n\n newStream._stack = AsyncStream.INCLUDE_STACK ? new Error() : null;\n newStream.name = name;\n\n if (timeout > 0) {\n newStream._timeoutId = setTimeout(function () {\n newStream.error(\n new Error(\n \"Async fragment \" +\n (name ? \"(\" + name + \") \" : \"\") +\n \"timed out after \" +\n timeout +\n \"ms\"\n )\n );\n }, timeout);\n }\n\n state.events.emit(\"beginAsync\", {\n out: newStream,\n parentOut: this\n });\n\n return newStream;\n },\n\n _doFinish: function () {\n var state = this._state;\n\n state.finished = true;\n\n if (state.writer.end) {\n state.writer.end();\n } else {\n state.events.emit(\"finish\", this.___getResult());\n }\n },\n\n end: function (data) {\n if (this._ended === true) {\n return;\n }\n\n this._ended = true;\n\n var remaining = --this._remaining;\n\n if (data != null) {\n this.write(data);\n }\n\n var currentWriter = this.writer;\n\n /* ┏━━━━━┓ this nextStream\n ┃ WAS ┃ ↓↑ ↓↑\n ┗━━━━━┛ currentWriter → nextWriter → futureWriter */\n\n // Prevent any more writes to the current steam\n this.writer = voidWriter;\n currentWriter.stream = null;\n\n // Flush the contents of nextWriter to the currentWriter\n this._flushNext(currentWriter);\n\n /* ┏━━━━━┓ this ╵ nextStream\n ┃ ┃ ↓ ╵ ↓↑\n ┃ NOW ┃ voidWriter ╵ currentWriter → futureWriter\n ┃ ┃ ──────────────┴────────────────────────────────\n ┗━━━━━┛ Flushed & garbage collected: nextWriter */\n\n var parentOut = this._parentOut;\n\n if (parentOut === undefined) {\n if (remaining === 0) {\n this._doFinish();\n } else if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n } else {\n var timeoutId = this._timeoutId;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n if (remaining === 0) {\n parentOut._handleChildDone(this);\n } else if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n }\n\n return this;\n },\n\n _handleChildDone: function (childOut) {\n var remaining = --this._remaining;\n\n if (remaining === 0) {\n var parentOut = this._parentOut;\n if (parentOut === undefined) {\n this._doFinish();\n } else {\n parentOut._handleChildDone(this);\n }\n } else {\n if (childOut.___isLast) {\n this._lastCount--;\n }\n\n if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n }\n },\n\n _flushNext: function (currentWriter) {\n // It is possible that currentWriter is the\n // last writer in the chain, so let's make\n // sure there is a nextWriter to flush.\n var nextWriter = currentWriter.next;\n if (nextWriter) {\n // Flush the contents of nextWriter\n // to the currentWriter\n currentWriter.merge(nextWriter);\n\n // Remove nextWriter from the chain.\n // It has been flushed and can now be\n // garbage collected.\n currentWriter.next = nextWriter.next;\n\n // It's possible that nextWriter is the last\n // writer in the chain and its stream already\n // ended, so let's make sure nextStream exists.\n var nextStream = nextWriter.stream;\n if (nextStream) {\n // Point the nextStream to currentWriter\n nextStream.writer = currentWriter;\n currentWriter.stream = nextStream;\n }\n }\n },\n\n on: function (event, callback) {\n var state = this._state;\n\n if (event === \"finish\" && state.finished === true) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.events.on(event, callback);\n }\n\n return this;\n },\n\n once: function (event, callback) {\n var state = this._state;\n\n if (event === \"finish\" && state.finished === true) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.events.once(event, callback);\n }\n\n return this;\n },\n\n onLast: function (callback) {\n var lastArray = this._last;\n\n if (lastArray === undefined) {\n this._last = [callback];\n } else {\n lastArray.push(callback);\n }\n\n return this;\n },\n\n _emitLast: function () {\n if (this._last) {\n var i = 0;\n var lastArray = this._last;\n this._last = undefined;\n (function next() {\n if (i === lastArray.length) {\n return;\n }\n var lastCallback = lastArray[i++];\n lastCallback(next);\n\n if (lastCallback.length === 0) {\n next();\n }\n })();\n }\n },\n\n emit: function (type, arg) {\n var events = this._state.events;\n switch (arguments.length) {\n case 1:\n events.emit(type);\n break;\n case 2:\n events.emit(type, arg);\n break;\n default:\n events.emit.apply(events, arguments);\n break;\n }\n return this;\n },\n\n removeListener: function () {\n var events = this._state.events;\n events.removeListener.apply(events, arguments);\n return this;\n },\n\n prependListener: function () {\n var events = this._state.events;\n events.prependListener.apply(events, arguments);\n return this;\n },\n\n pipe: function (stream) {\n this._state.stream.pipe(stream);\n return this;\n },\n\n error: function (e) {\n var name = this.name;\n var stack = this._stack;\n if (stack) stack = getNonMarkoStack(stack);\n\n if (!(e instanceof Error)) {\n e = new Error(JSON.stringify(e));\n }\n\n if (name || stack) {\n e.message +=\n \"\\nRendered by\" +\n (name ? \" \" + name : \"\") +\n (stack ? \":\\n\" + stack : \"\");\n }\n try {\n this.emit(\"error\", e);\n } finally {\n // If there is no listener for the error event then it will\n // throw a new here. In order to ensure that the async fragment\n // is still properly ended we need to put the end() in a `finally`\n // block\n this.end();\n }\n\n return this;\n },\n\n flush: function () {\n var state = this._state;\n\n if (!state.finished) {\n var writer = state.writer;\n if (writer && writer.scheduleFlush) {\n writer.scheduleFlush();\n }\n }\n return this;\n },\n\n createOut: function () {\n var newOut = new AsyncStream(this.global);\n // Forward error events to the parent out.\n newOut.on(\"error\", this.emit.bind(this, \"error\"));\n this._state.events.emit(\"beginDetachedAsync\", {\n out: newOut,\n parentOut: this\n });\n return newOut;\n },\n\n ___elementDynamic: function (\n tagName,\n elementAttrs,\n key,\n componentDef,\n props\n ) {\n var str =\n \"<\" +\n tagName +\n markoAttr(this, componentDef, props, key) +\n attrsHelper(elementAttrs);\n\n if (selfClosingTags.voidElements.indexOf(tagName) !== -1) {\n str += \">\";\n } else if (selfClosingTags.svgElements.indexOf(tagName) !== -1) {\n str += \"/>\";\n } else {\n str += \"></\" + tagName + \">\";\n }\n\n this.write(str);\n },\n\n element: function (tagName, elementAttrs, openTagOnly) {\n var str = \"<\" + tagName + attrsHelper(elementAttrs) + \">\";\n\n if (openTagOnly !== true) {\n str += \"</\" + tagName + \">\";\n }\n\n this.write(str);\n },\n\n ___beginElementDynamic: function (\n name,\n elementAttrs,\n key,\n componentDef,\n props\n ) {\n var str =\n \"<\" +\n name +\n markoAttr(this, componentDef, props, key) +\n attrsHelper(elementAttrs) +\n \">\";\n\n this.write(str);\n\n if (this._elStack) {\n this._elStack.push(name);\n } else {\n this._elStack = [name];\n }\n },\n\n beginElement: function (name, elementAttrs) {\n var str = \"<\" + name + attrsHelper(elementAttrs) + \">\";\n\n this.write(str);\n\n if (this._elStack) {\n this._elStack.push(name);\n } else {\n this._elStack = [name];\n }\n },\n\n endElement: function () {\n var tagName = this._elStack.pop();\n this.write(\"</\" + tagName + \">\");\n },\n\n comment: function (str) {\n this.write(\"<!--\" + escapeEndingComment(str) + \"-->\");\n },\n\n text: function (str) {\n this.write(escapeXmlOrNullish(str));\n },\n\n bf: function (key, component, preserve) {\n if (preserve) {\n this.write(\"<!--F#\" + escapeXmlString(key) + \"-->\");\n }\n if (this._elStack) {\n this._elStack.push(preserve);\n } else {\n this._elStack = [preserve];\n }\n },\n\n ef: function () {\n var preserve = this._elStack.pop();\n if (preserve) {\n this.write(\"<!--F/-->\");\n }\n },\n\n ___getNode: function (host) {\n var node = this._node;\n\n if (!node) {\n var nextEl;\n var fragment;\n var html = this.___getOutput();\n if (!host) host = this.___host;\n var doc = host.ownerDocument || host;\n\n if (html) {\n node = parseHTML(html);\n\n if (node && node.nextSibling) {\n // If there are multiple nodes, turn it into a document fragment.\n fragment = doc.createDocumentFragment();\n\n do {\n nextEl = node.nextSibling;\n fragment.appendChild(node);\n } while ((node = nextEl));\n\n node = fragment;\n }\n }\n\n // if HTML is empty use empty document fragment (so that we're returning a valid DOM node)\n this._node = node || doc.createDocumentFragment();\n }\n return node;\n },\n\n then: function (fn, fnErr) {\n var out = this;\n var promise = new Promise(function (resolve, reject) {\n out.on(\"error\", reject);\n out.on(\"finish\", function (result) {\n resolve(result);\n });\n });\n\n return Promise.resolve(promise).then(fn, fnErr);\n },\n\n catch: function (fnErr) {\n return this.then(undefined, fnErr);\n },\n\n c: function (componentDef, key, customEvents) {\n this.___assignedComponentDef = componentDef;\n this.___assignedKey = key;\n this.___assignedCustomEvents = customEvents;\n }\n});\n\n// alias:\nproto.w = proto.write;\nproto.___endElement = proto.endElement;\n\nmodule.exports = AsyncStream;\n\nfunction getNonMarkoStack(error) {\n return error.stack\n .toString()\n .split(\"\\n\")\n .slice(1)\n .filter(line => !/\\/node_modules\\/marko\\//.test(line))\n .join(\"\\n\");\n}\n"],"file":"AsyncStream.js"}
1
+ {"version":3,"sources":["../../../src/runtime/html/AsyncStream.js"],"names":["EventEmitter","require","StringWriter","BufferedWriter","RenderResult","attrsHelper","markoAttr","escapeXmlHelper","parseHTML","escapeXmlOrNullish","x","escapeXmlString","selfClosingTags","noop","voidWriter","write","script","merge","clear","get","toString","State","root","stream","writer","events","finished","escapeEndingComment","text","replace","AsyncStream","global","parentOut","Error","finalGlobal","attributes","originalStream","state","_state","on","runtimeId","_ended","_remaining","_lastCount","_last","undefined","_parentOut","data","_sync","_stack","name","_timeoutId","_node","_elStack","DEFAULT_TIMEOUT","INCLUDE_STACK","process","env","NODE_ENV","enableAsyncStackTrace","proto","prototype","constructor","document","sync","isSync","str","getOutput","_result","beginAsync","options","currentWriter","newWriter","newStream","next","timeout","last","setTimeout","error","emit","out","_doFinish","end","remaining","_flushNext","_emitLast","timeoutId","clearTimeout","_handleChildDone","childOut","nextWriter","nextStream","event","callback","onLast","once","lastArray","push","i","length","lastCallback","type","arg","arguments","apply","removeListener","prependListener","pipe","e","stack","getNonMarkoStack","JSON","stringify","message","flush","scheduleFlush","createOut","newOut","bind","tagName","elementAttrs","key","componentDef","props","voidElements","indexOf","svgElements","element","openTagOnly","beginElement","endElement","pop","comment","bf","component","preserve","ef","host","node","nextEl","fragment","html","doc","ownerDocument","nextSibling","createDocumentFragment","appendChild","then","fn","fnErr","promise","Promise","resolve","reject","result","catch","c","customEvents","w","module","exports","split","slice","filter","line","test","join"],"mappings":"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","sourcesContent":["\"use strict\";\nvar EventEmitter = require(\"events-light\");\nvar StringWriter = require(\"./StringWriter\");\nvar BufferedWriter = require(\"./BufferedWriter\");\nvar RenderResult = require(\"../RenderResult\");\nvar attrsHelper = require(\"./helpers/attrs\");\nvar markoAttr = require(\"./helpers/data-marko\");\nvar escapeXmlHelper = require(\"./helpers/escape-xml\");\nvar parseHTML = require(\"../vdom/parse-html\");\nvar escapeXmlOrNullish = escapeXmlHelper.x;\nvar escapeXmlString = escapeXmlHelper.___escapeXML;\nvar selfClosingTags = require(\"self-closing-tags\");\n\nfunction noop() {}\n\nvar voidWriter = {\n write: noop,\n script: noop,\n merge: noop,\n clear: noop,\n get: function () {\n return [];\n },\n toString: function () {\n return \"\";\n }\n};\n\nfunction State(root, stream, writer, events) {\n this.root = root;\n this.stream = stream;\n this.writer = writer;\n this.events = events;\n\n this.finished = false;\n}\n\nfunction escapeEndingComment(text) {\n return text.replace(/-->/g, \"--&gt;\");\n}\n\nfunction AsyncStream(global, writer, parentOut) {\n if (parentOut === null) {\n throw new Error(\"illegal state\");\n }\n var finalGlobal = (this.attributes = global || {});\n var originalStream;\n var state;\n\n if (parentOut) {\n state = parentOut._state;\n originalStream = state.stream;\n } else {\n var events = (finalGlobal.events /* deprecated */ =\n writer && writer.on ? writer : new EventEmitter());\n\n if (writer) {\n originalStream = writer;\n writer = new BufferedWriter(writer);\n } else {\n writer = originalStream = new StringWriter();\n }\n\n state = new State(this, originalStream, writer, events);\n writer.state = state;\n }\n\n finalGlobal.runtimeId = finalGlobal.runtimeId || \"M\";\n this.global = finalGlobal;\n this.stream = originalStream;\n this._state = state;\n\n this._ended = false;\n this._remaining = 1;\n this._lastCount = 0;\n this._last = undefined; // Array\n this._parentOut = parentOut;\n\n this.data = {};\n this.writer = writer;\n writer.stream = this;\n\n this._sync = false;\n this._stack = undefined;\n this.name = undefined;\n this._timeoutId = undefined;\n\n this._node = undefined;\n\n this._elStack = undefined; // Array\n\n this.___components = null; // ComponentsContext\n\n this.___assignedComponentDef = null;\n this.___assignedKey = null;\n this.___assignedCustomEvents = null;\n this.___isLast = false;\n}\n\nAsyncStream.DEFAULT_TIMEOUT = 10000;\n\n/**\n * If set to `true`, AsyncStream errors will include the full stack trace\n */\nAsyncStream.INCLUDE_STACK =\n typeof process !== \"undefined\" &&\n (!process.env.NODE_ENV ||\n process.env.NODE_ENV === \"development\" ||\n process.env.NODE_ENV === \"dev\");\n\nAsyncStream.enableAsyncStackTrace = function () {\n AsyncStream.INCLUDE_STACK = true;\n};\n\nvar proto = (AsyncStream.prototype = {\n constructor: AsyncStream,\n ___host: typeof document === \"object\" && document,\n ___isOut: true,\n\n sync: function () {\n this._sync = true;\n },\n\n isSync: function () {\n return this._sync === true;\n },\n\n write: function (str) {\n if (str != null) {\n this.writer.write(str.toString());\n }\n return this;\n },\n\n script: function (str) {\n if (str != null) {\n this.writer.script(str.toString());\n }\n return this;\n },\n\n ___getOutput: function () {\n return this._state.writer.toString();\n },\n\n /**\n * Legacy...\n */\n getOutput: function () {\n return this.___getOutput();\n },\n\n toString: function () {\n return this._state.writer.toString();\n },\n\n ___getResult: function () {\n this._result = this._result || new RenderResult(this);\n return this._result;\n },\n\n beginAsync: function (options) {\n if (this._sync) {\n throw new Error(\"beginAsync() not allowed when using renderSync()\");\n }\n\n var state = this._state;\n\n var currentWriter = this.writer;\n\n /* ┏━━━━━┓ this\n ┃ WAS ┃ ↓↑\n ┗━━━━━┛ prevWriter → currentWriter → nextWriter */\n\n var newWriter = new StringWriter();\n var newStream = new AsyncStream(this.global, currentWriter, this);\n newWriter.state = state;\n\n this.writer = newWriter;\n newWriter.stream = this;\n\n newWriter.next = currentWriter.next;\n currentWriter.next = newWriter;\n\n /* ┏━━━━━┓ newStream this\n ┃ NOW ┃ ↓↑ ↓↑\n ┗━━━━━┛ prevWriter → currentWriter → newWriter → nextWriter */\n\n var timeout;\n var name;\n\n this._remaining++;\n\n if (options != null) {\n if (typeof options === \"number\") {\n timeout = options;\n } else {\n timeout = options.timeout;\n\n if (options.last === true) {\n if (timeout == null) {\n // Don't assign a timeout to last flush fragments\n // unless it is explicitly given a timeout\n timeout = 0;\n }\n\n this._lastCount++;\n newStream.___isLast = true;\n }\n\n name = options.name;\n }\n }\n\n if (timeout == null) {\n timeout = AsyncStream.DEFAULT_TIMEOUT;\n }\n\n newStream._stack = AsyncStream.INCLUDE_STACK ? new Error() : null;\n newStream.name = name;\n\n if (timeout > 0) {\n newStream._timeoutId = setTimeout(function () {\n newStream.error(\n new Error(\n \"Async fragment \" +\n (name ? \"(\" + name + \") \" : \"\") +\n \"timed out after \" +\n timeout +\n \"ms\"\n )\n );\n }, timeout);\n }\n\n state.events.emit(\"beginAsync\", {\n out: newStream,\n parentOut: this\n });\n\n return newStream;\n },\n\n _doFinish: function () {\n var state = this._state;\n\n state.finished = true;\n\n if (state.writer.end) {\n state.writer.end();\n } else {\n state.events.emit(\"finish\", this.___getResult());\n }\n },\n\n end: function (data) {\n if (this._ended === true) {\n return;\n }\n\n this._ended = true;\n\n var remaining = --this._remaining;\n\n if (data != null) {\n this.write(data);\n }\n\n var currentWriter = this.writer;\n\n /* ┏━━━━━┓ this nextStream\n ┃ WAS ┃ ↓↑ ↓↑\n ┗━━━━━┛ currentWriter → nextWriter → futureWriter */\n\n // Prevent any more writes to the current steam\n this.writer = voidWriter;\n currentWriter.stream = null;\n\n // Flush the contents of nextWriter to the currentWriter\n this._flushNext(currentWriter);\n\n /* ┏━━━━━┓ this ╵ nextStream\n ┃ ┃ ↓ ╵ ↓↑\n ┃ NOW ┃ voidWriter ╵ currentWriter → futureWriter\n ┃ ┃ ──────────────┴────────────────────────────────\n ┗━━━━━┛ Flushed & garbage collected: nextWriter */\n\n var parentOut = this._parentOut;\n\n if (parentOut === undefined) {\n if (remaining === 0) {\n this._doFinish();\n } else if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n } else {\n var timeoutId = this._timeoutId;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n if (remaining === 0) {\n parentOut._handleChildDone(this);\n } else if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n }\n\n return this;\n },\n\n _handleChildDone: function (childOut) {\n var remaining = --this._remaining;\n\n if (remaining === 0) {\n var parentOut = this._parentOut;\n if (parentOut === undefined) {\n this._doFinish();\n } else {\n parentOut._handleChildDone(this);\n }\n } else {\n if (childOut.___isLast) {\n this._lastCount--;\n }\n\n if (remaining - this._lastCount === 0) {\n this._emitLast();\n }\n }\n },\n\n _flushNext: function (currentWriter) {\n // It is possible that currentWriter is the\n // last writer in the chain, so let's make\n // sure there is a nextWriter to flush.\n var nextWriter = currentWriter.next;\n if (nextWriter) {\n // Flush the contents of nextWriter\n // to the currentWriter\n currentWriter.merge(nextWriter);\n\n // Remove nextWriter from the chain.\n // It has been flushed and can now be\n // garbage collected.\n currentWriter.next = nextWriter.next;\n\n // It's possible that nextWriter is the last\n // writer in the chain and its stream already\n // ended, so let's make sure nextStream exists.\n var nextStream = nextWriter.stream;\n if (nextStream) {\n // Point the nextStream to currentWriter\n nextStream.writer = currentWriter;\n currentWriter.stream = nextStream;\n }\n }\n },\n\n on: function (event, callback) {\n var state = this._state;\n\n if (event === \"finish\" && state.finished === true) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.events.on(event, callback);\n }\n\n return this;\n },\n\n once: function (event, callback) {\n var state = this._state;\n\n if (event === \"finish\" && state.finished === true) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.events.once(event, callback);\n }\n\n return this;\n },\n\n onLast: function (callback) {\n var lastArray = this._last;\n\n if (lastArray === undefined) {\n this._last = [callback];\n } else {\n lastArray.push(callback);\n }\n\n return this;\n },\n\n _emitLast: function () {\n if (this._last) {\n var i = 0;\n var lastArray = this._last;\n this._last = undefined;\n (function next() {\n if (i === lastArray.length) {\n return;\n }\n var lastCallback = lastArray[i++];\n lastCallback(next);\n\n if (lastCallback.length === 0) {\n next();\n }\n })();\n }\n },\n\n emit: function (type, arg) {\n var events = this._state.events;\n switch (arguments.length) {\n case 1:\n events.emit(type);\n break;\n case 2:\n events.emit(type, arg);\n break;\n default:\n events.emit.apply(events, arguments);\n break;\n }\n return this;\n },\n\n removeListener: function () {\n var events = this._state.events;\n events.removeListener.apply(events, arguments);\n return this;\n },\n\n prependListener: function () {\n var events = this._state.events;\n events.prependListener.apply(events, arguments);\n return this;\n },\n\n pipe: function (stream) {\n this._state.stream.pipe(stream);\n return this;\n },\n\n error: function (e) {\n var name = this.name;\n var stack = this._stack;\n if (stack) stack = getNonMarkoStack(stack);\n\n if (!(e instanceof Error)) {\n e = new Error(JSON.stringify(e));\n }\n\n if (name || stack) {\n e.message +=\n \"\\nRendered by\" +\n (name ? \" \" + name : \"\") +\n (stack ? \":\\n\" + stack : \"\");\n }\n try {\n this.emit(\"error\", e);\n } finally {\n // If there is no listener for the error event then it will\n // throw a new here. In order to ensure that the async fragment\n // is still properly ended we need to put the end() in a `finally`\n // block\n this.end();\n }\n\n return this;\n },\n\n flush: function () {\n var state = this._state;\n\n if (!state.finished) {\n var writer = state.writer;\n if (writer && writer.scheduleFlush) {\n writer.scheduleFlush();\n }\n }\n return this;\n },\n\n createOut: function () {\n var newOut = new AsyncStream(this.global);\n // Forward error events to the parent out.\n newOut.on(\"error\", this.emit.bind(this, \"error\"));\n this._state.events.emit(\"beginDetachedAsync\", {\n out: newOut,\n parentOut: this\n });\n return newOut;\n },\n\n ___elementDynamic: function (\n tagName,\n elementAttrs,\n key,\n componentDef,\n props\n ) {\n var str =\n \"<\" +\n tagName +\n markoAttr(this, componentDef, props, key) +\n attrsHelper(elementAttrs);\n\n if (selfClosingTags.voidElements.indexOf(tagName) !== -1) {\n str += \">\";\n } else if (selfClosingTags.svgElements.indexOf(tagName) !== -1) {\n str += \"/>\";\n } else {\n str += \"></\" + tagName + \">\";\n }\n\n this.write(str);\n },\n\n element: function (tagName, elementAttrs, openTagOnly) {\n var str = \"<\" + tagName + attrsHelper(elementAttrs) + \">\";\n\n if (openTagOnly !== true) {\n str += \"</\" + tagName + \">\";\n }\n\n this.write(str);\n },\n\n ___beginElementDynamic: function (\n name,\n elementAttrs,\n key,\n componentDef,\n props\n ) {\n var str =\n \"<\" +\n name +\n markoAttr(this, componentDef, props, key) +\n attrsHelper(elementAttrs) +\n \">\";\n\n this.write(str);\n\n if (this._elStack) {\n this._elStack.push(name);\n } else {\n this._elStack = [name];\n }\n },\n\n beginElement: function (name, elementAttrs) {\n var str = \"<\" + name + attrsHelper(elementAttrs) + \">\";\n\n this.write(str);\n\n if (this._elStack) {\n this._elStack.push(name);\n } else {\n this._elStack = [name];\n }\n },\n\n endElement: function () {\n var tagName = this._elStack.pop();\n this.write(\"</\" + tagName + \">\");\n },\n\n comment: function (str) {\n this.write(\"<!--\" + escapeEndingComment(str) + \"-->\");\n },\n\n text: function (str) {\n this.write(escapeXmlOrNullish(str));\n },\n\n bf: function (key, component, preserve) {\n if (preserve) {\n this.write(\"<!--F#\" + escapeXmlString(key) + \"-->\");\n }\n if (this._elStack) {\n this._elStack.push(preserve);\n } else {\n this._elStack = [preserve];\n }\n },\n\n ef: function () {\n var preserve = this._elStack.pop();\n if (preserve) {\n this.write(\"<!--F/-->\");\n }\n },\n\n ___getNode: function (host) {\n var node = this._node;\n\n if (!node) {\n var nextEl;\n var fragment;\n var html = this.___getOutput();\n if (!host) host = this.___host;\n var doc = host.ownerDocument || host;\n\n if (html) {\n node = parseHTML(html);\n\n if (node && node.nextSibling) {\n // If there are multiple nodes, turn it into a document fragment.\n fragment = doc.createDocumentFragment();\n\n do {\n nextEl = node.nextSibling;\n fragment.appendChild(node);\n } while ((node = nextEl));\n\n node = fragment;\n }\n }\n\n // if HTML is empty use empty document fragment (so that we're returning a valid DOM node)\n this._node = node || doc.createDocumentFragment();\n }\n return node;\n },\n\n then: function (fn, fnErr) {\n var out = this;\n var promise = new Promise(function (resolve, reject) {\n out.on(\"error\", reject);\n out.on(\"finish\", function (result) {\n resolve(result);\n });\n });\n\n return Promise.resolve(promise).then(fn, fnErr);\n },\n\n catch: function (fnErr) {\n return this.then(undefined, fnErr);\n },\n\n c: function (componentDef, key, customEvents) {\n this.___assignedComponentDef = componentDef;\n this.___assignedKey = key;\n this.___assignedCustomEvents = customEvents;\n }\n});\n\n// alias:\nproto.w = proto.write;\nproto.___endElement = proto.endElement;\n\nmodule.exports = AsyncStream;\n\nfunction getNonMarkoStack(error) {\n return error.stack\n .toString()\n .split(\"\\n\")\n .slice(1)\n .filter(line => !/\\/node_modules\\/marko\\//.test(line))\n .join(\"\\n\");\n}\n"],"file":"AsyncStream.js"}
@@ -53,7 +53,7 @@ function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
53
53
 
54
54
  var proto = AsyncVDOMBuilder.prototype = {
55
55
  aQ_: true,
56
- X_: typeof window === "object" && document,
56
+ X_: typeof document === "object" && document,
57
57
 
58
58
  bc: function (component, key, ownerComponent) {
59
59
  var vComponent = new VComponent(component, key, ownerComponent);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/vdom/AsyncVDOMBuilder.js"],"names":["EventEmitter","require","vdom","VElement","VDocumentFragment","VText","VComponent","VFragment","virtualizeHTML","RenderResult","morphdom","attrsHelper","EVENT_UPDATE","EVENT_FINISH","State","tree","AsyncVDOMBuilder","globalData","parentNode","parentOut","state","data","global","undefined","proto","prototype","window","document","bc","component","key","ownerComponent","vComponent","child","childCount","pushToStack","push","element","tagName","attrs","flags","props","componentDef","n","node","clone","text","type","toHTML","h","toString","html","vdomNode","beginElement","bf","preserve","fragment","ef","endElement","stack","pop","length","end","remaining","emit","lastArray","_last","i","next","lastCallback","error","e","beginAsync","options","Error","last","documentFragment","asyncOut","out","createOut","flush","events","listenerCount","on","event","callback","onLast","once","arg","arguments","apply","removeListener","sync","isSync","host","vdomTree","docFragment","firstChild","nextSibling","nodeType","container","ownerDocument","createElement","appendChild","cloneNode","innerHTML","outerHTML","then","fn","fnErr","promise","Promise","resolve","reject","result","catch","isVDOM","c","customEvents","be","ee","t","w","write","module","exports"],"mappings":"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","sourcesContent":["var EventEmitter = require(\"events-light\");\nvar vdom = require(\"./vdom\");\nvar VElement = vdom.___VElement;\nvar VDocumentFragment = vdom.___VDocumentFragment;\nvar VText = vdom.___VText;\nvar VComponent = vdom.___VComponent;\nvar VFragment = vdom.___VFragment;\nvar virtualizeHTML = vdom.___virtualizeHTML;\nvar RenderResult = require(\"../RenderResult\");\nvar morphdom = require(\"./morphdom\");\nvar attrsHelper = require(\"./helpers/attrs\");\n\nvar EVENT_UPDATE = \"update\";\nvar EVENT_FINISH = \"finish\";\n\nfunction State(tree) {\n this.___events = new EventEmitter();\n this.___tree = tree;\n this.___finished = false;\n}\n\nfunction AsyncVDOMBuilder(globalData, parentNode, parentOut) {\n if (!parentNode) {\n parentNode = new VDocumentFragment();\n }\n\n var state;\n\n if (parentOut) {\n state = parentOut.___state;\n } else {\n state = new State(parentNode);\n }\n\n this.___remaining = 1;\n this.___lastCount = 0;\n this.___last = null;\n this.___parentOut = parentOut;\n\n this.data = {};\n this.___state = state;\n this.___parent = parentNode;\n this.global = globalData || {};\n this.___stack = [parentNode];\n this.___sync = false;\n this.___vnode = undefined;\n this.___components = null;\n\n this.___assignedComponentDef = null;\n this.___assignedKey = null;\n this.___assignedCustomEvents = null;\n}\n\nvar proto = (AsyncVDOMBuilder.prototype = {\n ___isOut: true,\n ___host: typeof window === \"object\" && document,\n\n bc: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent);\n return this.___beginNode(vComponent, 0, true);\n },\n\n ___preserveComponent: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent, true);\n this.___beginNode(vComponent, 0);\n },\n\n ___beginNode: function (child, childCount, pushToStack) {\n this.___parent.___appendChild(child);\n if (pushToStack === true) {\n this.___stack.push(child);\n this.___parent = child;\n }\n return childCount === 0 ? this : child;\n },\n\n element: function (tagName, attrs, key, component, childCount, flags, props) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n return this.___beginNode(element, childCount);\n },\n\n ___elementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.element(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n n: function (node, component) {\n // NOTE: We do a shallow clone since we assume the node is being reused\n // and a node can only have one parent node.\n var clone = node.___cloneNode();\n this.node(clone);\n clone.___ownerComponent = component;\n\n return this;\n },\n\n node: function (node) {\n this.___parent.___appendChild(node);\n return this;\n },\n\n text: function (text, ownerComponent) {\n var type = typeof text;\n\n if (type != \"string\") {\n if (text == null) {\n return;\n } else if (type === \"object\") {\n if (text.toHTML) {\n return this.h(text.toHTML(), ownerComponent);\n }\n }\n\n text = text.toString();\n }\n\n this.___parent.___appendChild(new VText(text, ownerComponent));\n return this;\n },\n\n html: function (html, ownerComponent) {\n if (html != null) {\n var vdomNode = virtualizeHTML(html, ownerComponent);\n this.node(vdomNode);\n }\n\n return this;\n },\n\n beginElement: function (\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n ) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n this.___beginNode(element, childCount, true);\n return this;\n },\n\n ___beginElementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.beginElement(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n bf: function (key, component, preserve) {\n var fragment = new VFragment(key, component, preserve);\n this.___beginNode(fragment, null, true);\n return this;\n },\n\n ef: function () {\n this.endElement();\n },\n\n endElement: function () {\n var stack = this.___stack;\n stack.pop();\n this.___parent = stack[stack.length - 1];\n },\n\n end: function () {\n this.___parent = undefined;\n\n var remaining = --this.___remaining;\n var parentOut = this.___parentOut;\n\n if (remaining === 0) {\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n\n return this;\n },\n\n ___handleChildDone: function () {\n var remaining = --this.___remaining;\n\n if (remaining === 0) {\n var parentOut = this.___parentOut;\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n },\n\n ___doFinish: function () {\n var state = this.___state;\n state.___finished = true;\n state.___events.emit(EVENT_FINISH, this.___getResult());\n },\n\n ___emitLast: function () {\n var lastArray = this._last;\n\n var i = 0;\n\n function next() {\n if (i === lastArray.length) {\n return;\n }\n var lastCallback = lastArray[i++];\n lastCallback(next);\n\n if (!lastCallback.length) {\n next();\n }\n }\n\n next();\n },\n\n error: function (e) {\n try {\n this.emit(\"error\", e);\n } finally {\n // If there is no listener for the error event then it will\n // throw a new Error here. In order to ensure that the async fragment\n // is still properly ended we need to put the end() in a `finally`\n // block\n this.end();\n }\n\n return this;\n },\n\n beginAsync: function (options) {\n if (this.___sync) {\n throw Error(\n \"Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942).\"\n );\n }\n\n var state = this.___state;\n\n if (options) {\n if (options.last) {\n this.___lastCount++;\n }\n }\n\n this.___remaining++;\n\n var documentFragment = this.___parent.___appendDocumentFragment();\n var asyncOut = new AsyncVDOMBuilder(this.global, documentFragment, this);\n\n state.___events.emit(\"beginAsync\", {\n out: asyncOut,\n parentOut: this\n });\n\n return asyncOut;\n },\n\n createOut: function () {\n return new AsyncVDOMBuilder(this.global);\n },\n\n flush: function () {\n var events = this.___state.___events;\n\n if (events.listenerCount(EVENT_UPDATE)) {\n events.emit(EVENT_UPDATE, new RenderResult(this));\n }\n },\n\n ___getOutput: function () {\n return this.___state.___tree;\n },\n\n ___getResult: function () {\n return this.___result || (this.___result = new RenderResult(this));\n },\n\n on: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.on(event, callback);\n }\n\n return this;\n },\n\n once: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.once(event, callback);\n }\n\n return this;\n },\n\n emit: function (type, arg) {\n var events = this.___state.___events;\n switch (arguments.length) {\n case 1:\n events.emit(type);\n break;\n case 2:\n events.emit(type, arg);\n break;\n default:\n events.emit.apply(events, arguments);\n break;\n }\n return this;\n },\n\n removeListener: function () {\n var events = this.___state.___events;\n events.removeListener.apply(events, arguments);\n return this;\n },\n\n sync: function () {\n this.___sync = true;\n },\n\n isSync: function () {\n return this.___sync;\n },\n\n onLast: function (callback) {\n var lastArray = this._last;\n\n if (lastArray === undefined) {\n this._last = [callback];\n } else {\n lastArray.push(callback);\n }\n\n return this;\n },\n\n ___getNode: function (host) {\n var node = this.___vnode;\n if (!node) {\n var vdomTree = this.___getOutput();\n\n if (!host) host = this.___host;\n this.___vnode = node = vdomTree.___actualize(host, null);\n morphdom(node, vdomTree, host, this.___components);\n }\n return node;\n },\n\n toString: function (host) {\n var docFragment = this.___getNode(host);\n var html = \"\";\n\n var child = docFragment.firstChild;\n while (child) {\n var nextSibling = child.nextSibling;\n if (child.nodeType != 1) {\n var container = docFragment.ownerDocument.createElement(\"div\");\n container.appendChild(child.cloneNode());\n html += container.innerHTML;\n } else {\n html += child.outerHTML;\n }\n\n child = nextSibling;\n }\n\n return html;\n },\n\n then: function (fn, fnErr) {\n var out = this;\n var promise = new Promise(function (resolve, reject) {\n out.on(\"error\", reject).on(EVENT_FINISH, function (result) {\n resolve(result);\n });\n });\n\n return Promise.resolve(promise).then(fn, fnErr);\n },\n\n catch: function (fnErr) {\n return this.then(undefined, fnErr);\n },\n\n isVDOM: true,\n\n c: function (componentDef, key, customEvents) {\n this.___assignedComponentDef = componentDef;\n this.___assignedKey = key;\n this.___assignedCustomEvents = customEvents;\n }\n});\n\nproto.e = proto.element;\nproto.be = proto.beginElement;\nproto.ee = proto.___endElement = proto.endElement;\nproto.t = proto.text;\nproto.h = proto.w = proto.write = proto.html;\n\nmodule.exports = AsyncVDOMBuilder;\n"],"file":"AsyncVDOMBuilder.js"}
1
+ {"version":3,"sources":["../../../src/runtime/vdom/AsyncVDOMBuilder.js"],"names":["EventEmitter","require","vdom","VElement","VDocumentFragment","VText","VComponent","VFragment","virtualizeHTML","RenderResult","morphdom","attrsHelper","EVENT_UPDATE","EVENT_FINISH","State","tree","AsyncVDOMBuilder","globalData","parentNode","parentOut","state","data","global","undefined","proto","prototype","document","bc","component","key","ownerComponent","vComponent","child","childCount","pushToStack","push","element","tagName","attrs","flags","props","componentDef","n","node","clone","text","type","toHTML","h","toString","html","vdomNode","beginElement","bf","preserve","fragment","ef","endElement","stack","pop","length","end","remaining","emit","lastArray","_last","i","next","lastCallback","error","e","beginAsync","options","Error","last","documentFragment","asyncOut","out","createOut","flush","events","listenerCount","on","event","callback","onLast","once","arg","arguments","apply","removeListener","sync","isSync","host","vdomTree","docFragment","firstChild","nextSibling","nodeType","container","ownerDocument","createElement","appendChild","cloneNode","innerHTML","outerHTML","then","fn","fnErr","promise","Promise","resolve","reject","result","catch","isVDOM","c","customEvents","be","ee","t","w","write","module","exports"],"mappings":"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","sourcesContent":["var EventEmitter = require(\"events-light\");\nvar vdom = require(\"./vdom\");\nvar VElement = vdom.___VElement;\nvar VDocumentFragment = vdom.___VDocumentFragment;\nvar VText = vdom.___VText;\nvar VComponent = vdom.___VComponent;\nvar VFragment = vdom.___VFragment;\nvar virtualizeHTML = vdom.___virtualizeHTML;\nvar RenderResult = require(\"../RenderResult\");\nvar morphdom = require(\"./morphdom\");\nvar attrsHelper = require(\"./helpers/attrs\");\n\nvar EVENT_UPDATE = \"update\";\nvar EVENT_FINISH = \"finish\";\n\nfunction State(tree) {\n this.___events = new EventEmitter();\n this.___tree = tree;\n this.___finished = false;\n}\n\nfunction AsyncVDOMBuilder(globalData, parentNode, parentOut) {\n if (!parentNode) {\n parentNode = new VDocumentFragment();\n }\n\n var state;\n\n if (parentOut) {\n state = parentOut.___state;\n } else {\n state = new State(parentNode);\n }\n\n this.___remaining = 1;\n this.___lastCount = 0;\n this.___last = null;\n this.___parentOut = parentOut;\n\n this.data = {};\n this.___state = state;\n this.___parent = parentNode;\n this.global = globalData || {};\n this.___stack = [parentNode];\n this.___sync = false;\n this.___vnode = undefined;\n this.___components = null;\n\n this.___assignedComponentDef = null;\n this.___assignedKey = null;\n this.___assignedCustomEvents = null;\n}\n\nvar proto = (AsyncVDOMBuilder.prototype = {\n ___isOut: true,\n ___host: typeof document === \"object\" && document,\n\n bc: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent);\n return this.___beginNode(vComponent, 0, true);\n },\n\n ___preserveComponent: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent, true);\n this.___beginNode(vComponent, 0);\n },\n\n ___beginNode: function (child, childCount, pushToStack) {\n this.___parent.___appendChild(child);\n if (pushToStack === true) {\n this.___stack.push(child);\n this.___parent = child;\n }\n return childCount === 0 ? this : child;\n },\n\n element: function (tagName, attrs, key, component, childCount, flags, props) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n return this.___beginNode(element, childCount);\n },\n\n ___elementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.element(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n n: function (node, component) {\n // NOTE: We do a shallow clone since we assume the node is being reused\n // and a node can only have one parent node.\n var clone = node.___cloneNode();\n this.node(clone);\n clone.___ownerComponent = component;\n\n return this;\n },\n\n node: function (node) {\n this.___parent.___appendChild(node);\n return this;\n },\n\n text: function (text, ownerComponent) {\n var type = typeof text;\n\n if (type != \"string\") {\n if (text == null) {\n return;\n } else if (type === \"object\") {\n if (text.toHTML) {\n return this.h(text.toHTML(), ownerComponent);\n }\n }\n\n text = text.toString();\n }\n\n this.___parent.___appendChild(new VText(text, ownerComponent));\n return this;\n },\n\n html: function (html, ownerComponent) {\n if (html != null) {\n var vdomNode = virtualizeHTML(html, ownerComponent);\n this.node(vdomNode);\n }\n\n return this;\n },\n\n beginElement: function (\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n ) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n this.___beginNode(element, childCount, true);\n return this;\n },\n\n ___beginElementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.beginElement(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n bf: function (key, component, preserve) {\n var fragment = new VFragment(key, component, preserve);\n this.___beginNode(fragment, null, true);\n return this;\n },\n\n ef: function () {\n this.endElement();\n },\n\n endElement: function () {\n var stack = this.___stack;\n stack.pop();\n this.___parent = stack[stack.length - 1];\n },\n\n end: function () {\n this.___parent = undefined;\n\n var remaining = --this.___remaining;\n var parentOut = this.___parentOut;\n\n if (remaining === 0) {\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n\n return this;\n },\n\n ___handleChildDone: function () {\n var remaining = --this.___remaining;\n\n if (remaining === 0) {\n var parentOut = this.___parentOut;\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n },\n\n ___doFinish: function () {\n var state = this.___state;\n state.___finished = true;\n state.___events.emit(EVENT_FINISH, this.___getResult());\n },\n\n ___emitLast: function () {\n var lastArray = this._last;\n\n var i = 0;\n\n function next() {\n if (i === lastArray.length) {\n return;\n }\n var lastCallback = lastArray[i++];\n lastCallback(next);\n\n if (!lastCallback.length) {\n next();\n }\n }\n\n next();\n },\n\n error: function (e) {\n try {\n this.emit(\"error\", e);\n } finally {\n // If there is no listener for the error event then it will\n // throw a new Error here. In order to ensure that the async fragment\n // is still properly ended we need to put the end() in a `finally`\n // block\n this.end();\n }\n\n return this;\n },\n\n beginAsync: function (options) {\n if (this.___sync) {\n throw Error(\n \"Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942).\"\n );\n }\n\n var state = this.___state;\n\n if (options) {\n if (options.last) {\n this.___lastCount++;\n }\n }\n\n this.___remaining++;\n\n var documentFragment = this.___parent.___appendDocumentFragment();\n var asyncOut = new AsyncVDOMBuilder(this.global, documentFragment, this);\n\n state.___events.emit(\"beginAsync\", {\n out: asyncOut,\n parentOut: this\n });\n\n return asyncOut;\n },\n\n createOut: function () {\n return new AsyncVDOMBuilder(this.global);\n },\n\n flush: function () {\n var events = this.___state.___events;\n\n if (events.listenerCount(EVENT_UPDATE)) {\n events.emit(EVENT_UPDATE, new RenderResult(this));\n }\n },\n\n ___getOutput: function () {\n return this.___state.___tree;\n },\n\n ___getResult: function () {\n return this.___result || (this.___result = new RenderResult(this));\n },\n\n on: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.on(event, callback);\n }\n\n return this;\n },\n\n once: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.once(event, callback);\n }\n\n return this;\n },\n\n emit: function (type, arg) {\n var events = this.___state.___events;\n switch (arguments.length) {\n case 1:\n events.emit(type);\n break;\n case 2:\n events.emit(type, arg);\n break;\n default:\n events.emit.apply(events, arguments);\n break;\n }\n return this;\n },\n\n removeListener: function () {\n var events = this.___state.___events;\n events.removeListener.apply(events, arguments);\n return this;\n },\n\n sync: function () {\n this.___sync = true;\n },\n\n isSync: function () {\n return this.___sync;\n },\n\n onLast: function (callback) {\n var lastArray = this._last;\n\n if (lastArray === undefined) {\n this._last = [callback];\n } else {\n lastArray.push(callback);\n }\n\n return this;\n },\n\n ___getNode: function (host) {\n var node = this.___vnode;\n if (!node) {\n var vdomTree = this.___getOutput();\n\n if (!host) host = this.___host;\n this.___vnode = node = vdomTree.___actualize(host, null);\n morphdom(node, vdomTree, host, this.___components);\n }\n return node;\n },\n\n toString: function (host) {\n var docFragment = this.___getNode(host);\n var html = \"\";\n\n var child = docFragment.firstChild;\n while (child) {\n var nextSibling = child.nextSibling;\n if (child.nodeType != 1) {\n var container = docFragment.ownerDocument.createElement(\"div\");\n container.appendChild(child.cloneNode());\n html += container.innerHTML;\n } else {\n html += child.outerHTML;\n }\n\n child = nextSibling;\n }\n\n return html;\n },\n\n then: function (fn, fnErr) {\n var out = this;\n var promise = new Promise(function (resolve, reject) {\n out.on(\"error\", reject).on(EVENT_FINISH, function (result) {\n resolve(result);\n });\n });\n\n return Promise.resolve(promise).then(fn, fnErr);\n },\n\n catch: function (fnErr) {\n return this.then(undefined, fnErr);\n },\n\n isVDOM: true,\n\n c: function (componentDef, key, customEvents) {\n this.___assignedComponentDef = componentDef;\n this.___assignedKey = key;\n this.___assignedCustomEvents = customEvents;\n }\n});\n\nproto.e = proto.element;\nproto.be = proto.beginElement;\nproto.ee = proto.___endElement = proto.endElement;\nproto.t = proto.text;\nproto.h = proto.w = proto.write = proto.html;\n\nmodule.exports = AsyncVDOMBuilder;\n"],"file":"AsyncVDOMBuilder.js"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "5.20.8",
3
+ "version": "5.20.9",
4
4
  "license": "MIT",
5
5
  "description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
6
6
  "dependencies": {
7
- "@marko/compiler": "^5.20.8",
8
- "@marko/translator-default": "^5.20.8",
7
+ "@marko/compiler": "^5.20.9",
8
+ "@marko/translator-default": "^5.20.9",
9
9
  "app-module-path": "^2.2.0",
10
10
  "argly": "^1.2.0",
11
11
  "browser-refresh-client": "1.1.4",
@@ -72,5 +72,5 @@
72
72
  "index.js",
73
73
  "node-require.js"
74
74
  ],
75
- "gitHead": "8d1abfa37468bd28d781c2a26d49a582acba66d2"
75
+ "gitHead": "637f064c6c8c5c9767d2f6e8a645937eca874a49"
76
76
  }
@@ -66,7 +66,7 @@ var proto = (RenderResult.prototype = {
66
66
  toString: function () {
67
67
  return this.___out.toString();
68
68
  },
69
- document: typeof window === "object" && document
69
+ document: typeof document === "object" && document
70
70
  });
71
71
 
72
72
  Object.defineProperty(proto, "html", {
@@ -114,7 +114,7 @@ AsyncStream.enableAsyncStackTrace = function () {
114
114
 
115
115
  var proto = (AsyncStream.prototype = {
116
116
  constructor: AsyncStream,
117
- ___host: typeof window === "object" && document,
117
+ ___host: typeof document === "object" && document,
118
118
  ___isOut: true,
119
119
 
120
120
  sync: function () {
@@ -53,7 +53,7 @@ function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
53
53
 
54
54
  var proto = (AsyncVDOMBuilder.prototype = {
55
55
  ___isOut: true,
56
- ___host: typeof window === "object" && document,
56
+ ___host: typeof document === "object" && document,
57
57
 
58
58
  bc: function (component, key, ownerComponent) {
59
59
  var vComponent = new VComponent(component, key, ownerComponent);