m8-framework-mcp 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/build/index.js +88 -424
  2. package/package.json +1 -1
package/build/index.js CHANGED
@@ -1,33 +1,35 @@
1
1
  #!/usr/bin/env node
2
- import{McpServer as ts}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as ss}from"@modelcontextprotocol/sdk/server/stdio.js";import{z as d}from"zod";import{fileURLToPath as os}from"url";import{dirname as ns,join as Be}from"path";import{existsSync as rs}from"fs";import*as I from"path";import*as j from"fs";import*as G from"path";function Ke(t){try{return j.readFileSync(t,"utf-8")}catch(e){return console.error(`[Parser] \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25: ${t}`,e),""}}function $(t){let e=[];try{if(!j.existsSync(t))return console.error(`[Parser] \u76EE\u5F55\u4E0D\u5B58\u5728: ${t}`),e;let s=j.readdirSync(t,{withFileTypes:!0});for(let o of s){let n=G.join(t,o.name);o.isDirectory()?e.push(...$(n)):o.isFile()&&o.name.endsWith(".md")&&e.push(n)}}catch(s){console.error(`[Parser] \u626B\u63CF\u76EE\u5F55\u5931\u8D25: ${t}`,s)}return e}function Ye(t){let e=[];for(let s of t){if(/^\|[\s\-:]+\|$/.test(s.trim()))continue;let o=s.split("|").map(n=>n.trim()).filter(n=>n!=="");o.length>0&&e.push(o)}return e}function b(t){let e=Ke(t),s=[],o="",n=e.split(`
3
- `),r=0;for(;r<n.length;){let a=n[r],i=a.match(/^(#{1,6})\s+(.+)$/);if(i){let l=i[1].length,c=i[2].trim();l===1&&!o&&(o=c),s.push({type:"heading",level:l,content:c}),r++;continue}if(a.startsWith("```")){let l=a.slice(3).trim(),c=[];for(r++;r<n.length&&!n[r].startsWith("```");)c.push(n[r]),r++;s.push({type:"code",content:c.join(`
4
- `),language:l||"text"}),r++;continue}if(a.startsWith("|")){let l=[a];for(r++;r<n.length&&n[r].startsWith("|");)l.push(n[r]),r++;let c=Ye(l);s.push({type:"table",content:l.join(`
5
- `),rows:c});continue}if(/^[\-\*\+]\s/.test(a)||/^\d+\.\s/.test(a)){let l=[a];for(r++;r<n.length&&(/^[\-\*\+]\s/.test(n[r])||/^\d+\.\s/.test(n[r])||/^\s+/.test(n[r]));)l.push(n[r]),r++;s.push({type:"list",content:l.join(`
6
- `)});continue}if(a.trim()){let l=[a];for(r++;r<n.length&&n[r].trim()&&!n[r].startsWith("#")&&!n[r].startsWith("```")&&!n[r].startsWith("|");)l.push(n[r]),r++;s.push({type:"paragraph",content:l.join(`
7
- `)});continue}r++}return{filePath:t,title:o,nodes:s,rawContent:e}}function A(t,e,s){let o=[],n=!1,r=0;for(let a of t){if(a.type==="heading"){if(a.content.toLowerCase().includes(e.toLowerCase())){if(!s||a.level===s){n=!0,r=a.level;continue}}else if(n&&a.level<=r)break}n&&o.push(a)}return o}function Y(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function Ze(t){let e=t.replace(".md","").replace(/^\d+-/,""),s=e.match(/^([a-zA-Z\-]+)(.*)$/);return s?{name:s[1].toLowerCase(),displayName:s[2]||s[1]}:{name:e.toLowerCase(),displayName:e}}function Xe(t){let e=t.split(I.sep);for(let s of e)if(s.includes("\u7EC4\u4EF6")||s.includes("UI"))return s.replace(/^\d+-/,"");return"\u5176\u4ED6"}function K(t){let e=[];if(t.length<2)return e;let s=t[0].map(i=>i.toLowerCase()),o=s.findIndex(i=>i.includes("\u53C2\u6570")||i.includes("name")||i.includes("\u5C5E\u6027")),n=s.findIndex(i=>i.includes("\u7C7B\u578B")||i.includes("type")),r=s.findIndex(i=>i.includes("\u9ED8\u8BA4")||i.includes("default")),a=s.findIndex(i=>i.includes("\u8BF4\u660E")||i.includes("\u63CF\u8FF0")||i.includes("description"));for(let i=1;i<t.length;i++){let l=t[i],c={name:o>=0&&l[o]?l[o].trim():"",type:n>=0&&l[n]?l[n].trim():"any",description:a>=0&&l[a]?l[a].trim():""};r>=0&&l[r]&&(c.default=l[r].trim()),c.name&&e.push(c)}return e}function Qe(t){let e=[];if(t.length<2)return e;let s=t[0].map(a=>a.toLowerCase()),o=s.findIndex(a=>a.includes("\u4E8B\u4EF6")||a.includes("name")||a.includes("\u540D")),n=s.findIndex(a=>a.includes("\u8BF4\u660E")||a.includes("\u63CF\u8FF0")),r=s.findIndex(a=>a.includes("\u53C2\u6570")||a.includes("\u56DE\u8C03"));for(let a=1;a<t.length;a++){let i=t[a],l={name:o>=0&&i[o]?i[o].trim():"",description:n>=0&&i[n]?i[n].trim():""};r>=0&&i[r]&&(l.params=i[r].trim()),l.name&&e.push(l)}return e}function qe(t){let e=Y();if(t.length<2)return e;let s=t[0].map(r=>r.toLowerCase()),o=t[1],n=[{keywords:["ejs","h5 \u5E94\u7528","h5\u5E94\u7528"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\u5C0F\u7A0B\u5E8F"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let r=0;r<s.length&&r<o.length;r++){let a=s[r],i=o[r].trim().toLowerCase();for(let{keywords:l,key:c}of n)if(l.some(u=>a.includes(u))){i==="\u652F\u6301"||i==="\u662F"||i==="true"||i==="yes"?e[c]=!0:i==="\u4E0D\u652F\u6301"||i==="\u5426"||i==="false"||i==="no"?e[c]=!1:i&&(e[c]=o[r].trim());break}}return e}function et(t){let e=[],s="",o;for(let n of t)n.type==="heading"&&(s=n.content,n.content.includes("M8.3")||n.content.includes("vue2")?o="M8.3":(n.content.includes("M8.4")||n.content.includes("vue3"))&&(o="M8.4")),n.type==="code"&&n.language&&["html","vue","js","javascript","typescript"].includes(n.language.toLowerCase())&&e.push({title:s,code:n.content,language:n.language,frameworkVersion:o});return e}function tt(t){try{let e=b(t),s=I.basename(t),{name:o,displayName:n}=Ze(s),r=Xe(t),a="";for(let m of e.nodes)if(m.type==="paragraph"){a=m.content.split(`
8
- `)[0];break}let i=[],l=A(e.nodes,"props");for(let m of l)if(m.type==="table"&&m.rows){i=K(m.rows);break}if(i.length===0){let m=A(e.nodes,"api");for(let g of m)if(g.type==="table"&&g.rows){i=K(g.rows);break}}let c=[],u=A(e.nodes,"events");for(let m of u)if(m.type==="table"&&m.rows){c=Qe(m.rows);break}let p=Y();for(let m of e.nodes)if(m.type==="table"&&m.rows&&m.rows.length>=2){let g=m.rows[0].join(" ").toLowerCase();if(g.includes("\u5E73\u53F0")||g.includes("ejs")||g.includes("\u5FAE\u4FE1")){p=qe(m.rows);break}}let f=et(e.nodes);return{name:o,displayName:n||e.title||o,description:a||e.title,category:r,props:i,events:c,examples:f,platformSupport:p,filePath:t}}catch(e){return console.error(`[ComponentParser] \u89E3\u6790\u7EC4\u4EF6\u6587\u6863\u5931\u8D25: ${t}`,e),null}}function Z(t){let e=[],s=$(t);for(let o of s)if(o.includes("UI\u7EC4\u4EF6")||o.includes("009-")){let n=tt(o);n&&e.push(n)}return e}import*as S from"path";function Q(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function st(t){let s=S.basename(t,".md").match(/api_(\w+)/);if(s)return s[1];let n=S.basename(S.dirname(t)).match(/api_(\w+)/);return n?n[1]:"unknown"}function q(t){let e=[];if(t.length<2)return e;let s=t[0].map(i=>i.toLowerCase()),o=s.findIndex(i=>i.includes("\u53C2\u6570")||i.includes("name")),n=s.findIndex(i=>i.includes("\u7C7B\u578B")||i.includes("type")),r=s.findIndex(i=>i.includes("\u8BF4\u660E")||i.includes("\u63CF\u8FF0")),a=s.findIndex(i=>i.includes("\u5E73\u53F0")||i.includes("\u5DEE\u5F02"));for(let i=1;i<t.length;i++){let l=t[i],c={name:o>=0&&l[o]?l[o].trim():"",type:n>=0&&l[n]?l[n].trim():"any",description:r>=0&&l[r]?l[r].trim():""};a>=0&&l[a]&&(c.platformNote=l[a].trim()),(c.description.includes("\u5FC5\u586B")||c.description.includes("required"))&&(c.required=!0),c.name&&e.push(c)}return e}function ot(t){if(t.length<2)return;let e=q(t);if(e.length!==0)return{type:"object",description:"\u8FD4\u56DE\u503C\u5BF9\u8C61",fields:e}}function nt(t){let e=Q();if(t.length<2)return e;let s=t[0].map(r=>r.toLowerCase()),o=t[1],n=[{keywords:["ejs\uFF08h5 \u5E94\u7528","ejs\uFF08h5\u5E94\u7528","ejs(h5"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\uFF08\u65B0\u70B9"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let r=0;r<s.length&&r<o.length;r++){let a=s[r],i=o[r].trim().toLowerCase();for(let{keywords:l,key:c}of n)if(l.some(u=>a.includes(u))){i==="\u652F\u6301"||i.includes("\u652F\u6301")?e[c]=!0:i==="\u4E0D\u652F\u6301"||i.includes("\u4E0D\u652F\u6301")?e[c]=!1:i&&(e[c]=o[r].trim());break}}return e}function rt(t){let e=[/支持版本[::]\s*[`><=]*\s*([\d.]+)/,/版本\s*[`><=]*\s*([\d.]+)\s*开始支持/,/ejs\s*[><=]+\s*([\d.]+[a-z]*)/i,/v([\d.]+)\s*版本/];for(let s of e){let o=t.match(s);if(o)return o[1]}}function at(t){let e=[];try{let s=b(t),o=st(t),n=null,r="",a=[];for(let i of s.nodes)i.type==="heading"&&i.level===2?(n&&n.name&&(X(n,a),e.push(n)),n={module:o,name:i.content.replace(/[`*]/g,"").trim(),description:"",params:[],examples:[],platformSupport:Q(),filePath:t},a=[],r=""):i.type==="heading"&&i.level===3&&n?r=i.content.toLowerCase():n&&(a.push({...i,_section:r}),i.type==="paragraph"&&!n.description&&(n.description=i.content.split(`
9
- `)[0]));n&&n.name&&(X(n,a),e.push(n))}catch(s){console.error(`[EjsApiParser] \u89E3\u6790 API \u6587\u6863\u5931\u8D25: ${t}`,s)}return e}function X(t,e){for(let s of e){let o=s._section||"";if(s.type==="table"&&s.rows){let n=s.rows[0]?.join(" ").toLowerCase()||"";n.includes("\u5E73\u53F0")||n.includes("ejs")||n.includes("\u5FAE\u4FE1")?t.platformSupport=nt(s.rows):o.includes("\u53C2\u6570")||n.includes("\u53C2\u6570")||n.includes("\u7C7B\u578B")?t.params=q(s.rows):(o.includes("\u8FD4\u56DE")||n.includes("\u8FD4\u56DE"))&&(t.returns=ot(s.rows))}if(s.type==="code"&&s.language&&["js","javascript"].includes(s.language.toLowerCase())&&t.examples.push({title:o||"\u4F7F\u7528\u793A\u4F8B",code:s.content,language:s.language}),s.type==="paragraph"){let n=rt(s.content);n&&!t.minVersion&&(t.minVersion=n)}}}function ee(t){let e=[],s=$(t);for(let o of s){let n=S.basename(o);if(n.startsWith("api_")&&n.endsWith(".md")){let r=at(o);e.push(...r)}}return e}function se(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function it(t){let s=t.replace(/\\/g,"/").match(/\/(\d{3})-(.+?)[\/]/);if(s&&s[2]){let o=s[2],n={\u6838\u5FC3\u901A\u7528Util:"\u6838\u5FC3\u901A\u7528Util",Util\u5DE5\u5177\u96C6:"Util\u5DE5\u5177\u96C6",UI\u7EC4\u4EF6:"UI\u7EC4\u4EF6",\u5178\u578B\u6848\u4F8B:"\u5178\u578B\u6848\u4F8B",\u89C4\u8303\u4E0E\u6A21\u5F0F:"\u89C4\u8303\u4E0E\u6A21\u5F0F",\u5185\u7F6E\u7EC4\u4EF6:"\u5185\u7F6E\u7EC4\u4EF6",EPUI\u7EC4\u4EF6:"EPUI\u7EC4\u4EF6",\u5DE5\u7A0B\u5316:"\u5DE5\u7A0B\u5316",Mock\u7684\u4F7F\u7528:"Mock\u7684\u4F7F\u7528",\u5E38\u89C1\u95EE\u9898:"\u5E38\u89C1\u95EE\u9898",\u9875\u9762\u5F00\u53D1:"\u9875\u9762\u5F00\u53D1"};if(o in n)return n[o]}return"\u5176\u4ED6"}function D(t){let e=[];if(t.length<2)return e;let s=t[0].map(l=>l.toLowerCase()),o=s.findIndex(l=>l.includes("\u53C2\u6570")||l.includes("name")),n=s.findIndex(l=>l.includes("\u7C7B\u578B")||l.includes("type")),r=s.findIndex(l=>l.includes("\u8BF4\u660E")||l.includes("\u63CF\u8FF0")),a=s.findIndex(l=>l.includes("\u5E73\u53F0")||l.includes("\u5DEE\u5F02")),i=s.findIndex(l=>l.includes("\u9ED8\u8BA4"));for(let l=1;l<t.length;l++){let c=t[l],u={name:o>=0&&c[o]?c[o].trim().replace(/`/g,""):"",type:n>=0&&c[n]?c[n].trim():"any",description:r>=0&&c[r]?c[r].trim():""};a>=0&&c[a]&&(u.platformNote=c[a].trim()),i>=0&&c[i]&&(u.default=c[i].trim()),(u.description.includes("\u5FC5\u586B")||u.description.includes("required"))&&(u.required=!0),u.name&&e.push(u)}return e}function lt(t){if(t.length<2)return;let e=D(t);if(e.length!==0)return{type:"object",description:"\u8FD4\u56DE\u503C\u5BF9\u8C61",fields:e}}function ct(t){let e=se();if(t.length<2)return e;let s=t[0].map(r=>r.toLowerCase()),o=t[1],n=[{keywords:["h5","ejs h5","ejs\uFF08h5"],key:"h5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\u5C0F\u7A0B\u5E8F"],key:"ejsMiniProgram"},{keywords:["\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F","\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F","\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["weex"],key:"weex"}];for(let r=0;r<s.length&&r<o.length;r++){let a=s[r],i=o[r].trim();for(let{keywords:l,key:c}of n)if(l.some(u=>a.includes(u))){i==="\u221A"||i==="\u2713"||i.includes("\u652F\u6301")?e[c]=!0:i==="x"||i==="\xD7"||i.includes("\u4E0D\u652F\u6301")?e[c]=!1:i&&(e[c]=i);break}}return e}function ut(t){let e=[/`?v?([\d.]+)`?\s*版本/,/版本\s*`?v?([\d.]+)`?/,/`v([\d.]+[a-z\-\.]*)`/i];for(let s of e){let o=t.match(s);if(o)return o[1]}}function pt(t){return{isM84:t.includes("::: ifdef M84")||t.includes("ifdef M84"),isM83:t.includes("::: ifdef M83")||t.includes("ifdef M83")}}function dt(t){let e=[];try{let s=b(t),o=it(t),n=null,r="",a=[],i="";for(let l of s.nodes){if(l.type==="heading"&&l.level===1){i=l.content;continue}if(l.type==="heading"&&(l.level===2||l.level===3)){let c=l.content.replace(/[`*()]/g,"").trim();if((l.content.includes("(")||/^[a-z]/.test(c)||c.includes("Util."))&&l.level<=3){n&&n.name&&(te(n,a),e.push(n));let p=c;p.includes("(")&&(p=p.split("(")[0].trim()),p.includes("Util.")&&(p=p.replace("Util.","")),n={name:p,fullName:`Util.${p}`,category:o,description:"",params:[],examples:[],platformSupport:se(),filePath:t,usageScenario:i},a=[],r=""}else r=c.toLowerCase()}else n&&(a.push({...l,_section:r}),l.type==="paragraph"&&!n.description&&(n.description=l.content.split(`
10
- `)[0]))}n&&n.name&&(te(n,a),e.push(n))}catch(s){console.error(`[UtilParser] \u89E3\u6790 Util \u6587\u6863\u5931\u8D25: ${t}`,s)}return e}function te(t,e){for(let s of e){let o=s._section||"";if(s.type==="table"&&s.rows){let n=s.rows[0]?.join(" ").toLowerCase()||"";n.includes("h5")||n.includes("\u5C0F\u7A0B\u5E8F")||n.includes("\u5FAE\u4FE1")?s.rows.length===2?t.platformSupport=ct(s.rows):(o.includes("\u53C2\u6570")||n.includes("\u53C2\u6570")||n.includes("\u7C7B\u578B"))&&(t.params=D(s.rows)):o.includes("\u53C2\u6570")||n.includes("\u53C2\u6570")||n.includes("\u7C7B\u578B")?t.params=D(s.rows):(o.includes("\u8FD4\u56DE")||n.includes("\u8FD4\u56DE"))&&(t.returns=lt(s.rows))}if(s.type==="code"&&s.language&&["js","javascript","ts","typescript","html","vue"].includes(s.language.toLowerCase())){let n={title:o||"\u4F7F\u7528\u793A\u4F8B",code:s.content,language:s.language},r=pt(s.content);r.isM84?n.frameworkVersion="M8.4":r.isM83&&(n.frameworkVersion="M8.3"),t.examples.push(n)}if(s.type==="paragraph"){let n=ut(s.content);n&&!t.version&&(t.version=n)}}}function oe(t){let e=[],s=$(t),o=["005-\u6838\u5FC3\u901A\u7528Util","006-Util\u5DE5\u5177\u96C6","015-\u5DE5\u7A0B\u5316","012-Mock\u7684\u4F7F\u7528","014-\u5E38\u89C1\u95EE\u9898","001-\u9875\u9762\u5F00\u53D1","003-\u5178\u578B\u6848\u4F8B","002-\u89C4\u8303\u4E0E\u6A21\u5F0F","017-\u5185\u7F6E\u7EC4\u4EF6","011-vuex\u4E0Erouter\u7684\u4F7F\u7528"];for(let n of s){let r=n.replace(/\\/g,"/");if(o.some(a=>r.includes(a))){let a=dt(n);e.push(...a)}}return e}function ne(t){let e=[t.name.toLowerCase(),t.fullName.toLowerCase()],s={ajax:["\u8BF7\u6C42","\u63A5\u53E3","http","request","fetch","post","get","\u8C03\u7528\u63A5\u53E3"],upload:["\u4E0A\u4F20","\u6587\u4EF6\u4E0A\u4F20","\u56FE\u7247\u4E0A\u4F20","file"],ajaxAll:["\u5E76\u53D1\u8BF7\u6C42","\u591A\u4E2A\u8BF7\u6C42","promise.all"],date:["\u65E5\u671F","\u65F6\u95F4","time","format"],string:["\u5B57\u7B26\u4E32","str","text"],storage:["\u5B58\u50A8","\u7F13\u5B58","cache","localstorage"],base64:["\u7F16\u7801","\u89E3\u7801","encode","decode"],sha1:["\u52A0\u5BC6","hash","\u7B7E\u540D"],sha256:["\u52A0\u5BC6","hash","\u7B7E\u540D"],cookie:["cookie","\u4F1A\u8BDD"]};if(s[t.name.toLowerCase()]&&e.push(...s[t.name.toLowerCase()]),t.filePath&&(t.filePath.includes("string.md")||t.filePath.includes("Util.string"))&&e.push("validation","\u6821\u9A8C","\u6B63\u5219","regular","check","validate"),t.description){let o=t.description.replace(/[,。、;:""''()【】]/g," ").split(/\s+/).filter(n=>n.length>=2);e.push(...o.slice(0,5))}return[...new Set(e)]}var T={\u6309\u94AE:["button","\u70B9\u51FB","\u63D0\u4EA4","\u786E\u8BA4"],\u70B9\u51FB:["button","\u6309\u94AE","click"],\u8F93\u5165\u6846:["input","field","\u6587\u672C\u6846","\u8F93\u5165","textarea"],\u8F93\u5165:["input","field","\u8F93\u5165\u6846"],\u6587\u672C\u6846:["input","field","\u8F93\u5165\u6846","textarea"],\u9009\u62E9\u5668:["picker","select","\u4E0B\u62C9","\u9009\u62E9"],\u9009\u62E9:["picker","select","\u9009\u62E9\u5668","radio","checkbox"],\u4E0B\u62C9:["picker","select","\u9009\u62E9\u5668","dropdown"],\u5355\u9009:["radio","\u5355\u9009\u6846"],\u591A\u9009:["checkbox","\u590D\u9009\u6846","\u591A\u9009\u6846"],\u5F39\u7A97:["dialog","popup","modal","\u5BF9\u8BDD\u6846","\u5F39\u51FA\u5C42"],\u5BF9\u8BDD\u6846:["dialog","\u5F39\u7A97","modal"],\u5F39\u51FA\u5C42:["popup","\u5F39\u7A97","dialog"],\u5217\u8868:["list","cell","\u8868\u683C","table"],\u8868\u683C:["table","list","\u5217\u8868"],\u5355\u5143\u683C:["cell","\u5217\u8868\u9879"],\u8868\u5355:["form","\u63D0\u4EA4","\u8F93\u5165"],\u63D0\u4EA4:["submit","form","\u8868\u5355"],\u65E5\u671F:["date","calendar","\u65F6\u95F4","\u65E5\u5386","datepicker"],\u65F6\u95F4:["time","date","\u65E5\u671F","timepicker"],\u65E5\u5386:["calendar","date","\u65E5\u671F"],\u4E0A\u4F20:["upload","uploader","\u6587\u4EF6"],\u6587\u4EF6:["file","upload","\u4E0A\u4F20"],\u56FE\u7247:["image","img","\u56FE\u50CF","\u7167\u7247","picture"],\u52A0\u8F7D:["loading","spinner","\u7B49\u5F85"],\u7B49\u5F85:["loading","waiting","\u52A0\u8F7D"],\u63D0\u793A:["toast","notify","message","\u6D88\u606F","alert"],\u6D88\u606F:["message","notify","\u63D0\u793A","toast"],\u901A\u77E5:["notify","notification","\u6D88\u606F"],\u5BFC\u822A:["nav","header","tabbar","\u6807\u7B7E\u680F","navigation"],\u6807\u7B7E\u680F:["tabbar","tab","\u5BFC\u822A"],\u6807\u7B7E\u9875:["tab","tabs","\u6807\u7B7E"],\u5237\u65B0:["refresh","minirefresh","\u4E0B\u62C9\u5237\u65B0"],\u4E0B\u62C9\u5237\u65B0:["minirefresh","refresh","\u5237\u65B0"],\u8BF7\u6C42:["ajax","http","fetch","\u63A5\u53E3","request"],\u63A5\u53E3:["api","ajax","\u8BF7\u6C42","http"],\u641C\u7D22:["search","\u67E5\u627E","\u67E5\u8BE2"],\u5F00\u5173:["switch","\u5207\u6362"],\u6ED1\u5757:["slider","\u6ED1\u52A8"],\u8FDB\u5EA6:["progress","\u8FDB\u5EA6\u6761"],\u8BC4\u5206:["rate","\u661F\u7EA7","\u8BC4\u4EF7"],\u6B65\u9AA4:["steps","\u6B65\u9AA4\u6761"],\u6298\u53E0:["collapse","\u5C55\u5F00"],\u6807\u7B7E:["tag","\u6807\u8BB0"],\u5FBD\u6807:["badge","\u89D2\u6807"],\u7A7A\u72B6\u6001:["empty","\u65E0\u6570\u636E"],\u9AA8\u67B6\u5C4F:["skeleton","\u52A0\u8F7D\u5360\u4F4D"]};function E(t){let e=t.toLowerCase(),s=new Set([e]);if(T[t])for(let o of T[t])s.add(o.toLowerCase());for(let[o,n]of Object.entries(T))if(n.some(r=>r.toLowerCase()===e)){s.add(o.toLowerCase());for(let r of n)s.add(r.toLowerCase())}return Array.from(s)}function ft(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function mt(t,e,s){let o=t.toLowerCase(),n=e.toLowerCase(),r=s?.toLowerCase()||"";if(n===o||r===o)return 100;try{let l=new RegExp(`\\b${ft(o)}\\b`,"i");if(l.test(n)||l.test(r))return 95}catch{}if(n.startsWith(o)||r.startsWith(o))return 85;if(n.includes(o)||r.includes(o))return 75;let a=E(t);for(let l of a)if(l!==o){if(n===l||r===l)return 65;if(n.includes(l)||r.includes(l))return 60}let i=0;for(let l of o)(n.includes(l)||r.includes(l))&&i++;return Math.min(55,Math.floor(i/o.length*55))}async function ae(t,e){console.error("[Index] \u5F00\u59CB\u6784\u5EFA\u7D22\u5F15..."),console.error(`[Index] EJS \u6587\u6863\u8DEF\u5F84: ${t}`),console.error(`[Index] M8 \u6587\u6863\u8DEF\u5F84: ${e}`);let s=Z(e);console.error(`[Index] \u89E3\u6790\u5230 ${s.length} \u4E2A\u7EC4\u4EF6`);let o=ee(t);console.error(`[Index] \u89E3\u6790\u5230 ${o.length} \u4E2A API`);let n=oe(e);console.error(`[Index] \u89E3\u6790\u5230 ${n.length} \u4E2A Util \u65B9\u6CD5`);let r={components:new Map,ejsApis:new Map,utilMethods:new Map,standards:new Map,keywords:new Map,categories:new Map,buildTime:new Date};for(let a of s){let i=`component:${a.name}`;r.components.set(a.name,a);let l=re(a.name,a.displayName,a.description);for(let u of l){let p=r.keywords.get(u)||[];p.push(i),r.keywords.set(u,p)}let c=r.categories.get(a.category)||[];c.push(i),r.categories.set(a.category,c)}for(let a of o){let i=`api:${a.module}.${a.name}`;r.ejsApis.set(`${a.module}.${a.name}`,a);let l=re(a.name,a.module,a.description);for(let u of l){let p=r.keywords.get(u)||[];p.push(i),r.keywords.set(u,p)}let c=r.categories.get(`module:${a.module}`)||[];c.push(i),r.categories.set(`module:${a.module}`,c)}for(let a of n){let i=`util:${a.name}`;r.utilMethods.set(a.name.toLowerCase(),a);let l=ne(a);for(let u of l){let p=r.keywords.get(u)||[];p.push(i),r.keywords.set(u,p)}let c=r.categories.get(`util:${a.category}`)||[];c.push(i),r.categories.set(`util:${a.category}`,c)}return console.error(`[Index] \u7D22\u5F15\u6784\u5EFA\u5B8C\u6210\uFF0C\u5173\u952E\u8BCD\u6570: ${r.keywords.size}`),r}function re(...t){let e=new Set;for(let s of t){if(!s)continue;let o=s.toLowerCase();e.add(o);let n=o.split(/[\s\-_,.,。、;:""''()【】]+/);for(let a of n)a.length>=2&&e.add(a);let r=s.match(/[\u4e00-\u9fa5]+/g);if(r)for(let a of r){e.add(a);for(let i of a)e.add(i)}}return Array.from(e)}function x(t,e,s,o){return mt(t,e,o)}function V(t,e){let o={ejsh5:"ejsH5",ejs:"ejsH5",ejsminiprogram:"ejsMiniProgram",h5:"h5",dingtalk:"dingtalk",wechat:"wechat",alipay:"alipay",weex:"weex"}[e.toLowerCase()];if(!o)return!0;let n=t[o];return n===!0||typeof n=="string"&&n.length>0}function O(t,e,s={}){let o=[],n=e.toLowerCase(),a=s.enableSynonyms!==!1?E(e):[n];for(let[i,l]of t.components){if(s.category&&l.category!==s.category||s.platform&&!V(l.platformSupport,s.platform))continue;let c=0;c=Math.max(c,x(e,i,!0,l.displayName));for(let u of a)if(u!==n){let p=x(u,i,!0,l.displayName);c=Math.max(c,Math.min(p,65))}for(let u of a)if(l.description.toLowerCase().includes(u)){c=Math.max(c,50);break}for(let u of a)if(t.keywords.get(u)?.includes(`component:${i}`)){c=Math.max(c,55);break}c>0&&o.push({type:"component",id:`component:${i}`,name:i,displayName:l.displayName,description:l.description,score:c,platformSupport:l.platformSupport,category:l.category})}return o.sort((i,l)=>l.score-i.score),s.limit?o.slice(0,s.limit):o}function F(t,e,s={}){let o=[],n=e.toLowerCase(),a=s.enableSynonyms!==!1?E(e):[n];for(let[i,l]of t.ejsApis){if(s.module&&l.module!==s.module||s.platform&&!V(l.platformSupport,s.platform))continue;let c=0,u=`ejs.${l.module}.${l.name}`;c=Math.max(c,x(e,l.name,!0,u)),c=Math.max(c,x(e,`${l.module}.${l.name}`,!0)),l.module.toLowerCase()===n&&(c=Math.max(c,80));for(let p of a)if(p!==n){let f=x(p,l.name,!0,u);c=Math.max(c,Math.min(f,65))}for(let p of a)if(l.description.toLowerCase().includes(p)){c=Math.max(c,50);break}for(let p of a)if(t.keywords.get(p)?.includes(`api:${i}`)){c=Math.max(c,55);break}c>0&&o.push({type:"ejsApi",id:`api:${i}`,name:l.name,displayName:u,description:l.description,score:c,platformSupport:l.platformSupport,category:l.module})}return o.sort((i,l)=>l.score-i.score),s.limit?o.slice(0,s.limit):o}function _(t,e,s={}){let o=[],n=e.toLowerCase(),r=["ajax","\u8BF7\u6C42","http","request","fetch","post","get","\u63A5\u53E3","\u8C03\u7528\u63A5\u53E3"],a=["\u4E0A\u4F20","upload","\u6587\u4EF6\u4E0A\u4F20","\u56FE\u7247\u4E0A\u4F20"],i=r.some(c=>n.includes(c)),l=a.some(c=>n.includes(c));for(let[c,u]of t.utilMethods){if(s.category&&u.category!==s.category||s.platform&&!V(u.platformSupport,s.platform))continue;let p=0;p=Math.max(p,x(e,c,!0)),p=Math.max(p,x(e,u.fullName,!0)),u.description.toLowerCase().includes(n)&&(p=Math.max(p,50)),t.keywords.get(n)?.includes(`util:${c}`)&&(p=Math.max(p,60)),i&&c==="ajax"&&(p=Math.max(p,95)),l&&c==="upload"&&(p=Math.max(p,95)),p>0&&o.push({type:"util",id:`util:${c}`,name:u.name,displayName:u.fullName,description:u.description,score:p,platformSupport:u.platformSupport,category:u.category})}return o.sort((c,u)=>u.score-c.score),s.limit?o.slice(0,s.limit):o}function ie(t,e,s={}){let o=O(t,e,s),n=F(t,e,s),a=[..._(t,e,s),...o,...n];return a.sort((i,l)=>l.score-i.score),s.limit?a.slice(0,s.limit):a}function le(t,e,s={}){return!e||e.trim().length===0?[]:O(t,e.trim(),{...s,limit:s.limit||20})}function ce(t,e,s={}){return!e||e.trim().length===0?[]:F(t,e.trim(),{...s,limit:s.limit||20})}function ue(t,e){if(!e||e.trim().length===0)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u7EC4\u4EF6\u540D\u79F0"};let s=e.toLowerCase().trim(),o=t.components.get(s);if(o)return{found:!0,component:o};let n=[];for(let[r,a]of t.components)(r.includes(s)||s.includes(r)||a.displayName.toLowerCase().includes(s))&&n.push(r);return{found:!1,error:`\u672A\u627E\u5230\u7EC4\u4EF6: ${e}`,suggestions:n.slice(0,5)}}function pe(t,e,s){if(!e||!s)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u6A21\u5757\u540D\u548C API \u540D\u79F0"};let o=`${e.toLowerCase()}.${s.toLowerCase()}`,n=t.ejsApis.get(o);if(n){let a=[];for(let[i,l]of t.ejsApis)l.module===n.module&&i!==o&&a.push(l.name);return{found:!0,api:n,relatedApis:a.slice(0,5)}}let r=[];for(let[a,i]of t.ejsApis)(a.includes(s.toLowerCase())||i.name.toLowerCase().includes(s.toLowerCase()))&&r.push(`${i.module}.${i.name}`);return{found:!1,error:`\u672A\u627E\u5230 API: ejs.${e}.${s}`,suggestions:r.slice(0,5)}}var de={ajax:{components:[],apis:[],utils:["ajax"]},\u8BF7\u6C42:{components:[],apis:[],utils:["ajax"]},http:{components:[],apis:[],utils:["ajax"]},\u63A5\u53E3:{components:[],apis:[],utils:["ajax"]},\u8C03\u7528\u63A5\u53E3:{components:[],apis:[],utils:["ajax"]},fetch:{components:[],apis:[],utils:["ajax"]},post:{components:[],apis:[],utils:["ajax"]},get\u8BF7\u6C42:{components:[],apis:[],utils:["ajax"]},\u8868\u5355:{components:["form","field","input"],apis:[],utils:[]},\u8F93\u5165:{components:["field","input","textarea"],apis:[],utils:[]},\u9009\u62E9:{components:["picker","select","radio","checkbox"],apis:["ui.select"],utils:[]},\u65E5\u671F:{components:["datepicker","calendar"],apis:["ui.pickDate","ui.pickDateTime"],utils:["date"]},\u65F6\u95F4:{components:["datepicker"],apis:["ui.pickTime","ui.pickDateTime"],utils:["date"]},\u4E0A\u4F20:{components:["uploader"],apis:[],utils:["upload"]},\u6587\u4EF6:{components:["uploader"],apis:["io.chooseFile","io.downloadFile"],utils:["upload"]},\u6587\u4EF6\u4E0A\u4F20:{components:["uploader"],apis:[],utils:["upload"]},\u56FE\u7247\u4E0A\u4F20:{components:["uploader"],apis:["io.chooseImage"],utils:["upload"]},\u5217\u8868:{components:["cell","minirefresh"],apis:[],utils:[]},\u4E0B\u62C9\u5237\u65B0:{components:["minirefresh"],apis:[],utils:[]},\u52A0\u8F7D\u66F4\u591A:{components:["minirefresh"],apis:[],utils:[]},\u5F39\u7A97:{components:["dialog","popup"],apis:["ui.alert","ui.confirm"],utils:[]},\u63D0\u793A:{components:["toast","notify"],apis:["ui.toast","ui.alert"],utils:[]},\u786E\u8BA4:{components:["dialog"],apis:["ui.confirm"],utils:[]},\u52A0\u8F7D:{components:["loading"],apis:["ui.showWaiting","ui.closeWaiting"],utils:[]},\u5BFC\u822A:{components:["header","tabbar","tab"],apis:["navigator.push","navigator.pop"],utils:[]},\u6807\u7B7E\u9875:{components:["tab"],apis:[],utils:[]},\u5E95\u90E8\u680F:{components:["tabbar"],apis:[],utils:[]},\u62CD\u7167:{components:[],apis:["device.camera","io.chooseImage"],utils:[]},\u626B\u7801:{components:[],apis:["device.scan"],utils:[]},\u5B9A\u4F4D:{components:["amap"],apis:["device.getLocation"],utils:[]},\u5730\u56FE:{components:["amap"],apis:["device.getLocation"],utils:[]},\u7535\u8BDD:{components:[],apis:["device.callPhone"],utils:[]},\u5206\u4EAB:{components:[],apis:["device.sendTo"],utils:[]},\u5B58\u50A8:{components:[],apis:["storage.setItem","storage.getItem"],utils:["storage"]},\u7F13\u5B58:{components:[],apis:["storage.setItem","storage.getItem","storage.clear"],utils:["storage"]},\u65E5\u671F\u683C\u5F0F:{components:[],apis:[],utils:["date"]},\u5B57\u7B26\u4E32:{components:[],apis:[],utils:["string"]},\u52A0\u5BC6:{components:[],apis:[],utils:["sha1","sha256","base64"]},\u7F16\u7801:{components:[],apis:[],utils:["base64","charset"]},\u56FE\u7247:{components:["image","imagepreview"],apis:["io.chooseImage"],utils:[]},\u8F6E\u64AD:{components:["swipe"],apis:[],utils:[]},\u6B65\u9AA4:{components:["steps"],apis:[],utils:[]},\u8FDB\u5EA6:{components:["progress","circle"],apis:[],utils:[]},\u8BC4\u5206:{components:["rate"],apis:[],utils:[]},\u641C\u7D22:{components:["search"],apis:[],utils:[]},\u5F00\u5173:{components:["switch"],apis:[],utils:[]},\u6ED1\u5757:{components:["slider"],apis:[],utils:[]},\u6298\u53E0:{components:["collapse"],apis:[],utils:[]},\u6807\u7B7E:{components:["tag"],apis:[],utils:[]},\u5FBD\u6807:{components:["badge"],apis:[],utils:[]},\u7A7A\u72B6\u6001:{components:["empty"],apis:[],utils:[]},\u9AA8\u67B6\u5C4F:{components:["skeleton"],apis:[],utils:[]}},gt={ajax:"\u63A8\u8350\u4F7F\u7528 Util.ajax \u8FDB\u884C HTTP \u8BF7\u6C42\uFF0C\u5B83\u662F M8 \u6846\u67B6\u5BF9 axios \u7684\u5C01\u88C5\uFF0C\u652F\u6301\u81EA\u52A8\u4EE3\u7406\u3001token \u5904\u7406\u3001\u8BF7\u6C42\u53D6\u6D88\u7B49\u529F\u80FD\u3002",upload:"\u63A8\u8350\u4F7F\u7528 Util.upload \u8FDB\u884C\u6587\u4EF6\u4E0A\u4F20\uFF0C\u652F\u6301\u8DE8\u7AEF\uFF08H5\u3001\u5FAE\u4FE1\u3001\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F\uFF09\uFF0C\u4F7F\u7528 filePath \u65B9\u5F0F\u53EF\u5B9E\u73B0\u6700\u4F73\u517C\u5BB9\u6027\u3002",date:"Util.date \u63D0\u4F9B\u65E5\u671F\u683C\u5F0F\u5316\u548C\u5904\u7406\u529F\u80FD\uFF0C\u652F\u6301\u591A\u79CD\u683C\u5F0F\u8F6C\u6362\u3002",storage:"Util.storage \u63D0\u4F9B\u672C\u5730\u5B58\u50A8\u529F\u80FD\uFF0C\u662F\u5BF9 localStorage \u7684\u5C01\u88C5\uFF0C\u652F\u6301\u8DE8\u7AEF\u4F7F\u7528\u3002",string:"Util.string \u63D0\u4F9B\u5B57\u7B26\u4E32\u5904\u7406\u5DE5\u5177\u65B9\u6CD5\u3002",base64:"Util.base64 \u63D0\u4F9B Base64 \u7F16\u7801\u89E3\u7801\u529F\u80FD\u3002",sha1:"Util.sha1 \u63D0\u4F9B SHA1 \u52A0\u5BC6\u529F\u80FD\u3002",sha256:"Util.sha256 \u63D0\u4F9B SHA256 \u52A0\u5BC6\u529F\u80FD\u3002"};function ht(t){let e=[],s=t.toLowerCase();for(let o of Object.keys(de))s.includes(o)&&e.push(o);return e}function H(t,e){if(!e)return!0;let o={ejsh5:"ejsH5",ejs:"ejsH5",h5:"h5",wechat:"wechat",alipay:"alipay",dingtalk:"dingtalk"}[e.toLowerCase()];if(!o)return!0;let n=t[o];return n===!0||typeof n=="string"&&n.length>0}function fe(t,e,s){let o=[],n=[],r=[],a=new Set,i=new Set,l=new Set,c=ht(e);for(let p of c){let f=de[p];if(f){for(let m of f.utils||[]){if(l.has(m))continue;let g=t.utilMethods?.get(m.toLowerCase());g&&H(g.platformSupport,s)&&(l.add(m),r.push({type:"util",name:g.name,displayName:g.fullName,description:g.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:95,platformSupport:g.platformSupport,usageTip:gt[m.toLowerCase()]}))}for(let m of f.components){if(a.has(m))continue;let g=t.components.get(m);g&&H(g.platformSupport,s)&&(a.add(m),o.push({type:"component",name:m,displayName:g.displayName,description:g.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:80,platformSupport:g.platformSupport}))}for(let m of f.apis){if(i.has(m))continue;let[g,L]=m.split("."),h=t.ejsApis.get(`${g}.${L}`);h&&H(h.platformSupport,s)&&(i.add(m),n.push({type:"ejsApi",name:h.name,displayName:`ejs.${h.module}.${h.name}`,description:h.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:70,platformSupport:h.platformSupport}))}}}if(o.length<3||n.length<2){let p=ie(t,e,{limit:10,platform:s});for(let f of p)if(f.type==="component"&&!a.has(f.name)){if(o.length<5){a.add(f.name);let m=t.components.get(f.name);m&&o.push({type:"component",name:f.name,displayName:m.displayName,description:m.description,reason:"\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u641C\u7D22\u5339\u914D",score:f.score,platformSupport:m.platformSupport})}}else if(f.type==="ejsApi"&&!i.has(f.name)&&n.length<5){let m=f.id.replace("api:","");i.add(f.name);let g=t.ejsApis.get(m);g&&n.push({type:"ejsApi",name:g.name,displayName:`ejs.${g.module}.${g.name}`,description:g.description,reason:"\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u641C\u7D22\u5339\u914D",score:f.score,platformSupport:g.platformSupport})}}r.sort((p,f)=>f.score-p.score),o.sort((p,f)=>f.score-p.score),n.sort((p,f)=>f.score-p.score);let u="";if(r.length>0||o.length>0||n.length>0){if(u=`\u6839\u636E\u60A8\u7684\u9700\u6C42"${e}"\uFF0C\u63A8\u8350\u4EE5\u4E0B\u65B9\u6848\uFF1A
11
-
12
- `,r.length>0){u+=`**\u63A8\u8350\u5DE5\u5177\u65B9\u6CD5\uFF1A** ${r.map(f=>f.displayName).join("\u3001")}
13
- `;let p=r.filter(f=>f.usageTip).map(f=>`- ${f.usageTip}`);p.length>0&&(u+=`
2
+ import{McpServer as bt}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as Pt}from"@modelcontextprotocol/sdk/server/stdio.js";import{z as h}from"zod";import{fileURLToPath as Nt}from"url";import{dirname as It,join as Ue}from"path";import{existsSync as At}from"fs";import*as D from"path";import*as M from"fs";import*as Y from"path";function Oe(t){try{return M.readFileSync(t,"utf-8")}catch(e){return console.error(`[Parser] \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25: ${t}`,e),""}}function v(t){let e=[];try{if(!M.existsSync(t))return console.error(`[Parser] \u76EE\u5F55\u4E0D\u5B58\u5728: ${t}`),e;let s=M.readdirSync(t,{withFileTypes:!0});for(let r of s){let o=Y.join(t,r.name);r.isDirectory()?e.push(...v(o)):r.isFile()&&r.name.endsWith(".md")&&e.push(o)}}catch(s){console.error(`[Parser] \u626B\u63CF\u76EE\u5F55\u5931\u8D25: ${t}`,s)}return e}function Ee(t){let e=[];for(let s of t){if(/^\|[\s\-:]+\|$/.test(s.trim()))continue;let r=s.split("|").map(o=>o.trim()).filter(o=>o!=="");r.length>0&&e.push(r)}return e}function C(t){let e=Oe(t),s=[],r="",o=e.split(`
3
+ `),n=0;for(;n<o.length;){let a=o[n],l=a.match(/^(#{1,6})\s+(.+)$/);if(l){let i=l[1].length,c=l[2].trim();i===1&&!r&&(r=c),s.push({type:"heading",level:i,content:c}),n++;continue}if(a.startsWith("```")){let i=a.slice(3).trim(),c=[];for(n++;n<o.length&&!o[n].startsWith("```");)c.push(o[n]),n++;s.push({type:"code",content:c.join(`
4
+ `),language:i||"text"}),n++;continue}if(a.startsWith("|")){let i=[a];for(n++;n<o.length&&o[n].startsWith("|");)i.push(o[n]),n++;let c=Ee(i);s.push({type:"table",content:i.join(`
5
+ `),rows:c});continue}if(/^[\-\*\+]\s/.test(a)||/^\d+\.\s/.test(a)){let i=[a];for(n++;n<o.length&&(/^[\-\*\+]\s/.test(o[n])||/^\d+\.\s/.test(o[n])||/^\s+/.test(o[n]));)i.push(o[n]),n++;s.push({type:"list",content:i.join(`
6
+ `)});continue}if(a.trim()){let i=[a];for(n++;n<o.length&&o[n].trim()&&!o[n].startsWith("#")&&!o[n].startsWith("```")&&!o[n].startsWith("|");)i.push(o[n]),n++;s.push({type:"paragraph",content:i.join(`
7
+ `)});continue}n++}return{filePath:t,title:r,nodes:s,rawContent:e}}function A(t,e,s){let r=[],o=!1,n=0;for(let a of t){if(a.type==="heading"){if(a.content.toLowerCase().includes(e.toLowerCase())){if(!s||a.level===s){o=!0,n=a.level;continue}}else if(o&&a.level<=n)break}o&&r.push(a)}return r}function Q(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function Ve(t){let e=t.replace(".md","").replace(/^\d+-/,""),s=e.match(/^([a-zA-Z\-]+)(.*)$/);return s?{name:s[1].toLowerCase(),displayName:s[2]||s[1]}:{name:e.toLowerCase(),displayName:e}}function Re(t){let e=t.split(D.sep);for(let s of e)if(s.includes("\u7EC4\u4EF6")||s.includes("UI"))return s.replace(/^\d+-/,"");return"\u5176\u4ED6"}function Fe(t){return t.includes("017-")||t.includes("\u5185\u7F6E\u7EC4\u4EF6")?"builtin":t.includes("018-")||t.includes("EPUI\u7EC4\u4EF6")?"epui":"ui"}function Z(t){let e=[];if(t.length<2)return e;let s=t[0].map(l=>l.toLowerCase()),r=s.findIndex(l=>l.includes("\u53C2\u6570")||l.includes("name")||l.includes("\u5C5E\u6027")),o=s.findIndex(l=>l.includes("\u7C7B\u578B")||l.includes("type")),n=s.findIndex(l=>l.includes("\u9ED8\u8BA4")||l.includes("default")),a=s.findIndex(l=>l.includes("\u8BF4\u660E")||l.includes("\u63CF\u8FF0")||l.includes("description"));for(let l=1;l<t.length;l++){let i=t[l],c={name:r>=0&&i[r]?i[r].trim():"",type:o>=0&&i[o]?i[o].trim():"any",description:a>=0&&i[a]?i[a].trim():""};n>=0&&i[n]&&(c.default=i[n].trim()),c.name&&e.push(c)}return e}function We(t){let e=[];if(t.length<2)return e;let s=t[0].map(a=>a.toLowerCase()),r=s.findIndex(a=>a.includes("\u4E8B\u4EF6")||a.includes("name")||a.includes("\u540D")),o=s.findIndex(a=>a.includes("\u8BF4\u660E")||a.includes("\u63CF\u8FF0")),n=s.findIndex(a=>a.includes("\u53C2\u6570")||a.includes("\u56DE\u8C03"));for(let a=1;a<t.length;a++){let l=t[a],i={name:r>=0&&l[r]?l[r].trim():"",description:o>=0&&l[o]?l[o].trim():""};n>=0&&l[n]&&(i.params=l[n].trim()),i.name&&e.push(i)}return e}function He(t){let e=Q();if(t.length<2)return e;let s=t[0].map(n=>n.toLowerCase()),r=t[1],o=[{keywords:["ejs","h5 \u5E94\u7528","h5\u5E94\u7528"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\u5C0F\u7A0B\u5E8F"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let n=0;n<s.length&&n<r.length;n++){let a=s[n],l=r[n].trim().toLowerCase();for(let{keywords:i,key:c}of o)if(i.some(u=>a.includes(u))){l==="\u652F\u6301"||l==="\u662F"||l==="true"||l==="yes"?e[c]=!0:l==="\u4E0D\u652F\u6301"||l==="\u5426"||l==="false"||l==="no"?e[c]=!1:l&&(e[c]=r[n].trim());break}}return e}function _e(t){let e=[],s="",r;for(let o of t)o.type==="heading"&&(s=o.content,o.content.includes("M8.3")||o.content.includes("vue2")?r="M8.3":(o.content.includes("M8.4")||o.content.includes("vue3"))&&(r="M8.4")),o.type==="code"&&o.language&&["html","vue","js","javascript","typescript"].includes(o.language.toLowerCase())&&e.push({title:s,code:o.content,language:o.language,frameworkVersion:r});return e}function ze(t){try{let e=C(t),s=D.basename(t),{name:r,displayName:o}=Ve(s),n=Re(t),a=Fe(t),l="";for(let f of e.nodes)if(f.type==="paragraph"){l=f.content.split(`
8
+ `)[0];break}let i=[],c=A(e.nodes,"props");for(let f of c)if(f.type==="table"&&f.rows){i=Z(f.rows);break}if(i.length===0){let f=A(e.nodes,"api");for(let g of f)if(g.type==="table"&&g.rows){i=Z(g.rows);break}}let u=[],p=A(e.nodes,"events");for(let f of p)if(f.type==="table"&&f.rows){u=We(f.rows);break}let d=Q();for(let f of e.nodes)if(f.type==="table"&&f.rows&&f.rows.length>=2){let g=f.rows[0].join(" ").toLowerCase();if(g.includes("\u5E73\u53F0")||g.includes("ejs")||g.includes("\u5FAE\u4FE1")){d=He(f.rows);break}}let m=_e(e.nodes);return{name:r,displayName:o||e.title||r,description:l||e.title,category:n,source:a,props:i,events:u,examples:m,platformSupport:d,filePath:t}}catch(e){return console.error(`[ComponentParser] \u89E3\u6790\u7EC4\u4EF6\u6587\u6863\u5931\u8D25: ${t}`,e),null}}function X(t){let e=[],s=v(t);for(let r of s){let o=r.includes("UI\u7EC4\u4EF6")||r.includes("009-"),n=r.includes("\u5185\u7F6E\u7EC4\u4EF6")||r.includes("017-"),a=r.includes("EPUI\u7EC4\u4EF6")||r.includes("018-");if(o||n||a){let l=ze(r);l&&e.push(l)}}return e}import*as j from"path";function ee(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function Je(t){let s=j.basename(t,".md").match(/api_(\w+)/);if(s)return s[1];let o=j.basename(j.dirname(t)).match(/api_(\w+)/);return o?o[1]:"unknown"}function te(t){let e=[];if(t.length<2)return e;let s=t[0].map(l=>l.toLowerCase()),r=s.findIndex(l=>l.includes("\u53C2\u6570")||l.includes("name")),o=s.findIndex(l=>l.includes("\u7C7B\u578B")||l.includes("type")),n=s.findIndex(l=>l.includes("\u8BF4\u660E")||l.includes("\u63CF\u8FF0")),a=s.findIndex(l=>l.includes("\u5E73\u53F0")||l.includes("\u5DEE\u5F02"));for(let l=1;l<t.length;l++){let i=t[l],c={name:r>=0&&i[r]?i[r].trim():"",type:o>=0&&i[o]?i[o].trim():"any",description:n>=0&&i[n]?i[n].trim():""};a>=0&&i[a]&&(c.platformNote=i[a].trim()),(c.description.includes("\u5FC5\u586B")||c.description.includes("required"))&&(c.required=!0),c.name&&e.push(c)}return e}function Be(t){if(t.length<2)return;let e=te(t);if(e.length!==0)return{type:"object",description:"\u8FD4\u56DE\u503C\u5BF9\u8C61",fields:e}}function Ke(t){let e=ee();if(t.length<2)return e;let s=t[0].map(n=>n.toLowerCase()),r=t[1],o=[{keywords:["ejs\uFF08h5 \u5E94\u7528","ejs\uFF08h5\u5E94\u7528","ejs(h5"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\uFF08\u65B0\u70B9"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let n=0;n<s.length&&n<r.length;n++){let a=s[n],l=r[n].trim().toLowerCase();for(let{keywords:i,key:c}of o)if(i.some(u=>a.includes(u))){l==="\u652F\u6301"||l.includes("\u652F\u6301")?e[c]=!0:l==="\u4E0D\u652F\u6301"||l.includes("\u4E0D\u652F\u6301")?e[c]=!1:l&&(e[c]=r[n].trim());break}}return e}function Ge(t){let e=[/支持版本[::]\s*[`><=]*\s*([\d.]+)/,/版本\s*[`><=]*\s*([\d.]+)\s*开始支持/,/ejs\s*[><=]+\s*([\d.]+[a-z]*)/i,/v([\d.]+)\s*版本/];for(let s of e){let r=t.match(s);if(r)return r[1]}}function Ye(t){let e=[];try{let s=C(t),r=Je(t),o=null,n="",a=[];for(let l of s.nodes)l.type==="heading"&&l.level===2?(o&&o.name&&(q(o,a),e.push(o)),o={module:r,name:l.content.replace(/[`*]/g,"").trim(),description:"",params:[],examples:[],platformSupport:ee(),filePath:t},a=[],n=""):l.type==="heading"&&l.level===3&&o?n=l.content.toLowerCase():o&&(a.push({...l,_section:n}),l.type==="paragraph"&&!o.description&&(o.description=l.content.split(`
9
+ `)[0]));o&&o.name&&(q(o,a),e.push(o))}catch(s){console.error(`[EjsApiParser] \u89E3\u6790 API \u6587\u6863\u5931\u8D25: ${t}`,s)}return e}function q(t,e){for(let s of e){let r=s._section||"";if(s.type==="table"&&s.rows){let o=s.rows[0]?.join(" ").toLowerCase()||"";o.includes("\u5E73\u53F0")||o.includes("ejs")||o.includes("\u5FAE\u4FE1")?t.platformSupport=Ke(s.rows):r.includes("\u53C2\u6570")||o.includes("\u53C2\u6570")||o.includes("\u7C7B\u578B")?t.params=te(s.rows):(r.includes("\u8FD4\u56DE")||o.includes("\u8FD4\u56DE"))&&(t.returns=Be(s.rows))}if(s.type==="code"&&s.language&&["js","javascript"].includes(s.language.toLowerCase())&&t.examples.push({title:r||"\u4F7F\u7528\u793A\u4F8B",code:s.content,language:s.language}),s.type==="paragraph"){let o=Ge(s.content);o&&!t.minVersion&&(t.minVersion=o)}}}function se(t){let e=[],s=v(t);for(let r of s){let o=j.basename(r);if(o.startsWith("api_")&&o.endsWith(".md")){let n=Ye(r);e.push(...n)}}return e}function re(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function Ze(t){let e=t.replace(/\\/g,"/");return e.includes("005-\u6838\u5FC3\u901A\u7528Util")?"\u6838\u5FC3\u901A\u7528Util":e.includes("006-Util\u5DE5\u5177\u96C6")?"Util\u5DE5\u5177\u96C6":e.includes("009-UI\u7EC4\u4EF6")?"UI\u7EC4\u4EF6":e.includes("003-\u5178\u578B\u6848\u4F8B")?"\u5178\u578B\u6848\u4F8B":e.includes("002-\u89C4\u8303\u4E0E\u6A21\u5F0F")?"\u89C4\u8303\u4E0E\u6A21\u5F0F":e.includes("017-\u5185\u7F6E\u7EC4\u4EF6")?"\u5185\u7F6E\u7EC4\u4EF6":e.includes("018-EPUI\u7EC4\u4EF6")?"EPUI\u7EC4\u4EF6":"\u5176\u4ED6"}function U(t){let e=[];if(t.length<2)return e;let s=t[0].map(i=>i.toLowerCase()),r=s.findIndex(i=>i.includes("\u53C2\u6570")||i.includes("name")),o=s.findIndex(i=>i.includes("\u7C7B\u578B")||i.includes("type")),n=s.findIndex(i=>i.includes("\u8BF4\u660E")||i.includes("\u63CF\u8FF0")),a=s.findIndex(i=>i.includes("\u5E73\u53F0")||i.includes("\u5DEE\u5F02")),l=s.findIndex(i=>i.includes("\u9ED8\u8BA4"));for(let i=1;i<t.length;i++){let c=t[i],u={name:r>=0&&c[r]?c[r].trim().replace(/`/g,""):"",type:o>=0&&c[o]?c[o].trim():"any",description:n>=0&&c[n]?c[n].trim():""};a>=0&&c[a]&&(u.platformNote=c[a].trim()),l>=0&&c[l]&&(u.default=c[l].trim()),(u.description.includes("\u5FC5\u586B")||u.description.includes("required"))&&(u.required=!0),u.name&&e.push(u)}return e}function Qe(t){if(t.length<2)return;let e=U(t);if(e.length!==0)return{type:"object",description:"\u8FD4\u56DE\u503C\u5BF9\u8C61",fields:e}}function Xe(t){let e=re();if(t.length<2)return e;let s=t[0].map(n=>n.toLowerCase()),r=t[1],o=[{keywords:["h5","ejs h5","ejs\uFF08h5"],key:"h5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\u5C0F\u7A0B\u5E8F"],key:"ejsMiniProgram"},{keywords:["\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F","\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F","\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["weex"],key:"weex"}];for(let n=0;n<s.length&&n<r.length;n++){let a=s[n],l=r[n].trim();for(let{keywords:i,key:c}of o)if(i.some(u=>a.includes(u))){l==="\u221A"||l==="\u2713"||l.includes("\u652F\u6301")?e[c]=!0:l==="x"||l==="\xD7"||l.includes("\u4E0D\u652F\u6301")?e[c]=!1:l&&(e[c]=l);break}}return e}function qe(t){let e=[/`?v?([\d.]+)`?\s*版本/,/版本\s*`?v?([\d.]+)`?/,/`v([\d.]+[a-z\-\.]*)`/i];for(let s of e){let r=t.match(s);if(r)return r[1]}}function et(t){return{isM84:t.includes("::: ifdef M84")||t.includes("ifdef M84"),isM83:t.includes("::: ifdef M83")||t.includes("ifdef M83")}}function tt(t){let e=[];try{let s=C(t),r=Ze(t),o=null,n="",a=[],l="";for(let i of s.nodes){if(i.type==="heading"&&i.level===1){l=i.content;continue}if(i.type==="heading"&&(i.level===2||i.level===3)){let c=i.content.replace(/[`*()]/g,"").trim();if((i.content.includes("(")||/^[a-z]/.test(c)||c.includes("Util."))&&i.level<=3){o&&o.name&&(oe(o,a),e.push(o));let p=c;p.includes("(")&&(p=p.split("(")[0].trim()),p.includes("Util.")&&(p=p.replace("Util.","")),o={name:p,fullName:`Util.${p}`,category:r,description:"",params:[],examples:[],platformSupport:re(),filePath:t,usageScenario:l},a=[],n=""}else n=c.toLowerCase()}else o&&(a.push({...i,_section:n}),i.type==="paragraph"&&!o.description&&(o.description=i.content.split(`
10
+ `)[0]))}o&&o.name&&(oe(o,a),e.push(o))}catch(s){console.error(`[UtilParser] \u89E3\u6790 Util \u6587\u6863\u5931\u8D25: ${t}`,s)}return e}function oe(t,e){for(let s of e){let r=s._section||"";if(s.type==="table"&&s.rows){let o=s.rows[0]?.join(" ").toLowerCase()||"";o.includes("h5")||o.includes("\u5C0F\u7A0B\u5E8F")||o.includes("\u5FAE\u4FE1")?s.rows.length===2?t.platformSupport=Xe(s.rows):(r.includes("\u53C2\u6570")||o.includes("\u53C2\u6570")||o.includes("\u7C7B\u578B"))&&(t.params=U(s.rows)):r.includes("\u53C2\u6570")||o.includes("\u53C2\u6570")||o.includes("\u7C7B\u578B")?t.params=U(s.rows):(r.includes("\u8FD4\u56DE")||o.includes("\u8FD4\u56DE"))&&(t.returns=Qe(s.rows))}if(s.type==="code"&&s.language&&["js","javascript","ts","typescript","html","vue"].includes(s.language.toLowerCase())){let o={title:r||"\u4F7F\u7528\u793A\u4F8B",code:s.content,language:s.language},n=et(s.content);n.isM84?o.frameworkVersion="M8.4":n.isM83&&(o.frameworkVersion="M8.3"),t.examples.push(o)}if(s.type==="paragraph"){let o=qe(s.content);o&&!t.version&&(t.version=o)}}}function ne(t){let e=[],s=v(t),r=["005-\u6838\u5FC3\u901A\u7528Util","006-Util\u5DE5\u5177\u96C6"];for(let o of s){let n=o.replace(/\\/g,"/");if(r.some(a=>n.includes(a))){let a=tt(o);e.push(...a)}}return e}function ae(t){let e=[t.name.toLowerCase(),t.fullName.toLowerCase()],s={ajax:["\u8BF7\u6C42","\u63A5\u53E3","http","request","fetch","post","get","\u8C03\u7528\u63A5\u53E3"],upload:["\u4E0A\u4F20","\u6587\u4EF6\u4E0A\u4F20","\u56FE\u7247\u4E0A\u4F20","file"],ajaxAll:["\u5E76\u53D1\u8BF7\u6C42","\u591A\u4E2A\u8BF7\u6C42","promise.all"],date:["\u65E5\u671F","\u65F6\u95F4","time","format"],string:["\u5B57\u7B26\u4E32","str","text"],storage:["\u5B58\u50A8","\u7F13\u5B58","cache","localstorage"],base64:["\u7F16\u7801","\u89E3\u7801","encode","decode"],sha1:["\u52A0\u5BC6","hash","\u7B7E\u540D"],sha256:["\u52A0\u5BC6","hash","\u7B7E\u540D"],cookie:["cookie","\u4F1A\u8BDD"]};if(s[t.name.toLowerCase()]&&e.push(...s[t.name.toLowerCase()]),t.description){let r=t.description.replace(/[,。、;:""''()【】]/g," ").split(/\s+/).filter(o=>o.length>=2);e.push(...r.slice(0,5))}return[...new Set(e)]}var T={\u6309\u94AE:["button","\u70B9\u51FB","\u63D0\u4EA4","\u786E\u8BA4"],\u70B9\u51FB:["button","\u6309\u94AE","click"],\u8F93\u5165\u6846:["input","field","\u6587\u672C\u6846","\u8F93\u5165","textarea"],\u8F93\u5165:["input","field","\u8F93\u5165\u6846"],\u6587\u672C\u6846:["input","field","\u8F93\u5165\u6846","textarea"],\u9009\u62E9\u5668:["picker","select","\u4E0B\u62C9","\u9009\u62E9"],\u9009\u62E9:["picker","select","\u9009\u62E9\u5668","radio","checkbox"],\u4E0B\u62C9:["picker","select","\u9009\u62E9\u5668","dropdown"],\u5355\u9009:["radio","\u5355\u9009\u6846"],\u591A\u9009:["checkbox","\u590D\u9009\u6846","\u591A\u9009\u6846"],\u5F39\u7A97:["dialog","popup","modal","\u5BF9\u8BDD\u6846","\u5F39\u51FA\u5C42"],\u5BF9\u8BDD\u6846:["dialog","\u5F39\u7A97","modal"],\u5F39\u51FA\u5C42:["popup","\u5F39\u7A97","dialog"],\u5217\u8868:["list","cell","\u8868\u683C","table"],\u8868\u683C:["table","list","\u5217\u8868"],\u5355\u5143\u683C:["cell","\u5217\u8868\u9879"],\u8868\u5355:["form","\u63D0\u4EA4","\u8F93\u5165"],\u63D0\u4EA4:["submit","form","\u8868\u5355"],\u65E5\u671F:["date","calendar","\u65F6\u95F4","\u65E5\u5386","datepicker"],\u65F6\u95F4:["time","date","\u65E5\u671F","timepicker"],\u65E5\u5386:["calendar","date","\u65E5\u671F"],\u4E0A\u4F20:["upload","uploader","\u6587\u4EF6"],\u6587\u4EF6:["file","upload","\u4E0A\u4F20"],\u56FE\u7247:["image","img","\u56FE\u50CF","\u7167\u7247","picture"],\u52A0\u8F7D:["loading","spinner","\u7B49\u5F85"],\u7B49\u5F85:["loading","waiting","\u52A0\u8F7D"],\u63D0\u793A:["toast","notify","message","\u6D88\u606F","alert"],\u6D88\u606F:["message","notify","\u63D0\u793A","toast"],\u901A\u77E5:["notify","notification","\u6D88\u606F"],\u5BFC\u822A:["nav","header","tabbar","\u6807\u7B7E\u680F","navigation"],\u6807\u7B7E\u680F:["tabbar","tab","\u5BFC\u822A"],\u6807\u7B7E\u9875:["tab","tabs","\u6807\u7B7E"],\u5237\u65B0:["refresh","minirefresh","\u4E0B\u62C9\u5237\u65B0"],\u4E0B\u62C9\u5237\u65B0:["minirefresh","refresh","\u5237\u65B0"],\u8BF7\u6C42:["ajax","http","fetch","\u63A5\u53E3","request"],\u63A5\u53E3:["api","ajax","\u8BF7\u6C42","http"],\u641C\u7D22:["search","\u67E5\u627E","\u67E5\u8BE2"],\u5F00\u5173:["switch","\u5207\u6362"],\u6ED1\u5757:["slider","\u6ED1\u52A8"],\u8FDB\u5EA6:["progress","\u8FDB\u5EA6\u6761"],\u8BC4\u5206:["rate","\u661F\u7EA7","\u8BC4\u4EF7"],\u6B65\u9AA4:["steps","\u6B65\u9AA4\u6761"],\u6298\u53E0:["collapse","\u5C55\u5F00"],\u6807\u7B7E:["tag","\u6807\u8BB0"],\u5FBD\u6807:["badge","\u89D2\u6807"],\u7A7A\u72B6\u6001:["empty","\u65E0\u6570\u636E"],\u9AA8\u67B6\u5C4F:["skeleton","\u52A0\u8F7D\u5360\u4F4D"]};function O(t){let e=t.toLowerCase(),s=new Set([e]);if(T[t])for(let r of T[t])s.add(r.toLowerCase());for(let[r,o]of Object.entries(T))if(o.some(n=>n.toLowerCase()===e)){s.add(r.toLowerCase());for(let n of o)s.add(n.toLowerCase())}return Array.from(s)}function st(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ot(t,e,s){let r=t.toLowerCase(),o=e.toLowerCase(),n=s?.toLowerCase()||"";if(o===r||n===r)return 100;try{let i=new RegExp(`\\b${st(r)}\\b`,"i");if(i.test(o)||i.test(n))return 95}catch{}if(o.startsWith(r)||n.startsWith(r))return 85;if(o.includes(r)||n.includes(r))return 75;let a=O(t);for(let i of a)if(i!==r){if(o===i||n===i)return 65;if(o.includes(i)||n.includes(i))return 60}let l=0;for(let i of r)(o.includes(i)||n.includes(i))&&l++;return Math.min(55,Math.floor(l/r.length*55))}async function le(t,e){console.error("[Index] \u5F00\u59CB\u6784\u5EFA\u7D22\u5F15..."),console.error(`[Index] EJS \u6587\u6863\u8DEF\u5F84: ${t}`),console.error(`[Index] M8 \u6587\u6863\u8DEF\u5F84: ${e}`);let s=X(e);console.error(`[Index] \u89E3\u6790\u5230 ${s.length} \u4E2A\u7EC4\u4EF6`);let r=se(t);console.error(`[Index] \u89E3\u6790\u5230 ${r.length} \u4E2A API`);let o=ne(e);console.error(`[Index] \u89E3\u6790\u5230 ${o.length} \u4E2A Util \u65B9\u6CD5`);let n={components:new Map,ejsApis:new Map,utilMethods:new Map,standards:new Map,keywords:new Map,categories:new Map,buildTime:new Date};for(let a of s){let l=`component:${a.name}`;n.components.set(a.name,a);let i=ie(a.name,a.displayName,a.description);for(let u of i){let p=n.keywords.get(u)||[];p.push(l),n.keywords.set(u,p)}let c=n.categories.get(a.category)||[];c.push(l),n.categories.set(a.category,c)}for(let a of r){let l=`api:${a.module}.${a.name}`;n.ejsApis.set(`${a.module}.${a.name}`,a);let i=ie(a.name,a.module,a.description);for(let u of i){let p=n.keywords.get(u)||[];p.push(l),n.keywords.set(u,p)}let c=n.categories.get(`module:${a.module}`)||[];c.push(l),n.categories.set(`module:${a.module}`,c)}for(let a of o){let l=`util:${a.name}`;n.utilMethods.set(a.name.toLowerCase(),a);let i=ae(a);for(let u of i){let p=n.keywords.get(u)||[];p.push(l),n.keywords.set(u,p)}let c=n.categories.get(`util:${a.category}`)||[];c.push(l),n.categories.set(`util:${a.category}`,c)}return console.error(`[Index] \u7D22\u5F15\u6784\u5EFA\u5B8C\u6210\uFF0C\u5173\u952E\u8BCD\u6570: ${n.keywords.size}`),n}function ie(...t){let e=new Set;for(let s of t){if(!s)continue;let r=s.toLowerCase();e.add(r);let o=r.split(/[\s\-_,.,。、;:""''()【】]+/);for(let a of o)a.length>=2&&e.add(a);let n=s.match(/[\u4e00-\u9fa5]+/g);if(n)for(let a of n){e.add(a);for(let l of a)e.add(l)}}return Array.from(e)}function $(t,e,s,r){return ot(t,e,r)}function E(t,e){let r={ejsh5:"ejsH5",ejs:"ejsH5",ejsminiprogram:"ejsMiniProgram",h5:"h5",dingtalk:"dingtalk",wechat:"wechat",alipay:"alipay",weex:"weex"}[e.toLowerCase()];if(!r)return!0;let o=t[r];return o===!0||typeof o=="string"&&o.length>0}function V(t,e,s={}){let r=[],o=e.toLowerCase(),a=s.enableSynonyms!==!1?O(e):[o];for(let[l,i]of t.components){if(i.source==="builtin"&&!s.includeBuiltin||i.source==="epui"&&!s.includeEpui||s.category&&i.category!==s.category||s.platform&&!E(i.platformSupport,s.platform))continue;let c=0;c=Math.max(c,$(e,l,!0,i.displayName));for(let u of a)if(u!==o){let p=$(u,l,!0,i.displayName);c=Math.max(c,Math.min(p,65))}for(let u of a)if(i.description.toLowerCase().includes(u)){c=Math.max(c,50);break}for(let u of a)if(t.keywords.get(u)?.includes(`component:${l}`)){c=Math.max(c,55);break}c>0&&r.push({type:"component",id:`component:${l}`,name:l,displayName:i.displayName,description:i.description,score:c,platformSupport:i.platformSupport,category:i.category})}return r.sort((l,i)=>i.score-l.score),s.limit?r.slice(0,s.limit):r}function R(t,e,s={}){let r=[],o=e.toLowerCase(),a=s.enableSynonyms!==!1?O(e):[o];for(let[l,i]of t.ejsApis){if(s.module&&i.module!==s.module||s.platform&&!E(i.platformSupport,s.platform))continue;let c=0,u=`ejs.${i.module}.${i.name}`;c=Math.max(c,$(e,i.name,!0,u)),c=Math.max(c,$(e,`${i.module}.${i.name}`,!0)),i.module.toLowerCase()===o&&(c=Math.max(c,80));for(let p of a)if(p!==o){let d=$(p,i.name,!0,u);c=Math.max(c,Math.min(d,65))}for(let p of a)if(i.description.toLowerCase().includes(p)){c=Math.max(c,50);break}for(let p of a)if(t.keywords.get(p)?.includes(`api:${l}`)){c=Math.max(c,55);break}c>0&&r.push({type:"ejsApi",id:`api:${l}`,name:i.name,displayName:u,description:i.description,score:c,platformSupport:i.platformSupport,category:i.module})}return r.sort((l,i)=>i.score-l.score),s.limit?r.slice(0,s.limit):r}function F(t,e,s={}){let r=[],o=e.toLowerCase(),n=["ajax","\u8BF7\u6C42","http","request","fetch","post","get","\u63A5\u53E3","\u8C03\u7528\u63A5\u53E3"],a=["\u4E0A\u4F20","upload","\u6587\u4EF6\u4E0A\u4F20","\u56FE\u7247\u4E0A\u4F20"],l=n.some(c=>o.includes(c)),i=a.some(c=>o.includes(c));for(let[c,u]of t.utilMethods){if(s.category&&u.category!==s.category||s.platform&&!E(u.platformSupport,s.platform))continue;let p=0;p=Math.max(p,$(e,c,!0)),p=Math.max(p,$(e,u.fullName,!0)),u.description.toLowerCase().includes(o)&&(p=Math.max(p,50)),t.keywords.get(o)?.includes(`util:${c}`)&&(p=Math.max(p,60)),l&&c==="ajax"&&(p=Math.max(p,95)),i&&c==="upload"&&(p=Math.max(p,95)),p>0&&r.push({type:"util",id:`util:${c}`,name:u.name,displayName:u.fullName,description:u.description,score:p,platformSupport:u.platformSupport,category:u.category})}return r.sort((c,u)=>u.score-c.score),s.limit?r.slice(0,s.limit):r}function ce(t,e,s={}){let r=V(t,e,s),o=R(t,e,s),a=[...F(t,e,s),...r,...o];return a.sort((l,i)=>i.score-l.score),s.limit?a.slice(0,s.limit):a}function ue(t,e){if(!e||e.trim().length===0)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u7EC4\u4EF6\u540D\u79F0"};let s=e.toLowerCase().trim(),r=t.components.get(s);if(r)return{found:!0,component:r};let o=[];for(let[n,a]of t.components)(n.includes(s)||s.includes(n)||a.displayName.toLowerCase().includes(s))&&o.push(n);return{found:!1,error:`\u672A\u627E\u5230\u7EC4\u4EF6: ${e}`,suggestions:o.slice(0,5)}}function pe(t){let e=[];if(e.push(`# ${t.displayName} (${t.name})`),e.push(""),e.push(t.description),e.push(""),e.push(`**\u5206\u7C7B:** ${t.category}`),e.push(""),e.push("## \u5E73\u53F0\u652F\u6301"),e.push(""),e.push("| \u5E73\u53F0 | \u652F\u6301\u60C5\u51B5 |"),e.push("| --- | --- |"),e.push(`| EJS H5 | ${S(t.platformSupport.ejsH5)} |`),e.push(`| EJS \u5C0F\u7A0B\u5E8F | ${S(t.platformSupport.ejsMiniProgram)} |`),e.push(`| H5 | ${S(t.platformSupport.h5)} |`),e.push(`| \u9489\u9489 | ${S(t.platformSupport.dingtalk)} |`),e.push(`| \u5FAE\u4FE1\u5C0F\u7A0B\u5E8F | ${S(t.platformSupport.wechat)} |`),e.push(`| \u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F | ${S(t.platformSupport.alipay)} |`),e.push(""),t.props.length>0){e.push("## Props"),e.push(""),e.push("| \u5C5E\u6027 | \u7C7B\u578B | \u9ED8\u8BA4\u503C | \u8BF4\u660E |"),e.push("| --- | --- | --- | --- |");for(let s of t.props)e.push(`| ${s.name} | ${s.type} | ${s.default||"-"} | ${s.description} |`);e.push("")}if(t.events.length>0){e.push("## Events"),e.push(""),e.push("| \u4E8B\u4EF6\u540D | \u8BF4\u660E | \u56DE\u8C03\u53C2\u6570 |"),e.push("| --- | --- | --- |");for(let s of t.events)e.push(`| ${s.name} | ${s.description} | ${s.params||"-"} |`);e.push("")}if(t.examples.length>0){e.push("## \u4EE3\u7801\u793A\u4F8B"),e.push("");for(let s of t.examples)s.title&&(e.push(`### ${s.title}`),e.push("")),e.push(`\`\`\`${s.language}`),e.push(s.code),e.push("```"),e.push("")}return e.join(`
11
+ `)}function S(t){return t===!0?"\u2705 \u652F\u6301":t===!1?"\u274C \u4E0D\u652F\u6301":`\u26A0\uFE0F ${t}`}function W(t,e,s){if(!e||!s)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u6A21\u5757\u540D\u548C API \u540D\u79F0"};let r=`${e.toLowerCase()}.${s.toLowerCase()}`,o=t.ejsApis.get(r);if(o){let a=[];for(let[l,i]of t.ejsApis)i.module===o.module&&l!==r&&a.push(i.name);return{found:!0,api:o,relatedApis:a.slice(0,5)}}let n=[];for(let[a,l]of t.ejsApis)(a.includes(s.toLowerCase())||l.name.toLowerCase().includes(s.toLowerCase()))&&n.push(`${l.module}.${l.name}`);return{found:!1,error:`\u672A\u627E\u5230 API: ejs.${e}.${s}`,suggestions:n.slice(0,5)}}function H(t){let e=[];if(e.push(`# ejs.${t.module}.${t.name}`),e.push(""),e.push(t.description),e.push(""),t.minVersion&&(e.push(`**\u6700\u4F4E\u7248\u672C:** ${t.minVersion}`),e.push("")),e.push("## \u5E73\u53F0\u652F\u6301"),e.push(""),e.push("| \u5E73\u53F0 | \u652F\u6301\u60C5\u51B5 |"),e.push("| --- | --- |"),e.push(`| EJS H5 | ${b(t.platformSupport.ejsH5)} |`),e.push(`| EJS \u5C0F\u7A0B\u5E8F | ${b(t.platformSupport.ejsMiniProgram)} |`),e.push(`| H5 | ${b(t.platformSupport.h5)} |`),e.push(`| \u9489\u9489 | ${b(t.platformSupport.dingtalk)} |`),e.push(`| \u5FAE\u4FE1\u5C0F\u7A0B\u5E8F | ${b(t.platformSupport.wechat)} |`),e.push(`| \u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F | ${b(t.platformSupport.alipay)} |`),e.push(""),t.params.length>0){e.push("## \u53C2\u6570"),e.push(""),e.push("| \u53C2\u6570 | \u7C7B\u578B | \u5FC5\u586B | \u8BF4\u660E |"),e.push("| --- | --- | --- | --- |");for(let s of t.params){let r=s.required?"\u662F":"\u5426";e.push(`| ${s.name} | ${s.type} | ${r} | ${s.description} |`)}e.push("")}if(t.returns&&(e.push("## \u8FD4\u56DE\u503C"),e.push(""),e.push(`**\u7C7B\u578B:** ${t.returns.type}`),e.push(""),t.returns.fields&&t.returns.fields.length>0)){e.push("| \u5B57\u6BB5 | \u7C7B\u578B | \u8BF4\u660E |"),e.push("| --- | --- | --- |");for(let s of t.returns.fields)e.push(`| ${s.name} | ${s.type} | ${s.description} |`);e.push("")}if(t.examples.length>0){e.push("## \u4EE3\u7801\u793A\u4F8B"),e.push("");for(let s of t.examples)s.title&&(e.push(`### ${s.title}`),e.push("")),e.push(`\`\`\`${s.language}`),e.push(s.code),e.push("```"),e.push("")}return e.join(`
12
+ `)}function b(t){return t===!0?"\u2705 \u652F\u6301":t===!1?"\u274C \u4E0D\u652F\u6301":`\u26A0\uFE0F ${t}`}var de={ajax:{components:[],apis:[],utils:["ajax"]},\u8BF7\u6C42:{components:[],apis:[],utils:["ajax"]},http:{components:[],apis:[],utils:["ajax"]},\u63A5\u53E3:{components:[],apis:[],utils:["ajax"]},\u8C03\u7528\u63A5\u53E3:{components:[],apis:[],utils:["ajax"]},fetch:{components:[],apis:[],utils:["ajax"]},post:{components:[],apis:[],utils:["ajax"]},get\u8BF7\u6C42:{components:[],apis:[],utils:["ajax"]},\u8868\u5355:{components:["form","field","input"],apis:[],utils:[]},\u8F93\u5165:{components:["field","input","textarea"],apis:[],utils:[]},\u9009\u62E9:{components:["picker","select","radio","checkbox"],apis:["ui.select"],utils:[]},\u65E5\u671F:{components:["datepicker","calendar"],apis:["ui.pickDate","ui.pickDateTime"],utils:["date"]},\u65F6\u95F4:{components:["datepicker"],apis:["ui.pickTime","ui.pickDateTime"],utils:["date"]},\u4E0A\u4F20:{components:["uploader"],apis:[],utils:["upload"]},\u6587\u4EF6:{components:["uploader"],apis:["io.chooseFile","io.downloadFile"],utils:["upload"]},\u6587\u4EF6\u4E0A\u4F20:{components:["uploader"],apis:[],utils:["upload"]},\u56FE\u7247\u4E0A\u4F20:{components:["uploader"],apis:["io.chooseImage"],utils:["upload"]},\u5217\u8868:{components:["cell","minirefresh"],apis:[],utils:[]},\u4E0B\u62C9\u5237\u65B0:{components:["minirefresh"],apis:[],utils:[]},\u52A0\u8F7D\u66F4\u591A:{components:["minirefresh"],apis:[],utils:[]},\u5F39\u7A97:{components:["dialog","popup"],apis:["ui.alert","ui.confirm"],utils:[]},\u63D0\u793A:{components:["toast","notify"],apis:["ui.toast","ui.alert"],utils:[]},\u786E\u8BA4:{components:["dialog"],apis:["ui.confirm"],utils:[]},\u52A0\u8F7D:{components:["loading"],apis:["ui.showWaiting","ui.closeWaiting"],utils:[]},\u5BFC\u822A:{components:["header","tabbar","tab"],apis:["navigator.push","navigator.pop"],utils:[]},\u6807\u7B7E\u9875:{components:["tab"],apis:[],utils:[]},\u5E95\u90E8\u680F:{components:["tabbar"],apis:[],utils:[]},\u62CD\u7167:{components:[],apis:["device.camera","io.chooseImage"],utils:[]},\u626B\u7801:{components:[],apis:["device.scan"],utils:[]},\u5B9A\u4F4D:{components:["amap"],apis:["device.getLocation"],utils:[]},\u5730\u56FE:{components:["amap"],apis:["device.getLocation"],utils:[]},\u7535\u8BDD:{components:[],apis:["device.callPhone"],utils:[]},\u5206\u4EAB:{components:[],apis:["device.sendTo"],utils:[]},\u5B58\u50A8:{components:[],apis:["storage.setItem","storage.getItem"],utils:["storage"]},\u7F13\u5B58:{components:[],apis:["storage.setItem","storage.getItem","storage.clear"],utils:["storage"]},\u65E5\u671F\u683C\u5F0F:{components:[],apis:[],utils:["date"]},\u5B57\u7B26\u4E32:{components:[],apis:[],utils:["string"]},\u52A0\u5BC6:{components:[],apis:[],utils:["sha1","sha256","base64"]},\u7F16\u7801:{components:[],apis:[],utils:["base64","charset"]},\u56FE\u7247:{components:["image","imagepreview"],apis:["io.chooseImage"],utils:[]},\u8F6E\u64AD:{components:["swipe"],apis:[],utils:[]},\u6B65\u9AA4:{components:["steps"],apis:[],utils:[]},\u8FDB\u5EA6:{components:["progress","circle"],apis:[],utils:[]},\u8BC4\u5206:{components:["rate"],apis:[],utils:[]},\u641C\u7D22:{components:["search"],apis:[],utils:[]},\u5F00\u5173:{components:["switch"],apis:[],utils:[]},\u6ED1\u5757:{components:["slider"],apis:[],utils:[]},\u6298\u53E0:{components:["collapse"],apis:[],utils:[]},\u6807\u7B7E:{components:["tag"],apis:[],utils:[]},\u5FBD\u6807:{components:["badge"],apis:[],utils:[]},\u7A7A\u72B6\u6001:{components:["empty"],apis:[],utils:[]},\u9AA8\u67B6\u5C4F:{components:["skeleton"],apis:[],utils:[]}},rt={ajax:"\u63A8\u8350\u4F7F\u7528 Util.ajax \u8FDB\u884C HTTP \u8BF7\u6C42\uFF0C\u5B83\u662F M8 \u6846\u67B6\u5BF9 axios \u7684\u5C01\u88C5\uFF0C\u652F\u6301\u81EA\u52A8\u4EE3\u7406\u3001token \u5904\u7406\u3001\u8BF7\u6C42\u53D6\u6D88\u7B49\u529F\u80FD\u3002",upload:"\u63A8\u8350\u4F7F\u7528 Util.upload \u8FDB\u884C\u6587\u4EF6\u4E0A\u4F20\uFF0C\u652F\u6301\u8DE8\u7AEF\uFF08H5\u3001\u5FAE\u4FE1\u3001\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F\uFF09\uFF0C\u4F7F\u7528 filePath \u65B9\u5F0F\u53EF\u5B9E\u73B0\u6700\u4F73\u517C\u5BB9\u6027\u3002",date:"Util.date \u63D0\u4F9B\u65E5\u671F\u683C\u5F0F\u5316\u548C\u5904\u7406\u529F\u80FD\uFF0C\u652F\u6301\u591A\u79CD\u683C\u5F0F\u8F6C\u6362\u3002",storage:"Util.storage \u63D0\u4F9B\u672C\u5730\u5B58\u50A8\u529F\u80FD\uFF0C\u662F\u5BF9 localStorage \u7684\u5C01\u88C5\uFF0C\u652F\u6301\u8DE8\u7AEF\u4F7F\u7528\u3002",string:"Util.string \u63D0\u4F9B\u5B57\u7B26\u4E32\u5904\u7406\u5DE5\u5177\u65B9\u6CD5\u3002",base64:"Util.base64 \u63D0\u4F9B Base64 \u7F16\u7801\u89E3\u7801\u529F\u80FD\u3002",sha1:"Util.sha1 \u63D0\u4F9B SHA1 \u52A0\u5BC6\u529F\u80FD\u3002",sha256:"Util.sha256 \u63D0\u4F9B SHA256 \u52A0\u5BC6\u529F\u80FD\u3002"};function nt(t){let e=[],s=t.toLowerCase();for(let r of Object.keys(de))s.includes(r)&&e.push(r);return e}function _(t,e){if(!e)return!0;let r={ejsh5:"ejsH5",ejs:"ejsH5",h5:"h5",wechat:"wechat",alipay:"alipay",dingtalk:"dingtalk"}[e.toLowerCase()];if(!r)return!0;let o=t[r];return o===!0||typeof o=="string"&&o.length>0}function fe(t,e,s){let r=[],o=[],n=[],a=new Set,l=new Set,i=new Set,c=nt(e);for(let p of c){let d=de[p];if(d){for(let m of d.utils||[]){if(i.has(m))continue;let f=t.utilMethods?.get(m.toLowerCase());f&&_(f.platformSupport,s)&&(i.add(m),n.push({type:"util",name:f.name,displayName:f.fullName,description:f.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:95,platformSupport:f.platformSupport,usageTip:rt[m.toLowerCase()]}))}for(let m of d.components){if(a.has(m))continue;let f=t.components.get(m);f&&_(f.platformSupport,s)&&(a.add(m),r.push({type:"component",name:m,displayName:f.displayName,description:f.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:80,platformSupport:f.platformSupport}))}for(let m of d.apis){if(l.has(m))continue;let[f,g]=m.split("."),x=t.ejsApis.get(`${f}.${g}`);x&&_(x.platformSupport,s)&&(l.add(m),o.push({type:"ejsApi",name:x.name,displayName:`ejs.${x.module}.${x.name}`,description:x.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:70,platformSupport:x.platformSupport}))}}}if(r.length<3||o.length<2){let p=ce(t,e,{limit:10,platform:s});for(let d of p)if(d.type==="component"&&!a.has(d.name)){if(r.length<5){a.add(d.name);let m=t.components.get(d.name);m&&r.push({type:"component",name:d.name,displayName:m.displayName,description:m.description,reason:"\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u641C\u7D22\u5339\u914D",score:d.score,platformSupport:m.platformSupport})}}else if(d.type==="ejsApi"&&!l.has(d.name)&&o.length<5){let m=d.id.replace("api:","");l.add(d.name);let f=t.ejsApis.get(m);f&&o.push({type:"ejsApi",name:f.name,displayName:`ejs.${f.module}.${f.name}`,description:f.description,reason:"\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u641C\u7D22\u5339\u914D",score:d.score,platformSupport:f.platformSupport})}}n.sort((p,d)=>d.score-p.score),r.sort((p,d)=>d.score-p.score),o.sort((p,d)=>d.score-p.score);let u="";if(n.length>0||r.length>0||o.length>0){if(u=`\u6839\u636E\u60A8\u7684\u9700\u6C42"${e}"\uFF0C\u63A8\u8350\u4EE5\u4E0B\u65B9\u6848\uFF1A
13
+
14
+ `,n.length>0){u+=`**\u63A8\u8350\u5DE5\u5177\u65B9\u6CD5\uFF1A** ${n.map(d=>d.displayName).join("\u3001")}
15
+ `;let p=n.filter(d=>d.usageTip).map(d=>`- ${d.usageTip}`);p.length>0&&(u+=`
14
16
  ${p.join(`
15
17
  `)}
16
- `)}o.length>0&&(u+=`
17
- **UI \u7EC4\u4EF6\uFF1A** ${o.map(p=>p.displayName||p.name).join("\u3001")}
18
- `),n.length>0&&(u+=`
19
- **EJS API\uFF1A** ${n.map(p=>p.displayName).join("\u3001")}
20
- `,r.length>0&&(u+=`
18
+ `)}r.length>0&&(u+=`
19
+ **UI \u7EC4\u4EF6\uFF1A** ${r.map(p=>p.displayName||p.name).join("\u3001")}
20
+ `),o.length>0&&(u+=`
21
+ **EJS API\uFF1A** ${o.map(p=>p.displayName).join("\u3001")}
22
+ `,n.length>0&&(u+=`
21
23
  > \u6CE8\u610F\uFF1A\u5EFA\u8BAE\u4F18\u5148\u4F7F\u7528 Util \u5DE5\u5177\u65B9\u6CD5\uFF0C\u5B83\u4EEC\u662F\u6846\u67B6\u5C01\u88C5\u7684\u9AD8\u7EA7 API\uFF0C\u63D0\u4F9B\u66F4\u597D\u7684\u8DE8\u7AEF\u517C\u5BB9\u6027\u548C\u9519\u8BEF\u5904\u7406\u3002EJS API \u9002\u7528\u4E8E\u9700\u8981\u76F4\u63A5\u8C03\u7528\u539F\u751F\u80FD\u529B\u7684\u573A\u666F\u3002
22
24
  `)),s&&(u+=`
23
- \u4EE5\u4E0A\u63A8\u8350\u5747\u652F\u6301 ${s} \u5E73\u53F0\u3002`)}else u=`\u672A\u627E\u5230\u4E0E"${e}"\u76F4\u63A5\u76F8\u5173\u7684\u7EC4\u4EF6\u6216 API\uFF0C\u5EFA\u8BAE\u5C1D\u8BD5\u66F4\u5177\u4F53\u7684\u63CF\u8FF0\u6216\u4F7F\u7528\u641C\u7D22\u529F\u80FD\u3002`;return{components:o,apis:n,utils:r,summary:u}}var yt="@anthropic/em-ui";function W(t){return`em-${t}`}function me(t){return`import Em${t.split("-").map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join("")} from '${yt}/lib/${t}';`}function kt(t){let e=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),n=String(t.getHours()).padStart(2,"0"),r=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0");return`${e}-${s}-${o} ${n}:${r}:${a}`}function ge(t){let s=kt(new Date);return`<!--
24
- * @\u4F5C\u8005: ${t.author||"M8 Assistant"}
25
+ \u4EE5\u4E0A\u63A8\u8350\u5747\u652F\u6301 ${s} \u5E73\u53F0\u3002`)}else u=`\u672A\u627E\u5230\u4E0E"${e}"\u76F4\u63A5\u76F8\u5173\u7684\u7EC4\u4EF6\u6216 API\uFF0C\u5EFA\u8BAE\u5C1D\u8BD5\u66F4\u5177\u4F53\u7684\u63CF\u8FF0\u6216\u4F7F\u7528\u641C\u7D22\u529F\u80FD\u3002`;return{components:r,apis:o,utils:n,summary:u}}var at="@anthropic/em-ui";function z(t){return`em-${t}`}function me(t){return`import Em${t.split("-").map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join("")} from '${at}/lib/${t}';`}function it(t){let e=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),n=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0");return`${e}-${s}-${r} ${o}:${n}:${a}`}function he(t){let s=it(new Date);return`<!--
26
+ * @\u4F5C\u8005: ${t.author||"\u5F00\u53D1\u8005"}
25
27
  * @\u521B\u5EFA\u65F6\u95F4: ${s}
26
28
  * @\u4FEE\u6539\u65F6\u95F4: ${s}
27
29
  * @\u7248\u672C: [${t.version||"1.0"}]
28
30
  * @\u7248\u6743: ${t.copyright||"\u56FD\u6CF0\u65B0\u70B9\u8F6F\u4EF6\u80A1\u4EFD\u6709\u9650\u516C\u53F8"}
29
31
  * @\u63CF\u8FF0: ${t.description}
30
- -->`}function he(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function vt(t){let e=he(t);return`/**
32
+ -->`}function ge(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function lt(t){let e=ge(t);return`/**
31
33
  * ${t} \u7EC4\u4EF6\u6837\u5F0F
32
34
  * \u9075\u5FAA M8 \u6846\u67B6\u6837\u5F0F\u89C4\u8303
33
35
  */
@@ -46,20 +48,24 @@ ${p.join(`
46
48
  margin-top: 16px;
47
49
  }
48
50
  }
49
- `}function ye(t){let e=he(t.componentName);return{styleTag:`<style lang="scss" scoped>
51
+ `}function ye(t){let e=ge(t.componentName),s=t.styleLineCount||0;return t.useExternalFile||s>20?{styleTag:`<style lang="scss" scoped>
50
52
  @import './css/${e}.scss';
51
- </style>`,externalFile:{path:`./css/${e}.scss`,content:vt(t.componentName)}}}function $t(t,e,s){return e==="M8.4"?wt(t,s):xt(t,s)}function xt(t,e){let s=W(t.name),n=`${ge({description:`${t.displayName}\u7EC4\u4EF6\u793A\u4F8B`})}
53
+ </style>`,externalFile:{path:`./css/${e}.scss`,content:lt(t.componentName)}}:{styleTag:`<style lang="scss" scoped>
54
+ .${e}-container {
55
+ padding: 16px;
56
+ }
57
+ </style>`}}function ct(t,e,s){return e==="M8.4"?pt(t,s):ut(t,s)}function ut(t,e){let s=z(t.name),o=`${he({description:`${t.displayName}\u7EC4\u4EF6\u793A\u4F8B`})}
52
58
  <template>
53
59
  <div class="${t.name}-container">
54
60
  <!-- ${t.displayName}\u7EC4\u4EF6 -->
55
- <${s}`,r=t.props.slice(0,3);for(let l of r)l.name==="value"||l.name==="v-model"?n+=`
56
- v-model="${t.name}Value"`:l.type==="boolean"?n+=`
57
- :${l.name}="${l.default||"false"}"`:l.type==="string"&&(n+=`
58
- ${l.name}="${l.default||""}"`);if(t.events.length>0){let l=t.events[0];n+=`
59
- @${l.name}="on${k(l.name)}"`}n+=`
61
+ <${s}`,n=t.props.slice(0,3);for(let i of n)i.name==="value"||i.name==="v-model"?o+=`
62
+ v-model="${t.name}Value"`:i.type==="boolean"?o+=`
63
+ :${i.name}="${i.default||"false"}"`:i.type==="string"&&(o+=`
64
+ ${i.name}="${i.default||""}"`);if(t.events.length>0){let i=t.events[0];o+=`
65
+ @${i.name}="on${y(i.name)}"`}o+=`
60
66
  />
61
67
  </div>
62
- </template>`,e&&(n=ke(n,e));let a=`<script>
68
+ </template>`,e&&(o=we(o,e));let a=`<script>
63
69
  /**
64
70
  * ${t.displayName}\u7EC4\u4EF6\u793A\u4F8B
65
71
  * \u6846\u67B6\u7248\u672C: M8.3 (Vue2)
@@ -69,12 +75,12 @@ ${p.join(`
69
75
  * - \u53EF\u6839\u636E\u5B9E\u9645\u9700\u6C42\u4FEE\u6539\u5C5E\u6027\u548C\u4E8B\u4EF6\u5904\u7406
70
76
  */
71
77
  export default {
72
- name: '${k(t.name)}Demo',
78
+ name: '${y(t.name)}Demo',
73
79
 
74
80
  data() {
75
81
  return {
76
82
  // ${t.displayName}\u7684\u7ED1\u5B9A\u503C
77
- ${t.name}Value: ${ve(t.props[0])}
83
+ ${t.name}Value: ${xe(t.props[0])}
78
84
  };
79
85
  },
80
86
 
@@ -84,28 +90,28 @@ export default {
84
90
  * ${t.events[0]?.description||"\u5F53\u7EC4\u4EF6\u503C\u53D8\u5316\u65F6\u89E6\u53D1"}
85
91
  * @param {any} value - \u53D8\u5316\u540E\u7684\u503C
86
92
  */
87
- on${k(t.events[0]?.name||"Change")}(value) {
93
+ on${y(t.events[0]?.name||"Change")}(value) {
88
94
  console.log('${t.displayName}\u503C\u53D8\u5316:', value);
89
95
  // TODO: \u5728\u6B64\u5904\u7406${t.displayName}\u4E8B\u4EF6\u903B\u8F91
90
96
  }
91
97
  }
92
98
  };
93
- </script>`,i=ye({componentName:t.name,useExternalFile:!0});return{template:n,script:a,style:i.styleTag,imports:[me(t.name)],explanation:`\u8FD9\u662F ${t.displayName} \u7EC4\u4EF6\u7684 M8.3 (Vue2) \u793A\u4F8B\u4EE3\u7801\u3002
99
+ </script>`,l=ye({componentName:t.name,useExternalFile:!1});return{template:o,script:a,style:l.styleTag,imports:[me(t.name)],explanation:`\u8FD9\u662F ${t.displayName} \u7EC4\u4EF6\u7684 M8.3 (Vue2) \u793A\u4F8B\u4EE3\u7801\u3002
94
100
  - \u4F7F\u7528 Options API \u98CE\u683C
95
101
  - \u5305\u542B\u6807\u51C6\u6587\u4EF6\u5934\u6CE8\u91CA\uFF08\u4F5C\u8005\u3001\u65F6\u95F4\u3001\u7248\u672C\u3001\u7248\u6743\u3001\u63CF\u8FF0\uFF09
96
102
  - \u5305\u542B\u4E2D\u6587\u6CE8\u91CA\u8BF4\u660E\u4EE3\u7801\u903B\u8F91
97
- - \u6837\u5F0F\u5DF2\u6309\u89C4\u8303\u5206\u79BB\u5230\u5916\u90E8 SCSS \u6587\u4EF6`,frameworkVersion:"M8.3",externalFiles:i.externalFile?[i.externalFile]:[]}}function wt(t,e){let s=W(t.name),n=`${ge({description:`${t.displayName}\u7EC4\u4EF6\u793A\u4F8B`})}
103
+ - \u53EF\u6839\u636E\u5B9E\u9645\u9700\u6C42\u4FEE\u6539\u5C5E\u6027\u548C\u4E8B\u4EF6`,frameworkVersion:"M8.3"}}function pt(t,e){let s=z(t.name),o=`${he({description:`${t.displayName}\u7EC4\u4EF6\u793A\u4F8B`})}
98
104
  <template>
99
105
  <div class="${t.name}-container">
100
106
  <!-- ${t.displayName}\u7EC4\u4EF6 -->
101
- <${s}`,r=t.props.slice(0,3);for(let l of r)l.name==="value"||l.name==="v-model"?n+=`
102
- v-model="${t.name}Value"`:l.type==="boolean"?n+=`
103
- :${l.name}="${l.default||"false"}"`:l.type==="string"&&(n+=`
104
- ${l.name}="${l.default||""}"`);if(t.events.length>0){let l=t.events[0];n+=`
105
- @${l.name}="on${k(l.name)}"`}n+=`
107
+ <${s}`,n=t.props.slice(0,3);for(let i of n)i.name==="value"||i.name==="v-model"?o+=`
108
+ v-model="${t.name}Value"`:i.type==="boolean"?o+=`
109
+ :${i.name}="${i.default||"false"}"`:i.type==="string"&&(o+=`
110
+ ${i.name}="${i.default||""}"`);if(t.events.length>0){let i=t.events[0];o+=`
111
+ @${i.name}="on${y(i.name)}"`}o+=`
106
112
  />
107
113
  </div>
108
- </template>`,e&&(n=ke(n,e));let a=`<script setup>
114
+ </template>`,e&&(o=we(o,e));let a=`<script setup>
109
115
  /**
110
116
  * ${t.displayName}\u7EC4\u4EF6\u793A\u4F8B
111
117
  * \u6846\u67B6\u7248\u672C: M8.4 (Vue3 Composition API)
@@ -122,7 +128,7 @@ import { ref } from 'vue';
122
128
  // ============================================
123
129
 
124
130
  /** ${t.displayName}\u7684\u7ED1\u5B9A\u503C */
125
- const ${t.name}Value = ref(${ve(t.props[0])});
131
+ const ${t.name}Value = ref(${xe(t.props[0])});
126
132
 
127
133
  // ============================================
128
134
  // \u4E8B\u4EF6\u5904\u7406\u65B9\u6CD5
@@ -133,20 +139,20 @@ const ${t.name}Value = ref(${ve(t.props[0])});
133
139
  * ${t.events[0]?.description||"\u5F53\u7EC4\u4EF6\u503C\u53D8\u5316\u65F6\u89E6\u53D1"}
134
140
  * @param value - \u53D8\u5316\u540E\u7684\u503C
135
141
  */
136
- function on${k(t.events[0]?.name||"Change")}(value) {
142
+ function on${y(t.events[0]?.name||"Change")}(value) {
137
143
  console.log('${t.displayName}\u503C\u53D8\u5316:', value);
138
144
  // TODO: \u5728\u6B64\u5904\u7406${t.displayName}\u4E8B\u4EF6\u903B\u8F91
139
145
  }
140
- </script>`,i=ye({componentName:t.name,useExternalFile:!0});return{template:n,script:a,style:i.styleTag,imports:[],explanation:`\u8FD9\u662F ${t.displayName} \u7EC4\u4EF6\u7684 M8.4 (Vue3) \u793A\u4F8B\u4EE3\u7801\u3002
146
+ </script>`,l=ye({componentName:t.name,useExternalFile:!1});return{template:o,script:a,style:l.styleTag,imports:[],explanation:`\u8FD9\u662F ${t.displayName} \u7EC4\u4EF6\u7684 M8.4 (Vue3) \u793A\u4F8B\u4EE3\u7801\u3002
141
147
  - \u4F7F\u7528 Composition API \u548C <script setup> \u8BED\u6CD5
142
148
  - \u5305\u542B\u6807\u51C6\u6587\u4EF6\u5934\u6CE8\u91CA\uFF08\u4F5C\u8005\u3001\u65F6\u95F4\u3001\u7248\u672C\u3001\u7248\u6743\u3001\u63CF\u8FF0\uFF09
143
149
  - \u5305\u542B\u4E2D\u6587\u6CE8\u91CA\u8BF4\u660E\u4EE3\u7801\u903B\u8F91
144
- - \u6837\u5F0F\u5DF2\u6309\u89C4\u8303\u5206\u79BB\u5230\u5916\u90E8 SCSS \u6587\u4EF6`,frameworkVersion:"M8.4",externalFiles:i.externalFile?[i.externalFile]:[]}}function Mt(t,e){let s=`ejs.${t.module}.${t.name}`,o=[];for(let a of t.params)a.required&&o.push(` ${a.name}: ${$e(a.type)} // ${a.description}`);let n=`/**
150
+ - \u53EF\u6839\u636E\u5B9E\u9645\u9700\u6C42\u4FEE\u6539\u5C5E\u6027\u548C\u4E8B\u4EF6`,frameworkVersion:"M8.4"}}function dt(t,e){let s=`ejs.${t.module}.${t.name}`,r=[];for(let a of t.params)a.required&&r.push(` ${a.name}: ${ve(a.type)} // ${a.description}`);let o=`/**
145
151
  * \u8C03\u7528 ${s}
146
152
  * ${t.description}
147
153
  */
148
154
  ${s}({
149
- ${o.join(`,
155
+ ${r.join(`,
150
156
  `)},
151
157
  success: function(result) {
152
158
  // \u6210\u529F\u56DE\u8C03
@@ -158,14 +164,14 @@ ${o.join(`,
158
164
  console.error('${t.name} \u5931\u8D25:', err);
159
165
  // TODO: \u5904\u7406\u9519\u8BEF
160
166
  }
161
- });`,r=`/**
167
+ });`,n=`/**
162
168
  * \u8C03\u7528 ${s} (Promise \u98CE\u683C)
163
169
  * ${t.description}
164
170
  */
165
- async function call${k(t.name)}() {
171
+ async function call${y(t.name)}() {
166
172
  try {
167
173
  const result = await ${s}({
168
- ${o.join(`,
174
+ ${r.join(`,
169
175
  `)}
170
176
  });
171
177
  // \u6210\u529F\u5904\u7406
@@ -188,14 +194,14 @@ const result = ref(null);
188
194
  const loading = ref(false);
189
195
  const error = ref(null);
190
196
 
191
- ${r}
197
+ ${n}
192
198
 
193
199
  // \u5728\u7EC4\u4EF6\u4E2D\u8C03\u7528
194
200
  async function handleAction() {
195
201
  loading.value = true;
196
202
  error.value = null;
197
203
  try {
198
- result.value = await call${k(t.name)}();
204
+ result.value = await call${y(t.name)}();
199
205
  } catch (e) {
200
206
  error.value = e;
201
207
  } finally {
@@ -223,11 +229,11 @@ export default {
223
229
  /**
224
230
  * \u8C03\u7528 ${t.name} API
225
231
  */
226
- call${k(t.name)}() {
232
+ call${y(t.name)}() {
227
233
  this.loading = true;
228
234
  this.error = null;
229
235
 
230
- ${n.split(`
236
+ ${o.split(`
231
237
  `).map(a=>" "+a).join(`
232
238
  `)}
233
239
  }
@@ -236,10 +242,9 @@ export default {
236
242
  </script>`,explanation:`\u8FD9\u662F ${s} \u7684 M8.3 (Vue2) \u8C03\u7528\u793A\u4F8B\u3002
237
243
  - \u4F7F\u7528\u56DE\u8C03\u51FD\u6570\u98CE\u683C
238
244
  - \u5305\u542B success \u548C error \u56DE\u8C03\u5904\u7406
239
- - \u53EF\u6839\u636E\u9700\u8981\u6539\u4E3A Promise \u98CE\u683C`,frameworkVersion:"M8.3"}}function ke(t,e){return`<!-- #ifdef ${{wechat:"MP-WEIXIN",alipay:"MP-ALIPAY",h5:"H5",ejs:"APP-PLUS",dingtalk:"MP-DINGTALK"}[e.toLowerCase()]||e.toUpperCase()} -->
245
+ - \u53EF\u6839\u636E\u9700\u8981\u6539\u4E3A Promise \u98CE\u683C`,frameworkVersion:"M8.3"}}function we(t,e){return`<!-- #ifdef ${{wechat:"MP-WEIXIN",alipay:"MP-ALIPAY",h5:"H5",ejs:"APP-PLUS",dingtalk:"MP-DINGTALK"}[e.toLowerCase()]||e.toUpperCase()} -->
240
246
  ${t}
241
- <!-- #endif -->`}function k(t){return t?t.charAt(0).toUpperCase()+t.slice(1):""}function ve(t){if(!t)return"''";if(t.default)return t.default;switch(t.type.toLowerCase()){case"string":return"''";case"number":return"0";case"boolean":return"false";case"array":return"[]";case"object":return"{}";default:return"null"}}function $e(t){switch(t.toLowerCase()){case"string":return"'\u8BF7\u586B\u5199'";case"number":return"0";case"boolean":return"true";case"array":return"[]";case"object":return"{}";case"function":return"() => {}";default:return"null"}}function xe(t){let e=[];return t.template&&e.push(t.template),t.script&&(e.push(""),e.push(t.script)),t.style&&(e.push(""),e.push(t.style)),e.join(`
242
- `)}function we(t){return t==="M8.4"?{script:`<script setup>
247
+ <!-- #endif -->`}function y(t){return t?t.charAt(0).toUpperCase()+t.slice(1):""}function xe(t){if(!t)return"''";if(t.default)return t.default;switch(t.type.toLowerCase()){case"string":return"''";case"number":return"0";case"boolean":return"false";case"array":return"[]";case"object":return"{}";default:return"null"}}function ve(t){switch(t.toLowerCase()){case"string":return"'\u8BF7\u586B\u5199'";case"number":return"0";case"boolean":return"true";case"array":return"[]";case"object":return"{}";case"function":return"() => {}";default:return"null"}}function $e(t){return t==="M8.4"?{script:`<script setup>
243
248
  /**
244
249
  * Util.ajax \u4F7F\u7528\u793A\u4F8B
245
250
  * \u6846\u67B6\u7248\u672C: M8.4 (Vue3 Composition API)
@@ -399,29 +404,6 @@ export default {
399
404
  };
400
405
  </script>`,explanation:`\u8FD9\u662F Util.ajax \u7684 M8.3 (Vue2) \u4F7F\u7528\u793A\u4F8B\u3002
401
406
 
402
- ### Mock \u6A21\u62DF\u6570\u636E\u96C6\u6210
403
-
404
- \u5982\u679C\u9700\u8981\u4F7F\u7528 Mock.js \u6A21\u62DF\u6570\u636E\uFF0C\u53EF\u4EE5\u5728 main.js \u6216\u5355\u72EC\u7684 mock.js \u6587\u4EF6\u4E2D\u914D\u7F6E\uFF1A
405
-
406
- \`\`\`javascript
407
- import Mock from 'mockjs';
408
-
409
- // \u62E6\u622A Ajax \u8BF7\u6C42
410
- Mock.mock(new RegExp('/api/data'), 'post', {
411
- code: 1,
412
- message: 'success',
413
- data: {
414
- 'list|10': [{
415
- 'id|+1': 1,
416
- 'title': '@ctitle(5, 10)',
417
- 'date': '@date("yyyy-MM-dd")'
418
- }]
419
- }
420
- });
421
-
422
- // \u6CE8\u610F\uFF1AMock.js \u4F1A\u62E6\u622A XMLHttpRequest\uFF0CUtil.ajax \u57FA\u4E8E axios\uFF0C\u5B8C\u5168\u517C\u5BB9\u3002
423
- \`\`\`
424
-
425
407
  **\u63A8\u8350\u4F7F\u7528 Util.ajax \u800C\u4E0D\u662F ejs.http \u6216\u539F\u751F fetch\uFF1A**
426
408
  - Util.ajax \u662F\u6846\u67B6\u5BF9 axios \u7684\u5C01\u88C5\uFF0C\u63D0\u4F9B\u7EDF\u4E00\u7684\u8BF7\u6C42\u5904\u7406
427
409
  - \u81EA\u52A8\u5904\u7406 token \u548C\u4EE3\u7406
@@ -433,7 +415,7 @@ Mock.mock(new RegExp('/api/data'), 'post', {
433
415
  - type: \u8BF7\u6C42\u65B9\u6CD5\uFF0CGET \u6216 POST
434
416
  - data: \u8BF7\u6C42\u6570\u636E
435
417
  - dataPath: \u54CD\u5E94\u6570\u636E\u8DEF\u5F84
436
- - success/error: \u56DE\u8C03\u51FD\u6570`,frameworkVersion:"M8.3"}}function Me(t){return t==="M8.4"?{script:`<script setup>
418
+ - success/error: \u56DE\u8C03\u51FD\u6570`,frameworkVersion:"M8.3"}}function ke(t){return t==="M8.4"?{script:`<script setup>
437
419
  /**
438
420
  * Util.upload \u6587\u4EF6\u4E0A\u4F20\u793A\u4F8B
439
421
  * \u6846\u67B6\u7248\u672C: M8.4 (Vue3 Composition API)
@@ -538,7 +520,7 @@ export default {
538
520
 
539
521
  **\u63A8\u8350\u4F7F\u7528 filePath \u65B9\u5F0F\u4E0A\u4F20\uFF1A**
540
522
  - \u652F\u6301\u8DE8\u7AEF\uFF08H5\u3001\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u3001\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F\uFF09
541
- - filePath \u9700\u8981\u4E0E name \u914D\u5957\u4F7F\u7528`,frameworkVersion:"M8.3"}}function jt(t,e){if(t.name.toLowerCase()==="ajax")return we(e);if(t.name.toLowerCase()==="upload")return Me(e);let s=t.fullName,o=t.params.filter(n=>n.required).map(n=>`${n.name}: ${$e(n.type)} // ${n.description}`).join(`,
523
+ - filePath \u9700\u8981\u4E0E name \u914D\u5957\u4F7F\u7528`,frameworkVersion:"M8.3"}}function ft(t,e){if(t.name.toLowerCase()==="ajax")return $e(e);if(t.name.toLowerCase()==="upload")return ke(e);let s=t.fullName,r=t.params.filter(o=>o.required).map(o=>`${o.name}: ${ve(o.type)} // ${o.description}`).join(`,
542
524
  `);return e==="M8.4"?{script:`<script setup>
543
525
  /**
544
526
  * ${t.fullName} \u4F7F\u7528\u793A\u4F8B
@@ -547,8 +529,8 @@ export default {
547
529
  */
548
530
 
549
531
  // \u8C03\u7528 ${s}
550
- const result = ${s}(${o?`{
551
- ${o}
532
+ const result = ${s}(${r?`{
533
+ ${r}
552
534
  }`:""});
553
535
  console.log('\u7ED3\u679C:', result);
554
536
  </script>`,explanation:`\u8FD9\u662F ${t.fullName} \u7684\u4F7F\u7528\u793A\u4F8B\u3002
@@ -561,17 +543,17 @@ ${t.description}`,frameworkVersion:"M8.4"}:{script:`<script>
561
543
  export default {
562
544
  methods: {
563
545
  useUtil() {
564
- const result = ${s}(${o?`{
565
- ${o}
546
+ const result = ${s}(${r?`{
547
+ ${r}
566
548
  }`:""});
567
549
  console.log('\u7ED3\u679C:', result);
568
550
  }
569
551
  }
570
552
  };
571
553
  </script>`,explanation:`\u8FD9\u662F ${t.fullName} \u7684\u4F7F\u7528\u793A\u4F8B\u3002
572
- ${t.description}`,frameworkVersion:"M8.3"}}var bt={form:[{related:["field","button","picker","datepicker"],reason:"\u8868\u5355\u5E38\u7528\u7EC4\u4EF6"},{related:["toast","dialog"],reason:"\u8868\u5355\u63D0\u4EA4\u53CD\u9988"}],field:[{related:["form","button"],reason:"\u8F93\u5165\u6846\u5E38\u4E0E\u8868\u5355\u914D\u5408\u4F7F\u7528"},{related:["picker","datepicker"],reason:"\u9009\u62E9\u7C7B\u8F93\u5165"}],button:[{related:["form","dialog"],reason:"\u6309\u94AE\u5E38\u7528\u573A\u666F"},{related:["loading"],reason:"\u6309\u94AE\u52A0\u8F7D\u72B6\u6001"}],cell:[{related:["minirefresh","empty"],reason:"\u5217\u8868\u5E38\u7528\u7EC4\u4EF6"},{related:["swipecell"],reason:"\u6ED1\u52A8\u64CD\u4F5C"}],minirefresh:[{related:["cell","empty","loading"],reason:"\u4E0B\u62C9\u5237\u65B0\u5217\u8868\u7EC4\u4EF6"}],picker:[{related:["field","form"],reason:"\u9009\u62E9\u5668\u5E38\u4E0E\u8868\u5355\u914D\u5408"},{related:["datepicker","area"],reason:"\u5176\u4ED6\u9009\u62E9\u5668"}],datepicker:[{related:["field","form"],reason:"\u65E5\u671F\u9009\u62E9\u5E38\u4E0E\u8868\u5355\u914D\u5408"},{related:["picker","calendar"],reason:"\u5176\u4ED6\u65E5\u671F\u7EC4\u4EF6"}],uploader:[{related:["imagepreview","toast"],reason:"\u4E0A\u4F20\u76F8\u5173\u7EC4\u4EF6"},{related:["form","button"],reason:"\u8868\u5355\u4E0A\u4F20\u573A\u666F"}],dialog:[{related:["button","form"],reason:"\u5F39\u7A97\u5185\u5BB9\u7EC4\u4EF6"},{related:["toast","overlay"],reason:"\u5176\u4ED6\u53CD\u9988\u7EC4\u4EF6"}],toast:[{related:["dialog","notify"],reason:"\u5176\u4ED6\u63D0\u793A\u7EC4\u4EF6"},{related:["loading"],reason:"\u52A0\u8F7D\u63D0\u793A"}]};function St(t,e){let s=[],o=e.toLowerCase(),n=bt[o];if(n)for(let r of n)for(let a of r.related){let i=t.components.get(a);i&&!s.some(l=>l.name===a)&&s.push({name:a,displayName:i.displayName,reason:r.reason,docPath:i.filePath})}return s.slice(0,5)}function Ct(t){if(t.length===0)return"";let e=["","","**\u76F8\u5173\u7EC4\u4EF6\u63A8\u8350\uFF1A**"];for(let s of t)e.push(`- ${s.displayName} (${s.name}): ${s.reason}`);return e.join(`
573
- `)}function w(t,e){let s=e.options?.frameworkVersion||"M8.4",o=e.options?.platform;if(e.type==="component"){let n=t.components.get(e.name.toLowerCase());if(!n)return{explanation:`\u672A\u627E\u5230\u7EC4\u4EF6: ${e.name}`,frameworkVersion:s};let r=$t(n,s,o),a=St(t,e.name);return a.length>0&&(r.explanation+=Ct(a)),r}if(e.type==="ejsApi"){let n="",r=e.name;e.name.includes(".")&&([n,r]=e.name.split("."));let a;if(n)a=t.ejsApis.get(`${n}.${r}`);else for(let[,i]of t.ejsApis)if(i.name===r){a=i;break}return a?Mt(a,s):{explanation:`\u672A\u627E\u5230 API: ${e.name}`,frameworkVersion:s}}if(e.type==="util"){let n=e.name.toLowerCase();n.startsWith("util.")&&(n=n.replace("util.",""));let r=t.utilMethods?.get(n);return r?jt(r,s):n==="ajax"?we(s):n==="upload"?Me(s):{explanation:`\u672A\u627E\u5230 Util \u65B9\u6CD5: ${e.name}`,frameworkVersion:s}}return{explanation:`\u4E0D\u652F\u6301\u7684\u751F\u6210\u7C7B\u578B: ${e.type}`,frameworkVersion:s}}var z={ejsH5:"EJS H5 \u5E94\u7528",ejsMiniProgram:"EJS \u65B0\u70B9\u5C0F\u7A0B\u5E8F",h5:"H5",dingtalk:"\u9489\u9489",wechat:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F",alipay:"\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F",weex:"Weex"},Pt={ejsh5:"ejsH5",ejs:"ejsH5",ejsminiprogram:"ejsMiniProgram",h5:"h5",dingtalk:"dingtalk",wechat:"wechat",alipay:"alipay",weex:"weex"};function At(t,e){let s=[],o=[];for(let n of e){let r=Pt[n.toLowerCase()];if(!r)continue;let a=t[r],i=z[r]||n;a===!1?s.push(i):typeof a=="string"&&o.push(`${i}: ${a}`)}return{unsupported:s,limitations:o}}function It(t,e,s,o){let n=[];if(s==="component"){let r=t.components.get(e.toLowerCase());if(r)for(let[a,i]of t.components){if(a===e.toLowerCase()||i.category!==r.category)continue;let l=!0;for(let c of o){let u=Object.entries(z).find(([p,f])=>f===c)?.[0];if(u&&i.platformSupport[u]===!1){l=!1;break}}l&&n.push(`${i.displayName} (${a})`)}}else{let r=e.split("."),a=r.length>1?r[0]:"";for(let[i,l]of t.ejsApis){if(i===e||l.module!==a)continue;let c=!0;for(let u of o){let p=Object.entries(z).find(([f,m])=>m===u)?.[0];if(p&&l.platformSupport[p]===!1){c=!1;break}}c&&n.push(`ejs.${l.module}.${l.name}`)}}return n.slice(0,3)}function je(t,e,s){let o={items:[],allCompatible:!0,issues:[],suggestions:[]};for(let n of e){let r=n.toLowerCase(),a=!1,i="component",l,c=n,u=t.components.get(r);if(u&&(a=!0,i="component",l=u.platformSupport,c=u.displayName),!a){let g=t.ejsApis.get(r);if(g)a=!0,i="ejsApi",l=g.platformSupport,c=`ejs.${g.module}.${g.name}`;else for(let[L,h]of t.ejsApis)if(h.name.toLowerCase()===r||L===r){a=!0,i="ejsApi",l=h.platformSupport,c=`ejs.${h.module}.${h.name}`;break}}if(!a||!l){o.items.push({name:n,type:"component",platformSupport:Ut(),unsupportedPlatforms:[],limitations:[`\u672A\u627E\u5230: ${n}`]}),o.issues.push(`\u672A\u627E\u5230\u7EC4\u4EF6\u6216 API: ${n}`);continue}let{unsupported:p,limitations:f}=At(l,s),m={name:c,type:i,platformSupport:l,unsupportedPlatforms:p,limitations:f};if(p.length>0){o.allCompatible=!1,o.issues.push(`${c} \u4E0D\u652F\u6301: ${p.join(", ")}`);let g=It(t,n,i,p);g.length>0&&(m.alternatives=g,o.suggestions.push(`${c} \u7684\u66FF\u4EE3\u65B9\u6848: ${g.join(", ")}`))}f.length>0&&o.issues.push(...f.map(g=>`${c} - ${g}`)),o.items.push(m)}return o.allCompatible?o.suggestions.push("\u6240\u6709\u7EC4\u4EF6\u548C API \u5728\u76EE\u6807\u5E73\u53F0\u4E0A\u5747\u5B8C\u5168\u652F\u6301\u3002"):o.suggestions.push("\u5EFA\u8BAE\u5728\u5F00\u53D1\u65F6\u4F7F\u7528\u6761\u4EF6\u7F16\u8BD1 (#ifdef) \u5904\u7406\u5E73\u53F0\u5DEE\u5F02\u3002"),o}function Ut(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}var Nt={cell:{name:"cell",displayName:"\u5355\u5143\u683C",description:"\u7528\u4E8E\u5C55\u793A\u5217\u8868\u9879\uFF0C\u652F\u6301\u6807\u9898\u3001\u63CF\u8FF0\u3001\u56FE\u6807\u7B49",docPath:"009-UI\u7EC4\u4EF6/008-cell\u5355\u5143\u683C.md"},minirefresh:{name:"minirefresh",displayName:"\u4E0B\u62C9\u5237\u65B0",description:"\u5B9E\u73B0\u4E0B\u62C9\u5237\u65B0\u548C\u4E0A\u62C9\u52A0\u8F7D\u66F4\u591A\u529F\u80FD",docPath:"009-UI\u7EC4\u4EF6/042-minirefresh\u4E0B\u62C9\u5237\u65B0.md"},loading:{name:"loading",displayName:"\u52A0\u8F7D",description:"\u663E\u793A\u52A0\u8F7D\u72B6\u6001",docPath:"009-UI\u7EC4\u4EF6/020-loading\u52A0\u8F7D.md"},form:{name:"form",displayName:"\u8868\u5355",description:"\u8868\u5355\u5BB9\u5668\uFF0C\u63D0\u4F9B\u8868\u5355\u9A8C\u8BC1\u529F\u80FD",docPath:"009-UI\u7EC4\u4EF6/015-form\u8868\u5355.md"},field:{name:"field",displayName:"\u8F93\u5165\u6846",description:"\u8868\u5355\u8F93\u5165\u6846\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/013-field\u8F93\u5165\u6846.md"},button:{name:"button",displayName:"\u6309\u94AE",description:"\u6309\u94AE\u7EC4\u4EF6\uFF0C\u652F\u6301\u591A\u79CD\u7C7B\u578B\u548C\u72B6\u6001",docPath:"009-UI\u7EC4\u4EF6/005-button\u6309\u94AE.md"},picker:{name:"picker",displayName:"\u9009\u62E9\u5668",description:"\u901A\u7528\u9009\u62E9\u5668\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/026-picker\u9009\u62E9\u5668.md"},datepicker:{name:"datepicker",displayName:"\u65E5\u671F\u9009\u62E9",description:"\u65E5\u671F\u9009\u62E9\u5668\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/011-datepicker\u65E5\u671F\u9009\u62E9.md"},uploader:{name:"uploader",displayName:"\u6587\u4EF6\u4E0A\u4F20",description:"\u6587\u4EF6\u4E0A\u4F20\u7EC4\u4EF6\uFF0C\u652F\u6301\u56FE\u7247\u9884\u89C8",docPath:"009-UI\u7EC4\u4EF6/040-uploader\u6587\u4EF6\u4E0A\u4F20.md"},imagepreview:{name:"imagepreview",displayName:"\u56FE\u7247\u9884\u89C8",description:"\u56FE\u7247\u9884\u89C8\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/058-imagepreview\u56FE\u7247\u9884\u89C8.md"},empty:{name:"empty",displayName:"\u7A7A\u72B6\u6001",description:"\u7A7A\u72B6\u6001\u5360\u4F4D\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/057-empty\u7A7A\u72B6\u6001.md"},toast:{name:"toast",displayName:"\u8F7B\u63D0\u793A",description:"\u8F7B\u91CF\u7EA7\u63D0\u793A\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/045-toast\u8F7B\u63D0\u793A.md"},dialog:{name:"dialog",displayName:"\u5F39\u51FA\u6846",description:"\u5F39\u51FA\u6846\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/049-dialog\u5F39\u51FA\u6846.md"}};function be(t){return t.map(e=>Nt[e.toLowerCase()]).filter(e=>e!==void 0)}function Se(t){if(t.length===0)return"";let e=["","**\u76F8\u5173\u7EC4\u4EF6\u6587\u6863\uFF1A**",""];for(let s of t)e.push(`- **${s.displayName}** (${s.name}): ${s.description}`),e.push(` - \u6587\u6863\u8DEF\u5F84: \`${s.docPath}\``);return e.join(`
574
- `)}var J={\u5217\u8868\u8BE6\u60C5:{name:"\u5217\u8868\u8BE6\u60C5",description:"\u5217\u8868\u9875\u9762\u70B9\u51FB\u8FDB\u5165\u8BE6\u60C5\u9875\u7684\u5178\u578B\u6A21\u5F0F\uFF0C\u5305\u542B\u4E0B\u62C9\u5237\u65B0\u3001\u52A0\u8F7D\u66F4\u591A\u3001\u9875\u9762\u8DF3\u8F6C\u7B49\u529F\u80FD",components:["cell","minirefresh","loading"],apis:["navigator.push","navigator.pop"],vue2Code:Rt(),vue3Code:Lt(),keyPoints:["\u4F7F\u7528 minirefresh \u7EC4\u4EF6\u5B9E\u73B0\u4E0B\u62C9\u5237\u65B0\u548C\u52A0\u8F7D\u66F4\u591A","\u4F7F\u7528 cell \u7EC4\u4EF6\u5C55\u793A\u5217\u8868\u9879","\u4F7F\u7528 navigator.push \u8DF3\u8F6C\u5230\u8BE6\u60C5\u9875","\u8BE6\u60C5\u9875\u4F7F\u7528 navigator.pop \u8FD4\u56DE\u5217\u8868\u9875"]},\u8868\u5355\u63D0\u4EA4:{name:"\u8868\u5355\u63D0\u4EA4",description:"\u8868\u5355\u586B\u5199\u548C\u63D0\u4EA4\u7684\u5178\u578B\u6A21\u5F0F\uFF0C\u5305\u542B\u8868\u5355\u9A8C\u8BC1\u3001\u6570\u636E\u63D0\u4EA4\u3001\u7ED3\u679C\u53CD\u9988\u7B49\u529F\u80FD",components:["form","field","button","picker","datepicker"],apis:["ui.toast","ui.showWaiting","ui.closeWaiting"],vue2Code:Dt(),vue3Code:Tt(),keyPoints:["\u4F7F\u7528 form \u7EC4\u4EF6\u5305\u88F9\u8868\u5355\u5143\u7D20","\u4F7F\u7528 field \u7EC4\u4EF6\u5B9E\u73B0\u8F93\u5165\u6846","\u4F7F\u7528 picker/datepicker \u5B9E\u73B0\u9009\u62E9\u5668","\u63D0\u4EA4\u524D\u8FDB\u884C\u8868\u5355\u9A8C\u8BC1","\u4F7F\u7528 loading \u63D0\u793A\u7528\u6237\u7B49\u5F85","\u4F7F\u7528 toast \u53CD\u9988\u63D0\u4EA4\u7ED3\u679C"]},\u56FE\u7247\u4E0A\u4F20:{name:"\u56FE\u7247\u4E0A\u4F20",description:"\u56FE\u7247\u9009\u62E9\u548C\u4E0A\u4F20\u7684\u5178\u578B\u6A21\u5F0F\uFF0C\u5305\u542B\u56FE\u7247\u9009\u62E9\u3001\u9884\u89C8\u3001\u538B\u7F29\u3001\u4E0A\u4F20\u7B49\u529F\u80FD",components:["uploader","imagepreview"],apis:["io.chooseImage","io.uploadFile"],vue2Code:Et(),vue3Code:Vt(),keyPoints:["\u4F7F\u7528 uploader \u7EC4\u4EF6\u6216 io.chooseImage \u9009\u62E9\u56FE\u7247","\u652F\u6301\u56FE\u7247\u9884\u89C8\u529F\u80FD","\u4E0A\u4F20\u524D\u53EF\u8FDB\u884C\u56FE\u7247\u538B\u7F29","\u663E\u793A\u4E0A\u4F20\u8FDB\u5EA6"]}};function Rt(){return{template:`<template>
554
+ ${t.description}`,frameworkVersion:"M8.3"}}var mt={form:[{related:["field","button","picker","datepicker"],reason:"\u8868\u5355\u5E38\u7528\u7EC4\u4EF6"},{related:["toast","dialog"],reason:"\u8868\u5355\u63D0\u4EA4\u53CD\u9988"}],field:[{related:["form","button"],reason:"\u8F93\u5165\u6846\u5E38\u4E0E\u8868\u5355\u914D\u5408\u4F7F\u7528"},{related:["picker","datepicker"],reason:"\u9009\u62E9\u7C7B\u8F93\u5165"}],button:[{related:["form","dialog"],reason:"\u6309\u94AE\u5E38\u7528\u573A\u666F"},{related:["loading"],reason:"\u6309\u94AE\u52A0\u8F7D\u72B6\u6001"}],cell:[{related:["minirefresh","empty"],reason:"\u5217\u8868\u5E38\u7528\u7EC4\u4EF6"},{related:["swipecell"],reason:"\u6ED1\u52A8\u64CD\u4F5C"}],minirefresh:[{related:["cell","empty","loading"],reason:"\u4E0B\u62C9\u5237\u65B0\u5217\u8868\u7EC4\u4EF6"}],picker:[{related:["field","form"],reason:"\u9009\u62E9\u5668\u5E38\u4E0E\u8868\u5355\u914D\u5408"},{related:["datepicker","area"],reason:"\u5176\u4ED6\u9009\u62E9\u5668"}],datepicker:[{related:["field","form"],reason:"\u65E5\u671F\u9009\u62E9\u5E38\u4E0E\u8868\u5355\u914D\u5408"},{related:["picker","calendar"],reason:"\u5176\u4ED6\u65E5\u671F\u7EC4\u4EF6"}],uploader:[{related:["imagepreview","toast"],reason:"\u4E0A\u4F20\u76F8\u5173\u7EC4\u4EF6"},{related:["form","button"],reason:"\u8868\u5355\u4E0A\u4F20\u573A\u666F"}],dialog:[{related:["button","form"],reason:"\u5F39\u7A97\u5185\u5BB9\u7EC4\u4EF6"},{related:["toast","overlay"],reason:"\u5176\u4ED6\u53CD\u9988\u7EC4\u4EF6"}],toast:[{related:["dialog","notify"],reason:"\u5176\u4ED6\u63D0\u793A\u7EC4\u4EF6"},{related:["loading"],reason:"\u52A0\u8F7D\u63D0\u793A"}]};function ht(t,e){let s=[],r=e.toLowerCase(),o=mt[r];if(o)for(let n of o)for(let a of n.related){let l=t.components.get(a);l&&!s.some(i=>i.name===a)&&s.push({name:a,displayName:l.displayName,reason:n.reason,docPath:l.filePath})}return s.slice(0,5)}function gt(t){if(t.length===0)return"";let e=["","","**\u76F8\u5173\u7EC4\u4EF6\u63A8\u8350\uFF1A**"];for(let s of t)e.push(`- ${s.displayName} (${s.name}): ${s.reason}`);return e.join(`
555
+ `)}function Me(t,e){let s=e.options?.frameworkVersion||"M8.4",r=e.options?.platform;if(e.type==="component"){let o=t.components.get(e.name.toLowerCase());if(!o)return{explanation:`\u672A\u627E\u5230\u7EC4\u4EF6: ${e.name}`,frameworkVersion:s};let n=ct(o,s,r),a=ht(t,e.name);return a.length>0&&(n.explanation+=gt(a)),n}if(e.type==="ejsApi"){let o="",n=e.name;e.name.includes(".")&&([o,n]=e.name.split("."));let a;if(o)a=t.ejsApis.get(`${o}.${n}`);else for(let[,l]of t.ejsApis)if(l.name===n){a=l;break}return a?dt(a,s):{explanation:`\u672A\u627E\u5230 API: ${e.name}`,frameworkVersion:s}}if(e.type==="util"){let o=e.name.toLowerCase();o.startsWith("util.")&&(o=o.replace("util.",""));let n=t.utilMethods?.get(o);return n?ft(n,s):o==="ajax"?$e(s):o==="upload"?ke(s):{explanation:`\u672A\u627E\u5230 Util \u65B9\u6CD5: ${e.name}`,frameworkVersion:s}}return{explanation:`\u4E0D\u652F\u6301\u7684\u751F\u6210\u7C7B\u578B: ${e.type}`,frameworkVersion:s}}var yt={cell:{name:"cell",displayName:"\u5355\u5143\u683C",description:"\u7528\u4E8E\u5C55\u793A\u5217\u8868\u9879\uFF0C\u652F\u6301\u6807\u9898\u3001\u63CF\u8FF0\u3001\u56FE\u6807\u7B49",docPath:"009-UI\u7EC4\u4EF6/008-cell\u5355\u5143\u683C.md"},minirefresh:{name:"minirefresh",displayName:"\u4E0B\u62C9\u5237\u65B0",description:"\u5B9E\u73B0\u4E0B\u62C9\u5237\u65B0\u548C\u4E0A\u62C9\u52A0\u8F7D\u66F4\u591A\u529F\u80FD",docPath:"009-UI\u7EC4\u4EF6/042-minirefresh\u4E0B\u62C9\u5237\u65B0.md"},loading:{name:"loading",displayName:"\u52A0\u8F7D",description:"\u663E\u793A\u52A0\u8F7D\u72B6\u6001",docPath:"009-UI\u7EC4\u4EF6/020-loading\u52A0\u8F7D.md"},form:{name:"form",displayName:"\u8868\u5355",description:"\u8868\u5355\u5BB9\u5668\uFF0C\u63D0\u4F9B\u8868\u5355\u9A8C\u8BC1\u529F\u80FD",docPath:"009-UI\u7EC4\u4EF6/015-form\u8868\u5355.md"},field:{name:"field",displayName:"\u8F93\u5165\u6846",description:"\u8868\u5355\u8F93\u5165\u6846\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/013-field\u8F93\u5165\u6846.md"},button:{name:"button",displayName:"\u6309\u94AE",description:"\u6309\u94AE\u7EC4\u4EF6\uFF0C\u652F\u6301\u591A\u79CD\u7C7B\u578B\u548C\u72B6\u6001",docPath:"009-UI\u7EC4\u4EF6/005-button\u6309\u94AE.md"},picker:{name:"picker",displayName:"\u9009\u62E9\u5668",description:"\u901A\u7528\u9009\u62E9\u5668\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/026-picker\u9009\u62E9\u5668.md"},datepicker:{name:"datepicker",displayName:"\u65E5\u671F\u9009\u62E9",description:"\u65E5\u671F\u9009\u62E9\u5668\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/011-datepicker\u65E5\u671F\u9009\u62E9.md"},uploader:{name:"uploader",displayName:"\u6587\u4EF6\u4E0A\u4F20",description:"\u6587\u4EF6\u4E0A\u4F20\u7EC4\u4EF6\uFF0C\u652F\u6301\u56FE\u7247\u9884\u89C8",docPath:"009-UI\u7EC4\u4EF6/040-uploader\u6587\u4EF6\u4E0A\u4F20.md"},imagepreview:{name:"imagepreview",displayName:"\u56FE\u7247\u9884\u89C8",description:"\u56FE\u7247\u9884\u89C8\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/058-imagepreview\u56FE\u7247\u9884\u89C8.md"},empty:{name:"empty",displayName:"\u7A7A\u72B6\u6001",description:"\u7A7A\u72B6\u6001\u5360\u4F4D\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/057-empty\u7A7A\u72B6\u6001.md"},toast:{name:"toast",displayName:"\u8F7B\u63D0\u793A",description:"\u8F7B\u91CF\u7EA7\u63D0\u793A\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/045-toast\u8F7B\u63D0\u793A.md"},dialog:{name:"dialog",displayName:"\u5F39\u51FA\u6846",description:"\u5F39\u51FA\u6846\u7EC4\u4EF6",docPath:"009-UI\u7EC4\u4EF6/049-dialog\u5F39\u51FA\u6846.md"}};function Ce(t){return t.map(e=>yt[e.toLowerCase()]).filter(e=>e!==void 0)}function je(t){if(t.length===0)return"";let e=["","**\u76F8\u5173\u7EC4\u4EF6\u6587\u6863\uFF1A**",""];for(let s of t)e.push(`- **${s.displayName}** (${s.name}): ${s.description}`),e.push(` - \u6587\u6863\u8DEF\u5F84: \`${s.docPath}\``);return e.join(`
556
+ `)}var J={\u5217\u8868\u8BE6\u60C5:{name:"\u5217\u8868\u8BE6\u60C5",description:"\u5217\u8868\u9875\u9762\u70B9\u51FB\u8FDB\u5165\u8BE6\u60C5\u9875\u7684\u5178\u578B\u6A21\u5F0F\uFF0C\u5305\u542B\u4E0B\u62C9\u5237\u65B0\u3001\u52A0\u8F7D\u66F4\u591A\u3001\u9875\u9762\u8DF3\u8F6C\u7B49\u529F\u80FD",components:["cell","minirefresh","loading"],apis:["navigator.push","navigator.pop"],vue2Code:wt(),vue3Code:xt(),keyPoints:["\u4F7F\u7528 minirefresh \u7EC4\u4EF6\u5B9E\u73B0\u4E0B\u62C9\u5237\u65B0\u548C\u52A0\u8F7D\u66F4\u591A","\u4F7F\u7528 cell \u7EC4\u4EF6\u5C55\u793A\u5217\u8868\u9879","\u4F7F\u7528 navigator.push \u8DF3\u8F6C\u5230\u8BE6\u60C5\u9875","\u8BE6\u60C5\u9875\u4F7F\u7528 navigator.pop \u8FD4\u56DE\u5217\u8868\u9875"]},\u8868\u5355\u63D0\u4EA4:{name:"\u8868\u5355\u63D0\u4EA4",description:"\u8868\u5355\u586B\u5199\u548C\u63D0\u4EA4\u7684\u5178\u578B\u6A21\u5F0F\uFF0C\u5305\u542B\u8868\u5355\u9A8C\u8BC1\u3001\u6570\u636E\u63D0\u4EA4\u3001\u7ED3\u679C\u53CD\u9988\u7B49\u529F\u80FD",components:["form","field","button","picker","datepicker"],apis:["ui.toast","ui.showWaiting","ui.closeWaiting"],vue2Code:vt(),vue3Code:$t(),keyPoints:["\u4F7F\u7528 form \u7EC4\u4EF6\u5305\u88F9\u8868\u5355\u5143\u7D20","\u4F7F\u7528 field \u7EC4\u4EF6\u5B9E\u73B0\u8F93\u5165\u6846","\u4F7F\u7528 picker/datepicker \u5B9E\u73B0\u9009\u62E9\u5668","\u63D0\u4EA4\u524D\u8FDB\u884C\u8868\u5355\u9A8C\u8BC1","\u4F7F\u7528 loading \u63D0\u793A\u7528\u6237\u7B49\u5F85","\u4F7F\u7528 toast \u53CD\u9988\u63D0\u4EA4\u7ED3\u679C"]},\u56FE\u7247\u4E0A\u4F20:{name:"\u56FE\u7247\u4E0A\u4F20",description:"\u56FE\u7247\u9009\u62E9\u548C\u4E0A\u4F20\u7684\u5178\u578B\u6A21\u5F0F\uFF0C\u5305\u542B\u56FE\u7247\u9009\u62E9\u3001\u9884\u89C8\u3001\u538B\u7F29\u3001\u4E0A\u4F20\u7B49\u529F\u80FD",components:["uploader","imagepreview"],apis:["io.chooseImage","io.uploadFile"],vue2Code:kt(),vue3Code:Mt(),keyPoints:["\u4F7F\u7528 uploader \u7EC4\u4EF6\u6216 io.chooseImage \u9009\u62E9\u56FE\u7247","\u652F\u6301\u56FE\u7247\u9884\u89C8\u529F\u80FD","\u4E0A\u4F20\u524D\u53EF\u8FDB\u884C\u56FE\u7247\u538B\u7F29","\u663E\u793A\u4E0A\u4F20\u8FDB\u5EA6"]}};function wt(){return{template:`<template>
575
557
  <div class="list-page">
576
558
  <!-- \u4E0B\u62C9\u5237\u65B0\u5217\u8868 -->
577
559
  <em-minirefresh
@@ -687,7 +669,7 @@ export default {
687
669
  min-height: 100vh;
688
670
  background: #f5f5f5;
689
671
  }
690
- </style>`,explanation:"\u5217\u8868\u8BE6\u60C5\u6A21\u5F0F\u7684 Vue2 \u5B9E\u73B0\uFF0C\u5305\u542B\u4E0B\u62C9\u5237\u65B0\u3001\u52A0\u8F7D\u66F4\u591A\u3001\u8DF3\u8F6C\u8BE6\u60C5\u7B49\u529F\u80FD",frameworkVersion:"M8.3"}}function Lt(){return{template:`<template>
672
+ </style>`,explanation:"\u5217\u8868\u8BE6\u60C5\u6A21\u5F0F\u7684 Vue2 \u5B9E\u73B0\uFF0C\u5305\u542B\u4E0B\u62C9\u5237\u65B0\u3001\u52A0\u8F7D\u66F4\u591A\u3001\u8DF3\u8F6C\u8BE6\u60C5\u7B49\u529F\u80FD",frameworkVersion:"M8.3"}}function xt(){return{template:`<template>
691
673
  <div class="list-page">
692
674
  <!-- \u4E0B\u62C9\u5237\u65B0\u5217\u8868 -->
693
675
  <em-minirefresh
@@ -796,7 +778,7 @@ onMounted(() => {
796
778
  min-height: 100vh;
797
779
  background: #f5f5f5;
798
780
  }
799
- </style>`,explanation:"\u5217\u8868\u8BE6\u60C5\u6A21\u5F0F\u7684 Vue3 \u5B9E\u73B0\uFF0C\u4F7F\u7528 Composition API \u548C <script setup> \u8BED\u6CD5",frameworkVersion:"M8.4"}}function Dt(){return{template:`<template>
781
+ </style>`,explanation:"\u5217\u8868\u8BE6\u60C5\u6A21\u5F0F\u7684 Vue3 \u5B9E\u73B0\uFF0C\u4F7F\u7528 Composition API \u548C <script setup> \u8BED\u6CD5",frameworkVersion:"M8.4"}}function vt(){return{template:`<template>
800
782
  <div class="form-page">
801
783
  <em-form ref="form" :model="formData" :rules="rules">
802
784
  <!-- \u6587\u672C\u8F93\u5165 -->
@@ -960,7 +942,7 @@ export default {
960
942
  margin-top: 24px;
961
943
  padding: 0 16px;
962
944
  }
963
- </style>`,explanation:"\u8868\u5355\u63D0\u4EA4\u6A21\u5F0F\u7684 Vue2 \u5B9E\u73B0\uFF0C\u5305\u542B\u8868\u5355\u9A8C\u8BC1\u3001\u9009\u62E9\u5668\u3001\u63D0\u4EA4\u53CD\u9988\u7B49\u529F\u80FD",frameworkVersion:"M8.3"}}function Tt(){return{template:`<template>
945
+ </style>`,explanation:"\u8868\u5355\u63D0\u4EA4\u6A21\u5F0F\u7684 Vue2 \u5B9E\u73B0\uFF0C\u5305\u542B\u8868\u5355\u9A8C\u8BC1\u3001\u9009\u62E9\u5668\u3001\u63D0\u4EA4\u53CD\u9988\u7B49\u529F\u80FD",frameworkVersion:"M8.3"}}function $t(){return{template:`<template>
964
946
  <div class="form-page">
965
947
  <em-form ref="formRef" :model="formData" :rules="rules">
966
948
  <!-- \u6587\u672C\u8F93\u5165 -->
@@ -1118,7 +1100,7 @@ async function onSubmit() {
1118
1100
  margin-top: 24px;
1119
1101
  padding: 0 16px;
1120
1102
  }
1121
- </style>`,explanation:"\u8868\u5355\u63D0\u4EA4\u6A21\u5F0F\u7684 Vue3 \u5B9E\u73B0\uFF0C\u4F7F\u7528 Composition API \u548C reactive \u7BA1\u7406\u8868\u5355\u72B6\u6001",frameworkVersion:"M8.4"}}function Et(){return{template:`<template>
1103
+ </style>`,explanation:"\u8868\u5355\u63D0\u4EA4\u6A21\u5F0F\u7684 Vue3 \u5B9E\u73B0\uFF0C\u4F7F\u7528 Composition API \u548C reactive \u7BA1\u7406\u8868\u5355\u72B6\u6001",frameworkVersion:"M8.4"}}function kt(){return{template:`<template>
1122
1104
  <div class="upload-page">
1123
1105
  <em-uploader
1124
1106
  v-model="fileList"
@@ -1236,7 +1218,7 @@ export default {
1236
1218
  font-size: 12px;
1237
1219
  padding: 2px 0;
1238
1220
  }
1239
- </style>`,explanation:"\u56FE\u7247\u4E0A\u4F20\u6A21\u5F0F\u7684 Vue2 \u5B9E\u73B0\uFF0C\u5305\u542B\u591A\u56FE\u4E0A\u4F20\u3001\u8FDB\u5EA6\u663E\u793A\u3001\u5927\u5C0F\u9650\u5236\u7B49\u529F\u80FD",frameworkVersion:"M8.3"}}function Vt(){return{template:`<template>
1221
+ </style>`,explanation:"\u56FE\u7247\u4E0A\u4F20\u6A21\u5F0F\u7684 Vue2 \u5B9E\u73B0\uFF0C\u5305\u542B\u591A\u56FE\u4E0A\u4F20\u3001\u8FDB\u5EA6\u663E\u793A\u3001\u5927\u5C0F\u9650\u5236\u7B49\u529F\u80FD",frameworkVersion:"M8.3"}}function Mt(){return{template:`<template>
1240
1222
  <div class="upload-page">
1241
1223
  <em-uploader
1242
1224
  v-model="fileList"
@@ -1347,7 +1329,7 @@ async function uploadAll() {
1347
1329
  font-size: 12px;
1348
1330
  padding: 2px 0;
1349
1331
  }
1350
- </style>`,explanation:"\u56FE\u7247\u4E0A\u4F20\u6A21\u5F0F\u7684 Vue3 \u5B9E\u73B0\uFF0C\u4F7F\u7528 Composition API \u7BA1\u7406\u6587\u4EF6\u5217\u8868\u548C\u4E0A\u4F20\u72B6\u6001",frameworkVersion:"M8.4"}}function Ce(t,e){let s=J[t];if(!s){let r=t.toLowerCase();for(let[a,i]of Object.entries(J))if(a.toLowerCase().includes(r)||r.includes(a.toLowerCase())){let l=be(i.components),c=Se(l);return{...i,componentDocReferences:l,vue2Code:{...i.vue2Code,explanation:i.vue2Code.explanation+c},vue3Code:{...i.vue3Code,explanation:i.vue3Code.explanation+c}}}return{error:`\u672A\u627E\u5230\u573A\u666F: ${t}`,availablePatterns:Object.keys(J)}}let o=be(s.components),n=Se(o);return e?{...s,componentDocReferences:o,vue2Code:e==="M8.3"?{...s.vue2Code,explanation:s.vue2Code.explanation+n}:{explanation:"\u8BF7\u4F7F\u7528 M8.3 \u7248\u672C\u67E5\u770B",frameworkVersion:"M8.3"},vue3Code:e==="M8.4"?{...s.vue3Code,explanation:s.vue3Code.explanation+n}:{explanation:"\u8BF7\u4F7F\u7528 M8.4 \u7248\u672C\u67E5\u770B",frameworkVersion:"M8.4"}}:{...s,componentDocReferences:o,vue2Code:{...s.vue2Code,explanation:s.vue2Code.explanation+n},vue3Code:{...s.vue3Code,explanation:s.vue3Code.explanation+n}}}function Pe(t,e,s={}){return!e||e.trim().length===0?[]:_(t,e.trim(),{...s,limit:s.limit||20})}function Ae(t,e){if(!e)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u65B9\u6CD5\u540D\u79F0"};let s=e.toLowerCase();s.startsWith("util.")&&(s=s.replace("util.",""));let o=t.utilMethods.get(s);if(o){let r=[];for(let[i,l]of t.utilMethods)l.category===o.category&&i!==s&&r.push(l.fullName);let a="";return s==="ajax"?a=`Util.ajax \u662F M8 \u6846\u67B6\u63A8\u8350\u7684 HTTP \u8BF7\u6C42\u65B9\u6CD5\uFF0C\u57FA\u4E8E axios \u5C01\u88C5\u3002
1332
+ </style>`,explanation:"\u56FE\u7247\u4E0A\u4F20\u6A21\u5F0F\u7684 Vue3 \u5B9E\u73B0\uFF0C\u4F7F\u7528 Composition API \u7BA1\u7406\u6587\u4EF6\u5217\u8868\u548C\u4E0A\u4F20\u72B6\u6001",frameworkVersion:"M8.4"}}function Se(t,e){let s=J[t];if(!s){let n=t.toLowerCase();for(let[a,l]of Object.entries(J))if(a.toLowerCase().includes(n)||n.includes(a.toLowerCase())){let i=Ce(l.components),c=je(i);return{...l,componentDocReferences:i,vue2Code:{...l.vue2Code,explanation:l.vue2Code.explanation+c},vue3Code:{...l.vue3Code,explanation:l.vue3Code.explanation+c}}}return{error:`\u672A\u627E\u5230\u573A\u666F: ${t}`,availablePatterns:Object.keys(J)}}let r=Ce(s.components),o=je(r);return e?{...s,componentDocReferences:r,vue2Code:e==="M8.3"?{...s.vue2Code,explanation:s.vue2Code.explanation+o}:{explanation:"\u8BF7\u4F7F\u7528 M8.3 \u7248\u672C\u67E5\u770B",frameworkVersion:"M8.3"},vue3Code:e==="M8.4"?{...s.vue3Code,explanation:s.vue3Code.explanation+o}:{explanation:"\u8BF7\u4F7F\u7528 M8.4 \u7248\u672C\u67E5\u770B",frameworkVersion:"M8.4"}}:{...s,componentDocReferences:r,vue2Code:{...s.vue2Code,explanation:s.vue2Code.explanation+o},vue3Code:{...s.vue3Code,explanation:s.vue3Code.explanation+o}}}function be(t,e){if(!e)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u65B9\u6CD5\u540D\u79F0"};let s=e.toLowerCase();s.startsWith("util.")&&(s=s.replace("util.",""));let r=t.utilMethods.get(s);if(r){let n=[];for(let[l,i]of t.utilMethods)i.category===r.category&&l!==s&&n.push(i.fullName);let a="";return s==="ajax"?a=`Util.ajax \u662F M8 \u6846\u67B6\u63A8\u8350\u7684 HTTP \u8BF7\u6C42\u65B9\u6CD5\uFF0C\u57FA\u4E8E axios \u5C01\u88C5\u3002
1351
1333
  - \u652F\u6301 Promise \u548C\u56DE\u8C03\u4E24\u79CD\u98CE\u683C
1352
1334
  - \u81EA\u52A8\u5904\u7406 token \u548C\u4EE3\u7406
1353
1335
  - \u652F\u6301\u8BF7\u6C42\u53D6\u6D88\u548C\u5E76\u53D1\u63A7\u5236
@@ -1355,346 +1337,28 @@ async function uploadAll() {
1355
1337
  - \u652F\u6301 filePath \u548C files \u4E24\u79CD\u4E0A\u4F20\u65B9\u5F0F
1356
1338
  - filePath \u65B9\u5F0F\u652F\u6301\u8DE8\u7AEF\uFF08H5\u3001\u5FAE\u4FE1\u3001\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F\uFF09
1357
1339
  - files \u65B9\u5F0F\u4EC5\u652F\u6301 H5
1358
- - \u652F\u6301\u4E0A\u4F20\u8FDB\u5EA6\u56DE\u8C03`),{found:!0,method:o,relatedMethods:r.slice(0,5),usageTips:a}}let n=[];for(let[r,a]of t.utilMethods)(r.includes(s)||a.name.toLowerCase().includes(s))&&n.push(a.fullName);return{found:!1,error:`\u672A\u627E\u5230\u65B9\u6CD5: Util.${e}`,suggestions:n.slice(0,5)}}function Ie(t){let e=[];if(e.push(`# ${t.fullName}`),e.push(""),e.push(t.description),e.push(""),t.usageScenario&&(e.push("## \u4F7F\u7528\u573A\u666F"),e.push(""),e.push(t.usageScenario),e.push("")),t.version&&(e.push(`**\u7248\u672C\u8981\u6C42:** ${t.version}`),e.push("")),e.push("## \u5E73\u53F0\u652F\u6301"),e.push(""),e.push("| \u5E73\u53F0 | \u652F\u6301\u60C5\u51B5 |"),e.push("| --- | --- |"),e.push(`| H5 | ${U(t.platformSupport.h5)} |`),e.push(`| \u65B0\u70B9\u5C0F\u7A0B\u5E8F | ${U(t.platformSupport.ejsMiniProgram)} |`),e.push(`| \u5FAE\u4FE1\u5C0F\u7A0B\u5E8F | ${U(t.platformSupport.wechat)} |`),e.push(`| \u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F | ${U(t.platformSupport.alipay)} |`),e.push(""),t.params.length>0){e.push("## \u53C2\u6570"),e.push(""),e.push("| \u53C2\u6570 | \u7C7B\u578B | \u5FC5\u586B | \u8BF4\u660E |"),e.push("| --- | --- | --- | --- |");for(let s of t.params){let o=s.required?"\u662F":"\u5426",n=s.default?`${s.description}\uFF0C\u9ED8\u8BA4: ${s.default}`:s.description;e.push(`| ${s.name} | ${s.type} | ${o} | ${n} |`)}e.push("")}if(t.returns&&(e.push("## \u8FD4\u56DE\u503C"),e.push(""),e.push(`**\u7C7B\u578B:** ${t.returns.type}`),e.push(""),t.returns.fields&&t.returns.fields.length>0)){e.push("| \u5B57\u6BB5 | \u7C7B\u578B | \u8BF4\u660E |"),e.push("| --- | --- | --- |");for(let s of t.returns.fields)e.push(`| ${s.name} | ${s.type} | ${s.description} |`);e.push("")}if(t.examples.length>0){e.push("## \u4EE3\u7801\u793A\u4F8B"),e.push("");for(let s of t.examples)s.title&&(e.push(`### ${s.title}`),e.push("")),s.frameworkVersion&&(e.push(`> \u6846\u67B6\u7248\u672C: ${s.frameworkVersion}`),e.push("")),e.push(`\`\`\`${s.language}`),e.push(s.code),e.push("```"),e.push("")}return t.relatedMethods&&t.relatedMethods.length>0&&(e.push("## \u76F8\u5173\u65B9\u6CD5"),e.push(""),e.push(t.relatedMethods.map(s=>`- ${s}`).join(`
1340
+ - \u652F\u6301\u4E0A\u4F20\u8FDB\u5EA6\u56DE\u8C03`),{found:!0,method:r,relatedMethods:n.slice(0,5),usageTips:a}}let o=[];for(let[n,a]of t.utilMethods)(n.includes(s)||a.name.toLowerCase().includes(s))&&o.push(a.fullName);return{found:!1,error:`\u672A\u627E\u5230\u65B9\u6CD5: Util.${e}`,suggestions:o.slice(0,5)}}function Pe(t){let e=[];if(e.push(`# ${t.fullName}`),e.push(""),e.push(t.description),e.push(""),t.usageScenario&&(e.push("## \u4F7F\u7528\u573A\u666F"),e.push(""),e.push(t.usageScenario),e.push("")),t.version&&(e.push(`**\u7248\u672C\u8981\u6C42:** ${t.version}`),e.push("")),e.push("## \u5E73\u53F0\u652F\u6301"),e.push(""),e.push("| \u5E73\u53F0 | \u652F\u6301\u60C5\u51B5 |"),e.push("| --- | --- |"),e.push(`| H5 | ${L(t.platformSupport.h5)} |`),e.push(`| \u65B0\u70B9\u5C0F\u7A0B\u5E8F | ${L(t.platformSupport.ejsMiniProgram)} |`),e.push(`| \u5FAE\u4FE1\u5C0F\u7A0B\u5E8F | ${L(t.platformSupport.wechat)} |`),e.push(`| \u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F | ${L(t.platformSupport.alipay)} |`),e.push(""),t.params.length>0){e.push("## \u53C2\u6570"),e.push(""),e.push("| \u53C2\u6570 | \u7C7B\u578B | \u5FC5\u586B | \u8BF4\u660E |"),e.push("| --- | --- | --- | --- |");for(let s of t.params){let r=s.required?"\u662F":"\u5426",o=s.default?`${s.description}\uFF0C\u9ED8\u8BA4: ${s.default}`:s.description;e.push(`| ${s.name} | ${s.type} | ${r} | ${o} |`)}e.push("")}if(t.returns&&(e.push("## \u8FD4\u56DE\u503C"),e.push(""),e.push(`**\u7C7B\u578B:** ${t.returns.type}`),e.push(""),t.returns.fields&&t.returns.fields.length>0)){e.push("| \u5B57\u6BB5 | \u7C7B\u578B | \u8BF4\u660E |"),e.push("| --- | --- | --- |");for(let s of t.returns.fields)e.push(`| ${s.name} | ${s.type} | ${s.description} |`);e.push("")}if(t.examples.length>0){e.push("## \u4EE3\u7801\u793A\u4F8B"),e.push("");for(let s of t.examples)s.title&&(e.push(`### ${s.title}`),e.push("")),s.frameworkVersion&&(e.push(`> \u6846\u67B6\u7248\u672C: ${s.frameworkVersion}`),e.push("")),e.push(`\`\`\`${s.language}`),e.push(s.code),e.push("```"),e.push("")}return t.relatedMethods&&t.relatedMethods.length>0&&(e.push("## \u76F8\u5173\u65B9\u6CD5"),e.push(""),e.push(t.relatedMethods.map(s=>`- ${s}`).join(`
1359
1341
  `)),e.push("")),e.join(`
1360
- `)}function U(t){return t===!0?"\u2705 \u652F\u6301":t===!1?"\u274C \u4E0D\u652F\u6301":`\u26A0\uFE0F ${t}`}import*as C from"fs";import*as M from"path";var Ot="docs/standards";function Ft(){let e=M.dirname(new URL(import.meta.url).pathname).replace(/^\/([A-Z]:)/,"$1");return M.join(e,"..","..",Ot)}function _t(t){try{let s=C.readFileSync(t,"utf-8").split(`
1361
- `),o={filePath:t,rules:[],examples:[],antiPatterns:[]},n="",r=null,a="",i=!1,l="";for(let u of s){if(u.startsWith("# ")){o.name=u.substring(2).trim();continue}if(u.startsWith("<!-- ")){let p=u.match(/<!--\s*(\w+):\s*(.+?)\s*-->/);if(p){let[,f,m]=p;f==="id"&&(o.id=m),f==="category"&&(o.category=m),f==="version"&&(o.version=m),f==="lastUpdated"&&(o.lastUpdated=m)}continue}if(u.startsWith("## ")){n=u.substring(3).trim().toLowerCase();continue}if(u.startsWith("### ")){r&&r.title&&o.rules.push(r),r={id:`rule-${o.rules.length+1}`,title:u.substring(4).trim(),description:"",severity:"warning"};continue}if(u.startsWith("```")){if(i){let p={code:a.trim(),language:l||"javascript"};n.includes("\u53CD\u6A21\u5F0F")||n.includes("anti")?o.antiPatterns.push(p):n.includes("\u793A\u4F8B")||n.includes("example")?o.examples.push(p):r&&(a.includes("// \u274C")||a.includes("// \u9519\u8BEF")?r.badExample=a.trim():r.goodExample=a.trim()),a="",i=!1}else i=!0,l=u.substring(3).trim();continue}if(i){a+=u+`
1362
- `;continue}u.trim()&&!u.startsWith("-")&&!u.startsWith("|")&&(r&&!r.description?r.description=u.trim():!o.description&&n===""&&(o.description=u.trim()))}r&&r.title&&o.rules.push(r);let c=M.basename(t,".md");return o.id||(o.id=c),o.category||(c.includes("css")||c.includes("scss")?o.category="css":c.includes("vue")?o.category="vue":c.includes("js")||c.includes("javascript")?o.category="javascript":c.includes("ts")||c.includes("typescript")?o.category="typescript":c.includes("project")||c.includes("structure")?o.category="project":c.includes("git")?o.category="git":c.includes("naming")&&(o.category="naming")),o.version||(o.version="1.0.0"),o.lastUpdated||(o.lastUpdated=new Date().toISOString().split("T")[0]),o}catch(e){return console.error(`[StandardsManager] \u89E3\u6790\u89C4\u8303\u6587\u6863\u5931\u8D25: ${t}`,e),null}}function Ue(){let t=new Map,e=Ft();if(!C.existsSync(e))return console.error(`[StandardsManager] \u89C4\u8303\u76EE\u5F55\u4E0D\u5B58\u5728: ${e}`),t;let s=C.readdirSync(e);for(let o of s)if(o.endsWith(".md")){let n=M.join(e,o),r=_t(n);r&&t.set(r.id,r)}return console.error(`[StandardsManager] \u52A0\u8F7D\u4E86 ${t.size} \u4E2A\u89C4\u8303\u6587\u6863`),t}function Ne(t,e){let s=[];for(let o of t.values())o.category===e&&s.push(o);return s}function Re(t,e){return t.get(e)}function Le(t,e){let s=[];for(let o of t.values())(!e||o.category===e)&&s.push({id:o.id,name:o.name,category:o.category,description:o.description});return s}function B(t){let e=[];if(e.push(`# ${t.name}`),e.push(""),e.push(`**\u5206\u7C7B:** ${t.category}`),e.push(`**\u7248\u672C:** ${t.version}`),e.push(`**\u66F4\u65B0\u65F6\u95F4:** ${t.lastUpdated}`),e.push(""),e.push(t.description),e.push(""),t.rules.length>0){e.push("## \u89C4\u5219"),e.push("");for(let s of t.rules)e.push(`### ${s.title}`),e.push(""),e.push(s.description),e.push(""),s.goodExample&&(e.push("**\u6B63\u786E\u793A\u4F8B:**"),e.push("```javascript"),e.push(s.goodExample),e.push("```"),e.push("")),s.badExample&&(e.push("**\u9519\u8BEF\u793A\u4F8B:**"),e.push("```javascript"),e.push(s.badExample),e.push("```"),e.push(""))}if(t.examples.length>0){e.push("## \u793A\u4F8B"),e.push("");for(let s of t.examples)s.title&&(e.push(`### ${s.title}`),e.push("")),e.push(`\`\`\`${s.language}`),e.push(s.code),e.push("```"),e.push("")}if(t.antiPatterns.length>0){e.push("## \u53CD\u6A21\u5F0F"),e.push("");for(let s of t.antiPatterns)s.title&&(e.push(`### ${s.title}`),e.push("")),e.push(`\`\`\`${s.language}`),e.push(s.code),e.push("```"),e.push("")}return e.join(`
1363
- `)}function De(t,e){let s=["css","vue","javascript","typescript","naming","project","git"];if(e.id){let o=Re(t,e.id);return o?{found:!0,standard:o,markdown:B(o)}:{found:!1,error:`\u672A\u627E\u5230\u89C4\u8303: ${e.id}`,availableCategories:s}}if(e.category){let o=Ne(t,e.category);return o.length>0?o.length===1?{found:!0,standard:o[0],markdown:B(o[0])}:{found:!0,standards:o}:{found:!1,error:`\u672A\u627E\u5230\u5206\u7C7B "${e.category}" \u4E0B\u7684\u89C4\u8303`,availableCategories:s}}return{found:!1,error:"\u8BF7\u6307\u5B9A\u89C4\u8303 ID \u6216\u5206\u7C7B",availableCategories:s}}function Te(t,e){let s=Le(t,e),o=new Set;for(let n of t.values())o.add(n.category);return{standards:s,total:s.length,categories:Array.from(o).sort()}}function Ee(t){let e=[];e.push("# \u53EF\u7528\u7684\u7F16\u7801\u89C4\u8303"),e.push(""),e.push(`\u5171 ${t.total} \u4E2A\u89C4\u8303`),e.push("");let s=new Map;for(let n of t.standards){let r=s.get(n.category)||[];r.push(n),s.set(n.category,r)}let o={css:"CSS/SCSS \u89C4\u8303",vue:"Vue \u7EC4\u4EF6\u89C4\u8303",javascript:"JavaScript \u89C4\u8303",typescript:"TypeScript \u89C4\u8303",naming:"\u547D\u540D\u89C4\u8303",project:"\u9879\u76EE\u7ED3\u6784\u89C4\u8303",git:"Git \u89C4\u8303"};for(let[n,r]of s){e.push(`## ${o[n]||n}`),e.push("");for(let a of r)e.push(`- **${a.name}** (\`${a.id}\`)`),e.push(` ${a.description}`);e.push("")}return e.push("---"),e.push("\u4F7F\u7528 `get_standard` \u5DE5\u5177\u67E5\u770B\u89C4\u8303\u8BE6\u60C5\uFF0C\u4F8B\u5982\uFF1A"),e.push('- \u6309 ID \u67E5\u8BE2: `{ "id": "vue-style" }`'),e.push('- \u6309\u5206\u7C7B\u67E5\u8BE2: `{ "category": "css" }`'),e.join(`
1364
- `)}var Ht={id:"vue-file-header",name:"\u6587\u4EF6\u5934\u6CE8\u91CA",description:"Vue \u6587\u4EF6\u5FC5\u987B\u5305\u542B\u6807\u51C6\u6587\u4EF6\u5934\u6CE8\u91CA",severity:"error",validate:(t,e)=>{if(e.codeType!=="vue")return[];let s=[];if(!t.includes("<!--")||!t.includes("@\u4F5C\u8005"))s.push({message:"\u7F3A\u5C11\u6807\u51C6\u6587\u4EF6\u5934\u6CE8\u91CA\uFF0C\u5E94\u5305\u542B @\u4F5C\u8005\u3001@\u521B\u5EFA\u65F6\u95F4\u3001@\u4FEE\u6539\u65F6\u95F4\u3001@\u7248\u672C\u3001@\u7248\u6743\u3001@\u63CF\u8FF0",line:1});else{let o=["@\u4F5C\u8005","@\u521B\u5EFA\u65F6\u95F4","@\u4FEE\u6539\u65F6\u95F4","@\u7248\u672C","@\u7248\u6743","@\u63CF\u8FF0"];for(let n of o)t.includes(n)||s.push({message:`\u6587\u4EF6\u5934\u6CE8\u91CA\u7F3A\u5C11 ${n} \u5B57\u6BB5`,line:1})}return s}},Wt={id:"vue-style-separation",name:"\u6837\u5F0F\u5206\u79BB",description:"Vue \u7EC4\u4EF6\u6837\u5F0F\u5E94\u5206\u79BB\u5230\u5916\u90E8 SCSS \u6587\u4EF6",severity:"warning",validate:(t,e)=>{if(e.codeType!=="vue")return[];let s=[],o=t.match(/<style[^>]*>([\s\S]*?)<\/style>/);if(o){let n=o[1].trim();if(n&&!n.startsWith("@import")){let r=n.split(`
1365
- `).length;r>20&&s.push({message:`\u6837\u5F0F\u4EE3\u7801\u8D85\u8FC7 20 \u884C\uFF08\u5F53\u524D ${r} \u884C\uFF09\uFF0C\u5EFA\u8BAE\u5206\u79BB\u5230\u5916\u90E8 SCSS \u6587\u4EF6`,line:t.substring(0,t.indexOf("<style")).split(`
1366
- `).length})}(!t.includes("<style")||!/<style[^>]*scoped/.test(t))&&s.push({message:"style \u6807\u7B7E\u5E94\u6DFB\u52A0 scoped \u5C5E\u6027",line:t.substring(0,t.indexOf("<style")).split(`
1367
- `).length})}return s}},zt={id:"vue-no-navbar",name:"\u91CD\u6784\u9875\u9762\u5BFC\u822A\u680F",description:"\u91CD\u6784\u9875\u9762\u4E0D\u5E94\u6DFB\u52A0\u5BFC\u822A\u680F\u7EC4\u4EF6",severity:"error",validate:(t,e)=>{if(e.codeType!=="vue"||!e.isRefactoring)return[];let s=[],o=[/<em-header/i,/<nav-bar/i,/<ne-nav-bar/i,/<van-nav-bar/i];for(let n of o)if(n.test(t)){let r=t.match(n);if(r){let a=t.substring(0,r.index).split(`
1368
- `).length;s.push({message:"\u91CD\u6784\u9875\u9762\u4E0D\u5E94\u6DFB\u52A0\u5BFC\u822A\u680F\u7EC4\u4EF6\uFF0C\u5BFC\u822A\u680F\u7531\u6846\u67B6\u7EDF\u4E00\u7BA1\u7406",line:a})}}return s}},Jt={id:"mock-format",name:"Mock \u6587\u4EF6\u683C\u5F0F",description:"Mock \u6587\u4EF6\u5E94\u9075\u5FAA M8 \u6846\u67B6\u89C4\u8303\uFF08012-Mock\u7684\u4F7F\u7528\uFF09",severity:"error",validate:(t,e)=>{if(e.codeType!=="mock")return[];let s=[];return t.includes("import Mock from '@mock'")||(t.includes("import Mock from 'mockjs'")?s.push({message:"\u8DE8\u7AEF\u6846\u67B6\u4E2D\u5FC5\u987B\u4F7F\u7528 import Mock from '@mock' \u800C\u4E0D\u662F 'mockjs'\uFF08\u53C2\u89C1 012-Mock\u7684\u4F7F\u7528\u6587\u6863\uFF09",line:1}):t.includes("import Mock from 'better-mock'")?s.push({message:"\u8DE8\u7AEF\u6846\u67B6\u4E2D\u5FC5\u987B\u4F7F\u7528 import Mock from '@mock' \u800C\u4E0D\u662F 'better-mock'\uFF08\u53C2\u89C1 012-Mock\u7684\u4F7F\u7528\u6587\u6863\uFF09",line:1}):t.includes("@mock")||s.push({message:"Mock \u6587\u4EF6\u5FC5\u987B\u4F7F\u7528 import Mock from '@mock' \u5F15\u7528\uFF08\u8DE8\u7AEF\u6846\u67B6\u901A\u8FC7\u522B\u540D\u5F15\u7528\uFF09",line:1})),t.includes("export default [")||s.push({message:"Mock \u6587\u4EF6\u5E94\u5BFC\u51FA\u6570\u7EC4\u683C\u5F0F\u7684\u914D\u7F6E\uFF08\u53C2\u89C1 012-Mock\u7684\u4F7F\u7528\u6587\u6863\u793A\u4F8B\uFF09",line:t.split(`
1369
- `).length}),t.includes("methodUrl")||s.push({message:"Mock \u914D\u7F6E\u7F3A\u5C11 methodUrl \u5B57\u6BB5\uFF08\u7528\u4E8E\u5339\u914D mock \u7684\u63A5\u53E3\u5730\u5740\uFF09",line:1}),!t.includes("input:")&&!t.includes("input :")&&s.push({message:"Mock \u914D\u7F6E\u5EFA\u8BAE\u5305\u542B input \u5B57\u6BB5\uFF08\u5165\u53C2\uFF09",line:1}),!t.includes("output:")&&!t.includes("output :")&&s.push({message:"Mock \u914D\u7F6E\u5FC5\u987B\u5305\u542B output \u5B57\u6BB5\uFF08\u7528\u4E8E\u6A21\u62DF\u7684\u51FA\u53C2 mock \u6570\u636E\uFF09",line:1}),s}},Bt={id:"router-format",name:"Router \u6587\u4EF6\u683C\u5F0F",description:"Router \u6587\u4EF6\u5E94\u9075\u5FAA M8 \u6846\u67B6\u89C4\u8303\uFF08011-vuex\u4E0Erouter\u7684\u4F7F\u7528\uFF09",severity:"error",validate:(t,e)=>{if(e.codeType!=="router")return[];let s=[];t.includes("import")&&t.includes(".vue")&&s.push({message:"router.js \u65E0\u9700 import \u7EC4\u4EF6\uFF0C\u6846\u67B6\u4F1A\u81EA\u52A8\u6839\u636E path \u5339\u914D\u7EC4\u4EF6\uFF08\u53C2\u89C1 011-vuex\u4E0Erouter\u7684\u4F7F\u7528\u6587\u6863\uFF09",line:1}),!t.includes("const routes")&&!t.includes("let routes")&&s.push({message:"Router \u6587\u4EF6\u5E94\u5B9A\u4E49 routes \u6570\u7EC4",line:1});let o=t.matchAll(/path:\s*['"]([^'"]+)['"]/g);for(let r of o){let a=r[1];if(!a.startsWith("pages/")){let i=t.substring(0,r.index).split(`
1370
- `).length;s.push({message:`\u8DEF\u7531 path \u5E94\u4EE5 'pages/' \u5F00\u5934\uFF0C\u5F53\u524D\u503C: ${a}\uFF08path \u8DEF\u5F84\u9700\u4E0E vue \u7EC4\u4EF6\u540D\u79F0\u4FDD\u6301\u5339\u914D\uFF09`,line:i})}}let n=t.matchAll(/\{\s*(?:\/\/[^\n]*\n\s*)?path:/g);for(let r of n){let a=r.index,i=1,l=a+r[0].length;for(;i>0&&l<t.length;)t[l]==="{"&&i++,t[l]==="}"&&i--,l++;let c=t.substring(a,l),u=["component","name","meta","redirect","children","beforeEnter"];for(let p of u)if(new RegExp(`\\b${p}\\s*:`).test(c)){let m=t.substring(0,a).split(`
1371
- `).length;s.push({message:`routes \u6570\u7EC4\u4E0B\u6709\u6548\u53C2\u6570\u53EA\u6709 path \u4E0E style\uFF0C\u4E0D\u652F\u6301 ${p}\uFF08\u53C2\u89C1 011-vuex\u4E0Erouter\u7684\u4F7F\u7528\u6587\u6863\uFF09`,line:m})}}return t.includes("export default")||s.push({message:"Router \u6587\u4EF6\u5E94\u4F7F\u7528 export default \u5BFC\u51FA",line:t.split(`
1372
- `).length}),s}},Gt={id:"util-ajax",name:"Util.ajax \u4F7F\u7528",description:"\u5E94\u4F7F\u7528 Util.ajax \u800C\u4E0D\u662F\u539F\u751F fetch \u6216 axios",severity:"warning",validate:(t,e)=>{if(e.codeType!=="vue"&&e.codeType!=="javascript")return[];let s=[];if(t.includes("fetch(")&&!t.includes("Util.ajax")){let o=t.match(/fetch\(/);if(o){let n=t.substring(0,o.index).split(`
1373
- `).length;s.push({message:"\u5EFA\u8BAE\u4F7F\u7528 Util.ajax \u800C\u4E0D\u662F\u539F\u751F fetch\uFF0CUtil.ajax \u63D0\u4F9B\u7EDF\u4E00\u7684\u8BF7\u6C42\u5904\u7406\u548C token \u7BA1\u7406",line:n})}}if(t.includes("axios.")||t.includes("axios(")){let o=t.match(/axios[.(]/);if(o){let n=t.substring(0,o.index).split(`
1374
- `).length;s.push({message:"\u5EFA\u8BAE\u4F7F\u7528 Util.ajax \u800C\u4E0D\u662F\u76F4\u63A5\u4F7F\u7528 axios\uFF0CUtil.ajax \u662F\u6846\u67B6\u5BF9 axios \u7684\u5C01\u88C5",line:n})}}return s}},Kt={id:"util-string-validation",name:"Util.string \u9A8C\u8BC1\u65B9\u6CD5",description:"\u8868\u5355\u9A8C\u8BC1\u5E94\u4F7F\u7528 Util.string \u65B9\u6CD5",severity:"warning",validate:(t,e)=>{if(e.codeType!=="vue"&&e.codeType!=="javascript")return[];let s=[],o=[{pattern:/\/\^1[3-9]\\d\{9\}\$\//,suggestion:"Util.string.isMobile()",desc:"\u624B\u673A\u53F7\u9A8C\u8BC1"},{pattern:/\/\^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+/,suggestion:"Util.string.isEmail()",desc:"\u90AE\u7BB1\u9A8C\u8BC1"},{pattern:/\/\^\\d\{6\}\$\//,suggestion:"Util.string.isPostCode()",desc:"\u90AE\u7F16\u9A8C\u8BC1"},{pattern:/\/\^[1-9]\\d\{5\}/,suggestion:"Util.string.isIdCard()",desc:"\u8EAB\u4EFD\u8BC1\u9A8C\u8BC1"}];for(let{pattern:n,suggestion:r,desc:a}of o)if(n.test(t)){let i=t.match(n);if(i){let l=t.substring(0,i.index).split(`
1375
- `).length;s.push({message:`${a}\u5EFA\u8BAE\u4F7F\u7528 ${r} \u800C\u4E0D\u662F\u81EA\u5B9A\u4E49\u6B63\u5219`,line:l})}}return s}},Yt={id:"chinese-comment",name:"\u4E2D\u6587\u6CE8\u91CA",description:"\u4EE3\u7801\u5E94\u5305\u542B\u4E2D\u6587\u6CE8\u91CA\u8BF4\u660E",severity:"warning",validate:(t,e)=>{if(e.codeType!=="vue"&&e.codeType!=="javascript")return[];let s=[],o=t.matchAll(/(?:function\s+(\w+)|(\w+)\s*[=:]\s*(?:async\s+)?function|\bconst\s+(\w+)\s*=\s*(?:async\s*)?\([^)]*\)\s*=>)/g);for(let n of o){let r=n[1]||n[2]||n[3];if(r&&!r.startsWith("_")){let a=t.substring(0,n.index),i=a.split(`
1376
- `).slice(-3).join(`
1377
- `);if(!i.includes("/**")&&!i.includes("//")){let l=a.split(`
1378
- `).length;s.push({message:`\u51FD\u6570 ${r} \u7F3A\u5C11\u6CE8\u91CA\u8BF4\u660E`,line:l})}}}return s}},Zt=[Ht,Wt,zt,Jt,Bt,Gt,Kt,Yt];function Ve(t,e){let s=[],o=[],n=[];for(let r of Zt){let a=r.validate(t,e);for(let i of a)r.severity==="error"?s.push({ruleId:r.id,message:i.message,line:i.line,severity:"error"}):o.push({ruleId:r.id,message:i.message,line:i.line,severity:"warning"})}return(s.length>0||o.length>0)&&(n.push("\u8BF7\u53C2\u8003 docs/standards \u76EE\u5F55\u4E0B\u7684\u7F16\u7801\u89C4\u8303\u6587\u6863"),s.some(r=>r.ruleId==="vue-file-header")&&n.push("\u4F7F\u7528 MCP \u5DE5\u5177 generate_code \u53EF\u81EA\u52A8\u751F\u6210\u7B26\u5408\u89C4\u8303\u7684\u6587\u4EF6\u5934\u6CE8\u91CA"),o.some(r=>r.ruleId==="util-string-validation")&&n.push("\u4F7F\u7528 MCP \u5DE5\u5177 search_util \u67E5\u8BE2 Util.string \u7684\u6240\u6709\u9A8C\u8BC1\u65B9\u6CD5")),{valid:s.length===0,errors:s,warnings:o,suggestions:n}}function Oe(t){let e=[];if(t.valid&&t.warnings.length===0)return e.push("\u2705 **\u4EE3\u7801\u6821\u9A8C\u901A\u8FC7**"),e.join(`
1379
- `);if(t.errors.length>0){e.push("\u274C **\u6821\u9A8C\u9519\u8BEF\uFF1A**");for(let s of t.errors)e.push(`- ${s.line?`[\u884C ${s.line}] `:""}${s.message}`);e.push("")}if(t.warnings.length>0){e.push("\u26A0\uFE0F **\u6821\u9A8C\u8B66\u544A\uFF1A**");for(let s of t.warnings)e.push(`- ${s.line?`[\u884C ${s.line}] `:""}${s.message}`);e.push("")}if(t.suggestions.length>0){e.push("\u{1F4A1} **\u5EFA\u8BAE\uFF1A**");for(let s of t.suggestions)e.push(`- ${s}`)}return e.join(`
1380
- `)}function N(t,e){let{moduleName:s,pages:o,autoSubPackages:n,isFirstModule:r}=t,a=o.map(c=>{let u=`{
1381
- navigationBarTitleText: '${c.title}'`;return c.style&&(c.style.navigationBarBackgroundColor&&(u+=`,
1382
- navigationBarBackgroundColor: '${c.style.navigationBarBackgroundColor}'`),c.style.navigationBarTextStyle&&(u+=`,
1383
- navigationBarTextStyle: '${c.style.navigationBarTextStyle}'`),c.style.navigationStyle&&(u+=`,
1384
- navigationStyle: '${c.style.navigationStyle}'`),c.style.disableScroll!==void 0&&(u+=`,
1385
- disableScroll: ${c.style.disableScroll}`),c.style.backgroundColor&&(u+=`,
1386
- backgroundColor: '${c.style.backgroundColor}'`),c.style["mp-alipay"]&&(u+=`,
1387
- 'mp-alipay': ${JSON.stringify(c.style["mp-alipay"])}`),c.style["mp-weixin"]&&(u+=`,
1388
- 'mp-weixin': ${JSON.stringify(c.style["mp-weixin"])}`)),u+=`
1389
- }`,` {
1390
- // \u5339\u914D\u5230 pages/${s}/${c.name} \u65F6\u4F1A\u81EA\u52A8\u52A0\u8F7D pages/${s}/${c.name} \u7EC4\u4EF6
1391
- path: 'pages/${s}/${c.name}',
1392
- style: ${u}
1393
- }`}).join(`,
1394
- `),i=n!==void 0||r!==void 0,l;return i?l=`/**
1395
- * ${s} \u6A21\u5757\u8DEF\u7531\u914D\u7F6E
1396
- *
1397
- * \u8BF4\u660E\uFF1A
1398
- * - router.js \u65E0\u9700 import \u7EC4\u4EF6\uFF0Cpath \u8DEF\u5F84\u9700\u4E0E vue \u7EC4\u4EF6\u540D\u79F0\u4FDD\u6301\u5339\u914D
1399
- * - routes \u6570\u7EC4\u4E0B\u6709\u6548\u53C2\u6570\u53EA\u6709 path \u4E0E style
1400
- * - \u6784\u5EFA\u65F6\u4F1A\u81EA\u52A8\u5C06\u6A21\u5757\u4E0B\u7684\u8DEF\u7531\u914D\u7F6E\u5408\u5E76\u5230 pages.json \u5185
1401
- * - \u6587\u4EF6\u540D\u4E0D\u9700\u8981\u5199\u540E\u7F00\uFF0C\u6846\u67B6\u4F1A\u81EA\u52A8\u5BFB\u627E\u8DEF\u5F84\u4E0B\u7684\u9875\u9762\u8D44\u6E90
1402
- *
1403
- * @see 011-vuex\u4E0Erouter\u7684\u4F7F\u7528/router\u7684\u4F7F\u7528.md
1404
- */
1405
-
1406
- const routes = [
1407
- ${a}
1408
- ];
1409
-
1410
- const options = {
1411
- /**
1412
- * \u8BE5\u6A21\u5757\u662F\u5426\u81EA\u52A8\u5206\u5305\u5904\u7406
1413
- * \u5F00\u542F\u540E\uFF0C\u8BE5\u6A21\u5757\u7684\u8DEF\u7531\u4FE1\u606F\u4F1A\u914D\u7F6E\u5230 pages.json \u4E2D\u7684 subPackages \u5206\u5305\u8DEF\u7531
1414
- */
1415
- autoSubPackages: ${n??!1},
1416
- /**
1417
- * \u8BE5\u6A21\u5757\u662F\u5426\u4E3A\u9996\u9875\u6A21\u5757
1418
- * \u5F00\u542F\u540E\uFF0C\u8BE5\u6A21\u5757\u8DEF\u7531\u4FE1\u606F\u4F1A\u653E\u5728 pages.json \u4E2D\u7684 pages \u6570\u7EC4\u7684\u7B2C\u4E00\u4E2A\u4F4D\u7F6E
1419
- * \u5B9A\u4E49\u5728 routes \u5BF9\u8C61\u4E2D\u7684\u7B2C\u4E00\u4E2A\u6A21\u5757\u5730\u5740\u4E3A\u5E94\u7528\u9ED8\u8BA4\u9996\u9875
1420
- * \u6240\u6709\u6A21\u5757\u4EC5\u652F\u6301\u4E00\u4E2A\u9996\u9875\u6A21\u5757
1421
- * autoSubPackages \u4E3A true \u65F6\uFF0C\u8BE5\u503C\u65E0\u6548
1422
- */
1423
- isFirstModule: ${r??!1}
1424
- };
1425
-
1426
- // \u5BFC\u51FA\u8DEF\u7531\u6587\u4EF6
1427
- export default { routes, options };
1428
- `:l=`/**
1429
- * ${s} \u6A21\u5757\u8DEF\u7531\u914D\u7F6E
1430
- *
1431
- * \u8BF4\u660E\uFF1A
1432
- * - router.js \u65E0\u9700 import \u7EC4\u4EF6\uFF0Cpath \u8DEF\u5F84\u9700\u4E0E vue \u7EC4\u4EF6\u540D\u79F0\u4FDD\u6301\u5339\u914D
1433
- * - routes \u6570\u7EC4\u4E0B\u6709\u6548\u53C2\u6570\u53EA\u6709 path \u4E0E style
1434
- * - \u6784\u5EFA\u65F6\u4F1A\u81EA\u52A8\u5C06\u6A21\u5757\u4E0B\u7684\u8DEF\u7531\u914D\u7F6E\u5408\u5E76\u5230 pages.json \u5185
1435
- * - \u6587\u4EF6\u540D\u4E0D\u9700\u8981\u5199\u540E\u7F00\uFF0C\u6846\u67B6\u4F1A\u81EA\u52A8\u5BFB\u627E\u8DEF\u5F84\u4E0B\u7684\u9875\u9762\u8D44\u6E90
1436
- *
1437
- * @see 011-vuex\u4E0Erouter\u7684\u4F7F\u7528/router\u7684\u4F7F\u7528.md
1438
- */
1439
-
1440
- const routes = [
1441
- ${a}
1442
- ];
1443
-
1444
- // \u5BFC\u51FA\u8DEF\u7531\u6587\u4EF6
1445
- export default routes;
1446
- `,{script:l,explanation:`\u8FD9\u662F ${s} \u6A21\u5757\u7684 router.js \u6587\u4EF6\uFF0C\u4E25\u683C\u9075\u5FAA M8 \u6846\u67B6\u8DEF\u7531\u89C4\u8303\u3002
1447
-
1448
- **\u6587\u4EF6\u4F4D\u7F6E\uFF1A** \`src/pages/${s}/router.js\`
1449
-
1450
- **\u91CD\u8981\u8BF4\u660E\uFF08\u6765\u81EA\u5B98\u65B9\u6587\u6863\uFF09\uFF1A**
1451
- 1. router.js \u65E0\u9700 import \u7EC4\u4EF6\uFF0C\u6846\u67B6\u4F1A\u81EA\u52A8\u6839\u636E path \u5339\u914D\u7EC4\u4EF6
1452
- 2. path \u8DEF\u5F84\u9700\u4E0E vue \u7EC4\u4EF6\u540D\u79F0\u4FDD\u6301\u4E00\u81F4
1453
- 3. routes \u6570\u7EC4\u4E0B\u6709\u6548\u53C2\u6570\u53EA\u6709 path \u4E0E style
1454
- 4. \u6784\u5EFA\u65F6\u4F1A\u81EA\u52A8\u5C06\u5404\u6A21\u5757\u4E0B\u7684\u8DEF\u7531\u914D\u7F6E\u5408\u5E76\u5230 pages.json
1455
- 5. \u6587\u4EF6\u540D\u4E0D\u9700\u8981\u5199\u540E\u7F00\uFF0C\u6846\u67B6\u4F1A\u81EA\u52A8\u5BFB\u627E\u8DEF\u5F84\u4E0B\u7684\u9875\u9762\u8D44\u6E90
1456
-
1457
- **\u9875\u9762\u8DF3\u8F6C\u65B9\u5F0F\uFF08\u63A8\u8350\u4F7F\u7528 ejs.page.open\uFF09\uFF1A**
1458
- \`\`\`javascript
1459
- // \u8DE8\u7AEF\u6846\u67B6\u9700\u8981\u517C\u5BB9\u5404\u7AEF\u5C0F\u7A0B\u5E8F\uFF0C\u8BF7\u4F7F\u7528 ejs \u76F8\u5173 API \u8FDB\u884C\u9875\u9762\u8DF3\u8F6C
1460
- // \u52FF\u76F4\u63A5\u4F7F\u7528 vue-router \u65B9\u6CD5
1461
- ejs.page.open({
1462
- pageUrl: './${o[0]?.name||"\u9875\u9762\u540D"}',
1463
- data: {
1464
- key1: 'value1'
1465
- },
1466
- useRouter: true, // \u662F\u5426\u4F7F\u7528 vue-router \u8DF3\u8F6C
1467
- success: function(result) {},
1468
- error: function(error) {}
1469
- });
1470
- \`\`\`
1471
-
1472
- **\u76D1\u542C\u8FD4\u56DE\u56DE\u8C03\uFF1A**
1473
- \u8DE8\u7AEF\u6846\u67B6\u9ED8\u8BA4\u524D\u4E00\u9875\u9762\u5747\u6709 keepAlive \u7F13\u5B58\uFF0C\u9875\u9762\u8FD4\u56DE\u65F6\u4F1A\u89E6\u53D1 onShow \u751F\u547D\u5468\u671F\u3002
1474
- \u53EF\u914D\u5408 store.js \u5728\u9875\u9762\u95F4\u4F20\u9012\u6570\u636E\u3002
1342
+ `)}function L(t){return t===!0?"\u2705 \u652F\u6301":t===!1?"\u274C \u4E0D\u652F\u6301":`\u26A0\uFE0F ${t}`}import*as P from"fs";import*as k from"path";var Ct="docs/standards";function jt(){let e=k.dirname(new URL(import.meta.url).pathname).replace(/^\/([A-Z]:)/,"$1");return k.join(e,"..","..",Ct)}function St(t){try{let s=P.readFileSync(t,"utf-8").split(`
1343
+ `),r={filePath:t,rules:[],examples:[],antiPatterns:[]},o="",n=null,a="",l=!1,i="";for(let u of s){if(u.startsWith("# ")){r.name=u.substring(2).trim();continue}if(u.startsWith("<!-- ")){let p=u.match(/<!--\s*(\w+):\s*(.+?)\s*-->/);if(p){let[,d,m]=p;d==="id"&&(r.id=m),d==="category"&&(r.category=m),d==="version"&&(r.version=m),d==="lastUpdated"&&(r.lastUpdated=m)}continue}if(u.startsWith("## ")){o=u.substring(3).trim().toLowerCase();continue}if(u.startsWith("### ")){n&&n.title&&r.rules.push(n),n={id:`rule-${r.rules.length+1}`,title:u.substring(4).trim(),description:"",severity:"warning"};continue}if(u.startsWith("```")){if(l){let p={code:a.trim(),language:i||"javascript"};o.includes("\u53CD\u6A21\u5F0F")||o.includes("anti")?r.antiPatterns.push(p):o.includes("\u793A\u4F8B")||o.includes("example")?r.examples.push(p):n&&(a.includes("// \u274C")||a.includes("// \u9519\u8BEF")?n.badExample=a.trim():n.goodExample=a.trim()),a="",l=!1}else l=!0,i=u.substring(3).trim();continue}if(l){a+=u+`
1344
+ `;continue}u.trim()&&!u.startsWith("-")&&!u.startsWith("|")&&(n&&!n.description?n.description=u.trim():!r.description&&o===""&&(r.description=u.trim()))}n&&n.title&&r.rules.push(n);let c=k.basename(t,".md");return r.id||(r.id=c),r.category||(c.includes("css")||c.includes("scss")?r.category="css":c.includes("vue")?r.category="vue":c.includes("js")||c.includes("javascript")?r.category="javascript":c.includes("ts")||c.includes("typescript")?r.category="typescript":c.includes("project")||c.includes("structure")?r.category="project":c.includes("git")?r.category="git":c.includes("naming")&&(r.category="naming")),r.version||(r.version="1.0.0"),r.lastUpdated||(r.lastUpdated=new Date().toISOString().split("T")[0]),r}catch(e){return console.error(`[StandardsManager] \u89E3\u6790\u89C4\u8303\u6587\u6863\u5931\u8D25: ${t}`,e),null}}function Ne(){let t=new Map,e=jt();if(!P.existsSync(e))return console.error(`[StandardsManager] \u89C4\u8303\u76EE\u5F55\u4E0D\u5B58\u5728: ${e}`),t;let s=P.readdirSync(e);for(let r of s)if(r.endsWith(".md")){let o=k.join(e,r),n=St(o);n&&t.set(n.id,n)}return console.error(`[StandardsManager] \u52A0\u8F7D\u4E86 ${t.size} \u4E2A\u89C4\u8303\u6587\u6863`),t}function Ie(t,e){let s=[];for(let r of t.values())r.category===e&&s.push(r);return s}function Ae(t,e){return t.get(e)}function De(t,e){let s=[];for(let r of t.values())(!e||r.category===e)&&s.push({id:r.id,name:r.name,category:r.category,description:r.description});return s}function B(t){let e=[];if(e.push(`# ${t.name}`),e.push(""),e.push(`**\u5206\u7C7B:** ${t.category}`),e.push(`**\u7248\u672C:** ${t.version}`),e.push(`**\u66F4\u65B0\u65F6\u95F4:** ${t.lastUpdated}`),e.push(""),e.push(t.description),e.push(""),t.rules.length>0){e.push("## \u89C4\u5219"),e.push("");for(let s of t.rules)e.push(`### ${s.title}`),e.push(""),e.push(s.description),e.push(""),s.goodExample&&(e.push("**\u6B63\u786E\u793A\u4F8B:**"),e.push("```javascript"),e.push(s.goodExample),e.push("```"),e.push("")),s.badExample&&(e.push("**\u9519\u8BEF\u793A\u4F8B:**"),e.push("```javascript"),e.push(s.badExample),e.push("```"),e.push(""))}if(t.examples.length>0){e.push("## \u793A\u4F8B"),e.push("");for(let s of t.examples)s.title&&(e.push(`### ${s.title}`),e.push("")),e.push(`\`\`\`${s.language}`),e.push(s.code),e.push("```"),e.push("")}if(t.antiPatterns.length>0){e.push("## \u53CD\u6A21\u5F0F"),e.push("");for(let s of t.antiPatterns)s.title&&(e.push(`### ${s.title}`),e.push("")),e.push(`\`\`\`${s.language}`),e.push(s.code),e.push("```"),e.push("")}return e.join(`
1345
+ `)}function Le(t,e){let s=["css","vue","javascript","typescript","naming","project","git"];if(e.id){let r=Ae(t,e.id);return r?{found:!0,standard:r,markdown:B(r)}:{found:!1,error:`\u672A\u627E\u5230\u89C4\u8303: ${e.id}`,availableCategories:s}}if(e.category){let r=Ie(t,e.category);return r.length>0?r.length===1?{found:!0,standard:r[0],markdown:B(r[0])}:{found:!0,standards:r}:{found:!1,error:`\u672A\u627E\u5230\u5206\u7C7B "${e.category}" \u4E0B\u7684\u89C4\u8303`,availableCategories:s}}return{found:!1,error:"\u8BF7\u6307\u5B9A\u89C4\u8303 ID \u6216\u5206\u7C7B",availableCategories:s}}function K(t,e){let s=De(t,e),r=new Set;for(let o of t.values())r.add(o.category);return{standards:s,total:s.length,categories:Array.from(r).sort()}}function G(t){let e=[];e.push("# \u53EF\u7528\u7684\u7F16\u7801\u89C4\u8303"),e.push(""),e.push(`\u5171 ${t.total} \u4E2A\u89C4\u8303`),e.push("");let s=new Map;for(let o of t.standards){let n=s.get(o.category)||[];n.push(o),s.set(o.category,n)}let r={css:"CSS/SCSS \u89C4\u8303",vue:"Vue \u7EC4\u4EF6\u89C4\u8303",javascript:"JavaScript \u89C4\u8303",typescript:"TypeScript \u89C4\u8303",naming:"\u547D\u540D\u89C4\u8303",project:"\u9879\u76EE\u7ED3\u6784\u89C4\u8303",git:"Git \u89C4\u8303"};for(let[o,n]of s){e.push(`## ${r[o]||o}`),e.push("");for(let a of n)e.push(`- **${a.name}** (\`${a.id}\`)`),e.push(` ${a.description}`);e.push("")}return e.push("---"),e.push("\u4F7F\u7528 `get_standard` \u5DE5\u5177\u67E5\u770B\u89C4\u8303\u8BE6\u60C5\uFF0C\u4F8B\u5982\uFF1A"),e.push('- \u6309 ID \u67E5\u8BE2: `{ "id": "vue-style" }`'),e.push('- \u6309\u5206\u7C7B\u67E5\u8BE2: `{ "category": "css" }`'),e.join(`
1346
+ `)}var w=null,N=new Map,Dt=Nt(import.meta.url),Lt=It(Dt),Ut=Ue(Lt,"..");function Te(t,e,s){if(process.env[t])return process.env[t];let r=Ue(Ut,"docs",e);return At(r)?r:s}var Tt=Te("EJS_DOC_PATH","ejs-doc","ejs-doc"),Ot=Te("M8_DOC_PATH","m8mpdoc-develop","m8mpdoc-develop");async function Et(){console.error("[M8 MCP] \u6B63\u5728\u521D\u59CB\u5316\u6587\u6863\u7D22\u5F15...");try{w=await le(Tt,Ot),console.error(`[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5B8C\u6210: ${w.components.size} \u4E2A\u7EC4\u4EF6, ${w.ejsApis.size} \u4E2A API, ${w.utilMethods.size} \u4E2A Util \u65B9\u6CD5`),N=Ne(),w.standards=N,console.error(`[M8 MCP] \u52A0\u8F7D\u4E86 ${N.size} \u4E2A\u7F16\u7801\u89C4\u8303`)}catch(t){console.error("[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5931\u8D25:",t),w={components:new Map,ejsApis:new Map,utilMethods:new Map,standards:new Map,keywords:new Map,categories:new Map,buildTime:new Date}}}function I(){if(!w)throw new Error("\u6587\u6863\u7D22\u5F15\u5C1A\u672A\u521D\u59CB\u5316");return w}function Vt(){let t=new bt({name:"M8FrameworkMCP",version:"1.0.4"});return t.tool("query_component","\u641C\u7D22\u7EC4\u4EF6\u6216\u83B7\u53D6\u7EC4\u4EF6\u8BE6\u60C5\u3002\u5982\u679C\u540D\u79F0\u7CBE\u786E\u5339\u914D\uFF0C\u5C06\u8FD4\u56DE\u5B8C\u6574\u6587\u6863\uFF1B\u5426\u5219\u8FD4\u56DE\u641C\u7D22\u7ED3\u679C\u3002",{query:h.string().describe("\u7EC4\u4EF6\u540D\u79F0(\u5982 button)\u6216\u529F\u80FD\u63CF\u8FF0(\u5982 \u63D0\u4EA4)"),category:h.string().optional().describe("\u53EF\u9009\u5206\u7C7B\u8FC7\u6EE4"),platform:h.string().optional().describe("\u53EF\u9009\u5E73\u53F0\u8FC7\u6EE4"),includeBuiltin:h.boolean().optional().describe("\u662F\u5426\u5305\u542B\u5185\u7F6E\u7EC4\u4EF6(view/image\u7B49)\uFF0C\u9ED8\u8BA4false\uFF0C\u4EC5\u5728\u660E\u786E\u9700\u8981\u65F6\u5F00\u542F"),includeEpui:h.boolean().optional().describe("\u662F\u5426\u5305\u542BEPUI\u7EC4\u4EF6\uFF0C\u9ED8\u8BA4false\uFF0C\u4EC5\u5728\u660E\u786E\u9700\u8981\u65F6\u5F00\u542F")},async({query:e,category:s,platform:r,includeBuiltin:o,includeEpui:n})=>{let a=I();if(/^[a-zA-Z0-9-]+$/.test(e)){let i=ue(a,e);if(i.found&&i.component&&i.component.name.toLowerCase()===e.toLowerCase()){let c=JSON.stringify(i,null,2);return c+=`
1475
1347
 
1476
- **\u53C2\u8003\u6587\u6863\uFF1A** 011-vuex\u4E0Erouter\u7684\u4F7F\u7528/router\u7684\u4F7F\u7528.md`,frameworkVersion:e}}function Fe(t,e){return{script:`/**
1477
- * ${t} \u6A21\u5757\u72B6\u6001\u7BA1\u7406
1478
- *
1479
- * \u8BF4\u660E\uFF1A
1480
- * - \u6BCF\u4E2A\u6A21\u5757\u53EF\u4EE5\u6709\u81EA\u5DF1\u7684 store.js \u6587\u4EF6
1481
- * - \u6846\u67B6\u4F1A\u81EA\u52A8\u5408\u5E76\u5404\u6A21\u5757\u7684 store \u914D\u7F6E
1482
- *
1483
- * @see 011-vuex\u4E0Erouter\u7684\u4F7F\u7528/vuex\u7684\u4F7F\u7528.md
1484
- */
1485
-
1486
- const state = {
1487
- // \u6A21\u5757\u72B6\u6001\u6570\u636E
1488
- // \u4F8B\u5982\uFF1A\u7528\u4E8E\u9875\u9762\u95F4\u4F20\u9012\u6570\u636E
1489
- pageData: null
1490
- };
1491
-
1492
- const mutations = {
1493
- /**
1494
- * \u8BBE\u7F6E\u9875\u9762\u6570\u636E
1495
- * @param {Object} state - \u72B6\u6001\u5BF9\u8C61
1496
- * @param {any} data - \u8981\u8BBE\u7F6E\u7684\u6570\u636E
1497
- */
1498
- SET_PAGE_DATA(state, data) {
1499
- state.pageData = data;
1500
- },
1501
-
1502
- /**
1503
- * \u6E05\u9664\u9875\u9762\u6570\u636E
1504
- * @param {Object} state - \u72B6\u6001\u5BF9\u8C61
1505
- */
1506
- CLEAR_PAGE_DATA(state) {
1507
- state.pageData = null;
1508
- }
1509
- };
1510
-
1511
- const actions = {
1512
- /**
1513
- * \u66F4\u65B0\u9875\u9762\u6570\u636E
1514
- * @param {Object} context - Vuex \u4E0A\u4E0B\u6587
1515
- * @param {any} data - \u8981\u66F4\u65B0\u7684\u6570\u636E
1516
- */
1517
- updatePageData({ commit }, data) {
1518
- commit('SET_PAGE_DATA', data);
1519
- }
1520
- };
1521
-
1522
- const getters = {
1523
- /**
1524
- * \u83B7\u53D6\u9875\u9762\u6570\u636E
1525
- * @param {Object} state - \u72B6\u6001\u5BF9\u8C61
1526
- * @returns {any} \u9875\u9762\u6570\u636E
1527
- */
1528
- getPageData: (state) => state.pageData
1529
- };
1530
-
1531
- export default {
1532
- namespaced: true,
1533
- state,
1534
- mutations,
1535
- actions,
1536
- getters
1537
- };
1538
- `,explanation:`\u8FD9\u662F ${t} \u6A21\u5757\u7684 store.js \u6587\u4EF6\uFF0C\u9075\u5FAA M8 \u6846\u67B6 Vuex \u89C4\u8303\u3002
1539
-
1540
- **\u6587\u4EF6\u4F4D\u7F6E\uFF1A** \`src/pages/${t}/store.js\`
1541
-
1542
- **\u4F7F\u7528\u573A\u666F\uFF1A**
1543
- - \u9875\u9762\u95F4\u6570\u636E\u4F20\u9012\uFF08\u5982 A \u9875\u9762\u8DF3\u8F6C\u5230 B \u9875\u9762\uFF0CB \u9875\u9762\u4FEE\u6539\u6570\u636E\u540E\u8FD4\u56DE\uFF09
1544
- - \u6A21\u5757\u5185\u5171\u4EAB\u72B6\u6001
1545
-
1546
- **\u5728\u7EC4\u4EF6\u4E2D\u4F7F\u7528\uFF1A**
1547
- \`\`\`javascript
1548
- // Vue2 (M8.3)
1549
- this.$store.commit('${t}/SET_PAGE_DATA', data);
1550
- const data = this.$store.getters['${t}/getPageData'];
1551
-
1552
- // Vue3 (M8.4)
1553
- import { useStore } from 'vuex';
1554
- const store = useStore();
1555
- store.commit('${t}/SET_PAGE_DATA', data);
1556
- \`\`\`
1557
-
1558
- **\u914D\u5408 onShow \u751F\u547D\u5468\u671F\u4F7F\u7528\uFF1A**
1559
- \`\`\`javascript
1560
- onShow() {
1561
- // \u9875\u9762\u663E\u793A\u65F6\u8BFB\u53D6 store \u4E2D\u7684\u6570\u636E
1562
- const data = this.$store.getters['${t}/getPageData'];
1563
- if (data) {
1564
- // \u5904\u7406\u6570\u636E...
1565
- this.$store.commit('${t}/CLEAR_PAGE_DATA');
1566
- }
1567
- }
1568
- \`\`\``,frameworkVersion:e}}function Xt(t){if(t.mockRule)return t.mockRule;let e=t.name.toLowerCase(),s=t.type.toLowerCase();if(e.includes("id")||e.includes("guid"))return"Mock.Random.guid()";if(e.includes("name")||e.includes("title"))return"Mock.Random.csentence(3, 8)";if(e.includes("date")||e.includes("time"))return"Mock.Random.date('yyyy-MM-dd')";if(e.includes("phone")||e.includes("mobile"))return"Mock.Random.integer(13000000000, 19999999999)";if(e.includes("email"))return"Mock.Random.email()";if(e.includes("url")||e.includes("link"))return"Mock.Random.url()";if(e.includes("image")||e.includes("avatar")||e.includes("pic"))return"Mock.Random.image('200x200')";if(e.includes("address")||e.includes("addr"))return"Mock.Random.county(true)";if(e.includes("content")||e.includes("desc")||e.includes("remark"))return"Mock.Random.cparagraph(1, 3)";if(e.includes("status")||e.includes("state"))return"Mock.Random.pick(['pending', 'approved', 'rejected'])";if(e.includes("count")||e.includes("num")||e.includes("amount"))return"Mock.Random.integer(0, 100)";switch(s){case"string":return"Mock.Random.csentence(5, 10)";case"number":case"int":case"integer":return"Mock.Random.integer(1, 100)";case"float":case"double":return"Mock.Random.float(0, 100, 2, 2)";case"boolean":case"bool":return"Mock.Random.boolean()";case"date":return"Mock.Random.date('yyyy-MM-dd')";case"datetime":return"Mock.Random.datetime('yyyy-MM-dd HH:mm:ss')";case"array":return"[]";case"object":return"{}";default:return"Mock.Random.cword(5)"}}function Qt(t){let e=t.inputFields&&t.inputFields.length>0?t.inputFields.map(o=>` ${o.name}: ''${o.description?` // ${o.description}`:""}`).join(`,
1569
- `):"",s;return t.outputFields&&t.outputFields.length>0?s=`Mock.mock({
1570
- info: {
1571
- ${t.outputFields.map(n=>{let r=Xt(n);return` ${n.name}: ${r}${n.description?` // ${n.description}`:""}`}).join(`,
1572
- `)}
1573
- }
1574
- })`:s=`Mock.mock({
1575
- info: {
1576
- data: Mock.Random.csentence(10, 20)
1577
- }
1578
- })`,` {
1579
- // ${t.description||t.methodUrl}
1580
- methodUrl: '${t.methodUrl}',
1581
- // \u5165\u53C2
1582
- input: {
1583
- ${e}
1584
- },
1585
- // \u51FA\u53C2
1586
- output: ${s}
1587
- }`}function R(t,e){let{moduleName:s,apis:o}=t,n=o.map(l=>Qt(l)).join(`,
1588
- `),r=`/**
1589
- * ${s} \u6A21\u5757 Mock \u6570\u636E\u914D\u7F6E
1590
- *
1591
- * \u8BF4\u660E\uFF1A
1592
- * - \u8DE8\u7AEF\u6846\u67B6\u4E2D\u4F7F\u7528 better-mock \u5E93\u4EE3\u66FF mockjs\uFF08\u4F7F\u7528\u65B9\u6CD5\u4FDD\u6301\u4E00\u81F4\uFF09
1593
- * - \u9700\u8981\u5728 config.js \u4E2D\u8BBE\u7F6E isMock: true \u5F00\u542F Mock \u529F\u80FD
1594
- * - \u6846\u67B6\u4F1A\u81EA\u52A8\u5F15\u5165\u5404\u6A21\u5757\u4E0B\u7684 mock.js \u6587\u4EF6
1595
- *
1596
- * @see 012-Mock\u7684\u4F7F\u7528/Mock\u7684\u4F7F\u7528.md
1597
- */
1598
-
1599
- // \u6CE8\u610F\uFF1A\u8DE8\u7AEF\u6846\u67B6\u4E2D\u901A\u8FC7\u522B\u540D\u5F15\u7528\uFF0C\u540D\u79F0\u4E3A @mock\uFF08\u975E mockjs \u6216 better-mock\uFF09
1600
- import Mock from '@mock';
1601
-
1602
- /**
1603
- * Mock \u6570\u636E\u914D\u7F6E\u6570\u7EC4
1604
- * \u5BFC\u51FA resultData \u6570\u7EC4\uFF0C\u6BCF\u4E2A\u5143\u7D20\u4E3A\u4E00\u4E2A mock \u6570\u636E\u5BF9\u8C61
1605
- * - methodUrl: \u7528\u4E8E\u5339\u914D mock \u7684\u63A5\u53E3\u5730\u5740
1606
- * - input: \u5165\u53C2
1607
- * - output: \u7528\u4E8E\u6A21\u62DF\u7684\u51FA\u53C2 mock \u6570\u636E
1608
- */
1609
- export default [
1610
- ${n}
1611
- ];
1612
- `,a=o[0],i=a?`
1613
- **\u5BF9\u5E94\u7684 Util.ajax \u8C03\u7528\u793A\u4F8B\uFF08\u6765\u81EA\u5B98\u65B9\u6587\u6863\uFF09\uFF1A**
1614
- \`\`\`javascript
1615
- Util.ajax({
1616
- url: \`\${Config.serverUrl}${a.methodUrl}\`,
1617
- data: {
1618
- params: JSON.stringify({
1619
- // \u8BF7\u6C42\u53C2\u6570
1620
- ${a.inputFields?.map(l=>`${l.name}: ''`).join(`,
1621
- `)||"guid: id"}
1622
- })
1623
- }
1624
- })
1625
- .then(result => {
1626
- if (result && result.status && result.status.code === 1) {
1627
- console.log(result);
1628
- // \u8FD4\u56DE\u7ED3\u6784\uFF1A
1629
- // {
1630
- // custom: { info: { ... } }, // mock \u7684 output \u6570\u636E
1631
- // status: { code: 1 }
1632
- // }
1633
- }
1634
- })
1635
- .catch(err => {
1636
- console.error(err);
1637
- });
1638
- \`\`\``:"";return{script:r,explanation:`\u8FD9\u662F ${s} \u6A21\u5757\u7684 mock.js \u6587\u4EF6\uFF0C\u4E25\u683C\u9075\u5FAA M8 \u6846\u67B6 Mock \u89C4\u8303\u3002
1639
-
1640
- **\u6587\u4EF6\u4F4D\u7F6E\uFF1A** \`src/pages/${s}/mock.js\`
1641
-
1642
- **\u5F00\u542F Mock \u529F\u80FD\uFF08\u5FC5\u987B\u914D\u7F6E\uFF09\uFF1A**
1643
- \u5728 \`src/shared/config.js\` \u4E2D\u8BBE\u7F6E\uFF1A
1644
- \`\`\`javascript
1645
- export default {
1646
- // ...
1647
- /**
1648
- * \u662F\u5426\u8FDB\u884C mock \u6A21\u62DF\u6570\u636E\u8BF7\u6C42
1649
- * \u4EC5\u5728 debug \u6A21\u5F0F\u4E0B\u6709\u6548
1650
- */
1651
- isMock: true,
1652
- // ...
1653
- };
1654
- \`\`\`
1655
-
1656
- **\u91CD\u8981\u8BF4\u660E\uFF08\u6765\u81EA\u5B98\u65B9\u6587\u6863\uFF09\uFF1A**
1657
- 1. \u8DE8\u7AEF\u6846\u67B6\u4E2D\u4F7F\u7528 better-mock \u5E93\u4EE3\u66FF mockjs\uFF08\u4F7F\u7528\u65B9\u6CD5\u4FDD\u6301\u4E00\u81F4\uFF09
1658
- 2. \u5FC5\u987B\u4F7F\u7528 \`import Mock from '@mock'\` \u5F15\u7528\uFF0C\u800C\u975E\u76F4\u63A5\u5F15\u7528 mockjs \u6216 better-mock
1659
- 3. Mock \u529F\u80FD\u4EC5\u5728 debug \u6A21\u5F0F\u4E0B\u6709\u6548\uFF0C\u751F\u4EA7\u73AF\u5883\u4F1A\u81EA\u52A8\u7981\u7528
1660
- 4. \u6846\u67B6\u4F1A\u81EA\u52A8\u5F15\u5165\u5404\u6A21\u5757\u4E0B\u7684 mock.js \u6587\u4EF6
1661
-
1662
- **Mock.Random \u5E38\u7528\u65B9\u6CD5\uFF1A**
1663
- - \`Mock.Random.csentence(min, max)\` - \u968F\u673A\u4E2D\u6587\u53E5\u5B50
1664
- - \`Mock.Random.cparagraph(min, max)\` - \u968F\u673A\u4E2D\u6587\u6BB5\u843D
1665
- - \`Mock.Random.cword(length)\` - \u968F\u673A\u4E2D\u6587\u8BCD
1666
- - \`Mock.Random.date('yyyy-MM-dd')\` - \u968F\u673A\u65E5\u671F
1667
- - \`Mock.Random.datetime()\` - \u968F\u673A\u65E5\u671F\u65F6\u95F4
1668
- - \`Mock.Random.integer(min, max)\` - \u968F\u673A\u6574\u6570
1669
- - \`Mock.Random.float(min, max, dmin, dmax)\` - \u968F\u673A\u6D6E\u70B9\u6570
1670
- - \`Mock.Random.boolean()\` - \u968F\u673A\u5E03\u5C14\u503C
1671
- - \`Mock.Random.guid()\` - \u968F\u673A GUID
1672
- - \`Mock.Random.email()\` - \u968F\u673A\u90AE\u7BB1
1673
- - \`Mock.Random.url()\` - \u968F\u673A URL
1674
- - \`Mock.Random.image('200x200')\` - \u968F\u673A\u56FE\u7247
1675
- - \`Mock.Random.county(true)\` - \u968F\u673A\u5730\u5740
1676
- - \`Mock.Random.pick(array)\` - \u4ECE\u6570\u7EC4\u4E2D\u968F\u673A\u9009\u62E9
1677
- ${i}
1348
+ ---
1678
1349
 
1679
- **\u53C2\u8003\u6587\u6863\uFF1A** 012-Mock\u7684\u4F7F\u7528/Mock\u7684\u4F7F\u7528.md`,frameworkVersion:e}}function _e(t,e){let s=e.toLowerCase(),o=t.components.get(s);return{type:"component",name:e,found:!!o,docPath:o?.filePath,description:o?`${o.displayName}: ${o.description}`:`\u7EC4\u4EF6 "${e}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230`}}function He(t,e){let s=e.toLowerCase();s.startsWith("ejs.")&&(s=s.substring(4));let o=t.ejsApis.get(s);return{type:"api",name:e,found:!!o,docPath:o?.filePath,description:o?`ejs.${o.module}.${o.name}: ${o.description}`:`API "${e}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230`}}function We(t,e){let s=e.toLowerCase();s.startsWith("util.")&&(s=s.substring(5));let o=t.utilMethods?.get(s);return{type:"util",name:e,found:!!o,docPath:o?.filePath,description:o?`${o.fullName}: ${o.description}`:`Util \u65B9\u6CD5 "${e}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230`}}function qt(t){let e=[],s=[],o=[],n=t.matchAll(/<(em-[\w-]+|ne-[\w-]+|van-[\w-]+)/g);for(let i of n){let c=i[1].replace(/^(em-|ne-|van-)/,"").replace(/-/g,"");e.includes(c)||e.push(c)}let r=t.matchAll(/ejs\.(\w+)\.(\w+)/g);for(let i of r){let l=`${i[1]}.${i[2]}`;s.includes(l)||s.push(l)}let a=t.matchAll(/Util\.(\w+)(?:\.|[\s(])/g);for(let i of a){let l=i[1];o.includes(l)||o.push(l)}return{components:e,apis:s,utils:o}}function es(t,e){let{components:s,apis:o,utils:n}=qt(e),r=[],a=[];for(let i of s){let l=_e(t,i);r.push(l),l.found||a.push(`\u7EC4\u4EF6: ${i}`)}for(let i of o){let l=He(t,i);r.push(l),l.found||a.push(`API: ejs.${i}`)}for(let i of n){let l=We(t,i);r.push(l),l.found||a.push(`Util: Util.${i}`)}return{references:r,allFound:a.length===0,missingItems:a}}function ze(t,e){let s=[],o=[],n=[],r=e.options?.frameworkVersion||"M8.4",a=null;try{switch(e.type){case"router":{let f={moduleName:e.options?.moduleName||e.name,pages:e.options?.pages||[{name:"index",title:"\u9996\u9875"}],autoSubPackages:e.options?.autoSubPackages,isFirstModule:e.options?.isFirstModule};a=N(f,r),n.push({type:"pattern",name:"router.js \u89C4\u8303",found:!0,docPath:"011-vuex\u4E0Erouter\u7684\u4F7F\u7528/router\u7684\u4F7F\u7528.md",description:"\u53C2\u7167 M8 \u6846\u67B6 router.js \u89C4\u8303\u751F\u6210"});break}case"store":{let f=e.options?.moduleName||e.name;a=Fe(f,r),n.push({type:"pattern",name:"store.js \u89C4\u8303",found:!0,docPath:"011-vuex\u4E0Erouter\u7684\u4F7F\u7528/vuex\u7684\u4F7F\u7528.md",description:"\u53C2\u7167 M8 \u6846\u67B6 Vuex \u89C4\u8303\u751F\u6210"});break}case"mock":{let f={moduleName:e.options?.moduleName||e.name,apis:e.options?.apis||[{methodUrl:"/rest/mock/test",description:"\u6D4B\u8BD5\u63A5\u53E3"}]};a=R(f,r),n.push({type:"pattern",name:"mock.js \u89C4\u8303",found:!0,docPath:"012-Mock\u7684\u4F7F\u7528/Mock\u7684\u4F7F\u7528.md",description:"\u53C2\u7167 M8 \u6846\u67B6 Mock \u89C4\u8303\u751F\u6210\uFF0C\u4F7F\u7528 @mock \u522B\u540D\u5F15\u7528"});break}case"component":{let f=_e(t,e.name);if(n.push(f),!f.found)return o.push(`\u7EC4\u4EF6 "${e.name}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230\uFF0C\u65E0\u6CD5\u751F\u6210\u4EE3\u7801\u3002\u8BF7\u5148\u4F7F\u7528 search_component \u5DE5\u5177\u67E5\u8BE2\u53EF\u7528\u7EC4\u4EF6\u3002`),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:`\u274C \u7EC4\u4EF6 "${e.name}" \u4E0D\u5B58\u5728\u4E8E\u6587\u6863\u4E2D`,documentReferences:n,warnings:s,errors:o};a=w(t,{type:"component",name:e.name,options:{frameworkVersion:r,platform:e.options?.platform}});break}case"ejsApi":{let f=He(t,e.name);if(n.push(f),!f.found)return o.push(`API "${e.name}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230\uFF0C\u65E0\u6CD5\u751F\u6210\u4EE3\u7801\u3002\u8BF7\u5148\u4F7F\u7528 search_ejs_api \u5DE5\u5177\u67E5\u8BE2\u53EF\u7528 API\u3002`),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:`\u274C API "${e.name}" \u4E0D\u5B58\u5728\u4E8E\u6587\u6863\u4E2D`,documentReferences:n,warnings:s,errors:o};a=w(t,{type:"ejsApi",name:e.name,options:{frameworkVersion:r,platform:e.options?.platform}});break}case"util":{let f=We(t,e.name);n.push(f);let m=["ajax","upload"],g=e.name.toLowerCase().replace("util.","");if(!f.found&&!m.includes(g))return o.push(`Util \u65B9\u6CD5 "${e.name}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230\uFF0C\u65E0\u6CD5\u751F\u6210\u4EE3\u7801\u3002\u8BF7\u5148\u4F7F\u7528 search_util \u5DE5\u5177\u67E5\u8BE2\u53EF\u7528\u65B9\u6CD5\u3002`),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:`\u274C Util \u65B9\u6CD5 "${e.name}" \u4E0D\u5B58\u5728\u4E8E\u6587\u6863\u4E2D`,documentReferences:n,warnings:s,errors:o};a=w(t,{type:"util",name:e.name,options:{frameworkVersion:r}});break}default:a=w(t,{type:e.type,name:e.name,options:{frameworkVersion:r,platform:e.options?.platform}})}if(!a)return o.push("\u4EE3\u7801\u751F\u6210\u5931\u8D25"),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:"\u274C \u4EE3\u7801\u751F\u6210\u5931\u8D25",documentReferences:n,warnings:s,errors:o};let i=a.script||xe(a),l=es(t,i);if(n.push(...l.references),!l.allFound)for(let f of l.missingItems)s.push(`\u4EE3\u7801\u4E2D\u4F7F\u7528\u4E86\u672A\u5728\u6587\u6863\u4E2D\u627E\u5230\u7684 ${f}\uFF0C\u8BF7\u786E\u8BA4\u662F\u5426\u6B63\u786E`);let c="vue";e.type==="router"?c="router":e.type==="mock"?c="mock":e.type==="store"?c="javascript":i.includes("<template>")||i.includes("<script")?c="vue":c="javascript";let u=Ve(i,{codeType:c,frameworkVersion:r,isRefactoring:e.options?.isRefactoring}),p=Oe(u);for(let f of u.warnings)s.push(`[${f.ruleId}] ${f.message}`);for(let f of u.errors)o.push(`[${f.ruleId}] ${f.message}`);return{success:u.valid,code:a,formattedCode:i,validation:u,validationReport:p,documentReferences:n,warnings:s,errors:o}}catch(i){return o.push(`\u751F\u6210\u8FC7\u7A0B\u51FA\u9519: ${i instanceof Error?i.message:String(i)}`),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:`\u274C \u751F\u6210\u8FC7\u7A0B\u51FA\u9519: ${i}`,documentReferences:n,warnings:s,errors:o}}}function Je(t){let e=[];if(t.success?e.push("## \u2705 \u4EE3\u7801\u751F\u6210\u6210\u529F"):e.push("## \u274C \u4EE3\u7801\u751F\u6210\u5931\u8D25\u6216\u6709\u9519\u8BEF"),e.push(""),t.documentReferences.length>0){e.push("### \u{1F4DA} \u6587\u6863\u5F15\u7528");for(let s of t.documentReferences){let o=s.found?"\u2713":"\u2717";e.push(`- [${o}] ${s.type}: ${s.name}`),s.docPath&&e.push(` - \u6587\u6863: ${s.docPath}`),s.description&&e.push(` - ${s.description}`)}e.push("")}if(e.push("### \u{1F50D} \u89C4\u8303\u9A8C\u8BC1"),e.push(t.validationReport),e.push(""),t.warnings.length>0){e.push("### \u26A0\uFE0F \u8B66\u544A");for(let s of t.warnings)e.push(`- ${s}`);e.push("")}if(t.errors.length>0){e.push("### \u274C \u9519\u8BEF");for(let s of t.errors)e.push(`- ${s}`);e.push("")}return t.formattedCode&&(e.push("### \u{1F4DD} \u751F\u6210\u7684\u4EE3\u7801"),e.push(""),e.push("```vue"),e.push(t.formattedCode),e.push("```")),e.join(`
1680
- `)}var v=null,P=new Map,as=os(import.meta.url),is=ns(as),ls=Be(is,"..");function Ge(t,e,s){if(process.env[t])return process.env[t];let o=Be(ls,"docs",e);return rs(o)?o:s}var cs=Ge("EJS_DOC_PATH","ejs-doc","ejs-doc"),us=Ge("M8_DOC_PATH","m8mpdoc-develop","m8mpdoc-develop");async function ps(){console.error("[M8 MCP] \u6B63\u5728\u521D\u59CB\u5316\u6587\u6863\u7D22\u5F15...");try{v=await ae(cs,us),console.error(`[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5B8C\u6210: ${v.components.size} \u4E2A\u7EC4\u4EF6, ${v.ejsApis.size} \u4E2A API, ${v.utilMethods.size} \u4E2A Util \u65B9\u6CD5`),P=Ue(),v.standards=P,console.error(`[M8 MCP] \u52A0\u8F7D\u4E86 ${P.size} \u4E2A\u7F16\u7801\u89C4\u8303`)}catch(t){console.error("[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5931\u8D25:",t),v={components:new Map,ejsApis:new Map,utilMethods:new Map,standards:new Map,keywords:new Map,categories:new Map,buildTime:new Date}}}function y(){if(!v)throw new Error("\u6587\u6863\u7D22\u5F15\u5C1A\u672A\u521D\u59CB\u5316");return v}function ds(){let t=new ts({name:"M8FrameworkMCP",version:"1.0.0"});return t.tool("search_component","\u641C\u7D22 M8 \u6846\u67B6 UI \u7EC4\u4EF6\uFF0C\u652F\u6301\u6309\u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0\u641C\u7D22",{query:d.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982\u7EC4\u4EF6\u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0"),category:d.string().optional().describe('\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4\uFF0C\u5982"\u8868\u5355\u7EC4\u4EF6"\u3001"\u53CD\u9988\u7EC4\u4EF6"'),platform:d.string().optional().describe('\u53EF\u9009\u7684\u5E73\u53F0\u8FC7\u6EE4\uFF0C\u5982"wechat"\u3001"alipay"')},async({query:e,category:s,platform:o})=>{let n=le(y(),e,{category:s,platform:o});return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),t.tool("search_ejs_api","\u641C\u7D22 EJS \u539F\u751F API\uFF0C\u652F\u6301\u6309\u6A21\u5757\u6216\u529F\u80FD\u63CF\u8FF0\u641C\u7D22",{query:d.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982 API \u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0"),module:d.string().optional().describe('\u53EF\u9009\u7684\u6A21\u5757\u8FC7\u6EE4\uFF0C\u5982"ui"\u3001"device"\u3001"storage"')},async({query:e,module:s})=>{let o=ce(y(),e,{module:s});return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("get_component_detail","\u83B7\u53D6 M8 \u6846\u67B6 UI \u7EC4\u4EF6\u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC Props\u3001Events\u3001\u793A\u4F8B\u4EE3\u7801",{name:d.string().describe('\u7EC4\u4EF6\u540D\u79F0\uFF0C\u5982"button"\u3001"form"\u3001"picker"')},async({name:e})=>{let s=ue(y(),e);return{content:[{type:"text",text:JSON.stringify(s,null,2)}]}}),t.tool("get_api_detail","\u83B7\u53D6 EJS API \u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC\u53C2\u6570\u3001\u8FD4\u56DE\u503C\u3001\u5E73\u53F0\u5DEE\u5F02",{module:d.string().describe('\u6A21\u5757\u540D\uFF0C\u5982"ui"\u3001"device"'),name:d.string().describe('API \u540D\u79F0\uFF0C\u5982"toast"\u3001"alert"')},async({module:e,name:s})=>{let o=pe(y(),e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("recommend","\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u667A\u80FD\u63A8\u8350\u5408\u9002\u7684\u7EC4\u4EF6\u548C API",{requirement:d.string().describe('\u9700\u6C42\u63CF\u8FF0\uFF0C\u5982"\u5B9E\u73B0\u4E00\u4E2A\u5E26\u65E5\u671F\u9009\u62E9\u7684\u8868\u5355"'),platform:d.string().optional().describe('\u76EE\u6807\u5E73\u53F0\uFF0C\u5982"wechat"\u3001"h5"')},async({requirement:e,platform:s})=>{let o=fe(y(),e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("generate_code","\u751F\u6210\u7B26\u5408 M8 \u6846\u67B6\u89C4\u8303\u7684\u4EE3\u7801\uFF0C\u652F\u6301 M8.3(Vue2) \u548C M8.4(Vue3)",{type:d.enum(["component","ejsApi","pattern"]).describe("\u751F\u6210\u7C7B\u578B"),name:d.string().describe("\u7EC4\u4EF6/API/\u6A21\u5F0F\u540D\u79F0"),frameworkVersion:d.enum(["M8.3","M8.4"]).describe("\u6846\u67B6\u7248\u672C\uFF0CM8.3=Vue2, M8.4=Vue3"),platform:d.string().optional().describe("\u76EE\u6807\u5E73\u53F0\uFF0C\u7528\u4E8E\u751F\u6210\u6761\u4EF6\u7F16\u8BD1\u4EE3\u7801")},async({type:e,name:s,frameworkVersion:o,platform:n})=>{let r=w(y(),{type:e,name:s,options:{frameworkVersion:o,platform:n}});return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}),t.tool("check_compatibility","\u68C0\u67E5\u7EC4\u4EF6\u6216 API \u5728\u76EE\u6807\u5E73\u53F0\u7684\u517C\u5BB9\u6027",{items:d.array(d.string()).describe("\u8981\u68C0\u67E5\u7684\u7EC4\u4EF6\u6216 API \u5217\u8868"),targetPlatforms:d.array(d.string()).describe('\u76EE\u6807\u5E73\u53F0\u5217\u8868\uFF0C\u5982["wechat", "alipay", "h5"]')},async({items:e,targetPlatforms:s})=>{let o=je(y(),e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("get_pattern","\u83B7\u53D6\u5E38\u89C1\u573A\u666F\u7684\u5B9E\u73B0\u6A21\u5F0F\uFF0C\u5982\u5217\u8868\u8BE6\u60C5\u3001\u8868\u5355\u63D0\u4EA4",{scenario:d.string().describe('\u573A\u666F\u540D\u79F0\uFF0C\u5982"\u5217\u8868\u8BE6\u60C5"\u3001"\u8868\u5355\u63D0\u4EA4"'),frameworkVersion:d.enum(["M8.3","M8.4"]).optional().describe("\u6846\u67B6\u7248\u672C\uFF0C\u4E0D\u6307\u5B9A\u5219\u8FD4\u56DE\u4E24\u4E2A\u7248\u672C")},async({scenario:e,frameworkVersion:s})=>{let o=Ce(e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("search_util","\u641C\u7D22 M8 \u6846\u67B6 Util \u5DE5\u5177\u65B9\u6CD5\uFF0C\u5982 Util.ajax\u3001Util.upload \u7B49",{query:d.string().describe('\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982"ajax"\u3001"\u8BF7\u6C42"\u3001"\u4E0A\u4F20"'),category:d.string().optional().describe('\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4\uFF0C\u5982"\u6838\u5FC3\u901A\u7528Util"\u3001"Util\u5DE5\u5177\u96C6"')},async({query:e,category:s})=>{let o=Pe(y(),e,{category:s});return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("get_util_detail","\u83B7\u53D6 Util \u5DE5\u5177\u65B9\u6CD5\u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC\u53C2\u6570\u3001\u8FD4\u56DE\u503C\u3001\u4EE3\u7801\u793A\u4F8B",{name:d.string().describe('\u65B9\u6CD5\u540D\uFF0C\u5982"ajax"\u6216"Util.ajax"')},async({name:e})=>{let s=Ae(y(),e),o=JSON.stringify(s,null,2);return s.found&&s.method&&(o+=`
1350
+ `+pe(i.component),{content:[{type:"text",text:c}]}}}let l=V(a,e,{category:s,platform:r,includeBuiltin:o,includeEpui:n,limit:10});return{content:[{type:"text",text:JSON.stringify(l,null,2)}]}}),t.tool("query_ejs_api","\u641C\u7D22 EJS API \u6216\u83B7\u53D6 API \u8BE6\u60C5\u3002",{query:h.string().describe("API \u540D\u79F0(\u5982 toast)\u6216\u529F\u80FD\u63CF\u8FF0(\u5982 \u63D0\u793A)"),module:h.string().optional().describe("\u6A21\u5757\u8FC7\u6EE4\uFF0C\u5982 ui, device")},async({query:e,module:s})=>{let r=I();if(e.includes(".")){let[a,l]=e.split("."),i=W(r,a,l);if(i.found&&i.api){let c=JSON.stringify(i,null,2);return c+=`
1681
1351
 
1682
1352
  ---
1683
1353
 
1684
- `+Ie(s.method)),{content:[{type:"text",text:o}]}}),t.tool("get_standard","\u83B7\u53D6\u7F16\u7801\u89C4\u8303\u6587\u6863\uFF0C\u652F\u6301\u6309\u5206\u7C7B\u6216 ID \u67E5\u8BE2",{id:d.string().optional().describe('\u89C4\u8303 ID\uFF0C\u5982"vue-style"\u3001"css-style"'),category:d.enum(["css","vue","javascript","typescript","naming","project","git"]).optional().describe("\u89C4\u8303\u5206\u7C7B")},async({id:e,category:s})=>{let o=De(P,{id:e,category:s}),n=JSON.stringify(o,null,2);return o.found&&o.markdown&&(n=o.markdown),{content:[{type:"text",text:n}]}}),t.tool("list_standards","\u5217\u51FA\u6240\u6709\u53EF\u7528\u7684\u7F16\u7801\u89C4\u8303",{category:d.enum(["css","vue","javascript","typescript","naming","project","git"]).optional().describe("\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4")},async({category:e})=>{let s=Te(P,e);return{content:[{type:"text",text:Ee(s)}]}}),t.tool("generate_validated_code","\u751F\u6210\u7B26\u5408 M8 \u6846\u67B6\u89C4\u8303\u7684\u4EE3\u7801\uFF0C\u5E26\u89C4\u8303\u9A8C\u8BC1\u548C\u6587\u6863\u5F15\u7528\u68C0\u67E5\u3002\u652F\u6301\u751F\u6210 router.js\u3001mock.js\u3001store.js\u3001\u7EC4\u4EF6\u4EE3\u7801\u7B49\u3002\u751F\u6210\u524D\u4F1A\u68C0\u67E5\u7EC4\u4EF6/\u65B9\u6CD5\u662F\u5426\u5B58\u5728\u4E8E\u6587\u6863\u4E2D\uFF0C\u751F\u6210\u540E\u4F1A\u8FDB\u884C\u89C4\u8303\u6821\u9A8C\u3002",{type:d.enum(["component","ejsApi","util","router","mock","store","pattern"]).describe("\u751F\u6210\u7C7B\u578B\uFF1Acomponent=\u7EC4\u4EF6\u4EE3\u7801, ejsApi=EJS API\u8C03\u7528, util=Util\u65B9\u6CD5, router=router.js, mock=mock.js, store=store.js"),name:d.string().describe("\u540D\u79F0\uFF1A\u7EC4\u4EF6\u540D/API\u540D/\u6A21\u5757\u540D"),frameworkVersion:d.enum(["M8.3","M8.4"]).default("M8.4").describe("\u6846\u67B6\u7248\u672C\uFF0CM8.3=Vue2, M8.4=Vue3"),moduleName:d.string().optional().describe("\u6A21\u5757\u540D\u79F0\uFF08\u7528\u4E8E router/mock/store \u751F\u6210\uFF09"),pages:d.array(d.object({name:d.string().describe("\u9875\u9762\u540D\u79F0\uFF08\u4E0D\u542B\u540E\u7F00\uFF09"),title:d.string().describe("\u9875\u9762\u6807\u9898"),isHome:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875")})).optional().describe("\u9875\u9762\u5217\u8868\uFF08\u7528\u4E8E router \u751F\u6210\uFF09"),apis:d.array(d.object({methodUrl:d.string().describe("\u63A5\u53E3\u5730\u5740"),description:d.string().optional().describe("\u63A5\u53E3\u63CF\u8FF0"),inputFields:d.array(d.object({name:d.string(),type:d.string(),description:d.string().optional()})).optional().describe("\u5165\u53C2\u5B57\u6BB5"),outputFields:d.array(d.object({name:d.string(),type:d.string(),mockRule:d.string().optional(),description:d.string().optional()})).optional().describe("\u51FA\u53C2\u5B57\u6BB5")})).optional().describe("\u63A5\u53E3\u914D\u7F6E\uFF08\u7528\u4E8E mock \u751F\u6210\uFF09"),autoSubPackages:d.boolean().optional().describe("\u662F\u5426\u81EA\u52A8\u5206\u5305\uFF08\u7528\u4E8E router \u751F\u6210\uFF0Cv8.3.1+\uFF09"),isFirstModule:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875\u6A21\u5757\uFF08\u7528\u4E8E router \u751F\u6210\uFF0Cv8.3.1+\uFF09"),isRefactoring:d.boolean().optional().describe("\u662F\u5426\u4E3A\u91CD\u6784\u9875\u9762\uFF08\u91CD\u6784\u9875\u9762\u4E0D\u5E94\u6DFB\u52A0\u5BFC\u822A\u680F\uFF09"),platform:d.string().optional().describe("\u76EE\u6807\u5E73\u53F0\uFF0C\u7528\u4E8E\u751F\u6210\u6761\u4EF6\u7F16\u8BD1\u4EE3\u7801")},async({type:e,name:s,frameworkVersion:o,moduleName:n,pages:r,apis:a,autoSubPackages:i,isFirstModule:l,isRefactoring:c,platform:u})=>{let p=ze(y(),{type:e,name:s,options:{frameworkVersion:o,moduleName:n,pages:r,apis:a,autoSubPackages:i,isFirstModule:l,isRefactoring:c,platform:u}});return{content:[{type:"text",text:Je(p)}]}}),t.tool("generate_router","\u751F\u6210\u6A21\u5757\u7684 router.js \u6587\u4EF6\uFF0C\u4E25\u683C\u9075\u5FAA M8 \u6846\u67B6 011-vuex\u4E0Erouter\u7684\u4F7F\u7528 \u6587\u6863\u89C4\u8303",{moduleName:d.string().describe('\u6A21\u5757\u540D\u79F0\uFF0C\u5982 "index"\u3001"user"'),pages:d.array(d.object({name:d.string().describe("\u9875\u9762\u540D\u79F0\uFF08\u4E0D\u542B\u540E\u7F00\uFF0C\u6846\u67B6\u4F1A\u81EA\u52A8\u5BFB\u627E\u9875\u9762\u8D44\u6E90\uFF09"),title:d.string().describe("\u9875\u9762\u6807\u9898\uFF08\u5BF9\u5E94 style.navigationBarTitleText\uFF09"),isHome:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875")})).describe("\u9875\u9762\u5217\u8868"),autoSubPackages:d.boolean().optional().describe("\u662F\u5426\u81EA\u52A8\u5206\u5305\u5904\u7406\uFF08v8.3.1+\uFF0C\u5F00\u542F\u540E\u8DEF\u7531\u4FE1\u606F\u4F1A\u914D\u7F6E\u5230 subPackages\uFF09"),isFirstModule:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875\u6A21\u5757\uFF08v8.3.1+\uFF0C\u5F00\u542F\u540E\u8DEF\u7531\u4FE1\u606F\u4F1A\u653E\u5728 pages \u6570\u7EC4\u7B2C\u4E00\u4E2A\u4F4D\u7F6E\uFF09"),frameworkVersion:d.enum(["M8.3","M8.4"]).default("M8.4").describe("\u6846\u67B6\u7248\u672C")},async({moduleName:e,pages:s,autoSubPackages:o,isFirstModule:n,frameworkVersion:r})=>{let a=N({moduleName:e,pages:s,autoSubPackages:o,isFirstModule:n},r);return{content:[{type:"text",text:`## router.js \u751F\u6210\u7ED3\u679C
1685
-
1686
- **\u6587\u4EF6\u4F4D\u7F6E:** \`src/pages/${e}/router.js\`
1354
+ `+H(i.api),{content:[{type:"text",text:c}]}}}/^[a-zA-Z0-9]+$/.test(e);let o=R(r,e,{module:s,limit:10}),n=o.find(a=>a.score>=100);if(n&&n.type==="ejsApi"){let a=n.id.replace("api:",""),[l,i]=a.split("."),c=W(r,l,i);if(c.found&&c.api){let u=JSON.stringify(c,null,2);if(o.length===1)return u+=`
1687
1355
 
1688
- \`\`\`javascript
1689
- ${a.script}
1690
- \`\`\`
1356
+ ---
1691
1357
 
1692
- ${a.explanation}`}]}}),t.tool("generate_mock","\u751F\u6210\u6A21\u5757\u7684 mock.js \u6587\u4EF6\uFF0C\u4E25\u683C\u9075\u5FAA M8 \u6846\u67B6 012-Mock\u7684\u4F7F\u7528 \u6587\u6863\u89C4\u8303",{moduleName:d.string().describe('\u6A21\u5757\u540D\u79F0\uFF0C\u5982 "index"\u3001"user"'),apis:d.array(d.object({methodUrl:d.string().describe("\u63A5\u53E3\u5730\u5740\uFF08\u7528\u4E8E\u5339\u914D mock \u7684\u63A5\u53E3\u5730\u5740\uFF09"),description:d.string().optional().describe("\u63A5\u53E3\u63CF\u8FF0"),inputFields:d.array(d.object({name:d.string().describe("\u5B57\u6BB5\u540D"),type:d.string().describe("\u5B57\u6BB5\u7C7B\u578B"),description:d.string().optional().describe("\u5B57\u6BB5\u63CF\u8FF0")})).optional().describe("\u5165\u53C2\u5B57\u6BB5"),outputFields:d.array(d.object({name:d.string().describe("\u5B57\u6BB5\u540D"),type:d.string().describe("\u5B57\u6BB5\u7C7B\u578B"),mockRule:d.string().optional().describe("Mock.js \u89C4\u5219\uFF0C\u5982 Mock.Random.csentence(5, 10)"),description:d.string().optional().describe("\u5B57\u6BB5\u63CF\u8FF0")})).optional().describe("\u51FA\u53C2\u5B57\u6BB5")})).describe("\u63A5\u53E3\u914D\u7F6E\u5217\u8868"),frameworkVersion:d.enum(["M8.3","M8.4"]).default("M8.4").describe("\u6846\u67B6\u7248\u672C")},async({moduleName:e,apis:s,frameworkVersion:o})=>{let n=R({moduleName:e,apis:s},o);return{content:[{type:"text",text:`## mock.js \u751F\u6210\u7ED3\u679C
1358
+ `+H(c.api),{content:[{type:"text",text:u}]}}}return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("query_util","\u641C\u7D22 Util \u5DE5\u5177\u65B9\u6CD5(\u5982 Util.ajax, Util.string)\u3002",{query:h.string().describe("\u65B9\u6CD5\u540D\u6216\u529F\u80FD\u63CF\u8FF0"),category:h.string().optional()},async({query:e,category:s})=>{let r=I(),o=be(r,e);if(o.found&&o.method){let a=JSON.stringify(o,null,2);return a+=`
1693
1359
 
1694
- **\u6587\u4EF6\u4F4D\u7F6E:** \`src/pages/${e}/mock.js\`
1360
+ ---
1695
1361
 
1696
- \`\`\`javascript
1697
- ${n.script}
1698
- \`\`\`
1362
+ `+Pe(o.method),{content:[{type:"text",text:a}]}}let n=F(r,e,{category:s,limit:10});return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),t.tool("query_standard","\u67E5\u8BE2\u7F16\u7801\u89C4\u8303\u3002\u5982\u679C\u4E0D\u63D0\u4F9B query\uFF0C\u5219\u5217\u51FA\u6240\u6709\u89C4\u8303\u3002",{query:h.string().optional().describe("\u89C4\u8303ID(\u5982 vue-style)\u6216\u5173\u952E\u8BCD"),category:h.enum(["css","vue","javascript","typescript","naming","project","git"]).optional()},async({query:e,category:s})=>{if(!e){let n=K(N,s);return{content:[{type:"text",text:G(n)}]}}let r=Le(N,{id:e,category:s});if(r.found&&r.markdown)return{content:[{type:"text",text:r.markdown}]};let o=K(N,s);return{content:[{type:"text",text:`\u672A\u627E\u5230\u89C4\u8303 "${e}"\u3002\u53EF\u7528\u89C4\u8303\u5217\u8868\uFF1A
1699
1363
 
1700
- ${n.explanation}`}]}}),t}async function fs(){await ps();let t=ds(),e=new ss;console.error("[M8 MCP] \u670D\u52A1\u5668\u542F\u52A8\u4E2D..."),await t.connect(e),console.error("[M8 MCP] \u670D\u52A1\u5668\u5DF2\u542F\u52A8\uFF0C\u7B49\u5F85\u8FDE\u63A5...")}fs().catch(t=>{console.error("[M8 MCP] \u670D\u52A1\u5668\u542F\u52A8\u5931\u8D25:",t),process.exit(1)});
1364
+ ${G(o)}`}]}}),t.tool("recommend","\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u667A\u80FD\u63A8\u8350\u7EC4\u4EF6\u548C API",{requirement:h.string().describe("\u9700\u6C42\u63CF\u8FF0"),platform:h.string().optional()},async({requirement:e,platform:s})=>{let r=fe(I(),e,s);return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}),t.tool("generate_code","\u751F\u6210\u7B26\u5408 M8 \u89C4\u8303\u7684\u4EE3\u7801\uFF0C\u652F\u6301\u7EC4\u4EF6\u3001API\u3001\u6A21\u5F0F(Pattern)\u3002",{type:h.enum(["component","ejsApi","pattern","util"]).describe("\u751F\u6210\u7C7B\u578B"),name:h.string().describe("\u540D\u79F0(\u7EC4\u4EF6\u540D/API\u540D/\u6A21\u5F0F\u540D)"),frameworkVersion:h.enum(["M8.3","M8.4"]).describe("\u6846\u67B6\u7248\u672C: M8.3=Vue2, M8.4=Vue3"),platform:h.string().optional()},async({type:e,name:s,frameworkVersion:r,platform:o})=>{if(e==="pattern"){let a=Se(s,r);return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}let n=Me(I(),{type:e,name:s,options:{frameworkVersion:r,platform:o}});return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),t}async function Rt(){await Et();let t=Vt(),e=new Pt;console.error("[M8 MCP] \u670D\u52A1\u5668\u542F\u52A8\u4E2D..."),await t.connect(e),console.error("[M8 MCP] \u670D\u52A1\u5668\u5DF2\u542F\u52A8\uFF0C\u7B49\u5F85\u8FDE\u63A5...")}Rt().catch(t=>{console.error("[M8 MCP] \u670D\u52A1\u5668\u542F\u52A8\u5931\u8D25:",t),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "m8-framework-mcp",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "M8 框架文档助手 MCP Server - 智能搜索组件、API 并生成代码",
5
5
  "type": "module",
6
6
  "main": "build/index.js",