@moneko/core 3.9.17-beta.9 → 3.9.18-beta.0

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 (120) hide show
  1. package/lib/build/common.d.mts +3 -0
  2. package/lib/build/common.mjs +1 -0
  3. package/lib/build/server.d.mts +3 -0
  4. package/lib/build/server.mjs +1 -0
  5. package/lib/build.mjs +1 -1
  6. package/lib/common.mjs +1 -1
  7. package/lib/config.mjs +1 -1
  8. package/lib/dev/config.mjs +3 -0
  9. package/lib/dev/mock.d.mts +40 -0
  10. package/lib/dev/mock.mjs +1 -0
  11. package/lib/{net.d.mts → dev/net.d.mts} +1 -1
  12. package/lib/dev/net.mjs +1 -0
  13. package/lib/dev/proxy.d.mts +7 -0
  14. package/lib/dev/proxy.mjs +1 -0
  15. package/lib/dev.mjs +1 -1
  16. package/lib/index.d.mts +13 -5
  17. package/lib/index.mjs +1 -1
  18. package/lib/loader/ts-doc.d.cts +1 -1
  19. package/lib/module.config.mjs +1 -1
  20. package/lib/options/favicon.ico +0 -0
  21. package/lib/{html-plugin-option.d.mts → options/html-plugin-option.d.mts} +1 -1
  22. package/lib/options/html-plugin-option.mjs +11 -0
  23. package/lib/{minify.d.mts → options/js-minify.d.mts} +2 -2
  24. package/lib/options/js-minify.mjs +1 -0
  25. package/lib/options/jsx-dom-expressions.d.mts +10 -0
  26. package/lib/options/jsx-dom-expressions.mjs +1 -0
  27. package/lib/options/modify-vars.mjs +1 -0
  28. package/lib/options/split-chunk.d.mts +4 -0
  29. package/lib/options/split-chunk.mjs +1 -0
  30. package/lib/options/swcrc.d.mts +3 -0
  31. package/lib/options/swcrc.mjs +1 -0
  32. package/lib/paths.d.mts +4 -2
  33. package/lib/paths.mjs +1 -1
  34. package/lib/plugin/add-entry-attribute.d.mts +2 -3
  35. package/lib/plugin/add-entry-attribute.mjs +1 -1
  36. package/lib/plugin/external-remotes.mjs +1 -1
  37. package/lib/plugin/lightningcss-plugin.d.mts +2 -2
  38. package/lib/plugin/lightningcss-plugin.mjs +1 -1
  39. package/lib/plugin/module-federation.mjs +1 -0
  40. package/lib/plugin/virtual-module.d.mts +2 -3
  41. package/lib/plugin/virtual-module.mjs +1 -1
  42. package/lib/plugins.config.mjs +1 -1
  43. package/lib/{polyfills.mjs → polyfills/polyfills.mjs} +1 -1
  44. package/lib/polyfills/replace-children.mjs +1 -1
  45. package/lib/polyfills/targets.mjs +1 -0
  46. package/lib/process-env.d.mts +0 -1
  47. package/lib/process-env.mjs +1 -1
  48. package/lib/rule.d.mts +23 -0
  49. package/lib/rule.mjs +1 -0
  50. package/lib/utils/compiler-listener.d.mts +3 -0
  51. package/lib/utils/compiler-listener.mjs +1 -0
  52. package/lib/utils/esm.d.mts +2 -0
  53. package/lib/utils/esm.mjs +1 -0
  54. package/lib/utils/has-pkg.d.mts +2 -0
  55. package/lib/utils/has-pkg.mjs +1 -0
  56. package/lib/{utils.d.mts → utils/index.d.mts} +0 -6
  57. package/lib/utils/index.mjs +1 -0
  58. package/lib/utils/log.d.mts +2 -0
  59. package/lib/utils/log.mjs +2 -0
  60. package/lib/utils/match-path.d.mts +22 -0
  61. package/lib/utils/match-path.mjs +1 -0
  62. package/lib/utils/read-conf.d.mts +2 -0
  63. package/lib/utils/read-conf.mjs +1 -0
  64. package/lib/utils/run.d.mts +2 -0
  65. package/lib/utils/run.mjs +1 -0
  66. package/lib/utils/seo.mjs +1 -0
  67. package/lib/{svg-to-data-uri.mjs → utils/svg-to-data-uri.mjs} +1 -1
  68. package/lib/utils/tfc.d.mts +2 -0
  69. package/lib/utils/tfc.mjs +1 -0
  70. package/lib/vm/coverage.mjs +1 -1
  71. package/lib/vm/docs.d.mts +1 -1
  72. package/lib/vm/docs.mjs +1 -1
  73. package/lib/vm/example.d.mts +1 -1
  74. package/lib/vm/example.mjs +1 -1
  75. package/lib/vm/generate-doc.mjs +1 -1
  76. package/lib/{info.d.mts → vm/info.d.mts} +3 -3
  77. package/lib/vm/info.mjs +1 -0
  78. package/lib/vm/locales.d.mts +1 -1
  79. package/lib/vm/locales.mjs +2 -2
  80. package/lib/vm/modules.mjs +1 -1
  81. package/lib/vm/routes.d.mts +1 -1
  82. package/lib/vm/routes.mjs +1 -1
  83. package/package.json +17 -20
  84. package/typings/global.d.ts +57 -150
  85. package/lib/dev-config.mjs +0 -3
  86. package/lib/dev-old.d.mts +0 -1
  87. package/lib/dev-old.mjs +0 -0
  88. package/lib/has-pkg.d.mts +0 -1
  89. package/lib/has-pkg.mjs +0 -1
  90. package/lib/html-plugin-option.mjs +0 -1
  91. package/lib/info.mjs +0 -1
  92. package/lib/loader/hot-router.cjs +0 -1
  93. package/lib/loader/hot-router.d.cts +0 -1
  94. package/lib/minify.mjs +0 -1
  95. package/lib/modify-vars.mjs +0 -1
  96. package/lib/module-federation.mjs +0 -1
  97. package/lib/net.mjs +0 -1
  98. package/lib/seo.mjs +0 -1
  99. package/lib/swcrc.d.mts +0 -4
  100. package/lib/swcrc.mjs +0 -1
  101. package/lib/targets.mjs +0 -1
  102. package/lib/tsloader.config.d.mts +0 -1
  103. package/lib/tsloader.config.mjs +0 -0
  104. package/lib/utils.mjs +0 -2
  105. package/template/favicon.ico +0 -0
  106. package/template/index.html +0 -25
  107. package/template/index.ssr.html +0 -25
  108. /package/lib/{dev-config.d.mts → dev/config.d.mts} +0 -0
  109. /package/lib/{modify-vars.d.mts → options/modify-vars.d.mts} +0 -0
  110. /package/lib/{module-federation.d.mts → plugin/module-federation.d.mts} +0 -0
  111. /package/lib/{polyfills.d.mts → polyfills/polyfills.d.mts} +0 -0
  112. /package/lib/{targets.d.mts → polyfills/targets.d.mts} +0 -0
  113. /package/lib/{os-tmp-dir.d.mts → utils/os-tmp-dir.d.mts} +0 -0
  114. /package/lib/{os-tmp-dir.mjs → utils/os-tmp-dir.mjs} +0 -0
  115. /package/lib/{reactive-object.d.mts → utils/reactive-object.d.mts} +0 -0
  116. /package/lib/{reactive-object.mjs → utils/reactive-object.mjs} +0 -0
  117. /package/lib/{resolver-sync.d.mts → utils/resolver-sync.d.mts} +0 -0
  118. /package/lib/{resolver-sync.mjs → utils/resolver-sync.mjs} +0 -0
  119. /package/lib/{seo.d.mts → utils/seo.d.mts} +0 -0
  120. /package/lib/{svg-to-data-uri.d.mts → utils/svg-to-data-uri.d.mts} +0 -0
