@moneko/core 4.6.12 → 4.7.0-beta.1
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.
- package/README.md +18 -0
- package/lib/commom/git.d.mts +2 -0
- package/lib/commom/git.mjs +1 -1
- package/lib/config.mjs +1 -1
- package/lib/index.d.mts +1 -0
- package/lib/index.mjs +1 -1
- package/lib/options/md-to-html.d.mts +36 -2
- package/lib/vm/docs.mjs +1 -1
- package/package.json +3 -13
- package/typings/bundle-analyzer.d.ts +1 -1
- package/typings/react-refresh.d.ts +3 -0
- package/typings/stylis.d.ts +15 -0
- package/typings/typings.d.ts +22 -1
- package/typings/webpack-hot-middleware.d.ts +49 -0
- package/lib/options/md-to-html.mjs +0 -1
- package/lib/vm/generate-doc.d.mts +0 -1
- package/lib/vm/generate-doc.mjs +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
[npm-url]: https://npmjs.org/package/@moneko/core
|
|
2
|
+
[install-tag]: https://nodei.co/npm/@moneko/core.png
|
|
3
|
+
[version-tag]: https://img.shields.io/npm/v/@moneko/core/latest.svg?logo=npm
|
|
4
|
+
[size-tag]: https://packagephobia.com/badge?p=%40moneko%2Fcore@latest
|
|
5
|
+
[size-url]: https://packagephobia.com/result?p=%40moneko%2Fcore@latest
|
|
6
|
+
[download-tag]: https://img.shields.io/npm/dm/%40moneko%2Fcore.svg?logo=docusign
|
|
7
|
+
[x-tag]: https://img.shields.io/twitter/follow/moneko97.svg?style=social
|
|
8
|
+
|
|
9
|
+
# @moneko/core
|
|
10
|
+
|
|
11
|
+
🐾 🐾 🐾 🐾
|
|
12
|
+
|
|
13
|
+
[![version][version-tag]][npm-url]
|
|
14
|
+
[![install size][size-tag]][size-url]
|
|
15
|
+
[![download][download-tag]][npm-url]
|
|
16
|
+
![x][x-tag]
|
|
17
|
+
[![install][install-tag]][npm-url]
|
|
18
|
+

