@moneko/core 3.9.17 → 3.9.18-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) 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 -0
  6. package/lib/{common.d.ts → common.d.mts} +1 -1
  7. package/lib/common.mjs +1 -0
  8. package/lib/{config.d.ts → config.d.mts} +1 -1
  9. package/lib/config.mjs +1 -0
  10. package/lib/dev/config.d.mts +6 -0
  11. package/lib/dev/config.mjs +3 -0
  12. package/lib/dev/mock.d.mts +40 -0
  13. package/lib/dev/mock.mjs +1 -0
  14. package/lib/{net.d.ts → dev/net.d.mts} +1 -1
  15. package/lib/dev/net.mjs +1 -0
  16. package/lib/dev/proxy.d.mts +7 -0
  17. package/lib/dev/proxy.mjs +1 -0
  18. package/lib/dev.mjs +1 -0
  19. package/lib/index.d.mts +16 -0
  20. package/lib/index.mjs +1 -0
  21. package/lib/loader/ts-doc.d.cts +1 -1
  22. package/lib/module.config.d.mts +3 -0
  23. package/lib/module.config.mjs +1 -0
  24. package/lib/options/favicon.ico +0 -0
  25. package/lib/{html-plugin-option.d.ts → options/html-plugin-option.d.mts} +1 -1
  26. package/lib/options/html-plugin-option.mjs +11 -0
  27. package/lib/{minify.d.ts → options/js-minify.d.mts} +2 -2
  28. package/lib/options/js-minify.mjs +1 -0
  29. package/lib/options/jsx-dom-expressions.d.mts +10 -0
  30. package/lib/options/jsx-dom-expressions.mjs +1 -0
  31. package/lib/options/modify-vars.mjs +1 -0
  32. package/lib/options/split-chunk.d.mts +4 -0
  33. package/lib/options/split-chunk.mjs +1 -0
  34. package/lib/options/swcrc.d.mts +3 -0
  35. package/lib/options/swcrc.mjs +1 -0
  36. package/lib/{paths.d.ts → paths.d.mts} +4 -2
  37. package/lib/paths.mjs +1 -0
  38. package/lib/plugin/{add-entry-attribute.d.ts → add-entry-attribute.d.mts} +2 -3
  39. package/lib/plugin/add-entry-attribute.mjs +1 -0
  40. package/lib/plugin/{external-remotes.js → external-remotes.mjs} +1 -1
  41. package/lib/plugin/{lightningcss-plugin.d.ts → lightningcss-plugin.d.mts} +2 -2
  42. package/lib/plugin/lightningcss-plugin.mjs +1 -0
  43. package/lib/plugin/module-federation.mjs +1 -0
  44. package/lib/plugin/override-resolve.mjs +1 -0
  45. package/lib/plugin/{virtual-module.d.ts → virtual-module.d.mts} +2 -3
  46. package/lib/plugin/virtual-module.mjs +1 -0
  47. package/lib/plugins.config.mjs +1 -0
  48. package/lib/polyfills/polyfills.mjs +1 -0
  49. package/lib/polyfills/replace-children.mjs +1 -0
  50. package/lib/polyfills/targets.mjs +1 -0
  51. package/lib/{process-env.d.ts → process-env.d.mts} +2 -2
  52. package/lib/process-env.mjs +1 -0
  53. package/lib/rule.d.mts +23 -0
  54. package/lib/rule.mjs +1 -0
  55. package/lib/utils/compiler-listener.d.mts +3 -0
  56. package/lib/utils/compiler-listener.mjs +1 -0
  57. package/lib/utils/esm.d.mts +2 -0
  58. package/lib/utils/esm.mjs +1 -0
  59. package/lib/utils/has-pkg.d.mts +2 -0
  60. package/lib/utils/has-pkg.mjs +1 -0
  61. package/lib/{utils.d.ts → utils/index.d.mts} +0 -4
  62. package/lib/utils/index.mjs +1 -0
  63. package/lib/utils/log.d.mts +2 -0
  64. package/lib/utils/log.mjs +2 -0
  65. package/lib/utils/match-path.d.mts +22 -0
  66. package/lib/utils/match-path.mjs +1 -0
  67. package/lib/utils/read-conf.d.mts +2 -0
  68. package/lib/utils/read-conf.mjs +1 -0
  69. package/lib/utils/run.d.mts +2 -0
  70. package/lib/utils/run.mjs +1 -0
  71. package/lib/utils/seo.mjs +1 -0
  72. package/lib/{svg-to-data-uri.js → utils/svg-to-data-uri.mjs} +1 -1
  73. package/lib/utils/tfc.d.mts +2 -0
  74. package/lib/utils/tfc.mjs +1 -0
  75. package/lib/vm/coverage.mjs +1 -0
  76. package/lib/vm/{docs.d.ts → docs.d.mts} +1 -1
  77. package/lib/vm/docs.mjs +1 -0
  78. package/lib/vm/{example.d.ts → example.d.mts} +1 -1
  79. package/lib/vm/example.mjs +1 -0
  80. package/lib/vm/generate-doc.mjs +1 -0
  81. package/lib/{info.d.ts → vm/info.d.mts} +4 -3
  82. package/lib/vm/info.mjs +1 -0
  83. package/lib/vm/{locales.d.ts → locales.d.mts} +1 -1
  84. package/lib/vm/locales.mjs +2 -0
  85. package/lib/vm/modules.d.mts +17 -0
  86. package/lib/vm/modules.mjs +1 -0
  87. package/lib/vm/{routes.d.ts → routes.d.mts} +1 -1
  88. package/lib/vm/routes.mjs +1 -0
  89. package/package.json +28 -22
  90. package/typings/global.d.ts +58 -157
  91. package/lib/common.js +0 -1
  92. package/lib/config.js +0 -1
  93. package/lib/dev.js +0 -3
  94. package/lib/has-pkg.d.ts +0 -1
  95. package/lib/has-pkg.js +0 -1
  96. package/lib/html-plugin-option.js +0 -1
  97. package/lib/index.d.ts +0 -8
  98. package/lib/index.js +0 -1
  99. package/lib/info.js +0 -1
  100. package/lib/loader/hot-router.cjs +0 -1
  101. package/lib/minify.js +0 -1
  102. package/lib/modify-vars.js +0 -1
  103. package/lib/module-federation.js +0 -1
  104. package/lib/module.config.d.ts +0 -3
  105. package/lib/module.config.js +0 -1
  106. package/lib/net.js +0 -1
  107. package/lib/paths.js +0 -1
  108. package/lib/plugin/add-entry-attribute.js +0 -1
  109. package/lib/plugin/lightningcss-plugin.js +0 -1
  110. package/lib/plugin/override-resolve.js +0 -1
  111. package/lib/plugin/virtual-module.js +0 -1
  112. package/lib/plugins.config.js +0 -1
  113. package/lib/polyfills/replace-children.js +0 -1
  114. package/lib/polyfills.js +0 -1
  115. package/lib/process-env.js +0 -1
  116. package/lib/prod.d.ts +0 -1
  117. package/lib/prod.js +0 -1
  118. package/lib/seo.js +0 -1
  119. package/lib/swcrc.d.ts +0 -4
  120. package/lib/swcrc.js +0 -1
  121. package/lib/targets.js +0 -1
  122. package/lib/tsloader.config.d.ts +0 -8
  123. package/lib/tsloader.config.js +0 -1
  124. package/lib/utils.js +0 -2
  125. package/lib/vm/coverage.js +0 -1
  126. package/lib/vm/docs.js +0 -1
  127. package/lib/vm/example.js +0 -1
  128. package/lib/vm/generate-doc.js +0 -1
  129. package/lib/vm/locales.js +0 -2
  130. package/lib/vm/routes.js +0 -1
  131. package/template/favicon.ico +0 -0
  132. package/template/index.html +0 -25
  133. /package/lib/{dev.d.ts → build.d.mts} +0 -0
  134. /package/lib/{loader/hot-router.d.cts → dev.d.mts} +0 -0
  135. /package/lib/{modify-vars.d.ts → options/modify-vars.d.mts} +0 -0
  136. /package/lib/plugin/{done.d.ts → done.d.mts} +0 -0
  137. /package/lib/plugin/{done.js → done.mjs} +0 -0
  138. /package/lib/plugin/{external-remotes.d.ts → external-remotes.d.mts} +0 -0
  139. /package/lib/{module-federation.d.ts → plugin/module-federation.d.mts} +0 -0
  140. /package/lib/plugin/{override-resolve.d.ts → override-resolve.d.mts} +0 -0
  141. /package/lib/{plugins.config.d.ts → plugins.config.d.mts} +0 -0
  142. /package/lib/{polyfills.d.ts → polyfills/polyfills.d.mts} +0 -0
  143. /package/lib/{targets.d.ts → polyfills/targets.d.mts} +0 -0
  144. /package/lib/{os-tmp-dir.d.ts → utils/os-tmp-dir.d.mts} +0 -0
  145. /package/lib/{os-tmp-dir.js → utils/os-tmp-dir.mjs} +0 -0
  146. /package/lib/{reactive-object.d.ts → utils/reactive-object.d.mts} +0 -0
  147. /package/lib/{reactive-object.js → utils/reactive-object.mjs} +0 -0
  148. /package/lib/{resolver-sync.d.ts → utils/resolver-sync.d.mts} +0 -0
  149. /package/lib/{resolver-sync.js → utils/resolver-sync.mjs} +0 -0
  150. /package/lib/{seo.d.ts → utils/seo.d.mts} +0 -0
  151. /package/lib/{svg-to-data-uri.d.ts → utils/svg-to-data-uri.d.mts} +0 -0
  152. /package/lib/vm/{coverage.d.ts → coverage.d.mts} +0 -0
  153. /package/lib/vm/{generate-doc.d.ts → generate-doc.d.mts} +0 -0
  154. /package/lib/vm/{utils.d.ts → utils.d.mts} +0 -0
  155. /package/lib/vm/{utils.js → utils.mjs} +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 ADDED
