@moneko/core 3.8.7-beta.6 → 3.8.7-beta.7

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/lib/config.js CHANGED
@@ -1 +1 @@
1
- import{accessSync as e,constants as t}from"fs";import o from"chalk";import{merge as s}from"webpack-merge";import i,{CUSTOMCONFIG as a}from"./paths.js";import{FRAMEWORK as r,PACKAGENAME as n,coreName as l,isDev as c,isLibrary as m,isMobile as p,jsxImportSource as u,mainDirectory as d}from"./process-env.js";import{isFunction as h,log as f,readConf as g,resolveProgramPath as x}from"./utils.js";import{comment as C}from"./vm/docs.js";let P=["@moneko","neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design","@app",".cache/http/data"],w={seo:!1,mode:"csr",compiler:"swc",bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:{js:{},css:{}},sourceMap:{filename:"[file].map",publicPath:""},env:{NODE_ENV:process.env.NODE_ENV},basename:"/",publicPath:"/",rem:{designSize:p?375:1680},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:{"@":x(d)},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:i.webpackCachePath,devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:!1,compress:!1},htmlPluginOption:{template:`node_modules/${l}/template/index.html`,favicon:`node_modules/${l}/template/favicon.ico`,tags:[]},assetHtml:[],routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:{chunks:"all",minSize:1024,minChunks:1,cacheGroups:{route:{test:/[\\/].git[\\/]router/,priority:-10,reuseExistingChunk:!0,name:"route"},example:{test:/[\\/].git[\\/]example/,priority:-10,reuseExistingChunk:!0,name:"example"}}},runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:P,js:P,media:P,font:P,wasm:[]},mdx:{jsx:!1,development:c,jsxImportSource:u,providerImportSource:`@moneko/${r}/mdx`},jsxDomExpressions:{moduleName:"solid-js/web",builtIns:["For","Show","Switch","Match","Suspense","SuspenseList","Portal","Index","Dynamic","ErrorBoundary"],contextToCustomElements:!0,wrapConditionals:!0,generate:"dom",hydratable:!1},bar:{name:"Client",color:"#6f42c1"},virtualModule:{},normalizeCss:!0,externalsPresets:{},buildHttp:{allowedUris:[],lockfileLocation:`${i.httpCachePath}/http.lock`,cacheLocation:`${i.httpCachePath}/data`,upgrade:!0}};m&&(w.alias=Object.assign(w.alias,{"@pkg":i.componentsPath,[n]:i.componentsPath}));let b=w,v={},k={};try{e(i.configPath,t.R_OK);let o=(await g(i.configPath,"index")).default;v=h(o)?o(process):o}catch(e){f(o.red(e))}if(a)try{e(i.customConfigPath,t.R_OK);let o=(await g(i.customConfigPath,a)).default;k=h(o)?o(process):o}catch(e){f(o.red(e))}"tsc"===(b=s(b,v,k)).compiler&&b.minifier&&(b.minifier.js||Object.assign(b.minifier,{js:{type:"terser"}}),b.minifier.css||Object.assign(b.minifier,{css:{type:"cssnano"}})),!1===b.devtool&&(b.sourceMap=!1),!1===b.sourceMap&&(b.devtool=!1),b.fixBrowserRouter&&b.htmlPluginOption&&(b.htmlPluginOption.tags||(b.htmlPluginOption.tags=[]),b.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))"}));export const CONFIG=b;export const PUBLICPATH=CONFIG.publicPath||"/";global.NEKOCLICONFIG={CONFIG,CUSTOMCONFIG:a,log:f,comment:C};
1
+ import{accessSync as e,constants as t}from"fs";import o from"chalk";import{merge as s}from"webpack-merge";import i,{CUSTOMCONFIG as a}from"./paths.js";import{FRAMEWORK as n,PACKAGENAME as r,coreName as l,isDev as c,isLibrary as m,isMobile as p,jsxImportSource as u,mainDirectory as d}from"./process-env.js";import{isFunction as h,log as f,readConf as g,resolveProgramPath as x}from"./utils.js";let C=["@moneko","neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design","@app",".cache/http/data"],P={seo:!1,mode:"csr",compiler:"swc",bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:{js:{},css:{}},sourceMap:{filename:"[file].map",publicPath:""},env:{NODE_ENV:process.env.NODE_ENV},basename:"/",publicPath:"/",rem:{designSize:p?375:1680},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:{"@":x(d)},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:i.webpackCachePath,devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:!1,compress:!1},htmlPluginOption:{template:`node_modules/${l}/template/index.html`,favicon:`node_modules/${l}/template/favicon.ico`,tags:[]},assetHtml:[],routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:{chunks:"all",minSize:1024,minChunks:1,cacheGroups:{route:{test:/[\\/].git[\\/]router/,priority:-10,reuseExistingChunk:!0,name:"route"},example:{test:/[\\/].git[\\/]example/,priority:-10,reuseExistingChunk:!0,name:"example"}}},runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:C,js:C,media:C,font:C,wasm:[]},mdx:{jsx:!1,development:c,jsxImportSource:u,providerImportSource:`@moneko/${n}/mdx`},jsxDomExpressions:{moduleName:"solid-js/web",builtIns:["For","Show","Switch","Match","Suspense","SuspenseList","Portal","Index","Dynamic","ErrorBoundary"],contextToCustomElements:!0,wrapConditionals:!0,generate:"dom",hydratable:!1},bar:{name:"Client",color:"#6f42c1"},virtualModule:{},normalizeCss:!0,externalsPresets:{},buildHttp:{allowedUris:[],lockfileLocation:`${i.httpCachePath}/http.lock`,cacheLocation:`${i.httpCachePath}/data`,upgrade:!0}};m&&(P.alias=Object.assign(P.alias,{"@pkg":i.componentsPath,[r]:i.componentsPath}));let w=P,b={},k={};try{e(i.configPath,t.R_OK);let o=(await g(i.configPath,"index")).default;b=h(o)?o(process):o}catch(e){f(o.red(e))}if(a)try{e(i.customConfigPath,t.R_OK);let o=(await g(i.customConfigPath,a)).default;k=h(o)?o(process):o}catch(e){f(o.red(e))}"tsc"===(w=s(w,b,k)).compiler&&w.minifier&&(w.minifier.js||Object.assign(w.minifier,{js:{type:"terser"}}),w.minifier.css||Object.assign(w.minifier,{css:{type:"cssnano"}})),!1===w.devtool&&(w.sourceMap=!1),!1===w.sourceMap&&(w.devtool=!1),w.fixBrowserRouter&&w.htmlPluginOption&&(w.htmlPluginOption.tags||(w.htmlPluginOption.tags=[]),w.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))"}));export const CONFIG=w;export const PUBLICPATH=CONFIG.publicPath||"/";global.NEKOCLICONFIG={CONFIG,CUSTOMCONFIG:a,log:f};
package/lib/dev.js CHANGED
@@ -1,3 +1,3 @@
1
- import{readdirSync as e}from"fs";import t from"chalk";import o from"webpack";import s from"webpack-dev-server";import{merge as r}from"webpack-merge";import l from"webpackbar";import{clientConfig as i}from"./common.js";import{CONFIG as n}from"./config.js";import{hasPkg as a}from"./has-pkg.js";import{getIPv4 as c,getPort as p}from"./net.js";import m from"./paths.js";import{hasEslintConfig as d,hasStylelintConfig as f,isLibrary as u,isReact as h}from"./process-env.js";import{cleanDir as v,isFunction as w,log as g,resolveProgramPath as k}from"./utils.js";let{HotModuleReplacementPlugin:j}=o,{yellow:y,green:$,grey:b,gray:x,bgBlue:S,bgGreenBright:T,blueBright:C,greenBright:A}=t,B=[".eslintrc.js",".eslintrc.json",".eslintrc.yaml",".eslintrc.json"],D=[".stylelintrc",".stylelintrc.json",".stylelintrc.yaml",".stylelintrc.yml",".stylelintrc.js","stylelint.config.js","stylelint.config.cjs"],E=e(m.programPath),M=!1,O=!1;for(let e=0,t=E.length;e<t;e++)D.includes(E[e])&&(O=!0),B.includes(E[e])&&(M=!0);M||(M=d),O||(O=f);let P=O?(await import("stylelint-webpack-plugin")).default:null,_=M?(await import("eslint-webpack-plugin")).default:null,H=n.devServer.port||3e3,I=await p(H,65535,n.devServer.host),N=a("@moneko/mock")&&(await import("@moneko/mock")).default,W=h&&(await import("@pmmmwh/react-refresh-webpack-plugin")).default,F=!1===n.devtool||n.devtool?n.devtool:"eval-cheap-module-source-map";n.devServer.port=I;let G="/"===n.basename,L=n.devServer.https?"https:":"http:",R=G?"":n.basename,Y=n.devServer.port!==I&&x(`Port ${y(H)} is in use, trying ${$(I)} instead.
2
- `);function q(e){return`${L}//${"local"===e?n.devServer.host:c()}:${I}${R}`}let z=x("You application is running here:"),J=`${S(" Local ")} ${C(q("local"))}
3
- ${T(" Network ")} ${A(q("net"))}`,K=["js","md","mdx","jsx","ts","tsx","json","html","vue"],Q=K.join(","),U=["css","scss","sass","less","ts","tsx","js","jsx"],V=U.join(","),X=["node_modules/","es/","lib/","umd/","docs/","coverage/","dist/"],Z=[new j,W&&new W,_&&new _({fix:!0,threads:!0,files:[`${n.alias["@"]}/**/*.{${Q}}`,u&&`${n.alias["@pkg"]}/**/*.{${Q}}`].filter(Boolean),extensions:K,exclude:X,cache:!0,lintDirtyModulesOnly:!0}),P&&new P({fix:!0,threads:!0,files:[`${n.alias["@"]}/**/*.{${V}}`,u&&`${n.alias["@pkg"]}/**/*.{${V}}`].filter(Boolean),extensions:U,exclude:X,cache:!0,lintDirtyModulesOnly:!0}),n.bar&&new l(n.bar)].filter(Boolean),ee={headers:{"Access-Control-Allow-Origin":"*"},compress:n.devServer.compress,host:"0.0.0.0",port:I,historyApiFallback:G||{index:R.endsWith("/")?R:`${R}/`,disableDotRule:!0},https:n.devServer.https,proxy:n.proxy,allowedHosts:n.devServer.allowedHosts,client:{reconnect:!0,progress:!1,logging:"info",overlay:!1,webSocketTransport:"ws"},webSocketServer:"ws",static:{watch:{ignored:e=>e.endsWith(".d.ts")||e.includes("/node_modules/")}},setupMiddlewares:(e,t)=>{if(!t)throw Error("devServer is not defined");return t.app&&w(N)&&N(t.app,k("mock/")),e},open:!1,hot:!0},et=o(r(i,{devtool:F,mode:"development",plugins:Z}));et.watch({aggregateTimeout:20,ignored:/node_modules(?![\\/]@app)/,stdin:!0},(e,t)=>{!e&&t&&(g([z,"",J,"",b(`Compiled successfully in ${$(`${t.endTime-t.startTime}ms`)}`)]),t.compilation.warnings.forEach(e=>g(e.message)),t.compilation.errors.forEach(e=>g(e.message)),Y&&g(Y))});let eo=new s(ee,et);eo.startCallback(e=>{e||g([z,"",J])}),eo.stopCallback(e=>{e||v(m.cachePath)}),process.on("exit",function(){et.close(()=>{}),eo.invalidate(),eo.stop()}),process.on("SIGINT",()=>{process.exit()});
1
+ import{removeDirAll as e}from"@moneko/mdx";import o from"chalk";import t from"webpack";import s from"webpack-dev-server";import{merge as r}from"webpack-merge";import i from"webpackbar";import{clientConfig as a}from"./common.js";import{CONFIG as l}from"./config.js";import{hasPkg as n}from"./has-pkg.js";import{getIPv4 as p,getPort as m}from"./net.js";import c from"./paths.js";import{isLibrary as d,isReact as u}from"./process-env.js";import{isFunction as w,log as f,resolveProgramPath as v}from"./utils.js";let{HotModuleReplacementPlugin:h}=t,{yellow:g,green:k,grey:b,gray:$,bgBlue:x,bgGreenBright:j,blueBright:S,greenBright:y}=o,T=n("eslint-webpack-plugin"),C=n("stylelint-webpack-plugin"),A=n("@moneko/mock"),B=C?(await import("stylelint-webpack-plugin")).default:null,D=T?(await import("eslint-webpack-plugin")).default:null,E=l.devServer.port||3e3,H=await m(E,65535,l.devServer.host),M=A&&(await import("@moneko/mock")).default,O=u&&(await import("@pmmmwh/react-refresh-webpack-plugin")).default,_=!1===l.devtool||l.devtool?l.devtool:"eval-cheap-module-source-map";l.devServer.port=H;let I="/"===l.basename,J=l.devServer.https?"https:":"http:",N=I?"":l.basename,P=l.devServer.port!==H&&$(`Port ${g(E)} is in use, trying ${k(H)} instead.
2
+ `);function W(e){return`${J}//${"local"===e?l.devServer.host:p()}:${H}${N}`}let F=$("You application is running here:"),G=`${x(" Local ")} ${S(W("local"))}
3
+ ${j(" Network ")} ${y(W("net"))}`,L=["js","md","mdx","jsx","ts","tsx","json","html","vue"],R=L.join(","),Y=["css","scss","sass","less","ts","tsx","js","jsx"],q=Y.join(","),z=["node_modules/","es/","lib/","umd/","docs/","coverage/","dist/"],K=[new h,O&&new O,D&&new D({fix:!0,threads:!0,files:[`${l.alias["@"]}/**/*.{${R}}`,d&&`${l.alias["@pkg"]}/**/*.{${R}}`].filter(Boolean),extensions:L,exclude:z,cache:!0,lintDirtyModulesOnly:!0}),B&&new B({fix:!0,threads:!0,files:[`${l.alias["@"]}/**/*.{${q}}`,d&&`${l.alias["@pkg"]}/**/*.{${q}}`].filter(Boolean),extensions:Y,exclude:z,cache:!0,lintDirtyModulesOnly:!0}),l.bar&&new i(l.bar)].filter(Boolean),Q={headers:{"Access-Control-Allow-Origin":"*"},compress:l.devServer.compress,host:"0.0.0.0",port:H,historyApiFallback:I||{index:N.endsWith("/")?N:`${N}/`,disableDotRule:!0},https:l.devServer.https,proxy:l.proxy,allowedHosts:l.devServer.allowedHosts,client:{reconnect:!0,progress:!1,logging:"info",overlay:!1,webSocketTransport:"ws"},webSocketServer:"ws",static:{watch:{ignored:e=>e.endsWith(".d.ts")||e.includes("/node_modules/")}},setupMiddlewares:(e,o)=>{if(!o)throw Error("devServer is not defined");return o.app&&w(M)&&M(o.app,v("mock/")),e},open:!1,hot:!0},U=t(r(a,{devtool:_,mode:"development",plugins:K}));U.watch({aggregateTimeout:20,ignored:/node_modules(?![\\/]@app)/,stdin:!0},(e,o)=>{!e&&o&&(process.stdout.write("\x1b[2J\x1b[3J\x1b[H"),f([F,"",G,"",b(`Compiled successfully in ${k(`${o.endTime-o.startTime}ms`)}`)]),o.compilation.warnings.forEach(e=>f(e.message)),o.compilation.errors.forEach(e=>f(e.message)),P&&f(P))});let V=new s(Q,U);V.startCallback(e=>{e||f([F,"",G])}),V.stopCallback(o=>{o||e(c.cachePath)}),process.on("exit",function(){U.close(()=>{}),V.invalidate(),V.stop()}),process.on("SIGINT",()=>{process.exit()});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return t}});const e=require("@moneko/mdx");function t(t){let n=this.async();(0,e.mdx)({value:t,filepath:this.resourcePath,...this.getOptions()}).then(e=>{this.cacheable(!0),n(null,e.code)}).catch(n)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return t}});const e=require("@moneko/mdx");function t(t){return this.cacheable(!0),(0,e.mdxSync)({value:t,filepath:this.resourcePath,...this.getOptions()}).code}
@@ -1,3 +1,3 @@
1
1
  import { type MdxOptions } from '@moneko/mdx';
