@marko/translator-default 5.17.1 → 5.17.5

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.getRuntimeEntryFiles = getRuntimeEntryFiles;exports.translate = exports.analyze = exports.taglibs = void 0;var _path = require("path");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.analyze = void 0;exports.getRuntimeEntryFiles = getRuntimeEntryFiles;exports.translate = exports.taglibs = void 0;var _path = require("path");
2
2
  var _compiler = require("@marko/compiler");
3
3
  var _babelUtils = require("@marko/babel-utils");
4
4
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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\",\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\" : \"\"}`\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\",\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
+ {"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\",\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\" : \"\"}`\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\",\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,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.tagArguments = tagArguments;exports.default = _default;var _compiler = require("@marko/compiler");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = _default;exports.tagArguments = tagArguments;var _compiler = require("@marko/compiler");
2
2
  var _vdomOutWrite = _interopRequireDefault(require("../../util/vdom-out-write"));
3
3
  var FLAGS = _interopRequireWildcard(require("../../util/runtime-flags"));
4
4
  var _util = require("../util");
package/dist/tag/util.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";exports.__esModule = true;exports.getAttrs = getAttrs;exports.buildEventHandlerArray = buildEventHandlerArray;exports.evaluateAttr = evaluateAttr;var _compiler = require("@marko/compiler");
1
+ "use strict";exports.__esModule = true;exports.buildEventHandlerArray = buildEventHandlerArray;exports.evaluateAttr = evaluateAttr;exports.getAttrs = getAttrs;var _compiler = require("@marko/compiler");
2
2
  var _babelUtils = require("@marko/babel-utils");
3
3
 
4
4
  function getAttrs(path, preserveNames, skipRenderBody) {
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.optimizeStaticVDOM = optimizeStaticVDOM;exports.analyzeStaticVDOM = analyzeStaticVDOM;var _he = require("he");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.analyzeStaticVDOM = analyzeStaticVDOM;exports.optimizeStaticVDOM = optimizeStaticVDOM;var _he = require("he");
2
2
  var _compiler = require("@marko/compiler");
3
3
  var _babelUtils = require("@marko/babel-utils");
4
4
 
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@marko/translator-default",
3
3
  "description": "Translates Marko templates to the default Marko runtime.",
4
- "version": "5.17.1",
4
+ "version": "5.17.5",
5
5
  "author": "Dylan Piercey <dpiercey@ebay.com>",
6
6
  "bugs": "https://github.com/marko-js/marko/issues/new?template=Bug_report.md",
7
7
  "dependencies": {
8
- "@babel/runtime": "^7.13.10",
9
- "@marko/babel-utils": "^5.16.1",
8
+ "@babel/runtime": "^7.16.0",
9
+ "@marko/babel-utils": "^5.17.4",
10
10
  "escape-string-regexp": "^4.0.0",
11
11
  "magic-string": "^0.25.7",
12
12
  "self-closing-tags": "^1.0.1"
13
13
  },
14
14
  "devDependencies": {
15
- "@marko/compiler": "^5.16.1",
16
- "marko": "^5.17.1"
15
+ "@marko/compiler": "^5.17.4",
16
+ "marko": "^5.17.5"
17
17
  },
18
18
  "files": [
19
19
  "dist"
@@ -32,8 +32,8 @@
32
32
  "main:dev": "src/index.js",
33
33
  "main:npm": "dist/index.js",
34
34
  "peerDependencies": {
35
- "@marko/compiler": "^5.4.2",
36
- "marko": "^5.3.0"
35
+ "@marko/compiler": "^5.16.1",
36
+ "marko": "^5.17.2"
37
37
  },
38
38
  "publishConfig": {
39
39
  "access": "public"
@@ -42,5 +42,5 @@
42
42
  "type": "git",
43
43
  "url": "https://github.com/marko-js/marko/tree/master/packages/translator-default"
44
44
  },
45
- "gitHead": "ac32b9545b7243030db23b5ac6f9722beb70cd36"
45
+ "gitHead": "c7a2dba4d94136cae5a98d77ed47dbc13b583de8"
46
46
  }