@marko/compiler 5.20.2 → 5.20.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/babel-plugin/parser.js +30 -15
- package/dist/babel-plugin/parser.js.map +1 -1
- package/dist/config.js +3 -7
- package/dist/config.js.map +1 -1
- package/dist/index.js +7 -24
- package/dist/index.js.map +1 -1
- package/dist/taglib/index.js +9 -5
- package/dist/taglib/index.js.map +1 -1
- package/package.json +4 -5
|
@@ -182,24 +182,39 @@ function parseMarko(file) {
|
|
|
182
182
|
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
file,
|
|
187
|
-
t.markoTag(
|
|
188
|
-
tagNameExpression ?
|
|
189
|
-
(0, _babelUtils.parseExpression)(
|
|
190
|
-
file,
|
|
191
|
-
tagNameExpression,
|
|
192
|
-
tagNameStartPos + 2 /* ${ */) :
|
|
185
|
+
let tagNameNode;
|
|
193
186
|
|
|
194
|
-
(
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
187
|
+
if (tagNameExpression) {
|
|
188
|
+
tagNameNode = (0, _babelUtils.parseExpression)(
|
|
189
|
+
file,
|
|
190
|
+
tagNameExpression,
|
|
191
|
+
tagNameStartPos + 2 /* ${ */);
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
if (t.isStringLiteral(tagNameNode)) {
|
|
195
|
+
// convert to template literal just so that we don't mistake it for a native tag.
|
|
196
|
+
tagNameNode = t.templateLiteral(
|
|
197
|
+
[
|
|
198
|
+
t.templateElement({
|
|
199
|
+
raw: tagNameNode.value,
|
|
200
|
+
cooked: tagNameNode.value })],
|
|
199
201
|
|
|
200
|
-
[],
|
|
201
|
-
t.markoTagBody()),
|
|
202
202
|
|
|
203
|
+
[]);
|
|
204
|
+
|
|
205
|
+
}
|
|
206
|
+
} else {
|
|
207
|
+
tagNameNode = (0, _babelUtils.withLoc)(
|
|
208
|
+
file,
|
|
209
|
+
t.stringLiteral(tagName),
|
|
210
|
+
tagNameStartPos,
|
|
211
|
+
tagNameStartPos + tagName.length);
|
|
212
|
+
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
const node = (0, _babelUtils.withLoc)(
|
|
216
|
+
file,
|
|
217
|
+
t.markoTag(tagNameNode, [], t.markoTagBody()),
|
|
203
218
|
pos,
|
|
204
219
|
endPos);
|
|
205
220
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/babel-plugin/parser.js"],"names":["EMPTY_OBJECT","EMPTY_ARRAY","htmlTrimStart","t","replace","htmlTrimEnd","htmlTrim","isAttributeTag","node","isStringLiteral","name","value","parseMarko","file","code","htmlParseOptions","markoOpts","watchFiles","metadata","marko","pushTagBody","getTagBody","pushContainer","currentTag","isProgram","get","preserveWhitespace","path","preservingWhitespaceUntil","wasSelfClosing","handledTagName","onNext","handlers","onDocumentType","pos","endPos","markoDocumentType","onDeclaration","markoDeclaration","onComment","markoComment","onCDATA","markoCDATA","onText","parser","shouldTrim","body","length","prev","prevIndex","isMarkoClass","isMarkoComment","isMarkoScriptlet","undefined","originalValue","indexOf","isMarkoText","test","markoText","prevBody","next","onPlaceholder","escape","withinBody","markoPlaceholder","onScriptlet","line","block","buildCodeFrameError","loc","markoScriptlet","onOpenTagName","event","tagName","tagNameExpression","exec","tagDef","tagNameStartPos","concise","markoTag","stringLiteral","markoTagBody","parseOptions","setParseOptions","rootOnly","onOpenTag","tagNameEndPos","selfClosed","state","enterParsedTextContentState","enterStaticTextContentState","rawOpenTag","set","substring","ignoreAttributes","var","params","argument","shorthandId","shorthandClassNames","attributes","onCloseTag","tag","isConcise","start","end","push","hook","default","parentPath","onfinish","onError","message","includes","isOpenTagOnly","openTagOnly","ignoreNonstandardStringPlaceholders","parse","opts","filename"],"mappings":"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","sourcesContent":["import { createParser } from \"htmljs-parser\";\nimport parseAttributes from \"./util/parse-attributes\";\nimport parseArguments from \"./util/parse-arguments\";\nimport parseParams from \"./util/parse-params\";\nimport parseVar from \"./util/parse-var\";\nimport parseIDShorthand from \"./util/parse-id-shorthand\";\nimport parseClassnameShorthand from \"./util/parse-classname-shorthand\";\nimport * as t from \"../babel-types\";\nimport {\n withLoc,\n getLoc,\n getLocRange,\n parseScript,\n parseExpression,\n getTagDefForTagName\n} from \"@marko/babel-utils\";\n\nconst EMPTY_OBJECT = {};\nconst EMPTY_ARRAY = [];\nconst htmlTrimStart = t => t.replace(/^[\\n\\r]\\s*/, \"\");\nconst htmlTrimEnd = t => t.replace(/[\\n\\r]\\s*$/, \"\");\nconst htmlTrim = t => htmlTrimStart(htmlTrimEnd(t));\nconst isAttributeTag = node =>\n t.isStringLiteral(node.name) && node.name.value[0] === \"@\";\n\nexport function parseMarko(file) {\n const { code } = file;\n const { htmlParseOptions = {} } = file.markoOpts;\n const { watchFiles } = file.metadata.marko;\n const pushTagBody = node => getTagBody().pushContainer(\"body\", node);\n const getTagBody = () =>\n currentTag.isProgram() ? currentTag : currentTag.get(\"body\");\n let { preserveWhitespace } = htmlParseOptions;\n let currentTag = file.path;\n let preservingWhitespaceUntil = preserveWhitespace;\n let wasSelfClosing = false;\n let handledTagName = false;\n let onNext;\n\n const handlers = {\n onDocumentType({ value, pos, endPos }) {\n const node = withLoc(file, t.markoDocumentType(value), pos, endPos);\n pushTagBody(node);\n /* istanbul ignore next */\n onNext = onNext && onNext(node);\n },\n\n onDeclaration({ value, pos, endPos }) {\n const node = withLoc(file, t.markoDeclaration(value), pos, endPos);\n pushTagBody(node);\n /* istanbul ignore next */\n onNext = onNext && onNext(node);\n },\n\n onComment({ value, pos, endPos }) {\n const node = withLoc(file, t.markoComment(value), pos, endPos);\n pushTagBody(node);\n onNext = onNext && onNext(node);\n },\n\n onCDATA({ value, pos, endPos }) {\n const node = withLoc(file, t.markoCDATA(value), pos, endPos);\n pushTagBody(node);\n onNext = onNext && onNext(node);\n },\n\n onText({ value }, parser) {\n const shouldTrim = !preservingWhitespaceUntil;\n const { body } = getTagBody().node;\n let pos = parser.pos - value.length;\n\n if (shouldTrim) {\n if (htmlTrim(value) === \"\") {\n return;\n }\n\n // Find previous non-scriptlet/@tag.\n let prev;\n let prevIndex = body.length;\n while (prevIndex > 0) {\n prev = body[--prevIndex];\n\n if (\n t.isMarkoClass(prev) ||\n t.isMarkoComment(prev) ||\n t.isMarkoScriptlet(prev) ||\n isAttributeTag(prev)\n ) {\n prev = undefined;\n } else {\n break;\n }\n }\n\n if (!prev) {\n const originalValue = value;\n value = htmlTrimStart(value);\n pos += originalValue.indexOf(value);\n } else if (\n t.isMarkoText(prev) &&\n /\\s/.test(prev.value[prev.value.length - 1])\n ) {\n const originalValue = value;\n value = value.replace(/^\\s+/, \"\");\n pos += originalValue.indexOf(value);\n }\n }\n\n const endPos = pos + value.length;\n const node = withLoc(file, t.markoText(value), pos, endPos);\n const prevBody = getTagBody().node.body;\n pushTagBody(node);\n onNext && onNext(node);\n onNext =\n shouldTrim &&\n (next => {\n if (!next || prevBody.indexOf(next) === -1) {\n node.value = htmlTrimEnd(node.value);\n }\n\n node.value = node.value.replace(/\\s+/g, \" \");\n });\n },\n\n onPlaceholder({ escape, value, withinBody, pos, endPos }) {\n if (withinBody) {\n const node = withLoc(\n file,\n t.markoPlaceholder(\n parseExpression(\n file,\n value,\n pos + (escape ? 2 /* ${ */ : 3) /* $!{ */\n ),\n escape\n ),\n pos,\n endPos\n );\n\n pushTagBody(node);\n onNext = onNext && onNext(node);\n }\n },\n\n onScriptlet({ value, line, block, pos, endPos }) {\n if (!line && !block) {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n \"<% scriptlets %> are no longer supported.\"\n );\n }\n\n pos -= 1; // Include $.\n // Scriptlets are ignored as content and don't call `onNext`.\n pushTagBody(\n withLoc(\n file,\n t.markoScriptlet(\n parseScript(file, value, pos + 2 /** Ignores leading `$ ` */).body\n ),\n pos,\n endPos\n )\n );\n },\n\n onOpenTagName(event) {\n const { pos, endPos } = event;\n const tagName = event.tagName || \"div\";\n const [, tagNameExpression] =\n /^\\$\\{([\\s\\S]*)\\}/.exec(tagName) || EMPTY_ARRAY;\n const tagDef = !tagNameExpression && getTagDefForTagName(file, tagName);\n const tagNameStartPos = pos + (event.concise ? 0 : 1); // Account for leading `<`.\n\n handledTagName = true;\n\n if (tagNameExpression === \"\") {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, tagNameStartPos + 1, tagNameStartPos + 3) },\n \"Missing expression for <${dynamic}> tag.\"\n );\n }\n\n const node = withLoc(\n file,\n t.markoTag(\n tagNameExpression\n ? parseExpression(\n file,\n tagNameExpression,\n tagNameStartPos + 2 /* ${ */\n )\n : withLoc(\n file,\n t.stringLiteral(tagName),\n tagNameStartPos,\n tagNameStartPos + tagName.length\n ),\n [],\n t.markoTagBody()\n ),\n pos,\n endPos\n );\n\n if (tagDef) {\n node.tagDef = tagDef;\n\n const { parseOptions } = tagDef;\n if (parseOptions) {\n event.setParseOptions(parseOptions);\n\n if (parseOptions.rootOnly && !currentTag.isProgram()) {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n `\"${tagName}\" tags must be at the root of your Marko template.`\n );\n }\n }\n }\n\n [currentTag] = pushTagBody(node);\n\n // @tags are not treated as content and do not call next.\n if (!isAttributeTag(node)) {\n onNext = onNext && onNext(node);\n }\n },\n\n onOpenTag(event, parser) {\n if (!handledTagName) {\n // There is a bug in htmljs parser where a single top level concise mode tag with nothing else\n // does not emit the openTagNameEvent.\n handlers.onOpenTagName(event);\n }\n\n handledTagName = false;\n const { pos, endPos, tagNameEndPos } = event;\n const { tagDef } = currentTag.node;\n const parseOptions = (tagDef && tagDef.parseOptions) || EMPTY_OBJECT;\n wasSelfClosing = event.selfClosed;\n\n if (parseOptions.state === \"parsed-text\") {\n parser.enterParsedTextContentState();\n } else if (parseOptions.state === \"static-text\") {\n parser.enterStaticTextContentState();\n }\n\n if (parseOptions.rawOpenTag) {\n currentTag.set(\n \"rawValue\",\n parser.substring(pos, endPos).replace(/^<|\\/>$|>$/g, \"\")\n );\n }\n\n if (!parseOptions.ignoreAttributes) {\n currentTag.set(\"var\", parseVar(file, event.var));\n currentTag.get(\"body\").set(\"params\", parseParams(file, event.params));\n currentTag.set(\"arguments\", parseArguments(file, event.argument));\n currentTag.set(\n \"attributes\",\n parseIDShorthand(\n file,\n event.shorthandId,\n parseClassnameShorthand(\n file,\n event.shorthandClassNames,\n parseAttributes(file, event.attributes, tagNameEndPos)\n )\n )\n );\n }\n\n if (!preservingWhitespaceUntil && parseOptions.preserveWhitespace) {\n preservingWhitespaceUntil = currentTag;\n }\n },\n\n onCloseTag(event, parser) {\n let { pos, endPos } = event;\n const tag = currentTag;\n const { node } = tag;\n const { tagDef } = node;\n const isConcise = code[node.start - 1] !== \"<\";\n\n if (preservingWhitespaceUntil === currentTag) {\n preservingWhitespaceUntil = undefined;\n }\n\n if (!pos) {\n pos = parser.pos;\n }\n\n if (!endPos) {\n endPos = pos;\n\n if (wasSelfClosing && !isConcise) {\n endPos += 2; // account for \"/>\"\n }\n }\n\n node.end = endPos;\n node.loc.end = getLoc(file, endPos);\n\n if (\n !isConcise &&\n !wasSelfClosing &&\n code[pos + 1] !== \"/\" &&\n !currentTag.get(\"name\").isStringLiteral()\n ) {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n `Invalid ending for dynamic tag, expected \"</>\".`\n );\n }\n\n if (tagDef && tagDef.parser) {\n if (tagDef.parser.path) {\n watchFiles.push(tagDef.parser.path);\n }\n /* istanbul ignore next */\n (tagDef.parser.hook.default || tagDef.parser.hook)(tag, t);\n }\n\n currentTag = currentTag.parentPath.parentPath || file.path;\n },\n\n onfinish() {\n onNext = onNext && onNext();\n },\n\n onError({ message, pos, endPos }) {\n if (message.includes(\"EOF\")) endPos = pos;\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n message\n );\n }\n };\n\n createParser(handlers, {\n isOpenTagOnly(name) {\n const { parseOptions = EMPTY_OBJECT } =\n getTagDefForTagName(file, name) || EMPTY_OBJECT;\n return parseOptions.openTagOnly;\n },\n ignoreNonstandardStringPlaceholders: true,\n ...htmlParseOptions\n }).parse(code, file.opts.filename);\n}\n"],"file":"parser.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/babel-plugin/parser.js"],"names":["EMPTY_OBJECT","EMPTY_ARRAY","htmlTrimStart","t","replace","htmlTrimEnd","htmlTrim","isAttributeTag","node","isStringLiteral","name","value","parseMarko","file","code","htmlParseOptions","markoOpts","watchFiles","metadata","marko","pushTagBody","getTagBody","pushContainer","currentTag","isProgram","get","preserveWhitespace","path","preservingWhitespaceUntil","wasSelfClosing","handledTagName","onNext","handlers","onDocumentType","pos","endPos","markoDocumentType","onDeclaration","markoDeclaration","onComment","markoComment","onCDATA","markoCDATA","onText","parser","shouldTrim","body","length","prev","prevIndex","isMarkoClass","isMarkoComment","isMarkoScriptlet","undefined","originalValue","indexOf","isMarkoText","test","markoText","prevBody","next","onPlaceholder","escape","withinBody","markoPlaceholder","onScriptlet","line","block","buildCodeFrameError","loc","markoScriptlet","onOpenTagName","event","tagName","tagNameExpression","exec","tagDef","tagNameStartPos","concise","tagNameNode","templateLiteral","templateElement","raw","cooked","stringLiteral","markoTag","markoTagBody","parseOptions","setParseOptions","rootOnly","onOpenTag","tagNameEndPos","selfClosed","state","enterParsedTextContentState","enterStaticTextContentState","rawOpenTag","set","substring","ignoreAttributes","var","params","argument","shorthandId","shorthandClassNames","attributes","onCloseTag","tag","isConcise","start","end","push","hook","default","parentPath","onfinish","onError","message","includes","isOpenTagOnly","openTagOnly","ignoreNonstandardStringPlaceholders","parse","opts","filename"],"mappings":"4JAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gD;;;;;;;;;AASA,MAAMA,YAAY,GAAG,EAArB;AACA,MAAMC,WAAW,GAAG,EAApB;AACA,MAAMC,aAAa,GAAG,CAAAC,CAAC,KAAIA,CAAC,CAACC,OAAF,CAAU,YAAV,EAAwB,EAAxB,CAA3B;AACA,MAAMC,WAAW,GAAG,CAAAF,CAAC,KAAIA,CAAC,CAACC,OAAF,CAAU,YAAV,EAAwB,EAAxB,CAAzB;AACA,MAAME,QAAQ,GAAG,CAAAH,CAAC,KAAID,aAAa,CAACG,WAAW,CAACF,CAAD,CAAZ,CAAnC;AACA,MAAMI,cAAc,GAAG,CAAAC,IAAI;AACzBL,CAAC,CAACM,eAAF,CAAkBD,IAAI,CAACE,IAAvB,KAAgCF,IAAI,CAACE,IAAL,CAAUC,KAAV,CAAgB,CAAhB,MAAuB,GADzD;;AAGO,SAASC,UAAT,CAAoBC,IAApB,EAA0B;AAC/B,QAAM,EAAEC,IAAF,KAAWD,IAAjB;AACA,QAAM,EAAEE,gBAAgB,GAAG,EAArB,KAA4BF,IAAI,CAACG,SAAvC;AACA,QAAM,EAAEC,UAAF,KAAiBJ,IAAI,CAACK,QAAL,CAAcC,KAArC;AACA,QAAMC,WAAW,GAAG,CAAAZ,IAAI,KAAIa,UAAU,GAAGC,aAAb,CAA2B,MAA3B,EAAmCd,IAAnC,CAA5B;AACA,QAAMa,UAAU,GAAG;AACjBE,EAAAA,UAAU,CAACC,SAAX,KAAyBD,UAAzB,GAAsCA,UAAU,CAACE,GAAX,CAAe,MAAf,CADxC;AAEA,MAAI,EAAEC,kBAAF,KAAyBX,gBAA7B;AACA,MAAIQ,UAAU,GAAGV,IAAI,CAACc,IAAtB;AACA,MAAIC,yBAAyB,GAAGF,kBAAhC;AACA,MAAIG,cAAc,GAAG,KAArB;AACA,MAAIC,cAAc,GAAG,KAArB;AACA,MAAIC,MAAJ;;AAEA,QAAMC,QAAQ,GAAG;AACfC,IAAAA,cAAc,CAAC,EAAEtB,KAAF,EAASuB,GAAT,EAAcC,MAAd,EAAD,EAAyB;AACrC,YAAM3B,IAAI,GAAG,yBAAQK,IAAR,EAAcV,CAAC,CAACiC,iBAAF,CAAoBzB,KAApB,CAAd,EAA0CuB,GAA1C,EAA+CC,MAA/C,CAAb;AACAf,MAAAA,WAAW,CAACZ,IAAD,CAAX;AACA;AACAuB,MAAAA,MAAM,GAAGA,MAAM,IAAIA,MAAM,CAACvB,IAAD,CAAzB;AACD,KANc;;AAQf6B,IAAAA,aAAa,CAAC,EAAE1B,KAAF,EAASuB,GAAT,EAAcC,MAAd,EAAD,EAAyB;AACpC,YAAM3B,IAAI,GAAG,yBAAQK,IAAR,EAAcV,CAAC,CAACmC,gBAAF,CAAmB3B,KAAnB,CAAd,EAAyCuB,GAAzC,EAA8CC,MAA9C,CAAb;AACAf,MAAAA,WAAW,CAACZ,IAAD,CAAX;AACA;AACAuB,MAAAA,MAAM,GAAGA,MAAM,IAAIA,MAAM,CAACvB,IAAD,CAAzB;AACD,KAbc;;AAef+B,IAAAA,SAAS,CAAC,EAAE5B,KAAF,EAASuB,GAAT,EAAcC,MAAd,EAAD,EAAyB;AAChC,YAAM3B,IAAI,GAAG,yBAAQK,IAAR,EAAcV,CAAC,CAACqC,YAAF,CAAe7B,KAAf,CAAd,EAAqCuB,GAArC,EAA0CC,MAA1C,CAAb;AACAf,MAAAA,WAAW,CAACZ,IAAD,CAAX;AACAuB,MAAAA,MAAM,GAAGA,MAAM,IAAIA,MAAM,CAACvB,IAAD,CAAzB;AACD,KAnBc;;AAqBfiC,IAAAA,OAAO,CAAC,EAAE9B,KAAF,EAASuB,GAAT,EAAcC,MAAd,EAAD,EAAyB;AAC9B,YAAM3B,IAAI,GAAG,yBAAQK,IAAR,EAAcV,CAAC,CAACuC,UAAF,CAAa/B,KAAb,CAAd,EAAmCuB,GAAnC,EAAwCC,MAAxC,CAAb;AACAf,MAAAA,WAAW,CAACZ,IAAD,CAAX;AACAuB,MAAAA,MAAM,GAAGA,MAAM,IAAIA,MAAM,CAACvB,IAAD,CAAzB;AACD,KAzBc;;AA2BfmC,IAAAA,MAAM,CAAC,EAAEhC,KAAF,EAAD,EAAYiC,MAAZ,EAAoB;AACxB,YAAMC,UAAU,GAAG,CAACjB,yBAApB;AACA,YAAM,EAAEkB,IAAF,KAAWzB,UAAU,GAAGb,IAA9B;AACA,UAAI0B,GAAG,GAAGU,MAAM,CAACV,GAAP,GAAavB,KAAK,CAACoC,MAA7B;;AAEA,UAAIF,UAAJ,EAAgB;AACd,YAAIvC,QAAQ,CAACK,KAAD,CAAR,KAAoB,EAAxB,EAA4B;AAC1B;AACD;;AAED;AACA,YAAIqC,IAAJ;AACA,YAAIC,SAAS,GAAGH,IAAI,CAACC,MAArB;AACA,eAAOE,SAAS,GAAG,CAAnB,EAAsB;AACpBD,UAAAA,IAAI,GAAGF,IAAI,CAAC,EAAEG,SAAH,CAAX;;AAEA;AACE9C,UAAAA,CAAC,CAAC+C,YAAF,CAAeF,IAAf;AACA7C,UAAAA,CAAC,CAACgD,cAAF,CAAiBH,IAAjB,CADA;AAEA7C,UAAAA,CAAC,CAACiD,gBAAF,CAAmBJ,IAAnB,CAFA;AAGAzC,UAAAA,cAAc,CAACyC,IAAD,CAJhB;AAKE;AACAA,YAAAA,IAAI,GAAGK,SAAP;AACD,WAPD,MAOO;AACL;AACD;AACF;;AAED,YAAI,CAACL,IAAL,EAAW;AACT,gBAAMM,aAAa,GAAG3C,KAAtB;AACAA,UAAAA,KAAK,GAAGT,aAAa,CAACS,KAAD,CAArB;AACAuB,UAAAA,GAAG,IAAIoB,aAAa,CAACC,OAAd,CAAsB5C,KAAtB,CAAP;AACD,SAJD,MAIO;AACLR,QAAAA,CAAC,CAACqD,WAAF,CAAcR,IAAd;AACA,aAAKS,IAAL,CAAUT,IAAI,CAACrC,KAAL,CAAWqC,IAAI,CAACrC,KAAL,CAAWoC,MAAX,GAAoB,CAA/B,CAAV,CAFK;AAGL;AACA,gBAAMO,aAAa,GAAG3C,KAAtB;AACAA,UAAAA,KAAK,GAAGA,KAAK,CAACP,OAAN,CAAc,MAAd,EAAsB,EAAtB,CAAR;AACA8B,UAAAA,GAAG,IAAIoB,aAAa,CAACC,OAAd,CAAsB5C,KAAtB,CAAP;AACD;AACF;;AAED,YAAMwB,MAAM,GAAGD,GAAG,GAAGvB,KAAK,CAACoC,MAA3B;AACA,YAAMvC,IAAI,GAAG,yBAAQK,IAAR,EAAcV,CAAC,CAACuD,SAAF,CAAY/C,KAAZ,CAAd,EAAkCuB,GAAlC,EAAuCC,MAAvC,CAAb;AACA,YAAMwB,QAAQ,GAAGtC,UAAU,GAAGb,IAAb,CAAkBsC,IAAnC;AACA1B,MAAAA,WAAW,CAACZ,IAAD,CAAX;AACAuB,MAAAA,MAAM,IAAIA,MAAM,CAACvB,IAAD,CAAhB;AACAuB,MAAAA,MAAM;AACJc,MAAAA,UAAU;AACT,OAAAe,IAAI,KAAI;AACP,YAAI,CAACA,IAAD,IAASD,QAAQ,CAACJ,OAAT,CAAiBK,IAAjB,MAA2B,CAAC,CAAzC,EAA4C;AAC1CpD,UAAAA,IAAI,CAACG,KAAL,GAAaN,WAAW,CAACG,IAAI,CAACG,KAAN,CAAxB;AACD;;AAEDH,QAAAA,IAAI,CAACG,KAAL,GAAaH,IAAI,CAACG,KAAL,CAAWP,OAAX,CAAmB,MAAnB,EAA2B,GAA3B,CAAb;AACD,OAPS,CADZ;AASD,KAnFc;;AAqFfyD,IAAAA,aAAa,CAAC,EAAEC,MAAF,EAAUnD,KAAV,EAAiBoD,UAAjB,EAA6B7B,GAA7B,EAAkCC,MAAlC,EAAD,EAA6C;AACxD,UAAI4B,UAAJ,EAAgB;AACd,cAAMvD,IAAI,GAAG;AACXK,QAAAA,IADW;AAEXV,QAAAA,CAAC,CAAC6D,gBAAF;AACE;AACEnD,QAAAA,IADF;AAEEF,QAAAA,KAFF;AAGEuB,QAAAA,GAAG,IAAI4B,MAAM,GAAG,CAAH,CAAK,QAAL,GAAgB,CAA1B,CAHL,CAGkC,SAHlC,CADF;;AAMEA,QAAAA,MANF,CAFW;;AAUX5B,QAAAA,GAVW;AAWXC,QAAAA,MAXW,CAAb;;;AAcAf,QAAAA,WAAW,CAACZ,IAAD,CAAX;AACAuB,QAAAA,MAAM,GAAGA,MAAM,IAAIA,MAAM,CAACvB,IAAD,CAAzB;AACD;AACF,KAxGc;;AA0GfyD,IAAAA,WAAW,CAAC,EAAEtD,KAAF,EAASuD,IAAT,EAAeC,KAAf,EAAsBjC,GAAtB,EAA2BC,MAA3B,EAAD,EAAsC;AAC/C,UAAI,CAAC+B,IAAD,IAAS,CAACC,KAAd,EAAqB;AACnB,cAAMtD,IAAI,CAACuD,mBAAL;AACJ,UAAEC,GAAG,EAAE,6BAAYxD,IAAZ,EAAkBqB,GAAlB,EAAuBC,MAAvB,CAAP,EADI;AAEJ,mDAFI,CAAN;;AAID;;AAEDD,MAAAA,GAAG,IAAI,CAAP,CAR+C,CAQrC;AACV;AACAd,MAAAA,WAAW;AACT;AACEP,MAAAA,IADF;AAEEV,MAAAA,CAAC,CAACmE,cAAF;AACE,mCAAYzD,IAAZ,EAAkBF,KAAlB,EAAyBuB,GAAG,GAAG,CAA/B,CAAiC,2BAAjC,EAA8DY,IADhE,CAFF;;AAKEZ,MAAAA,GALF;AAMEC,MAAAA,MANF,CADS,CAAX;;;AAUD,KA9Hc;;AAgIfoC,IAAAA,aAAa,CAACC,KAAD,EAAQ;AACnB,YAAM,EAAEtC,GAAF,EAAOC,MAAP,KAAkBqC,KAAxB;AACA,YAAMC,OAAO,GAAGD,KAAK,CAACC,OAAN,IAAiB,KAAjC;AACA,YAAM,GAAGC,iBAAH;AACJ,yBAAmBC,IAAnB,CAAwBF,OAAxB,KAAoCxE,WADtC;AAEA,YAAM2E,MAAM,GAAG,CAACF,iBAAD,IAAsB,qCAAoB7D,IAApB,EAA0B4D,OAA1B,CAArC;AACA,YAAMI,eAAe,GAAG3C,GAAG,IAAIsC,KAAK,CAACM,OAAN,GAAgB,CAAhB,GAAoB,CAAxB,CAA3B,CANmB,CAMoC;;AAEvDhD,MAAAA,cAAc,GAAG,IAAjB;;AAEA,UAAI4C,iBAAiB,KAAK,EAA1B,EAA8B;AAC5B,cAAM7D,IAAI,CAACuD,mBAAL;AACJ,UAAEC,GAAG,EAAE,6BAAYxD,IAAZ,EAAkBgE,eAAe,GAAG,CAApC,EAAuCA,eAAe,GAAG,CAAzD,CAAP,EADI;AAEJ,kDAFI,CAAN;;AAID;;AAED,UAAIE,WAAJ;;AAEA,UAAIL,iBAAJ,EAAuB;AACrBK,QAAAA,WAAW,GAAG;AACZlE,QAAAA,IADY;AAEZ6D,QAAAA,iBAFY;AAGZG,QAAAA,eAAe,GAAG,CAHN,CAGQ,QAHR,CAAd;;;AAMA,YAAI1E,CAAC,CAACM,eAAF,CAAkBsE,WAAlB,CAAJ,EAAoC;AAClC;AACAA,UAAAA,WAAW,GAAG5E,CAAC,CAAC6E,eAAF;AACZ;AACE7E,UAAAA,CAAC,CAAC8E,eAAF,CAAkB;AAChBC,YAAAA,GAAG,EAAEH,WAAW,CAACpE,KADD;AAEhBwE,YAAAA,MAAM,EAAEJ,WAAW,CAACpE,KAFJ,EAAlB,CADF,CADY;;;AAOZ,YAPY,CAAd;;AASD;AACF,OAnBD,MAmBO;AACLoE,QAAAA,WAAW,GAAG;AACZlE,QAAAA,IADY;AAEZV,QAAAA,CAAC,CAACiF,aAAF,CAAgBX,OAAhB,CAFY;AAGZI,QAAAA,eAHY;AAIZA,QAAAA,eAAe,GAAGJ,OAAO,CAAC1B,MAJd,CAAd;;AAMD;;AAED,YAAMvC,IAAI,GAAG;AACXK,MAAAA,IADW;AAEXV,MAAAA,CAAC,CAACkF,QAAF,CAAWN,WAAX,EAAwB,EAAxB,EAA4B5E,CAAC,CAACmF,YAAF,EAA5B,CAFW;AAGXpD,MAAAA,GAHW;AAIXC,MAAAA,MAJW,CAAb;;;AAOA,UAAIyC,MAAJ,EAAY;AACVpE,QAAAA,IAAI,CAACoE,MAAL,GAAcA,MAAd;;AAEA,cAAM,EAAEW,YAAF,KAAmBX,MAAzB;AACA,YAAIW,YAAJ,EAAkB;AAChBf,UAAAA,KAAK,CAACgB,eAAN,CAAsBD,YAAtB;;AAEA,cAAIA,YAAY,CAACE,QAAb,IAAyB,CAAClE,UAAU,CAACC,SAAX,EAA9B,EAAsD;AACpD,kBAAMX,IAAI,CAACuD,mBAAL;AACJ,cAAEC,GAAG,EAAE,6BAAYxD,IAAZ,EAAkBqB,GAAlB,EAAuBC,MAAvB,CAAP,EADI;AAEH,gBAAGsC,OAAQ,oDAFR,CAAN;;AAID;AACF;AACF;;AAED,OAAClD,UAAD,IAAeH,WAAW,CAACZ,IAAD,CAA1B;;AAEA;AACA,UAAI,CAACD,cAAc,CAACC,IAAD,CAAnB,EAA2B;AACzBuB,QAAAA,MAAM,GAAGA,MAAM,IAAIA,MAAM,CAACvB,IAAD,CAAzB;AACD;AACF,KA5Mc;;AA8MfkF,IAAAA,SAAS,CAAClB,KAAD,EAAQ5B,MAAR,EAAgB;AACvB,UAAI,CAACd,cAAL,EAAqB;AACnB;AACA;AACAE,QAAAA,QAAQ,CAACuC,aAAT,CAAuBC,KAAvB;AACD;;AAED1C,MAAAA,cAAc,GAAG,KAAjB;AACA,YAAM,EAAEI,GAAF,EAAOC,MAAP,EAAewD,aAAf,KAAiCnB,KAAvC;AACA,YAAM,EAAEI,MAAF,KAAarD,UAAU,CAACf,IAA9B;AACA,YAAM+E,YAAY,GAAIX,MAAM,IAAIA,MAAM,CAACW,YAAlB,IAAmCvF,YAAxD;AACA6B,MAAAA,cAAc,GAAG2C,KAAK,CAACoB,UAAvB;;AAEA,UAAIL,YAAY,CAACM,KAAb,KAAuB,aAA3B,EAA0C;AACxCjD,QAAAA,MAAM,CAACkD,2BAAP;AACD,OAFD,MAEO,IAAIP,YAAY,CAACM,KAAb,KAAuB,aAA3B,EAA0C;AAC/CjD,QAAAA,MAAM,CAACmD,2BAAP;AACD;;AAED,UAAIR,YAAY,CAACS,UAAjB,EAA6B;AAC3BzE,QAAAA,UAAU,CAAC0E,GAAX;AACE,kBADF;AAEErD,QAAAA,MAAM,CAACsD,SAAP,CAAiBhE,GAAjB,EAAsBC,MAAtB,EAA8B/B,OAA9B,CAAsC,aAAtC,EAAqD,EAArD,CAFF;;AAID;;AAED,UAAI,CAACmF,YAAY,CAACY,gBAAlB,EAAoC;AAClC5E,QAAAA,UAAU,CAAC0E,GAAX,CAAe,KAAf,EAAsB,uBAASpF,IAAT,EAAe2D,KAAK,CAAC4B,GAArB,CAAtB;AACA7E,QAAAA,UAAU,CAACE,GAAX,CAAe,MAAf,EAAuBwE,GAAvB,CAA2B,QAA3B,EAAqC,0BAAYpF,IAAZ,EAAkB2D,KAAK,CAAC6B,MAAxB,CAArC;AACA9E,QAAAA,UAAU,CAAC0E,GAAX,CAAe,WAAf,EAA4B,6BAAepF,IAAf,EAAqB2D,KAAK,CAAC8B,QAA3B,CAA5B;AACA/E,QAAAA,UAAU,CAAC0E,GAAX;AACE,oBADF;AAEE;AACEpF,QAAAA,IADF;AAEE2D,QAAAA,KAAK,CAAC+B,WAFR;AAGE;AACE1F,QAAAA,IADF;AAEE2D,QAAAA,KAAK,CAACgC,mBAFR;AAGE,sCAAgB3F,IAAhB,EAAsB2D,KAAK,CAACiC,UAA5B,EAAwCd,aAAxC,CAHF,CAHF,CAFF;;;;AAYD;;AAED,UAAI,CAAC/D,yBAAD,IAA8B2D,YAAY,CAAC7D,kBAA/C,EAAmE;AACjEE,QAAAA,yBAAyB,GAAGL,UAA5B;AACD;AACF,KA7Pc;;AA+PfmF,IAAAA,UAAU,CAAClC,KAAD,EAAQ5B,MAAR,EAAgB;AACxB,UAAI,EAAEV,GAAF,EAAOC,MAAP,KAAkBqC,KAAtB;AACA,YAAMmC,GAAG,GAAGpF,UAAZ;AACA,YAAM,EAAEf,IAAF,KAAWmG,GAAjB;AACA,YAAM,EAAE/B,MAAF,KAAapE,IAAnB;AACA,YAAMoG,SAAS,GAAG9F,IAAI,CAACN,IAAI,CAACqG,KAAL,GAAa,CAAd,CAAJ,KAAyB,GAA3C;;AAEA,UAAIjF,yBAAyB,KAAKL,UAAlC,EAA8C;AAC5CK,QAAAA,yBAAyB,GAAGyB,SAA5B;AACD;;AAED,UAAI,CAACnB,GAAL,EAAU;AACRA,QAAAA,GAAG,GAAGU,MAAM,CAACV,GAAb;AACD;;AAED,UAAI,CAACC,MAAL,EAAa;AACXA,QAAAA,MAAM,GAAGD,GAAT;;AAEA,YAAIL,cAAc,IAAI,CAAC+E,SAAvB,EAAkC;AAChCzE,UAAAA,MAAM,IAAI,CAAV,CADgC,CACnB;AACd;AACF;;AAED3B,MAAAA,IAAI,CAACsG,GAAL,GAAW3E,MAAX;AACA3B,MAAAA,IAAI,CAAC6D,GAAL,CAASyC,GAAT,GAAe,wBAAOjG,IAAP,EAAasB,MAAb,CAAf;;AAEA;AACE,OAACyE,SAAD;AACA,OAAC/E,cADD;AAEAf,MAAAA,IAAI,CAACoB,GAAG,GAAG,CAAP,CAAJ,KAAkB,GAFlB;AAGA,OAACX,UAAU,CAACE,GAAX,CAAe,MAAf,EAAuBhB,eAAvB,EAJH;AAKE;AACA,cAAMI,IAAI,CAACuD,mBAAL;AACJ,UAAEC,GAAG,EAAE,6BAAYxD,IAAZ,EAAkBqB,GAAlB,EAAuBC,MAAvB,CAAP,EADI;AAEH,yDAFG,CAAN;;AAID;;AAED,UAAIyC,MAAM,IAAIA,MAAM,CAAChC,MAArB,EAA6B;AAC3B,YAAIgC,MAAM,CAAChC,MAAP,CAAcjB,IAAlB,EAAwB;AACtBV,UAAAA,UAAU,CAAC8F,IAAX,CAAgBnC,MAAM,CAAChC,MAAP,CAAcjB,IAA9B;AACD;AACD;AACA,SAACiD,MAAM,CAAChC,MAAP,CAAcoE,IAAd,CAAmBC,OAAnB,IAA8BrC,MAAM,CAAChC,MAAP,CAAcoE,IAA7C,EAAmDL,GAAnD,EAAwDxG,CAAxD;AACD;;AAEDoB,MAAAA,UAAU,GAAGA,UAAU,CAAC2F,UAAX,CAAsBA,UAAtB,IAAoCrG,IAAI,CAACc,IAAtD;AACD,KA9Sc;;AAgTfwF,IAAAA,QAAQ,GAAG;AACTpF,MAAAA,MAAM,GAAGA,MAAM,IAAIA,MAAM,EAAzB;AACD,KAlTc;;AAoTfqF,IAAAA,OAAO,CAAC,EAAEC,OAAF,EAAWnF,GAAX,EAAgBC,MAAhB,EAAD,EAA2B;AAChC,UAAIkF,OAAO,CAACC,QAAR,CAAiB,KAAjB,CAAJ,EAA6BnF,MAAM,GAAGD,GAAT;AAC7B,YAAMrB,IAAI,CAACuD,mBAAL;AACJ,QAAEC,GAAG,EAAE,6BAAYxD,IAAZ,EAAkBqB,GAAlB,EAAuBC,MAAvB,CAAP,EADI;AAEJkF,MAAAA,OAFI,CAAN;;AAID,KA1Tc,EAAjB;;;AA6TA,kCAAarF,QAAb,EAAuB;AACrBuF,IAAAA,aAAa,CAAC7G,IAAD,EAAO;AAClB,YAAM,EAAE6E,YAAY,GAAGvF,YAAjB;AACJ,2CAAoBa,IAApB,EAA0BH,IAA1B,KAAmCV,YADrC;AAEA,aAAOuF,YAAY,CAACiC,WAApB;AACD,KALoB;AAMrBC,IAAAA,mCAAmC,EAAE,IANhB;AAOrB,OAAG1G,gBAPkB,EAAvB;AAQG2G,EAAAA,KARH,CAQS5G,IART,EAQeD,IAAI,CAAC8G,IAAL,CAAUC,QARzB;AASD","sourcesContent":["import { createParser } from \"htmljs-parser\";\nimport parseAttributes from \"./util/parse-attributes\";\nimport parseArguments from \"./util/parse-arguments\";\nimport parseParams from \"./util/parse-params\";\nimport parseVar from \"./util/parse-var\";\nimport parseIDShorthand from \"./util/parse-id-shorthand\";\nimport parseClassnameShorthand from \"./util/parse-classname-shorthand\";\nimport * as t from \"../babel-types\";\nimport {\n withLoc,\n getLoc,\n getLocRange,\n parseScript,\n parseExpression,\n getTagDefForTagName\n} from \"@marko/babel-utils\";\n\nconst EMPTY_OBJECT = {};\nconst EMPTY_ARRAY = [];\nconst htmlTrimStart = t => t.replace(/^[\\n\\r]\\s*/, \"\");\nconst htmlTrimEnd = t => t.replace(/[\\n\\r]\\s*$/, \"\");\nconst htmlTrim = t => htmlTrimStart(htmlTrimEnd(t));\nconst isAttributeTag = node =>\n t.isStringLiteral(node.name) && node.name.value[0] === \"@\";\n\nexport function parseMarko(file) {\n const { code } = file;\n const { htmlParseOptions = {} } = file.markoOpts;\n const { watchFiles } = file.metadata.marko;\n const pushTagBody = node => getTagBody().pushContainer(\"body\", node);\n const getTagBody = () =>\n currentTag.isProgram() ? currentTag : currentTag.get(\"body\");\n let { preserveWhitespace } = htmlParseOptions;\n let currentTag = file.path;\n let preservingWhitespaceUntil = preserveWhitespace;\n let wasSelfClosing = false;\n let handledTagName = false;\n let onNext;\n\n const handlers = {\n onDocumentType({ value, pos, endPos }) {\n const node = withLoc(file, t.markoDocumentType(value), pos, endPos);\n pushTagBody(node);\n /* istanbul ignore next */\n onNext = onNext && onNext(node);\n },\n\n onDeclaration({ value, pos, endPos }) {\n const node = withLoc(file, t.markoDeclaration(value), pos, endPos);\n pushTagBody(node);\n /* istanbul ignore next */\n onNext = onNext && onNext(node);\n },\n\n onComment({ value, pos, endPos }) {\n const node = withLoc(file, t.markoComment(value), pos, endPos);\n pushTagBody(node);\n onNext = onNext && onNext(node);\n },\n\n onCDATA({ value, pos, endPos }) {\n const node = withLoc(file, t.markoCDATA(value), pos, endPos);\n pushTagBody(node);\n onNext = onNext && onNext(node);\n },\n\n onText({ value }, parser) {\n const shouldTrim = !preservingWhitespaceUntil;\n const { body } = getTagBody().node;\n let pos = parser.pos - value.length;\n\n if (shouldTrim) {\n if (htmlTrim(value) === \"\") {\n return;\n }\n\n // Find previous non-scriptlet/@tag.\n let prev;\n let prevIndex = body.length;\n while (prevIndex > 0) {\n prev = body[--prevIndex];\n\n if (\n t.isMarkoClass(prev) ||\n t.isMarkoComment(prev) ||\n t.isMarkoScriptlet(prev) ||\n isAttributeTag(prev)\n ) {\n prev = undefined;\n } else {\n break;\n }\n }\n\n if (!prev) {\n const originalValue = value;\n value = htmlTrimStart(value);\n pos += originalValue.indexOf(value);\n } else if (\n t.isMarkoText(prev) &&\n /\\s/.test(prev.value[prev.value.length - 1])\n ) {\n const originalValue = value;\n value = value.replace(/^\\s+/, \"\");\n pos += originalValue.indexOf(value);\n }\n }\n\n const endPos = pos + value.length;\n const node = withLoc(file, t.markoText(value), pos, endPos);\n const prevBody = getTagBody().node.body;\n pushTagBody(node);\n onNext && onNext(node);\n onNext =\n shouldTrim &&\n (next => {\n if (!next || prevBody.indexOf(next) === -1) {\n node.value = htmlTrimEnd(node.value);\n }\n\n node.value = node.value.replace(/\\s+/g, \" \");\n });\n },\n\n onPlaceholder({ escape, value, withinBody, pos, endPos }) {\n if (withinBody) {\n const node = withLoc(\n file,\n t.markoPlaceholder(\n parseExpression(\n file,\n value,\n pos + (escape ? 2 /* ${ */ : 3) /* $!{ */\n ),\n escape\n ),\n pos,\n endPos\n );\n\n pushTagBody(node);\n onNext = onNext && onNext(node);\n }\n },\n\n onScriptlet({ value, line, block, pos, endPos }) {\n if (!line && !block) {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n \"<% scriptlets %> are no longer supported.\"\n );\n }\n\n pos -= 1; // Include $.\n // Scriptlets are ignored as content and don't call `onNext`.\n pushTagBody(\n withLoc(\n file,\n t.markoScriptlet(\n parseScript(file, value, pos + 2 /** Ignores leading `$ ` */).body\n ),\n pos,\n endPos\n )\n );\n },\n\n onOpenTagName(event) {\n const { pos, endPos } = event;\n const tagName = event.tagName || \"div\";\n const [, tagNameExpression] =\n /^\\$\\{([\\s\\S]*)\\}/.exec(tagName) || EMPTY_ARRAY;\n const tagDef = !tagNameExpression && getTagDefForTagName(file, tagName);\n const tagNameStartPos = pos + (event.concise ? 0 : 1); // Account for leading `<`.\n\n handledTagName = true;\n\n if (tagNameExpression === \"\") {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, tagNameStartPos + 1, tagNameStartPos + 3) },\n \"Missing expression for <${dynamic}> tag.\"\n );\n }\n\n let tagNameNode;\n\n if (tagNameExpression) {\n tagNameNode = parseExpression(\n file,\n tagNameExpression,\n tagNameStartPos + 2 /* ${ */\n );\n\n if (t.isStringLiteral(tagNameNode)) {\n // convert to template literal just so that we don't mistake it for a native tag.\n tagNameNode = t.templateLiteral(\n [\n t.templateElement({\n raw: tagNameNode.value,\n cooked: tagNameNode.value\n })\n ],\n []\n );\n }\n } else {\n tagNameNode = withLoc(\n file,\n t.stringLiteral(tagName),\n tagNameStartPos,\n tagNameStartPos + tagName.length\n );\n }\n\n const node = withLoc(\n file,\n t.markoTag(tagNameNode, [], t.markoTagBody()),\n pos,\n endPos\n );\n\n if (tagDef) {\n node.tagDef = tagDef;\n\n const { parseOptions } = tagDef;\n if (parseOptions) {\n event.setParseOptions(parseOptions);\n\n if (parseOptions.rootOnly && !currentTag.isProgram()) {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n `\"${tagName}\" tags must be at the root of your Marko template.`\n );\n }\n }\n }\n\n [currentTag] = pushTagBody(node);\n\n // @tags are not treated as content and do not call next.\n if (!isAttributeTag(node)) {\n onNext = onNext && onNext(node);\n }\n },\n\n onOpenTag(event, parser) {\n if (!handledTagName) {\n // There is a bug in htmljs parser where a single top level concise mode tag with nothing else\n // does not emit the openTagNameEvent.\n handlers.onOpenTagName(event);\n }\n\n handledTagName = false;\n const { pos, endPos, tagNameEndPos } = event;\n const { tagDef } = currentTag.node;\n const parseOptions = (tagDef && tagDef.parseOptions) || EMPTY_OBJECT;\n wasSelfClosing = event.selfClosed;\n\n if (parseOptions.state === \"parsed-text\") {\n parser.enterParsedTextContentState();\n } else if (parseOptions.state === \"static-text\") {\n parser.enterStaticTextContentState();\n }\n\n if (parseOptions.rawOpenTag) {\n currentTag.set(\n \"rawValue\",\n parser.substring(pos, endPos).replace(/^<|\\/>$|>$/g, \"\")\n );\n }\n\n if (!parseOptions.ignoreAttributes) {\n currentTag.set(\"var\", parseVar(file, event.var));\n currentTag.get(\"body\").set(\"params\", parseParams(file, event.params));\n currentTag.set(\"arguments\", parseArguments(file, event.argument));\n currentTag.set(\n \"attributes\",\n parseIDShorthand(\n file,\n event.shorthandId,\n parseClassnameShorthand(\n file,\n event.shorthandClassNames,\n parseAttributes(file, event.attributes, tagNameEndPos)\n )\n )\n );\n }\n\n if (!preservingWhitespaceUntil && parseOptions.preserveWhitespace) {\n preservingWhitespaceUntil = currentTag;\n }\n },\n\n onCloseTag(event, parser) {\n let { pos, endPos } = event;\n const tag = currentTag;\n const { node } = tag;\n const { tagDef } = node;\n const isConcise = code[node.start - 1] !== \"<\";\n\n if (preservingWhitespaceUntil === currentTag) {\n preservingWhitespaceUntil = undefined;\n }\n\n if (!pos) {\n pos = parser.pos;\n }\n\n if (!endPos) {\n endPos = pos;\n\n if (wasSelfClosing && !isConcise) {\n endPos += 2; // account for \"/>\"\n }\n }\n\n node.end = endPos;\n node.loc.end = getLoc(file, endPos);\n\n if (\n !isConcise &&\n !wasSelfClosing &&\n code[pos + 1] !== \"/\" &&\n !currentTag.get(\"name\").isStringLiteral()\n ) {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n `Invalid ending for dynamic tag, expected \"</>\".`\n );\n }\n\n if (tagDef && tagDef.parser) {\n if (tagDef.parser.path) {\n watchFiles.push(tagDef.parser.path);\n }\n /* istanbul ignore next */\n (tagDef.parser.hook.default || tagDef.parser.hook)(tag, t);\n }\n\n currentTag = currentTag.parentPath.parentPath || file.path;\n },\n\n onfinish() {\n onNext = onNext && onNext();\n },\n\n onError({ message, pos, endPos }) {\n if (message.includes(\"EOF\")) endPos = pos;\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n message\n );\n }\n };\n\n createParser(handlers, {\n isOpenTagOnly(name) {\n const { parseOptions = EMPTY_OBJECT } =\n getTagDefForTagName(file, name) || EMPTY_OBJECT;\n return parseOptions.openTagOnly;\n },\n ignoreNonstandardStringPlaceholders: true,\n ...htmlParseOptions\n }).parse(code, file.opts.filename);\n}\n"],"file":"parser.js"}
|
package/dist/config.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = void 0;var _fs = _interopRequireDefault(require("fs"));
|
|
2
2
|
var _lassoPackageRoot = require("lasso-package-root");
|
|
3
|
-
var _enhancedResolve = require("enhanced-resolve");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
3
|
|
|
8
4
|
|
|
9
5
|
|
|
@@ -174,10 +170,10 @@ var _fs2 = require("./taglib/fs");let config;const globalThis = typeof window ==
|
|
|
174
170
|
* This API is sticking around for compatibility purposes.
|
|
175
171
|
*/meta: false, /**
|
|
176
172
|
* Allows configuring Marko to compile to different runtimes.
|
|
177
|
-
*/translator: (() => {const translatorReg = /^(
|
|
178
|
-
} catch {}if (pkg) {for (const name in pkg.dependencies) {if (translatorReg.test(name)) {if (translator && translator !== name) {return;}translator = name;}}for (const name in pkg.peerDependencies) {if (translatorReg.test(name)) {if (translator && translator !== name) {return;}translator = name;}}for (const name in pkg.devDependencies) {if (translatorReg.test(name)) {if (translator && translator !== name) {return;}translator = name;}}}return translator;})(), /**
|
|
173
|
+
*/translator: (() => {const translatorReg = /^(@marko\/|marko-)translator-/;let translator;let pkg;try {pkg = (0, _lassoPackageRoot.getRootPackage)(process.cwd()); // eslint-disable-next-line no-empty
|
|
174
|
+
} catch {}if (pkg) {for (const name in pkg.dependencies) {if (translatorReg.test(name)) {if (translator && translator !== name) {return;}translator = name;}}for (const name in pkg.peerDependencies) {if (translatorReg.test(name)) {if (translator && translator !== name) {return;}translator = name;}}for (const name in pkg.devDependencies) {if (translatorReg.test(name)) {if (translator && translator !== name) {return;}translator = name;}}}return translator || "@marko/translator-default";})(), /**
|
|
179
175
|
* Use a different file system object, eg webpacks CachedInputFileSystem or lasso-caching-fs
|
|
180
|
-
*/fileSystem:
|
|
176
|
+
*/fileSystem: _fs.default, /**
|
|
181
177
|
* By default Marko 5 outputs esm, you can optionally specify commonjs.
|
|
182
178
|
*
|
|
183
179
|
* Valid options: esm | cjs
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config.js"],"names":["config","globalThis","window","global","MARKO_CONFIG_KEY","Symbol","output","runtimeId","undefined","ast","code","writeVersionComment","ignoreUnrecognizedTags","sourceMaps","meta","translator","translatorReg","pkg","process","cwd","name","dependencies","test","peerDependencies","devDependencies","fileSystem","
|
|
1
|
+
{"version":3,"sources":["../src/config.js"],"names":["config","globalThis","window","global","MARKO_CONFIG_KEY","Symbol","output","runtimeId","undefined","ast","code","writeVersionComment","ignoreUnrecognizedTags","sourceMaps","meta","translator","translatorReg","pkg","process","cwd","name","dependencies","test","peerDependencies","devDependencies","fileSystem","fs","modules","optimize","resolveVirtualDependency","cache","Map","hydrateIncludeImports","hot","env","MARKO_CONFIG","Object","assign","JSON","parse"],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport { getRootPackage } from \"lasso-package-root\";\n\nlet config;\nconst globalThis = typeof window === \"undefined\" ? global : window;\nconst MARKO_CONFIG_KEY = Symbol(\"Default Marko Compiler Config\");\n\nif (globalThis[MARKO_CONFIG_KEY]) {\n config = globalThis[MARKO_CONFIG_KEY];\n} else {\n config = globalThis[MARKO_CONFIG_KEY] = {\n // The default output mode for compiled templates\n output: \"html\",\n\n // Override the runtimeid used when calling `marko/components.init` in the `hydrate` output.\n runtimeId: undefined,\n\n // Have Marko provide the final AST in the compile result.\n ast: false,\n\n // Set the false to have Marko not generate the final code string, useful if just reading metadata or AST.\n code: true,\n\n /**\n * Whether the version should be written to the template as a comment e.g.\n * // Compiled using marko@x.x.x - DO NOT EDIT\n */\n writeVersionComment: true,\n\n /**\n * Whether unrecognized tags should be ignored or not. This flag will\n * be enabled by default when compiling XML.\n */\n ignoreUnrecognizedTags: false,\n\n /**\n * Whether source maps should be output with the compiled templates.\n * When `true` a `map` property will be available on the compile result.\n * When `\"inline\"` the sourcemap will be inlined as a comment in the output code.\n * When `\"both\"` both of the above will be used.\n */\n sourceMaps: false,\n\n /**\n * This option inlines all of the meta data in the template.\n * You can also access this metadata via `compile(...).meta`.\n * This API is sticking around for compatibility purposes.\n */\n meta: false,\n\n /**\n * Allows configuring Marko to compile to different runtimes.\n */\n translator: (() => {\n const translatorReg = /^(@marko\\/|marko-)translator-/;\n let translator;\n let pkg;\n\n try {\n pkg = getRootPackage(process.cwd());\n // eslint-disable-next-line no-empty\n } catch {}\n\n if (pkg) {\n for (const name in pkg.dependencies) {\n if (translatorReg.test(name)) {\n if (translator && translator !== name) {\n return;\n }\n\n translator = name;\n }\n }\n\n for (const name in pkg.peerDependencies) {\n if (translatorReg.test(name)) {\n if (translator && translator !== name) {\n return;\n }\n\n translator = name;\n }\n }\n\n for (const name in pkg.devDependencies) {\n if (translatorReg.test(name)) {\n if (translator && translator !== name) {\n return;\n }\n\n translator = name;\n }\n }\n }\n\n return translator || \"@marko/translator-default\";\n })(),\n\n /**\n * Use a different file system object, eg webpacks CachedInputFileSystem or lasso-caching-fs\n */\n fileSystem: fs,\n /**\n * By default Marko 5 outputs esm, you can optionally specify commonjs.\n *\n * Valid options: esm | cjs\n */\n modules: \"esm\",\n\n /**\n * Enables production mode optimizations if true, or not if false.\n * If left as undefined checks for env === \"production\".\n */\n optimize: undefined,\n\n /**\n * This option should be set if `hydrate` output is specified.\n * Maps a virtual dependency to a resolved file which can be implemented\n * for specific bundlers.\n */\n resolveVirtualDependency: undefined,\n\n /**\n * Compiling a Marko template may require other (used) Marko templates to compile.\n * To prevent compiling templates more than once, most of the compilation is cached.\n *\n * The default cache strategy is to clear the cache on every macrotask.\n * If the default cache is overwritten it is up to the user to determine when the\n * cache is cleared.\n */\n cache: new Map(),\n\n /**\n * A regexp or function that receives an import path that matches file types known to be client side assets.\n */\n hydrateIncludeImports:\n /\\.(css|less|s[ac]ss|styl|png|jpe?g|gif|svg|ico|webp|avif|mp4|webm|ogg|mp3|wav|flac|aac|woff2?|eot|ttf|otf)$/,\n\n /**\n * Set to true in order to bring in the hot module replacement runtime.\n */\n hot: false\n };\n\n if (process.env.MARKO_CONFIG) {\n Object.assign(config, JSON.parse(process.env.MARKO_CONFIG));\n }\n}\n\nexport default config;\n\nimport { setFS } from \"./taglib/fs\";\nsetFS(config.fileSystem);\n"],"file":"config.js"}
|
package/dist/index.js
CHANGED
|
@@ -93,42 +93,25 @@ function buildResult(babelResult) {
|
|
|
93
93
|
return { ast, map, code, meta };
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
let scheduledClear = false;
|
|
97
|
-
let clearingDefaultFs = false;
|
|
98
96
|
let clearingDefaultCache = false;
|
|
99
97
|
function scheduleDefaultClear(config) {
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
scheduledClear = true;
|
|
106
|
-
setImmediate(_clearDefaults);
|
|
107
|
-
}
|
|
98
|
+
if (
|
|
99
|
+
!clearingDefaultCache && (
|
|
100
|
+
clearingDefaultCache = isDefaultCache(config)))
|
|
101
|
+
{
|
|
102
|
+
setImmediate(_clearDefaults);
|
|
108
103
|
}
|
|
109
104
|
}
|
|
110
105
|
|
|
111
106
|
function _clearDefaults() {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
globalConfig.cache.clear();
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (clearingDefaultFs) {
|
|
118
|
-
clearingDefaultFs = false;
|
|
119
|
-
globalConfig.fileSystem.purge();
|
|
120
|
-
}
|
|
121
|
-
scheduledClear = false;
|
|
107
|
+
clearingDefaultCache = false;
|
|
108
|
+
globalConfig.cache.clear();
|
|
122
109
|
}
|
|
123
110
|
|
|
124
111
|
function isDefaultCache(config) {
|
|
125
112
|
return !config.cache || config.cache === globalConfig.cache;
|
|
126
113
|
}
|
|
127
114
|
|
|
128
|
-
function isDefaultFS(config) {
|
|
129
|
-
return getFs(config) === globalConfig.fileSystem;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
115
|
function getFs(config) {
|
|
133
116
|
return config.fileSystem || globalConfig.fileSystem;
|
|
134
117
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["globalConfig","defaultConfig","configure","newConfig","compile","src","filename","config","babelConfig","loadBabelConfig","babelResult","babel","transformAsync","scheduleDefaultClear","buildResult","compileSync","transformSync","compileFile","Promise","resolve","reject","getFs","readFile","err","compileFileSync","readFileSync","getRuntimeEntryFiles","output","requestedTranslator","translator","markoConfig","undefined","requiredPlugins","corePlugin","baseBabelConfig","filenameRelative","path","relative","process","cwd","sourceFileName","basename","sourceType","sourceMaps","code","ast","modules","push","require","loose","plugins","concat","loadPartialConfig","options","map","metadata","marko","meta","
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["globalConfig","defaultConfig","configure","newConfig","compile","src","filename","config","babelConfig","loadBabelConfig","babelResult","babel","transformAsync","scheduleDefaultClear","buildResult","compileSync","transformSync","compileFile","Promise","resolve","reject","getFs","readFile","err","compileFileSync","readFileSync","getRuntimeEntryFiles","output","requestedTranslator","translator","markoConfig","undefined","requiredPlugins","corePlugin","baseBabelConfig","filenameRelative","path","relative","process","cwd","sourceFileName","basename","sourceType","sourceMaps","code","ast","modules","push","require","loose","plugins","concat","loadPartialConfig","options","map","metadata","marko","meta","clearingDefaultCache","isDefaultCache","setImmediate","_clearDefaults","cache","clear","fileSystem"],"mappings":"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","sourcesContent":["export * as types from \"./babel-types\";\nimport path from \"path\";\nimport * as babel from \"@babel/core\";\nimport corePlugin from \"./babel-plugin\";\nimport defaultConfig from \"./config\";\nimport * as taglib from \"./taglib\";\nimport shouldOptimize from \"./util/should-optimize\";\nimport tryLoadTranslator from \"./util/try-load-translator\";\nexport { taglib };\n\nlet globalConfig = { ...defaultConfig };\nexport function configure(newConfig) {\n globalConfig = { ...defaultConfig, ...newConfig };\n}\n\nexport async function compile(src, filename, config) {\n const babelConfig = loadBabelConfig(filename, config);\n const babelResult = await babel.transformAsync(src, babelConfig);\n scheduleDefaultClear(config);\n return buildResult(babelResult);\n}\n\nexport function compileSync(src, filename, config) {\n const babelConfig = loadBabelConfig(filename, config);\n const babelResult = babel.transformSync(src, babelConfig);\n scheduleDefaultClear(config);\n return buildResult(babelResult);\n}\n\nexport async function compileFile(filename, config) {\n return new Promise((resolve, reject) => {\n getFs(config).readFile(filename, \"utf-8\", (err, src) => {\n if (err) {\n return reject(err);\n }\n\n return resolve(compile(src, filename, config));\n });\n });\n}\n\nexport function compileFileSync(filename, config) {\n const src = getFs(config).readFileSync(filename, \"utf-8\");\n return compileSync(src, filename, config);\n}\n\nexport function getRuntimeEntryFiles(output, requestedTranslator) {\n const translator = tryLoadTranslator(requestedTranslator);\n if (translator && translator.getRuntimeEntryFiles) {\n return translator.getRuntimeEntryFiles(output, shouldOptimize());\n }\n\n return [];\n}\n\nfunction loadBabelConfig(filename, config) {\n const markoConfig = { ...globalConfig, ...config, babelConfig: undefined };\n const requiredPlugins = [[corePlugin, markoConfig]];\n const baseBabelConfig = {\n filenameRelative: filename\n ? path.relative(process.cwd(), filename)\n : undefined,\n sourceFileName: filename ? path.basename(filename) : undefined,\n ...(config && config.babelConfig),\n filename,\n sourceType: \"module\",\n sourceMaps: markoConfig.sourceMaps,\n code: markoConfig.code,\n ast: markoConfig.ast\n };\n\n if (markoConfig.modules === \"cjs\") {\n requiredPlugins.push([\n require.resolve(\"@babel/plugin-transform-modules-commonjs\"),\n { loose: true }\n ]);\n }\n\n baseBabelConfig.plugins = requiredPlugins.concat(\n baseBabelConfig.plugins || []\n );\n\n return babel.loadPartialConfig(baseBabelConfig).options;\n}\n\nfunction buildResult(babelResult) {\n const {\n ast,\n map,\n code,\n metadata: { marko: meta }\n } = babelResult;\n return { ast, map, code, meta };\n}\n\nlet clearingDefaultCache = false;\nfunction scheduleDefaultClear(config) {\n if (\n !clearingDefaultCache &&\n (clearingDefaultCache = isDefaultCache(config))\n ) {\n setImmediate(_clearDefaults);\n }\n}\n\nexport function _clearDefaults() {\n clearingDefaultCache = false;\n globalConfig.cache.clear();\n}\n\nfunction isDefaultCache(config) {\n return !config.cache || config.cache === globalConfig.cache;\n}\n\nfunction getFs(config) {\n return config.fileSystem || globalConfig.fileSystem;\n}\n"],"file":"index.js"}
|
package/dist/taglib/index.js
CHANGED
|
@@ -3,16 +3,20 @@ var _finder2 = _interopRequireDefault(require("./finder"));
|
|
|
3
3
|
var _lookup = _interopRequireDefault(require("./lookup"));
|
|
4
4
|
var _tryLoadTranslator = _interopRequireDefault(require("../util/try-load-translator"));
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _markoHtml = _interopRequireDefault(require("./marko-html.json"));
|
|
10
|
+
var _markoSvg = _interopRequireDefault(require("./marko-svg.json"));
|
|
11
|
+
var _markoMath = _interopRequireDefault(require("./marko-math.json"));const excludeDir = _finder2.default.excludeDir;exports.excludeDir = excludeDir;const excludePackage = _finder2.default.excludePackage;exports.excludePackage = excludePackage;
|
|
8
12
|
|
|
9
13
|
const registeredTaglibs = [];
|
|
10
14
|
const loadedTranslatorsTaglibs = new Map();
|
|
11
15
|
let lookupCache = Object.create(null);
|
|
12
16
|
|
|
13
|
-
register(
|
|
14
|
-
register(
|
|
15
|
-
register(
|
|
17
|
+
register("marko/html", _markoHtml.default);
|
|
18
|
+
register("marko/svg", _markoSvg.default);
|
|
19
|
+
register("marko/math", _markoMath.default);
|
|
16
20
|
|
|
17
21
|
function buildLookup(dirname, requestedTranslator) {
|
|
18
22
|
const translator = (0, _tryLoadTranslator.default)(requestedTranslator);
|
package/dist/taglib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/taglib/index.js"],"names":["excludeDir","finder","excludePackage","registeredTaglibs","loadedTranslatorsTaglibs","Map","lookupCache","Object","create","register","
|
|
1
|
+
{"version":3,"sources":["../../src/taglib/index.js"],"names":["excludeDir","finder","excludePackage","registeredTaglibs","loadedTranslatorsTaglibs","Map","lookupCache","Object","create","register","markoHTMLTaglib","markoSVGTaglib","markoMathTaglib","buildLookup","dirname","requestedTranslator","translator","Array","isArray","taglibs","Error","has","set","map","id","props","loadTaglib","taglibsForDir","find","concat","get","cacheKey","it","join","lookup","Lookup","i","length","taglib","addTaglib","imports","importedTaglib","hasTaglib","push","clearCaches","loader","clearCache","_loader","_finder","loadTaglibFromProps","createTaglib"],"mappings":"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","sourcesContent":["import loader from \"./loader\";\nimport finder from \"./finder\";\nimport Lookup from \"./lookup\";\nimport tryLoadTranslator from \"../util/try-load-translator\";\n\nexport const excludeDir = finder.excludeDir;\nexport const excludePackage = finder.excludePackage;\n\nimport markoHTMLTaglib from \"./marko-html.json\";\nimport markoSVGTaglib from \"./marko-svg.json\";\nimport markoMathTaglib from \"./marko-math.json\";\n\nconst registeredTaglibs = [];\nconst loadedTranslatorsTaglibs = new Map();\nlet lookupCache = Object.create(null);\n\nregister(\"marko/html\", markoHTMLTaglib);\nregister(\"marko/svg\", markoSVGTaglib);\nregister(\"marko/math\", markoMathTaglib);\n\nexport function buildLookup(dirname, requestedTranslator) {\n const translator = tryLoadTranslator(requestedTranslator);\n if (!translator || !Array.isArray(translator.taglibs)) {\n throw new Error(\n \"@marko/compiler: Invalid translator provided to buildLookup(dir, translator)\"\n );\n }\n\n if (!loadedTranslatorsTaglibs.has(translator)) {\n loadedTranslatorsTaglibs.set(\n translator,\n translator.taglibs.map(([id, props]) => loadTaglib(id, props))\n );\n }\n\n const taglibsForDir = finder.find(\n dirname,\n registeredTaglibs.concat(loadedTranslatorsTaglibs.get(translator))\n );\n\n const cacheKey = taglibsForDir.map(it => it.id).join();\n let lookup = lookupCache[cacheKey];\n\n if (!lookup) {\n lookup = lookupCache[cacheKey] = new Lookup();\n for (let i = taglibsForDir.length; i--; ) {\n const taglib = taglibsForDir[i];\n lookup.addTaglib(taglib);\n if (taglib.imports) {\n for (const importedTaglib of taglib.imports) {\n if (!lookup.hasTaglib(importedTaglib)) {\n lookup.addTaglib(importedTaglib);\n }\n }\n }\n }\n }\n\n return lookup;\n}\n\nexport function register(id, props) {\n registeredTaglibs.push(loadTaglib(id, props));\n}\n\nexport function clearCaches() {\n loader.clearCache();\n finder.clearCache();\n lookupCache = Object.create(null);\n}\n\n// Used by legacy compiler api.\nexport const _loader = loader;\nexport const _finder = finder;\n\nfunction loadTaglib(id, props) {\n return loader.loadTaglibFromProps(loader.createTaglib(id), props);\n}\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marko/compiler",
|
|
3
3
|
"description": "Marko template to JS compiler.",
|
|
4
|
-
"version": "5.20.
|
|
4
|
+
"version": "5.20.5",
|
|
5
5
|
"author": "Dylan Piercey <dpiercey@ebay.com>",
|
|
6
6
|
"bugs": "https://github.com/marko-js/marko/issues/new?template=Bug_report.md",
|
|
7
7
|
"dependencies": {
|
|
@@ -13,9 +13,8 @@
|
|
|
13
13
|
"@babel/runtime": "^7.16.0",
|
|
14
14
|
"@babel/traverse": "^7.16.0",
|
|
15
15
|
"@babel/types": "^7.16.0",
|
|
16
|
-
"@marko/babel-utils": "^5.20.
|
|
16
|
+
"@marko/babel-utils": "^5.20.5",
|
|
17
17
|
"complain": "^1.6.0",
|
|
18
|
-
"enhanced-resolve": "5.7.0",
|
|
19
18
|
"he": "^1.2.0",
|
|
20
19
|
"htmljs-parser": "^2.11.1",
|
|
21
20
|
"jsesc": "^3.0.2",
|
|
@@ -29,7 +28,7 @@
|
|
|
29
28
|
"strip-json-comments": "^3.1.1"
|
|
30
29
|
},
|
|
31
30
|
"devDependencies": {
|
|
32
|
-
"@marko/translator-default": "^5.20.
|
|
31
|
+
"@marko/translator-default": "^5.20.5"
|
|
33
32
|
},
|
|
34
33
|
"files": [
|
|
35
34
|
"dist",
|
|
@@ -60,5 +59,5 @@
|
|
|
60
59
|
"url": "https://github.com/marko-js/marko/tree/master/packages/compiler"
|
|
61
60
|
},
|
|
62
61
|
"types": "index.d.ts",
|
|
63
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "f7df1bcd4e65aa384733952139280f698ba7a9c9"
|
|
64
63
|
}
|