@moneko/core 4.7.0-beta.0 → 4.7.0-beta.2

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.
@@ -0,0 +1 @@
1
+ export declare function declToMd(content: string, filepath: string, basename: string, slicePrefix: string): string;
@@ -0,0 +1 @@
1
+ import{dirname as e}from"node:path";import t from"typescript";import{getGitInfo as n}from"./git.mjs";let r=n(),l=t.ScriptKind,o=t.ScriptTarget,i=t.SyntaxKind,a=t.createSourceFile,c=t.forEachChild,s=t.getLeadingCommentRanges,u=t.isInterfaceDeclaration,f=t.isQuestionToken,p=t.isPropertySignature,m=t.isFunctionTypeNode,g=t.isUnionTypeNode,$=t.isMethodSignature,d={};function h(e){let t=s(e.getSourceFile().text,e.pos);if(t){let n=e.getSourceFile().text.slice(t[0].pos,t[0].end).match(/\/\*\*([\s\S]*?)\*\//);if(n)return n[1].replaceAll(/^\s*\* ?/gm,"").replace(/\s+$/,"").trim()}}function b(e){if(!e)return;let t=e.match(/@since\s+([^\n]+)/);return t?t[1].trim():void 0}function y(e){let t;if(!e)return;let n=/@author\s+([^<\n]+?)(?:\s*<([^>]+)>)?(?=\s*(?:\n|$))/g,l=[];for(;null!==(t=n.exec(e));){let e,n=t[1].trim(),o=t[2]?.trim();if(o){let t=/^[\w.-]+@[\w-]+(\.[\w-]+)+$/.test(o),n=/^https?:\/\/.+/i.test(o);e=t?`mailto:${o}`:n?o:`${r?.domain}/${o}`}else/^[a-z\d](?:[a-z\d-]{0,38})$/i.test(n)&&(e=`${r?.domain}/${n}`);let i=e?`[![${n}-alt](${r?.type==="github"?`https://avatars.githubusercontent.com/${e.split("/").pop()}?s=48`:`https://www.gravatar.com/avatar/${n}?s=48&d=identicon`})${n}](${e})`:n;l.includes(i)||l.push(i)}return l.join(" ")}function x(e){if(!e)return;let t=e.match(/@ignore\s+([^\n]+)/);return t?t[1].trim():void 0}let A=/(?<!['"])(unknown|any|void|bigint|object|undefined|null|boolean|number|string|symbol)(?!['"])/g;function j(e,t,n){if(!t)return;let r=t.replaceAll(/\b([A-Z][a-zA-Z0-9]*)\b/g,t=>{if(d[t]){let r=`/${[e,d[t]].join("/").split("/").filter(Boolean).join("/")}`;return n?`[\\color{#009688}{${t}}](${r})`:`[${t}](${r})`}return n?`\\color{#009688}{${t}}`:t});return n&&(r=r.replaceAll(A,e=>`\\color{#009688}{${e}}`)),r}function S(e){if(e)return(function(e){let t;if(!e)return;let n=[];for(;t=/\\color{([^|}]*)\|?([^|}]*)\|?([^|}]*)\|?([^}]*)}{([^}]*)}/g.exec(e);)n.push(t[0]);return e.replaceAll(/[{}[\]()=>]|keyof|typeof|true|false/g,e=>n.some(t=>t.includes(e))?e:`\\color{#569cd6}{${e}}`)})(e)?.replaceAll(/^\s*\|\s*|\s*\|\s*$/gm,"").replaceAll(/\n/g,"<br/>").replaceAll(/\*/g,"\\*").replaceAll(/\|/g,"\\|").replaceAll(/(['"])((?:(?!\1).)*)\1/g,"\\color{#ce9178}{$1$2$1}")}function T(e){if(e)return e.replaceAll(/@example\s*([\s\S]*?)(?=@[a-zA-Z]|\n*$)/g,"").replaceAll(/^@[a-z].+/gm,"").replaceAll(/(\n\s+)+/g,"<br />").replaceAll(/\n/g,"<br />").replaceAll(/(<br \/>)$/g,"")}export function declToMd(n,r,s,A){let v=a(r,n,o.Latest,!0,l.TS),w="";return c(v,n=>{u(n)?w+=function(n,r,l){let o=r.name.text;Object.assign(d,{[r.name.text]:e(r.getSourceFile().fileName).replace(l,"")});let a=h(r),c=b(a),s=T(a),u=x(a)?.split("|")||[],A=u.includes("comment"),v=u.includes("initial"),w=u.includes("optional"),k=u.includes("version"),B=u.includes("author"),z=s?`\\color{|4||0.45}{${o}}`:o,F=(function(e){let n=[];if(e.heritageClauses){for(let r of e.heritageClauses)if(r.token===t.SyntaxKind.ExtendsKeyword)for(let e of r.types)n.push(e.getText())}return n})(r)?.map(e=>`<n-tag color="#4c81db" css=".tag{gap:0px;}">${j(n,S(e))}</n-tag>`),N=[s,z,c&&`\\color{#52c11b|1||0.9}{${c}}`,F.length>0&&`<sub>\`extends\`</sub> ${F.join(" ")}`].filter(Boolean).join(" "),K=`## ${N}`,C=r.members.filter(e=>p(e)&&e.type?.kind!==i.NeverKeyword||$(e)),Z=[];if(C.length>0){for(let e=0,t=C.length;e<t;e++){let t=C[e],r=j(n,S($(t)?`(${t.parameters.map(e=>`${e.name.getText()}: ${e.type?.getText()||"any"}`).join(", ")}): ${t.type?.getText()||"any"}`:t.type?.getText()||"any"),!0),l=h(t),o=S(t.name.getText());o&&!o.startsWith("\\color")&&($(t)||function(e){if(e.type){if(!g(e.type))return m(e.type);else for(let t of e.type.types)if(m(t))return!0}return!1}(t)||r?.includes("=>")?o=`\\color{#f9a913}{${o}}`:/^["'](.+)["']$/.test(o)||(o=`\\color{#4c81db}{${o}}`));let i=t.questionToken&&f(t.questionToken);Z.push([o,!w&&`\\color{${i?"#f9a913":"#52c11b"}\\|\\|\\|0.9}{${i?"✘":"✔"}}`,!A&&S(T(l)),r,!v&&S(function(e){if(!e)return;let t=e.match(/@default\s+([^\n]+)/);return t?t[1].trim():void 0}(l)),!k&&S(b(l)),!B&&(y(l)||y(a)),function(e){if(!e)return;let t=e.match(/@example\s*([\s\S]*?)(?=@[a-zA-Z]|\n*$)/);return t?t[1].trim():void 0}(l)])}let e=!1,t=!1,r=!1,l=!1;for(let n=0,o=Z.length;n<o;n++){let o=Z[n];!A&&o[2]&&(l=!0),!v&&o[4]&&(r=!0),!k&&o[5]&&(t=!0),!B&&o[6]&&(e=!0)}K+="\n";let o=["属性",!w&&"必要",l&&"说明","类型",r&&"默认值",t&&"版本",e&&"作者"].filter(Boolean).join("|");K+=`|${o}|`;let i=[":-",!w&&":-",l&&":-",":-",r&&":-",t&&":-",e&&":-"].filter(Boolean);K+="\n";let c=i.join("|");K+=`|${c}|`;for(let n=0,o=Z.length;n<o;n++){let o=Z[n];K+="\n";let i=[(o[7]?`<n-popover arrow="true" trigger="click" content=${JSON.stringify(`<n-md css=.n-md-body{margin-bottom:0;padding:0.5rem;background-color:transparent;backdrop-filter:none;box-shadow:none;}>${o[7]}</n-md>`)}><n-button size="small" type="primary" circle="true" style="margin-right:8px;">?</n-button></n-popover>`:"")+(o[0]||"-"),!w&&(o[1]||"-"),l&&(o[2]||"-"),o[3]||"-",r&&(o[4]||"-"),t&&(o[5]||"-"),e&&(o[6]||"-")].filter(Boolean).join("|");K+=`|${i}|`}K+="\n"}return K+"\n"}(s,n,A):t.isEnumDeclaration(n)&&(w+=function(n,r){let l=n.name.text,o=h(n),i=T(o),a=b(o);Object.assign(d,{[n.name.text]:e(n.getSourceFile().fileName).replace(r,"")});let c=i?`\\color{|4||0.45}{${l}}`:l,s=[i,c,a&&`\\color{#52c11b|1||0.9}{${a}}`].filter(Boolean).join(" "),u=x(o)?.split("|")||[],f=u.includes("comment"),p=u.includes("version"),m=u.includes("author"),g=`## ${s}`;if(n.members.length>0){let e=[];for(let r=0,l=n.members.length;r<l;r++){let l=n.members[r],i=S(l.name.getText()),a=h(l),c=S(function(e){let n=e.initializer;if(n&&t.isStringLiteral(n))return` '${n.text}'`}(l)),s=S(b(a)),u=S(T(a));!i||i.startsWith("\\color")||/^["'](.+)["']$/.test(i)||(i=`\\color{#4c81db}{${i}}`),e.push([i,!f&&u,c,!p&&s,!m&&(y(a)||y(o))])}let r=!1,l=!1,i=!1;for(let t=0,n=e.length;t<n;t++){let n=e[t];!f&&n[1]&&(i=!0),!p&&n[3]&&(l=!0),!m&&n[4]&&(r=!0)}g+="\n";let a=["属性",i&&"说明","值",l&&"版本",r&&"作者"].filter(Boolean).join("|");g+=`|${a}|`;let c=[":-",i&&":-",":-",l&&":-",r&&":-"].filter(Boolean);g+="\n";let s=c.join("|");g+=`|${s}|`;for(let t=0,n=e.length;t<n;t++){let n=e[t];g+="\n";let o=[n[0]||"-",i&&(n[1]||"-"),n[2]||"-",l&&(n[3]||"-"),r&&(n[4]||"-")].filter(Boolean).join("|");g+=`|${o}|`}}return g+"\n\n"}(n,A))}),w}
package/lib/index.d.mts CHANGED
@@ -1,6 +1,7 @@
1
1
  export type * from '../typings/global.js';
2
2
  export type { CommitRuleConfig, CommitRules } from './bin/commit-lint.mjs';
3
3
  export type { cssInJsMinify, CssInJsMinifyOption } from './commom/css-in-js-minify.mjs';
4
+ export { declToMd } from './commom/decl-to-md.mjs';
4
5
  export * from './commom/git.mjs';
5
6
  export { default as hasPkg } from './commom/has-pkg.mjs';
6
7
  export { getIPv4, getPort } from './commom/net.mjs';
@@ -23,7 +24,6 @@ export type { OverrideResolverOption } from './plugin/override-resolve.mjs';
23
24
  export type { VirtualModules } from './plugin/virtual-module.mjs';
24
25
  export { APPTYPE, coreName, FRAMEWORK, isCI, isDev, isLibrary, isMicro, mainDirectory, packageJson, PACKAGENAME } from './process-env.mjs';
25
26
  export { type AlgorithmIdentifier, digest, md5, node_modules, resolveProgram, toCamelCase } from './utils/index.mjs';
26
- export { generateDoc } from './vm/generate-doc.mjs';
27
27
  export * from '@moneko/mdx';
28
28
  export * from '@moneko/utils';
29
29
  import webpack from 'webpack';
package/lib/index.mjs CHANGED
@@ -1 +1 @@
1
- export*from"./commom/git.mjs";export{default as hasPkg}from"./commom/has-pkg.mjs";export{getIPv4,getPort}from"./commom/net.mjs";export{default as open}from"./commom/open.mjs";export{default as parseArgs}from"./commom/parse-args.mjs";export{CUSTOMCONFIG,default as paths,routeDir,yarnArgv}from"./commom/paths.mjs";export{default as printLog}from"./commom/print-log.mjs";export{default as require}from"./commom/require.mjs";export*as Rule from"./commom/rule.mjs";export{default as timer}from"./commom/timer.mjs";export{yApiMock,yApiSchemaMock}from"./dev/mock.mjs";export{default as jsxDomExpressions}from"./options/jsx-dom-expressions.mjs";export{default as splitChunk}from"./options/split-chunk.mjs";export{HtmlPlugin}from"./plugin/html-plugin.mjs";export*from"./plugin/manifest/index.mjs";export{APPTYPE,coreName,FRAMEWORK,isCI,isDev,isLibrary,isMicro,mainDirectory,packageJson,PACKAGENAME}from"./process-env.mjs";export{digest,md5,node_modules,resolveProgram,toCamelCase}from"./utils/index.mjs";export{generateDoc}from"./vm/generate-doc.mjs";export*from"@moneko/mdx";export*from"@moneko/utils";import o from"webpack";export{o as webpack};
1
+ export{declToMd}from"./commom/decl-to-md.mjs";export*from"./commom/git.mjs";export{default as hasPkg}from"./commom/has-pkg.mjs";export{getIPv4,getPort}from"./commom/net.mjs";export{default as open}from"./commom/open.mjs";export{default as parseArgs}from"./commom/parse-args.mjs";export{CUSTOMCONFIG,default as paths,routeDir,yarnArgv}from"./commom/paths.mjs";export{default as printLog}from"./commom/print-log.mjs";export{default as require}from"./commom/require.mjs";export*as Rule from"./commom/rule.mjs";export{default as timer}from"./commom/timer.mjs";export{yApiMock,yApiSchemaMock}from"./dev/mock.mjs";export{default as jsxDomExpressions}from"./options/jsx-dom-expressions.mjs";export{default as splitChunk}from"./options/split-chunk.mjs";export{HtmlPlugin}from"./plugin/html-plugin.mjs";export*from"./plugin/manifest/index.mjs";export{APPTYPE,coreName,FRAMEWORK,isCI,isDev,isLibrary,isMicro,mainDirectory,packageJson,PACKAGENAME}from"./process-env.mjs";export{digest,md5,node_modules,resolveProgram,toCamelCase}from"./utils/index.mjs";export*from"@moneko/mdx";export*from"@moneko/utils";import o from"webpack";export{o as webpack};
package/lib/vm/docs.mjs CHANGED
@@ -1 +1 @@
1
- let e;import{join as t,sep as o}from"node:path";import{loadFile as r,scanFolderSync as m}from"@moneko/utils";import n from"../commom/paths.mjs";import a from"../commom/reactive-object.mjs";import*as s from"../commom/rule.mjs";import{CONFIG as c}from"../config.mjs";import{app_schema as p,docs_schema as i,FRAMEWORK as l,framework as d,isLibrary as f,isSolid as u}from"../process-env.mjs";import g from"./coverage.mjs";import{generatorExample as h}from"./example.mjs";import{generateDoc as $}from"./generate-doc.mjs";let x={react:"createElement",solid:"createComponent"}[l],b=()=>f?m(c.alias["@pkg"],["\\.tsx?$"]).filter(e=>!/(^|\/)\.[^\\/\\.]|\.test\./i.test(e)).map(e=>{let t=getCommentPath(e),o=t.replace(`${i}:`,"");return docs_vm.has(o)||docs_vm.setData(o,{type:".txt",source:async t=>{let o=await r(e);return t.addDependency(e),$(o,e)}}),t}):[];export const docs_vm=new a({coverage:{source:e=>(e.addDependency(n.coveragePath),g(n.coveragePath))},docs:{source:async e=>{e.addContextDependency(n.componentsPath);let t=b();return getDocs(t)}},example:{source:e=>(e.addContextDependency(n.componentsPath),h())}});export const getCommentPath=(e=c.alias["@pkg"]?.length,o=>t(`${i}:comment`,o.substring(e)).replace(/\\/g,"/"));export const getDocs=e=>{let t=`import { ${x}${u?",Dynamic":""} } from "${d}${u?"/web":""}";import SuspenseComp from "${p}:suspense";function call_then(res) {return {default: () => ${x}(${u?"Dynamic":"'n-md'"}, {text: res.default, css: "table td a {display: inline-flex;align-items: center;gap: 4px;}table td a n-img,table td a img {display: inline-block;overflow: hidden;border-radius: var(--border-radius);inline-size: 24px;block-size: 24px;}", ${u?"component: 'n-md' ":""} })};}`,r={};e.forEach(e=>{let t=e.replace(/docs:comment[/\\]/,"").split(o),m=t.pop(),n=t.join("/");r[n]||(r[n]={}),r[n][m]=`rr(() => ${x}(SuspenseComp, { comp: () => import(/* webpackChunkName: '${e}' */ '${e}').then(call_then)}))rr`});let m={};for(let e in r)Object.hasOwn(r,e)&&(m[e]=Object.values(r[e]));return`${t}export default ${JSON.stringify(m).replace(s.extract_func,"$1")}`};b();
1
+ let e;import{join as t,sep as o}from"node:path";import{loadFile as m,scanFolderSync as r}from"@moneko/utils";import{declToMd as a}from"../commom/decl-to-md.mjs";import n from"../commom/paths.mjs";import s from"../commom/reactive-object.mjs";import*as c from"../commom/rule.mjs";import{CONFIG as p}from"../config.mjs";import{app_schema as i,docs_schema as l,FRAMEWORK as d,framework as f,isLibrary as u,isSolid as g}from"../process-env.mjs";import h from"./coverage.mjs";import{generatorExample as $}from"./example.mjs";let x={react:"createElement",solid:"createComponent"}[d],b=()=>u?r(p.alias["@pkg"],["\\.tsx?$"]).filter(e=>!/(^|\/)\.[^\\/\\.]|\.test\./i.test(e)).map(e=>{let t=getCommentPath(e),o=t.replace(`${l}:`,"");return docs_vm.has(o)||docs_vm.setData(o,{type:".txt",source:async t=>{let o=await m(e);return t.addDependency(e),a(o,e,p.basename,p.alias["@pkg"])}}),t}):[];export const docs_vm=new s({coverage:{source:e=>(e.addDependency(n.coveragePath),h(n.coveragePath))},docs:{source:async e=>{e.addContextDependency(n.componentsPath);let t=b();return getDocs(t)}},example:{source:e=>(e.addContextDependency(n.componentsPath),$())}});export const getCommentPath=(e=p.alias["@pkg"]?.length,o=>t(`${l}:comment`,o.substring(e)).replace(/\\/g,"/"));export const getDocs=e=>{let t=`import { ${x}${g?",Dynamic":""} } from "${f}${g?"/web":""}";import SuspenseComp from "${i}:suspense";function call_then(res) {return {default: () => ${x}(${g?"Dynamic":"'n-md'"}, {text: res.default, css: "table td a {display: inline-flex;align-items: center;gap: 4px;}table td a n-img,table td a img {display: inline-block;overflow: hidden;border-radius: var(--border-radius);inline-size: 24px;block-size: 24px;}", ${g?"component: 'n-md' ":""} })};}`,m={};e.forEach(e=>{let t=e.replace(/docs:comment[/\\]/,"").split(o),r=t.pop(),a=t.join("/");m[a]||(m[a]={}),m[a][r]=`rr(() => ${x}(SuspenseComp, { comp: () => import(/* webpackChunkName: '${e}' */ '${e}').then(call_then)}))rr`});let r={};for(let e in m)Object.hasOwn(m,e)&&(r[e]=Object.values(m[e]));return`${t}export default ${JSON.stringify(r).replace(c.extract_func,"$1")}`};b();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "4.7.0-beta.0",
3
+ "version": "4.7.0-beta.2",
4
4
  "description": "core",
5
5
  "main": "lib/index.mjs",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- export declare function generateDoc(content: string, path: string): string;
@@ -1 +0,0 @@
1
- import{dirname as e}from"node:path";import t from"typescript";import{getGitInfo as n}from"../commom/git.mjs";import{CONFIG as r}from"../config.mjs";let l=t.ScriptKind,o=t.ScriptTarget,i=t.SyntaxKind,a=t.createSourceFile,c=t.forEachChild,s=t.getLeadingCommentRanges,u=t.isInterfaceDeclaration,f=t.isQuestionToken,p=t.isPropertySignature,m=t.isFunctionTypeNode,g=t.isUnionTypeNode,$=t.isMethodSignature,d={};function h(e){let t=s(e.getSourceFile().text,e.pos);if(t){let n=e.getSourceFile().text.slice(t[0].pos,t[0].end).match(/\/\*\*([\s\S]*?)\*\//);if(n)return n[1].replaceAll(/^\s*\* ?/gm,"").replace(/\s+$/,"").trim()}}function b(e){if(!e)return;let t=e.match(/@since\s+([^\n]+)/);return t?t[1].trim():void 0}let y=n();function x(e){let t;if(!e)return;let n=/@author\s+([^<\n]+?)(?:\s*<([^>]+)>)?(?=\s*(?:\n|$))/g,r=[];for(;null!==(t=n.exec(e));){let e,n=t[1].trim(),l=t[2]?.trim();if(l){let t=/^[\w.-]+@[\w-]+(\.[\w-]+)+$/.test(l),n=/^https?:\/\/.+/i.test(l);e=t?`mailto:${l}`:n?l:`${y?.domain}/${l}`}else/^[a-z\d](?:[a-z\d-]{0,38})$/i.test(n)&&(e=`${y?.domain}/${n}`);let o=e?`[![${n}-alt](${y?.type==="github"?`https://avatars.githubusercontent.com/${e.split("/").pop()}?s=48`:`https://www.gravatar.com/avatar/${n}?s=48&d=identicon`})${n}](${e})`:n;r.includes(o)||r.push(o)}return r.join(" ")}function j(e){if(!e)return;let t=e.match(/@ignore\s+([^\n]+)/);return t?t[1].trim():void 0}let A=/(?<!['"])(unknown|any|void|bigint|object|undefined|null|boolean|number|string|symbol)(?!['"])/g;function S(e,t){if(!e)return;let n=e.replaceAll(/\b([A-Z][a-zA-Z0-9]*)\b/g,e=>{if(d[e]){let n=`/${[r.basename,d[e]].join("/").split("/").filter(Boolean).join("/")}`;return t?`[\\color{#009688}{${e}}](${n})`:`[${e}](${n})`}return t?`\\color{#009688}{${e}}`:e});return t&&(n=n.replaceAll(A,e=>`\\color{#009688}{${e}}`)),n}function T(e){if(e)return(function(e){let t;if(!e)return;let n=[];for(;t=/\\color{([^|}]*)\|?([^|}]*)\|?([^|}]*)\|?([^}]*)}{([^}]*)}/g.exec(e);)n.push(t[0]);return e.replaceAll(/[{}[\]()=>]|keyof|typeof|true|false/g,e=>n.some(t=>t.includes(e))?e:`\\color{#569cd6}{${e}}`)})(e)?.replaceAll(/^\s*\|\s*|\s*\|\s*$/gm,"").replaceAll(/\n/g,"<br/>").replaceAll(/\*/g,"\\*").replaceAll(/\|/g,"\\|").replaceAll(/(['"])((?:(?!\1).)*)\1/g,"\\color{#ce9178}{$1$2$1}")}function v(e){if(e)return e.replaceAll(/@example\s*([\s\S]*?)(?=@[a-zA-Z]|\n*$)/g,"").replaceAll(/^@[a-z].+/gm,"").replaceAll(/(\n\s+)+/g,"<br />").replaceAll(/\n/g,"<br />").replaceAll(/(<br \/>)$/g,"")}export function generateDoc(n,s){let y=a(s,n,o.Latest,!0,l.TS),A="";return c(y,n=>{u(n)?A+=function(n){let l=n.name.text;Object.assign(d,{[n.name.text]:e(n.getSourceFile().fileName).replace(r.alias["@pkg"],"")});let o=h(n),a=b(o),c=v(o),s=j(o)?.split("|")||[],u=s.includes("comment"),y=s.includes("initial"),A=s.includes("optional"),k=s.includes("version"),w=s.includes("author"),B=c?`\\color{|4||0.45}{${l}}`:l,z=(function(e){let n=[];if(e.heritageClauses){for(let r of e.heritageClauses)if(r.token===t.SyntaxKind.ExtendsKeyword)for(let e of r.types)n.push(e.getText())}return n})(n)?.map(e=>`<n-tag color="#4c81db" css=".tag{gap:0px;}">${S(T(e))}</n-tag>`),F=[c,B,a&&`\\color{#52c11b|1||0.9}{${a}}`,z.length>0&&`<sub>\`extends\`</sub> ${z.join(" ")}`].filter(Boolean).join(" "),N=`## ${F}`,K=n.members.filter(e=>p(e)&&e.type?.kind!==i.NeverKeyword||$(e)),C=[];if(K.length>0){for(let e=0,t=K.length;e<t;e++){let t=K[e],n=S(T($(t)?`(${t.parameters.map(e=>`${e.name.getText()}: ${e.type?.getText()||"any"}`).join(", ")}): ${t.type?.getText()||"any"}`:t.type?.getText()||"any"),!0),r=h(t),l=T(t.name.getText());l&&!l.startsWith("\\color")&&($(t)||function(e){if(e.type){if(!g(e.type))return m(e.type);else for(let t of e.type.types)if(m(t))return!0}return!1}(t)||n?.includes("=>")?l=`\\color{#f9a913}{${l}}`:/^["'](.+)["']$/.test(l)||(l=`\\color{#4c81db}{${l}}`));let i=t.questionToken&&f(t.questionToken);C.push([l,!A&&`\\color{${i?"#f9a913":"#52c11b"}\\|\\|\\|0.9}{${i?"✘":"✔"}}`,!u&&T(v(r)),n,!y&&T(function(e){if(!e)return;let t=e.match(/@default\s+([^\n]+)/);return t?t[1].trim():void 0}(r)),!k&&T(b(r)),!w&&(x(r)||x(o)),function(e){if(!e)return;let t=e.match(/@example\s*([\s\S]*?)(?=@[a-zA-Z]|\n*$)/);return t?t[1].trim():void 0}(r)])}let e=!1,t=!1,n=!1,r=!1;for(let l=0,o=C.length;l<o;l++){let o=C[l];!u&&o[2]&&(r=!0),!y&&o[4]&&(n=!0),!k&&o[5]&&(t=!0),!w&&o[6]&&(e=!0)}N+="\n";let l=["属性",!A&&"必要",r&&"说明","类型",n&&"默认值",t&&"版本",e&&"作者"].filter(Boolean).join("|");N+=`|${l}|`;let i=[":-",!A&&":-",r&&":-",":-",n&&":-",t&&":-",e&&":-"].filter(Boolean);N+="\n";let a=i.join("|");N+=`|${a}|`;for(let l=0,o=C.length;l<o;l++){let o=C[l];N+="\n";let i=[(o[7]?`<n-popover arrow="true" trigger="click" content=${JSON.stringify(`<n-md css=.n-md-body{margin-bottom:0;padding:0.5rem;background-color:transparent;backdrop-filter:none;box-shadow:none;}>${o[7]}</n-md>`)}><n-button size="small" type="primary" circle="true" style="margin-right:8px;">?</n-button></n-popover>`:"")+(o[0]||"-"),!A&&(o[1]||"-"),r&&(o[2]||"-"),o[3]||"-",n&&(o[4]||"-"),t&&(o[5]||"-"),e&&(o[6]||"-")].filter(Boolean).join("|");N+=`|${i}|`}N+="\n"}return N+"\n"}(n):t.isEnumDeclaration(n)&&(A+=function(n){let l=n.name.text,o=h(n),i=v(o),a=b(o);Object.assign(d,{[n.name.text]:e(n.getSourceFile().fileName).replace(r.alias["@pkg"],"")});let c=i?`\\color{|4||0.45}{${l}}`:l,s=[i,c,a&&`\\color{#52c11b|1||0.9}{${a}}`].filter(Boolean).join(" "),u=j(o)?.split("|")||[],f=u.includes("comment"),p=u.includes("version"),m=u.includes("author"),g=`## ${s}`;if(n.members.length>0){let e=[];for(let r=0,l=n.members.length;r<l;r++){let l=n.members[r],i=T(l.name.getText()),a=h(l),c=T(function(e){let n=e.initializer;if(n&&t.isStringLiteral(n))return` '${n.text}'`}(l)),s=T(b(a)),u=T(v(a));!i||i.startsWith("\\color")||/^["'](.+)["']$/.test(i)||(i=`\\color{#4c81db}{${i}}`),e.push([i,!f&&u,c,!p&&s,!m&&(x(a)||x(o))])}let r=!1,l=!1,i=!1;for(let t=0,n=e.length;t<n;t++){let n=e[t];!f&&n[1]&&(i=!0),!p&&n[3]&&(l=!0),!m&&n[4]&&(r=!0)}g+="\n";let a=["属性",i&&"说明","值",l&&"版本",r&&"作者"].filter(Boolean).join("|");g+=`|${a}|`;let c=[":-",i&&":-",":-",l&&":-",r&&":-"].filter(Boolean);g+="\n";let s=c.join("|");g+=`|${s}|`;for(let t=0,n=e.length;t<n;t++){let n=e[t];g+="\n";let o=[n[0]||"-",i&&(n[1]||"-"),n[2]||"-",l&&(n[3]||"-"),r&&(n[4]||"-")].filter(Boolean).join("|");g+=`|${o}|`}}return g+"\n\n"}(n))}),A}