marko 5.18.2 → 5.19.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,6 +16,11 @@ var defaults = extend({}, globalConfig);
16
16
 
17
17
 
18
18
 
19
+
20
+
21
+
22
+
23
+
19
24
  var defaultOptionsExportDefinition = {
20
25
  get: function () {
21
26
  return globalConfig;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/compiler/index.js"],"names":["compiler","require","extend","globalConfig","ok","fs","taglib","defaults","defaultOptionsExportDefinition","get","enumerable","configurable","Object","defineProperties","exports","defaultOptions","config","configure","newConfig","resultCompat","code","meta","map","options","sourceOnly","_compile","src","filename","userConfig","callback","compile","then","result","error","compileSync","compileForBrowser","output","compileFile","readFile","encoding","err","templateSrc","readFileSync","compileFileForBrowser","taglibLookup","lookup","taglibLoader","loader","taglibFinder","finder","buildTaglibLookup","buildLookup","clearCaches","_clearDefaults","clearCache","registerTaglib","filePath","registerFromFile","isVDOMSupported"],"mappings":"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","sourcesContent":["\"use strict\";\n\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar compiler = require(\"@marko/compiler\");\nvar extend = require(\"raptor-util/extend\");\nvar globalConfig = require(\"./config\");\nvar ok = require(\"assert\").ok;\nvar fs = require(\"fs\");\nvar taglib = require(\"../taglib\");\nvar defaults = extend({}, globalConfig);\n\n// eslint-disable-next-line no-constant-condition\nif (\"MARKO_DEBUG\") {\n complain(\n \"Using `marko/compiler` has been deprecated, please upgrade to the `@marko/compiler` module.\"\n );\n}\n\nvar defaultOptionsExportDefinition = {\n get: function () {\n return globalConfig;\n },\n enumerable: true,\n configurable: false\n};\n\nObject.defineProperties(exports, {\n defaultOptions: defaultOptionsExportDefinition,\n config: defaultOptionsExportDefinition\n});\n\nfunction configure(newConfig) {\n if (!newConfig) {\n newConfig = {};\n }\n\n globalConfig = extend({}, defaults);\n extend(globalConfig, newConfig);\n\n compiler.configure(newConfig);\n}\n\nfunction resultCompat({ code, meta, map }, options = {}) {\n if (options.sourceOnly !== false) {\n return code;\n } else {\n return { code, meta, map };\n }\n}\n\nfunction _compile(src, filename, userConfig, callback) {\n ok(filename, '\"filename\" argument is required');\n ok(typeof filename === \"string\", '\"filename\" argument should be a string');\n var options = {};\n\n extend(options, globalConfig);\n\n if (userConfig) {\n extend(options, userConfig);\n }\n\n if (callback) {\n compiler.compile(src, filename, options).then(\n result => callback(null, resultCompat(result, options)),\n error => callback(error)\n );\n } else {\n return resultCompat(compiler.compileSync(src, filename, options), options);\n }\n}\n\nfunction compile(src, filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options.sourceOnly = options.sourceOnly !== false;\n\n return _compile(src, filename, options, callback);\n}\n\nfunction compileForBrowser(src, filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n options = extend(\n {\n output: \"dom\",\n meta: false,\n sourceOnly: false\n },\n options\n );\n\n return compile(src, filename, options, callback);\n}\n\nfunction compileFile(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options.sourceOnly = options.sourceOnly !== false;\n\n if (callback) {\n fs.readFile(filename, { encoding: \"utf8\" }, function (err, templateSrc) {\n if (err) {\n return callback(err);\n }\n\n _compile(templateSrc, filename, options, callback);\n });\n } else {\n let templateSrc = fs.readFileSync(filename, { encoding: \"utf8\" });\n return _compile(templateSrc, filename, options, callback);\n }\n}\n\nfunction compileFileForBrowser(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n options = extend({ output: \"dom\", meta: false, sourceOnly: false }, options);\n return compileFile(filename, options, callback);\n}\n\nexports.compileFile = compileFile;\nexports.compile = compile;\nexports.compileForBrowser = compileForBrowser;\nexports.compileFileForBrowser = compileFileForBrowser;\n\nexports.configure = configure;\n\nexports.taglibLookup = taglib.lookup;\nexports.taglibLoader = taglib.loader;\nexports.taglibFinder = taglib.finder;\nexports.buildTaglibLookup = taglib.lookup.buildLookup;\nexports.clearCaches = function clearCaches() {\n compiler._clearDefaults();\n taglib.clearCache();\n};\n\nexports.registerTaglib = function (filePath) {\n ok(typeof filePath === \"string\", '\"filePath\" should be a string');\n taglib.registerFromFile(filePath);\n exports.clearCaches();\n};\n\nexports.isVDOMSupported = true;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/compiler/index.js"],"names":["compiler","require","extend","globalConfig","ok","fs","taglib","defaults","defaultOptionsExportDefinition","get","enumerable","configurable","Object","defineProperties","exports","defaultOptions","config","configure","newConfig","resultCompat","code","meta","map","options","sourceOnly","_compile","src","filename","userConfig","callback","compile","then","result","error","compileSync","compileForBrowser","output","compileFile","readFile","encoding","err","templateSrc","readFileSync","compileFileForBrowser","taglibLookup","lookup","taglibLoader","loader","taglibFinder","finder","buildTaglibLookup","buildLookup","clearCaches","_clearDefaults","clearCache","registerTaglib","filePath","registerFromFile","isVDOMSupported"],"mappings":"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","sourcesContent":["\"use strict\";\n\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar compiler = require(\"@marko/compiler\");\nvar extend = require(\"raptor-util/extend\");\nvar globalConfig = require(\"./config\");\nvar ok = require(\"assert\").ok;\nvar fs = require(\"fs\");\nvar taglib = require(\"../taglib\");\nvar defaults = extend({}, globalConfig);\n\n// eslint-disable-next-line no-constant-condition\nif (\"MARKO_DEBUG\") {\n if (\n require.main &&\n require.main.filename !== require.resolve(\"../../bin/markoc\")\n ) {\n complain(\n \"Using `marko/compiler` has been deprecated, please upgrade to the `@marko/compiler` module.\"\n );\n }\n}\n\nvar defaultOptionsExportDefinition = {\n get: function () {\n return globalConfig;\n },\n enumerable: true,\n configurable: false\n};\n\nObject.defineProperties(exports, {\n defaultOptions: defaultOptionsExportDefinition,\n config: defaultOptionsExportDefinition\n});\n\nfunction configure(newConfig) {\n if (!newConfig) {\n newConfig = {};\n }\n\n globalConfig = extend({}, defaults);\n extend(globalConfig, newConfig);\n\n compiler.configure(newConfig);\n}\n\nfunction resultCompat({ code, meta, map }, options = {}) {\n if (options.sourceOnly !== false) {\n return code;\n } else {\n return { code, meta, map };\n }\n}\n\nfunction _compile(src, filename, userConfig, callback) {\n ok(filename, '\"filename\" argument is required');\n ok(typeof filename === \"string\", '\"filename\" argument should be a string');\n var options = {};\n\n extend(options, globalConfig);\n\n if (userConfig) {\n extend(options, userConfig);\n }\n\n if (callback) {\n compiler.compile(src, filename, options).then(\n result => callback(null, resultCompat(result, options)),\n error => callback(error)\n );\n } else {\n return resultCompat(compiler.compileSync(src, filename, options), options);\n }\n}\n\nfunction compile(src, filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options.sourceOnly = options.sourceOnly !== false;\n\n return _compile(src, filename, options, callback);\n}\n\nfunction compileForBrowser(src, filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n options = extend(\n {\n output: \"dom\",\n meta: false,\n sourceOnly: false\n },\n options\n );\n\n return compile(src, filename, options, callback);\n}\n\nfunction compileFile(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options.sourceOnly = options.sourceOnly !== false;\n\n if (callback) {\n fs.readFile(filename, { encoding: \"utf8\" }, function (err, templateSrc) {\n if (err) {\n return callback(err);\n }\n\n _compile(templateSrc, filename, options, callback);\n });\n } else {\n let templateSrc = fs.readFileSync(filename, { encoding: \"utf8\" });\n return _compile(templateSrc, filename, options, callback);\n }\n}\n\nfunction compileFileForBrowser(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n options = extend({ output: \"dom\", meta: false, sourceOnly: false }, options);\n return compileFile(filename, options, callback);\n}\n\nexports.compileFile = compileFile;\nexports.compile = compile;\nexports.compileForBrowser = compileForBrowser;\nexports.compileFileForBrowser = compileFileForBrowser;\n\nexports.configure = configure;\n\nexports.taglibLookup = taglib.lookup;\nexports.taglibLoader = taglib.loader;\nexports.taglibFinder = taglib.finder;\nexports.buildTaglibLookup = taglib.lookup.buildLookup;\nexports.clearCaches = function clearCaches() {\n compiler._clearDefaults();\n taglib.clearCache();\n};\n\nexports.registerTaglib = function (filePath) {\n ok(typeof filePath === \"string\", '\"filePath\" should be a string');\n taglib.registerFromFile(filePath);\n exports.clearCaches();\n};\n\nexports.isVDOMSupported = true;\n"],"file":"index.js"}