@@ -0,0 +1 @@
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)});
@@ -1,3 +1,3 @@
1
1
  import type { Configuration } from 'webpack';
2
2
  export declare const outputConfig: Configuration['output'];
3
- export declare const clientConfig: Configuration;
3
+ export declare const commonConfig: Configuration;
package/lib/common.mjs ADDED
@@ -0,0 +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 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};
@@ -1,3 +1,3 @@
1
- import type { ConfigType } from '.';
1
+ import type { ConfigType } from './index.mjs';
2
2
  export declare const CONFIG: ConfigType;
3
3
  export declare const PUBLICPATH: string;
package/lib/config.mjs ADDED
@@ -0,0 +1 @@
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,6 @@
1
+ import webpack from 'webpack';
2
+ export declare const PORT: number;
3
+ export declare function devLog(err?: Error | null, stats?: webpack.Stats): void;
4
+ export declare const headers: {
5
+ 'Access-Control-Allow-Origin': string;
6
+ };
@@ -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(): string | undefined;
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 ADDED
@@ -0,0 +1 @@
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()});
@@ -0,0 +1,16 @@
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';
7
+ export type { MdxOptions } from '@moneko/mdx';
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';
16
+ export type * from '../typings/global.js';
package/lib/index.mjs ADDED
@@ -0,0 +1 @@
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.js';
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>>;
@@ -0,0 +1,3 @@
1
+ import type { ModuleOptions } from 'webpack';
2
+ declare const _default: (ssr: boolean) => ModuleOptions;
3
+ export default _default;
@@ -0,0 +1 @@
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 '.';
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||{}));
@@ -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 ADDED
@@ -0,0 +1 @@
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;
@@ -0,0 +1 @@
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 {};
@@ -0,0 +1 @@
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;
@@ -0,0 +1 @@
1
+ import{relative as e}from"path";import{fileExists as t}from"@moneko/mdx";import r from"../paths.mjs";let a="OverrideResolverPlugin";export default class{constructor(e){this.options=e}apply(i){let{override:o,original:s}=this.options;if(o&&s){let l=`./${e(r.programPath,s)}`,p=`./${e(r.programPath,o)}`;i.getHook("existing-file").tapAsync(a,(e,r,n)=>{let h=e.request||e.path;if(h&&h.startsWith(s)&&e.relativePath){let m=h.replace(s,o);if(t(m)){let t=e.relativePath.replace(l,p);return Object.assign(e,{path:m,relativePath:t,__innerRequest_relativePath:t,__innerRequest:t}),i.doResolve("resolved",e,`${a} 使用目标模块${o}`,r,n)}}return 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;
@@ -0,0 +1 @@
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)}})}}
@@ -0,0 +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"./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;
@@ -0,0 +1 @@
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}
@@ -0,0 +1 @@
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}
@@ -1,4 +1,4 @@
1
- import type { AppType, Framework } from '.';
1
+ import type { AppType, Framework } from './index.mjs';
2
2
  export declare const APPTYPE: AppType;