|
package/lib/commom/git.d.mts
CHANGED
|
@@ -6,6 +6,8 @@ export interface GitInfo {
|
|
|
6
6
|
/** 提交用户邮箱 */ email: string;
|
|
7
7
|
/** 提交日期 */ date: string;
|
|
8
8
|
/** Git 远程地址 */ url: string;
|
|
9
|
+
/** Git 仓库类型,可能的值包括 'github'、'gitlab' */ type: 'github' | 'gitlab';
|
|
10
|
+
/** Git 仓库域名,例如 https://github.com */ domain: string;
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* 获取 Git 信息
|
package/lib/commom/git.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{execSync as t}from"node:child_process";let
|
|
1
|
+
import{execSync as t}from"node:child_process";import{URL as i}from"node:url";let r=null;export const getGitInfo=e=>{let n=!1!==e;if(n&&null!==r)return r;let l=null;try{let r=t('git remote get-url origin && git rev-parse --abbrev-ref HEAD && git log -1 --pretty=format:"%h%x00%B%x00%an%x00%ae%x00%ai"',{encoding:"utf-8",stdio:["pipe","pipe","ignore"],maxBuffer:1048576}).trim();if(r){let t=r.indexOf("\n");if(-1!==t){let e=r.substring(0,t).trim().trim().replace(/^git@([^:]+):(.+?)(\.git)?$/,"https://$1/$2"),n=r.indexOf("\n",t+1),m=r.substring(t+1,n).trim(),o=r.substring(n+1).split("\0");if(o.length>=5){let t=o[0].trim(),r=e.includes("github")?"github":"gitlab",n=new i(e).origin,g="github"===r?`${e}/commit/${t}`:`${e}/-/commit/${t}`,u=o[1],f=o[2].trim(),s=o[3].trim(),p=o[4].trim();l={branch:m,commit:g,message:u,author:f,email:s,date:p,url:e,type:r,domain:n}}}}}catch{}return n&&(r=l),l};
|
package/lib/config.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{sep as e}from"node:path";import o from"node:process";import{merge as t}from"webpack-merge";import{CUSTOMCONFIG as n}from"./commom/custom-config.mjs";import s from"./commom/paths.mjs";import{join as a}from"./commom/posix.mjs";import r from"./commom/setup-env.mjs";import i from"./options/jsx-dom-expressions.mjs";import m from"./options/split-chunk.mjs";import{getConfigWithTypescript as l,isFunction as p,node_modules as c,resolveProgram as u}from"./utils/index.mjs";import{initDts as d}from"./vm/dts.mjs";import{APPTYPE as f,FRAMEWORK as h,frameworkVersion as g,isCI as v,isDev as x,isLibrary as b,isMobile as j,isReact as C,jsxImportSource as P,mainDirectory as k,NODE_ENV as w,PACKAGENAME as O}from"./process-env.mjs";let I=[/(app|vm|docs|example):[a-zA-Z_0-9]/,"@moneko","neko-ui",".cache/http/data","@element-plus","ant-design-vue","element-plus","element-ui","ng-zorro-antd","@mui","@du","@fontsource","@fortawesome","font-pingfang-sc","font-pingfang-tc","katex","react-markdown-editor-lite","react-photo-view","schema-design","monaco-editor"];export async function getConfig(e){let t=l(e).default;return(p(t)?await t(o):t)??{}}let S=await r(w,f,h,[],"true"===o.env.IS_BUILD,n),[y,M]=await Promise.all([getConfig(s.configPath),getConfig(s.customConfigPath)]),z={mode:w,strict:!1,devtool:"true"!==o.env.IS_BUILD&&x?"eval-cheap-module-source-map":"cheap-module-source-map",seo:!1,bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:{},sourceMap:{filename:"[file].map",publicPath:"",namespace:O,moduleFilenameTemplate:"moneko://[namespace]/[resource-path]?[loaders]",fallbackModuleFilenameTemplate:"moneko://[namespace]/[resource-path]?[loaders]"},env:S,basename:"/",publicPath:"auto",rem:{designSize:j?375:1920},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:Object.assign({"@":u(k)},C&&g<18?{"react/package.json":c("react/package.json"),"react/jsx-runtime":c("react/jsx-runtime.js"),"react/jsx-dev-runtime":c("react/jsx-dev-runtime.js")}:{}),moduleRules:[],prefixJsLoader:[],cssModules:[],cssModuleDefinition:!0,importOnDemand:{},proxy:{},devServer:{host:"localhost",port:3e3,open:!0},htmlPluginOption:{title:O.toLocaleUpperCase(),favicon:"https://h5static.dewucdn.com/node-common/718d5e10-576d-8b14-b0b1-e4c58c3b3f40.webp"},copy:{},routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:m,runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:I,js:I,media:I,font:I,wasm:[]},mdx:{jsx:!1,development:x,jsxImportSource:P,providerImportSource:`@moneko/${h}/mdx`},jsxDomExpressions:i,bar:{name:"Client",nameColor:"68",msgColor:"242",barBgColor:"15",barColor:"69",quiet:v},normalizeCss:!0,externalsPresets:{},buildHttp:void 0,virtualModule:{},cssExtract:{},externals:["@swc/core"],lazyCompilation:!1,performance:!1,refresh:"solid"!==h,bundleId:"com.moneko.bid",bundles:[],stylelint:{},eslint:{lintDirtyModulesOnly:!1},minChunkSize:1e3,compression:!1,manifest:{filename:"site.webmanifest"},corepack:!0,reactJsxRuntime:"automatic"};b&&(z.alias=Object.assign(z.alias,{"@pkg":s.componentsPath,[O]:s.componentsPath}));let D=z;if((!1===(D=t(D,y,M)).devtool||!1===D.sourceMap)&&(D.sourceMap=!1,D.devtool=!1),"true"===o.env.CODESPACES&&(D.devServer.https=!1),!1===D.devServer.https&&"darwin"===o.platform&&(D.devServer.open=!1),D.htmlPluginOption&&(D.htmlPluginOption.tags||(D.htmlPluginOption.tags=[]),D.fixBrowserRouter&&D.htmlPluginOption.tags.push({textContent:"(function(l) {if (l.search[1] === '/' ) {var decoded = l.search.slice(1).split('&').map(function(s) {return s.replace(/~and~/g, '&')}).join('?');window.history.replaceState(null, null,l.pathname.slice(0, -1) + decoded + l.hash);}}(window.location))"}),D.manifest)){let o=D.manifest.publicPath??D.publicPath??"/";D.htmlPluginOption.tags.push({href:a("auto"===o?"/":o,D.manifest.filename).replaceAll(e,"/"),tag:"link",rel:"manifest"})}export const CONFIG=D;export const PUBLICPATH="auto"===CONFIG.publicPath?"":CONFIG.publicPath;d(CONFIG);
|
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';
|
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*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};
|
|
@@ -1,2 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// import marked from 'marked-completed';
|
|
2
|
+
// function setup(): void {
|
|
3
|
+
// const renderer: marked.Renderer = new marked.Renderer();
|
|
4
|
+
// renderer.code = (code: string, lang: string) => {
|
|
5
|
+
// if (lang === 'treeview') {
|
|
6
|
+
// return `<n-tree data="${code}" />`;
|
|
7
|
+
// }
|
|
8
|
+
// return `<n-code class="n-code" toolbar="${JSON.stringify([
|
|
9
|
+
// 'copy',
|
|
10
|
+
// ])}" language="${lang}" line-number="true">${encodeURIComponent(code)}</n-code>`;
|
|
11
|
+
// };
|
|
12
|
+
// renderer.image = (src: string, title: string, alt: string) => {
|
|
13
|
+
// return `<n-img lazy="true" role="img" src="${src}" alt="${alt}" ${
|
|
14
|
+
// title ? `title="${title}"` : ''
|
|
15
|
+
// }></n-img>`;
|
|
16
|
+
// };
|
|
17
|
+
// marked.use({
|
|
18
|
+
// langToolbar: ['copy'],
|
|
19
|
+
// headerPrefix: '# ',
|
|
20
|
+
// breaks: true,
|
|
21
|
+
// pedantic: false,
|
|
22
|
+
// smartLists: true,
|
|
23
|
+
// smartypants: true,
|
|
24
|
+
// xhtml: true,
|
|
25
|
+
// renderer: renderer,
|
|
26
|
+
// });
|
|
27
|
+
// }
|
|
28
|
+
// let initial = true;
|
|
29
|
+
// export function mdToHtml(text: string): string {
|
|
30
|
+
// if (initial) {
|
|
31
|
+
// initial = false;
|
|
32
|
+
// setup();
|
|
33
|
+
// }
|
|
34
|
+
// return marked.parse(text);
|
|
35
|
+
// }
|
|
36
|
+
export { };
|
package/lib/vm/docs.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let e;import{join as t,sep as o}from"node:path";import{loadFile as
|
|
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.
|
|
3
|
+
"version": "4.7.0-beta.1",
|
|
4
4
|
"description": "core",
|
|
5
5
|
"main": "lib/index.mjs",
|
|
6
6
|
"type": "module",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"@moneko/stylelint": "1.8.2",
|
|
139
139
|
"@moneko/transform-imports": "1.4.0",
|
|
140
140
|
"@moneko/utils": "0.3.3",
|
|
141
|
-
"@swc/core": "1.15.
|
|
141
|
+
"@swc/core": "1.15.13",
|
|
142
142
|
"browserslist": "4.28.1",
|
|
143
143
|
"core-js": "3.48.0",
|
|
144
144
|
"core-js-compat": "3.48.0",
|
|
@@ -146,22 +146,12 @@
|
|
|
146
146
|
"less": "4.5.1",
|
|
147
147
|
"less-loader": "12.3.1",
|
|
148
148
|
"lightningcss": "1.31.1",
|
|
149
|
-
"marked-completed": "1.2.15",
|
|
150
149
|
"swc-loader": "0.2.7",
|
|
151
150
|
"typescript": "5.9.3",
|
|
152
151
|
"webpack": "5.105.2",
|
|
153
152
|
"webpack-hot-middleware": "2.26.1",
|
|
154
153
|
"webpack-merge": "6.0.1"
|
|
155
154
|
},
|
|
156
|
-
"devDependencies": {
|
|
157
|
-
"@types/react-refresh": "0.14.7",
|
|
158
|
-
"@types/stylis": "4.2.7",
|
|
159
|
-
"@types/webpack-bundle-analyzer": "4.7.0",
|
|
160
|
-
"@types/webpack-hot-middleware": "2.25.12",
|
|
161
|
-
"sass": "1.97.3",
|
|
162
|
-
"sass-loader": "16.0.7",
|
|
163
|
-
"solid-refresh": "0.7.5"
|
|
164
|
-
},
|
|
165
155
|
"publishConfig": {
|
|
166
156
|
"access": "public",
|
|
167
157
|
"registry": "https://registry.npmjs.org"
|
|
@@ -170,5 +160,5 @@
|
|
|
170
160
|
"lib",
|
|
171
161
|
"typings"
|
|
172
162
|
],
|
|
173
|
-
"packageManager": "pnpm@10.
|
|
163
|
+
"packageManager": "pnpm@10.30.1"
|
|
174
164
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare module 'stylis' {
|
|
2
|
+
export interface Element {
|
|
3
|
+
parent: Element | null;
|
|
4
|
+
children: Element[] | string;
|
|
5
|
+
root: Element | null;
|
|
6
|
+
type: string;
|
|
7
|
+
props: string[] | string;
|
|
8
|
+
value: string;
|
|
9
|
+
length: number;
|
|
10
|
+
return: string;
|
|
11
|
+
line: number;
|
|
12
|
+
column: number;
|
|
13
|
+
}
|
|
14
|
+
export function compile(value: string): Element[];
|
|
15
|
+
}
|
package/typings/typings.d.ts
CHANGED
|
@@ -6,6 +6,27 @@ declare module 'package.json';
|
|
|
6
6
|
declare module 'app:info' {
|
|
7
7
|
export const projectName: string;
|
|
8
8
|
export const version: string;
|
|
9
|
-
|
|
10
9
|
}
|
|
11
10
|
declare let __webpack_public_path__: string;
|
|
11
|
+
|
|
12
|
+
declare module 'webpack-bundle-analyzer' {
|
|
13
|
+
import type { BundleAnalyzerPlugin } from './bundle-analyzer.d.ts';
|
|
14
|
+
|
|
15
|
+
export class BundleAnalyzerPlugin implements WebpackPluginInstance {
|
|
16
|
+
opts: BundleAnalyzerPlugin.Options;
|
|
17
|
+
compiler?: Compiler;
|
|
18
|
+
server: null | Server;
|
|
19
|
+
|
|
20
|
+
constructor(options?: BundleAnalyzerPlugin.Options);
|
|
21
|
+
|
|
22
|
+
apply(compiler: Compiler): void;
|
|
23
|
+
/** @async */
|
|
24
|
+
startAnalyzerServer: (stats: WebpackStats) => Promise<void>;
|
|
25
|
+
/** @async */
|
|
26
|
+
generateJSONReport: (stats: WebpackStats) => Promise<void>;
|
|
27
|
+
generateStatsFile: (stats: WebpackStats) => Promise<void>;
|
|
28
|
+
/** @async */
|
|
29
|
+
generateStaticReport: (stats: WebpackStats) => Promise<void>;
|
|
30
|
+
getBundleDirFromCompiler: () => null | string;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
declare module 'webpack-hot-middleware' {
|
|
2
|
+
import { NextHandleFunction } from 'connect';
|
|
3
|
+
import webpack = require('webpack');
|
|
4
|
+
|
|
5
|
+
export = WebpackHotMiddleware;
|
|
6
|
+
|
|
7
|
+
declare function WebpackHotMiddleware(
|
|
8
|
+
compiler: webpack.Compiler | webpack.MultiCompiler,
|
|
9
|
+
options?: WebpackHotMiddleware.MiddlewareOptions,
|
|
10
|
+
): NextHandleFunction & WebpackHotMiddleware.EventStream;
|
|
11
|
+
|
|
12
|
+
declare namespace WebpackHotMiddleware {
|
|
13
|
+
interface ClientOptions {
|
|
14
|
+
path?: string | undefined;
|
|
15
|
+
reload?: boolean | undefined;
|
|
16
|
+
name?: string | undefined;
|
|
17
|
+
timeout?: number | undefined;
|
|
18
|
+
overlay?: boolean | undefined;
|
|
19
|
+
noInfo?: boolean | undefined;
|
|
20
|
+
quiet?: boolean | undefined;
|
|
21
|
+
dynamicPublicPath?: boolean | undefined;
|
|
22
|
+
autoConnect?: boolean | undefined;
|
|
23
|
+
ansiColors?:
|
|
24
|
+
| {
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
}
|
|
27
|
+
| undefined;
|
|
28
|
+
overlayStyles?:
|
|
29
|
+
| {
|
|
30
|
+
[key: string]: any;
|
|
31
|
+
}
|
|
32
|
+
| undefined;
|
|
33
|
+
overlayWarnings?: boolean | undefined;
|
|
34
|
+
}
|
|
35
|
+
interface MiddlewareOptions {
|
|
36
|
+
log?: false | Logger | undefined;
|
|
37
|
+
path?: string | undefined;
|
|
38
|
+
heartbeat?: number | undefined;
|
|
39
|
+
statsOptions?: webpack.StatsOptions;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
type Logger = (message?: any, ...optionalParams: any[]) => void;
|
|
43
|
+
|
|
44
|
+
interface EventStream {
|
|
45
|
+
publish(payload: any): void;
|
|
46
|
+
close(): void;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import e from"marked-completed";let r=!0;export default function(t){if(r){let t;r=!1,(t=new e.Renderer).code=(e,r)=>"treeview"===r?`<n-tree data="${e}" />`:`<n-code class="n-code" toolbar="${JSON.stringify(["copy"])}" language="${r}" line-number="true">${encodeURIComponent(e)}</n-code>`,t.image=(e,r,t)=>`<n-img lazy="true" role="img" src="${e}" alt="${t}" ${r?`title="${r}"`:""}></n-img>`,e.use({langToolbar:["copy"],headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0,renderer:t})}return e.parse(t)};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function generateDoc(content: string, path: string): string;
|
package/lib/vm/generate-doc.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{dirname as e}from"node:path";import t from"typescript";import{CONFIG as n}from"../config.mjs";import r from"../options/md-to-html.mjs";import{digest as l}from"../utils/index.mjs";let o=t.ScriptKind,i=t.ScriptTarget,a=t.SyntaxKind,c=t.createSourceFile,s=t.forEachChild,u=t.getLeadingCommentRanges,f=t.isInterfaceDeclaration,m=t.isQuestionToken,p=t.isPropertySignature,g=t.isFunctionTypeNode,$=t.isUnionTypeNode,d=t.isMethodSignature,h={};function b(e){let t=u(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 y(e){if(!e)return;let t=e.match(/@since\s+([^\n]+)/);return t?t[1].trim():void 0}function x(e){if(!e)return;let t=e.match(/@author (\w+)\s*(?:<([^>]+)>)?/);if(t&&t.length>0){let e=t[1].trim(),n=t[2]?.trim(),r=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(n);return n?r&&(n=`mailto:${n}`):n=`https://github.com/${e}`,`[${e}](${n})`}}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 r=e.replaceAll(/\b([A-Z][a-zA-Z0-9]*)\b/g,e=>{if(h[e]){let r=`/${[n.basename,h[e]].join("/").split("/").filter(Boolean).join("/")}`;return t?`[\\color{#009688}{${e}}](${r})`:`[${e}](${r})`}return t?`\\color{#009688}{${e}}`:e});return t&&(r=r.replaceAll(A,e=>`\\color{#009688}{${e}}`)),r}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 k(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,"")}let v=new Map;export default function w(u,A){let w=l(u),B=v.get(w);if(B)return B;let z=c(A,u,i.Latest,!0,o.TS),F="";s(z,r=>{f(r)?F+=function(r){let l=r.name.text;Object.assign(h,{[r.name.text]:e(r.getSourceFile().fileName).replace(n.alias["@pkg"],"")});let o=b(r),i=y(o),c=k(o),s=j(o)?.split("|")||[],u=s.includes("comment"),f=s.includes("initial"),A=s.includes("optional"),v=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})(r)?.map(e=>`<n-tag color="#4c81db" css=".tag{gap:0px;}">${S(T(e))}</n-tag>`),F=[c,B,i&&`\\color{#52c11b|1||0.9}{${i}}`,z.length>0&&`<sub>\`extends\`</sub> ${z.join(" ")}`].filter(Boolean).join(" "),N=`## ${F}`,K=r.members.filter(e=>p(e)&&e.type?.kind!==a.NeverKeyword||d(e)),C=[];if(K.length>0){for(let e=0,t=K.length;e<t;e++){let t=K[e],n=S(T(d(t)?`(${t.parameters.map(e=>`${e.name.getText()}: ${e.type?.getText()||"any"}`).join(", ")}): ${t.type?.getText()||"any"}`:t.type?.getText()||"any"),!0),r=b(t),l=T(t.name.getText());l&&!l.startsWith("\\color")&&(d(t)||function(e){if(e.type){if(!$(e.type))return g(e.type);else for(let t of e.type.types)if(g(t))return!0}return!1}(t)||n?.includes("=>")?l=`\\color{#f9a913}{${l}}`:/^["'](.+)["']$/.test(l)||(l=`\\color{#4c81db}{${l}}`));let i=t.questionToken&&m(t.questionToken);C.push([l,!A&&`\\color{${i?"#f9a913":"#52c11b"}\\|\\|\\|0.9}{${i?"✘":"✔"}}`,!u&&T(k(r)),n,!f&&T(function(e){if(!e)return;let t=e.match(/@default\s+([^\n]+)/);return t?t[1].trim():void 0}(r)),!v&&T(y(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),!f&&o[4]&&(n=!0),!v&&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"}(r):t.isEnumDeclaration(r)&&(F+=function(r){let l=r.name.text,o=b(r),i=k(o),a=y(o);Object.assign(h,{[r.name.text]:e(r.getSourceFile().fileName).replace(n.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"),m=u.includes("version"),p=u.includes("author"),g=`## ${s}`;if(r.members.length>0){let e=[];for(let n=0,l=r.members.length;n<l;n++){let l=r.members[n],i=T(l.name.getText()),a=b(l),c=T(function(e){let n=e.initializer;if(n&&t.isStringLiteral(n))return` '${n.text}'`}(l)),s=T(y(a)),u=T(k(a));!i||i.startsWith("\\color")||/^["'](.+)["']$/.test(i)||(i=`\\color{#4c81db}{${i}}`),e.push([i,!f&&u,c,!m&&s,!p&&(x(a)||x(o))])}let n=!1,l=!1,i=!1;for(let t=0,r=e.length;t<r;t++){let r=e[t];!f&&r[1]&&(i=!0),!m&&r[3]&&(l=!0),!p&&r[4]&&(n=!0)}g+="\n";let a=["属性",i&&"说明","值",l&&"版本",n&&"作者"].filter(Boolean).join("|");g+=`|${a}|`;let c=[":-",i&&":-",":-",l&&":-",n&&":-"].filter(Boolean);g+="\n";let s=c.join("|");g+=`|${s}|`;for(let t=0,r=e.length;t<r;t++){let r=e[t];g+="\n";let o=[r[0]||"-",i&&(r[1]||"-"),r[2]||"-",l&&(r[3]||"-"),n&&(r[4]||"-")].filter(Boolean).join("|");g+=`|${o}|`}}return g+"\n\n"}(r))});let N=r(F);return v.set(w,N),N}
|