@marko/translator-default 5.20.7 → 5.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. package/dist/cdata/index.js +1 -2
  2. package/dist/cdata/index[html].js +1 -2
  3. package/dist/cdata/index[vdom].js +1 -2
  4. package/dist/class.js +1 -2
  5. package/dist/comment/index.js +1 -2
  6. package/dist/comment/index[html].js +1 -2
  7. package/dist/comment/index[vdom].js +1 -2
  8. package/dist/declaration/index.js +1 -2
  9. package/dist/declaration/index[html].js +1 -2
  10. package/dist/declaration/index[vdom].js +1 -2
  11. package/dist/document-type/index.js +1 -2
  12. package/dist/document-type/index[html].js +1 -2
  13. package/dist/document-type/index[vdom].js +1 -2
  14. package/dist/index.js +1 -2
  15. package/dist/placeholder/index.js +1 -2
  16. package/dist/placeholder/index[html].js +1 -2
  17. package/dist/placeholder/index[vdom].js +1 -2
  18. package/dist/scriptlet.js +1 -2
  19. package/dist/tag/attribute/directives/class.js +1 -2
  20. package/dist/tag/attribute/directives/index.js +1 -2
  21. package/dist/tag/attribute/directives/no-update-body-if.js +1 -2
  22. package/dist/tag/attribute/directives/no-update-body.js +1 -2
  23. package/dist/tag/attribute/directives/no-update-if.js +1 -2
  24. package/dist/tag/attribute/directives/no-update.js +1 -2
  25. package/dist/tag/attribute/directives/style.js +1 -2
  26. package/dist/tag/attribute/index.js +1 -2
  27. package/dist/tag/attribute/modifiers/index.js +1 -2
  28. package/dist/tag/attribute/modifiers/no-update.js +1 -2
  29. package/dist/tag/attribute/modifiers/scoped.js +1 -2
  30. package/dist/tag/attribute-tag.js +1 -2
  31. package/dist/tag/custom-tag.js +1 -2
  32. package/dist/tag/dynamic-tag.js +1 -2
  33. package/dist/tag/index.js +1 -2
  34. package/dist/tag/macro-tag.js +1 -2
  35. package/dist/tag/native-tag.js +1 -2
  36. package/dist/tag/native-tag[html]/attributes.js +1 -2
  37. package/dist/tag/native-tag[html]/index.js +1 -2
  38. package/dist/tag/native-tag[vdom]/index.js +1 -2
  39. package/dist/tag/util.js +1 -2
  40. package/dist/taglib/core/conditional/translate-else-if.js +1 -2
  41. package/dist/taglib/core/conditional/translate-else.js +1 -2
  42. package/dist/taglib/core/conditional/translate-if.js +1 -2
  43. package/dist/taglib/core/conditional/util.js +1 -2
  44. package/dist/taglib/core/index.js +11 -26
  45. package/dist/taglib/core/macro/parse.js +1 -2
  46. package/dist/taglib/core/macro/translate.js +1 -2
  47. package/dist/taglib/core/parse-class.js +2 -3
  48. package/dist/taglib/core/parse-export.js +1 -2
  49. package/dist/taglib/core/parse-import.js +1 -2
  50. package/dist/taglib/core/parse-module-code.js +1 -2
  51. package/dist/taglib/core/parse-static.js +1 -2
  52. package/dist/taglib/core/parse-style.js +1 -2
  53. package/dist/taglib/core/transform-style.js +1 -2
  54. package/dist/taglib/core/translate-await.js +1 -2
  55. package/dist/taglib/core/translate-body.js +1 -2
  56. package/dist/taglib/core/translate-for.js +1 -2
  57. package/dist/taglib/core/translate-html-comment.js +1 -2
  58. package/dist/taglib/core/translate-include-content.js +1 -2
  59. package/dist/taglib/core/translate-server-only.js +1 -2
  60. package/dist/taglib/core/translate-while.js +1 -2
  61. package/dist/taglib/index.js +1 -2
  62. package/dist/taglib/migrate/all-templates.js +1 -2
  63. package/dist/taglib/migrate/index.js +1 -2
  64. package/dist/text/index.js +1 -2
  65. package/dist/text/index[html].js +1 -2
  66. package/dist/text/index[vdom].js +1 -2
  67. package/dist/util/add-dependencies.js +1 -2
  68. package/dist/util/get-component-files.js +1 -2
  69. package/dist/util/html-out-write.js +1 -2
  70. package/dist/util/key-manager.js +1 -2
  71. package/dist/util/optimize-html-writes.js +1 -2
  72. package/dist/util/optimize-vdom-create.js +1 -2
  73. package/dist/util/plugin-hooks.js +1 -2
  74. package/dist/util/runtime-flags.js +1 -2
  75. package/dist/util/vdom-out-write.js +1 -2
  76. package/dist/util/with-previous-location.js +1 -2
  77. package/package.json +6 -7
  78. package/src/index.js +516 -0
  79. package/LICENSE +0 -21
  80. package/dist/cdata/index.js.map +0 -1
  81. package/dist/cdata/index[html].js.map +0 -1
  82. package/dist/cdata/index[vdom].js.map +0 -1
  83. package/dist/class.js.map +0 -1
  84. package/dist/comment/index.js.map +0 -1
  85. package/dist/comment/index[html].js.map +0 -1
  86. package/dist/comment/index[vdom].js.map +0 -1
  87. package/dist/declaration/index.js.map +0 -1
  88. package/dist/declaration/index[html].js.map +0 -1
  89. package/dist/declaration/index[vdom].js.map +0 -1
  90. package/dist/document-type/index.js.map +0 -1
  91. package/dist/document-type/index[html].js.map +0 -1
  92. package/dist/document-type/index[vdom].js.map +0 -1
  93. package/dist/index.js.map +0 -1
  94. package/dist/placeholder/index.js.map +0 -1
  95. package/dist/placeholder/index[html].js.map +0 -1
  96. package/dist/placeholder/index[vdom].js.map +0 -1
  97. package/dist/scriptlet.js.map +0 -1
  98. package/dist/tag/attribute/directives/class.js.map +0 -1
  99. package/dist/tag/attribute/directives/index.js.map +0 -1
  100. package/dist/tag/attribute/directives/no-update-body-if.js.map +0 -1
  101. package/dist/tag/attribute/directives/no-update-body.js.map +0 -1
  102. package/dist/tag/attribute/directives/no-update-if.js.map +0 -1
  103. package/dist/tag/attribute/directives/no-update.js.map +0 -1
  104. package/dist/tag/attribute/directives/style.js.map +0 -1
  105. package/dist/tag/attribute/index.js.map +0 -1
  106. package/dist/tag/attribute/modifiers/index.js.map +0 -1
  107. package/dist/tag/attribute/modifiers/no-update.js.map +0 -1
  108. package/dist/tag/attribute/modifiers/scoped.js.map +0 -1
  109. package/dist/tag/attribute-tag.js.map +0 -1
  110. package/dist/tag/custom-tag.js.map +0 -1
  111. package/dist/tag/dynamic-tag.js.map +0 -1
  112. package/dist/tag/index.js.map +0 -1
  113. package/dist/tag/macro-tag.js.map +0 -1
  114. package/dist/tag/native-tag.js.map +0 -1
  115. package/dist/tag/native-tag[html]/attributes.js.map +0 -1
  116. package/dist/tag/native-tag[html]/index.js.map +0 -1
  117. package/dist/tag/native-tag[vdom]/index.js.map +0 -1
  118. package/dist/tag/util.js.map +0 -1
  119. package/dist/taglib/core/conditional/translate-else-if.js.map +0 -1
  120. package/dist/taglib/core/conditional/translate-else.js.map +0 -1
  121. package/dist/taglib/core/conditional/translate-if.js.map +0 -1
  122. package/dist/taglib/core/conditional/util.js.map +0 -1
  123. package/dist/taglib/core/index.js.map +0 -1
  124. package/dist/taglib/core/macro/parse.js.map +0 -1
  125. package/dist/taglib/core/macro/translate.js.map +0 -1
  126. package/dist/taglib/core/parse-class.js.map +0 -1
  127. package/dist/taglib/core/parse-export.js.map +0 -1
  128. package/dist/taglib/core/parse-import.js.map +0 -1
  129. package/dist/taglib/core/parse-module-code.js.map +0 -1
  130. package/dist/taglib/core/parse-static.js.map +0 -1
  131. package/dist/taglib/core/parse-style.js.map +0 -1
  132. package/dist/taglib/core/transform-style.js.map +0 -1
  133. package/dist/taglib/core/translate-await.js.map +0 -1
  134. package/dist/taglib/core/translate-body.js.map +0 -1
  135. package/dist/taglib/core/translate-for.js.map +0 -1
  136. package/dist/taglib/core/translate-html-comment.js.map +0 -1
  137. package/dist/taglib/core/translate-include-content.js.map +0 -1
  138. package/dist/taglib/core/translate-server-only.js.map +0 -1
  139. package/dist/taglib/core/translate-while.js.map +0 -1
  140. package/dist/taglib/index.js.map +0 -1
  141. package/dist/taglib/migrate/all-templates.js.map +0 -1
  142. package/dist/taglib/migrate/index.js.map +0 -1
  143. package/dist/text/index.js.map +0 -1
  144. package/dist/text/index[html].js.map +0 -1
  145. package/dist/text/index[vdom].js.map +0 -1
  146. package/dist/util/add-dependencies.js.map +0 -1
  147. package/dist/util/get-component-files.js.map +0 -1
  148. package/dist/util/html-out-write.js.map +0 -1
  149. package/dist/util/key-manager.js.map +0 -1
  150. package/dist/util/optimize-html-writes.js.map +0 -1
  151. package/dist/util/optimize-vdom-create.js.map +0 -1
  152. package/dist/util/plugin-hooks.js.map +0 -1
  153. package/dist/util/runtime-flags.js.map +0 -1
  154. package/dist/util/vdom-out-write.js.map +0 -1
  155. package/dist/util/with-previous-location.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/declaration/index[html].js"],"names":["path","node","replaceWith","t","stringLiteral","value"],"mappings":"uJAAA;AACA;AACA;;AAEe,kBAAUA,IAAV,EAAgB;AAC7B,QAAM,EAAEC,IAAF,KAAWD,IAAjB;;AAEAA,EAAAA,IAAI,CAACE,WAAL;AACE,qCAAqB,0BAAM,KAAIC,gBAAEC,aAAF,CAAgBH,IAAI,CAACI,KAArB,CAA4B,IAA3D,EAAgEJ,IAAhE,CADF;;AAGD","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport write from \"../util/html-out-write\";\nimport withPreviousLocation from \"../util/with-previous-location\";\n\nexport default function (path) {\n const { node } = path;\n\n path.replaceWith(\n withPreviousLocation(write`<?${t.stringLiteral(node.value)}?>`, node)\n );\n}\n"],"file":"index[html].js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/declaration/index[vdom].js"],"names":["path","remove"],"mappings":"kEAAe,kBAAUA,IAAV,EAAgB;AAC7BA,EAAAA,IAAI,CAACC,MAAL;AACD","sourcesContent":["export default function (path) {\n path.remove();\n}\n"],"file":"index[vdom].js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/document-type/index.js"],"names":["path","hub","file","markoOpts","output"],"mappings":"uJAAA;AACA;;AAEe,kBAAUA,IAAV,EAAgB;AAC7B,QAAM;AACJC,IAAAA,GAAG,EAAE;AACHC,MAAAA,IAAI,EAAE,EAAEC,SAAF,EADH,EADD;;AAIFH,EAAAA,IAJJ;AAKA,MAAIG,SAAS,CAACC,MAAV,KAAqB,MAAzB,EAAiC;AAC/B,4BAAcJ,IAAd;AACD,GAFD,MAEO;AACL,4BAAcA,IAAd;AACD;AACF","sourcesContent":["import translateHTML from \"./index[html]\";\nimport translateVDOM from \"./index[vdom]\";\n\nexport default function (path) {\n const {\n hub: {\n file: { markoOpts }\n }\n } = path;\n if (markoOpts.output === \"html\") {\n translateHTML(path);\n } else {\n translateVDOM(path);\n }\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/document-type/index[html].js"],"names":["path","node","replaceWith","t","stringLiteral","value"],"mappings":"uJAAA;AACA;AACA;;AAEe,kBAAUA,IAAV,EAAgB;AAC7B,QAAM,EAAEC,IAAF,KAAWD,IAAjB;;AAEAA,EAAAA,IAAI,CAACE,WAAL;AACE,qCAAqB,0BAAM,KAAIC,gBAAEC,aAAF,CAAgBH,IAAI,CAACI,KAArB,CAA4B,GAA3D,EAA+DJ,IAA/D,CADF;;AAGD","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport write from \"../util/html-out-write\";\nimport withPreviousLocation from \"../util/with-previous-location\";\n\nexport default function (path) {\n const { node } = path;\n\n path.replaceWith(\n withPreviousLocation(write`<!${t.stringLiteral(node.value)}>`, node)\n );\n}\n"],"file":"index[html].js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/document-type/index[vdom].js"],"names":["path","remove"],"mappings":"kEAAe,kBAAUA,IAAV,EAAgB;AAC7BA,EAAAA,IAAI,CAACC,MAAL;AACD","sourcesContent":["export default function (path) {\n path.remove();\n}\n"],"file":"index[vdom].js"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["analyze","Program","enter","program","meta","hub","file","metadata","marko","hasComponent","hasComponentBrowser","get","some","child","isMarkoClass","exit","styleFile","packageFile","componentBrowserFile","deps","unshift","component","hasStatefulTagParams","opts","filename","map","imports","node","body","filter","t","isImportDeclaration","source","value","MarkoTag","tag","tagDef","html","template","renderer","htmlType","parseOptions","import","push","dir","isStringLiteral","relativePath","resolveRelativeTagEntry","extra","tags","includes","translator","path","watchFiles","length","curTag","tagFile","childMeta","ImportDeclaration","tagEntry","translate","MarkoDocumentType","MarkoDeclaration","MarkoCDATA","MarkoText","MarkoPlaceholder","MarkoScriptlet","MarkoClass","MarkoComment","ReferencedIdentifier","name","scope","hasBinding","replaceWith","_componentInstanceIdentifier","markoOpts","output","resolveVirtualDependency","moduleCode","skip","_componentDefIdentifier","generateUidIdentifier","renderBlock","pushContainer","blockStatement","isRenderContent","forEach","childPath","remove","_renderBlock","crawl","_inlineComponentClass","includeMetaInSource","componentFile","isHTML","componentClass","objectExpression","componentIdentifier","componentTypeIdentifier","templateIdentifier","rendererIdentifier","templateRendererMember","memberExpression","identifier","templateMetaMember","writeVersionComment","addComment","version","runtimeTemplateIdentifier","unshiftContainer","importDeclaration","importSpecifier","stringLiteral","optimize","hot","variableDeclaration","variableDeclarator","id","callExpression","expressionStatement","assignmentExpression","exportDefaultDeclaration","Boolean","arrowFunctionExpression","templateRenderOptionsProps","objectProperty","booleanLiteral","functionExpression","metaObject","properties","JSON","stringify","code","arrayExpression","getRuntimeEntryFiles","base","MARKO_TYPES","type","static","entry"],"mappings":"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","sourcesContent":["import { resolve } from \"path\";\nimport { types as t } from \"@marko/compiler\";\nimport {\n parseExpression,\n resolveTagImport,\n resolveRelativePath,\n importNamed,\n importDefault,\n parseScript,\n isNativeTag,\n isMacroTag,\n isDynamicTag,\n isAttributeTag,\n loadFileForTag,\n findParentTag,\n getTagDef\n} from \"@marko/babel-utils\";\nimport { version } from \"marko/package.json\";\nimport MarkoDocumentType from \"./document-type\";\nimport MarkoDeclaration from \"./declaration\";\nimport MarkoCDATA from \"./cdata\";\nimport MarkoTag from \"./tag\";\nimport MarkoText from \"./text\";\nimport MarkoPlaceholder from \"./placeholder\";\nimport MarkoComment from \"./comment\";\nimport MarkoScriptlet from \"./scriptlet\";\nimport MarkoClass from \"./class\";\nimport { analyzeStaticVDOM } from \"./util/optimize-vdom-create\";\nimport { optimizeHTMLWrites } from \"./util/optimize-html-writes\";\nimport getComponentFiles from \"./util/get-component-files\";\nimport addDependencies from \"./util/add-dependencies\";\n\nexport { default as taglibs } from \"./taglib\";\n\nexport const analyze = {\n Program: {\n enter(program) {\n // Pre populate metadata for component files.\n const meta = program.hub.file.metadata.marko;\n getComponentFiles(program);\n\n if (!meta.hasComponent && !meta.hasComponentBrowser) {\n meta.hasComponent = program\n .get(\"body\")\n .some(child => child.isMarkoClass());\n }\n },\n exit(program) {\n const { file } = program.hub;\n const meta = file.metadata.marko;\n const { styleFile, packageFile, componentBrowserFile } =\n getComponentFiles(program);\n\n if (packageFile) {\n meta.deps.unshift(`package: ${packageFile}`);\n }\n\n if (styleFile) {\n meta.deps.unshift(styleFile);\n }\n\n if (meta.hasComponentBrowser) {\n meta.component = componentBrowserFile;\n } else if (meta.hasComponent || meta.hasStatefulTagParams) {\n meta.component = file.opts.filename;\n }\n\n meta.component =\n meta.component && resolveRelativePath(file, meta.component);\n meta.deps = meta.deps.map(filename =>\n typeof filename === \"string\"\n ? resolveRelativePath(file, filename)\n : filename\n );\n\n meta.imports = program.node.body\n .filter(child => t.isImportDeclaration(child))\n .map(child => child.source.value);\n }\n },\n MarkoTag(tag) {\n const { file } = tag.hub;\n const tagDef = getTagDef(tag);\n // Check if tag uses stateful tag params.\n const meta = tag.hub.file.metadata.marko;\n\n if (tagDef) {\n if (tagDef.html && !tagDef.template && !tagDef.renderer) {\n if (tagDef.htmlType === \"custom-element\") {\n if (tagDef.parseOptions && tagDef.parseOptions.import) {\n // TODO: the taglib should be updated to support this as a top level option.\n meta.deps.push(\n resolve(\n tagDef.dir,\n resolve(tagDef.dir, tagDef.parseOptions.import)\n )\n );\n }\n }\n } else if (tag.get(\"name\").isStringLiteral()) {\n const relativePath = resolveRelativeTagEntry(file, tagDef);\n\n if (relativePath) {\n tag.node.extra = tag.node.extra || {};\n tag.node.extra.relativePath = relativePath;\n\n if (!meta.tags.includes(relativePath)) {\n meta.tags.push(relativePath);\n }\n }\n }\n\n if (tagDef.translator && tagDef.translator.path) {\n if (!meta.watchFiles.includes(tagDef.translator.path)) {\n meta.watchFiles.push(tagDef.translator.path);\n }\n }\n }\n\n if (\n meta.hasStatefulTagParams ||\n isNativeTag(tag) ||\n isMacroTag(tag) ||\n !tag.get(\"body\").get(\"params\").length\n ) {\n return;\n }\n\n if (isDynamicTag(tag)) {\n meta.hasStatefulTagParams = true;\n return;\n }\n\n let curTag = tag;\n while (isAttributeTag(curTag)) {\n curTag = findParentTag(curTag);\n }\n\n const tagFile = loadFileForTag(curTag);\n const childMeta = tagFile && tagFile.metadata.marko;\n meta.hasStatefulTagParams =\n childMeta &&\n (childMeta.hasStatefulTagParams ||\n (childMeta.hasComponent && !childMeta.hasComponentBrowser));\n },\n ImportDeclaration: {\n exit(path) {\n const source = path.get(\"source\");\n const tagEntry = resolveTagImport(source, source.node.value);\n\n if (tagEntry) {\n const meta = path.hub.file.metadata.marko;\n source.node.value = tagEntry;\n\n if (!meta.tags.includes(tagEntry)) {\n meta.tags.push(tagEntry);\n }\n }\n }\n }\n};\n\nexport const translate = {\n MarkoDocumentType,\n MarkoDeclaration,\n MarkoCDATA,\n MarkoTag,\n MarkoText,\n MarkoPlaceholder,\n MarkoScriptlet,\n MarkoClass,\n MarkoComment,\n ReferencedIdentifier(path) {\n if (path.node.name === \"component\" && !path.scope.hasBinding(\"component\")) {\n path.replaceWith(path.hub.file._componentInstanceIdentifier);\n }\n },\n Program: {\n enter(path) {\n const {\n hub: { file }\n } = path;\n\n if (file.markoOpts.output === \"hydrate\") {\n addDependencies(file, true);\n return;\n } else if (\n file.markoOpts.resolveVirtualDependency &&\n file.markoOpts.output !== \"html\"\n ) {\n addDependencies(file, false);\n }\n\n if (file.metadata.marko.moduleCode) {\n path\n .replaceWith(parseScript(file, file.metadata.marko.moduleCode))[0]\n .skip();\n return;\n }\n\n file._componentDefIdentifier =\n path.scope.generateUidIdentifier(\"componentDef\");\n\n file._componentInstanceIdentifier =\n path.scope.generateUidIdentifier(\"component\");\n\n // Pre-Analyze tree\n analyzeStaticVDOM(path);\n\n // Move non static content into the renderBody.\n const [renderBlock] = path.pushContainer(\"body\", t.blockStatement([]));\n path\n .get(\"body\")\n .filter(isRenderContent)\n .forEach(childPath => {\n renderBlock.pushContainer(\"body\", childPath.node);\n childPath.remove();\n });\n\n file._renderBlock = renderBlock;\n path.scope.crawl();\n },\n exit(path) {\n const {\n hub: { file }\n } = path;\n const { markoOpts, _inlineComponentClass } = file;\n const includeMetaInSource = markoOpts.meta !== false;\n const meta = file.metadata.marko;\n const { componentFile, componentBrowserFile } = getComponentFiles(path);\n const isHTML = markoOpts.output === \"html\";\n\n const renderBlock = file._renderBlock;\n const componentClass =\n (componentFile &&\n importDefault(\n file,\n resolveRelativePath(file, componentFile),\n \"marko_component\"\n )) ||\n _inlineComponentClass ||\n t.objectExpression([]);\n\n const componentIdentifier =\n path.scope.generateUidIdentifier(\"marko_component\");\n const componentTypeIdentifier = path.scope.generateUidIdentifier(\n \"marko_componentType\"\n );\n const templateIdentifier =\n path.scope.generateUidIdentifier(\"marko_template\");\n const rendererIdentifier = importDefault(\n file,\n \"marko/src/runtime/components/renderer.js\",\n \"marko_renderer\"\n );\n const templateRendererMember = t.memberExpression(\n templateIdentifier,\n t.identifier(\"_\")\n );\n const templateMetaMember = t.memberExpression(\n templateIdentifier,\n t.identifier(\"meta\")\n );\n\n if (markoOpts.writeVersionComment) {\n path.addComment(\n \"leading\",\n ` Compiled using marko@${version} - DO NOT EDIT`,\n true\n );\n }\n\n const runtimeTemplateIdentifier = path.scope.generateUidIdentifier(\"t\");\n\n path.unshiftContainer(\n \"body\",\n [\n t.importDeclaration(\n [t.importSpecifier(runtimeTemplateIdentifier, t.identifier(\"t\"))],\n t.stringLiteral(\n `marko/${markoOpts.optimize ? \"dist\" : \"src\"}/runtime/${\n isHTML ? \"html\" : \"vdom\"\n }/${markoOpts.hot ? \"hot-reload.js\" : \"index.js\"}`\n )\n ),\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(\n componentTypeIdentifier,\n t.stringLiteral(meta.id)\n ),\n t.variableDeclarator(\n templateIdentifier,\n t.callExpression(runtimeTemplateIdentifier, [\n componentTypeIdentifier\n ])\n )\n ]),\n includeMetaInSource &&\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(templateIdentifier, t.identifier(\"path\")),\n t.identifier(\"__filename\")\n )\n ),\n t.exportDefaultDeclaration(templateIdentifier)\n ].filter(Boolean)\n );\n\n path.pushContainer(\n \"body\",\n [\n !isHTML &&\n t.expressionStatement(\n t.callExpression(\n importNamed(\n file,\n \"marko/src/runtime/components/registry\",\n \"r\",\n \"marko_registerComponent\"\n ),\n [\n componentTypeIdentifier,\n t.arrowFunctionExpression(\n [],\n componentBrowserFile\n ? importDefault(\n file,\n resolveRelativePath(file, componentBrowserFile),\n \"marko_split_component\"\n )\n : templateIdentifier\n )\n ]\n )\n ),\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(componentIdentifier, componentClass)\n ])\n ].filter(Boolean)\n );\n\n const templateRenderOptionsProps = [\n t.objectProperty(t.identifier(\"t\"), componentTypeIdentifier)\n ];\n\n if (!meta.component) {\n templateRenderOptionsProps.push(\n t.objectProperty(t.identifier(\"i\"), t.booleanLiteral(true))\n );\n }\n\n if (componentBrowserFile) {\n templateRenderOptionsProps.push(\n t.objectProperty(t.identifier(\"s\"), t.booleanLiteral(true))\n );\n }\n\n if (!markoOpts.optimize) {\n templateRenderOptionsProps.push(\n t.objectProperty(t.identifier(\"d\"), t.booleanLiteral(true))\n );\n }\n\n path.pushContainer(\n \"body\",\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n templateRendererMember,\n t.callExpression(rendererIdentifier, [\n t.functionExpression(\n null,\n [\n t.identifier(\"input\"),\n t.identifier(\"out\"),\n file._componentDefIdentifier,\n file._componentInstanceIdentifier,\n t.identifier(\"state\")\n ],\n renderBlock.node\n ),\n t.objectExpression(templateRenderOptionsProps),\n componentIdentifier\n ])\n )\n )\n );\n renderBlock.remove();\n\n if (!isHTML) {\n path.pushContainer(\n \"body\",\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(templateIdentifier, t.identifier(\"Component\")),\n t.callExpression(\n importDefault(\n file,\n \"marko/src/runtime/components/defineComponent.js\",\n \"marko_defineComponent\"\n ),\n [componentIdentifier, templateRendererMember]\n )\n )\n )\n );\n }\n\n if (includeMetaInSource) {\n const metaObject = t.objectExpression([\n t.objectProperty(t.identifier(\"id\"), componentTypeIdentifier)\n ]);\n\n if (meta.component) {\n metaObject.properties.push(\n t.objectProperty(\n t.identifier(\"component\"),\n t.stringLiteral(meta.component)\n )\n );\n }\n\n if (meta.deps.length) {\n metaObject.properties.push(\n t.objectProperty(\n t.identifier(\"deps\"),\n parseExpression(file, JSON.stringify(meta.deps), file.code.length)\n )\n );\n }\n\n if (meta.tags.length) {\n metaObject.properties.push(\n t.objectProperty(\n t.identifier(\"tags\"),\n t.arrayExpression(meta.tags.map(tag => t.stringLiteral(tag)))\n )\n );\n }\n\n path.pushContainer(\n \"body\",\n t.expressionStatement(\n t.assignmentExpression(\"=\", templateMetaMember, metaObject)\n )\n );\n }\n\n optimizeHTMLWrites(path);\n }\n }\n};\n\nexport function getRuntimeEntryFiles(output, optimize) {\n const base = `marko/${optimize ? \"dist\" : \"src\"}/`;\n\n return [\n `${base}runtime/components`,\n `${base}runtime/components/defineComponent`,\n `${base}runtime/components/renderer`,\n `${base}runtime/components/registry`,\n `${base}runtime/components/attach-detach`,\n `${base}runtime/helpers/assign`,\n `${base}runtime/helpers/class-value`,\n `${base}runtime/helpers/dynamic-tag`,\n `${base}runtime/helpers/load-nested-tag`,\n `${base}runtime/helpers/merge`,\n `${base}runtime/helpers/render-tag`,\n `${base}runtime/helpers/style-value`,\n `${base}runtime/helpers/to-string`,\n `${base}core-tags/components/preserve-tag`,\n `${base}core-tags/components/init-components-tag`,\n `${base}core-tags/components/preferred-script-location-tag`,\n `${base}core-tags/core/__flush_here_and_after__`,\n `${base}core-tags/core/await/renderer`,\n `${base}core-tags/core/await/reorderer-renderer`,\n ...(output === \"html\"\n ? [\n `${base}runtime/html`,\n `${base}runtime/html/hot-reload`,\n `${base}runtime/html/helpers/attr`,\n `${base}runtime/html/helpers/attrs`,\n `${base}runtime/html/helpers/class-attr`,\n `${base}runtime/html/helpers/data-marko`,\n `${base}runtime/html/helpers/escape-quotes`,\n `${base}runtime/html/helpers/escape-script-placeholder`,\n `${base}runtime/html/helpers/escape-style-placeholder`,\n `${base}runtime/html/helpers/escape-xml`,\n `${base}runtime/html/helpers/merge-attrs`,\n `${base}runtime/html/helpers/props-script`,\n `${base}runtime/html/helpers/style-attr`\n ]\n : [\n `${base}runtime/vdom`,\n `${base}runtime/vdom/hot-reload`,\n `${base}runtime/vdom/helpers/attrs`,\n `${base}runtime/vdom/helpers/const`,\n `${base}runtime/vdom/helpers/v-element`,\n `${base}runtime/vdom/helpers/v-text`,\n `${base}runtime/vdom/preserve-attrs`\n ])\n ];\n}\n\nfunction isRenderContent(path) {\n const { node } = path;\n return t.MARKO_TYPES.includes(node.type) && !node.static;\n}\n\nfunction resolveRelativeTagEntry(file, tagDef) {\n // TODO: support transform and other entries.\n const entry = tagDef.template || tagDef.renderer;\n return entry && resolveRelativePath(file, entry);\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/placeholder/index.js"],"names":["path","hub","file","markoOpts","output"],"mappings":"uJAAA;AACA;;AAEe,kBAAUA,IAAV,EAAgB;AAC7B,QAAM;AACJC,IAAAA,GAAG,EAAE;AACHC,MAAAA,IAAI,EAAE,EAAEC,SAAF,EADH,EADD;;AAIFH,EAAAA,IAJJ;AAKA,MAAIG,SAAS,CAACC,MAAV,KAAqB,MAAzB,EAAiC;AAC/B,4BAAcJ,IAAd;AACD,GAFD,MAEO;AACL,4BAAcA,IAAd;AACD;AACF","sourcesContent":["import translateHTML from \"./index[html]\";\nimport translateVDOM from \"./index[vdom]\";\n\nexport default function (path) {\n const {\n hub: {\n file: { markoOpts }\n }\n } = path;\n if (markoOpts.output === \"html\") {\n translateHTML(path);\n } else {\n translateVDOM(path);\n }\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/placeholder/index[html].js"],"names":["ESCAPE_TYPES","html","name","module","alias","fn","escapeXML","script","escapeScript","style","escapeStyle","path","node","hub","file","confident","value","computed","get","evaluate","escape","tagName","findParentTagName","escapeType","t","stringLiteral","callExpression","replacement","replaceWith","remove","parentPath","isProgram","isMarkoTag","tagDef"],"mappings":"uJAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMA,YAAY,GAAG;AACnBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE,GADF;AAEJC,IAAAA,MAAM,EAAE,8CAFJ;AAGJC,IAAAA,KAAK,EAAE,iBAHH;AAIJC,IAAAA,EAAE,EAAEC,YAJA,EADa;;AAOnBC,EAAAA,MAAM,EAAE;AACNJ,IAAAA,MAAM,EAAE,6DADF;AAENC,IAAAA,KAAK,EAAE,oBAFD;AAGNC,IAAAA,EAAE,EAAEG,gCAHE,EAPW;;AAYnBC,EAAAA,KAAK,EAAE;AACLN,IAAAA,MAAM,EAAE,4DADH;AAELC,IAAAA,KAAK,EAAE,mBAFF;AAGLC,IAAAA,EAAE,EAAEK,+BAHC,EAZY,EAArB;;;;AAmBe,kBAAUC,IAAV,EAAgB;AAC7B,QAAM;AACJC,IAAAA,IADI;AAEJC,IAAAA,GAAG,EAAE,EAAEC,IAAF,EAFD;AAGFH,EAAAA,IAHJ;AAIA,QAAM,EAAEI,SAAF,EAAaC,KAAK,EAAEC,QAApB,KAAiCN,IAAI,CAACO,GAAL,CAAS,OAAT,EAAkBC,QAAlB,EAAvC;AACA,MAAI,EAAEC,MAAF,EAAUJ,KAAV,KAAoBJ,IAAxB;;AAEA,MAAIQ,MAAJ,EAAY;AACV,UAAMC,OAAO,GAAGC,iBAAiB,CAACX,IAAD,CAAjC;AACA,UAAMY,UAAU,GAAGvB,YAAY,CAACqB,OAAD,CAAZ,IAAyBrB,YAAY,CAACC,IAAzD;;AAEAe,IAAAA,KAAK,GAAGD,SAAS;AACbS,oBAAEC,aAAF,CAAgBF,UAAU,CAAClB,EAAX,CAAcY,QAAd,CAAhB,CADa;AAEbO,oBAAEE,cAAF;AACEH,IAAAA,UAAU,CAACrB,IAAX;AACI;AACEY,IAAAA,IADF;AAEES,IAAAA,UAAU,CAACpB,MAFb;AAGEoB,IAAAA,UAAU,CAACrB,IAHb;AAIEqB,IAAAA,UAAU,CAACnB,KAJb,CADJ;;AAOI,mCAAcU,IAAd,EAAoBS,UAAU,CAACpB,MAA/B,EAAuCoB,UAAU,CAACnB,KAAlD,CARN;AASE,KAACY,KAAD,CATF,CAFJ;;AAaD,GAjBD,MAiBO;AACLA,IAAAA,KAAK,GAAGD,SAAS;AACbS,oBAAEC,aAAF,CAAgB,uBAASR,QAAT,CAAhB,CADa;AAEbO,oBAAEE,cAAF;AACE;AACEZ,IAAAA,IADF;AAEE,4CAFF;AAGE,qBAHF,CADF;;AAME,KAACE,KAAD,CANF,CAFJ;;AAUD;;AAED,QAAMW,WAAW,GAAG,0BAAM,GAAEX,KAAM,EAAlC;;AAEA,MAAIW,WAAJ,EAAiB;AACfhB,IAAAA,IAAI,CAACiB,WAAL,CAAiB,mCAAqBD,WAArB,EAAkCf,IAAlC,CAAjB;AACD,GAFD,MAEO;AACLD,IAAAA,IAAI,CAACkB,MAAL;AACD;AACF;;AAED,SAASP,iBAAT,CAA2BX,IAA3B,EAAiC;AAC/B,SAAQA,IAAI,GAAGA,IAAI,CAACmB,UAApB,EAAiC;AAC/B,QAAInB,IAAI,CAACoB,SAAL,EAAJ,EAAsB;AACpB;AACD;;AAED,QAAIpB,IAAI,CAACqB,UAAL,EAAJ,EAAuB;AACrB,YAAMC,MAAM,GAAG,2BAAUtB,IAAV,CAAf;AACA,aAAOsB,MAAM,IAAIA,MAAM,CAAChC,IAAjB,IAAyBU,IAAI,CAACO,GAAL,CAAS,YAAT,EAAuBN,IAAvD;AACD;AACF;AACF","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport { getTagDef, importNamed, importDefault } from \"@marko/babel-utils\";\nimport toString from \"marko/src/runtime/helpers/to-string\";\nimport { x as escapeXML } from \"marko/src/runtime/html/helpers/escape-xml\";\nimport escapeScript from \"marko/src/runtime/html/helpers/escape-script-placeholder\";\nimport escapeStyle from \"marko/src/runtime/html/helpers/escape-style-placeholder\";\nimport write from \"../util/html-out-write\";\nimport withPreviousLocation from \"../util/with-previous-location\";\n\nconst ESCAPE_TYPES = {\n html: {\n name: \"x\",\n module: \"marko/src/runtime/html/helpers/escape-xml.js\",\n alias: \"marko_escapeXml\",\n fn: escapeXML\n },\n script: {\n module: \"marko/src/runtime/html/helpers/escape-script-placeholder.js\",\n alias: \"marko_escapeScript\",\n fn: escapeScript\n },\n style: {\n module: \"marko/src/runtime/html/helpers/escape-style-placeholder.js\",\n alias: \"marko_escapeStyle\",\n fn: escapeStyle\n }\n};\n\nexport default function (path) {\n const {\n node,\n hub: { file }\n } = path;\n const { confident, value: computed } = path.get(\"value\").evaluate();\n let { escape, value } = node;\n\n if (escape) {\n const tagName = findParentTagName(path);\n const escapeType = ESCAPE_TYPES[tagName] || ESCAPE_TYPES.html;\n\n value = confident\n ? t.stringLiteral(escapeType.fn(computed))\n : t.callExpression(\n escapeType.name\n ? importNamed(\n file,\n escapeType.module,\n escapeType.name,\n escapeType.alias\n )\n : importDefault(file, escapeType.module, escapeType.alias),\n [value]\n );\n } else {\n value = confident\n ? t.stringLiteral(toString(computed))\n : t.callExpression(\n importDefault(\n file,\n \"marko/src/runtime/helpers/to-string.js\",\n \"marko_to_string\"\n ),\n [value]\n );\n }\n\n const replacement = write`${value}`;\n\n if (replacement) {\n path.replaceWith(withPreviousLocation(replacement, node));\n } else {\n path.remove();\n }\n}\n\nfunction findParentTagName(path) {\n while ((path = path.parentPath)) {\n if (path.isProgram()) {\n return;\n }\n\n if (path.isMarkoTag()) {\n const tagDef = getTagDef(path);\n return tagDef && tagDef.html && path.get(\"name.value\").node;\n }\n }\n}\n"],"file":"index[html].js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/placeholder/index[vdom].js"],"names":["path","node","escape","value","method","confident","computed","get","evaluate","remove","replaceWith","hub","file","_componentInstanceIdentifier"],"mappings":"uJAAA;AACA;;AAEe,kBAAUA,IAAV,EAAgB;AAC7B,QAAM,EAAEC,IAAF,KAAWD,IAAjB;AACA,QAAM,EAAEE,MAAF,EAAUC,KAAV,KAAoBF,IAA1B;AACA,QAAMG,MAAM,GAAGF,MAAM,GAAG,GAAH,GAAS,GAA9B;AACA,QAAM,EAAEG,SAAF,EAAaF,KAAK,EAAEG,QAApB,KAAiCN,IAAI,CAACO,GAAL,CAAS,OAAT,EAAkBC,QAAlB,EAAvC;;AAEA,MAAIH,SAAS,IAAI,CAACC,QAAlB,EAA4B;AAC1BN,IAAAA,IAAI,CAACS,MAAL;AACD,GAFD,MAEO;AACLT,IAAAA,IAAI,CAACU,WAAL;AACE;AACE,+BAAMN,MAAN,EAAcD,KAAd,EAAqBH,IAAI,CAACW,GAAL,CAASC,IAAT,CAAcC,4BAAnC,CADF;AAEEZ,IAAAA,IAFF,CADF;;;AAMD;AACF","sourcesContent":["import write from \"../util/vdom-out-write\";\nimport withPreviousLocation from \"../util/with-previous-location\";\n\nexport default function (path) {\n const { node } = path;\n const { escape, value } = node;\n const method = escape ? \"t\" : \"h\";\n const { confident, value: computed } = path.get(\"value\").evaluate();\n\n if (confident && !computed) {\n path.remove();\n } else {\n path.replaceWith(\n withPreviousLocation(\n write(method, value, path.hub.file._componentInstanceIdentifier),\n node\n )\n );\n }\n}\n"],"file":"index[vdom].js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/scriptlet.js"],"names":["path","node","replaceWithMultiple","body"],"mappings":"kEAAe,kBAAUA,IAAV,EAAgB;AAC7B,QAAM,EAAEC,IAAF,KAAWD,IAAjB;AACAA,EAAAA,IAAI,CAACE,mBAAL,CAAyBD,IAAI,CAACE,IAA9B;AACD","sourcesContent":["export default function (path) {\n const { node } = path;\n path.replaceWithMultiple(node.body);\n}\n"],"file":"scriptlet.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/directives/class.js"],"names":["exit","tag","_","value","hub","file","isStringLiteral","confident","computed","evaluate","s","replaceWith","t","stringLiteral","nullLiteral","callExpression","node"],"mappings":"qJAAA;AACA;AACA;AACA,oG;;AAEe;AACbA,EAAAA,IAAI,CAACC,GAAD,EAAMC,CAAN,EAASC,KAAT,EAAgB;AAClB,UAAM;AACJC,MAAAA,GAAG,EAAE,EAAEC,IAAF,EADD;AAEFJ,IAAAA,GAFJ;AAGA,QAAI,CAAC,6BAAYA,GAAZ,CAAL,EAAuB;AACvB,QAAIE,KAAK,CAACG,eAAN,EAAJ,EAA6B;;AAE7B,UAAM,EAAEC,SAAF,EAAaJ,KAAK,EAAEK,QAApB,KAAiCL,KAAK,CAACM,QAAN,EAAvC;;AAEA,UAAMC,CAAC,GAAG,yBAAcF,QAAd,CAAV;AACAL,IAAAA,KAAK,CAACQ,WAAN;AACEJ,IAAAA,SAAS;AACLG,IAAAA,CAAC;AACCE,oBAAEC,aAAF,CAAgBH,CAAhB,CADD;AAECE,oBAAEE,WAAF,EAHG;AAIL;AACEF,oBAAEG,cAAF;AACE;AACEV,IAAAA,IADF;AAEE,8CAFF;AAGE,uBAHF,CADF;;AAME,KAACF,KAAK,CAACa,IAAP,CANF,CADF;;AASEb,IAAAA,KAAK,CAACa,IATR,CALN;;;AAiBD,GA5BY,E","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport { isNativeTag, importDefault } from \"@marko/babel-utils\";\nimport classToString from \"marko/src/runtime/helpers/class-value\";\nimport withPreviousLocation from \"../../../util/with-previous-location\";\n\nexport default {\n exit(tag, _, value) {\n const {\n hub: { file }\n } = tag;\n if (!isNativeTag(tag)) return;\n if (value.isStringLiteral()) return;\n\n const { confident, value: computed } = value.evaluate();\n\n const s = classToString(computed);\n value.replaceWith(\n confident\n ? s\n ? t.stringLiteral(s)\n : t.nullLiteral()\n : withPreviousLocation(\n t.callExpression(\n importDefault(\n file,\n \"marko/src/runtime/helpers/class-value.js\",\n \"marko_class_merge\"\n ),\n [value.node]\n ),\n value.node\n )\n );\n }\n};\n"],"file":"class.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/directives/index.js"],"names":["class","classPlugin","style","stylePlugin","noUpdatePlugin","noUpdateIfPlugin","noUpdateBodyPlugin","noUpdateBodyIfPlugin"],"mappings":"qJAAA;AACA;AACA;AACA;AACA;AACA,6E;;AAEe;AACbA,EAAAA,KAAK,EAAEC,cADM;AAEbC,EAAAA,KAAK,EAAEC,cAFM;AAGb,eAAaC,iBAHA;AAIb,kBAAgBC,mBAJH;AAKb,oBAAkBC,qBALL;AAMb,uBAAqBC,uBANR,E","sourcesContent":["import classPlugin from \"./class\";\nimport stylePlugin from \"./style\";\nimport noUpdatePlugin from \"./no-update\";\nimport noUpdateIfPlugin from \"./no-update-if\";\nimport noUpdateBodyPlugin from \"./no-update-body\";\nimport noUpdateBodyIfPlugin from \"./no-update-body-if\";\n\nexport default {\n class: classPlugin,\n style: stylePlugin,\n \"no-update\": noUpdatePlugin,\n \"no-update-if\": noUpdateIfPlugin,\n \"no-update-body\": noUpdateBodyPlugin,\n \"no-update-body-if\": noUpdateBodyIfPlugin\n};\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/directives/no-update-body-if.js"],"names":["exit","tag","attr","value","noUpdateTransform","if","bodyOnly"],"mappings":"qJAAA;AACA,gD;;AAEe;AACbA,EAAAA,IAAI,CAACC,GAAD,EAAMC,IAAN,EAAYC,KAAZ,EAAmB;AACrBC,sBAAkBJ,IAAlB,CAAuBC,GAAvB,EAA4BC,IAA5B,EAAkCC,KAAlC,EAAyC;AACvCE,MAAAA,EAAE,EAAE,kCAAiBH,IAAjB,CADmC;AAEvCI,MAAAA,QAAQ,EAAE,IAF6B,EAAzC;;AAID,GANY,E","sourcesContent":["import noUpdateTransform from \"./no-update\";\nimport { getArgOrSequence } from \"@marko/babel-utils\";\n\nexport default {\n exit(tag, attr, value) {\n noUpdateTransform.exit(tag, attr, value, {\n if: getArgOrSequence(attr),\n bodyOnly: true\n });\n }\n};\n"],"file":"no-update-body-if.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/directives/no-update-body.js"],"names":["exit","tag","attr","value","noUpdateTransform","bodyOnly"],"mappings":"qJAAA,+D;;AAEe;AACbA,EAAAA,IAAI,CAACC,GAAD,EAAMC,IAAN,EAAYC,KAAZ,EAAmB;AACrBC,sBAAkBJ,IAAlB,CAAuBC,GAAvB,EAA4BC,IAA5B,EAAkCC,KAAlC,EAAyC,EAAEE,QAAQ,EAAE,IAAZ,EAAzC;AACD,GAHY,E","sourcesContent":["import noUpdateTransform from \"./no-update\";\n\nexport default {\n exit(tag, attr, value) {\n noUpdateTransform.exit(tag, attr, value, { bodyOnly: true });\n }\n};\n"],"file":"no-update-body.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/directives/no-update-if.js"],"names":["exit","tag","attr","value","noUpdateTransform","if"],"mappings":"qJAAA;AACA,gD;;AAEe;AACbA,EAAAA,IAAI,CAACC,GAAD,EAAMC,IAAN,EAAYC,KAAZ,EAAmB;AACrBC,sBAAkBJ,IAAlB,CAAuBC,GAAvB,EAA4BC,IAA5B,EAAkCC,KAAlC,EAAyC,EAAEE,EAAE,EAAE,kCAAiBH,IAAjB,CAAN,EAAzC;AACD,GAHY,E","sourcesContent":["import noUpdateTransform from \"./no-update\";\nimport { getArgOrSequence } from \"@marko/babel-utils\";\n\nexport default {\n exit(tag, attr, value) {\n noUpdateTransform.exit(tag, attr, value, { if: getArgOrSequence(attr) });\n }\n};\n"],"file":"no-update-if.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/directives/no-update.js"],"names":["EMPTY_OBJECT","exit","tag","attr","_","opts","remove","node","replacement","t","markoTag","stringLiteral","bodyOnly","body","markoTagBody","key","attributes","push","markoAttribute","booleanLiteral","isPreserved","if","set","replaceWith"],"mappings":"gEAAA;AACA;AACA,MAAMA,YAAY,GAAG,EAArB,C;;AAEe;AACbC,EAAAA,IAAI,CAACC,GAAD,EAAMC,IAAN,EAAYC,CAAZ,EAAeC,IAAI,GAAGL,YAAtB,EAAoC;AACtCG,IAAAA,IAAI,CAACG,MAAL;AACA,UAAM,EAAEC,IAAF,KAAWL,GAAjB;AACA,UAAMM,WAAW,GAAGC,gBAAEC,QAAF;AAClBD,oBAAEE,aAAF,CAAgB,WAAhB,CADkB;AAElB,MAFkB;AAGlBN,IAAAA,IAAI,CAACO,QAAL,GAAgBL,IAAI,CAACM,IAArB,GAA4BJ,gBAAEK,YAAF,CAAe,CAACP,IAAD,CAAf,CAHV,CAApB;;;AAMA,QAAI,6BAAYL,GAAZ,CAAJ,EAAsB;AACpBM,MAAAA,WAAW,CAACO,GAAZ,GAAkBR,IAAI,CAACQ,GAAvB;AACAP,MAAAA,WAAW,CAACQ,UAAZ,CAAuBC,IAAvB;AACER,sBAAES,cAAF,CAAiB,GAAjB,EAAsBT,gBAAEU,cAAF,CAAiB,IAAjB,CAAtB,CADF;;;AAIA,UAAId,IAAI,CAACO,QAAT,EAAmB;AACjBJ,QAAAA,WAAW,CAACQ,UAAZ,CAAuBC,IAAvB;AACER,wBAAES,cAAF,CAAiB,GAAjB,EAAsBT,gBAAEU,cAAF,CAAiB,IAAjB,CAAtB,CADF;;AAGD;AACF,KAXD,MAWO;AACLX,MAAAA,WAAW,CAACO,GAAZ,GAAkB,wCAAwB,KAAIR,IAAI,CAACQ,GAAI,EAAvD;AACD;;AAEDP,IAAAA,WAAW,CAACY,WAAZ,GAA0B,IAA1B;;AAEA,QAAIf,IAAI,CAACgB,EAAT,EAAa;AACXb,MAAAA,WAAW,CAACQ,UAAZ,CAAuBC,IAAvB,CAA4BR,gBAAES,cAAF,CAAiB,GAAjB,EAAsBb,IAAI,CAACgB,EAA3B,CAA5B;AACD;;AAED,QAAIhB,IAAI,CAACO,QAAT,EAAmB;AACjBV,MAAAA,GAAG,CAACoB,GAAJ,CAAQ,MAAR,EAAgBb,gBAAEK,YAAF,CAAe,CAACN,WAAD,CAAf,CAAhB;AACD,KAFD,MAEO;AACLN,MAAAA,GAAG,CAACqB,WAAJ,CAAgBf,WAAhB;AACD;AACF,GApCY,E","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport { normalizeTemplateString, isNativeTag } from \"@marko/babel-utils\";\nconst EMPTY_OBJECT = {};\n\nexport default {\n exit(tag, attr, _, opts = EMPTY_OBJECT) {\n attr.remove();\n const { node } = tag;\n const replacement = t.markoTag(\n t.stringLiteral(\"_preserve\"),\n [],\n opts.bodyOnly ? node.body : t.markoTagBody([node])\n );\n\n if (isNativeTag(tag)) {\n replacement.key = node.key;\n replacement.attributes.push(\n t.markoAttribute(\"n\", t.booleanLiteral(true))\n );\n\n if (opts.bodyOnly) {\n replacement.attributes.push(\n t.markoAttribute(\"b\", t.booleanLiteral(true))\n );\n }\n } else {\n replacement.key = normalizeTemplateString`p_${node.key}`;\n }\n\n replacement.isPreserved = true;\n\n if (opts.if) {\n replacement.attributes.push(t.markoAttribute(\"i\", opts.if));\n }\n\n if (opts.bodyOnly) {\n tag.set(\"body\", t.markoTagBody([replacement]));\n } else {\n tag.replaceWith(replacement);\n }\n }\n};\n"],"file":"no-update.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/directives/style.js"],"names":["exit","tag","_","value","hub","file","isStringLiteral","confident","computed","evaluate","replaceWith","t","stringLiteral","callExpression","node"],"mappings":"qJAAA;AACA;AACA;AACA,oG;;AAEe;AACbA,EAAAA,IAAI,CAACC,GAAD,EAAMC,CAAN,EAASC,KAAT,EAAgB;AAClB,UAAM;AACJC,MAAAA,GAAG,EAAE,EAAEC,IAAF,EADD;AAEFJ,IAAAA,GAFJ;AAGA,QAAIE,KAAK,CAACG,eAAN,EAAJ,EAA6B;AAC7B,QAAI,CAAC,6BAAYL,GAAZ,CAAL,EAAuB;;AAEvB,UAAM,EAAEM,SAAF,EAAaJ,KAAK,EAAEK,QAApB,KAAiCL,KAAK,CAACM,QAAN,EAAvC;AACAN,IAAAA,KAAK,CAACO,WAAN;AACE;AACEH,IAAAA,SAAS;AACLI,oBAAEC,aAAF,CAAgB,yBAAcJ,QAAd,KAA2B,EAA3C,CADK;AAELG,oBAAEE,cAAF;AACE;AACER,IAAAA,IADF;AAEE,8CAFF;AAGE,uBAHF,CADF;;AAME,KAACF,KAAK,CAACW,IAAP,CANF,CAHN;;AAWEX,IAAAA,KAAK,CAACW,IAXR,CADF;;;AAeD,GAxBY,E","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport { isNativeTag, importDefault } from \"@marko/babel-utils\";\nimport styleToString from \"marko/src/runtime/helpers/style-value\";\nimport withPreviousLocation from \"../../../util/with-previous-location\";\n\nexport default {\n exit(tag, _, value) {\n const {\n hub: { file }\n } = tag;\n if (value.isStringLiteral()) return;\n if (!isNativeTag(tag)) return;\n\n const { confident, value: computed } = value.evaluate();\n value.replaceWith(\n withPreviousLocation(\n confident\n ? t.stringLiteral(styleToString(computed) || \"\")\n : t.callExpression(\n importDefault(\n file,\n \"marko/src/runtime/helpers/style-value.js\",\n \"marko_style_merge\"\n ),\n [value.node]\n ),\n value.node\n )\n );\n }\n};\n"],"file":"style.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/tag/attribute/index.js"],"names":["EMPTY_ARRAY","EVENT_REG","attachedDetachedLoaded","WeakSet","enter","attr","hub","file","tag","parentPath","value","get","name","arguments","args","node","isVDOM","markoOpts","output","execModifiersAndDirectives","eventType","isDash","eventName","exec","length","buildCodeFrameError","isBooleanLiteral","toLowerCase","charAt","slice","handlers","once","has","add","remove","exit","tagDef","html","getAttribute","bound","type","modifier","modifierTranslate","modifiers","tagNode","attrNode","undefined","directiveTranslate","directives"],"mappings":"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","sourcesContent":["import { isNativeTag, getTagDef, importDefault } from \"@marko/babel-utils\";\nimport directives from \"./directives\";\nimport modifiers from \"./modifiers\";\n\nconst EMPTY_ARRAY = [];\nconst EVENT_REG = /^(on(?:ce)?)(-)?(.*)$/;\nconst attachedDetachedLoaded = new WeakSet();\n\nexport default {\n enter(attr) {\n const {\n hub: { file }\n } = attr;\n const tag = attr.parentPath;\n const value = attr.get(\"value\");\n const { name, arguments: args } = attr.node;\n const isVDOM = file.markoOpts.output !== \"html\";\n\n if (execModifiersAndDirectives(\"enter\", tag, attr, value)) {\n return;\n }\n\n // Event handlers.\n let [, eventType, isDash, eventName] = EVENT_REG.exec(name) || EMPTY_ARRAY;\n\n if (eventType && args) {\n if (!args.length) {\n throw attr.buildCodeFrameError(\"Event handler is missing arguments.\");\n }\n\n if (!value.isBooleanLiteral(true)) {\n throw value.buildCodeFrameError(\n `\"${name}(handler, ...args)\" does not accept a value.`\n );\n }\n\n if (!isDash) {\n // When the event is not in dash case we normalized differently for html tags and custom tags.\n\n if (isNativeTag(tag)) {\n // Lowercase the string\n // Example: onMouseOver → mouseover\n eventName = eventName.toLowerCase();\n } else {\n // Convert first character to lower case:\n // Example: onBeforeShow → beforeShow\n eventName = eventName.charAt(0).toLowerCase() + eventName.slice(1);\n }\n }\n\n const handlers = (tag.node.handlers = tag.node.handlers || {});\n if (handlers[eventName]) {\n throw attr.buildCodeFrameError(\n \"Duplicate event handlers are not supported.\"\n );\n }\n\n handlers[eventName] = {\n arguments: args,\n once: eventType === \"once\"\n };\n\n if (isVDOM) {\n if (eventName === \"attach\" || eventName === \"detach\") {\n if (!attachedDetachedLoaded.has(file)) {\n // Pull in helper for element attach/detach;\n attachedDetachedLoaded.add(file);\n importDefault(\n file,\n \"marko/src/runtime/components/attach-detach.js\"\n );\n }\n }\n }\n\n attr.remove();\n return;\n }\n },\n exit(attr) {\n const tag = attr.parentPath;\n const { name, arguments: args } = attr.node;\n const value = attr.get(\"value\");\n\n if (execModifiersAndDirectives(\"exit\", tag, attr, value)) {\n return;\n }\n\n const tagDef = getTagDef(tag);\n\n if (tagDef) {\n if (!tagDef.html && !tagDef.getAttribute(name)) {\n throw attr.buildCodeFrameError(\n `<${\n tag.get(\"name.value\").node\n }> does not support the \"${name}\" attribute.`\n );\n }\n }\n\n if (args && args.length) {\n throw attr.buildCodeFrameError(\n `Unsupported arguments on the \"${name}\" attribute.`\n );\n }\n\n if (attr.node.bound) {\n throw attr.buildCodeFrameError(\n `The binding syntax (:=) is only supported when using the \"Tags API\".`\n );\n }\n }\n};\n\nfunction execModifiersAndDirectives(type, tag, attr, value) {\n const { node } = attr;\n const { name, modifier } = node;\n\n if (modifier) {\n const modifierTranslate = modifiers[modifier];\n if (modifierTranslate) {\n if (modifierTranslate[type]) {\n const tagNode = tag.node;\n const attrNode = attr.node;\n modifierTranslate[type](tag, attr, value);\n if (tag.node !== tagNode || attr.node !== attrNode) return true;\n }\n } else if (name === \"xlink\" && modifier === \"href\" && isNativeTag(tag)) {\n node.name += `:${modifier}`;\n node.modifier = undefined;\n } else {\n throw attr.buildCodeFrameError(`Unsupported modifier \"${modifier}\".`);\n }\n }\n\n const directiveTranslate = directives[name];\n if (directiveTranslate) {\n if (directiveTranslate[type]) {\n const tagNode = tag.node;\n const attrNode = attr.node;\n directiveTranslate[type](tag, attr, value);\n if (tag.node !== tagNode || attr.node !== attrNode) return true;\n }\n }\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/modifiers/index.js"],"names":["scoped","scopedPlugin","noUpdatePlugin"],"mappings":"qJAAA;AACA,+D;;AAEe;AACbA,EAAAA,MAAM,EAAEC,eADK;AAEb,eAAaC,iBAFA,E","sourcesContent":["import scopedPlugin from \"./scoped\";\nimport noUpdatePlugin from \"./no-update\";\n\nexport default {\n scoped: scopedPlugin,\n \"no-update\": noUpdatePlugin\n};\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/modifiers/no-update.js"],"names":["hasMonkeyPatch","WeakSet","exit","tag","attr","node","hub","file","isVDOM","markoOpts","output","preserveAttrs","has","add","push","name"],"mappings":"gEAAA;;AAEA,MAAMA,cAAc,GAAG,IAAIC,OAAJ,EAAvB;;AAEA;AACA;AACA,G;AACe;AACbC,EAAAA,IAAI,CAACC,GAAD,EAAMC,IAAN,EAAY;AACd,UAAM;AACJC,MAAAA,IADI;AAEJC,MAAAA,GAAG,EAAE,EAAEC,IAAF,EAFD;AAGFJ,IAAAA,GAHJ;AAIA,UAAMK,MAAM,GAAGD,IAAI,CAACE,SAAL,CAAeC,MAAf,KAA0B,MAAzC;;AAEA,QAAI,CAACL,IAAI,CAACM,aAAV,EAAyB;AACvBN,MAAAA,IAAI,CAACM,aAAL,GAAqB,EAArB;;AAEA,UAAIH,MAAM,IAAI,CAACR,cAAc,CAACY,GAAf,CAAmBL,IAAnB,CAAf,EAAyC;AACvCP,QAAAA,cAAc,CAACa,GAAf,CAAmBN,IAAnB;AACA,uCAAcA,IAAd,EAAoB,0CAApB;AACD;AACF;;AAEDF,IAAAA,IAAI,CAACM,aAAL,CAAmBG,IAAnB,CAAwBV,IAAI,CAACC,IAAL,CAAUU,IAAlC;AACD,GAlBY,E","sourcesContent":["import { importDefault } from \"@marko/babel-utils\";\n\nconst hasMonkeyPatch = new WeakSet();\n\n/**\n * Does nothing in html mode.\n */\nexport default {\n exit(tag, attr) {\n const {\n node,\n hub: { file }\n } = tag;\n const isVDOM = file.markoOpts.output !== \"html\";\n\n if (!node.preserveAttrs) {\n node.preserveAttrs = [];\n\n if (isVDOM && !hasMonkeyPatch.has(file)) {\n hasMonkeyPatch.add(file);\n importDefault(file, \"marko/src/runtime/vdom/preserve-attrs.js\");\n }\n }\n\n node.preserveAttrs.push(attr.node.name);\n }\n};\n"],"file":"no-update.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/tag/attribute/modifiers/scoped.js"],"names":["exit","tag","_","value","hub","file","replaceWith","t","callExpression","memberExpression","_componentDefIdentifier","identifier","node"],"mappings":"qJAAA;AACA,oG;;AAEe;AACbA,EAAAA,IAAI,CAACC,GAAD,EAAMC,CAAN,EAASC,KAAT,EAAgB;AAClB,UAAM;AACJC,MAAAA,GAAG,EAAE,EAAEC,IAAF,EADD;AAEFJ,IAAAA,GAFJ;AAGAE,IAAAA,KAAK,CAACG,WAAN;AACE;AACEC,oBAAEC,cAAF;AACED,oBAAEE,gBAAF;AACEJ,IAAAA,IAAI,CAACK,uBADP;AAEEH,oBAAEI,UAAF,CAAa,MAAb,CAFF,CADF;;AAKE,KAACR,KAAK,CAACS,IAAP,CALF,CADF;;AAQET,IAAAA,KAAK,CAACS,IARR,CADF;;;AAYD,GAjBY,E","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport withPreviousLocation from \"../../../util/with-previous-location\";\n\nexport default {\n exit(tag, _, value) {\n const {\n hub: { file }\n } = tag;\n value.replaceWith(\n withPreviousLocation(\n t.callExpression(\n t.memberExpression(\n file._componentDefIdentifier,\n t.identifier(\"elId\")\n ),\n [value.node]\n ),\n value.node\n )\n );\n }\n};\n"],"file":"scoped.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tag/attribute-tag.js"],"names":["EMPTY_OBJECT","parentIdentifierLookup","WeakMap","path","node","namePath","get","tagName","value","parentPath","buildCodeFrameError","parentAttributes","tagDef","isRepeated","targetProperty","slice","isDynamic","exampleAttributeTag","hasDynamicAttrTags","body","i","length","child","isAttributeTagChild","insertAfter","t","stringLiteral","some","attr","attrs","isNullLiteral","objectExpression","pushContainer","markoAttribute","remove","identifiers","set","identifier","scope","generateUidIdentifier","unshiftContainer","variableDeclaration","variableDeclarator","arrayExpression","nullLiteral","replaceWith","expressionStatement","callExpression","memberExpression","assignmentExpression","tag"],"mappings":"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","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport {\n findParentTag,\n assertNoArgs,\n getTagDef,\n isTransparentTag,\n isAttributeTag\n} from \"@marko/babel-utils\";\nimport { getAttrs } from \"./util\";\nimport withPreviousLocation from \"../util/with-previous-location\";\n\nconst EMPTY_OBJECT = {};\nconst parentIdentifierLookup = new WeakMap();\n\n// TODO: optimize inline repeated @tags.\n\nexport default function (path) {\n const { node } = path;\n const namePath = path.get(\"name\");\n const tagName = namePath.node.value;\n const parentPath = findParentTag(path);\n\n assertNoArgs(path);\n\n if (!parentPath) {\n throw namePath.buildCodeFrameError(\n \"@tags must be nested within another element.\"\n );\n }\n\n const parentAttributes = parentPath.get(\"attributes\");\n const tagDef = getTagDef(path);\n const { isRepeated, targetProperty = tagName.slice(1) } =\n tagDef || EMPTY_OBJECT;\n const isDynamic = isRepeated || parentPath !== path.parentPath.parentPath;\n parentPath.node.exampleAttributeTag = node;\n\n if (isDynamic) {\n if (!parentPath.node.hasDynamicAttrTags) {\n const body = parentPath.get(\"body\").get(\"body\");\n parentPath.node.hasDynamicAttrTags = true;\n\n for (let i = body.length; i--; ) {\n const child = body[i];\n if (isAttributeTagChild(child)) {\n child.insertAfter(t.stringLiteral(\"END_ATTRIBUTE_TAGS\"));\n break;\n }\n }\n }\n } else {\n if (\n parentAttributes.some(attr => attr.get(\"name\").node === targetProperty)\n ) {\n throw namePath.buildCodeFrameError(\n `Only one \"${tagName}\" tag is allowed here.`\n );\n }\n\n let attrs = getAttrs(path);\n\n if (t.isNullLiteral(attrs)) {\n // TODO: this could be left as a null literal, but would require changes in the\n // await tag runtime to handle `<@catch/>`. (this would be a breaking change though)\n attrs = t.objectExpression([]);\n }\n\n parentPath.pushContainer(\n \"attributes\",\n t.markoAttribute(targetProperty, attrs)\n );\n\n path.remove();\n return;\n }\n\n let identifiers = parentIdentifierLookup.get(parentPath);\n\n if (!identifiers) {\n parentIdentifierLookup.set(parentPath, (identifiers = {}));\n }\n\n let identifier = identifiers[targetProperty];\n\n if (!identifier) {\n identifier = identifiers[targetProperty] =\n path.scope.generateUidIdentifier(targetProperty);\n parentPath\n .get(\"body\")\n .unshiftContainer(\n \"body\",\n t.variableDeclaration(isRepeated ? \"const\" : \"let\", [\n t.variableDeclarator(\n identifier,\n isRepeated ? t.arrayExpression([]) : t.nullLiteral()\n )\n ])\n );\n parentPath.pushContainer(\n \"attributes\",\n t.markoAttribute(targetProperty, identifier)\n );\n }\n\n if (isRepeated) {\n path.replaceWith(\n withPreviousLocation(\n t.expressionStatement(\n t.callExpression(\n t.memberExpression(identifier, t.identifier(\"push\")),\n [getAttrs(path)]\n )\n ),\n node\n )\n );\n } else {\n path.replaceWith(\n withPreviousLocation(\n t.expressionStatement(\n t.assignmentExpression(\"=\", identifier, getAttrs(path))\n ),\n node\n )\n );\n }\n}\n\nfunction isAttributeTagChild(tag) {\n if (isAttributeTag(tag)) {\n return true;\n }\n\n if (isTransparentTag(tag)) {\n const body = tag.get(\"body\").get(\"body\");\n return isAttributeTagChild(body[body.length - 1]);\n }\n\n return false;\n}\n"],"file":"attribute-tag.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tag/custom-tag.js"],"names":["path","isNullable","hub","file","node","markoOpts","name","key","tagIdentifier","t","isStringLiteral","tagName","value","relativePath","extra","tagDef","taglibId","renderer","binding","scope","getBinding","identifier","loc","set","ignoreUnrecognizedTags","get","buildCodeFrameError","foundAttrs","customTagRenderCall","expressionStatement","callExpression","isNullLiteral","objectExpression","_componentDefIdentifier","renderBodyIdentifier","renderBodyProp","isObjectExpression","properties","find","prop","generateUidIdentifier","insertBefore","variableDeclaration","variableDeclarator","replaceWith","ifStatement"],"mappings":"uJAAA;AACA;;;;;;AAMA;AACA;AACA;AACA;;AAEe,kBAAUA,IAAV,EAAgBC,UAAhB,EAA4B;AACzC,QAAM;AACJC,IAAAA,GAAG,EAAE,EAAEC,IAAF,EADD;AAEJC,IAAAA,IAFI;AAGFJ,EAAAA,IAHJ;AAIA,QAAM,EAAEK,SAAF,KAAgBF,IAAtB;AACA,QAAM,EAAEG,IAAF,EAAQC,GAAR,KAAgBH,IAAtB;;AAEA,gCAAaJ,IAAb;;AAEA,MAAIQ,aAAJ;;AAEA,MAAIC,gBAAEC,eAAF,CAAkBJ,IAAlB,CAAJ,EAA6B;AAC3B,UAAMK,OAAO,GAAGL,IAAI,CAACM,KAArB;AACA,QAAIC,YAAY,GAAGT,IAAI,CAACU,KAAL,IAAcV,IAAI,CAACU,KAAL,CAAWD,YAA5C;;AAEA,QAAI,CAACA,YAAL,EAAmB;AACjB,YAAME,MAAM,GAAG,2BAAUf,IAAV,CAAf;AACA;AACEe,MAAAA,MAAM;AACNA,MAAAA,MAAM,CAACC,QAAP,KAAoB,oBADpB;AAEAD,MAAAA,MAAM,CAACE,QAHT;AAIE;AACA;AACA;AACA;AACAJ,QAAAA,YAAY,GAAG,qCAAoBV,IAApB,EAA0BY,MAAM,CAACE,QAAjC,CAAf;AACD;AACF;;AAED,QAAIC,OAAO,GAAGlB,IAAI,CAACmB,KAAL,CAAWC,UAAX,CAAsBT,OAAtB,CAAd;AACA,QAAIO,OAAO,IAAI,CAACA,OAAO,CAACG,UAAR,CAAmBC,GAAnC,EAAwCJ,OAAO,GAAG,IAAV;;AAExC,QAAIL,YAAJ,EAAkB;AAChB,UAAIK,OAAJ,EAAa;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACD;;AAEDV,MAAAA,aAAa,GAAG,+BAAcL,IAAd,EAAoBU,YAApB,EAAkCF,OAAlC,CAAhB;AACD,KAZD,MAYO,IAAIO,OAAJ,EAAa;AAClBlB,MAAAA,IAAI,CAACuB,GAAL,CAAS,MAAT,EAAiBd,gBAAEY,UAAF,CAAaV,OAAb,CAAjB;AACA,aAAO,yBAAWX,IAAX,CAAP;AACD,KAHM,MAGA,IAAIK,SAAS,CAACmB,sBAAd,EAAsC;AAC3C,aAAO,wBAAUxB,IAAV,CAAP;AACD,KAFM,MAEA;AACL,YAAMA,IAAI;AACPyB,MAAAA,GADG,CACC,MADD;AAEHC,MAAAA,mBAFG;AAGD,oDAA6Cf,OAAQ,IAHpD,CAAN;;AAKD;AACF,GA7CD,MA6CO;AACLH,IAAAA,aAAa,GAAGF,IAAhB;AACD;;AAED,QAAMqB,UAAU,GAAG,oBAAS3B,IAAT,CAAnB;AACA,QAAM4B,mBAAmB,GAAG;AAC1BnB,kBAAEoB,mBAAF;AACEpB,kBAAEqB,cAAF;AACE;AACE3B,EAAAA,IADF;AAEE,2CAFF;AAGE,aAHF,CADF;;AAME;AACEK,EAAAA,aADF;AAEE;AACAC,kBAAEsB,aAAF,CAAgBJ,UAAhB,IAA8BlB,gBAAEuB,gBAAF,CAAmB,EAAnB,CAA9B,GAAuDL,UAHzD;AAIElB,kBAAEY,UAAF,CAAa,KAAb,CAJF;AAKElB,EAAAA,IAAI,CAAC8B,uBALP;AAME1B,EAAAA,GANF;AAOE,KAAG,kCAAuBP,IAAvB,CAPL,CANF,CADF,CAD0B;;;;AAmB1BI,EAAAA,IAnB0B,CAA5B;;;AAsBA,MAAIH,UAAJ,EAAgB;AACd,QAAIiC,oBAAJ;AACA,UAAMC,cAAc;AAClB1B,oBAAE2B,kBAAF,CAAqBT,UAArB;AACAA,IAAAA,UAAU,CAACU,UAAX,CAAsBC,IAAtB;AACE,KAAAC,IAAI,KAAIA,IAAI,CAAChC,GAAL,IAAYgC,IAAI,CAAChC,GAAL,CAASK,KAAT,KAAmB,YADzC,CAFF;;;AAMA,QAAIuB,cAAJ,EAAoB;AAClBD,MAAAA,oBAAoB,GAAGlC,IAAI,CAACmB,KAAL,CAAWqB,qBAAX,CAAiC,YAAjC,CAAvB;AACAxC,MAAAA,IAAI,CAACyC,YAAL;AACEhC,sBAAEiC,mBAAF,CAAsB,OAAtB,EAA+B;AAC7BjC,sBAAEkC,kBAAF,CAAqBT,oBAArB,EAA2CC,cAAc,CAACvB,KAA1D,CAD6B,CAA/B,CADF;;;;AAMAuB,MAAAA,cAAc,CAACvB,KAAf,GAAuBsB,oBAAvB;AACD;;AAEDlC,IAAAA,IAAI,CAAC4C,WAAL;AACEnC,oBAAEoC,WAAF;AACEvC,IAAAA,IADF;AAEEsB,IAAAA,mBAFF;AAGEM,IAAAA,oBAAoB;AAClBzB,oBAAEoB,mBAAF;AACEpB,oBAAEqB,cAAF,CAAiBI,oBAAjB,EAAuC,CAACzB,gBAAEY,UAAF,CAAa,KAAb,CAAD,CAAvC,CADF,CAJJ,CADF;;;;AAUD,GA7BD,MA6BO;AACLrB,IAAAA,IAAI,CAAC4C,WAAL,CAAiBhB,mBAAjB;AACD;AACF","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport {\n assertNoArgs,\n getTagDef,\n importDefault,\n resolveRelativePath\n} from \"@marko/babel-utils\";\nimport { getAttrs, buildEventHandlerArray } from \"./util\";\nimport nativeTag from \"./native-tag\";\nimport dynamicTag from \"./dynamic-tag\";\nimport withPreviousLocation from \"../util/with-previous-location\";\n\nexport default function (path, isNullable) {\n const {\n hub: { file },\n node\n } = path;\n const { markoOpts } = file;\n const { name, key } = node;\n\n assertNoArgs(path);\n\n let tagIdentifier;\n\n if (t.isStringLiteral(name)) {\n const tagName = name.value;\n let relativePath = node.extra && node.extra.relativePath;\n\n if (!relativePath) {\n const tagDef = getTagDef(path);\n if (\n tagDef &&\n tagDef.taglibId === \"marko-default-core\" &&\n tagDef.renderer\n ) {\n // Normally new tags should not be added in the translate stage.\n // We make an exception here for core tags, init-components & _preserve being the primary culprits.\n // TODO: in the future refactor so this is not needed.\n relativePath = resolveRelativePath(file, tagDef.renderer);\n }\n }\n\n let binding = path.scope.getBinding(tagName);\n if (binding && !binding.identifier.loc) binding = null;\n\n if (relativePath) {\n if (binding) {\n // TODO: implement auto migration for conflicts here\n // and log below warning\n // console.warn(\n // path.buildCodeFrameError(\n // `The <${tagName}> tag has been resolved from the filesystem, however a local variable with the same name exists. In the next major version of Marko the local variable will tag precedence.`\n // )\n // );\n }\n\n tagIdentifier = importDefault(file, relativePath, tagName);\n } else if (binding) {\n path.set(\"name\", t.identifier(tagName));\n return dynamicTag(path);\n } else if (markoOpts.ignoreUnrecognizedTags) {\n return nativeTag(path);\n } else {\n throw path\n .get(\"name\")\n .buildCodeFrameError(\n `Unable to find entry point for custom tag <${tagName}>.`\n );\n }\n } else {\n tagIdentifier = name;\n }\n\n const foundAttrs = getAttrs(path);\n const customTagRenderCall = withPreviousLocation(\n t.expressionStatement(\n t.callExpression(\n importDefault(\n file,\n \"marko/src/runtime/helpers/render-tag.js\",\n \"marko_tag\"\n ),\n [\n tagIdentifier,\n // TODO: this could be left as null if we froze input mutations and used a default object in the runtime.\n t.isNullLiteral(foundAttrs) ? t.objectExpression([]) : foundAttrs,\n t.identifier(\"out\"),\n file._componentDefIdentifier,\n key,\n ...buildEventHandlerArray(path)\n ]\n )\n ),\n node\n );\n\n if (isNullable) {\n let renderBodyIdentifier;\n const renderBodyProp =\n t.isObjectExpression(foundAttrs) &&\n foundAttrs.properties.find(\n prop => prop.key && prop.key.value === \"renderBody\"\n );\n\n if (renderBodyProp) {\n renderBodyIdentifier = path.scope.generateUidIdentifier(\"renderBody\");\n path.insertBefore(\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(renderBodyIdentifier, renderBodyProp.value)\n ])\n );\n\n renderBodyProp.value = renderBodyIdentifier;\n }\n\n path.replaceWith(\n t.ifStatement(\n name,\n customTagRenderCall,\n renderBodyIdentifier &&\n t.expressionStatement(\n t.callExpression(renderBodyIdentifier, [t.identifier(\"out\")])\n )\n )\n );\n } else {\n path.replaceWith(customTagRenderCall);\n }\n}\n"],"file":"custom-tag.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tag/dynamic-tag.js"],"names":["path","node","hub","file","tagProperties","extra","properties","key","arguments","args","foundAttrs","renderBodyProp","attrsLen","t","isNullLiteral","preserveAttrs","push","objectProperty","identifier","arrayExpression","map","name","stringLiteral","isObjectExpression","renderBodyIndex","findIndex","prop","value","length","splice","dynamicTagRenderCall","expressionStatement","callExpression","arrowFunctionExpression","nullLiteral","objectExpression","_componentDefIdentifier","replaceWith"],"mappings":"uJAAA;AACA;AACA;AACA;;AAEe,kBAAUA,IAAV,EAAgB;AAC7B,QAAM;AACJC,IAAAA,IADI;AAEJC,IAAAA,GAAG,EAAE,EAAEC,IAAF,EAFD;AAGFH,EAAAA,IAHJ;AAIA,QAAMI,aAAa,GAAIJ,IAAI,CAACC,IAAL,CAAUI,KAAV,IAAmBL,IAAI,CAACC,IAAL,CAAUI,KAAV,CAAgBC,UAApC,IAAmD,EAAzE;AACA,QAAM,EAAEC,GAAF,EAAOC,SAAS,EAAEC,IAAlB,KAA2BR,IAAjC;AACA,QAAMS,UAAU,GAAG,oBAASV,IAAT,EAAe,IAAf,CAAnB;AACA,MAAIW,cAAJ;AACA,MAAIC,QAAQ,GAAGC,gBAAEC,aAAF,CAAgBJ,UAAhB,IAA8B,CAA9B,GAAkC,CAAjD;;AAEA,MAAIT,IAAI,CAACc,aAAT,EAAwB;AACtBX,IAAAA,aAAa,CAACY,IAAd;AACEH,oBAAEI,cAAF;AACEJ,oBAAEK,UAAF,CAAa,IAAb,CADF;AAEEL,oBAAEM,eAAF,CAAkBlB,IAAI,CAACc,aAAL,CAAmBK,GAAnB,CAAuB,CAAAC,IAAI,KAAIR,gBAAES,aAAF,CAAgBD,IAAhB,CAA/B,CAAlB,CAFF,CADF;;;AAMD;;AAED,MAAIR,gBAAEU,kBAAF,CAAqBb,UAArB,CAAJ,EAAsC;AACpC,UAAMc,eAAe,GAAGd,UAAU,CAACJ,UAAX,CAAsBmB,SAAtB;AACtB,KAAAC,IAAI,KAAIA,IAAI,CAACnB,GAAL,IAAYmB,IAAI,CAACnB,GAAL,CAASoB,KAAT,KAAmB,YADjB,CAAxB;;;AAIAf,IAAAA,QAAQ,GAAGF,UAAU,CAACJ,UAAX,CAAsBsB,MAAjC;;AAEA,QAAIJ,eAAe,GAAG,CAAC,CAAvB,EAA0B;AACxBb,MAAAA,cAAc,GAAGD,UAAU,CAACJ,UAAX,CAAsBkB,eAAtB,CAAjB;AACAd,MAAAA,UAAU,CAACJ,UAAX,CAAsBuB,MAAtB,CAA6BL,eAA7B,EAA8C,CAA9C;AACAZ,MAAAA,QAAQ;AACT;AACF;;AAED,QAAMkB,oBAAoB,GAAGjB,gBAAEkB,mBAAF;AAC3BlB,kBAAEmB,cAAF;AACE;AACE7B,EAAAA,IADF;AAEG,4CAFH;AAGE,qBAHF,CADF;;AAME;AACEU,kBAAEK,UAAF,CAAa,KAAb,CADF;AAEEjB,EAAAA,IAAI,CAACoB,IAFP;AAGET,EAAAA,QAAQ,GAAGC,gBAAEoB,uBAAF,CAA0B,EAA1B,EAA8BvB,UAA9B,CAAH,GAA+CG,gBAAEqB,WAAF,EAHzD;AAIEvB,EAAAA,cAAc,GAAGA,cAAc,CAACgB,KAAlB,GAA0Bd,gBAAEqB,WAAF,EAJ1C;AAKEzB,EAAAA,IAAI,IAAIA,IAAI,CAACmB,MAAb,GAAsBf,gBAAEM,eAAF,CAAkBV,IAAlB,CAAtB,GAAgDI,gBAAEqB,WAAF,EALlD;AAME9B,EAAAA,aAAa,CAACwB,MAAd;AACIf,kBAAEsB,gBAAF,CAAmB/B,aAAnB,CADJ;AAEIS,kBAAEqB,WAAF,EARN;AASE/B,EAAAA,IAAI,CAACiC,uBATP;AAUE7B,EAAAA,GAVF;AAWE,KAAG,kCAAuBP,IAAvB,CAXL,CANF,CAD2B,CAA7B;;;;;AAuBAA,EAAAA,IAAI,CAACqC,WAAL,CAAiB,mCAAqBP,oBAArB,EAA2C7B,IAA3C,CAAjB;AACD","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport { importDefault } from \"@marko/babel-utils\";\nimport { getAttrs, buildEventHandlerArray } from \"./util\";\nimport withPreviousLocation from \"../util/with-previous-location\";\n\nexport default function (path) {\n const {\n node,\n hub: { file }\n } = path;\n const tagProperties = (path.node.extra && path.node.extra.properties) || [];\n const { key, arguments: args } = node;\n const foundAttrs = getAttrs(path, true);\n let renderBodyProp;\n let attrsLen = t.isNullLiteral(foundAttrs) ? 0 : 1;\n\n if (node.preserveAttrs) {\n tagProperties.push(\n t.objectProperty(\n t.identifier(\"pa\"),\n t.arrayExpression(node.preserveAttrs.map(name => t.stringLiteral(name)))\n )\n );\n }\n\n if (t.isObjectExpression(foundAttrs)) {\n const renderBodyIndex = foundAttrs.properties.findIndex(\n prop => prop.key && prop.key.value === \"renderBody\"\n );\n\n attrsLen = foundAttrs.properties.length;\n\n if (renderBodyIndex > -1) {\n renderBodyProp = foundAttrs.properties[renderBodyIndex];\n foundAttrs.properties.splice(renderBodyIndex, 1);\n attrsLen--;\n }\n }\n\n const dynamicTagRenderCall = t.expressionStatement(\n t.callExpression(\n importDefault(\n file,\n `marko/src/runtime/helpers/dynamic-tag.js`,\n \"marko_dynamic_tag\"\n ),\n [\n t.identifier(\"out\"),\n node.name,\n attrsLen ? t.arrowFunctionExpression([], foundAttrs) : t.nullLiteral(),\n renderBodyProp ? renderBodyProp.value : t.nullLiteral(),\n args && args.length ? t.arrayExpression(args) : t.nullLiteral(),\n tagProperties.length\n ? t.objectExpression(tagProperties)\n : t.nullLiteral(),\n file._componentDefIdentifier,\n key,\n ...buildEventHandlerArray(path)\n ]\n )\n );\n\n path.replaceWith(withPreviousLocation(dynamicTagRenderCall, node));\n}\n"],"file":"dynamic-tag.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tag/index.js"],"names":["enter","path","tagDef","translator","node","hook","t","attr","get","isMarkoAttribute","attributeTranslators","hub","file","markoOpts","ignoreUnrecognizedTags","forEach","child","set","stringLiteral","slice","resolveKey","exit","isUnknownDynamic","isDynamicNullable","name","types","findDynamicTagTypes","string","component","isIdentifier","tagIdentifier","scope","generateUidIdentifier","insertBefore","variableDeclaration","variableDeclarator","replaceWith","empty","_isDynamicString","HANDLE_BINDINGS","root","pending","pop","type","push","binding","getBinding","includes","kind","importSourcePath","parentPath","isStringLiteral","isMarkoFile","initialValue","assignments","constantViolations","length","assignment","operator","request","nodePath","extname","test"],"mappings":"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","sourcesContent":["import nodePath from \"path\";\nimport { types as t } from \"@marko/compiler\";\nimport {\n getTagDef,\n isDynamicTag,\n isAttributeTag,\n isMacroTag,\n isNativeTag,\n findAttributeTags,\n assertNoVar\n} from \"@marko/babel-utils\";\nimport nativeTag from \"./native-tag\";\nimport dynamicTag from \"./dynamic-tag\";\nimport attributeTag from \"./attribute-tag\";\nimport customTag from \"./custom-tag\";\nimport macroTag from \"./macro-tag\";\nimport attributeTranslators from \"./attribute\";\nimport { getKeyManager } from \"../util/key-manager\";\nimport { enter, exit } from \"../util/plugin-hooks\";\nimport { optimizeStaticVDOM } from \"../util/optimize-vdom-create\";\n\nexport default {\n enter(path) {\n const tagDef = getTagDef(path);\n\n if (tagDef && tagDef.translator) {\n const { node } = path;\n enter(tagDef.translator.hook, path, t);\n\n if (path.node !== node) {\n return;\n }\n }\n\n assertNoVar(path);\n\n for (const attr of path.get(\"attributes\")) {\n if (attr.isMarkoAttribute()) {\n const { node } = path;\n attributeTranslators.enter(attr);\n if (path.node !== node) {\n return;\n }\n }\n }\n\n if (path.hub.file.markoOpts.ignoreUnrecognizedTags && !tagDef) {\n findAttributeTags(path).forEach(child => {\n child.set(\n \"name\",\n t.stringLiteral(`at_${child.get(\"name.value\").node.slice(1)}`)\n );\n });\n }\n\n if (!isAttributeTag(path)) {\n getKeyManager(path).resolveKey(path);\n }\n\n optimizeStaticVDOM(path);\n },\n exit(path) {\n let isUnknownDynamic = false;\n let isDynamicNullable = false;\n\n if (isDynamicTag(path)) {\n const name = path.get(\"name\");\n const types = findDynamicTagTypes(name);\n if (types && !(types.string && types.component)) {\n if (!name.isIdentifier()) {\n const tagIdentifier = path.scope.generateUidIdentifier(`tagName`);\n path.insertBefore(\n t.variableDeclaration(\"const\", [\n t.variableDeclarator(tagIdentifier, name.node)\n ])\n );\n\n name.replaceWith(tagIdentifier);\n }\n\n isDynamicNullable = types.empty;\n path.node._isDynamicString = types.string;\n } else {\n isUnknownDynamic = true;\n }\n }\n\n for (const attr of path.get(\"attributes\")) {\n if (attr.isMarkoAttribute()) {\n const { node } = path;\n attributeTranslators.exit(attr);\n if (path.node !== node) {\n return;\n }\n }\n }\n\n if (isUnknownDynamic) {\n return dynamicTag(path);\n }\n\n if (isAttributeTag(path)) {\n return attributeTag(path);\n }\n\n if (isMacroTag(path)) {\n return macroTag(path);\n }\n\n const tagDef = getTagDef(path);\n\n if (tagDef && tagDef.translator) {\n const { node } = path;\n\n exit(tagDef.translator.hook, path, t);\n\n if (path.node !== node) {\n return;\n }\n }\n\n if (isNativeTag(path)) {\n return nativeTag(path, isDynamicNullable);\n } else {\n return customTag(path, isDynamicNullable);\n }\n }\n};\n\nconst HANDLE_BINDINGS = [\"module\", \"var\", \"let\", \"const\"];\nfunction findDynamicTagTypes(root) {\n const pending = [root];\n const types = {\n string: false,\n empty: false,\n component: false\n };\n\n let path;\n while ((path = pending.pop())) {\n switch (path.type) {\n case \"ConditionalExpression\":\n pending.push(path.get(\"consequent\"));\n\n if (path.get(\"alternate\").node) {\n pending.push(path.get(\"alternate\"));\n }\n break;\n\n case \"LogicalExpression\":\n if (path.get(\"operator\").node === \"||\") {\n pending.push(path.get(\"left\"));\n } else {\n types.empty = true;\n }\n\n pending.push(path.get(\"right\"));\n break;\n\n case \"AssignmentExpression\":\n pending.push(path.get(\"right\"));\n break;\n\n case \"BinaryExpression\":\n if (path.get(\"operator\").node !== \"+\") {\n return false;\n }\n\n types.string = true;\n break;\n\n case \"StringLiteral\":\n case \"TemplateLiteral\":\n types.string = true;\n break;\n\n case \"NullLiteral\":\n types.empty = true;\n break;\n\n case \"Identifier\":\n if (path.get(\"name\").node === \"undefined\") {\n types.empty = true;\n } else {\n const binding = path.scope.getBinding(path.node.name);\n\n if (!binding || !HANDLE_BINDINGS.includes(binding.kind)) {\n return false;\n }\n\n if (binding.kind === \"module\") {\n const importSourcePath = binding.path.parentPath.get(\"source\");\n if (\n importSourcePath.isStringLiteral() &&\n isMarkoFile(importSourcePath.get(\"value\").node)\n ) {\n types.component = true;\n } else {\n return false;\n }\n } else {\n const initialValue = binding.path.get(\"init\");\n if (initialValue.node) {\n pending.push(initialValue);\n } else {\n types.empty = true;\n }\n\n const assignments = binding.constantViolations;\n if (assignments && assignments.length) {\n for (const assignment of assignments) {\n const operator = assignment.get(\"operator\").node;\n if (operator === \"=\") {\n pending.push(assignment.get(\"right\"));\n } else if (operator === \"+=\") {\n types.string = true;\n } else {\n return false;\n }\n }\n }\n }\n }\n break;\n\n default:\n return false;\n }\n }\n\n return types;\n}\n\nfunction isMarkoFile(request) {\n return nodePath.extname(request) === \".marko\" || /^<.*>$/.test(request);\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tag/macro-tag.js"],"names":["path","node","name","_isMacroTagCall","requeue"],"mappings":"kEAAA;;AAEe,kBAAUA,IAAV,EAAgB;AAC7B,gCAAaA,IAAb;AACAA,EAAAA,IAAI,CAACC,IAAL,CAAUC,IAAV,GAAiB,oCAAmBF,IAAnB,CAAjB;AACAA,EAAAA,IAAI,CAACC,IAAL,CAAUE,eAAV,GAA4B,IAA5B;AACAH,EAAAA,IAAI,CAACI,OAAL;AACD","sourcesContent":["import { assertNoArgs, getMacroIdentifier } from \"@marko/babel-utils\";\n\nexport default function (path) {\n assertNoArgs(path);\n path.node.name = getMacroIdentifier(path);\n path.node._isMacroTagCall = true;\n path.requeue();\n}\n"],"file":"macro-tag.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tag/native-tag.js"],"names":["path","isNullable","hub","file","markoOpts","ignoreUnrecognizedTags","output"],"mappings":"uJAAA;AACA;AACA;;;;;;AAMe,kBAAUA,IAAV,EAAgBC,UAAhB,EAA4B;AACzC,QAAM;AACJC,IAAAA,GAAG,EAAE,EAAEC,IAAF,EADD;AAEFH,EAAAA,IAFJ;AAGA,QAAM,EAAEI,SAAF,KAAgBD,IAAtB;;AAEA,MAAI,CAACC,SAAS,CAACC,sBAAf,EAAuC;AACrC,kCAAaL,IAAb;AACA,oCAAeA,IAAf;AACA,2CAAsBA,IAAtB;AACD;;AAED,MAAII,SAAS,CAACE,MAAV,KAAqB,MAAzB,EAAiC;AAC/B,gCAAcN,IAAd,EAAoBC,UAApB;AACD,GAFD,MAEO;AACL,gCAAcD,IAAd,EAAoBC,UAApB;AACD;AACF","sourcesContent":["import nativeTagHtml from \"./native-tag[html]\";\nimport nativeTagVdom from \"./native-tag[vdom]\";\nimport {\n assertNoAttributeTags,\n assertNoParams,\n assertNoArgs\n} from \"@marko/babel-utils\";\n\nexport default function (path, isNullable) {\n const {\n hub: { file }\n } = path;\n const { markoOpts } = file;\n\n if (!markoOpts.ignoreUnrecognizedTags) {\n assertNoArgs(path);\n assertNoParams(path);\n assertNoAttributeTags(path);\n }\n\n if (markoOpts.output === \"html\") {\n nativeTagHtml(path, isNullable);\n } else {\n nativeTagVdom(path, isNullable);\n }\n}\n"],"file":"native-tag.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/tag/native-tag[html]/attributes.js"],"names":["path","attrs","length","t","stringLiteral","len","some","attr","node","name","attrsObject","objectExpression","i","value","properties","push","objectProperty","mergeSpread","callExpression","hub","file","isSpreadElement","argument","quasis","expressions","attrValues","Map","curString","has","confident","computed","set","reverse","join","isObjectExpression","prop","spreadElement"],"mappings":"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","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport { normalizeTemplateString, importDefault } from \"@marko/babel-utils\";\nimport attrHelper from \"marko/src/runtime/html/helpers/attr\";\nimport { evaluateAttr } from \"../util\";\n\nexport default function (path, attrs) {\n if (!attrs.length) return t.stringLiteral(\"\");\n\n const len = attrs.length;\n if (len === 0) return t.stringLiteral(\"\");\n\n if (attrs.some(attr => !attr.node.name)) {\n const attrsObject = t.objectExpression([]);\n for (let i = 0; i < len; i++) {\n const {\n node: { name, value }\n } = attrs[i];\n\n if (name) {\n attrsObject.properties.push(\n t.objectProperty(t.stringLiteral(name), value)\n );\n } else {\n mergeSpread(attrsObject.properties, value);\n }\n }\n\n return t.callExpression(\n importDefault(\n path.hub.file,\n \"marko/src/runtime/html/helpers/attrs.js\",\n \"marko_attrs\"\n ),\n [\n attrsObject.properties.length === 1 &&\n t.isSpreadElement(attrsObject.properties[0])\n ? attrsObject.properties[0].argument\n : attrsObject\n ]\n );\n } else {\n const file = path.hub.file;\n const quasis = [];\n const expressions = [];\n const attrValues = new Map();\n let curString = \"\";\n\n // Remove duplicate attrs so last one wins.\n for (let i = len; i--; ) {\n const attr = attrs[i];\n const { name, value } = attr.node;\n if (attrValues.has(name)) continue;\n const { confident, computed } = evaluateAttr(attr);\n attrValues.set(name, {\n confident,\n computed,\n value\n });\n }\n\n for (const [name, { confident, computed, value }] of [\n ...attrValues\n ].reverse()) {\n if (confident) {\n if (computed == null || computed === false) {\n continue;\n }\n\n curString += attrHelper(name, computed);\n } else {\n quasis.push(curString);\n curString = \"\";\n expressions.push(\n t.callExpression(\n importDefault(\n file,\n \"marko/src/runtime/html/helpers/attr.js\",\n \"marko_attr\"\n ),\n [t.stringLiteral(name), value]\n )\n );\n }\n }\n\n quasis.push(curString);\n\n if (expressions.length) {\n return normalizeTemplateString(quasis, ...expressions);\n } else {\n return t.stringLiteral(quasis.join(\"\"));\n }\n }\n}\n\nfunction mergeSpread(properties, value) {\n if (t.isObjectExpression(value)) {\n for (const prop of value.properties) {\n if (t.isSpreadElement(prop)) {\n mergeSpread(properties, prop.argument);\n } else {\n properties.push(prop);\n }\n }\n } else {\n properties.push(t.spreadElement(value));\n }\n}\n"],"file":"attributes.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/tag/native-tag[html]/index.js"],"names":["EMPTY_OBJECT","path","isNullable","hub","file","node","key","name","body","handlers","tagProperties","extra","properties","tagDef","meta","metadata","marko","parseOptions","import","deps","push","dir","Object","entries","forEach","eventName","arguments","args","once","delegateArgs","t","stringLiteral","booleanLiteral","length","arrayExpression","slice","objectProperty","callExpression","memberExpression","_componentDefIdentifier","identifier","isHTML","markoOpts","output","dataMarko","preserveAttrs","map","hasStatefulTagParams","hasComponentBrowser","hasComponent","isPreserved","dataMarkoArgs","objectExpression","numericLiteral","translatedAttrs","get","isSelfClosing","openTagEnding","isStringLiteral","htmlType","SELF_CLOSING","voidElements","indexOf","value","isEmpty","writeStartNode","ifStatement","expressionStatement","_componentInstanceIdentifier","replaceWith","needsBlock","childNode","isVariableDeclaration","kind","writeEndNode","replaceWithMultiple","concat","blockStatement","parentTag","parentPath","isMarkoTag"],"mappings":"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","sourcesContent":["import { resolve } from \"path\";\nimport SELF_CLOSING from \"self-closing-tags\";\nimport { types as t } from \"@marko/compiler\";\nimport {\n getTagDef,\n normalizeTemplateString,\n importDefault\n} from \"@marko/babel-utils\";\nimport write from \"../../util/html-out-write\";\nimport { hasUserKey } from \"../../util/key-manager\";\nimport translateAttributes from \"./attributes\";\nimport withPreviousLocation from \"../../util/with-previous-location\";\n\nconst EMPTY_OBJECT = {};\n\n/**\n * Translates the html streaming version of a standard html element.\n */\nexport default function (path, isNullable) {\n const {\n hub: { file },\n node\n } = path;\n const {\n key,\n name,\n body: { body },\n handlers\n } = node;\n const tagProperties = (path.node.extra && path.node.extra.properties) || [];\n const tagDef = getTagDef(path);\n const meta = file.metadata.marko;\n\n if (tagDef) {\n const { parseOptions = EMPTY_OBJECT } = tagDef;\n if (parseOptions.import) {\n // TODO: the taglib should be updated to support this as a top level option.\n file.metadata.marko.deps.push(resolve(tagDef.dir, parseOptions.import));\n }\n }\n\n if (handlers) {\n Object.entries(handlers).forEach(\n ([eventName, { arguments: args, once }]) => {\n const delegateArgs = [t.stringLiteral(eventName), args[0]];\n\n // TODO: look into only sending this if once is true.\n delegateArgs.push(t.booleanLiteral(once));\n\n if (args.length > 1) {\n delegateArgs.push(t.arrayExpression(args.slice(1)));\n }\n\n // TODO: why do we output eventName twice.\n tagProperties.push(\n t.objectProperty(\n t.stringLiteral(`on${eventName}`),\n t.callExpression(\n t.memberExpression(\n file._componentDefIdentifier,\n t.identifier(\"d\")\n ),\n delegateArgs\n )\n )\n );\n }\n );\n }\n\n const isHTML = file.markoOpts.output === \"html\";\n let dataMarko = t.stringLiteral(\"\");\n\n if (node.preserveAttrs) {\n tagProperties.push(\n t.objectProperty(\n t.identifier(\"pa\"),\n t.arrayExpression(node.preserveAttrs.map(name => t.stringLiteral(name)))\n )\n );\n }\n\n if (isHTML) {\n if (\n (!meta.hasStatefulTagParams &&\n (meta.hasComponentBrowser || !meta.hasComponent)) ||\n isPreserved(path)\n ) {\n const dataMarkoArgs = [t.identifier(\"out\"), file._componentDefIdentifier];\n\n if (tagProperties.length) {\n // TODO we should pre evaluate this if it is static.\n dataMarkoArgs.push(t.objectExpression(tagProperties));\n }\n\n if (hasUserKey(path)) {\n if (dataMarkoArgs.length === 2) {\n dataMarkoArgs.push(t.numericLiteral(0));\n }\n\n dataMarkoArgs.push(key, file._componentDefIdentifier);\n }\n\n if (dataMarkoArgs.length > 2) {\n dataMarko = t.callExpression(\n importDefault(\n file,\n \"marko/src/runtime/html/helpers/data-marko.js\",\n \"marko_props\"\n ),\n dataMarkoArgs\n );\n }\n }\n }\n\n const translatedAttrs = translateAttributes(path, path.get(\"attributes\"));\n let isSelfClosing = false;\n let openTagEnding = \">\";\n\n if (t.isStringLiteral(name)) {\n if (\n tagDef &&\n tagDef.htmlType &&\n (tagDef.htmlType === \"svg\" || tagDef.htmlType === \"math\")\n ) {\n if (!body.length) {\n isSelfClosing = true;\n openTagEnding = \" />\";\n }\n } else if (SELF_CLOSING.voidElements.indexOf(name.value) !== -1) {\n isSelfClosing = true;\n }\n }\n\n const isEmpty = isSelfClosing || !body.length;\n let writeStartNode = normalizeTemplateString`<${name}${dataMarko}${translatedAttrs}${openTagEnding}`;\n\n writeStartNode = withPreviousLocation(\n isEmpty && !isSelfClosing\n ? write`${writeStartNode}</${name}>`\n : write`${writeStartNode}`,\n name\n );\n\n if (isNullable) {\n writeStartNode = t.ifStatement(\n name,\n writeStartNode,\n t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier(\"out\"), t.identifier(\"bf\")),\n [\n normalizeTemplateString`f_${key}`,\n file._componentInstanceIdentifier,\n t.numericLiteral(1)\n ]\n )\n )\n );\n }\n\n if (isEmpty) {\n path.replaceWith(writeStartNode);\n return;\n }\n\n let needsBlock;\n for (const childNode of body) {\n if (t.isVariableDeclaration(childNode)) {\n if (childNode.kind === \"const\" || childNode.kind === \"let\") {\n needsBlock = true;\n break;\n }\n }\n }\n\n let writeEndNode = write`</${name}>`;\n\n if (isNullable) {\n writeEndNode = t.ifStatement(\n name,\n writeEndNode,\n t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier(\"out\"), t.identifier(\"ef\")),\n []\n )\n )\n );\n }\n\n path.replaceWithMultiple(\n [writeStartNode]\n .concat(needsBlock ? t.blockStatement(body) : body)\n .concat(writeEndNode)\n );\n}\n\nfunction isPreserved(path) {\n let parentTag = path;\n do {\n parentTag = parentTag.parentPath.parentPath;\n if (parentTag.get(\"isPreserved\").node === true) {\n return true;\n }\n } while (t.isMarkoTag(parentTag));\n\n return false;\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/tag/native-tag[vdom]/index.js"],"names":["SIMPLE_ATTRS","MAYBE_SVG","a","script","style","title","tagArguments","path","isStatic","hub","file","node","parent","name","key","body","handlers","tagProperties","extra","properties","attrs","get","seen","Set","len","length","hasSpread","some","attr","runtimeFlags","i","has","remove","add","confident","computed","set","t","stringLiteral","attrsObj","isNullLiteral","isObjectExpression","isSpreadElement","FLAGS","SPREAD_ATTRS","callExpression","writeArgs","nullLiteral","_componentInstanceIdentifier","numericLiteral","preserveAttrs","push","objectProperty","identifier","arrayExpression","map","Object","entries","forEach","eventName","arguments","args","once","delegateArgs","booleanLiteral","slice","memberExpression","_componentDefIdentifier","every","n","isPropertyName","HAS_SIMPLE_ATTRS","tagDef","htmlType","IS_CUSTOM_ELEMENT","isMarkoTag","IS_SVG","IS_TEXTAREA","objectExpression","isNullable","isEmpty","writeStartNode","ifStatement","expressionStatement","replaceWith","writeEndNode","needsBlock","childNode","isVariableDeclaration","kind","replaceWithMultiple","concat","blockStatement","names","isStringLiteral","includes","value","isIdentifier"],"mappings":"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","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport write from \"../../util/vdom-out-write\";\nimport * as FLAGS from \"../../util/runtime-flags\";\nimport { getAttrs, evaluateAttr } from \"../util\";\nimport {\n getTagDef,\n normalizeTemplateString,\n importDefault\n} from \"@marko/babel-utils\";\nimport withPreviousLocation from \"../../util/with-previous-location\";\n\nconst SIMPLE_ATTRS = [\"id\", \"class\", \"style\"];\nconst MAYBE_SVG = {\n a: true,\n script: true,\n style: true,\n title: true\n};\n\nexport function tagArguments(path, isStatic) {\n const {\n hub: { file },\n node,\n parent\n } = path;\n const {\n name,\n key,\n body: { body },\n handlers\n } = node;\n const tagProperties = (path.node.extra && path.node.extra.properties) || [];\n const attrs = path.get(\"attributes\");\n const seen = new Set();\n const len = attrs.length;\n const hasSpread = attrs.some(attr => !attr.node.name);\n let runtimeFlags = 0;\n\n for (let i = len; i--; ) {\n const attr = attrs[i];\n const { name } = attr.node;\n if (seen.has(name)) {\n if (!hasSpread) attr.remove();\n }\n\n seen.add(name);\n const { confident, computed } = evaluateAttr(attr);\n\n if (confident) {\n if (computed == null || computed === false) {\n if (!hasSpread) attr.remove();\n } else {\n attr.set(\"value\", t.stringLiteral(computed));\n }\n }\n }\n\n let attrsObj = getAttrs(path, true, true);\n\n if (!t.isNullLiteral(attrsObj)) {\n if (\n !t.isObjectExpression(attrsObj) ||\n attrsObj.properties.some(t.isSpreadElement)\n ) {\n runtimeFlags |= FLAGS.SPREAD_ATTRS;\n attrsObj = t.callExpression(\n importDefault(\n file,\n \"marko/src/runtime/vdom/helpers/attrs.js\",\n \"marko_attrs\"\n ),\n [attrsObj]\n );\n }\n }\n\n const writeArgs = [\n name,\n attrsObj,\n !key && isStatic ? t.nullLiteral() : key,\n isStatic ? t.nullLiteral() : file._componentInstanceIdentifier,\n isStatic\n ? t.numericLiteral(body.length)\n : body.length\n ? t.nullLiteral()\n : t.numericLiteral(0)\n ];\n\n if (node.preserveAttrs) {\n tagProperties.push(\n t.objectProperty(\n t.identifier(\"pa\"),\n t.arrayExpression(node.preserveAttrs.map(name => t.stringLiteral(name)))\n )\n );\n }\n\n if (handlers) {\n Object.entries(handlers).forEach(\n ([eventName, { arguments: args, once }]) => {\n const delegateArgs = [t.stringLiteral(eventName), args[0]];\n\n // TODO: look into only sending this if once is true.\n delegateArgs.push(t.booleanLiteral(once));\n\n if (args.length > 1) {\n delegateArgs.push(t.arrayExpression(args.slice(1)));\n }\n\n // TODO: why do we output eventName twice.\n tagProperties.push(\n t.objectProperty(\n t.stringLiteral(`on${eventName}`),\n t.callExpression(\n t.memberExpression(\n file._componentDefIdentifier,\n t.identifier(\"d\")\n ),\n delegateArgs\n )\n )\n );\n }\n );\n }\n\n if (\n t.isObjectExpression(attrsObj) &&\n attrsObj.properties.every(n => isPropertyName(n, SIMPLE_ATTRS)) &&\n !node.preserveAttrs\n ) {\n runtimeFlags |= FLAGS.HAS_SIMPLE_ATTRS;\n }\n\n const tagDef = getTagDef(path);\n\n if (tagDef) {\n const { htmlType, name } = tagDef;\n if (htmlType === \"custom-element\") {\n runtimeFlags |= FLAGS.IS_CUSTOM_ELEMENT;\n } else if (\n htmlType === \"svg\" ||\n (MAYBE_SVG[name] &&\n t.isMarkoTag(parent) &&\n parent.tagDef &&\n parent.tagDef.htmlType === \"svg\")\n ) {\n runtimeFlags |= FLAGS.IS_SVG;\n } else if (name === \"textarea\") {\n runtimeFlags |= FLAGS.IS_TEXTAREA;\n }\n }\n\n writeArgs.push(t.numericLiteral(runtimeFlags));\n\n if (tagProperties.length) {\n writeArgs.push(t.objectExpression(tagProperties));\n }\n return writeArgs;\n}\n\n/**\n * Translates the html streaming version of a standard html element.\n */\nexport default function (path, isNullable) {\n const { node } = path;\n const {\n name,\n key,\n body: { body }\n } = node;\n\n const isEmpty = !body.length;\n const writeArgs = tagArguments(path, false);\n let writeStartNode = withPreviousLocation(\n write(isEmpty ? \"e\" : \"be\", ...writeArgs),\n node.name\n );\n\n if (isNullable) {\n writeStartNode = t.ifStatement(\n name,\n writeStartNode,\n t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier(\"out\"), t.identifier(\"bf\")),\n [\n normalizeTemplateString`f_${key}`,\n path.hub.file._componentInstanceIdentifier\n ]\n )\n )\n );\n }\n\n if (isEmpty) {\n path.replaceWith(writeStartNode);\n return;\n }\n\n let writeEndNode = write(\"ee\");\n if (isNullable) {\n writeEndNode = t.ifStatement(\n name,\n writeEndNode,\n t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier(\"out\"), t.identifier(\"ef\")),\n []\n )\n )\n );\n }\n\n let needsBlock;\n for (const childNode of body) {\n if (t.isVariableDeclaration(childNode)) {\n if (childNode.kind === \"const\" || childNode.kind === \"let\") {\n needsBlock = true;\n break;\n }\n }\n }\n\n path.replaceWithMultiple(\n [writeStartNode]\n .concat(needsBlock ? t.blockStatement(body) : body)\n .concat(writeEndNode)\n );\n}\n\nfunction isPropertyName({ key }, names) {\n if (t.isStringLiteral(key)) {\n return names.includes(key.value);\n } else if (t.isIdentifier(key)) {\n return names.includes(key.name);\n }\n}\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tag/util.js"],"names":["getAttrs","path","preserveNames","skipRenderBody","node","attributes","body","params","hasDynamicAttrTags","attrsLen","length","childLen","properties","targetObjects","tagDef","foundProperties","i","name","value","attrDef","getAttribute","targetProperties","targetProperty","preserveName","key","removeDashes","dynamicAttribute","targetObject","push","t","objectProperty","stringLiteral","objectExpression","camelCase","mergeSpread","endDynamicAttrTagsIndex","findLastIndex","insertBefore","slice","map","child","skip","arrowFunctionExpression","identifier","blockStatement","forEachAttribute","attr","defaultValue","undefined","required","get","buildCodeFrameError","nullLiteral","isSpreadElement","argument","buildEventHandlerArray","handlers","arrayExpression","Object","entries","eventName","arguments","args","once","parts","booleanLiteral","evaluateAttr","confident","computed","isRegExpLiteral","evaluated","evaluate","string","replace","_","letter","toUpperCase","arr","check","isObjectExpression","prop","spreadElement"],"mappings":"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","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport { getTagDef } from \"@marko/babel-utils\";\n\nexport function getAttrs(path, preserveNames, skipRenderBody) {\n const { node } = path;\n const {\n attributes,\n body: { body, params },\n hasDynamicAttrTags\n } = node;\n const attrsLen = attributes.length;\n const childLen = body.length;\n const properties = [];\n const targetObjects = {};\n const tagDef = getTagDef(path);\n const foundProperties = {};\n\n for (let i = 0; i < attrsLen; i++) {\n const { name, value } = attributes[i];\n\n if (name) {\n const attrDef = tagDef && tagDef.getAttribute(name);\n let targetProperties = properties;\n let targetProperty = name;\n let preserveName = preserveNames;\n\n if (attrDef) {\n if (attrDef.targetProperty) {\n const key = attrDef.targetProperty;\n preserveName =\n attrDef.preserveName !== false && attrDef.removeDashes !== true;\n\n if (attrDef.dynamicAttribute) {\n let targetObject = targetObjects[key];\n\n if (!targetObject) {\n properties.push(\n t.objectProperty(\n t.stringLiteral(key),\n (targetObject = targetObjects[key] = t.objectExpression([]))\n )\n );\n }\n\n targetProperties = targetObject.properties;\n } else {\n targetProperty = key;\n }\n } else if (\n !preserveName &&\n (attrDef.preserveName === true || attrDef.removeDashes === false)\n ) {\n preserveName = true;\n }\n }\n\n if (!preserveName) {\n targetProperty = camelCase(targetProperty);\n }\n\n foundProperties[targetProperty] = true;\n targetProperties.push(\n t.objectProperty(t.stringLiteral(targetProperty), value)\n );\n } else {\n mergeSpread(properties, value);\n }\n }\n\n if (!skipRenderBody && childLen) {\n let endDynamicAttrTagsIndex = -1;\n\n if (hasDynamicAttrTags) {\n endDynamicAttrTagsIndex = findLastIndex(\n body,\n ({ value }) => value === \"END_ATTRIBUTE_TAGS\"\n );\n path\n .insertBefore(body.slice(0, endDynamicAttrTagsIndex))\n .map(child => child.skip());\n }\n\n if (!hasDynamicAttrTags || endDynamicAttrTagsIndex !== childLen - 1) {\n properties.push(\n t.objectProperty(\n t.stringLiteral(\"renderBody\"),\n t.arrowFunctionExpression(\n [t.identifier(\"out\"), ...params],\n t.blockStatement(\n hasDynamicAttrTags\n ? body.slice(endDynamicAttrTagsIndex + 1)\n : body\n )\n )\n )\n );\n }\n }\n\n // Default parameters\n tagDef &&\n tagDef.forEachAttribute &&\n tagDef.forEachAttribute(attr => {\n if (foundProperties[attr.name] || attr.dynamicAttribute) {\n return;\n }\n\n if (attr.defaultValue !== undefined) {\n properties.push(\n t.objectProperty(\n t.stringLiteral(attr.name),\n t.stringLiteral(attr.defaultValue + \"\")\n )\n );\n } else if (attr.required) {\n throw path\n .get(\"name\")\n .buildCodeFrameError(`The \"${attr.name}\" attribute is required.`);\n }\n });\n\n if (properties.length === 0) {\n return t.nullLiteral();\n }\n\n if (properties.length === 1 && t.isSpreadElement(properties[0])) {\n return properties[0].argument;\n }\n\n return t.objectExpression(properties);\n}\n\nexport function buildEventHandlerArray(path) {\n const { handlers } = path.node;\n if (!handlers) {\n return [];\n }\n\n return [\n t.arrayExpression(\n Object.entries(handlers).map(([eventName, { arguments: args, once }]) => {\n const parts = [\n t.stringLiteral(eventName),\n args[0],\n t.booleanLiteral(once)\n ];\n\n if (args.length > 1) {\n parts.push(t.arrayExpression(args.slice(1)));\n }\n\n return t.arrayExpression(parts);\n })\n )\n ];\n}\n\nexport function evaluateAttr(attr) {\n const name = attr.get(\"name\").node;\n const value = attr.get(\"value\");\n let confident = false;\n let computed = undefined;\n\n if (name) {\n if (value.isRegExpLiteral()) {\n confident = true;\n computed = value.get(\"pattern\").node;\n } else {\n const evaluated = value.evaluate();\n ({ confident, value: computed } = evaluated);\n\n if (computed === true) {\n computed = \"\";\n } else if (computed != null && computed !== false) {\n computed = computed + \"\";\n }\n }\n }\n\n return {\n confident,\n computed\n };\n}\n\nfunction camelCase(string) {\n return string.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n\nfunction findLastIndex(arr, check) {\n for (let i = arr.length; i--; ) {\n if (check(arr[i])) {\n return i;\n }\n }\n}\n\nfunction mergeSpread(properties, value) {\n if (t.isObjectExpression(value)) {\n for (const prop of value.properties) {\n if (t.isSpreadElement(prop)) {\n mergeSpread(properties, prop.argument);\n } else {\n properties.push(prop);\n }\n }\n } else {\n properties.push(t.spreadElement(value));\n }\n}\n"],"file":"util.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/taglib/core/conditional/translate-else-if.js"],"names":["exit","path","ifStatement","arguments","args","node","get","buildCodeFrameError","alternate","remove"],"mappings":"2DAAA;AACA;;AAEO,SAASA,IAAT,CAAcC,IAAd,EAAoB;AACzB,sCAAmBA,IAAnB;;AAEA,QAAM,EAAEC,WAAF,EAAeC,SAAS,EAAEC,IAA1B,KAAmCH,IAAI,CAACI,IAA9C;;AAEA,MAAI,CAACH,WAAL,EAAkB;AAChB,UAAMD,IAAI;AACPK,IAAAA,GADG,CACC,MADD;AAEHC,IAAAA,mBAFG;AAGF,sEAHE,CAAN;;AAKD;;AAEDL,EAAAA,WAAW,CAACM,SAAZ,GAAwB,4BAAiBP,IAAjB,EAAuBG,IAAvB,CAAxB;AACAH,EAAAA,IAAI,CAACQ,MAAL;AACD","sourcesContent":["import { assertNoAttributes } from \"@marko/babel-utils\";\nimport { buildIfStatement } from \"./util\";\n\nexport function exit(path) {\n assertNoAttributes(path);\n\n const { ifStatement, arguments: args } = path.node;\n\n if (!ifStatement) {\n throw path\n .get(\"name\")\n .buildCodeFrameError(\n \"Invalid 'else-if' tag, expected preceding 'if' or 'else-if' tag.\"\n );\n }\n\n ifStatement.alternate = buildIfStatement(path, args);\n path.remove();\n}\n"],"file":"translate-else-if.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/taglib/core/conditional/translate-else.js"],"names":["exit","path","ifStatement","body","node","get","buildCodeFrameError","alternate","t","blockStatement","remove"],"mappings":"2DAAA;AACA;;AAEO,SAASA,IAAT,CAAcC,IAAd,EAAoB;AACzB,gCAAaA,IAAb;AACA,sCAAmBA,IAAnB;;AAEA,QAAM;AACJC,IAAAA,WADI;AAEJC,IAAAA,IAAI,EAAE,EAAEA,IAAF,EAFF;AAGFF,EAAAA,IAAI,CAACG,IAHT;;AAKA,MAAI,CAACF,WAAL,EAAkB;AAChB,UAAMD,IAAI;AACPI,IAAAA,GADG,CACC,MADD;AAEHC,IAAAA,mBAFG;AAGF,mEAHE,CAAN;;AAKD;;AAEDJ,EAAAA,WAAW,CAACK,SAAZ,GAAwBC,gBAAEC,cAAF,CAAiBN,IAAjB,CAAxB;AACAF,EAAAA,IAAI,CAACS,MAAL;AACD","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport { assertNoArgs, assertNoAttributes } from \"@marko/babel-utils\";\n\nexport function exit(path) {\n assertNoArgs(path);\n assertNoAttributes(path);\n\n const {\n ifStatement,\n body: { body }\n } = path.node;\n\n if (!ifStatement) {\n throw path\n .get(\"name\")\n .buildCodeFrameError(\n \"Invalid 'else' tag, expected preceding 'if' or 'else-if' tag.\"\n );\n }\n\n ifStatement.alternate = t.blockStatement(body);\n path.remove();\n}\n"],"file":"translate-else.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/taglib/core/conditional/translate-if.js"],"names":["exit","path","replaceWith","node","arguments"],"mappings":"2DAAA;AACA;;AAEO,SAASA,IAAT,CAAcC,IAAd,EAAoB;AACzB,sCAAmBA,IAAnB;AACAA,EAAAA,IAAI,CAACC,WAAL,CAAiB,4BAAiBD,IAAjB,EAAuBA,IAAI,CAACE,IAAL,CAAUC,SAAjC,CAAjB;AACD","sourcesContent":["import { assertNoAttributes } from \"@marko/babel-utils\";\nimport { buildIfStatement } from \"./util\";\n\nexport function exit(path) {\n assertNoAttributes(path);\n path.replaceWith(buildIfStatement(path, path.node.arguments));\n}\n"],"file":"translate-if.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/taglib/core/conditional/util.js"],"names":["buildIfStatement","path","args","length","name","get","buildCodeFrameError","node","value","ifStatement","t","sequenceExpression","blockStatement","body","nextPath","getNextSibling","isMarkoTag","nextTagName","isStringLiteral"],"mappings":"wKAAA;AACA;;AAEO,SAASA,gBAAT,CAA0BC,IAA1B,EAAgCC,IAAhC,EAAsC;AAC3C,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B;AACzB,UAAMC,IAAI,GAAGH,IAAI,CAACI,GAAL,CAAS,MAAT,CAAb;AACA,UAAMD,IAAI,CAACE,mBAAL;AACH,iBAAYF,IAAI,CAACG,IAAL,CAAUC,KAAM,qCAAoCJ,IAAI,CAACG,IAAL,CAAUC,KAAM,WAD7E,CAAN;;AAGD;;AAED,QAAMC,WAAW,GAAGC,gBAAED,WAAF;AAClBP,EAAAA,IAAI,CAACC,MAAL,KAAgB,CAAhB,GAAoBD,IAAI,CAAC,CAAD,CAAxB,GAA8BQ,gBAAEC,kBAAF,CAAqBT,IAArB,CADZ;AAElBQ,kBAAEE,cAAF,CAAiBX,IAAI,CAACM,IAAL,CAAUM,IAAV,CAAeA,IAAhC,CAFkB,CAApB;;;AAKA,MAAIC,QAAQ,GAAGb,IAAI,CAACc,cAAL,EAAf;;AAEA;AACA,MAAID,QAAQ,CAACE,UAAT,EAAJ,EAA2B;AACzB,UAAMC,WAAW,GAAGH,QAAQ,CAACT,GAAT,CAAa,MAAb,CAApB;AACA;AACEY,IAAAA,WAAW,CAACC,eAAZ,CAA4B,EAAEV,KAAK,EAAE,MAAT,EAA5B;AACAS,IAAAA,WAAW,CAACC,eAAZ,CAA4B,EAAEV,KAAK,EAAE,SAAT,EAA5B,CAFF;AAGE;AACAM,MAAAA,QAAQ,CAACP,IAAT,CAAcE,WAAd,GAA4BA,WAA5B;AACD;AACF;;AAED,SAAO,mCAAqBA,WAArB,EAAkCR,IAAI,CAACM,IAAvC,CAAP;AACD","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport withPreviousLocation from \"../../../util/with-previous-location\";\n\nexport function buildIfStatement(path, args) {\n if (!args || !args.length) {\n const name = path.get(\"name\");\n throw name.buildCodeFrameError(\n `Invalid '<${name.node.value}>' tag, expected arguments like '<${name.node.value}(test)>'.`\n );\n }\n\n const ifStatement = t.ifStatement(\n args.length === 1 ? args[0] : t.sequenceExpression(args),\n t.blockStatement(path.node.body.body)\n );\n\n let nextPath = path.getNextSibling();\n\n // Provide the if statement to the next part of the if chain.\n if (nextPath.isMarkoTag()) {\n const nextTagName = nextPath.get(\"name\");\n if (\n nextTagName.isStringLiteral({ value: \"else\" }) ||\n nextTagName.isStringLiteral({ value: \"else-if\" })\n ) {\n nextPath.node.ifStatement = ifStatement;\n }\n }\n\n return withPreviousLocation(ifStatement, path.node);\n}\n"],"file":"util.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/taglib/core/index.js"],"names":["parseImport","rootOnly","rawOpenTag","openTagOnly","ignoreAttributes","relaxRequireCommas","autocomplete","displayText","description","snippet","descriptionMoreURL","parseExport","parseClass","parseStatic","parseStyle","transformer","transformStyle","parseMacro","translateMacro","type","translateIncludeContent","attributes","translateIf","translateElseIf","translateElse","translateFor","translateWhile","translateHTMLComment","state","renderer","translateServerOnly","translateBody","translateAwait","parseModuleCode","pattern"],"mappings":"gEAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8E;;AAEe;AACb,eAAa,oBADA;AAEb,cAAY;AACV,oBAAgBA,WADN;AAEV,qBAAiB;AACfC,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,UAAU,EAAE,IAFG;AAGfC,MAAAA,WAAW,EAAE,IAHE;AAIfC,MAAAA,gBAAgB,EAAE,IAJH;AAKfC,MAAAA,kBAAkB,EAAE,IALL,EAFP;;AASVC,IAAAA,YAAY,EAAE;AACZ;AACEC,MAAAA,WAAW,EAAE,8BADf;AAEEC,MAAAA,WAAW;AACT,sFAHJ;AAIEC,MAAAA,OAAO,EAAE,8BAJX;AAKEC,MAAAA,kBAAkB;AAChB,iEANJ,EADY,CATJ,EAFC;;;;AAsBb,cAAY;AACV,oBAAgBC,WADN;AAEV,qBAAiB;AACfV,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,UAAU,EAAE,IAFG;AAGfC,MAAAA,WAAW,EAAE,IAHE;AAIfC,MAAAA,gBAAgB,EAAE,IAJH;AAKfC,MAAAA,kBAAkB,EAAE,IALL,EAFP;;AASVC,IAAAA,YAAY,EAAE;AACZ;AACEC,MAAAA,WAAW,EAAE,gBADf;AAEEC,MAAAA,WAAW;AACT,oGAHJ;AAIEC,MAAAA,OAAO,EAAE,aAJX;AAKEC,MAAAA,kBAAkB;AAChB,iEANJ,EADY,CATJ,EAtBC;;;;AA0Cb,aAAW;AACT,oBAAgBE,UADP;AAET,qBAAiB;AACfX,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,UAAU,EAAE,IAFG;AAGfC,MAAAA,WAAW,EAAE,IAHE;AAIfC,MAAAA,gBAAgB,EAAE,IAJH,EAFR;;AAQTE,IAAAA,YAAY,EAAE;AACZ;AACEC,MAAAA,WAAW,EAAE,qCADf;AAEEE,MAAAA,OAAO,EAAE,kBAFX;AAGED,MAAAA,WAAW;AACT,0GAJJ;AAKEE,MAAAA,kBAAkB;AAChB,yEANJ,EADY,CARL,EA1CE;;;;AA6Db,cAAY;AACV,oBAAgBG,WADN;AAEV,qBAAiB;AACfZ,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,UAAU,EAAE,IAFG;AAGfC,MAAAA,WAAW,EAAE,IAHE;AAIfC,MAAAA,gBAAgB,EAAE,IAJH,EAFP;;AAQVE,IAAAA,YAAY,EAAE;AACZ;AACEC,MAAAA,WAAW,EAAE,oBADf;AAEEC,MAAAA,WAAW;AACT,oFAHJ;AAIEE,MAAAA,kBAAkB,EAAE,oDAJtB,EADY,CARJ,EA7DC;;;;AA8Eb,aAAW;AACT,oBAAgBI,UADP;AAETC,IAAAA,WAAW,EAAEC,cAFJ;AAGT,qBAAiB;AACfd,MAAAA,UAAU,EAAE,IADG,EAHR,EA9EE;;;AAqFb,aAAW;AACT,oBAAgBe,UADP;AAET,sBAAkBC,cAFT;AAGT,aAAS;AACPC,MAAAA,IAAI,EAAE,QADC;AAEPb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW,EAAE,wDADf,EADY,CAFP,EAHA;;;;AAWTF,IAAAA,YAAY,EAAE;AACZ;AACEC,MAAAA,WAAW,EAAE,+BADf;AAEEC,MAAAA,WAAW,EAAE,kDAFf;AAGEC,MAAAA,OAAO,EAAE,6CAHX;AAIEC,MAAAA,kBAAkB,EAAE,2CAJtB,EADY,CAXL,EArFE;;;;AAyGb,oBAAkB;AAChB,sBAAkBU,uBADF;AAEhBC,IAAAA,UAAU,EAAE,EAFI;AAGhBf,IAAAA,YAAY,EAAE;AACZ;AACEC,MAAAA,WAAW,EAAE,wBADf;AAEEC,MAAAA,WAAW,EAAE,mDAFf;AAGEC,MAAAA,OAAO,EAAE,gCAHX;AAIEC,MAAAA,kBAAkB,EAAE,kDAJtB,EADY,CAHE,EAzGL;;;;AAqHb,oBAAkB;AAChB,sBAAkBU,uBADF;AAEhBC,IAAAA,UAAU,EAAE,EAFI;AAGhBf,IAAAA,YAAY,EAAE;AACZ;AACEC,MAAAA,WAAW,EAAE,wBADf;AAEEE,MAAAA,OAAO,EAAE,iCAFX;AAGED,MAAAA,WAAW,EAAE,oDAHf;AAIEE,MAAAA,kBAAkB,EAAE,kDAJtB,EADY,CAHE,EArHL;;;;AAiIb,UAAQ;AACN,sBAAkBY,WADZ;AAEND,IAAAA,UAAU,EAAE,EAFN;AAGNf,IAAAA,YAAY,EAAE;AACZ;AACEG,MAAAA,OAAO,EAAE,oBADX;AAEED,MAAAA,WAAW,EAAE,wDAFf;AAGEE,MAAAA,kBAAkB;AAChB,2DAJJ,EADY,CAHR,EAjIK;;;;AA6Ib,eAAa;AACX,sBAAkBa,eADP;AAEXF,IAAAA,UAAU,EAAE,EAFD;AAGXf,IAAAA,YAAY,EAAE;AACZ;AACEG,MAAAA,OAAO,EAAE,yBADX;AAEED,MAAAA,WAAW;AACT,iHAHJ;AAIEE,MAAAA,kBAAkB;AAChB,2DALJ,EADY,CAHH,EA7IA;;;;AA0Jb,YAAU;AACR,sBAAkBc,aADV;AAERH,IAAAA,UAAU,EAAE,EAFJ;AAGRf,IAAAA,YAAY,EAAE;AACZ;AACEE,MAAAA,WAAW;AACT,+FAFJ;AAGEE,MAAAA,kBAAkB;AAChB,2DAJJ,EADY,CAHN,EA1JG;;;;AAsKb,WAAS;AACP,sBAAkBe,YADX;AAEP,WAAO;AACLN,MAAAA,IAAI,EAAE,YADD;AAELb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW,EAAE,gCADf,EADY,CAFT,EAFA;;;;AAUP,WAAO;AACLW,MAAAA,IAAI,EAAE,YADD;AAELb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW,EAAE,iDADf,EADY,CAFT,EAVA;;;;AAkBP,WAAO;AACLW,MAAAA,IAAI,EAAE,QADD;AAELb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW,EAAE,gDADf,EADY,CAFT,EAlBA;;;;AA0BP,aAAS;AACPW,MAAAA,IAAI,EAAE,QADC;AAEPb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW,EAAE,wDADf,EADY,CAFP,EA1BF;;;;AAkCP,aAAS;AACPW,MAAAA,IAAI,EAAE,QADC;AAEPb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW;AACT,uEAFJ,EADY,CAFP,EAlCF;;;;AA2CPF,IAAAA,YAAY,EAAE;AACZ;AACEG,MAAAA,OAAO,EAAE,sCADX;AAEED,MAAAA,WAAW;AACT,wEAHJ;AAIEE,MAAAA,kBAAkB;AAChB,iEALJ,EADY;;AAQZ;AACED,MAAAA,OAAO,EAAE,sCADX;AAEEC,MAAAA,kBAAkB;AAChB,gFAHJ,EARY;;AAaZ;AACED,MAAAA,OAAO;AACL,wEAFJ;AAGEC,MAAAA,kBAAkB;AAChB,gFAJJ,EAbY,CA3CP,EAtKI;;;;AAsOb,aAAW;AACT,sBAAkBgB,cADT;AAETpB,IAAAA,YAAY,EAAE;AACZ;AACEG,MAAAA,OAAO,EAAE,uBADX;AAEED,MAAAA,WAAW;AACT,gFAHJ;AAIEE,MAAAA,kBAAkB,EAAE,2CAJtB,EADY,CAFL,EAtOE;;;;AAiPb,oBAAkB;AAChB,sBAAkBiB,oBADF;AAEhB,qBAAiB;AACfC,MAAAA,KAAK,EAAE,aADQ,EAFD;;AAKhBP,IAAAA,UAAU,EAAE,EALI;AAMhBf,IAAAA,YAAY,EAAE;AACZ;AACEE,MAAAA,WAAW;AACT,2EAFJ;AAGEE,MAAAA,kBAAkB,EAAE,kDAHtB,EADY,CANE,EAjPL;;;;AA+Pb,iBAAe;AACbmB,IAAAA,QAAQ,EAAE,6CADG;AAEb,UAAM,SAFO;AAGb,UAAM,SAHO;AAIb,UAAM,SAJO;AAKbvB,IAAAA,YAAY,EAAE,EALD,EA/PF;;AAsQb,uBAAqB;AACnB,sBAAkBwB,mBADC;AAEnBD,IAAAA,QAAQ,EAAE,uDAFS;AAGnB,kBAAc,SAHK,EAtQR;;AA2Qb,kCAAgC;AAC9B,sBAAkBC,mBADY;AAE9BD,IAAAA,QAAQ,EAAE,iEAFoB,EA3QnB;;AA+Qb,YAAU;AACR,sBAAkBE,aADV,EA/QG;;AAkRb,aAAW;AACTF,IAAAA,QAAQ,EAAE,4CADD;AAET,sBAAkBG,cAFT;AAGT,kBAAc,YAHL;AAIT,cAAU,QAJD;AAKT,aAAS;AACPb,MAAAA,IAAI,EAAE,QADC;AAEPb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW;AACT,sGAFJ;AAGEC,QAAAA,OAAO,EAAE,kBAHX,EADY,CAFP,EALA;;;;AAeT,gBAAY;AACVU,MAAAA,IAAI,EAAE,QADI;AAEVb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW;AACT,qGAFJ,EADY,CAFJ,EAfH;;;;AAwBT,uBAAmB;AACjBW,MAAAA,IAAI,EAAE,SADW;AAEjBb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW;AACT,iHAFJ,EADY,CAFG,EAxBV;;;;AAiCT,mBAAe;AACbW,MAAAA,IAAI,EAAE,QADO;AAEbb,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW;AACT,+IAFJ,EADY,CAFD,EAjCN;;;;AA0CT,cAAU;AACRF,MAAAA,YAAY,EAAE;AACZ;AACEC,QAAAA,WAAW,EAAE,gBADf;AAEEC,QAAAA,WAAW,EAAE,mDAFf;AAGEC,QAAAA,OAAO,EAAE,mBAHX;AAIEC,QAAAA,kBAAkB,EAAE,2CAJtB,EADY,CADN,EA1CD;;;;AAoDT,eAAW;AACTJ,MAAAA,YAAY,EAAE;AACZ;AACEC,QAAAA,WAAW,EAAE,cADf;AAEEC,QAAAA,WAAW,EAAE,gDAFf;AAGEC,QAAAA,OAAO,EAAE,iBAHX;AAIEC,QAAAA,kBAAkB,EAAE,2CAJtB,EADY,CADL,EApDF;;;;AA8DT,qBAAiB;AACfJ,MAAAA,YAAY,EAAE;AACZ;AACEE,QAAAA,WAAW,EAAE,wDADf;AAEEE,QAAAA,kBAAkB,EAAE,2CAFtB,EADY,CADC,EA9DR;;;;AAsETJ,IAAAA,YAAY,EAAE;AACZ;AACEC,MAAAA,WAAW,EAAE,kBADf;AAEEC,MAAAA,WAAW;AACT,8EAHJ;AAIEC,MAAAA,OAAO,EAAE,qBAJX;AAKEC,MAAAA,kBAAkB,EAAE,2CALtB,EADY,CAtEL,EAlRE;;;;AAkWb,uBAAqB;AACnB,sBAAkBoB,mBADC;AAEnBD,IAAAA,QAAQ,EAAE,sDAFS;AAGnBvB,IAAAA,YAAY,EAAE;AACZ;AACEG,MAAAA,OAAO,EAAE,iBADX;AAEEC,MAAAA,kBAAkB;AAChB,mFAHJ,EADY,CAHK,EAlWR;;;;AA6Wb,gCAA8B;AAC5B,sBAAkBoB,mBADU;AAE5BD,IAAAA,QAAQ,EAAE,sDAFkB,EA7WjB;;AAiXb,mBAAiB;AACf,oBAAgBI,eADD;AAEf,qBAAiB;AACfhC,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,UAAU,EAAE,IAFG;AAGfC,MAAAA,WAAW,EAAE,IAHE;AAIfC,MAAAA,gBAAgB,EAAE,IAJH;AAKfC,MAAAA,kBAAkB,EAAE,IALL,EAFF,EAjXJ;;;AA2Xb,SAAO;AACL,YAAQ;AACNc,MAAAA,IAAI,EAAE,QADA;AAEN,uBAAiB,IAFX;AAGNb,MAAAA,YAAY,EAAE;AACZ;AACEC,QAAAA,WAAW,EAAE,gBADf;AAEEE,QAAAA,OAAO,EAAE,mBAFX;AAGEC,QAAAA,kBAAkB;AAChB,6FAJJ,EADY;;AAOZ;AACEA,QAAAA,kBAAkB;AAChB,6FAFJ,EAPY,CAHR,EADH;;;;AAiBL,YAAQ;AACNwB,MAAAA,OAAO,EAAE,IADH;AAENf,MAAAA,IAAI,EAAE,WAFA;AAGN,2BAAqB,IAHf;AAIN,uBAAiB,IAJX;AAKN,kBAAY,oBALN;AAMNb,MAAAA,YAAY,EAAE;AACZ;AACEC,QAAAA,WAAW,EAAE,uBADf;AAEEE,QAAAA,OAAO,EAAE,6CAFX;AAGEC,QAAAA,kBAAkB;AAChB,4EAJJ,EADY,CANR,EAjBH;;;;AAgCL,cAAU;AACRwB,MAAAA,OAAO,EAAE,IADD;AAERf,MAAAA,IAAI,EAAE,WAFE;AAGR,2BAAqB,IAHb;AAIR,uBAAiB,IAJT;AAKR,kBAAY,oBALJ;AAMRb,MAAAA,YAAY,EAAE;AACZC,QAAAA,WAAW,EAAE,yBADD;AAEZE,QAAAA,OAAO,EAAE,+CAFG;AAGZC,QAAAA,kBAAkB;AAChB,4EAJU,EANN,EAhCL;;;AA6CL,kBAAc;AACZS,MAAAA,IAAI,EAAE,MADM;AAEZ,uBAAiB,IAFL;AAGZb,MAAAA,YAAY,EAAE;AACZ;AACEI,QAAAA,kBAAkB;AAChB,yFAFJ,EADY,CAHF,EA7CT;;;;AAuDL,uBAAmB;AACjBS,MAAAA,IAAI,EAAE,MADW;AAEjB,uBAAiB,IAFA;AAGjBb,MAAAA,YAAY,EAAE;AACZ;AACEI,QAAAA,kBAAkB;AAChB,yFAFJ,EADY,CAHG,EAvDd;;;;AAiEL,qBAAiB;AACf,uBAAiB,IADF;AAEfJ,MAAAA,YAAY,EAAE;AACZ;AACEG,QAAAA,OAAO,EAAE,8BADX;AAEEC,QAAAA,kBAAkB;AAChB,yFAHJ,EADY,CAFC,EAjEZ;;;;AA2EL,0BAAsB;AACpB,uBAAiB,IADG;AAEpBJ,MAAAA,YAAY,EAAE;AACZ;AACEG,QAAAA,OAAO,EAAE,mCADX;AAEEC,QAAAA,kBAAkB;AAChB,yFAHJ,EADY,CAFM,EA3EjB,EA3XM,E","sourcesContent":["import * as parseImport from \"./parse-import\";\nimport * as parseExport from \"./parse-export\";\nimport * as parseClass from \"./parse-class\";\nimport * as parseStatic from \"./parse-static\";\nimport * as parseStyle from \"./parse-style\";\nimport * as transformStyle from \"./transform-style\";\nimport * as parseMacro from \"./macro/parse\";\nimport * as translateMacro from \"./macro/translate\";\nimport * as translateIncludeContent from \"./translate-include-content\";\nimport * as translateIf from \"./conditional/translate-if\";\nimport * as translateElseIf from \"./conditional/translate-else-if\";\nimport * as translateElse from \"./conditional/translate-else\";\nimport * as translateFor from \"./translate-for\";\nimport * as translateWhile from \"./translate-while\";\nimport * as translateHTMLComment from \"./translate-html-comment\";\nimport * as translateServerOnly from \"./translate-server-only\";\nimport * as translateBody from \"./translate-body\";\nimport * as translateAwait from \"./translate-await\";\nimport * as parseModuleCode from \"./parse-module-code\";\n\nexport default {\n \"taglib-id\": \"marko-default-core\",\n \"<import>\": {\n \"node-factory\": parseImport,\n \"parse-options\": {\n rootOnly: true,\n rawOpenTag: true,\n openTagOnly: true,\n ignoreAttributes: true,\n relaxRequireCommas: true\n },\n autocomplete: [\n {\n displayText: 'import <scope> from \"<path>\"',\n description:\n \"Use to import external modules, follows the same syntax as JavaScript imports.\",\n snippet: 'import ${2} from \"${1:path}\"',\n descriptionMoreURL:\n \"https://markojs.com/docs/syntax/#importing-external-files\"\n }\n ]\n },\n \"<export>\": {\n \"node-factory\": parseExport,\n \"parse-options\": {\n rootOnly: true,\n rawOpenTag: true,\n openTagOnly: true,\n ignoreAttributes: true,\n relaxRequireCommas: true\n },\n autocomplete: [\n {\n displayText: \"export <scope>\",\n description:\n \"Use export additional data with the template, follows the same syntax as JavaScript exports.\",\n snippet: \"export ${1}\",\n descriptionMoreURL:\n \"https://markojs.com/docs/syntax/#importing-external-files\"\n }\n ]\n },\n \"<class>\": {\n \"node-factory\": parseClass,\n \"parse-options\": {\n rootOnly: true,\n rawOpenTag: true,\n openTagOnly: true,\n ignoreAttributes: true\n },\n autocomplete: [\n {\n displayText: \"class { /** lifecycle methods **/ }\",\n snippet: \"class {\\n\\t$0\\n}\",\n description:\n \"A class containing the lifecycle methods, event handlers, and other properties for this component.\",\n descriptionMoreURL:\n \"https://markojs.com/docs/class-components/#single-file-components\"\n }\n ]\n },\n \"<static>\": {\n \"node-factory\": parseStatic,\n \"parse-options\": {\n rootOnly: true,\n rawOpenTag: true,\n openTagOnly: true,\n ignoreAttributes: true\n },\n autocomplete: [\n {\n displayText: \"static <statement>\",\n description:\n \"A JavaScript statement which is only evaluated once your template is loaded.\",\n descriptionMoreURL: \"https://markojs.com/docs/syntax/#static-javascript\"\n }\n ]\n },\n \"<style>\": {\n \"node-factory\": parseStyle,\n transformer: transformStyle,\n \"parse-options\": {\n rawOpenTag: true\n }\n },\n \"<macro>\": {\n \"node-factory\": parseMacro,\n \"code-generator\": translateMacro,\n \"@name\": {\n type: \"string\",\n autocomplete: [\n {\n description: \"The name which can be used as a tag within a template.\"\n }\n ]\n },\n autocomplete: [\n {\n displayText: 'macro|<params>| name=\"<name>\"',\n description: \"Creates a reusable fragment within the template.\",\n snippet: 'macro|${2:param1, param2}| name=\"${1:name}\"',\n descriptionMoreURL: \"https://markojs.com/docs/core-tags/#macro\"\n }\n ]\n },\n \"<include-text>\": {\n \"code-generator\": translateIncludeContent,\n attributes: {},\n autocomplete: [\n {\n displayText: 'include-text(\"<path>\")',\n description: \"Allows you to inline the contents of a text file.\",\n snippet: 'include-text(${1:\"./foo.txt\"})',\n descriptionMoreURL: \"https://markojs.com/docs/core-tags/#include-text\"\n }\n ]\n },\n \"<include-html>\": {\n \"code-generator\": translateIncludeContent,\n attributes: {},\n autocomplete: [\n {\n displayText: 'include-html(\"<path>\")',\n snippet: 'include-html(${1:\"./foo.html\"})',\n description: \"Allows you to inline the contents of an html file.\",\n descriptionMoreURL: \"https://markojs.com/docs/core-tags/#include-html\"\n }\n ]\n },\n \"<if>\": {\n \"code-generator\": translateIf,\n attributes: {},\n autocomplete: [\n {\n snippet: \"if(${1:condition})\",\n description: \"Use to display content only if the condition is meant.\",\n descriptionMoreURL:\n \"https://markojs.com/docs/core-tags/#if-else-if-else\"\n }\n ]\n },\n \"<else-if>\": {\n \"code-generator\": translateElseIf,\n attributes: {},\n autocomplete: [\n {\n snippet: \"else-if(${1:condition})\",\n description:\n \"Use after an <if> or <else-if> tag to display content if those conditions do not match and this one does.\",\n descriptionMoreURL:\n \"https://markojs.com/docs/core-tags/#if-else-if-else\"\n }\n ]\n },\n \"<else>\": {\n \"code-generator\": translateElse,\n attributes: {},\n autocomplete: [\n {\n description:\n \"Use after an <if> or <else-if> tag to display content if those conditions do not match.\",\n descriptionMoreURL:\n \"https://markojs.com/docs/core-tags/#if-else-if-else\"\n }\n ]\n },\n \"<for>\": {\n \"code-generator\": translateFor,\n \"@of\": {\n type: \"expression\",\n autocomplete: [\n {\n description: \"Iterates over a list of items.\"\n }\n ]\n },\n \"@in\": {\n type: \"expression\",\n autocomplete: [\n {\n description: \"Iterates over the keys and values of an object.\"\n }\n ]\n },\n \"@to\": {\n type: \"number\",\n autocomplete: [\n {\n description: \"Iterates up to the provided number (inclusive)\"\n }\n ]\n },\n \"@from\": {\n type: \"number\",\n autocomplete: [\n {\n description: \"Iterates starting from the provided number (inclusive)\"\n }\n ]\n },\n \"@step\": {\n type: \"number\",\n autocomplete: [\n {\n description:\n \"The amount to increment during each interation (with from/to)\"\n }\n ]\n },\n autocomplete: [\n {\n snippet: \"for|${1:value, index}| of=${3:array}\",\n description:\n \"Use to iterate over lists, object properties, or between ranges.\",\n descriptionMoreURL:\n \"https://markojs.com/docs/core-tags/#iterating-over-a-list\"\n },\n {\n snippet: \"for|${1:name, value}| in=${3:object}\",\n descriptionMoreURL:\n \"https://markojs.com/docs/core-tags/#iterating-over-an-objects-properties\"\n },\n {\n snippet:\n \"for|${1:index}| from=${2:number} to=${3:number} step=${4:number}\",\n descriptionMoreURL:\n \"https://markojs.com/docs/core-tags/#iterating-between-a-range-of-numbers\"\n }\n ]\n },\n \"<while>\": {\n \"code-generator\": translateWhile,\n autocomplete: [\n {\n snippet: \"while(${1:condition})\",\n description:\n \"Renders the content multiple times until the condition is no longer met.\",\n descriptionMoreURL: \"https://markojs.com/docs/core-tags/#while\"\n }\n ]\n },\n \"<html-comment>\": {\n \"code-generator\": translateHTMLComment,\n \"parse-options\": {\n state: \"parsed-text\"\n },\n attributes: {},\n autocomplete: [\n {\n description:\n \"Use to create an html comment that is not stripped from the output.\",\n descriptionMoreURL: \"https://markojs.com/docs/core-tags/#html-comment\"\n }\n ]\n },\n \"<_preserve>\": {\n renderer: \"marko/src/core-tags/components/preserve-tag\",\n \"@n\": \"boolean\",\n \"@i\": \"boolean\",\n \"@b\": \"boolean\",\n autocomplete: []\n },\n \"<init-components>\": {\n \"code-generator\": translateServerOnly,\n renderer: \"marko/src/core-tags/components/init-components-tag.js\",\n \"@immediate\": \"boolean\"\n },\n \"<_preferred-script-location>\": {\n \"code-generator\": translateServerOnly,\n renderer: \"marko/src/core-tags/components/preferred-script-location-tag.js\"\n },\n \"<body>\": {\n \"code-generator\": translateBody\n },\n \"<await>\": {\n renderer: \"marko/src/core-tags/core/await/renderer.js\",\n \"code-generator\": translateAwait,\n \"@_provider\": \"expression\",\n \"@_name\": \"string\",\n \"@name\": {\n type: \"string\",\n autocomplete: [\n {\n description:\n \"Used to improve debugging and also to ensure promise ordering with the show-after attribute.\",\n snippet: 'name=\"${1:name}\"'\n }\n ]\n },\n \"@timeout\": {\n type: \"number\",\n autocomplete: [\n {\n description:\n \"An optional timeout that when reached will cause the promise to reject with a TimeoutError.\"\n }\n ]\n },\n \"@client-reorder\": {\n type: \"boolean\",\n autocomplete: [\n {\n description:\n \"If set anything after this promise will be sent out immediately, and reordered using JS in the browser.\"\n }\n ]\n },\n \"@show-after\": {\n type: \"string\",\n autocomplete: [\n {\n description:\n \"This attribute will ensure that (with client-reorder) this await tag will always show after another await tag with the provided name.\"\n }\n ]\n },\n \"<then>\": {\n autocomplete: [\n {\n displayText: \"then|<result>|\",\n description: \"Executed with the result of the resolved promise.\",\n snippet: \"then|${1:result}|\",\n descriptionMoreURL: \"https://markojs.com/docs/core-tags/#await\"\n }\n ]\n },\n \"<catch>\": {\n autocomplete: [\n {\n displayText: \"catch|<err>|\",\n description: \"Executed with the err of the rejected promise.\",\n snippet: \"catch|${1:err}|\",\n descriptionMoreURL: \"https://markojs.com/docs/core-tags/#await\"\n }\n ]\n },\n \"<placeholder>\": {\n autocomplete: [\n {\n description: \"A placeholder to display while the promise is pending.\",\n descriptionMoreURL: \"https://markojs.com/docs/core-tags/#await\"\n }\n ]\n },\n autocomplete: [\n {\n displayText: \"await(<promise>)\",\n description:\n \"Used to render a template asynchronously with the results of a Promise\",\n snippet: \"await(${1:promise})\",\n descriptionMoreURL: \"https://markojs.com/docs/core-tags/#await\"\n }\n ]\n },\n \"<await-reorderer>\": {\n \"code-generator\": translateServerOnly,\n renderer: \"marko/src/core-tags/core/await/reorderer-renderer.js\",\n autocomplete: [\n {\n snippet: \"await-reorderer\",\n descriptionMoreURL:\n \"http://markojs.com/docs/marko/async-taglib/#<code>&ltawait-reorderer><code>\"\n }\n ]\n },\n \"<__flush_here_and_after__>\": {\n \"code-generator\": translateServerOnly,\n renderer: \"marko/src/core-tags/core/__flush_here_and_after__.js\"\n },\n \"<module-code>\": {\n \"node-factory\": parseModuleCode,\n \"parse-options\": {\n rootOnly: true,\n rawOpenTag: true,\n openTagOnly: true,\n ignoreAttributes: true,\n relaxRequireCommas: true\n }\n },\n \"<*>\": {\n \"@key\": {\n type: \"string\",\n \"preserve-name\": true,\n autocomplete: [\n {\n displayText: 'key=\"<method>\"',\n snippet: 'key=\"${1:method}\"',\n descriptionMoreURL:\n \"http://markojs.com/docs/marko-components/get-started/#referencing-nested-components\"\n },\n {\n descriptionMoreURL:\n \"http://markojs.com/docs/marko-components/get-started/#referencing-nested-components\"\n }\n ]\n },\n \"@on*\": {\n pattern: true,\n type: \"statement\",\n \"allow-expressions\": true,\n \"preserve-name\": true,\n \"set-flag\": \"hasComponentEvents\",\n autocomplete: [\n {\n displayText: 'on<event>(\"<method>\")',\n snippet: 'on${1:Click}(\"handle${2:Button}${1:Click}\")',\n descriptionMoreURL:\n \"https://markojs.com/docs/components/#attaching-dom-event-listeners\"\n }\n ]\n },\n \"@once*\": {\n pattern: true,\n type: \"statement\",\n \"allow-expressions\": true,\n \"preserve-name\": true,\n \"set-flag\": \"hasComponentEvents\",\n autocomplete: {\n displayText: 'once<event>(\"<method>\")',\n snippet: 'once${1:Click}(\"handle${2:Button}${1:Click}\")',\n descriptionMoreURL:\n \"https://markojs.com/docs/components/#attaching-dom-event-listeners\"\n }\n },\n \"@no-update\": {\n type: \"flag\",\n \"preserve-name\": true,\n autocomplete: [\n {\n descriptionMoreURL:\n \"http://markojs.com/docs/marko-components/#preserving-dom-nodes-during-re-render\"\n }\n ]\n },\n \"@no-update-body\": {\n type: \"flag\",\n \"preserve-name\": true,\n autocomplete: [\n {\n descriptionMoreURL:\n \"http://markojs.com/docs/marko-components/#preserving-dom-nodes-during-re-render\"\n }\n ]\n },\n \"@no-update-if\": {\n \"preserve-name\": true,\n autocomplete: [\n {\n snippet: \"no-update-if(${1:condition})\",\n descriptionMoreURL:\n \"http://markojs.com/docs/marko-components/#preserving-dom-nodes-during-re-render\"\n }\n ]\n },\n \"@no-update-body-if\": {\n \"preserve-name\": true,\n autocomplete: [\n {\n snippet: \"no-update-body-if(${1:condition})\",\n descriptionMoreURL:\n \"http://markojs.com/docs/marko-components/#preserving-dom-nodes-during-re-render\"\n }\n ]\n }\n }\n};\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/taglib/core/macro/parse.js"],"names":["path","attributes","get","nameAttr","find","attr","node","buildCodeFrameError","length","nameAttrValue","isStringLiteral","name","value","file","hub","metadata","marko","macros","scope","generateUid"],"mappings":"kEAAe,kBAAUA,IAAV,EAAgB;AAC7B,QAAMC,UAAU,GAAGD,IAAI,CAACE,GAAL,CAAS,YAAT,CAAnB;AACA,QAAMC,QAAQ,GAAGF,UAAU,CAACG,IAAX,CAAgB,CAAAC,IAAI,KAAIA,IAAI,CAACH,GAAL,CAAS,MAAT,EAAiBI,IAAjB,KAA0B,MAAlD,CAAjB;;AAEA,MAAI,CAACH,QAAL,EAAe;AACb,UAAMH,IAAI;AACPE,IAAAA,GADG,CACC,MADD;AAEHK,IAAAA,mBAFG,CAEiB,mDAFjB,CAAN;AAGD;;AAED,MAAIN,UAAU,CAACO,MAAX,GAAoB,CAAxB,EAA2B;AACzB,UAAMP,UAAU,CAACA,UAAU,CAAC,CAAD,CAAV,KAAkBE,QAAlB,GAA6B,CAA7B,GAAiC,CAAlC,CAAV,CAA+CI,mBAA/C;AACJ,uDADI,CAAN;;AAGD;;AAED,QAAME,aAAa,GAAGN,QAAQ,CAACD,GAAT,CAAa,OAAb,CAAtB;;AAEA,MAAI,CAACO,aAAa,CAACC,eAAd,EAAL,EAAsC;AACpC,UAAMD,aAAa,CAACF,mBAAd;AACJ,qEADI,CAAN;;AAGD;;AAED,QAAMI,IAAI,GAAGF,aAAa,CAACH,IAAd,CAAmBM,KAAhC;AACA,QAAM,EAAEC,IAAF,KAAWb,IAAI,CAACc,GAAtB;;AAEA,MAAID,IAAI,CAACE,QAAL,CAAcC,KAAd,CAAoBC,MAApB,CAA2BN,IAA3B,CAAJ,EAAsC;AACpC,UAAMR,QAAQ,CAACI,mBAAT;AACH,8BAAyBI,IAAK,mBAD3B,CAAN;;AAGD;;AAEDE,EAAAA,IAAI,CAACE,QAAL,CAAcC,KAAd,CAAoBC,MAApB,CAA2BN,IAA3B,IAAmCE,IAAI,CAACK,KAAL,CAAWC,WAAX,CAAuBR,IAAvB,CAAnC;AACD","sourcesContent":["export default function (path) {\n const attributes = path.get(\"attributes\");\n const nameAttr = attributes.find(attr => attr.get(\"name\").node === \"name\");\n\n if (!nameAttr) {\n throw path\n .get(\"name\")\n .buildCodeFrameError('The \"name\" attribute is required on \"macro\" tags.');\n }\n\n if (attributes.length > 1) {\n throw attributes[attributes[0] === nameAttr ? 1 : 0].buildCodeFrameError(\n 'The \"macro\" tag can only have a \"name\" attribute.'\n );\n }\n\n const nameAttrValue = nameAttr.get(\"value\");\n\n if (!nameAttrValue.isStringLiteral()) {\n throw nameAttrValue.buildCodeFrameError(\n 'The \"name\" attribute for \"macro\" tags must be a string literal.'\n );\n }\n\n const name = nameAttrValue.node.value;\n const { file } = path.hub;\n\n if (file.metadata.marko.macros[name]) {\n throw nameAttr.buildCodeFrameError(\n `A macro with the name \"${name}\" already exists.`\n );\n }\n\n file.metadata.marko.macros[name] = file.scope.generateUid(name);\n}\n"],"file":"parse.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/taglib/core/macro/translate.js"],"names":["exit","path","node","body","name","attributes","find","attr","replaceWith","t","functionDeclaration","identifier","hub","file","metadata","marko","macros","value","params","blockStatement"],"mappings":"gJAAA;AACA;;AAEO,SAASA,IAAT,CAAcC,IAAd,EAAoB;AACzB,QAAM,EAAEC,IAAF,KAAWD,IAAjB;AACA,QAAM,EAAEE,IAAF,KAAWD,IAAjB;AACA,QAAME,IAAI,GAAGF,IAAI,CAACG,UAAL,CAAgBC,IAAhB,CAAqB,CAAAC,IAAI,KAAIA,IAAI,CAACH,IAAL,KAAc,MAA3C,CAAb;;AAEAH,EAAAA,IAAI,CAACO,WAAL;AACE;AACEC,kBAAEC,mBAAF;AACED,kBAAEE,UAAF,CAAaV,IAAI,CAACW,GAAL,CAASC,IAAT,CAAcC,QAAd,CAAuBC,KAAvB,CAA6BC,MAA7B,CAAoCZ,IAAI,CAACa,KAAL,CAAWA,KAA/C,CAAb,CADF;AAEE,GAACR,gBAAEE,UAAF,CAAa,KAAb,CAAD,EAAsB,GAAGR,IAAI,CAACe,MAA9B,CAFF;AAGET,kBAAEU,cAAF,CAAiBhB,IAAI,CAACA,IAAtB,CAHF,CADF;;AAMED,EAAAA,IANF,CADF;;;AAUD","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport withPreviousLocation from \"../../../util/with-previous-location\";\n\nexport function exit(path) {\n const { node } = path;\n const { body } = node;\n const name = node.attributes.find(attr => attr.name === \"name\");\n\n path.replaceWith(\n withPreviousLocation(\n t.functionDeclaration(\n t.identifier(path.hub.file.metadata.marko.macros[name.value.value]),\n [t.identifier(\"out\"), ...body.params],\n t.blockStatement(body.body)\n ),\n node\n )\n );\n}\n"],"file":"translate.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/taglib/core/parse-class.js"],"names":["path","node","hub","file","rawValue","code","name","start","meta","metadata","marko","componentFile","get","buildCodeFrameError","hasComponent","parsed","id","superClass","constructorProp","body","find","prop","t","isClassMethod","kind","key","replaceWith","markoClass"],"mappings":"uJAAA;AACA;AACA;;AAEe,kBAAUA,IAAV,EAAgB;AAC7B,QAAM;AACJC,IAAAA,IADI;AAEJC,IAAAA,GAAG,EAAE,EAAEC,IAAF,EAFD;AAGFH,EAAAA,IAHJ;AAIA,QAAM;AACJI,IAAAA,QAAQ,EAAEC,IADN;AAEJC,IAAAA,IAAI,EAAE,EAAEC,KAAF,EAFF;AAGFN,EAAAA,IAHJ;AAIA,QAAMO,IAAI,GAAGL,IAAI,CAACM,QAAL,CAAcC,KAA3B;;AAEA,MAAI,gCAAkBV,IAAlB,EAAwBW,aAA5B,EAA2C;AACzC,UAAMX,IAAI;AACPY,IAAAA,GADG,CACC,MADD;AAEHC,IAAAA,mBAFG;AAGF,gGAHE,CAAN;;AAKD;;AAED,MAAIL,IAAI,CAACM,YAAT,EAAuB;AACrB,UAAMd,IAAI;AACPY,IAAAA,GADG,CACC,MADD;AAEHC,IAAAA,mBAFG;AAGF,0DAHE,CAAN;;AAKD;;AAED,QAAME,MAAM,GAAG,iCAAgBZ,IAAhB,EAAsBE,IAAtB,EAA4BE,KAA5B,CAAf;;AAEA,MAAIQ,MAAM,CAACC,EAAX,EAAe;AACb,UAAMb,IAAI,CAACU,mBAAL;AACJE,IAAAA,MAAM,CAACC,EADH;AAEJ,yCAFI,CAAN;;AAID;;AAED,MAAID,MAAM,CAACE,UAAX,EAAuB;AACrB,UAAMd,IAAI,CAACU,mBAAL;AACJE,IAAAA,MAAM,CAACE,UADH;AAEJ,gDAFI,CAAN;;AAID;;AAED,QAAMC,eAAe,GAAGH,MAAM,CAACI,IAAP,CAAYA,IAAZ,CAAiBC,IAAjB;AACtB,GAAAC,IAAI,KAAIC,gBAAEC,aAAF,CAAgBF,IAAhB,KAAyBA,IAAI,CAACG,IAAL,KAAc,aADzB,CAAxB;;AAGA,MAAIN,eAAJ,EAAqB;AACnB,UAAMf,IAAI,CAACU,mBAAL;AACJK,IAAAA,eAAe,CAACO,GADZ;AAEJ,sFAFI,CAAN;;AAID;;AAEDjB,EAAAA,IAAI,CAACM,YAAL,GAAoB,IAApB;AACAd,EAAAA,IAAI,CAAC0B,WAAL,CAAiBJ,gBAAEK,UAAF,CAAaZ,MAAM,CAACI,IAApB,CAAjB;AACD","sourcesContent":["import { types as t } from \"@marko/compiler\";\nimport { parseExpression } from \"@marko/babel-utils\";\nimport getComponentFiles from \"../../util/get-component-files\";\n\nexport default function (path) {\n const {\n node,\n hub: { file }\n } = path;\n const {\n rawValue: code,\n name: { start }\n } = node;\n const meta = file.metadata.marko;\n\n if (getComponentFiles(path).componentFile) {\n throw path\n .get(\"name\")\n .buildCodeFrameError(\n 'A Marko file can either have an inline class, or an external \"component.js\", but not both.'\n );\n }\n\n if (meta.hasComponent) {\n throw path\n .get(\"name\")\n .buildCodeFrameError(\n \"A Marko component can only have one top level class.\"\n );\n }\n\n const parsed = parseExpression(file, code, start);\n\n if (parsed.id) {\n throw file.buildCodeFrameError(\n parsed.id,\n \"Component class cannot have a name.\"\n );\n }\n\n if (parsed.superClass) {\n throw file.buildCodeFrameError(\n parsed.superClass,\n \"Component class cannot have a super class.\"\n );\n }\n\n const constructorProp = parsed.body.body.find(\n prop => t.isClassMethod(prop) && prop.kind === \"constructor\"\n );\n if (constructorProp) {\n throw file.buildCodeFrameError(\n constructorProp.key,\n \"The constructor method should not be used for a component, use onCreate instead.\"\n );\n }\n\n meta.hasComponent = true;\n path.replaceWith(t.markoClass(parsed.body));\n}\n"],"file":"parse-class.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/taglib/core/parse-export.js"],"names":["path","node","hub","file","rawValue","name","start","exportNode","body","replaceWith"],"mappings":"kEAAA;;AAEe,kBAAUA,IAAV,EAAgB;AAC7B,QAAM;AACJC,IAAAA,IADI;AAEJC,IAAAA,GAAG,EAAE,EAAEC,IAAF,EAFD;AAGFH,EAAAA,IAHJ;AAIA,QAAM;AACJI,IAAAA,QADI;AAEJC,IAAAA,IAAI,EAAE,EAAEC,KAAF,EAFF;AAGFL,EAAAA,IAHJ;AAIA,QAAM,CAACM,UAAD,IAAe,6BAAYJ,IAAZ,EAAkBC,QAAlB,EAA4BE,KAA5B,EAAmCE,IAAxD;AACAR,EAAAA,IAAI,CAACS,WAAL,CAAiBF,UAAjB;AACD","sourcesContent":["import { parseScript } from \"@marko/babel-utils\";\n\nexport default function (path) {\n const {\n node,\n hub: { file }\n } = path;\n const {\n rawValue,\n name: { start }\n } = node;\n const [exportNode] = parseScript(file, rawValue, start).body;\n path.replaceWith(exportNode);\n}\n"],"file":"parse-export.js"}