{"version":3,"sources":["jsdelivr-header.js","/npm/vite-plugin-vue-pages-defname@0.1.10/src/index.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,iiBCNA,YAAA,GAAA,SAAA,YAAA,CAAA,QAAA,IAAA,cAAA,OAAA,QAAA,aAAA,aAAA,IAAA,oBAAkE,QAAA,qBAO5D,YAAc,UACpB,SAAS,WAAW,GARpB,IAAA,EAAA,EAWE,MAAO,CAAE,UAFQ,OAAA,EAAA,EAAI,MAAM,oCAAV,EAAA,EAA0C,KAAM,IAAI,MAAM,QAAQ,GAEjE,OADJ,OAAA,EAAA,EAAI,MAAM,iCAAV,EAAA,EAAuC,KAAM,IAAI,MAAM,QAAQ,GAE/E,CAEA,SAAS,gBAAgB,GAdzB,IAAA,EAeE,MAAM,GAAU,OAAA,EAAA,EAAK,MAAM,mDAAX,EAAA,EAA0D,KAAM,GAEhF,GAAI,EAAS,CAEX,OADmB,WAAW,EAEhC,CACA,OAAO,IACT,CAEA,SAAS,qBAAqB,GAC5B,MAAM,EAAqB,EAAY,eAAgB,QACpD,GACe,wBAAd,EAAK,MACoB,mBAAzB,EAAK,WAAW,MACgB,eAAhC,EAAK,WAAW,OAAO,MACvB,EAAK,WAAW,OAAO,OAAS,cAEpC,OAAO,EAAmB,EAAmB,OAAS,EACxD,CAEA,SAAS,iBAAiB,GACxB,OAAK,EACE,EAAe,WAAW,UAAU,GAAG,MADlB,IAE9B,CAEA,SAAS,gBACP,MAAO,CACL,KAAM,4BACN,QAAS,MACT,SAAA,CAAU,EAAM,GACd,MAAM,EAAW,EAAK,SAAS,YAAc,KAG7C,MAFgB,GAAY,EAAK,SAAS,0BAE1B,EAAU,OAC1B,MAAM,WAAE,IAAW,EAAI,oBAAA,OAAM,EAAM,CAAE,SAAU,IAE/C,IAAK,EAAW,YAAa,OAE7B,MAAM,OAAE,EAAA,YAAQ,GAAgB,EAEhC,IAAI,EACJ,MAAM,EAAM,IAAM,IAAM,EAAI,IAAI,oBAAA,YAAY,IAE5C,IACI,EADA,EAAgB,KAcpB,GAXI,IACG,EAAW,YAAY,iBAC1B,EAAW,aAAA,EAAc,oBAAA,eAAc,EAAY,CAAE,QAEvD,EAAiB,qBAAqB,EAAW,aACjD,EAAgB,iBAAiB,GAC7B,GACF,IAAM,OAAO,EAAY,IAAI,MAAM,OAAS,EAAe,MAAO,EAAY,IAAI,MAAM,OAAS,EAAe,OAI/G,EAAe,CAClB,MAAM,EAAe,gBAAgB,GACrC,EAAgB,IAAiB,EAAa,SAAW,EAAa,KACxE,CACA,IAAK,EAAe,OAEpB,IAAM,WACJ,EACA,mBACQ,EAAY,MAAM,MAAQ,0CAE7B,yBAcP,MAAO,IARQ,CACb,KAAM,IAAM,WACZ,IAAK,IAAM,YAAY,CACrB,OAAQ,EACR,gBAAgB,KAKtB,EAEJ,CAEA,IAAO,YAAQ","file":"/npm/vite-plugin-vue-pages-defname@0.1.10/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/vite-plugin-vue-pages-defname@0.1.10/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { parse, MagicString, compileScript, SFCScriptBlock } from \"@vue/compiler-sfc\";\r\nimport type { Plugin } from \"vite\";\r\n\r\ndeclare global {\r\n  const defname: (name: string) => void;\r\n}\r\n\r\nconst DEFINE_NAME = \"defname\";\r\nfunction YAMLParser(str) {\r\n  const defname = (str.match(/\\r?\\ndefname:\\s?(.*)?(\\s)/m)?.[1] || \"\").split(/\\s|#/)[0];\r\n  const name = (str.match(/\\r?\\nname:\\s?(.*)?(\\s)/m)?.[1] || \"\").split(/\\s|#/)[0];\r\n  return { defname, name };\r\n}\r\n\r\nfunction getRouteOptions(code: string) {\r\n  const yamlstr = code.match(/<route lang=\"yaml\">((.|\\r?\\n)*)<\\/route>/m)?.[0] || \"\";\r\n\r\n  if (yamlstr) {\r\n    const yamlResult = YAMLParser(yamlstr);\r\n    return yamlResult;\r\n  }\r\n  return null;\r\n}\r\n\r\nfunction getDefCallExpression(scriptSetup: SFCScriptBlock) {\r\n  const callExpressionList = scriptSetup.scriptSetupAst!.filter(\r\n    (node) =>\r\n      node.type === \"ExpressionStatement\" &&\r\n      node.expression.type === \"CallExpression\" &&\r\n      node.expression.callee.type === \"Identifier\" &&\r\n      node.expression.callee.name === DEFINE_NAME\r\n  );\r\n  return callExpressionList[callExpressionList.length - 1];\r\n}\r\n\r\nfunction getScriptOptions(callExpression: any) {\r\n  if (!callExpression) return null;\r\n  return callExpression.expression.arguments[0].value;\r\n}\r\n\r\nfunction defnamePlugin(): Plugin {\r\n  return {\r\n    name: \"vite-plugin-pages-defname\",\r\n    enforce: \"pre\",\r\n    transform(code, id) {\r\n      const isScript = code.includes(DEFINE_NAME + \"(\");\r\n      const isYaml = !isScript && code.includes('<route lang=\"yaml\">');\r\n      \r\n      if (!isYaml && !isScript) return;\r\n      const { descriptor } = parse(code, { filename: id });\r\n\r\n      if (!descriptor.scriptSetup) return;\r\n\r\n      const { source, scriptSetup } = descriptor;\r\n\r\n      let s: MagicString | undefined;\r\n      const str = () => s || (s = new MagicString(source));\r\n\r\n      let componentName = null;\r\n      let callExpression: any;\r\n\r\n      if (isScript) {\r\n        if (!descriptor.scriptSetup.scriptSetupAst) {\r\n          descriptor.scriptSetup = compileScript(descriptor, { id });\r\n        }\r\n        callExpression = getDefCallExpression(descriptor.scriptSetup);\r\n        componentName = getScriptOptions(callExpression);\r\n        if (componentName) {\r\n          str().remove(scriptSetup.loc.start.offset + callExpression.start, scriptSetup.loc.start.offset + callExpression.end);\r\n        }\r\n      }\r\n\r\n      if (!componentName) {\r\n        const routeOptions = getRouteOptions(code);\r\n        componentName = routeOptions && (routeOptions.defname || routeOptions.name);\r\n      }\r\n      if (!componentName) return;\r\n\r\n      str().appendLeft(\r\n        0,\r\n        `\r\n<script lang=\"${scriptSetup.attrs.lang || \"js\"}\">\r\n  export default {\r\n    name: '${componentName}'\r\n  }\r\n</script>\r\n`\r\n      );\r\n\r\n      const result = {\r\n        code: str().toString(),\r\n        map: str().generateMap({\r\n          source: id,\r\n          includeContent: true,\r\n        }),\r\n      };\r\n\r\n      return { ...result };\r\n    },\r\n  };\r\n}\r\n\r\nexport default defnamePlugin;\r\n"]}