@@ -0,0 +1,3 @@
1
+ import webpack from 'webpack';
2
+ declare const buildCommon: webpack.Configuration;
3
+ export default buildCommon;
@@ -0,0 +1 @@
1
+ import e from"mini-css-extract-plugin";import i from"terser-webpack-plugin";import m from"webpack";import{BundleAnalyzerPlugin as n}from"webpack-bundle-analyzer";import{merge as r}from"webpack-merge";import{commonConfig as o}from"../common.mjs";import{CONFIG as t}from"../config.mjs";import{getMinifyOption as l}from"../options/js-minify.mjs";import{LightningCssMinifyPlugin as p}from"../plugin/lightningcss-plugin.mjs";let{optimize:{MinChunkSizePlugin:s,ModuleConcatenationPlugin:u}}=m,a=r(o,{plugins:[new u,new e({filename:"style/[name].bundle.css",chunkFilename:"style/[name].chunk.css",experimentalUseImportModule:!0}),t.splitChunk&&new s({minChunkSize:1e4}),t.bundleAnalyzer&&new n(t.bundleAnalyzer)].filter(Boolean),optimization:{splitChunks:t.splitChunk,runtimeChunk:t.runtimeChunk,chunkIds:"named",moduleIds:"named",removeAvailableModules:!0,removeEmptyChunks:!0,mergeDuplicateChunks:!0,mangleWasmImports:!0,minimize:!0,minimizer:t.minifier&&[new i(l(t.minifier.type,t.minifier.options)),new p]||[]}});export default a;
@@ -0,0 +1,3 @@
1
+ import { type Configuration } from 'webpack';
2
+ declare const serverOption: Configuration;
3
+ export default serverOption;
@@ -0,0 +1 @@
1
+ import e from"webpack-node-externals";import o from"webpackbar";import r from"../module.config.mjs";import{CUSTOMCONFIG as s}from"../paths.mjs";import{isLibrary as t}from"../process-env.mjs";import{resolveProgramPath as m}from"../utils/index.mjs";let a={entry:{main:m("site/ssr.tsx")},output:{path:m(`${t?"docs":"dist"}/server`),library:{type:"commonjs2",umdNamedDefine:!1},filename:"[name].cjs",chunkFilename:"[chunkhash].cjs",globalObject:"global"},cache:{type:"filesystem",name:[s,process.env.NODE_ENV,"server"].filter(Boolean).join("-")},externalsPresets:{node:!0},externals:[e({allowlist:["react","react-dom","solid-js","@app","@moneko"]})],plugins:[new o({name:"Server"})],module:r(!0),target:"node"};export default a;
package/lib/build.mjs CHANGED
@@ -1 +1 @@
1
- import{removeDirAll as e}from"@moneko/mdx";import o from"mini-css-extract-plugin";import m from"terser-webpack-plugin";import i from"webpack";import{BundleAnalyzerPlugin as n}from"webpack-bundle-analyzer";import{merge as r}from"webpack-merge";import t from"webpack-node-externals";import s from"webpackbar";import{commonConfig as a}from"./common.mjs";import{CONFIG as l}from"./config.mjs";import{getMinifyOption as p}from"./minify.mjs";import u from"./module.config.mjs";import c,{CUSTOMCONFIG as f}from"./paths.mjs";import d from"./plugin/done.mjs";import h from"./plugin/lightningcss-plugin.mjs";import w from"./plugin/virtual-module.mjs";import{SSR as g,isLibrary as k}from"./process-env.mjs";import b from"./seo.mjs";import{compilerListener as j,log as y,resolveProgramPath as v}from"./utils.mjs";let{optimize:{MinChunkSizePlugin:z,ModuleConcatenationPlugin:x}}=i,C=[];l.minifier&&(C.push(new m(p(l.minifier?.type||"swc",l.minifier?.options))),C.push(new h));let E={splitChunks:l.splitChunk,runtimeChunk:l.runtimeChunk,chunkIds:"named",moduleIds:"named",removeAvailableModules:!0,removeEmptyChunks:!0,mergeDuplicateChunks:!0,mangleWasmImports:!0,minimize:!0,minimizer:C},I=[new x,new o({filename:"style/[name].bundle.css",chunkFilename:"style/[name].chunk.css",experimentalUseImportModule:!0}),l.splitChunk&&new z({minChunkSize:1e4}),l.bundleAnalyzer&&new n(l.bundleAnalyzer)].filter(Boolean),M=a.output.path;g&&(M=v(`${k?"docs":"dist"}/client`));let A=[r(a,{optimization:E,output:{path:M},module:u(!1),plugins:[new w(l.virtualModule),...I,(l.done||l.seo)&&new d({done(e){l.done?.(e),l.seo&&b()}}),l.bar&&new s(l.bar)].filter(Boolean)})];if(g){let e=r(a,{entry:{main:v("site/ssr.tsx")},output:{path:v(`${k?"docs":"dist"}/server`),library:{type:"commonjs2",umdNamedDefine:!1},filename:"[name].cjs",chunkFilename:"[chunkhash].cjs",globalObject:"global"},cache:{type:"filesystem",name:[f,process.env.NODE_ENV,"server"].filter(Boolean).join("-")},externalsPresets:{node:!0},externals:[t({allowlist:["react","react-dom","solid-js"]})],resolve:{fallback:{path:"path",fs:"fs",crypto:"crypto",assert:"assert"}},optimization:E,module:u(!0),target:"node",plugins:[new w(l.virtualModule),...I,new s({name:"Server"})]});A.push(e)}let[B,D]=i(A).compilers,N=[j("client",B)];D&&N.push(j("server",D)),async function(){i(A).run((e,o)=>{if(e)throw e;o&&o.stats.forEach(e=>{e.compilation.warnings.forEach(e=>y(e.message)),e.compilation.errors.forEach(e=>y(e.message))})}),await Promise.all(N)}(),process.on("exit",function(){e(c.cachePath)});
1
+ import{removeDirAll as o}from"@moneko/mdx";import r from"webpack";import{merge as m}from"webpack-merge";import e from"webpackbar";import i from"./build/common.mjs";import t from"./build/server.mjs";import{CONFIG as s}from"./config.mjs";import n from"./module.config.mjs";import l from"./paths.mjs";import p from"./plugin/done.mjs";import{SSR as a}from"./process-env.mjs";import f from"./utils/compiler-listener.mjs";import c from"./utils/log.mjs";import u from"./utils/seo.mjs";let g=[m(i,{module:n(!1),plugins:[s.done&&new p({done:s.done}),s.bar&&new e(s.bar)].filter(Boolean)})];a&&g.push(m(i,t));let[j,w]=r(g).compilers,d=[f("client",j)];async function h(){r(g).run((o,r)=>{if(o)throw o;if(r)for(let o=0,m=r.stats.length;o<m;o++){let m=r.stats[o];for(let o=0,r=m.compilation.warnings.length;o<r;o++)c(m.compilation.warnings[o].message);for(let o=0,r=m.compilation.errors.length;o<r;o++)c(m.compilation.errors[o].message)}}),await Promise.all(d),s.seo&&u()}w&&d.push(f("server",w)),await h(),process.on("exit",function(){o(l.cachePath)});
package/lib/common.mjs CHANGED
@@ -1 +1 @@
1
- import{CONFIG as e,PUBLICPATH as t}from"./config.mjs";import o,{CUSTOMCONFIG as s}from"./paths.mjs";import r from"./plugin/override-resolve.mjs";import n from"./plugins.config.mjs";import{PACKAGENAME as a,PACKAGEVERSION as i,isDev as l,isLibrary as p}from"./process-env.mjs";import{resolveNodeModulesPath as c,resolveProgramPath as m}from"./utils.mjs";export const outputConfig={path:m(p?"docs":"dist"),filename:"js/[name].bundle.js",chunkFilename:`js/[${l?"name":"chunkhash"}].js`,assetModuleFilename:e=>{let t=e.filename;return t&&t.endsWith("?url")&&/(?:webworker|worker)(\.|\b).*\.(js|ts)\b/.test(t.replace("?url",""))?"worker/[name][ext]":"assets/[name][hash][ext]"},library:{name:a,type:"window"},globalObject:"window",chunkLoadingGlobal:`webpackJsonp_${a}`,pathinfo:l,clean:!0,publicPath:t,asyncChunks:!0,charset:!0};let u={main:[e.polyfill&&`${o.corePath}/polyfills/replace-children.js`,c("@app/entry")].filter(Boolean)};e.entry&&("string"==typeof e.entry?u={main:[e.entry]}:Object.keys(e.entry)&&(u=Object.assign(u,e.entry))),"string"==typeof u.main&&(u.main=[u.main]),e.output&&("string"==typeof e.output?outputConfig.path=e.output:Object.keys(e.output)&&Object.assign(outputConfig,e.output));let f=!1;e.cacheDirectory&&(f={type:"filesystem",store:"pack",allowCollectingMemory:!0,cacheDirectory:e.cacheDirectory,memoryCacheUnaffected:!0,name:[s,process.env.NODE_ENV].filter(Boolean).join("-"),version:i});let d=Object.assign({original:e.alias["@"],override:s&&m(s)},e.overrideResolve);export const commonConfig={devtool:e.devtool,entry:u,mode:l?"development":"production",stats:"errors-only",cache:f,infrastructureLogging:{level:"error"},target:"web",externalsPresets:e.externalsPresets,plugins:n,node:{global:!1},experiments:{topLevelAwait:!0,asyncWebAssembly:!0,cacheUnaffected:!0,layers:!0,lazyCompilation:l&&{imports:!1,entries:!1},buildHttp:e.buildHttp,backCompat:!0,futureDefaults:!1,css:!1,outputModule:!1},resolve:{extensions:["...",".jsx",".ts",".tsx"],alias:e.alias,modules:[o.nodeModules],mainFields:["browser","module","main"],mainFiles:["index"],plugins:[e.overrideResolve&&new r(d),...e.resolvePlugins].filter(Boolean),fallback:{path:!1,fs:!1,crypto:!1,assert:!1}},externals:e.externals,output:outputConfig};
1
+ import{CONFIG as e,PUBLICPATH as t}from"./config.mjs";import o,{CUSTOMCONFIG as s}from"./paths.mjs";import r from"./plugin/override-resolve.mjs";import n from"./plugins.config.mjs";import{PACKAGENAME as i,PACKAGEVERSION as l,isDev as a,isLibrary as p}from"./process-env.mjs";import m from"./rule.mjs";import{resolveNodeModulesPath as c,resolveProgramPath as u}from"./utils/index.mjs";export const outputConfig={path:u(p?"docs":"dist"),filename:"js/[name].bundle.js",chunkFilename:`js/[${a?"name":"chunkhash"}].js`,assetModuleFilename:e=>{let t=e.filename;return t?.endsWith("?url")&&m.worker_file.test(t.replace("?url",""))?"worker/[name][ext]":"assets/[name][hash][ext]"},library:{name:i,type:"window"},globalObject:"window",chunkLoadingGlobal:`webpackJsonp_${i}`,pathinfo:a,clean:!0,publicPath:t,asyncChunks:!0,charset:!0};let f={main:[e.polyfill&&`${o.corePath}/polyfills/replace-children.js`,c("@app/entry")].filter(Boolean)};e.entry&&("string"==typeof e.entry?f={main:[e.entry]}:Object.keys(e.entry)&&(f=Object.assign(f,e.entry))),"string"==typeof f.main&&(f.main=[f.main]),e.output&&("string"==typeof e.output?outputConfig.path=e.output:Object.keys(e.output)&&Object.assign(outputConfig,e.output));let d=!1;e.cacheDirectory&&(d={type:"filesystem",store:"pack",allowCollectingMemory:!0,cacheDirectory:e.cacheDirectory,memoryCacheUnaffected:!0,name:[s,process.env.NODE_ENV].filter(Boolean).join("-"),version:l});let y=Object.assign({original:e.alias["@"],override:s&&u(s)},e.overrideResolve);export const commonConfig={devtool:e.devtool,entry:f,mode:a?"development":"production",stats:"errors-only",cache:d,infrastructureLogging:{level:"error"},target:"web",externalsPresets:e.externalsPresets,plugins:n,node:{global:!1},experiments:{topLevelAwait:!0,asyncWebAssembly:!0,cacheUnaffected:!0,layers:!0,lazyCompilation:a&&{imports:!1,entries:!1},buildHttp:e.buildHttp,backCompat:!0,futureDefaults:!1,css:!1,outputModule:!1},resolve:{extensions:["...",".jsx",".ts",".tsx"],alias:e.alias,modules:[o.nodeModules],mainFields:["browser","module","main"],mainFiles:["index"],plugins:[e.overrideResolve&&new r(y),...e.resolvePlugins].filter(Boolean),fallback:{path:!1,fs:!1,crypto:!1,assert:!1}},externals:e.externals,output:outputConfig};
package/lib/config.mjs CHANGED
@@ -1 +1 @@
1
- import{fileExists as e}from"@moneko/mdx";import{merge as t}from"webpack-merge";import o,{CUSTOMCONFIG as s}from"./paths.mjs";import{FRAMEWORK as i,PACKAGENAME as n,coreName as a,isDev as r,isLibrary as l,isMobile as m,isSolid as p,jsxImportSource as c,mainDirectory as u}from"./process-env.mjs";import{isFunction as d,log as h,readConf as g,resolveProgramPath as f}from"./utils.mjs";let x=["@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"],C={devtool:r?"eval-cheap-module-source-map":"cheap-module-source-map",seo:!1,mode:"csr",bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:{},sourceMap:{filename:"[file].map",publicPath:""},env:{NODE_ENV:process.env.NODE_ENV},basename:"/",publicPath:"/",rem:{designSize:m?375:1680},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:{"@":f(u)},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:o.webpackCachePath,devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:!1,compress:!1},htmlPluginOption:{template:`node_modules/${a}/template/index.html`,favicon:`node_modules/${a}/template/favicon.ico`,tags:[]},assetHtml:[],routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:{chunks:"all",minSize:1024,minChunks:1,cacheGroups:{CHANGELOG:{test:/CHANGELOG\.md/,priority:-10,name:"CHANGELOG",reuseExistingChunk:!0},prismjs:{test:/(prism\.js|prism\/css\.ts)/,priority:-10,name:"vendors-prismjs",reuseExistingChunk:!0},site:{test:/site/,priority:-10,reuseExistingChunk:!0},marked:{test:/marked/,priority:-10,reuseExistingChunk:!0},"n-katex":{test:/n-katex/,priority:-10,reuseExistingChunk:!0},"n-code-live":{test:/n-code-live/,priority:-10,reuseExistingChunk:!0},"@moneko":{test:/@moneko/,priority:-10,reuseExistingChunk:!0}}},runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:x,js:x,media:x,font:x,wasm:[]},mdx:{jsx:!1,development:r,jsxImportSource:c,providerImportSource:`@moneko/${i}/mdx`},jsxDomExpressions:{},bar:{name:"Client",color:"#6f42c1"},normalizeCss:!0,externalsPresets:{},buildHttp:{allowedUris:[],lockfileLocation:`${o.httpCachePath}/http.lock`,cacheLocation:`${o.httpCachePath}/data`,upgrade:!0},virtualModule:{}};p&&(C.jsxDomExpressions={moduleName:"solid-js/web",builtIns:["For","Show","Switch","Match","Suspense","SuspenseList","Portal","Index","Dynamic","ErrorBoundary"],contextToCustomElements:!0,wrapConditionals:!0,generate:"dom",hydratable:!1}),l&&(C.alias=Object.assign(C.alias,{"@pkg":o.componentsPath,[n]:o.componentsPath}));let k=C,v={},P={};if(e(o.configPath)){let e=(await g(o.configPath,"index")).default;v=d(e)?e(process):e}if(s&&e(o.customConfigPath)){let e=(await g(o.customConfigPath,s)).default;P=d(e)?e(process):e}(!1===(k=t(k,v,P)).devtool||!1===k.sourceMap)&&(k.sourceMap=!1,k.devtool=!1),k.fixBrowserRouter&&k.htmlPluginOption&&(k.htmlPluginOption.tags||(k.htmlPluginOption.tags=[]),k.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=k;export const PUBLICPATH=CONFIG.publicPath||"/";global.NEKOCLICONFIG={CONFIG,CUSTOMCONFIG:s,log:h};
1
+ import{fileExists as e}from"@moneko/mdx";import{merge as o}from"webpack-merge";import t from"./options/jsx-dom-expressions.mjs";import s from"./options/split-chunk.mjs";import a,{CUSTOMCONFIG as i}from"./paths.mjs";import{FRAMEWORK as l,PACKAGENAME as r,isDev as n,isLibrary as m,isMobile as p,jsxImportSource as c,mainDirectory as u}from"./process-env.mjs";import{isFunction as d,resolveProgramPath as h}from"./utils/index.mjs";import f from"./utils/log.mjs";import g from"./utils/read-conf.mjs";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"],x={devtool:n?"eval-cheap-module-source-map":"cheap-module-source-map",seo:!1,mode:"csr",bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:{},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:{"@":h(u)},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:{},cacheDirectory:a.webpackCachePath,devServer:{host:"localhost",port:3e3},htmlPluginOption:{},assetHtml:[],routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:s,runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:P,js:P,media:P,font:P,wasm:[]},mdx:{jsx:!1,development:n,jsxImportSource:c,providerImportSource:`@moneko/${l}/mdx`},jsxDomExpressions:t,bar:{name:"Client",color:"#6f42c1"},normalizeCss:!0,externalsPresets:{},buildHttp:{allowedUris:[],lockfileLocation:`${a.httpCachePath}/http.lock`,cacheLocation:`${a.httpCachePath}/data`,upgrade:!0},virtualModule:{}};m&&(x.alias=Object.assign(x.alias,{"@pkg":a.componentsPath,[r]:a.componentsPath}));let v=x,C={},k={};if(e(a.configPath)){let e=(await g(a.configPath,"index")).default;C=d(e)?e(process):e}if(i&&e(a.customConfigPath)){let e=(await g(a.customConfigPath,i)).default;k=d(e)?e(process):e}(!1===(v=o(v,C,k)).devtool||!1===v.sourceMap)&&(v.sourceMap=!1,v.devtool=!1),v.fixBrowserRouter&&v.htmlPluginOption&&(v.htmlPluginOption.tags||(v.htmlPluginOption.tags=[]),v.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=v;export const PUBLICPATH=CONFIG.publicPath||"/";global.NEKOCLICONFIG={CONFIG,CUSTOMCONFIG:i,log:f};
@@ -0,0 +1,3 @@
1
+ import t from"chalk";import{getIPv4 as o,getPort as e}from"./net.mjs";import{CONFIG as r}from"../config.mjs";import s from"../utils/log.mjs";let{yellow:i,green:n,grey:l,gray:m,bgBlue:a,bgGreenBright:c,blueBright:p,greenBright:$}=t,u=r.devServer||{},f=u.port||3e3;export const PORT=await e(f,65535,u.host);u.port=PORT;let d="/"===r.basename?"":r.basename,T=u.port!==PORT&&m(`Port ${i(f)} is in use, trying ${n(PORT)} instead.
2
+ `);function g(t){return`http://${"local"===t?u.host:o()}:${PORT}${d}`}let h=m("You application is running here:"),x=`${a(" Local ")} ${p(g("local"))}
3
+ ${c(" Network ")} ${$(g("net"))}`;export function devLog(t,o){!t&&o&&(process.stdout.write("\x1b[2J\x1b[3J\x1b[H"),s([h,"",x,"",l(`Compiled successfully in ${n(`${o.endTime-o.startTime}ms`)}`)]),T&&s(T))}export const headers={"Access-Control-Allow-Origin":"*"};
@@ -0,0 +1,40 @@
1
+ /// <reference types="multer" />
2
+ import { type NextFunction, type Request, type Response } from 'express';
3
+ export interface RequestFormData extends Request {
4
+ files: Express.Multer.File[];
5
+ }
6
+ export type ProxyFuncType = (req: RequestFormData, res: Response, next: NextFunction) => void;
7
+ export type MockConfiguration = Record<string, ProxyFuncType | Record<string, any> | null>;
8
+ export type YApiOptionBySchema = {
9
+ /** YApi host */
10
+ host: string;
11
+ /** 接口id */
12
+ id: string;
13
+ /** YApi开放接口token */
14
+ token: string;
15
+ };
16
+ type Any = any;
17
+ /**
18
+ * 通过 YApi 接口对应的响应JSON Schema生成默认的数据
19
+ * @param {YApiOptionBySchema} option Schema
20
+ * @param {T} data data
21
+ * @returns {Promise} mockData
22
+ */
23
+ export declare const yApiSchemaMock: <T extends unknown>(option: YApiOptionBySchema, data?: T | undefined) => Promise<T>;
24
+ export type YApiOption = {
25
+ /** YApi host */
26
+ host: string;
27
+ /** YApi 项目ID */
28
+ projectId: number;
29
+ /** 重写请求路径, 例如:'^/api/' */
30
+ pathRewrite: string;
31
+ };
32
+ /**
33
+ * 请求YApi高级mock接口数据
34
+ * @param {RequestFormData} req req
35
+ * @param {YApiOption} yapi YApiOption
36
+ * @returns {Promise} data
37
+ */
38
+ export declare const yApiMock: (req: RequestFormData, yapi: YApiOption) => Promise<Any>;
39
+ declare const mockMiddlewares: (directory: string) => (req: Request, res: Response, next: VoidFunction) => void;
40
+ export default mockMiddlewares;
@@ -0,0 +1 @@
1
+ import t from"http";import{watch as e}from"chokidar";import o from"express";import{mock as r}from"mock-json-schema";import{merge as a}from"webpack-merge";import s from"../utils/esm.mjs";import n from"../utils/log.mjs";import i from"../utils/match-path.mjs";import c from"../utils/tfc.mjs";function p(t,e,o){if(o[e]){for(let r in o[e])Object.prototype.hasOwnProperty.call(o[e],r)&&delete t[r];o[e]=null,delete o[e]}}export const yApiSchemaMock=(e,o)=>new Promise((s,n)=>{t.get(`${e.host}/api/interface/get?id=${e.id}&token=${e.token}`,t=>{t.setEncoding("utf8");let e="";t.on("data",t=>{e+=t}),t.on("end",()=>{try{let t=JSON.parse(e);if(t?.data?.res_body_is_json_schema){let e=JSON.parse(t.data.res_body),n=r(e);void 0!==o?s(a(n,o)):s(n)}}catch(t){n(t)}})})});export const yApiMock=(e,o)=>new Promise((r,a)=>{let s=new URL(o.host),n={hostname:s.hostname,port:s.port,path:e.path.replace(new RegExp(o.pathRewrite),`/mock/${o.projectId}/`),method:e.method,headers:e.headers,query:e.query},i=t.request(n,t=>{t.setEncoding("utf8");let e="";t.on("data",t=>{e+=t}),t.on("end",()=>{try{r(JSON.parse(e))}catch(t){a(t)}})});i.on("error",t=>{a(t.message)}),i.write(JSON.stringify(e.body)),i.end()});export default(t=>{let r={},a={};return e(t).on("all",async function(t,e){process.stdout.write("update mock...");let o={};switch(t){case"add":case"change":p(a,e,r),o=(await import(s`${c(e)}`)).default,r[e]=o,a=Object.assign(a,o);break;case"unlink":p(a,e,r)}n("update mock success")}),function(t,e,r){let s=`${t.method} ${t.path}`,n=Object.keys(a).filter(function(t){return RegExp(`^${t.replace(/(:\w*)[^/]/g,"((?!/).)")}*$`).test(s)});if(!a[s]&&(!n||!(n.length>0)))return r();{let c;let p=t.get("Content-Type");switch(p){case"text/plain":c=o.raw({type:"text/plain"});break;case"text/html":c=o.text({type:"text/html"});break;case"application/x-www-form-urlencoded":c=o.urlencoded({extended:!1});break;default:c=o.json()}p?.startsWith("multipart/form-data;")&&(c=o.static("./public")),c(t,e,function(){let o=a[s]||a[n[0]];if("function"==typeof o){let a=i(n[0].split(" ")[1],t.url);a&&Object.assign(t.params,a.params),o(t,e,r)}else e.json(o)})}}});
@@ -1,2 +1,2 @@
1
- export declare function getIPv4(): null;
1
+ export declare function getIPv4(): string | null;
2
2
  export declare function getPort<T = number>(start: T, end: number, host?: string): Promise<T>;
@@ -0,0 +1 @@
1
+ import{createConnection as e}from"net";import{networkInterfaces as t}from"os";export function getIPv4(){let e=t(),r=null,o=Object.keys(e);for(let t=0,n=o.length;t<n;t++){let n=e[o[t]]||[];for(let e=0,t=n.length;e<t;e++){let t=n[e];"IPv4"!==t.family||t.internal||(r=t.address)}}return r}export function getPort(t,r,o="0.0.0.0"){return new Promise(n=>{if("number"!=typeof t)n(t);else{let l=e(t,o);l.on("connect",()=>{l.destroy(),n(getPort(t+1,r,o))}),l.on("error",()=>{n(t)})}})}
@@ -0,0 +1,7 @@
1
+ import { type Options } from 'http-proxy-middleware';
2
+ import type { Express } from 'express';
3
+ export interface ProxyConfig {
4
+ [key: string]: Options;
5
+ }
6
+ declare const devProxy: (app: Express, proxyMap: ProxyConfig) => void;
7
+ export default devProxy;
@@ -0,0 +1 @@
1
+ import{createProxyMiddleware as e}from"http-proxy-middleware";export default((t,r)=>{let l=Object.keys(r);for(let o=0,p=l.length;o<p;o++){let p=l[o],d=r[p],f=e(p,{logLevel:"error",...d});t.use(p,f)}});
package/lib/dev.mjs CHANGED
@@ -1 +1 @@
1
- import{removeDirAll as e}from"@moneko/mdx";import o from"cors";import r from"express";import t from"nodemon";import s from"webpack";import i from"webpack-dev-middleware";import l from"webpack-hot-middleware";import{merge as a}from"webpack-merge";import n from"webpack-node-externals";import m from"webpackbar";import{commonConfig as c}from"./common.mjs";import{CONFIG as p}from"./config.mjs";import{PORT as d,devLog as u,headers as f}from"./dev-config.mjs";import{hasPkg as g}from"./has-pkg.mjs";import h from"./module.config.mjs";import w,{CUSTOMCONFIG as b}from"./paths.mjs";import k from"./plugin/virtual-module.mjs";import{SSR as j,isLibrary as x,isReact as v}from"./process-env.mjs";import{compilerListener as y,resolveProgramPath as $}from"./utils.mjs";let{HotModuleReplacementPlugin:_}=s,P=g("stylelint-webpack-plugin")&&(await import("stylelint-webpack-plugin")).default,S=g("eslint-webpack-plugin")&&(await import("eslint-webpack-plugin")).default,B=v&&(await import("@pmmmwh/react-refresh-webpack-plugin")).default,D=["js","jsx","ts","tsx","json","html","vue"],E=D.join(","),M=["css","scss","sass","less","ts","tsx","js","jsx"],O=M.join(","),I=["node_modules/","es/","lib/","umd/","docs/","coverage/","dist/"],N=new URLSearchParams({timeout:2e3,reload:!0,quiet:!0,noInfo:!0,overlay:!1,dynamicPublicPath:!0}).toString(),T=[a(c,{entry:{main:[`webpack-hot-middleware/client?name=client&path=//localhost:${d}/__hmr__&${N}`]},module:h(!1),plugins:[new k(p.virtualModule),new _,B&&new B,S&&new S({fix:!0,threads:!0,files:[`${p.alias["@"]}/**/*.{${E}}`,x&&`${p.alias["@pkg"]}/**/*.{${E}}`].filter(Boolean),extensions:D,exclude:I,cache:!0,lintDirtyModulesOnly:!0}),P&&new P({fix:!0,threads:!0,files:[`${p.alias["@"]}/**/*.{${O}}`,x&&`${p.alias["@pkg"]}/**/*.{${O}}`].filter(Boolean),extensions:M,exclude:I,cache:!0,lintDirtyModulesOnly:!0}),p.bar&&new m(p.bar)].filter(Boolean)})];if(j){let e=a(c,{entry:{main:$("site/ssr.tsx")},output:{path:$(`${x?"docs":"dist"}/server`),library:{type:"commonjs2"},filename:"[name].cjs",chunkFilename:"[name].cjs",globalObject:"global"},cache:{type:"filesystem",name:[b,process.env.NODE_ENV,"server"].filter(Boolean).join("-")},externals:[n({allowlist:["react","react-dom","solid-js"]})],module:h(!0),target:"node",plugins:[new k(p.virtualModule),new m({name:"Server"})].filter(Boolean)});T.push(e)}let[q,R]=s(T).compilers,U=r();U.use(o()),U.use(i(q,{writeToDisk:!0,index:"index.html",headers:()=>f,serverSideRender:j})),U.use(l(q,{log:!1,path:"/__hmr__",heartbeat:2e3,ignoreUnaccepted:!1,ignoreDeclined:!0,ignoreErrored:!0}));let A=[y("client",q)];R&&(A.push(y("server",R)),R.watch({aggregateTimeout:20,ignored:/node_modules(?![\\/]@app)/,poll:1e3,stdin:!0},u)),await Promise.all(A),q.hooks.done.tap("client",e=>{u(null,e)}),g("@moneko/mock")&&import("@moneko/mock").then(e=>{e.default(U,$("mock/"))}),U.listen(d,()=>{});let F=t({script:`${w.programPath}/docs/server/main.cjs`,ignore:["src","webpack","scripts",`${w.programPath}/docs/client`,"public","node_modules"],delay:100});F.on("restart",()=>{console.log("Server side app has been restarted")}),F.on("quit",()=>{console.log("Process ended"),process.exit()}),F.on("error",()=>{console.log("An error occured. Exiting"),process.exit(1)}),process.on("exit",function(){}),process.on("SIGINT",()=>{e(w.cachePath),process.exit()});
1
+ import{directoryExists as e,removeDirAll as t}from"@moneko/mdx";import o from"express";import i from"multer";import r from"webpack";import s from"webpack-dev-middleware";import m from"webpack-hot-middleware";import{merge as l}from"webpack-merge";import n from"webpackbar";import a from"./build/server.mjs";import{commonConfig as p}from"./common.mjs";import{CONFIG as c}from"./config.mjs";import{PORT as d,devLog as u,headers as f}from"./dev/config.mjs";import h from"./dev/mock.mjs";import w from"./dev/proxy.mjs";import g from"./module.config.mjs";import x from"./paths.mjs";import{SSR as j,isLibrary as k,isReact as b}from"./process-env.mjs";import y from"./rule.mjs";import $ from"./utils/compiler-listener.mjs";import v from"./utils/has-pkg.mjs";import{empty as _,resolveProgramPath as P}from"./utils/index.mjs";let{HotModuleReplacementPlugin:S,WatchIgnorePlugin:D}=r,T=v("stylelint-webpack-plugin")&&(await import("stylelint-webpack-plugin")).default,B=v("eslint-webpack-plugin")&&(await import("eslint-webpack-plugin")).default,I=b&&(await import("@pmmmwh/react-refresh-webpack-plugin")).default,E=["js","jsx","ts","tsx","json","html","vue"],F=E.join(","),G=["css","scss","sass","less","ts","tsx","js","jsx"],M=G.join(","),O=["node_modules/","es/","lib/","umd/","docs/","coverage/","dist/"],R=new URLSearchParams({timeout:2e3,reload:!0,quiet:!0,noInfo:!0,overlay:!0,dynamicPublicPath:!0}).toString(),U=p.output.path;j&&(U=P(`${k?"docs":"dist"}/client`));let q=l(p,{entry:{main:[`webpack-hot-middleware/client?name=client&path=//localhost:${d}/__hmr__&${R}`]},output:{path:U},module:g(!1),plugins:[new S,new D({paths:[/\.d\.ts$/]}),I&&new I,B&&new B({fix:!0,threads:!0,files:[`${c.alias["@"]}/**/*.{${F}}`,k&&`${c.alias["@pkg"]}/**/*.{${F}}`].filter(Boolean),extensions:E,exclude:O,cache:!0,lintDirtyModulesOnly:!0}),T&&new T({fix:!0,threads:!0,files:[`${c.alias["@"]}/**/*.{${M}}`,k&&`${c.alias["@pkg"]}/**/*.{${M}}`].filter(Boolean),extensions:G,exclude:O,cache:!0,lintDirtyModulesOnly:!0}),c.bar&&new n(c.bar)].filter(Boolean)}),A=[q];j&&A.push(l(p,a));let[C,L]=r(A).compilers;C.hooks.done.tap("client",e=>{u(null,e)});let N=o(),z=i(),H=s(C,{writeToDisk:!1,index:"index.html",headers:()=>f,serverSideRender:j});if(N.use(H),N.use(m(C,{log:!1,path:"/__hmr__",heartbeat:2e3,ignoreUnaccepted:!1,ignoreDeclined:!0,ignoreErrored:!0})),c.proxy&&w(N,c.proxy),e(x.mockPath)){let e=h(x.mockPath);N.use(e)}let J=`${q.output.path}/index.html`;N.all("/*",z.any(),function(e,t,o){if("GET"!==e.method)return o();{let e=H.context.outputFileSystem,o=e?.readFileSync?.(J);t.end(o)}});let K=[$("client",C)];L&&(L.watch({aggregateTimeout:20,ignored:y.dev_watch_ignored,poll:1e3,stdin:!0},u),K.push($("server",L))),await Promise.all(K);let Q=N.listen(d,()=>{});process.on("exit",function(){Q.close(_),Q.closeAllConnections(),t(x.cachePath)}),process.on("SIGINT",function(){process.exit()});
package/lib/index.d.mts CHANGED
@@ -1,8 +1,16 @@
1
- export { default as paths, CUSTOMCONFIG } from './paths.mjs';
2
- export { PACKAGENAME, PACKAGEVERSION, coreName, isDev, isLibrary, isMicro, mainDirectory, } from './process-env.mjs';
3
- export { realResolve, resolveNodeModulesPath, resolveProgramPath, log } from './utils.mjs';
4
- export { getIPv4, getPort } from './net.mjs';
5
- export { default as osTmpDir } from './os-tmp-dir.mjs';
1
+ export { default as paths, CUSTOMCONFIG, yarnArgv, routeDir } from './paths.mjs';
2
+ export { APPTYPE, FRAMEWORK, PACKAGENAME, PACKAGEVERSION, coreName, isDev, isLibrary, isMicro, mainDirectory, } from './process-env.mjs';
3
+ export { realResolve, resolveNodeModulesPath, resolveProgramPath } from './utils/index.mjs';
4
+ export { default as log } from './utils/log.mjs';
5
+ export { default as hasPkg } from './utils/has-pkg.mjs';
6
+ export { default as osTmpDir } from './utils/os-tmp-dir.mjs';
6
7
  export type { MdxOptions } from '@moneko/mdx';
7
8
  export type { OverrideResolverOption } from './plugin/override-resolve.mjs';
9
+ export { type YApiOption, type YApiOptionBySchema, yApiMock, yApiSchemaMock, type RequestFormData, type ProxyFuncType, type MockConfiguration, } from './dev/mock.mjs';
10
+ export type { ProxyConfig } from './dev/proxy.mjs';
11
+ export { getIPv4, getPort } from './dev/net.mjs';
12
+ export { default as jsxDomExpressions, type JsxDomExpressions, } from './options/jsx-dom-expressions.mjs';
13
+ export { default as splitChunk, type OptimizationSplitChunksOptions, } from './options/split-chunk.mjs';
14
+ export { default as Rule } from './rule.mjs';
15
+ export type { VirtualModulePluginOption } from './plugin/virtual-module.mjs';
8
16
  export type * from '../typings/global.js';
package/lib/index.mjs CHANGED
@@ -1 +1 @@
1
- export{default as paths,CUSTOMCONFIG}from"./paths.mjs";export{PACKAGENAME,PACKAGEVERSION,coreName,isDev,isLibrary,isMicro,mainDirectory}from"./process-env.mjs";export{realResolve,resolveNodeModulesPath,resolveProgramPath,log}from"./utils.mjs";export{getIPv4,getPort}from"./net.mjs";export{default as osTmpDir}from"./os-tmp-dir.mjs";
1
+ export{default as paths,CUSTOMCONFIG,yarnArgv,routeDir}from"./paths.mjs";export{APPTYPE,FRAMEWORK,PACKAGENAME,PACKAGEVERSION,coreName,isDev,isLibrary,isMicro,mainDirectory}from"./process-env.mjs";export{realResolve,resolveNodeModulesPath,resolveProgramPath}from"./utils/index.mjs";export{default as log}from"./utils/log.mjs";export{default as hasPkg}from"./utils/has-pkg.mjs";export{default as osTmpDir}from"./utils/os-tmp-dir.mjs";export{yApiMock,yApiSchemaMock}from"./dev/mock.mjs";export{getIPv4,getPort}from"./dev/net.mjs";export{default as jsxDomExpressions}from"./options/jsx-dom-expressions.mjs";export{default as splitChunk}from"./options/split-chunk.mjs";export{default as Rule}from"./rule.mjs";
@@ -1,4 +1,4 @@
1
- import type ReactiveObject from '../reactive-object.mjs';
1
+ import type ReactiveObject from '../utils/reactive-object.mjs';
2
2
  import type { LoaderContext } from 'webpack';
3
3
  export default function (this: LoaderContext<{
4
4
  comment: ReactiveObject<Record<string, string>>;
@@ -1 +1 @@
1
- let e;import s from"mini-css-extract-plugin";import{CONFIG as t,PUBLICPATH as o}from"./config.mjs";import{hasPkg as r}from"./has-pkg.mjs";import a from"./modify-vars.mjs";import i,{CUSTOMCONFIG as l}from"./paths.mjs";import{FRAMEWORK as n,isDev as m,isLibrary as d,isMicro as c}from"./process-env.mjs";import p from"./svg-to-data-uri.mjs";import u from"./swcrc.mjs";import{getLightningCssTargets as f}from"./targets.mjs";import{resolveNodeModulesPath as y,resolveProgramPath as g}from"./utils.mjs";import{comment as j,getCommentPath as $}from"./vm/docs.mjs";import x from"./vm/generate-doc.mjs";let v=c?o:"../",h={loader:s.loader,options:{publicPath:"/"!==v?v:"../"}},w={loader:`${i.corePath}/loader/lightningcss.cjs`,options:{sourceMap:!!t.sourceMap,analyzeDependencies:!1,targets:f(),drafts:{nesting:!0,customMedia:!0},errorRecovery:!1,unusedSymbols:[],rem:!!t.rem}};m&&(h="style-loader");let b=[...t.cssModules,`@moneko/${n}`,"neko-ui"].map(y),_=["components","example","mock","site","src","server"].map(g);function k(e){return _.concat(t.rulesInclude?.[e]?.map(y)||[])}l&&_.push(g(l)),t.overrideResolve&&t.overrideResolve.override&&_.push(t.overrideResolve.override);let M=k("css"),B=k("js"),L=k("media"),O=k("wasm"),P=k("font");r("sass")&&(e={loader:"sass-loader",options:{implementation:await import("sass"),sassOptions:{}}});let R=d&&m&&{test:/^(?![._]).*(?<!\.test)\.(tsx?)$/,include:t.alias["@pkg"],exclude:[/node_modules/,/(.+)\/__tests__\/(.+)/i],enforce:"pre",loader:`${i.corePath}/loader/ts-doc.cjs`,options:{comment:j,generateDoc:x,getCommentPath:$}};export default(s=>{let o={loader:"swc-loader",options:u(s)},r={loader:"css-loader",options:{modules:{auto:e=>{for(let s=0,t=b.length;s<t;s++)if(e&&e?.includes(b[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",exportOnlyLocals:s},importLoaders:2}},l=[h,r,w,{loader:"less-loader",options:{sourceMap:!!t.sourceMap,lessOptions:{modifyVars:a,javascriptEnabled:!0}}}].filter(Boolean);return{noParse:[/jquery|lodash|prismjs|prism\.js/,/react\.min\.js$/,/marked\.min\.js$/],rules:[R,{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:O},{test:/\.txt$/i,type:"asset/source"},{test:/\.ico$/i,type:"asset/inline",include:L},{test:/\.svg$/i,type:"asset/inline",generator:{dataUrl:e=>p(e.toString())},include:L},{test:/\.(gif|png|jpe?g|webp)$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/images/[name][ext]"},include:L},{test:/\.(webm|mp4|ogv)$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/video/[name][ext]"},include:L},{test:/\.(woff2?|eot|ttf|otf)(\?.*)?$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/fonts/[name][ext]"},include:P},{test:/\.(sa|sc)ss$/i,use:[h,r,w,e].filter(Boolean),include:M},{test:/\.less$/i,use:l,include:M},{test:/\.css$/i,use:[h,"css-loader",w].filter(Boolean),include:M},{test:/\.(cj|mj|t|j)s(|x)$/i,use:[...t.prefixJsLoader,o].filter(Boolean),include:B},{test:/\.mdx?$/i,use:[...t.prefixJsLoader,{loader:`${i.corePath}/loader/mdx.cjs`,options:t.mdx}].filter(Boolean),exclude:[/node_modules/]},{type:"asset/source",include:[/(.+)\/examples\/(.+).*?$/i]}]},...t.moduleRules].filter(e=>"object"==typeof e)}});
1
+ let e;import s from"mini-css-extract-plugin";import{CONFIG as o,PUBLICPATH as t}from"./config.mjs";import r from"./options/modify-vars.mjs";import a from"./options/swcrc.mjs";import n,{CUSTOMCONFIG as l}from"./paths.mjs";import{getLightningCssTargets as i}from"./polyfills/targets.mjs";import{FRAMEWORK as m,isDev as d,isLibrary as c,isMicro as u}from"./process-env.mjs";import p from"./rule.mjs";import f from"./utils/has-pkg.mjs";import{resolveNodeModulesPath as y,resolveProgramPath as g}from"./utils/index.mjs";import v from"./utils/svg-to-data-uri.mjs";import{comment as j,getCommentPath as x}from"./vm/docs.mjs";import h from"./vm/generate-doc.mjs";let _=u?t:"../",w={loader:s.loader,options:{publicPath:"/"!==_?_:"../"}},k={loader:`${n.corePath}/loader/lightningcss.cjs`,options:{sourceMap:!!o.sourceMap,analyzeDependencies:!1,targets:i(),drafts:{nesting:!0,customMedia:!0},errorRecovery:!1,unusedSymbols:[],rem:!!o.rem}},M={loader:"less-loader",options:{sourceMap:!!o.sourceMap,lessOptions:{modifyVars:r,javascriptEnabled:!0}}};d&&(w="style-loader");let b=[...o.cssModules,`@moneko/${m}`,"neko-ui"].map(y),O=["components","example","mock","site","src","server"].map(g);function P(e){return[...O,...o.rulesInclude?.[e]?.map(y)||[]]}l&&O.push(g(l)),o.overrideResolve&&o.overrideResolve.override&&O.push(o.overrideResolve.override);let R=P("css"),L=P("js"),$=P("media"),B=P("wasm"),I=P("font");f("sass")&&(e={loader:"sass-loader",options:{implementation:await import("sass"),sassOptions:{}}});let Q=c&&d&&{test:p.tsdoc,include:o.alias["@pkg"],exclude:[p.node_modules,p.__tests__],enforce:"pre",loader:`${n.corePath}/loader/ts-doc.cjs`,options:{comment:j,generateDoc:h,getCommentPath:x}},S=[{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:p.wasm,type:"webassembly/async",include:B},{test:p.txt,type:"asset/source"},{test:p.ico,type:"asset/inline",include:$},{test:p.svg,type:"asset/inline",generator:{dataUrl:e=>v(e.toString())},include:$},{test:p.image,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/images/[name][ext]"},include:$},{test:p.video,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/video/[name][ext]"},include:$},{test:p.font,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/fonts/[name][ext]"},include:I}],z=o.prefixJsLoader.filter(Boolean)||[];export default(s=>{let t={loader:"swc-loader",options:a(s)},r={loader:"css-loader",options:{modules:{auto:e=>{if(e){for(let s=0,o=b.length;s<o;s++)if(e.includes(b[s]))return p.css_module.test(e)}return p.node_modules_css_module.test(e)},localIdentName:"[path][name]_[local]",exportLocalsConvention:"dashesOnly",exportOnlyLocals:s},importLoaders:2}};return{noParse:p.no_parse,rules:[Q,{oneOf:[...S,{test:p.js,use:[...z,t],include:L},{test:p.css,use:[w,"css-loader",k],include:R},e&&{test:p.scss,use:[w,r,k,e],include:R},{test:p.less,use:[w,r,k,M],include:R},{test:p.markdown,use:[...z,{loader:`${n.corePath}/loader/mdx.cjs`,options:o.mdx}],exclude:[p.node_modules]}].filter(Boolean)},...o.moduleRules].filter(Boolean)}});
Binary file
@@ -1,3 +1,3 @@
1
- import type { HtmlWebpackOption } from '../typings/global.js';
1
+ import type { HtmlWebpackOption } from '../../typings/global.js';
2
2
  declare const htmlPluginOption: HtmlWebpackOption;
3
3
  export default htmlPluginOption;
@@ -0,0 +1,11 @@
1
+ import{merge as e}from"webpack-merge";import{CONFIG as t}from"../config.mjs";import{PACKAGENAME as i,coreName as o}from"../process-env.mjs";import{resolveProgramPath as m}from"../utils/index.mjs";import{description as r,keywords as a}from"../vm/info.mjs";let{favicon:n=`node_modules/${o}/lib/options/favicon.ico`,template:l,...p}=t.htmlPluginOption||{},s=e({title:t.env?.PROJECTNAME||i.toLocaleUpperCase()||"Title",filename:"index.html",hash:!1,minify:{minifyJS:!0,minifyCSS:!0,collapseWhitespace:!0,removeComments:!0,removeRedundantAttributes:!1,removeScriptTypeAttributes:!1,removeStyleLinkTypeAttributes:!1,removeAttributeQuotes:!0,useShortDoctype:!0},meta:{charset:"UTF-8","X-UA-Compatible":{"http-equiv":"X-UA-Compatible",content:"IE=edge,Chrome=1"},HandheldFriendly:"true",MobileOptimized:"320","screen-orientation":"portrait","x5-orientation":"portrait",browsermode:"application","x5-page-mode":"app","msapplication-tap-highlight":"no",viewport:"width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1","apple-mobile-web-app-capable":"yes",renderer:"webkit",description:r,keywords:a},tags:[],favicon:n?m(n):n},p,l?{template:l?m(l):void 0}:{templateContent:function({htmlWebpackPlugin:{options:e}}){let t=e.tags,i="",o="";return t&&t.map(function(e){let{tag:t="script",textContent:m="",inject:r="head",...a}=e,n="";for(let e in a)Object.prototype.hasOwnProperty.call(a,e)&&(n+=`${e}="${a[e]}" `);let l=`<${t} ${n}>${m}</${t}>`;"body"===r?o+=l:i+=l}),`<!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>${e.title}</title>
5
+ ${i}
6
+ </head>
7
+ <body>
8
+ <div id="root"></div>
9
+ ${o}
10
+ </body>
11
+ </html>`}});export default s;
@@ -1,5 +1,5 @@
1
1
  import TerserPlugin from 'terser-webpack-plugin';
2
- import type { MinifierType, SwcMinifyOptions, TerserMinifyOptions } from './index.mjs';
2
+ import type { MinifierType, SwcMinifyOptions, TerserMinifyOptions } from '../index.mjs';
3
3
  type MinifyObject = {
4
4
  terser: {
5
5
  minify: typeof TerserPlugin.terserMinify;
@@ -12,7 +12,7 @@ type MinifyObject = {
12
12
  };
13
13
  };
14
14
  export declare const minify: MinifyObject;
15
- export declare const getMinifyOption: (type: MinifierType, options?: SwcMinifyOptions | TerserMinifyOptions) => ({
15
+ export declare const getMinifyOption: (type?: MinifierType, options?: SwcMinifyOptions | TerserMinifyOptions) => ({
16
16
  minify: typeof TerserPlugin.terserMinify;
17
17
  terserOptions: TerserMinifyOptions;
18
18
  extractComments?: boolean | undefined;
@@ -0,0 +1 @@
1
+ import e from"terser-webpack-plugin";import{merge as o}from"webpack-merge";let r={drop_console:!0,drop_debugger:!0,global_defs:{"@alert":"console.log"},pure_funcs:["console.log","console.warn","console.error","console.info"]},s={ecma:2015,toplevel:!1,module:!1,ie8:!1,keep_classnames:void 0,keep_fnames:!1};export const minify={terser:{minify:e.terserMinify,terserOptions:{compress:r,...s,mangle:!0,format:{comments:!1},safari10:!1,parse:{}},extractComments:!1},swc:{minify:e.swcMinify,terserOptions:{compress:{...r,...s,top_retain:[],keep_infinity:!0},mangle:!0}}};export const getMinifyOption=(e="swc",r={})=>{let s=minify[e];return Object.assign(s,{terserOptions:o(s.terserOptions,r)})};
@@ -0,0 +1,10 @@
1
+ export interface JsxDomExpressions {
2
+ moduleName?: string;
3
+ builtIns?: string[];
4
+ contextToCustomElements?: boolean;
5
+ wrapConditionals?: boolean;
6
+ generate?: 'ssr' | 'dom';
7
+ hydratable?: boolean;
8
+ }
9
+ declare const jsxDomExpressions: JsxDomExpressions;
10
+ export default jsxDomExpressions;
@@ -0,0 +1 @@
1
+ export default{moduleName:"solid-js/web",builtIns:["For","Show","Switch","Match","Suspense","SuspenseList","Portal","Index","Dynamic","ErrorBoundary"],contextToCustomElements:!0,wrapConditionals:!0,generate:"dom",hydratable:!1};
@@ -0,0 +1 @@
1
+ import i from"./html-plugin-option.mjs";import{CONFIG as o}from"../config.mjs";let f=o.prefixCls||"n",n={"@prefix-cls":f,"@ant-prefix":f,"@iconfont-css-prefix":`${f}-icon`,"@favicon":JSON.stringify(i.favicon)};Object.assign(n,o.modifyVars);export default n;
@@ -0,0 +1,4 @@
1
+ import webpack from 'webpack';
2
+ export type OptimizationSplitChunksOptions = ConstructorParameters<typeof webpack.optimize.SplitChunksPlugin>[0];
3
+ declare const splitChunk: OptimizationSplitChunksOptions;
4
+ export default splitChunk;
@@ -0,0 +1 @@
1
+ let e=function(){let e={priority:-10,reuseExistingChunk:!0};return function(n){return{...e,test:n}}}(),n={chunks:"all",minSize:1024,minChunks:1,cacheGroups:{CHANGELOG:e(/CHANGELOG\.md/),prismjs:e(/(prism\.js|prism\/css\.ts)/),site:e(/site/),marked:e(/marked/),"n-katex":e(/n-katex/),"n-code-live":e(/n-code-live/),"@moneko":e(/@moneko/)}};export default n;
@@ -0,0 +1,3 @@
1
+ import type { Config as SwcConfig } from '@swc/core';
2
+ declare const _default: (ssr: boolean) => SwcConfig;
3
+ export default _default;
@@ -0,0 +1 @@
1
+ import{merge as e}from"webpack-merge";import{CONFIG as r}from"../config.mjs";import o from"../paths.mjs";import t from"../polyfills/polyfills.mjs";import{isDev as s,isReact as m,isSolid as a,jsxImportSource as l}from"../process-env.mjs";let p=function(e){for(let r=0,o=Object.keys(e),t=o.length;r<t;r++)e[o[r]].transform=`${o[r]}/${e[o[r]].transform}`,e[o[r]].style&&(e[o[r]].style=`${o[r]}/${e[o[r]].style}`);return e}(r.importOnDemand||{}),i={include:t(),mode:"entry",coreJs:"3.35"};export default(t=>e({module:{type:"es6",resolveFully:!0},jsc:{parser:{syntax:"typescript",tsx:!0,decorators:!0,dynamicImport:!0},loose:!0,target:r.polyfill?void 0:"es2017",externalHelpers:!1,transform:{legacyDecorator:!0,decoratorMetadata:!0,react:{runtime:"automatic",throwIfNamespace:!0,refresh:m&&s,development:s,importSource:l},optimizer:{simplify:!1}},experimental:{emitAssertForImportAttributes:!0,cacheRoot:o.swcCachePath,plugins:[["swc-plugin-another-transform-imports",p],a&&["@moneko/jsx-dom-expressions",{...r.jsxDomExpressions,generate:t?"ssr":"dom",hydratable:t}]].filter(Boolean)}},env:r.polyfill?i:void 0,sourceMaps:!0,parseMap:!0},"function"==typeof r.swcrc?r.swcrc(s):r.swcrc||{}));
package/lib/paths.d.mts CHANGED
@@ -9,7 +9,7 @@ export declare const yarnArgv: Record<string, string> & {
9
9
  * ```
10
10
  */
11
11
  export declare const CUSTOMCONFIG: string | undefined;
12
- declare const _default: {
12
+ declare const paths: {
13
13
  nodeModules: string;
14
14
  corePath: string;
15
15
  programPath: string;
@@ -22,5 +22,7 @@ declare const _default: {
22
22
  coveragePath: string;
23
23
  pagesPath: string;
24
24
  componentsPath: string;
25
+ mockPath: string;
25
26
  };
26
- export default _default;
27
+ export declare const routeDir: string;
28
+ export default paths;
package/lib/paths.mjs CHANGED
@@ -1 +1 @@
1
- import e from"url";let c=JSON.parse(process.env.npm_config_argv||"{}")?.original;export const yarnArgv={};c?.forEach(e=>{let c=e.split("=");Object.assign(yarnArgv,{[c[0]]:c[1]||!0})});export const CUSTOMCONFIG=process.env.npm_config_config||yarnArgv.config;let o=process.cwd(),t=`${o}/node_modules`,a=`${t}/.cache/.mo`;export default{nodeModules:t,corePath:e.fileURLToPath(new URL(".",import.meta.url)),programPath:o,webpackCachePath:`${t}/.temp_cache`,cachePath:a,httpCachePath:`${t}/.cache/http`,swcCachePath:`${t}/.swc`,configPath:`${o}/config/index.ts`,customConfigPath:`${o}/config/${CUSTOMCONFIG}.ts`,coveragePath:`${o}/coverage/clover.xml`,pagesPath:`${o}/src/pages`,componentsPath:`${o}/components`};
1
+ import e from"url";let o=JSON.parse(process.env.npm_config_argv||"{}")?.original;export const yarnArgv={};for(let e=0,t=o.length;e<t;e++){let t=o[e].split("=");Object.assign(yarnArgv,{[t[0]]:t[1]||!0})}export const CUSTOMCONFIG=process.env.npm_config_config||yarnArgv.config;let t=process.cwd(),c=`${t}/node_modules`,a={nodeModules:c,corePath:e.fileURLToPath(new URL(".",import.meta.url)),programPath:t,webpackCachePath:`${c}/.temp_cache`,cachePath:`${c}/.cache/.mo`,httpCachePath:`${c}/.cache/http`,swcCachePath:`${c}/.swc`,configPath:`${t}/config/index.ts`,customConfigPath:`${t}/config/${CUSTOMCONFIG}.ts`,coveragePath:`${t}/coverage/clover.xml`,pagesPath:`${t}/src/pages`,componentsPath:`${t}/components`,mockPath:`${t}/mock`};export const routeDir="library"===process.env.APPTYPE?a.componentsPath:a.pagesPath;export default a;
@@ -4,16 +4,15 @@ import type { Compiler } from 'webpack';
4
4
  * ```javascript
5
5
  * // 假设输出 main chunk 为 main.[hash].chunk.js。
6
6
  * // 提示:输出 chunk 的名称规范化可以在 output.filename 中配置
7
- * new AddEntryAttributeWebpackPlugin((src => {
7
+ * new AddEntryAttributePlugin((src => {
8
8
  * return !!(src.match(/main\.(.*)\.bundle.js$/) || src.match('main.bundle.js'));
9
9
  * })),
10
10
  * ```
11
11
  */
12
- declare class AddEntryAttributeWebpackPlugin {
12
+ export declare class AddEntryAttributePlugin {
13
13
  private readonly test;
14
14
  constructor(opt: {
15
15
  test: RegExp;
16
16
  });
17
17
  apply(compiler: Compiler): void;
18
18
  }
19
- export default AddEntryAttributeWebpackPlugin;
@@ -1 +1 @@
1
- export default class{constructor(t){this.test=t.test}apply(t){t.hooks.compilation.tap("AddEntryAttributeWebpackPlugin",s=>{let e=t.options.plugins.find(({constructor:t})=>t&&"HtmlWebpackPlugin"===t.name);e&&e.getHooks(s).alterAssetTagGroups.tap("AddEntryAttributeWebpackPlugin",t=>(t.headTags.forEach(t=>{"script"===t.tagName&&t.attributes.src&&this.test.test(t.attributes.src)&&(t.attributes.entry=!0)}),t))})}}
1
+ import t from"html-webpack-plugin";let s="AddEntryAttributePlugin";export class AddEntryAttributePlugin{constructor(t){this.test=t.test}apply(e){e.hooks.compilation.tap(s,e=>{t.getHooks(e).alterAssetTagGroups.tapAsync(s,(t,s)=>{for(let s=0,e=t.headTags.length;s<e;s++){let e=t.headTags[s];"script"===e.tagName&&e.attributes.src&&this.test.test(e.attributes.src)&&(e.attributes.entry=!0)}s(null,t)})})}}
@@ -1 +1 @@
1
- import e from"webpack";let{sources:t}=e,r="ExternalRemotesPlugin";export default class{apply(e){e.hooks.make.tap(r,e=>{let n=[];e.hooks.buildModule.tap(r,e=>{"ExternalModule"===e.constructor.name&&"script"===e.externalType&&n.push(e)}),e.hooks.afterCodeGeneration.tap(r,function(){n.map(r=>{let n=function(e){let t=e.indexOf("@");if(t<=0||t===e.length-1)throw Error(`Invalid request "${e}"`);return[e.substring(t+1),e.substring(0,t)]}(r.request)[0],o=function(e){let t=[],r=[],n=!1,o=!1;for(let l of e)if("["===l){if(n){o=!0;break}n=!0,r.length&&(t.push(`"${r.join("")}"`),r.length=0)}else if("]"===l){if(!n){o=!0;break}n=!1,r.length&&(t.push(`${r.join("")}`),r.length=0),r.length=0}else r.push(l);if(n||o)throw Error(`Invalid template URL "${e}"`);return r.length&&t.push(`"${r.join("")}"`),t.join(" + ")}(n),l=e.codeGenerationResults.get(r,void 0).sources;l.set("javascript",new t.RawSource((l.get("javascript")?.source()).replace(`"${n}"`,o)))})})})}}
1
+ import e from"webpack";let{sources:t}=e,r="ExternalRemotesPlugin";export default class{apply(e){e.hooks.make.tap(r,e=>{let n=[];e.hooks.buildModule.tap(r,e=>{"ExternalModule"===e.constructor.name&&"script"===e.externalType&&n.push(e)}),e.hooks.afterCodeGeneration.tap(r,function(){n.map(r=>{let n=function(e){let t=e.indexOf("@");if(t<=0||t===e.length-1)throw Error(`Invalid request "${e}"`);return[e.substring(t+1),e.substring(0,t)]}(r.request)[0],o=function(e){let t=[],r=[],n=!1,o=!1;for(let l of e)if("["===l){if(n){o=!0;break}n=!0,r.length&&(t.push(`"${r.join("")}"`),r.length=0)}else if("]"===l){if(!n){o=!0;break}n=!1,r.length&&(t.push(`${r.join("")}`),r.length=0),r.length=0}else r.push(l);if(n||o)throw Error(`Invalid template URL "${e}"`);return r.length&&t.push(`"${r.join("")}"`),t.join(" + ")}(n),l=e.codeGenerationResults.get(r,void 0).sources,s=l.get("javascript")?.source();s&&l.set("javascript",new t.RawSource(s.replace(`"${n}"`,o)))})})})}}
@@ -10,11 +10,11 @@ interface MinifyPluginOpts {
10
10
  exclude?: Filter | Filter[];
11
11
  targets?: Targets;
12
12
  }
13
- declare class LightningCssMinifyPlugin {
13
+ export declare class LightningCssMinifyPlugin {
14
14
  private readonly options;
15
15
  private readonly transform;
16
16
  constructor(opts?: MinifyPluginOpts);
17
17
  apply(compiler: Compiler): void;
18
18
  private transformAssets;
19
19
  }
20
- export default LightningCssMinifyPlugin;
20
+ export {};
@@ -1 +1 @@
1
- import{Buffer as s}from"buffer";import{loadFileSync as t}from"@moneko/mdx";import{transform as o}from"lightningcss";import i from"webpack";let{sources:{RawSource:n,SourceMapSource:e},ModuleFilenameHelpers:{matchObject:r}}=i,a="lightning-css-minify",m=/\.css(?:\?.*)?$/i,{name:p,version:f}=JSON.parse(t(`${process.cwd()}/package.json`)||"{}");export default class{constructor(s={}){let{implementation:t,...i}=s;if(t&&"function"!=typeof t.transform)throw TypeError(`[LightningCssMinifyPlugin]: implementation.transform must be an 'lightningcss' transform function. Received ${typeof t.transform}`);this.transform=t?.transform??o,this.options=i}apply(s){let t=JSON.stringify({name:p,version:f,options:this.options});s.hooks.compilation.tap(a,s=>{s.hooks.chunkHash.tap(a,(s,o)=>o.update(t)),s.hooks.processAssets.tapPromise({name:a,stage:s.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,additionalAssets:!0},async()=>await this.transformAssets(s)),s.hooks.statsPrinter.tap(a,s=>{s.hooks.print.for("asset.info.minimized").tap(a,(s,{green:t,formatFlag:o})=>s&&t&&o?t(o("minimized")):void 0)})})}async transformAssets(t){let{options:{devtool:o}}=t.compiler,{include:i,exclude:a,test:p,sourceMap:f=!!(o&&o.includes("source-map")),...c}=this.options,l=t.getAssets().filter(s=>!s.info.minimized&&(p||m).test(s.name)&&r({include:i,exclude:a},s.name));await Promise.all(l.map(async o=>{let i;let{source:r,map:a}=o.source.sourceAndMap(),m=r.toString(),p="string"==typeof r?s.from(r):r,l=this.transform({filename:o.name,code:p,minify:!0,sourceMap:f,...c}),h=l.code.toString();i=f?new e(h,o.name,JSON.parse(l.map.toString()),m,a,!0):new n(h),t.updateAsset(o.name,i,{...o.info,minimized:!0})}))}}
1
+ import{Buffer as s}from"buffer";import{loadFileSync as t}from"@moneko/mdx";import{transform as i}from"lightningcss";import o from"webpack";let{sources:{RawSource:n,SourceMapSource:e},ModuleFilenameHelpers:{matchObject:r}}=o,a="lightning-css-minify",m=/\.css(?:\?.*)?$/i,{name:p,version:f}=JSON.parse(t(`${process.cwd()}/package.json`)||"{}");export class LightningCssMinifyPlugin{constructor(s={}){let{implementation:t,...o}=s;if(t&&"function"!=typeof t.transform)throw TypeError(`[LightningCssMinifyPlugin]: implementation.transform must be an 'lightningcss' transform function. Received ${typeof t.transform}`);this.transform=t?.transform??i,this.options=o}apply(s){let t=JSON.stringify({name:p,version:f,options:this.options});s.hooks.compilation.tap(a,s=>{s.hooks.chunkHash.tap(a,(s,i)=>i.update(t)),s.hooks.processAssets.tapPromise({name:a,stage:s.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,additionalAssets:!0},async()=>await this.transformAssets(s)),s.hooks.statsPrinter.tap(a,s=>{s.hooks.print.for("asset.info.minimized").tap(a,(s,{green:t,formatFlag:i})=>s&&t&&i?t(i("minimized")):void 0)})})}async transformAssets(t){let{options:{devtool:i}}=t.compiler,{include:o,exclude:a,test:p,sourceMap:f=!!(i&&i.includes("source-map")),...c}=this.options,l=t.getAssets().filter(s=>!s.info.minimized&&(p||m).test(s.name)&&r({include:o,exclude:a},s.name));await Promise.all(l.map(async i=>{let o;let{source:r,map:a}=i.source.sourceAndMap(),m=r.toString(),p="string"==typeof r?s.from(r):r,l=this.transform({filename:i.name,code:p,minify:!0,sourceMap:f,...c}),g=l.code.toString();o=f?new e(g,i.name,JSON.parse(l.map.toString()),m,a,!0):new n(g),t.updateAsset(i.name,o,{...i.info,minimized:!0})}))}}
@@ -0,0 +1 @@
1
+ import e from"webpack";import r from"./external-remotes.mjs";import{CONFIG as t}from"../config.mjs";import{realResolve as o}from"../utils/index.mjs";let{NormalModuleReplacementPlugin:s,container:{ModuleFederationPlugin:a}}=e,m={},i={},l={},n=t.moduleFederation?.map(e=>{if(Array.isArray(e.remotes))for(let r=0,t=e.remotes.length;r<t;r++){let t=e.remotes[r],o=t.alias||t.name,s=t.filename||"remote_entry.js";if(l[o]=`${t.name}@${t.host}/${s}`,Array.isArray(t.library))for(let e=0,r=t.library.length;e<r;e++)m[t.library[e]]=`${o}/${t.library[e]}`}if(Array.isArray(e.exposes))for(let r=0,t=e.exposes.length;r<t;r++){let t=e.exposes[r];"string"==typeof t?i[`./${t}`]=o(t):"[object Object]"===Object.prototype.toString.call(t)&&(i[`./${t.name}`]=o(t.path))}return new a({filename:"remote_entry.js",...e,remotes:l,exposes:i})});n.length>0&&(n.push(new r),n.push(new s(/(.*)/,e=>{m[e.request]&&(e.request=m[e.request])})));export default n;
@@ -1,11 +1,10 @@
1
1
  import type { Compiler } from 'webpack';
2
- interface VirtualModulePluginOption {
2
+ export interface VirtualModulePluginOption {
3
3
  [key: string]: string | object;
4
4
  }
5
- declare class VirtualModuleWebpackPlugin {
5
+ export declare class VirtualModuleWebpackPlugin {
6
6
  private readonly options?;
7
7
  private hasTapped;
8
8
  constructor(options?: VirtualModulePluginOption);
9
9
  apply(compiler: Compiler): void;
10
10
  }
11
- export default VirtualModuleWebpackPlugin;
@@ -1 +1 @@
1
- import o from"webpack-virtual-modules";import{isLibrary as t}from"../process-env.mjs";import{resolveNodeModulesPath as e}from"../utils.mjs";import{comment as r,docs as m}from"../vm/docs.mjs";import{examples as p}from"../vm/example.mjs";import{locales as s}from"../vm/locales.mjs";import i from"../vm/modules.mjs";import{route as a}from"../vm/routes.mjs";export default class{constructor(o={}){this.options=o,this.hasTapped=!1}apply(l){let n=this.options,f=new o(i);function c(o,t){let r=e(o);f.writeModule(r,t||"")}f.apply(l),a.on("change",c),s.on("change",c),t&&(p.on("change",c),m.on("change",c),r.on("change",c)),l.hooks.compilation.tap("VirtualModuleWebpackPlugin",()=>{if(!this.hasTapped){for(let o in this.hasTapped=!0,n)if(Object.prototype.hasOwnProperty.call(n,o)){let t=n[o];c(o,"string"==typeof t?t:`export default ${JSON.stringify(t)}`)}for(let o of p)c(...o);for(let o of m)c(...o);for(let o of r)c(...o)}})}}
1
+ import o from"webpack-virtual-modules";import{isLibrary as t}from"../process-env.mjs";import{resolveNodeModulesPath as e}from"../utils/index.mjs";import{comment as r,docs as p}from"../vm/docs.mjs";import{examples as i}from"../vm/example.mjs";import{locales as m}from"../vm/locales.mjs";import s from"../vm/modules.mjs";import{route as l}from"../vm/routes.mjs";export class VirtualModuleWebpackPlugin{constructor(o={}){this.options=o,this.hasTapped=!1}apply(a){let n=this.options,f=new o(s);function c(o,t){let r=e(o);f.writeModule(r,t||"")}f.apply(a),l.on("change",c),m.on("change",c),t&&(i.on("change",c),p.on("change",c),r.on("change",c)),a.hooks.compilation.tap("VirtualModuleWebpackPlugin",()=>{if(!this.hasTapped){for(let o in this.hasTapped=!0,n)if(Object.prototype.hasOwnProperty.call(n,o)){let t=n[o];c(o,"string"==typeof t?t:`export default ${JSON.stringify(t)}`)}for(let o of i)c(...o);for(let o of p)c(...o);for(let o of r)c(...o)}})}}
@@ -1 +1 @@
1
- import e from"add-asset-html-webpack-plugin";import t from"html-webpack-plugin";import l from"webpack";import{CONFIG as o}from"./config.mjs";import i from"./html-plugin-option.mjs";import n from"./module-federation.mjs";import p from"./plugin/add-entry-attribute.mjs";import{isMicro as r}from"./process-env.mjs";let{AutomaticPrefetchPlugin:a,DefinePlugin:s,SourceMapDevToolPlugin:m,IgnorePlugin:c,WatchIgnorePlugin:h}=l,f=o.basename.split("/").filter(Boolean).length,d=`${Array(f).fill("..").join("/")+(f?"/":"")}404.html`,{pathSegmentsToKeep:u=f,path:w=d}=o.fixBrowserRouter||{},g=o.assetHtml.map(e=>({publicPath:"",...e})),j=[new h({paths:[/\.d\.ts$/]}),...n,new a,o.htmlPluginOption&&new t(i),o.fixBrowserRouter&&new t({filename:w,inject:!1,templateContent:()=>`<html lang="en"><head><title>${i.title}</title><script>const pathKeep = ${u||f};const l = window.location;l.replace(l.protocol + '//' + l.hostname + (l.port ? ':' + l.port : '') + l.pathname.split('/').slice(0, 1 + pathKeep).join('/') + '/?/' + l.pathname.slice(1).split('/').slice(pathKeep).join('/').replace(/&/g, '~and~') + (l.search ? '&' + l.search.slice(1).replace(/&/g, '~and~') : '') + l.hash);</script></head><body></body></html>`}),new e(g),r&&new p({test:/main\.bundle\.js$/}),new s({"process.env":JSON.stringify(o.env)}),new c({resourceRegExp:/\/__tests__\//}),o.sourceMap&&new m(o.sourceMap),...o.plugins].filter(e=>!!e);export default j;
1
+ import e from"add-asset-html-webpack-plugin";import t from"html-webpack-plugin";import l from"webpack";import{CONFIG as o}from"./config.mjs";import i from"./options/html-plugin-option.mjs";import{AddEntryAttributePlugin as r}from"./plugin/add-entry-attribute.mjs";import p from"./plugin/module-federation.mjs";import{VirtualModuleWebpackPlugin as n}from"./plugin/virtual-module.mjs";import{isMicro as a}from"./process-env.mjs";let{DefinePlugin:m,SourceMapDevToolPlugin:s,IgnorePlugin:c}=l,u=o.basename.split("/").filter(Boolean).length,h=`${Array(u).fill("..").join("/")+(u?"/":"")}404.html`,{pathSegmentsToKeep:f=u,path:d=h}=o.fixBrowserRouter||{},g=o.assetHtml.map(e=>({publicPath:"",...e})),w=[...p,new n(o.virtualModule),o.htmlPluginOption&&new t(i),o.fixBrowserRouter&&new t({filename:d,inject:!1,templateContent:()=>`<html lang="en"><head><title>${i.title}</title><script>const pathKeep = ${f||u};const l = window.location;l.replace(l.protocol + '//' + l.hostname + (l.port ? ':' + l.port : '') + l.pathname.split('/').slice(0, 1 + pathKeep).join('/') + '/?/' + l.pathname.slice(1).split('/').slice(pathKeep).join('/').replace(/&/g, '~and~') + (l.search ? '&' + l.search.slice(1).replace(/&/g, '~and~') : '') + l.hash);</script></head><body></body></html>`}),new e(g),a&&new r({test:/main\.bundle\.js$/}),new m({"process.env":JSON.stringify(o.env)}),new c({resourceRegExp:/\/__tests__\//}),o.sourceMap&&new s(o.sourceMap),...o.plugins].filter(e=>!!e);export default w;
@@ -1 +1 @@
1
- import t from"core-js-compat";import{getBrowsersTargets as r}from"./targets.mjs";export default function(){return t({targets:r(),version:"3.34"}).list}
1
+ import t from"core-js-compat";import{getBrowsersTargets as r}from"./targets.mjs";export default function(){return t({targets:r(),version:"3.35"}).list}
@@ -1 +1 @@
1
- function e(...t){let o=this,r=t.length,l=Array(r);for(let e=0;e<r;e++)l[e]=t[e];for(;o.firstChild;)o.removeChild(o.firstChild);l.forEach(function(e){o.appendChild("string"==typeof e?document.createTextNode(e):e)})}Element.prototype.replaceChildren||(Element.prototype.replaceChildren=e),ShadowRoot.prototype.replaceChildren||(ShadowRoot.prototype.replaceChildren=e);
1
+ function e(...t){let o=t.length,r=Array(o);for(let e=0;e<o;e++)r[e]=t[e];for(;this.firstChild;)this.removeChild(this.firstChild);for(let e=0,t=r.length;e<t;e++){let t=r[e];this.appendChild("string"==typeof t?document.createTextNode(t):t)}}Element.prototype.replaceChildren||(Element.prototype.replaceChildren=e),ShadowRoot.prototype.replaceChildren||(ShadowRoot.prototype.replaceChildren=e);
@@ -0,0 +1 @@
1
+ let r,t;import e from"browserslist";import{browserslistToTargets as s}from"lightningcss";import o from"../paths.mjs";export function getBrowsersTargets(){return r||(r=e(void 0,{path:o.programPath,env:process.env.NODE_ENV}).filter(r=>!r.endsWith(" TP"))),r}export function getLightningCssTargets(){return t||(t=s(getBrowsersTargets())),t}
@@ -18,4 +18,3 @@ export declare const PACKAGEVERSION: string;
18
18
  export declare const coreName: string;
19
19
  /** 是否为本地开发环境 */
20
20
  export declare const isDev: boolean;
21
- export declare const routeDir: string;
@@ -1 +1 @@
1
- import o from"./paths.mjs";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 SSR="true"===process.env.SSR;export const mainDirectory=isLibrary?"site":"src";export const jsxImportSource={react:"react",solid:"solid-js/h"}[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;export const routeDir=isLibrary?o.componentsPath:o.pagesPath;
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 SSR="true"===process.env.SSR;export const mainDirectory=isLibrary?"site":"src";export const jsxImportSource={react:"react",solid:"solid-js/h"}[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/rule.d.mts ADDED
@@ -0,0 +1,23 @@
1
+ declare const Rule: {
2
+ js: RegExp;
3
+ css: RegExp;
4
+ less: RegExp;
5
+ scss: RegExp;
6
+ wasm: RegExp;
7
+ txt: RegExp;
8
+ ico: RegExp;
9
+ svg: RegExp;
10
+ image: RegExp;
11
+ video: RegExp;
12
+ font: RegExp;
13
+ markdown: RegExp;
14
+ tsdoc: RegExp;
15
+ css_module: RegExp;
16
+ node_modules_css_module: RegExp;
17
+ no_parse: RegExp[];
18
+ node_modules: RegExp;
19
+ __tests__: RegExp;
20
+ dev_watch_ignored: RegExp;
21
+ worker_file: RegExp;
22
+ };
23
+ export default Rule;
package/lib/rule.mjs ADDED
@@ -0,0 +1 @@
1
+ export default{js:/\.(cj|mj|t|j)s(|x)$/i,css:/\.css$/i,less:/\.less$/i,scss:/\.(sa|sc)ss$/i,wasm:/\.wasm$/i,txt:/\.txt$/i,ico:/\.ico$/i,svg:/\.svg$/i,image:/\.(gif|png|jpe?g|webp)$/i,video:/\.(webm|mp4|ogv)$/i,font:/\.(woff2?|eot|ttf|otf)(\?.*)?$/i,markdown:/\.mdx?$/i,tsdoc:/^(?![._]).*(?<!\.test)\.(tsx?)$/,css_module:/(.*(?<!\.?global\.(le|c|sc|sa)ss)$)/i,node_modules_css_module:/(^(?!.*node_modules))(.*(?<!\.?global\.(le|c|sc|sa)ss)$)/i,no_parse:[/jquery|lodash|prismjs|prism\.js/,/react\.min\.js$/,/marked\.min\.js$/],node_modules:/node_modules/,__tests__:/(.+)\/__tests__\/(.+)/,dev_watch_ignored:/node_modules(?![\\/]@app)/,worker_file:/(?:webworker|worker)(\.|\b).*\.(js|ts)\b/};
@@ -0,0 +1,3 @@
1
+ import type { Compiler } from 'webpack';
2
+ declare function compilerListener(name: string, compiler: Compiler): Promise<unknown>;
3
+ export default compilerListener;
@@ -0,0 +1 @@
1
+ import o from"./log.mjs";export default function(r,e){return new Promise((n,t)=>{e.hooks.failed.tap(r,o=>{t(o)}),e.hooks.done.tap(r,r=>{r.hasErrors()||n(!0);for(let e=0,n=r.compilation.warnings.length;e<n;e++)o(r.compilation.warnings[e].message);for(let e=0,n=r.compilation.errors.length;e<n;e++)o(r.compilation.errors[e].message)})})}
@@ -0,0 +1,2 @@
1
+ declare function esm(templateStrings: TemplateStringsArray, ...substitutions: unknown[]): string;
2
+ export default esm;
@@ -0,0 +1 @@
1
+ export default function(t,...e){let r=t.raw[0];for(let a=0;a<e.length;a++)r+=e[a]+t.raw[a+1];return`data:text/javascript;base64,${Buffer.from(r).toString("base64")}`}
@@ -0,0 +1,2 @@
1
+ declare function hasPkg(name: string): boolean;
2
+ export default hasPkg;
@@ -0,0 +1 @@
1
+ import{fileExists as o}from"@moneko/mdx";import{resolveNodeModulesPath as m}from"./index.mjs";export default function(r){return o(m(`${r}/package.json`))}
@@ -1,8 +1,3 @@
1
- import type { Compiler } from 'webpack';
2
- export declare function esm(templateStrings: TemplateStringsArray, ...substitutions: unknown[]): string;
3
- export declare function log(msg: string | string[]): void;
4
- export declare function tfc(filepath: string): string;
5
- export declare function readConf(src: string, name: string): Promise<any>;
6
1
  export declare function toUpperCaseString(string: string): string;
7
2
  type ProgramPath<T extends string> = `${T extends string ? T : string}`;
8
3
  type NodeModulesPath<T> = ProgramPath<`node_modules/${T extends string ? T : string}`>;
@@ -24,5 +19,4 @@ export declare const realResolve: (url: string) => string;
24
19
  export declare function isObject(target: unknown): target is object;
25
20
  export declare function isFunction(target: unknown): target is (...args: unknown[]) => unknown;
26
21
  export declare function empty(): void;
27
- export declare function compilerListener(name: string, compiler: Compiler): Promise<unknown>;
28
22
  export {};
@@ -0,0 +1 @@
1
+ import{resolve as t}from"path";import e from"./resolver-sync.mjs";import o from"../paths.mjs";export function toUpperCaseString(t){return t?.replaceAll(/\b\w/g,t=>t.toUpperCase()).replaceAll(/\./g," ")}export function resolveProgramPath(e){return t(o.programPath,`./${e}`)}export const resolveNodeModulesPath=t=>`${o.nodeModules}/${t}`;export const realResolve=t=>e.resolveSync({},o.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(){}
@@ -0,0 +1,2 @@
1
+ declare function log(msg: string | string[]): void;
2
+ export default log;
@@ -0,0 +1,2 @@
1
+ import r from"readline";export default function e(o){if(Array.isArray(o))for(let r=0,t=o.length;r<t;r++)e(`${o[r]}
2
+ `);else r.cursorTo(process.stdout,0),process.stdout.write(o)}