3
3
  export declare const FRAMEWORK: Framework;
4
4
  export declare const isLibrary: boolean;
@@ -6,6 +6,7 @@ export declare const isMicro: boolean;
6
6
  export declare const isMobile: boolean;
7
7
  export declare const isReact: boolean;
8
8
  export declare const isSolid: boolean;
9
+ export declare const SSR: boolean;
9
10
  /** 项目主要文件夹 */
10
11
  export declare const mainDirectory: string;
11
12
  export declare const jsxImportSource: string;
@@ -17,4 +18,3 @@ export declare const PACKAGEVERSION: string;
17
18
  export declare const coreName: string;
18
19
  /** 是否为本地开发环境 */
19
20
  export declare const isDev: boolean;
20
- export declare const routeDir: string;
@@ -0,0 +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 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|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,7 +1,3 @@
1
- export declare function esm(templateStrings: TemplateStringsArray, ...substitutions: unknown[]): string;
2
- export declare function log(msg: string | string[]): void;
3
- export declare function tfc(filepath: string): string;
4
- export declare function readConf(src: string, name: string): Promise<any>;
5
1
  export declare function toUpperCaseString(string: string): string;
6
2
  type ProgramPath<T extends string> = `${T extends string ? T : string}`;
7
3
  type NodeModulesPath<T> = ProgramPath<`node_modules/${T extends string ? T : string}`>;