2
2
  import type { LoaderContext } from 'webpack';
3
- export default function (this: LoaderContext<Omit<MdxOptions, 'value'>>, value: string): void;
3
+ export default function (this: LoaderContext<Omit<MdxOptions, 'value'>>, value: string): string;
@@ -1 +1 @@
1
- "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return i}});const t=require("fs"),s=(e=require("./generate-doc.cjs"))&&e.__esModule?e:{default:e},r={},a={};function i(e){let i=this.async(),c=this.resourcePath;void 0===a[c]&&(a[c]=0),(0,t.stat)(c,(t,l)=>{if(!t){let t=l.mtime.getTime();r[c]!==t&&(a[c]=a[c]+1,Object.assign(r,{[c]:t}),global.NEKOCLICONFIG.comment.setData(`@app/comment/${c.split("/").slice(-2).join("/").replace(/\.tsx?/,".md")}`,(0,s.default)(e,c)))}this.cacheable(a[c]>1),i(null,e)})}
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return c}});const t=require("fs"),r=(e=require("./generate-doc.cjs"))&&e.__esModule?e:{default:e},s={},i={};function c(e){let c=this.getOptions(),n=this.resourcePath;void 0===i[n]&&(i[n]=0);let a=(0,t.statSync)(n).mtime.getTime(),o=s[n]!==a;return o&&(i[n]=i[n]+1,Object.assign(s,{[n]:a}),c.comment.setData(`@app/comment/${n.split("/").slice(-2).join("/").replace(/\.tsx?/,".md")}`,(0,r.default)(e,n))),this.cacheable(i[n]>1&&o),e}
@@ -1,4 +1,6 @@
1
+ import type ReactiveObject from '../reactive-object.js';
1
2
  import type { LoaderContext } from 'webpack';