@@ -216,9 +216,7 @@ var proto = AsyncStream.prototype = {
216
216
  timeout = AsyncStream.DEFAULT_TIMEOUT;
217
217
  }
218
218
 
219
- newStream._stack = AsyncStream.INCLUDE_STACK ?
220
- getNonMarkoStack(new Error()) :
221
- null;
219
+ newStream._stack = AsyncStream.INCLUDE_STACK ? new Error() : null;
222
220
  newStream.name = name;
223
221
 
224
222
  if (timeout > 0) {
@@ -455,6 +453,7 @@ var proto = AsyncStream.prototype = {
455
453
  error: function (e) {
456
454
  var name = this.name;
457
455
  var stack = this._stack;
456
+ if (stack) stack = getNonMarkoStack(stack);
458
457
 
459
458
  if (!(e instanceof Error)) {
460
459
  e = new Error(JSON.stringify(e));
@@ -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","getNonMarkoStack","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","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\n ? getNonMarkoStack(new Error())\n : 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\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","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"}
package/docs/compiler.md CHANGED
@@ -361,6 +361,13 @@ At this stage, you are given a fully parsed and migrated AST to do what you will
361
361
 
362
362
  To hook into the `transform` stage you can use the `transform` option in the `marko.json` file.
363
363
 
364
+ ### Analyze
365
+
366
+ Next up is the analyze stage. This stage is intended to do non mutative analysis of the entire AST in a way that is cached in memory.
367
+ Meta data should be stored on the `.extra` property of nodes and typically read in the [translate](#translate) stage, or using the child template analysis helpers.
368
+
369
+ To hook into the `analyze` stage you can use the `analyze` option in the `marko.json` file.
370
+
364
371
  ### Translate
365
372
 
366
373
  Finally, we have the translation stage. This stage is Marko's "Rosetta Stone" and is responsible for turning your beautiful Marko code into the optimized JavaScript you'd rather avoid writing.
@@ -113,6 +113,7 @@ Typically, you should let Marko find these files automatically, but here is a re
113
113
  "parse": "./parse.js", // Used to augment parsing.
114
114
  "migrate": "./migrate.js", // Used for migrating deprecated features.
115
115
  "transform": "./transform.js", // Used to modify the AST before generating it.
116
+ "analyze": "./analyze.js" // Used to analyze metadata the entire ast before beginning to translate it.
116
117
  "translate": "./translate.js" // Used to generate custom JS.
117
118
  }
118
119
  ```
@@ -633,7 +633,7 @@ response stream:
633
633
  require("./components/hello").render({ name: "John" }, res);
634
634
  ```
635
635
 
636
- > The user’s of a Marko UI component do not need to know that the component was
636
+ > The users of a Marko UI component do not need to know that the component was
637
637
  > implemented using Marko.
638
638
 
639
639
  Contrast this with React as an example:
package/docs/state.md CHANGED
@@ -3,7 +3,7 @@
3
3
  The output of a component is based on input properties passed from its parent as attributes. However, a component may also maintain internal state that it uses to control its view. If Marko detects a change to either input or to the internal state, the view will automatically be updated.
4
4
 
5
5
  > **ProTip:**
6
- > Only data that is owned and modified by the component should go into its `state`. State should be exclusively used for data that triggers rerenders. Parents control `input` the component controls its own `state`.
6
+ > Only data that is owned and modified by the component should go into its `state`. State should be exclusively used for data that triggers rerenders. Parents control `input`, and the component controls its own `state`.
7
7
 
8
8
  ## Initializing state
9
9
 
package/docs/syntax.md CHANGED
@@ -583,7 +583,7 @@ As a shorthand you can also import components by providing it's html tag name wr
583
583
  import MyComponent from "<my-component>"
584
584
  ```
585
585
 
586
- This is especially useful with the [dynamic tag name syntax]("#dynamic-tagname") and uses the same [component discovery](./custom-tags.md#how-tags-are-discovered) as if the tag was used in the template.
586
+ This is especially useful with the [dynamic tag name syntax](./syntax.md#dynamic-tagname) and uses the same [component discovery](./custom-tags.md#how-tags-are-discovered) as if the tag was used in the template.
587
587
 
588
588
  ## Comments
589
589
 
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "5.18.2",
3
+ "version": "5.19.3",
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.18.2",
8
- "@marko/translator-default": "^5.18.2",
7
+ "@marko/compiler": "^5.19.0",
8
+ "@marko/translator-default": "^5.19.3",
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": "65999cf2accd091c1455705b94b91ca1ed64203f"
75
+ "gitHead": "f0d13079638193ed2b243206e73072379a9fbdb9"
76
76
  }
@@ -11,9 +11,14 @@ var defaults = extend({}, globalConfig);
11
11
 
12
12
  // eslint-disable-next-line no-constant-condition
13
13
  if ("MARKO_DEBUG") {
14
- complain(
15
- "Using `marko/compiler` has been deprecated, please upgrade to the `@marko/compiler` module."
16
- );
14
+ if (
15
+ require.main &&
16
+ require.main.filename !== require.resolve("../../bin/markoc")
17
+ ) {
18
+ complain(
19
+ "Using `marko/compiler` has been deprecated, please upgrade to the `@marko/compiler` module."
20
+ );
21
+ }
17
22
  }
18
23
 
19
24
  var defaultOptionsExportDefinition = {
@@ -216,9 +216,7 @@ var proto = (AsyncStream.prototype = {
216
216
  timeout = AsyncStream.DEFAULT_TIMEOUT;
217
217
  }
218
218
 
219
- newStream._stack = AsyncStream.INCLUDE_STACK
220
- ? getNonMarkoStack(new Error())
221
- : null;
219
+ newStream._stack = AsyncStream.INCLUDE_STACK ? new Error() : null;
222
220
  newStream.name = name;
223
221
 
224
222
  if (timeout > 0) {
@@ -455,6 +453,7 @@ var proto = (AsyncStream.prototype = {
455
453
  error: function (e) {
456
454
  var name = this.name;
457
455
  var stack = this._stack;
456
+ if (stack) stack = getNonMarkoStack(stack);
458
457
 
459
458
  if (!(e instanceof Error)) {
460
459
  e = new Error(JSON.stringify(e));