@@ -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)}
@@ -0,0 +1,22 @@
1
+ type MatchPath = {
2
+ path: string;
3
+ params: Record<string, unknown>;
4
+ };
5
+ /**
6
+ * RESTful 风格api
7
+ * @param {String} pattern pattern
8
+ * @param {String} path paths
9
+ * @example
10
+ * const pattern = '/users/:id';
11
+ * const pathToMatch = '/users/123';
12
+ * const result = matchPath(pattern, pathToMatch);
13
+ * if (result) {
14
+ * console.log('Match found:', result);
15
+ * console.log('Params:', result.params);
16
+ * } else {
17
+ * console.log('No match found.');
18
+ * }
19
+ * @returns {MatchPath|null} MatchPath
20
+ */
21
+ declare function matchPath(pattern: string, path: string): MatchPath | null;
22
+ export default matchPath;
@@ -0,0 +1 @@
1
+ export default function(t,l){let e=t.split("/"),n=l.split("/");if(e.length!==n.length)return null;let r={};for(let t=0;t<e.length;t++){let l=e[t],i=n[t];if(l.startsWith(":"))r[l.slice(1)]=i;else if(l!==i)return null}return{path:l,params:r}}
@@ -0,0 +1,2 @@
1
+ declare function readConf(src: string, name: string): Promise<any>;
2
+ export default readConf;
@@ -0,0 +1 @@
1
+ import{saveFileSync as m}from"@moneko/mdx";import t from"./tfc.mjs";import o from"../paths.mjs";export default function(r,e){let f=`${o.cachePath}/${e}.mjs`;return m(f,t(r)),import(f)}
@@ -0,0 +1,2 @@
1
+ declare function run(fileContent: string, filePath: string): any;
2
+ export default run;
@@ -0,0 +1 @@
1
+ import e from"vm";export default function(n,r){return e.runInThisContext(n||"",{filename:r,lineOffset:0,columnOffset:0,displayErrors:!0})}
@@ -0,0 +1 @@
1
+ import{join as m}from"path";import{saveFileSync as o,scanRouter as t,sitemap as r}from"@moneko/mdx";import{resolveProgramPath as e}from"./index.mjs";import{outputConfig as p}from"../common.mjs";import{CONFIG as i}from"../config.mjs";import{routeDir as s}from"../paths.mjs";import{isLibrary as f}from"../process-env.mjs";export default(()=>{let{domain:n,nojekyll:a,path:j}=i.seo||{},l=j&&e(j)||p?.path;if(!n||!l)return;let x=`https://${n}${i.basename}`;o(m(l,"CNAME"),n),o(m(l,"robots"),`Sitemap: ${x}/sitemap.txt`),o(m(l,"sitemap.txt"),r(s,x,t(s,f)).join("\n")),a&&o(m(l,".nojekyll"),"")});
@@ -1 +1 @@
1
- let f={aqua:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,azure:/#f0ffff(ff)?(?!\w)/gi,beige:/#f5f5dc(ff)?(?!\w)/gi,bisque:/#ffe4c4(ff)?(?!\w)/gi,black:/#000000(ff)?(?!\w)|#000(f)?(?!\w)/gi,blue:/#0000ff(ff)?(?!\w)|#00f(f)?(?!\w)/gi,brown:/#a52a2a(ff)?(?!\w)/gi,coral:/#ff7f50(ff)?(?!\w)/gi,cornsilk:/#fff8dc(ff)?(?!\w)/gi,crimson:/#dc143c(ff)?(?!\w)/gi,cyan:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,darkblue:/#00008b(ff)?(?!\w)/gi,darkcyan:/#008b8b(ff)?(?!\w)/gi,darkgrey:/#a9a9a9(ff)?(?!\w)/gi,darkred:/#8b0000(ff)?(?!\w)/gi,deeppink:/#ff1493(ff)?(?!\w)/gi,dimgrey:/#696969(ff)?(?!\w)/gi,gold:/#ffd700(ff)?(?!\w)/gi,green:/#008000(ff)?(?!\w)/gi,grey:/#808080(ff)?(?!\w)/gi,honeydew:/#f0fff0(ff)?(?!\w)/gi,hotpink:/#ff69b4(ff)?(?!\w)/gi,indigo:/#4b0082(ff)?(?!\w)/gi,ivory:/#fffff0(ff)?(?!\w)/gi,khaki:/#f0e68c(ff)?(?!\w)/gi,lavender:/#e6e6fa(ff)?(?!\w)/gi,lime:/#00ff00(ff)?(?!\w)|#0f0(f)?(?!\w)/gi,linen:/#faf0e6(ff)?(?!\w)/gi,maroon:/#800000(ff)?(?!\w)/gi,moccasin:/#ffe4b5(ff)?(?!\w)/gi,navy:/#000080(ff)?(?!\w)/gi,oldlace:/#fdf5e6(ff)?(?!\w)/gi,olive:/#808000(ff)?(?!\w)/gi,orange:/#ffa500(ff)?(?!\w)/gi,orchid:/#da70d6(ff)?(?!\w)/gi,peru:/#cd853f(ff)?(?!\w)/gi,pink:/#ffc0cb(ff)?(?!\w)/gi,plum:/#dda0dd(ff)?(?!\w)/gi,purple:/#800080(ff)?(?!\w)/gi,red:/#ff0000(ff)?(?!\w)|#f00(f)?(?!\w)/gi,salmon:/#fa8072(ff)?(?!\w)/gi,seagreen:/#2e8b57(ff)?(?!\w)/gi,seashell:/#fff5ee(ff)?(?!\w)/gi,sienna:/#a0522d(ff)?(?!\w)/gi,silver:/#c0c0c0(ff)?(?!\w)/gi,skyblue:/#87ceeb(ff)?(?!\w)/gi,snow:/#fffafa(ff)?(?!\w)/gi,tan:/#d2b48c(ff)?(?!\w)/gi,teal:/#008080(ff)?(?!\w)/gi,thistle:/#d8bfd8(ff)?(?!\w)/gi,tomato:/#ff6347(ff)?(?!\w)/gi,violet:/#ee82ee(ff)?(?!\w)/gi,wheat:/#f5deb3(ff)?(?!\w)/gi,white:/#ffffff(ff)?(?!\w)|#fff(f)?(?!\w)/gi};export default function(e){let i;if("string"!=typeof e)throw TypeError(`Expected a string, but received ${typeof e}`);let g=(i=(65279===e.charCodeAt(0)?e.slice(1):e).trim().replace(/\s+/g," "),Object.keys(f).forEach(function(e){f[e].test(i)&&(i=i.replace(f[e],e))}),i).replace(/"/g,"'");return`data:image/svg+xml,${encodeURIComponent(g).replace(/%[\dA-F]{2}/g,function(f){switch(f){case"%20":return" ";case"%3D":return"=";case"%3A":return":";case"%2F":return"/";default:return f.toLowerCase()}})}`}
1
+ let f={aqua:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,azure:/#f0ffff(ff)?(?!\w)/gi,beige:/#f5f5dc(ff)?(?!\w)/gi,bisque:/#ffe4c4(ff)?(?!\w)/gi,black:/#000000(ff)?(?!\w)|#000(f)?(?!\w)/gi,blue:/#0000ff(ff)?(?!\w)|#00f(f)?(?!\w)/gi,brown:/#a52a2a(ff)?(?!\w)/gi,coral:/#ff7f50(ff)?(?!\w)/gi,cornsilk:/#fff8dc(ff)?(?!\w)/gi,crimson:/#dc143c(ff)?(?!\w)/gi,cyan:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,darkblue:/#00008b(ff)?(?!\w)/gi,darkcyan:/#008b8b(ff)?(?!\w)/gi,darkgrey:/#a9a9a9(ff)?(?!\w)/gi,darkred:/#8b0000(ff)?(?!\w)/gi,deeppink:/#ff1493(ff)?(?!\w)/gi,dimgrey:/#696969(ff)?(?!\w)/gi,gold:/#ffd700(ff)?(?!\w)/gi,green:/#008000(ff)?(?!\w)/gi,grey:/#808080(ff)?(?!\w)/gi,honeydew:/#f0fff0(ff)?(?!\w)/gi,hotpink:/#ff69b4(ff)?(?!\w)/gi,indigo:/#4b0082(ff)?(?!\w)/gi,ivory:/#fffff0(ff)?(?!\w)/gi,khaki:/#f0e68c(ff)?(?!\w)/gi,lavender:/#e6e6fa(ff)?(?!\w)/gi,lime:/#00ff00(ff)?(?!\w)|#0f0(f)?(?!\w)/gi,linen:/#faf0e6(ff)?(?!\w)/gi,maroon:/#800000(ff)?(?!\w)/gi,moccasin:/#ffe4b5(ff)?(?!\w)/gi,navy:/#000080(ff)?(?!\w)/gi,oldlace:/#fdf5e6(ff)?(?!\w)/gi,olive:/#808000(ff)?(?!\w)/gi,orange:/#ffa500(ff)?(?!\w)/gi,orchid:/#da70d6(ff)?(?!\w)/gi,peru:/#cd853f(ff)?(?!\w)/gi,pink:/#ffc0cb(ff)?(?!\w)/gi,plum:/#dda0dd(ff)?(?!\w)/gi,purple:/#800080(ff)?(?!\w)/gi,red:/#ff0000(ff)?(?!\w)|#f00(f)?(?!\w)/gi,salmon:/#fa8072(ff)?(?!\w)/gi,seagreen:/#2e8b57(ff)?(?!\w)/gi,seashell:/#fff5ee(ff)?(?!\w)/gi,sienna:/#a0522d(ff)?(?!\w)/gi,silver:/#c0c0c0(ff)?(?!\w)/gi,skyblue:/#87ceeb(ff)?(?!\w)/gi,snow:/#fffafa(ff)?(?!\w)/gi,tan:/#d2b48c(ff)?(?!\w)/gi,teal:/#008080(ff)?(?!\w)/gi,thistle:/#d8bfd8(ff)?(?!\w)/gi,tomato:/#ff6347(ff)?(?!\w)/gi,violet:/#ee82ee(ff)?(?!\w)/gi,wheat:/#f5deb3(ff)?(?!\w)/gi,white:/#ffffff(ff)?(?!\w)|#fff(f)?(?!\w)/gi};export default function(e){if("string"!=typeof e)throw TypeError(`Expected a string, but received ${typeof e}`);let i=(function(e){let i=e,g=Object.keys(f);for(let e=0,w=g.length;e<w;e++){let w=g[e];f[w].test(i)&&(i=i.replace(f[w],w))}return i})((65279===e.charCodeAt(0)?e.slice(1):e).trim().replaceAll(/\s+/g," ")).replaceAll('"',"'");return`data:image/svg+xml,${encodeURIComponent(i).replaceAll(/%[\dA-F]{2}/g,function(f){switch(f){case"%20":return" ";case"%3D":return"=";case"%3A":return":";case"%2F":return"/";default:return f.toLowerCase()}})}`}
@@ -0,0 +1,2 @@
1
+ declare function tfc(filepath: string): string;
2
+ export default tfc;
@@ -0,0 +1 @@
1
+ import{transformFileSync as e}from"@swc/core";let o={inputSourceMap:!1,sourceMaps:!1,module:{type:"es6"},jsc:{parser:{syntax:"typescript"},loose:!1}};export default function(r){return e(r,o).code||"{}"}
@@ -0,0 +1 @@
1
+ import{fileExists as e,loadFileSync as t}from"@moneko/mdx";import{Parser as r}from"xml2js";import{PACKAGENAME as o}from"../process-env.mjs";export default function(i){let a={},n="export default {}";if(e(i))try{let e=t(i);(0,new r({explicitArray:!1,async:!1}).parseString)(e,(e,t)=>{if(!e){let{metrics:e,package:r}=t.coverage.project;Object.assign(a,{[o]:e.$});for(let e=0,t=r.length;e<t;e++){let t=r[e];Object.assign(a,{[t.$.name]:t.metrics.$})}}n=`export default ${JSON.stringify(a)}`})}catch(e){}return n}