2
3
  export default function (this: LoaderContext<{
3
4
  test: RegExp;
4
- }>, value: string): void;
5
+ comment: ReactiveObject<Record<string, string>>;
6
+ }>, value: string): string;
@@ -1 +1 @@
1
- import e from"mini-css-extract-plugin";import s from"mini-svg-data-uri";import{CONFIG as t,PUBLICPATH as o}from"./config.js";import{hasPkg as r}from"./has-pkg.js";import l from"./modify-vars.js";import a,{CUSTOMCONFIG as i}from"./paths.js";import{FRAMEWORK as n,isDev as c,isLibrary as d,isMicro as m}from"./process-env.js";import p from"./swcrc.js";import u from"./tsloader.config.js";import{resolveNodeModulesPath as f,resolveProgramPath as y}from"./utils.js";let x={loader:`${a.corePath}/loader/css-unicode.cjs`},$=m?o:"../",g={loader:e.loader,options:{publicPath:"/"!==$?$:"../"}},v=r("@moneko/postcss")&&{loader:"postcss-loader",options:{postcssOptions:(await import("@moneko/postcss")).default}};c&&(g="style-loader");let j=[...t.cssModules,`@moneko/${n}`,"neko-ui"].map(f),w=[...["src/styles/variables.less","src/styles/mixins.less","site/styles/variables.less","site/styles/mixins.less"].map(y)],h=["components","example","mock","site","src","server"].map(y);i&&h.push(y(i)),t.overrideResolve&&t.overrideResolve.override&&h.push(t.overrideResolve.override);let b={loader:"css-loader",options:{modules:{auto:e=>{for(let s=0,t=j.length;s<t;s++)if(e&&e?.includes(j[s]))return/(.*(?<!\.?global\.(le|c|sc|sa)ss)$)/i.test(e);return/(^(?!.*node_modules))(.*(?<!\.?global\.(le|c|sc|sa)ss)$)/i.test(e)},localIdentName:"[path][name]__[local]",exportLocalsConvention:"dashesOnly"},importLoaders:2}},_=c&&{loader:"@teamsupercell/typings-for-css-modules-loader",options:{verifyOnly:!c}},k=[g,_,b,v,x,{loader:"less-loader",options:{sourceMap:!!t.sourceMap,lessOptions:{modifyVars:l,javascriptEnabled:!0}}},{loader:"style-resources-loader",options:{patterns:w}}].filter(Boolean),O="tsc"===t.compiler,B={loader:O?"ts-loader":"swc-loader",options:O?u:p(c)};function L(e){return h.concat(t.rulesInclude?.[e]?.map(f)||[])}let P=L("media"),R={rules:[d&&{test:/^(?![._]).*(?<!\.test)\.(tsx?)$/,include:t.alias["@pkg"],exclude:[/node_modules/,/(.+)\/__tests__\/(.+)/i],enforce:"pre",use:[{loader:`${a.corePath}/loader/ts-doc.cjs`}]},{oneOf:[{resourceQuery:/raw/i,type:"asset/source"},{resourceQuery:/url/i,type:"asset/resource",generator:{filename:e=>{let s=e.filename;return s&&s.endsWith("wasm?url")?"wasm/[name][ext]":"assets/[name][ext]"}}},{test:/\.wasm$/i,type:"webassembly/async",include:L("wasm")},{test:/\.txt$/i,type:"asset/source"},{test:/\.ico$/i,type:"asset/inline",include:P},{test:/\.svg$/i,type:"asset/inline",generator:{dataUrl:e=>s(e.toString())},include:P},{test:/\.(gif|png|jpe?g|webp)$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/images/[name][ext]"},include:P},{test:/\.(webm|mp4|ogv)$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/video/[name][ext]"},include:P},{test:/\.(woff2?|eot|ttf|otf)(\?.*)?$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/fonts/[name][ext]"},include:L("font")},{test:/\.(sa|sc)ss$/i,use:[g,_,b,v,x,{loader:"sass-loader",options:{implementation:await import("sass"),sassOptions:{}}}].filter(Boolean),include:L("css")},{test:/\.less$/i,use:k,include:L("css")},{test:/\.css$/i,use:[g,"css-loader",v,x].filter(Boolean),include:L("css")},{test:/\.(cj|mj|t|j)s(|x)$/i,use:[...t.prefixJsLoader,B].filter(Boolean),include:L("js")},{test:/\.mdx?$/i,use:[...t.prefixJsLoader,{loader:`${a.corePath}/loader/mdx.cjs`,options:t.mdx}].filter(Boolean),include:h,exclude:[/(.+)\/examples\/(.+).mdx?$/i]},{test:/\.mdx?$/i,type:"asset/source",include:[/(.+)\/examples\/(.+).mdx?$/i]},{type:"asset/source",include:[/(.+)\/examples\/(.+).*?$/i]}]},...t.moduleRules].filter(e=>"object"==typeof e)};export default R;
1
+ import e from"mini-css-extract-plugin";import s from"mini-svg-data-uri";import{CONFIG as t,PUBLICPATH as o}from"./config.js";import{hasPkg as r}from"./has-pkg.js";import l from"./modify-vars.js";import a,{CUSTOMCONFIG as i}from"./paths.js";import{FRAMEWORK as n,isDev as c,isLibrary as d,isMicro as m}from"./process-env.js";import p from"./swcrc.js";import u from"./tsloader.config.js";import{resolveNodeModulesPath as f,resolveProgramPath as y}from"./utils.js";import{comment as x}from"./vm/docs.js";let $={loader:`${a.corePath}/loader/css-unicode.cjs`},g=m?o:"../",v={loader:e.loader,options:{publicPath:"/"!==g?g:"../"}},j=r("@moneko/postcss")&&{loader:"postcss-loader",options:{postcssOptions:(await import("@moneko/postcss")).default}};c&&(v="style-loader");let w=[...t.cssModules,`@moneko/${n}`,"neko-ui"].map(f),h=[...["src/styles/variables.less","src/styles/mixins.less","site/styles/variables.less","site/styles/mixins.less"].map(y)],b=["components","example","mock","site","src","server"].map(y);i&&b.push(y(i)),t.overrideResolve&&t.overrideResolve.override&&b.push(t.overrideResolve.override);let _={loader:"css-loader",options:{modules:{auto:e=>{for(let s=0,t=w.length;s<t;s++)if(e&&e?.includes(w[s]))return/(.*(?<!\.?global\.(le|c|sc|sa)ss)$)/i.test(e);return/(^(?!.*node_modules))(.*(?<!\.?global\.(le|c|sc|sa)ss)$)/i.test(e)},localIdentName:"[path][name]__[local]",exportLocalsConvention:"dashesOnly"},importLoaders:2}},k=c&&{loader:"@teamsupercell/typings-for-css-modules-loader",options:{verifyOnly:!c}},O=[v,k,_,j,$,{loader:"less-loader",options:{sourceMap:!!t.sourceMap,lessOptions:{modifyVars:l,javascriptEnabled:!0}}},{loader:"style-resources-loader",options:{patterns:h}}].filter(Boolean),B="tsc"===t.compiler,L={loader:B?"ts-loader":"swc-loader",options:B?u:p(c)};function P(e){return b.concat(t.rulesInclude?.[e]?.map(f)||[])}let R=P("media"),M={rules:[d&&{test:/^(?![._]).*(?<!\.test)\.(tsx?)$/,include:t.alias["@pkg"],exclude:[/node_modules/,/(.+)\/__tests__\/(.+)/i],enforce:"pre",use:[{loader:`${a.corePath}/loader/ts-doc.cjs`,options:{comment:x}}]},{oneOf:[{resourceQuery:/raw/i,type:"asset/source"},{resourceQuery:/url/i,type:"asset/resource",generator:{filename:e=>{let s=e.filename;return s&&s.endsWith("wasm?url")?"wasm/[name][ext]":"assets/[name][ext]"}}},{test:/\.wasm$/i,type:"webassembly/async",include:P("wasm")},{test:/\.txt$/i,type:"asset/source"},{test:/\.ico$/i,type:"asset/inline",include:R},{test:/\.svg$/i,type:"asset/inline",generator:{dataUrl:e=>s(e.toString())},include:R},{test:/\.(gif|png|jpe?g|webp)$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/images/[name][ext]"},include:R},{test:/\.(webm|mp4|ogv)$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/video/[name][ext]"},include:R},{test:/\.(woff2?|eot|ttf|otf)(\?.*)?$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/fonts/[name][ext]"},include:P("font")},{test:/\.(sa|sc)ss$/i,use:[v,k,_,j,$,{loader:"sass-loader",options:{implementation:await import("sass"),sassOptions:{}}}].filter(Boolean),include:P("css")},{test:/\.less$/i,use:O,include:P("css")},{test:/\.css$/i,use:[v,"css-loader",j,$].filter(Boolean),include:P("css")},{test:/\.(cj|mj|t|j)s(|x)$/i,use:[...t.prefixJsLoader,L].filter(Boolean),include:P("js")},{test:/\.mdx?$/i,use:[...t.prefixJsLoader,{loader:`${a.corePath}/loader/mdx.cjs`,options:t.mdx}].filter(Boolean),include:b,exclude:[/(.+)\/examples\/(.+).mdx?$/i]},{test:/\.mdx?$/i,type:"asset/source",include:[/(.+)\/examples\/(.+).mdx?$/i]},{type:"asset/source",include:[/(.+)\/examples\/(.+).*?$/i]}]},...t.moduleRules].filter(e=>"object"==typeof e)};export default M;
File without changes
File without changes
@@ -20,5 +20,3 @@ export declare const PACKAGEVERSION: string;
20
20
  export declare const coreName: string;
21
21
  /** 是否为本地开发环境 */
22
22
  export declare const isDev: boolean;
23
- export declare const hasEslintConfig: boolean;
24
- export declare const hasStylelintConfig: boolean;
@@ -1 +1 @@
1
- export const APPTYPE=process.env.APPTYPE;export const FRAMEWORK=process.env.FRAMEWORK;export const isLibrary="library"===APPTYPE;export const isMicro="micro"===APPTYPE;export const isMobile="mobile"===APPTYPE;export const isReact="react"===FRAMEWORK;export const isSolid="solid"===FRAMEWORK;export const mainDirectory=isLibrary?"site":"src";export const jsxImportSource={react:"react",solid:"solid-js/h"}[FRAMEWORK];export const createElement={react:"createElement",solid:"createComponent"}[FRAMEWORK];export const FRAMEWORKNAME={react:"react",solid:"solid-js"}[FRAMEWORK];export const PACKAGENAME=process.env.npm_package_name;export const PACKAGEVERSION=process.env.npm_package_version;export const coreName="@moneko/core";export const isDev="development"===process.env.NODE_ENV;let e=Object.keys(process.env);export const hasEslintConfig=-1!==e.findIndex(e=>e.startsWith("npm_package_eslintConfig_"));export const hasStylelintConfig=-1!==e.findIndex(e=>e.startsWith("npm_package_stylelint_"));
1
+ export const APPTYPE=process.env.APPTYPE;export const FRAMEWORK=process.env.FRAMEWORK;export const isLibrary="library"===APPTYPE;export const isMicro="micro"===APPTYPE;export const isMobile="mobile"===APPTYPE;export const isReact="react"===FRAMEWORK;export const isSolid="solid"===FRAMEWORK;export const mainDirectory=isLibrary?"site":"src";export const jsxImportSource={react:"react",solid:"solid-js/h"}[FRAMEWORK];export const createElement={react:"createElement",solid:"createComponent"}[FRAMEWORK];export const FRAMEWORKNAME={react:"react",solid:"solid-js"}[FRAMEWORK];export const PACKAGENAME=process.env.npm_package_name;export const PACKAGEVERSION=process.env.npm_package_version;export const coreName="@moneko/core";export const isDev="development"===process.env.NODE_ENV;
package/lib/prod.js CHANGED
@@ -1 +1 @@
1
- import e from"css-minimizer-webpack-plugin";import i from"mini-css-extract-plugin";import o from"terser-webpack-plugin";import n from"webpack";import{BundleAnalyzerPlugin as m}from"webpack-bundle-analyzer";import{merge as r}from"webpack-merge";import s from"webpackbar";import{clientConfig as t}from"./common.js";import{CONFIG as p}from"./config.js";import{getMinifyOption as a}from"./minify.js";import l from"./paths.js";import c from"./plugin/done.js";import u from"./seo.js";import{cleanDir as f}from"./utils.js";let{optimize:{MinChunkSizePlugin:d}}=n,{cssnanoMinify:h,swcMinify:w}=e,k="swc"===p.compiler,b=[];p.minifier&&(p.minifier.js&&b.push(new o(a(p.minifier.js?.type||(k?"swc":"terser"),p.minifier.js?.options))),p.minifier.css&&b.push(new e({minify:{swc:w,cssnano:h}[p.minifier.css?.type||(k?"swc":"cssnano")],minimizerOptions:p.minifier.css?.options})));let g={splitChunks:p.splitChunk,runtimeChunk:p.runtimeChunk,chunkIds:"named",moduleIds:"named",removeAvailableModules:!0,removeEmptyChunks:!0,mergeDuplicateChunks:!0,mangleWasmImports:!0,minimize:!0,minimizer:b},j=n(r(t,{devtool:!1===p.devtool||p.devtool?p.devtool:"cheap-module-source-map",mode:"production",optimization:g,plugins:[new i({filename:"style/[name].bundle.css",chunkFilename:"style/[name].chunk.css",experimentalUseImportModule:!0}),p.splitChunk&&new d({minChunkSize:1e4}),p.bundleAnalyzer&&new m(p.bundleAnalyzer),p.bar&&new s(p.bar),new c({done:e=>{p.done?.(e),p.seo&&u()}})].filter(Boolean)}));j.watch({aggregateTimeout:20,ignored:/node_modules(?![\\/]@app)/,stdin:!0},e=>{if(e)throw j.close(()=>{}),e;j.hooks.done.tap("WatchRunPlugin",e=>{e.hasErrors(),j.close(()=>{})})}),process.on("exit",function(){f(l.cachePath)});
1
+ import{removeDirAll as e}from"@moneko/mdx";import i from"css-minimizer-webpack-plugin";import o from"mini-css-extract-plugin";import n from"terser-webpack-plugin";import m from"webpack";import{BundleAnalyzerPlugin as r}from"webpack-bundle-analyzer";import{merge as s}from"webpack-merge";import t from"webpackbar";import{clientConfig as p}from"./common.js";import{CONFIG as a}from"./config.js";import{getMinifyOption as l}from"./minify.js";import c from"./paths.js";import u from"./plugin/done.js";import f from"./seo.js";let{optimize:{MinChunkSizePlugin:d}}=m,{cssnanoMinify:h,swcMinify:k}=i,w="swc"===a.compiler,b=[];a.minifier&&(a.minifier.js&&b.push(new n(l(a.minifier.js?.type||(w?"swc":"terser"),a.minifier.js?.options))),a.minifier.css&&b.push(new i({minify:{swc:k,cssnano:h}[a.minifier.css?.type||(w?"swc":"cssnano")],minimizerOptions:a.minifier.css?.options})));let g={splitChunks:a.splitChunk,runtimeChunk:a.runtimeChunk,chunkIds:"named",moduleIds:"named",removeAvailableModules:!0,removeEmptyChunks:!0,mergeDuplicateChunks:!0,mangleWasmImports:!0,minimize:!0,minimizer:b},y=m(s(p,{devtool:!1===a.devtool||a.devtool?a.devtool:"cheap-module-source-map",mode:"production",optimization:g,plugins:[new o({filename:"style/[name].bundle.css",chunkFilename:"style/[name].chunk.css",experimentalUseImportModule:!0}),a.splitChunk&&new d({minChunkSize:1e4}),a.bundleAnalyzer&&new r(a.bundleAnalyzer),a.bar&&new t(a.bar),new u({done:e=>{a.done?.(e),a.seo&&f()}})].filter(Boolean)}));y.watch({aggregateTimeout:20,ignored:/node_modules(?![\\/]@app)/,stdin:!0},e=>{if(e)throw y.close(()=>{}),e;y.hooks.done.tap("WatchRunPlugin",e=>{e.hasErrors(),y.close(()=>{})})}),process.on("exit",function(){e(c.cachePath)});
package/lib/seo.js CHANGED
@@ -1 +1 @@
1
- import{existsSync as t,mkdirSync as o,writeFileSync as r}from"fs";import{join as i}from"path";import{outputConfig as m}from"./common.js";import{CONFIG as e}from"./config.js";import{resolveProgramPath as s}from"./utils.js";import{routes as p}from"./vm/routes.js";function f(t,o){try{r(t,o,"utf-8")}catch(t){}}export default(()=>{let{domain:r,nojekyll:n,path:a}=e.seo||{},h=a&&s(a)||m?.path;if(!r||!h)return;t(h)||o(h);let c=e.basename,l=c.endsWith("/")?c:`${c}/`;f(i(h,"CNAME"),r),f(i(h,"robots"),`Sitemap: https://${r}${l}sitemap.txt`);let u=[];!function t(o){o.forEach(o=>{u.push(`https://${r}${l}${o.key}`),Array.isArray(o.children)&&t(o.children)})}(p),f(i(h,"sitemap.txt"),u.join("\n")),n&&f(i(h,".nojekyll"),"")});
1
+ import{existsSync as t,mkdirSync as o}from"fs";import{join as r}from"path";import{saveFileSync as m}from"@moneko/mdx";import{outputConfig as e}from"./common.js";import{CONFIG as i}from"./config.js";import{resolveProgramPath as s}from"./utils.js";import{routes as p}from"./vm/routes.js";export default(()=>{let{domain:f,nojekyll:n,path:a}=i.seo||{},h=a&&s(a)||e?.path;if(!f||!h)return;t(h)||o(h);let l=i.basename,c=l.endsWith("/")?l:`${l}/`;m(r(h,"CNAME"),f),m(r(h,"robots"),`Sitemap: https://${f}${c}sitemap.txt`);let j=[];!function t(o){o.forEach(o=>{j.push(`https://${f}${c}${o.key}`),Array.isArray(o.children)&&t(o.children)})}(p),m(r(h,"sitemap.txt"),j.join("\n")),n&&m(r(h,".nojekyll"),"")});
package/lib/utils.d.ts CHANGED
@@ -8,7 +8,6 @@ export declare function log(msg: string | string[]): void;
8
8
  export declare function tfc(filepath: string): string;
9
9
  export declare function readConf(src: string, name: string): Promise<any>;
10
10
  export declare function toUpperCaseString(string: string): string;
11
- export declare function cleanDir(folderPath: string): void;
12
11
  type ProgramPath<T extends string> = `${T extends string ? T : string}`;
13
12
  type NodeModulesPath<T> = ProgramPath<`node_modules/${T extends string ? T : string}`>;
14
13
  /** 位于项目根目录下的位置
package/lib/utils.js CHANGED
@@ -1,2 +1,2 @@
1
- import{existsSync as t,readFileSync as e,readdirSync as r,rmdirSync as o,statSync as n,unlinkSync as c,writeFileSync as s}from"fs";import{join as p,resolve as i}from"path";import a from"readline";import{transformFileSync as u}from"@swc/core";import f from"./paths.js";import l from"./resolver-sync.js";export function esm(t,...e){let r=t.raw[0];for(let o=0;o<e.length;o++)r+=e[o]+t.raw[o+1];return`data:text/javascript;base64,${Buffer.from(r).toString("base64")}`}let m=/export\s+(?:async\s+)?(?:function|const)\s+(\w+)/g;export function getExportTokens(t){let r;let o=e(t,{encoding:"utf-8"}),n=[];for(;r=m.exec(o);)n.includes(r[1])||n.push(r[1]);return n}let x={inputSourceMap:!1,sourceMaps:!1,module:{type:"es6"},jsc:{parser:{syntax:"typescript"},loose:!1}};export function log(t){Array.isArray(t)?t.forEach(t=>{log(`${t}
2
- `)}):(a.cursorTo(process.stdout,0),process.stdout.write(t))}export function tfc(t){return u(t,x).code||"{}"}export function readConf(t,e){let r=`${f.cachePath}/${e}.mjs`;return s(r,tfc(t),"utf-8"),import(r)}export function toUpperCaseString(t){return t?.replace(/\b\w/g,t=>t.toUpperCase()).replace(/\./g," ")}export function cleanDir(e){t(e)&&(r(e).forEach(t=>{let r=p(e,t);n(r).isDirectory()?cleanDir(r):c(r)}),o(e))}export function resolveProgramPath(t){return i(f.programPath,`./${t}`)}export const resolveNodeModulesPath=t=>resolveProgramPath(`node_modules/${t}`);export const realResolve=t=>l.resolveSync({},f.programPath,t)||t;export function isObject(t){let e=typeof t;return null!==t&&("object"==e||"function"==e)}export function isFunction(t){if(!isObject(t))return!1;let e=Object.prototype.toString.call(t);return"[object Function]"==e||"[object AsyncFunction]"==e||"[object GeneratorFunction]"==e||"[object Proxy]"==e}export function empty(){}
1
+ import{resolve as t}from"path";import e from"readline";import{loadFileSync as o,saveFileSync as r}from"@moneko/mdx";import{transformFileSync as n}from"@swc/core";import c from"./paths.js";import s from"./resolver-sync.js";export function esm(t,...e){let o=t.raw[0];for(let r=0;r<e.length;r++)o+=e[r]+t.raw[r+1];return`data:text/javascript;base64,${Buffer.from(o).toString("base64")}`}let p=/export\s+(?:async\s+)?(?:function|const)\s+(\w+)/g;export function getExportTokens(t){let e;let r=o(t)||"",n=[];for(;e=p.exec(r);)n.includes(e[1])||n.push(e[1]);return n}let a={inputSourceMap:!1,sourceMaps:!1,module:{type:"es6"},jsc:{parser:{syntax:"typescript"},loose:!1}};export function log(t){Array.isArray(t)?t.forEach(t=>{log(`${t}
2
+ `)}):(e.cursorTo(process.stdout,0),process.stdout.write(t))}export function tfc(t){return n(t,a).code||"{}"}export function readConf(t,e){let o=`${c.cachePath}/${e}.mjs`;return r(o,tfc(t)),import(o)}export function toUpperCaseString(t){return t?.replace(/\b\w/g,t=>t.toUpperCase()).replace(/\./g," ")}export function resolveProgramPath(e){return t(c.programPath,`./${e}`)}export const resolveNodeModulesPath=t=>resolveProgramPath(`node_modules/${t}`);export const realResolve=t=>s.resolveSync({},c.programPath,t)||t;export function isObject(t){let e=typeof t;return null!==t&&("object"==e||"function"==e)}export function isFunction(t){if(!isObject(t))return!1;let e=Object.prototype.toString.call(t);return"[object Function]"==e||"[object AsyncFunction]"==e||"[object GeneratorFunction]"==e||"[object Proxy]"==e}export function empty(){}
package/lib/vm/app.d.ts CHANGED
@@ -7,16 +7,9 @@ declare const app: {
7
7
  routerMode: "browser" | "hash" | "memory";
8
8
  prefixCls: string | undefined;
9
9
  theme: import("../index.js").Theme | undefined;
10
- description: string | undefined;
11
- author: {
12
- name: string | undefined;
13
- email: string | undefined;
14
- url: string | undefined;
15
- };
16
- repository: {
17
- type: string | undefined;
18
- url: string | undefined;
19
- directory: string | undefined;
20
- };
10
+ description: any;
11
+ author: any;
12
+ repository: any;
13
+ keywords: any;
21
14
  };
22
15
  export default app;
package/lib/vm/app.js CHANGED
@@ -1 +1 @@
1
- import{readFileSync as e}from"fs";import{CONFIG as r}from"../config.js";import{APPTYPE as o,PACKAGENAME as p,PACKAGEVERSION as s}from"../process-env.js";import{resolveProgramPath as t,toUpperCaseString as a}from"../utils.js";let n={name:p,projectName:JSON.stringify(a(p).replace(/-/g," ")),version:s,base:r.basename,type:o,routerMode:r.routerMode,prefixCls:r.prefixCls,theme:r.theme,description:process.env.npm_package_description,author:{name:process.env.npm_package_author_name,email:process.env.npm_package_author_email,url:process.env.npm_package_author_url},repository:{type:process.env.npm_package_repository_type,url:process.env.npm_package_repository_url,directory:process.env.npm_package_repository_directory}};if(parseInt(process.versions.node)>14){let{description:r,author:o,repository:p}=JSON.parse(e(t("package.json"),{encoding:"utf-8"}));n.author="string"==typeof o?{name:o}:o,n.repository="string"==typeof o?{url:p}:p,n.description=r}export default n;
1
+ import{loadFileSync as e}from"@moneko/mdx";import{CONFIG as r}from"../config.js";import{APPTYPE as o,PACKAGENAME as t,PACKAGEVERSION as s}from"../process-env.js";import{resolveProgramPath as p,toUpperCaseString as i}from"../utils.js";let{description:m,author:a,repository:n,keywords:f}=JSON.parse(e(p("package.json"))||"{}"),l={name:t,projectName:JSON.stringify(i(t).replace(/-/g," ")),version:s,base:r.basename,type:o,routerMode:r.routerMode,prefixCls:r.prefixCls,theme:r.theme,description:m,author:"string"==typeof a?{name:a}:a,repository:"string"==typeof a?{url:n}:n,keywords:f};export default l;
@@ -1 +1 @@
1
- import{accessSync as e,constants as r,readFileSync as c}from"fs";import{Parser as o}from"xml2js";import t from"../paths.js";import{PACKAGENAME as a,isLibrary as s}from"../process-env.js";export const coverage={};if(s)try{e(t.coveragePath,r.R_OK);let s=new o({explicitArray:!1,async:!1}).parseString,i=c(t.coveragePath,{encoding:"utf-8"});s(i,(e,r)=>{if(!e){let e=r.coverage.project.metrics.$,c=r.coverage.project.package;Object.assign(coverage,{[a]:e}),c.forEach(e=>{Object.assign(coverage,{[e.$.name]:e.metrics.$})})}})}catch(e){}
1
+ import{accessSync as e,constants as r}from"fs";import{loadFileSync as o}from"@moneko/mdx";import{Parser as t}from"xml2js";import c from"../paths.js";import{PACKAGENAME as a,isLibrary as m}from"../process-env.js";export const coverage={};if(m)try{e(c.coveragePath,r.R_OK);let m=new t({explicitArray:!1,async:!1}).parseString,s=o(c.coveragePath);m(s,(e,r)=>{if(!e){let e=r.coverage.project.metrics.$,o=r.coverage.project.package;Object.assign(coverage,{[a]:e}),o.forEach(e=>{Object.assign(coverage,{[e.$.name]:e.metrics.$})})}})}catch(e){}
@@ -1 +0,0 @@
1
- export declare function scanfolder(folderPath: string, condition: (file: string) => boolean, list?: string[]): string[];
@@ -1 +0,0 @@
1
- import{readdirSync as r,statSync as o}from"fs";import{join as t}from"path";export function scanfolder(f,e,c=[]){return r(f).forEach(r=>{let i=t(f,r);o(i).isDirectory()?scanfolder(i,e,c):e(i)&&c.push(i)}),c}
package/lib/vm/utils.js CHANGED
@@ -1 +1 @@
1
- import{readFileSync as e}from"fs";import{join as t,relative as n}from"path";import{frontmatterSync as r}from"@moneko/mdx";import{watch as i}from"chokidar";import{isDev as o,isSolid as a}from"../process-env.js";import l from"../reactive-object.js";let s=new l({}),c=a?"component":"element";export function mergeRouter(e,t){if(!e.length)return;let n=[];return e.forEach(e=>{let r=n.findIndex(n=>n[t]==e[t]);if(r>-1){let i=[...n[r].children||[],...e.children||[]];n[r]=Object.assign(e,n[r]),i.length&&(n[r].children=mergeRouter(i,t))}else n.push(Object.assign(e,Array.isArray(e.children)&&{children:mergeRouter(e.children,t)}))}),n.forEach((e,t)=>{if(e.children?.length){let{children:r=[],...i}=e;n[t]={path:i.path,key:i.key,children:[a&&{...i,path:e.path===i.path?"/":i.path},...r].filter(e=>e&&(e.component||e.children?.length))}}}),n}export function getTree(e){let r={};return e.files.forEach(i=>{let o=s.getData(i)||{code:""},a=n(e.base,i),l=e.base.split("/").filter(Boolean),h=i.split("/").filter(Boolean).slice(0,-1),p={},f=Object.assign({meta:JSON.parse(o.frontmatter||"{}")},e.alia&&{[c]:`rr(() => import(/* webpackChunkName: '${a}' */'${t(e.alia,a)}'))rr`},e.outputSource&&{codes:function(e){let t;let n={},r=/```(.+?)\n([\s\S]*?)\n```/g;for(;null!==(t=r.exec(e));){let[,e="jsx",r]=t;n[e.split(" ").pop()||"jsx"]=r.trim()}return Object.keys(n).length?n:{jsx:e}}(o.code.replace(/^\n+|\n+$/g,""))});for(let t=l.length;t<h.length;t++){let n={path:h[t],key:h[t]};t===l.length?(Object.assign(p,r[n.key],{path:n.path,key:n.key},t===h.length-1&&f),r[n.key]=p):(p.children=(p.children||[]).concat([n]),e.outputSource?(Object.assign(n,{path:i.split("/").pop(),key:i.split("/").pop()},f),n.children=getTree({...e,base:`${e.base}/${n.key}`,files:e.files.filter(t=>t.startsWith(`${e.base}/${n.key}`))})):Object.assign(n,{key:h.slice(l.length,t+1).join("/")},f),p=n)}}),Object.values(r)}function h(t,n,i){if(i)s.removeData(t),n.removeData(t);else{let i=e(t,{encoding:"utf-8"});if(t.endsWith(".md")||t.endsWith(".mdx")){let e=r(i);s.setData(t,e),n.setData(t,!0)}else s.setData(t,{code:i,frontmatter:"{}"}),n.setData(t,!0)}}export function watchFiles(e,t,n){let r=new l({}),a=i(e,{ignored:(e,n)=>{if(n)return!n.isDirectory()&&t.test(e)},persistent:!0,ignoreInitial:!1});function s(){a.unwatch(e),a.close()}a.on("add",e=>{h(e,r)}).on("change",e=>{h(e,r)}).on("unlink",e=>{h(e,r,!0)}),a.once("ready",()=>{o||s()}),r.on("change",()=>{n(Object.keys(r.data))}),process.on("SIGINT",s)}
1
+ import{join as e,relative as t}from"path";import{frontmatterSync as n,loadFileSync as r}from"@moneko/mdx";import{watch as i}from"chokidar";import{isDev as o,isSolid as a}from"../process-env.js";import l from"../reactive-object.js";let s=new l({}),c=a?"component":"element";export function mergeRouter(e,t){if(!e.length)return;let n=[];return e.forEach(e=>{let r=n.findIndex(n=>n[t]==e[t]);if(r>-1){let i=[...n[r].children||[],...e.children||[]];n[r]=Object.assign(e,n[r]),i.length&&(n[r].children=mergeRouter(i,t))}else n.push(Object.assign(e,Array.isArray(e.children)&&{children:mergeRouter(e.children,t)}))}),n.forEach((e,t)=>{if(e.children?.length){let{children:r=[],...i}=e;n[t]={path:i.path,key:i.key,children:[a&&{...i,path:e.path===i.path?"/":i.path},...r].filter(e=>e&&(e.component||e.children?.length))}}}),n}export function getTree(n){let r={};return n.files.forEach(i=>{let o=s.getData(i)||{code:""},a=t(n.base,i),l=n.base.split("/").filter(Boolean),h=i.split("/").filter(Boolean).slice(0,-1),p={},f=Object.assign({meta:JSON.parse(o.frontmatter||"{}")},n.alia&&{[c]:`rr(() => import(/* webpackChunkName: '${a}' */'${e(n.alia,a)}'))rr`},n.outputSource&&{codes:function(e){let t;let n={},r=/```(.+?)\n([\s\S]*?)\n```/g;for(;null!==(t=r.exec(e));){let[,e="jsx",r]=t;n[e.split(" ").pop()||"jsx"]=r.trim()}return Object.keys(n).length?n:{jsx:e}}(o.code.replace(/^\n+|\n+$/g,""))});for(let e=l.length;e<h.length;e++){let t={path:h[e],key:h[e]};e===l.length?(Object.assign(p,r[t.key],{path:t.path,key:t.key},e===h.length-1&&f),r[t.key]=p):(p.children=(p.children||[]).concat([t]),n.outputSource?(Object.assign(t,{path:i.split("/").pop(),key:i.split("/").pop()},f),t.children=getTree({...n,base:`${n.base}/${t.key}`,files:n.files.filter(e=>e.startsWith(`${n.base}/${t.key}`))})):Object.assign(t,{key:h.slice(l.length,e+1).join("/")},f),p=t)}}),Object.values(r)}function h(e,t,i){if(i)s.removeData(e),t.removeData(e);else{let i=r(e)||"";if(e.endsWith(".md")||e.endsWith(".mdx")){let r=n(i);s.setData(e,r),t.setData(e,!0)}else s.setData(e,{code:i,frontmatter:"{}"}),t.setData(e,!0)}}export function watchFiles(e,t,n){let r=new l({}),a=i(e,{ignored:(e,n)=>{if(n)return!n.isDirectory()&&t.test(e)},persistent:!0,ignoreInitial:!1});function s(){a.unwatch(e),a.close()}a.on("add",e=>{h(e,r)}).on("change",e=>{h(e,r)}).on("unlink",e=>{h(e,r,!0)}),a.once("ready",()=>{o||s()}),r.on("change",()=>{n(Object.keys(r.data))}),process.on("SIGINT",s)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "3.8.7-beta.6",
3
+ "version": "3.8.7-beta.7",
4
4
  "description": "core",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
@@ -13,7 +13,7 @@
13
13
  "author": "moneko",
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@moneko/mdx": "0.1.9",
16
+ "@moneko/mdx": "0.1.10",
17
17
  "@swc/core": "1.3.100",
18
18
  "@swc/css": "0.0.28",
19
19
  "@swc/helpers": "0.5.3",