@moneko/core 3.0.0-beta.80 → 3.0.0-beta.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/app.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ declare const app: {
2
+ base: string;
3
+ designSize: number;
4
+ routerMode: "browser" | "hash" | "memory";
5
+ mode: "csr" | "ssr";
6
+ name: string;
7
+ description: string | undefined;
8
+ version: string;
9
+ author: {
10
+ name: string | undefined;
11
+ email: string | undefined;
12
+ url: string | undefined;
13
+ };
14
+ repository: {
15
+ type: string | undefined;
16
+ url: string | undefined;
17
+ directory: string | undefined;
18
+ };
19
+ locales: boolean;
20
+ favicon: string | false | undefined;
21
+ prefixCls: string | undefined;
22
+ theme: import("./index.js").Theme | undefined;
23
+ type: import("./index.js").AppType;
24
+ persist: boolean;
25
+ projectName: string;
26
+ iconfont: {
27
+ scriptUrl?: string | string[] | undefined;
28
+ extraCommonProps?: Record<string, any> | undefined;
29
+ } | undefined;
30
+ };
31
+ export default app;
package/lib/app.js ADDED
@@ -0,0 +1 @@
1
+ import o from"fs";import e from"path";import{CONFIG as r}from"./common.js";import i from"./html-plugin-option.js";import{APPTYPE as t,PACKAGENAME as s,PROGRAMPATH as m,programInfo as n}from"./process-env.js";import{toUpperCaseString as p}from"./utils.js";let a="library"===t?"site":"src",f={base:r.routeBaseName,designSize:r.designSize,routerMode:r.routerMode,mode:r.mode,name:n.name,description:n.description,version:n.version,author:n.author,repository:n.repository,locales:o.existsSync(e.join(m,`./${a}/locales`)),favicon:i.favicon,prefixCls:r.prefixCls,theme:r.theme,type:t,persist:o.existsSync(e.join(m,`./${a}/persist.ts`)),projectName:JSON.stringify(p(s)),iconfont:r.iconfont};export default f;
package/lib/cleanup.js CHANGED
@@ -1 +1 @@
1
- import{existsSync as o,readdirSync as t,rmdirSync as r,statSync as c,unlinkSync as n}from"fs";import{join as s}from"path";import{apiCacheDir as e,frameworkCacheDir as i}from"./process-env.js";function f(){try{n(s(i,"example.js"))}catch(o){}try{n(s(i,"route.js"))}catch(o){}!function e(i){o(i)&&(t(i).forEach(o=>{let t=s(i,o);c(t).isDirectory()?e(t):n(t)}),r(i))}(e)}process.on("SIGINT",function(){f()}),process.on("exit",function(){f()});
1
+ import{existsSync as o,readdirSync as r,rmdirSync as t,statSync as f,unlinkSync as i}from"fs";import{join as s}from"path";import{cacheDir as c}from"./process-env.js";process.on("SIGINT",function(){!function c(m){o(m)&&(r(m).forEach(o=>{let r=s(m,o);f(r).isDirectory()?c(r):i(r)}),t(m))}(c)});
package/lib/common.js CHANGED
@@ -1,4 +1,4 @@
1
- import e from"fs";import t from"path";import o from"readline";import s from"chalk";import{merge as i}from"webpack-merge";import{APPTYPE as n,CUSTOMCONFIG as r,FRAMEWORK as l,PROGRAMPATH as a,jsxImportSource as c,pkgName as m}from"./process-env.js";import{isFunction as p,readConf as u}from"./utils.js";export const ENTRYPATH={mobile:"mobile",site:"site","back-stage":"back-stage","single-spa":"single-spa",library:"library","single-component":"single-component"};let d=[`@moneko/${l}`,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design"],h={chunks:"all",minSize:1024,minChunks:1,cacheGroups:{route:{test:/[\\/].git[\\/]router/,priority:-10,reuseExistingChunk:!0,name:"route"},example:{test:/[\\/].git[\\/]example/,priority:-10,reuseExistingChunk:!0,name:"example"}}};"single-component"===n&&(h=!1);let g={seo:!1,mode:"csr",compiler:"swc",bundleAnalyzer:{analyzerMode:"static",reportFilename:"report.html",openAnalyzer:!1},entry:{},minifier:{js:{},css:{}},sourceMap:{filename:"[file].map",publicPath:""},env:{},routeBaseName:"/",publicPath:"/",designSize:"mobile"===n?375:1680,fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:{},layoutSider:{},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:`${a}/node_modules/.temp_cache`,devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:!1,compress:!1},htmlPluginOption:{template:`./node_modules/${m}/template/index.html`,favicon:`./node_modules/${m}/template/favicon.ico`,tags:[]},assetHtml:[],routerMode:"browser",fixBrowserRouter:!1,plugins:[],splitChunk:h,runtimeChunk:"single-component"!==n&&"single",moduleFederation:[],rulesInclude:{less:d,css:d,js:d,media:d,fonts:d},mdx:{jsxImportSource:c,useDynamicImport:!0,remarkPlugins:[],rehypePlugins:[]},jsxDomExpressions:{moduleName:"solid-js/web",builtIns:["For","Show","Switch","Match","Suspense","SuspenseList","Portal","Index","Dynamic","ErrorBoundary"],contextToCustomElements:!0,wrapConditionals:!0,generate:"dom",hydratable:!1},bar:{name:"编译中",color:"#6f42c1"}};export const log=e=>{o.cursorTo(process.stdout,0),process.stdout.write(e)};let f=g,y=null,x={},b={};try{y=t.join(a,"./config/index.ts"),e.accessSync(y,e.constants.R_OK)}catch(e){y=null}if(y)try{let e=(await u(y,"index")).default;x=p(e)?e(process):e}catch(e){process.stdout.write(s.red(e))}if(r){let o=null;try{o=t.join(a,`./config/${r}.ts`),e.accessSync(o,e.constants.R_OK)}catch(e){o=null}if(null!==o)try{let e=(await u(o,r)).default;b=p(e)?e(process):e}catch(e){process.stdout.write(s.red(e))}}"tsc"===(f=i(f,x,b)).compiler&&f.minifier&&(f.minifier.js||Object.assign(f.minifier,{js:{type:"terser"}}),f.minifier.css||Object.assign(f.minifier,{css:{type:"cssnano"}})),!1===f.devtool&&(f.sourceMap=!1),!1===f.sourceMap&&(f.devtool=!1),f.fixBrowserRouter&&f.htmlPluginOption&&(f.htmlPluginOption.tags||(f.htmlPluginOption.tags=[]),f.htmlPluginOption.tags.push({textContent:`
1
+ import e from"fs";import t from"path";import o from"readline";import s from"chalk";import{merge as i}from"webpack-merge";import{APPTYPE as n,CUSTOMCONFIG as r,FRAMEWORK as l,PROGRAMPATH as a,jsxImportSource as c,pkgName as m}from"./process-env.js";import{isFunction as p,readConf as u}from"./utils.js";export const ENTRYPATH={mobile:"mobile",site:"site","back-stage":"back-stage","single-spa":"single-spa",library:"library","single-component":"single-component"};let d=[`@moneko/${l}`,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design","env-flags","@app"],h={chunks:"all",minSize:1024,minChunks:1,cacheGroups:{route:{test:/[\\/].git[\\/]router/,priority:-10,reuseExistingChunk:!0,name:"route"},example:{test:/[\\/].git[\\/]example/,priority:-10,reuseExistingChunk:!0,name:"example"}}};"single-component"===n&&(h=!1);let g={seo:!1,mode:"csr",compiler:"swc",bundleAnalyzer:{analyzerMode:"static",reportFilename:"report.html",openAnalyzer:!1},entry:{},minifier:{js:{},css:{}},sourceMap:{filename:"[file].map",publicPath:""},env:{},routeBaseName:"/",publicPath:"/",designSize:"mobile"===n?375:1680,fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:{},layoutSider:{},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:`${a}/node_modules/.temp_cache`,devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:!1,compress:!1},htmlPluginOption:{template:`./node_modules/${m}/template/index.html`,favicon:`./node_modules/${m}/template/favicon.ico`,tags:[]},assetHtml:[],routerMode:"browser",fixBrowserRouter:!1,plugins:[],splitChunk:h,runtimeChunk:"single-component"!==n&&"single",moduleFederation:[],rulesInclude:{less:d,css:d,js:d,media:d,fonts:d},mdx:{jsxImportSource:c,useDynamicImport:!0,remarkPlugins:[],rehypePlugins:[]},jsxDomExpressions:{moduleName:"solid-js/web",builtIns:["For","Show","Switch","Match","Suspense","SuspenseList","Portal","Index","Dynamic","ErrorBoundary"],contextToCustomElements:!0,wrapConditionals:!0,generate:"dom",hydratable:!1},bar:{name:"编译中",color:"#6f42c1"}};export const log=e=>{o.cursorTo(process.stdout,0),process.stdout.write(e)};let f=g,y=null,x={},b={};try{y=t.join(a,"./config/index.ts"),e.accessSync(y,e.constants.R_OK)}catch(e){y=null}if(y)try{let e=(await u(y,"index")).default;x=p(e)?e(process):e}catch(e){process.stdout.write(s.red(e))}if(r){let o=null;try{o=t.join(a,`./config/${r}.ts`),e.accessSync(o,e.constants.R_OK)}catch(e){o=null}if(null!==o)try{let e=(await u(o,r)).default;b=p(e)?e(process):e}catch(e){process.stdout.write(s.red(e))}}"tsc"===(f=i(f,x,b)).compiler&&f.minifier&&(f.minifier.js||Object.assign(f.minifier,{js:{type:"terser"}}),f.minifier.css||Object.assign(f.minifier,{css:{type:"cssnano"}})),!1===f.devtool&&(f.sourceMap=!1),!1===f.sourceMap&&(f.devtool=!1),f.fixBrowserRouter&&f.htmlPluginOption&&(f.htmlPluginOption.tags||(f.htmlPluginOption.tags=[]),f.htmlPluginOption.tags.push({textContent:`
2
2
  (function(l) {
3
3
  if (l.search[1] === '/' ) {
4
4
  var decoded = l.search.slice(1).split('&').map(function(s) {
@@ -0,0 +1,6 @@
1
+ declare const define: {
2
+ 'process.env': {
3
+ NODE_ENV: string | undefined;
4
+ };
5
+ };
6
+ export default define;
package/lib/define.js ADDED
@@ -0,0 +1 @@
1
+ import{CONFIG as o}from"./common.js";import{NODE_ENV as e}from"./process-env.js";let r={"process.env":{NODE_ENV:e,...o.env}};export default r;
package/lib/docs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const envApi: Record<string, string>;
package/lib/docs.js ADDED
@@ -0,0 +1 @@
1
+ import{statSync as e}from"fs";import{dirname as t,join as o}from"path";import{watch as r}from"chokidar";import n from"./generate-api.js";import{APPTYPE as p,FRAMEWORK as i}from"./process-env.js";import{resolveNodeModulesPath as s,resolveProgramPath as l}from"./utils.js";import{vm as m}from"./virtual-module-plugin.js";import{alias as a}from"./webpack.common.js";let c="@app/md";export const envApi={};let d={[c]:{}},f={react:"createElement","solid-js":"createComponent"}[i],u=`() => ${f}(SuspenseComp, { comp: $1 })`,$=`import { ${f} } from "${i}";import { SuspenseComp } from "@moneko/${i}";`;function j(e,r){let p=e.replace(RegExp(`^${a["@pkg"]}`),""),i=t(p).replace(/^\//,""),l=[c,i].join("/"),j=p.split("/").pop()?.replace(/\.tsx?/,".md");if(!j)return;d[c][i]||(d[c][i]={});let g=o(l,j);if("deleted"===r)d[c][i][j]&&delete d[c][i][j];else{let t=n(e);d[g]=t,t?d[c][i][j]=`rr(() => import(/* webpackChunkName: '${g}' */'${g}?raw').then((res) => ({default: ${f}(Dynamic, {text: res.default, component: 'n-md'})})))rr`:d[c][i][j]&&delete d[c][i][j]}let h={};for(let e in d[c])Object.prototype.hasOwnProperty.call(d[c],e)&&(h[e]=Object.values(d[c][e]));let y={...d};for(let e in delete y[c],Object.assign(envApi,{...y,"@app/docs":`${$}export default ${JSON.stringify(h).replace(/"rr\((.+?)\)rr"/g,u)}`}),envApi)Object.prototype.hasOwnProperty.call(envApi,e)&&m?.writeModule(s(e),envApi[e])}["react","solid-js"].includes(i)||(u="$1",$=""),"solid-js"===i&&($=`import { Dynamic } from "${i}/web";${$}`),"library"===p&&function(){let t=[],o=r(l("components"),{ignored:[/(^|[\\/\\])\../,/(^|[\\/\\])__tests__([\\/\\]|$)/],persistent:!0,ignoreInitial:!1});function n(t){return/\.tsx?$/.test(t)&&e(t).isFile()}o.on("add",e=>{n(e)&&(j(e,"added"),t.push(e))}),o.on("change",e=>{n(e)&&j(e,"change")}),o.on("unlink",e=>{n(e)&&(j(e,"deleted"),t.splice(t.indexOf(e),1))}),o.on("ready",()=>{t.forEach(e=>{j(e,"change")})}),process.on("SIGINT",function(){o.close()})}();
@@ -1 +1 @@
1
- export {};
1
+ export default function generateApi(path: string): string;
@@ -1 +1 @@
1
- let e;import{existsSync as t,mkdirSync as n,readFile as r,readFileSync as l,statSync as o,unlink as i,writeFile as c}from"fs";import{dirname as u,join as s}from"path";import{watch as a}from"chokidar";import f from"typescript";import{CONFIG as p}from"./common.js";import{APPTYPE as m,apiCacheDir as g,frameworkCacheDir as $}from"./process-env.js";import{resolveProgramPath as d}from"./utils.js";import{alias as h}from"./webpack.common.js";let{ScriptKind:b,ScriptTarget:x,SyntaxKind:y,createSourceFile:j,forEachChild:k,getLeadingCommentRanges:T,isInterfaceDeclaration:E,isQuestionToken:S,isPropertySignature:w,isFunctionTypeNode:B,isUnionTypeNode:N,isMethodSignature:v}=f,F={};function O(e){let t=T(e.getSourceFile().text,e.pos);if(t){let n=e.getSourceFile().text.substring(t[0].pos,t[0].end),r=n.match(/\/\*\*([\s\S]*?)\*\//);if(r){let e=r[1].replace(/^\s*\* ?/gm,"").replace(/\s+$/,"").trim();return e}}return null}function _(e){if(!e)return null;let t=e.match(/@since\s+([^\n]+)/);return t?t[1].trim():null}function z(e){if(!e)return null;let t=e.match(/@author (\w+)\s*(?:<([^>]+)>)?/);if(t?.length){let e=t[1].trim(),n=t[2]?.trim(),r=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(n);return n?r&&(n=`mailto:${n}`):n=`https://github.com/${e}`,`[${e}${r?" 📧":" ⎋"}](${n})`}return null}function I(e){if(!e)return null;let t=e.match(/@ignore\s+([^\n]+)/);return t?t[1].trim():null}let K=/(?<!['"])(unknown|any|void|bigint|object|undefined|null|boolean|number|string|symbol)(?!['"])/g;function q(e,t){if(!e)return null;let n=e.replace(/\b([A-Z][a-zA-Z0-9]*)\b/g,e=>{if(F[e]){let n=`/${[p.routeBaseName,F[e]].join("/").split("/").filter(Boolean).join("/")}`;return t?`[\\color{#009688}{${e}}](${n})`:`[${e}](${n})`}return t?`\\color{#009688}{${e}}`:e});return t&&(n=n.replace(K,e=>`\\color{#009688}{${e}}`)),n}function A(e){return(function(e){let t;if(!e)return null;let n=[];for(;t=/\\color{([^|}]*)\|?([^|}]*)\|?([^|}]*)\|?([^}]*)}{([^}]*)}/g.exec(e);)n.push(t[0]);return e.replace(/(\{|\}|\[|\]|\(|\)|=>|keyof|typeof|true|false)/g,e=>n.some(t=>t.includes(e))?e:`\\color{#569cd6}{${e}}`)})(e)?.replace(/^\s*\|\s*|\s*\|\s*$/gm,"").replace(/\n/g,"<br/>").replace(/\*/g,"\\*").replace(/\|/g,"\\|").replace(/(['"])((?:(?!\1).)*)\1/g,"\\color{#ce9178}{$1$2$1}")}function C(e){return e?e.replace(/^@[a-z].+/gm,"").replace(/(\n\s+)+/g,"<br />").replace(/\n/g,"<br />").replace(/(<br \/>)$/g,""):null}function L(){}let W={},Z={};function D(o,a){t($)||n($),t(g)||n(g);let p=o.replace(RegExp(`^${h["@pkg"]}`),""),m=u(p).replace(/^\//,""),d=s(g,m),T=p.split("/").pop()?.replace(/\.tsx?/,".md");if(!T)return;W[m]||(W[m]=[]);let K=W[m].indexOf(T),D=s(d,T);if("deleted"===a)delete Z[D],i(D,L),-1!==K&&W[m].splice(K,1);else{let e=function(e){let t=l(e,"utf-8"),n=j(e,t,x.Latest,!0,b.TS),r="";return k(n,e=>{E(e)?r+=function(e){let t=e.name.text;Object.assign(F,{[e.name.text]:u(e.getSourceFile().fileName).replace(h["@pkg"],"")});let n=O(e),r=_(n),l=C(n),o=I(n)?.split("|")||[],i=o.includes("comment"),c=o.includes("initial"),s=o.includes("optional"),a=o.includes("version"),p=o.includes("author"),m=l?`\\color{|4||0.45}{${t}}`:t,g=(function(e){let t=[];if(e.heritageClauses){for(let n of e.heritageClauses)if(n.token===f.SyntaxKind.ExtendsKeyword)for(let e of n.types)t.push(e.getText())}return t})(e)?.map(e=>`<n-tag color="#4c81db" css=".tag{gap:0px;}">${q(A(e))}</n-tag>`),$=[l,m,r&&`\\color{#52c11b|1||0.9}{${r}}`,g.length>0&&`<sub>\`extends\`</sub> ${g.join(" ")}`].filter(Boolean).join(" "),d=`## ${$}`,b=e.members.filter(e=>w(e)&&e.type?.kind!==y.NeverKeyword||v(e)),x=[];if(b.length){b.forEach(e=>{let t=q(A(v(e)?`(${e.parameters.map(e=>`${e.name.getText()}: ${e.type?.getText()||"any"}`).join(", ")}): ${e.type?.getText()||"any"}`:e.type?.getText()||"any"),!0),r=O(e),l=A(e.name.getText());!l||l.startsWith("\\color")||(v(e)||function(e){if(e.type){if(!N(e.type))return B(e.type);for(let t of e.type.types)if(B(t))return!0}return!1}(e)||t?.includes("=>")?l=`\\color{#f9a913}{${l}}`:/^("|')(.+)("|')$/.test(l)||(l=`\\color{#4c81db}{${l}}`));let o=e.questionToken&&S(e.questionToken);x.push([l,!s&&`\\color{${o?"#f9a913":"#52c11b"}\\|\\|\\|0.9}{${o?"✘":"✔"}}`,!i&&A(C(r)),t,!c&&A(function(e){if(!e)return null;let t=e.match(/@default\s+([^\n]+)/);return t?t[1].trim():null}(r)),!a&&A(_(r)),!p&&(z(r)||z(n))])});let e=!1,t=!1,r=!1,l=!1;x.forEach(n=>{!i&&n[2]&&(l=!0),!c&&n[4]&&(r=!0),!a&&n[5]&&(t=!0),!p&&n[6]&&(e=!0)}),d+="\n";let o=["属性",!s&&"必要",l&&"说明","类型",r&&"默认值",t&&"版本",e&&"作者"].filter(Boolean).join("|");d+=`|${o}|`;let u=[":-",!s&&":-",l&&":-",":-",r&&":-",t&&":-",e&&":-"].filter(Boolean);d+="\n";let f=u.join("|");d+=`|${f}|`,x.forEach(n=>{d+="\n";let o=[n[0]||"-",!s&&(n[1]||"-"),l&&(n[2]||"-"),n[3]||"-",r&&(n[4]||"-"),t&&(n[5]||"-"),e&&(n[6]||"-")].filter(Boolean).join("|");d+=`|${o}|`}),d+="\n"}return d+="\n"}(e):f.isEnumDeclaration(e)&&(r+=function(e){let t=e.name.text;Object.assign(F,{[e.name.text]:u(e.getSourceFile().fileName).replace(h["@pkg"],"")});let n=O(e),r=I(n)?.split("|")||[],l=r.includes("comment"),o=r.includes("version"),i=r.includes("author"),c=`## ${t}`;if(e.members.length){let t=[];e.members.forEach(e=>{let r=A(e.name.getText()),c=O(e),u=A(function(e){let t=e.initializer;return t&&f.isStringLiteral(t)?` '${t.text}'`:null}(e)),s=A(_(c)),a=A(C(c));!r||r.startsWith("\\color")||/^("|')(.+)("|')$/.test(r)||(r=`\\color{#4c81db}{${r}}`),t.push([r,!l&&a,u,!o&&s,!i&&(z(c)||z(n))])});let r=!1,u=!1,s=!1;t.forEach(e=>{!l&&e[1]&&(s=!0),!o&&e[3]&&(u=!0),!i&&e[4]&&(r=!0)}),c+="\n";let a=["属性",s&&"说明","值",u&&"版本",r&&"作者"].filter(Boolean).join("|");c+=`|${a}|`;let p=[":-",s&&":-",":-",u&&":-",r&&":-"].filter(Boolean);c+="\n";let m=p.join("|");c+=`|${m}|`,t.forEach(e=>{c+="\n";let t=[e[0]||"-",s&&(e[1]||"-"),e[2]||"-",u&&(e[3]||"-"),r&&(e[4]||"-")].filter(Boolean).join("|");c+=`|${t}|`})}return c+="\n\n"}(e))}),r}(o);if(e){let l=Z[D];l?l!==e&&(t(d)||n(d),c(D,e,"utf-8",L)):r(D,{encoding:"utf-8"},(r,l)=>{(r||l!==e)&&(Z[D]=l,t(d)||n(d),c(D,e,"utf-8",L))}),-1===K&&W[m].push(T)}else delete Z[D],i(D,L),-1!==K&&W[m].splice(K,1)}let G=`export default ${JSON.stringify(W)};`;e!==G&&(e=G,c(s(g,"index.js"),G,"utf-8",L))}"library"===m&&function(){let e=[],t=a(d("components"),{ignored:[/(^|[\\/\\])\../,/(^|[\\/\\])__tests__([\\/\\]|$)/],persistent:!0,ignoreInitial:!1});function n(e){return/\.tsx?$/.test(e)&&o(e).isFile()}t.on("add",t=>{n(t)&&(D(t,"added"),e.push(t))}),t.on("change",e=>{n(e)&&D(e,"change")}),t.on("unlink",t=>{n(t)&&(D(t,"deleted"),e.splice(e.indexOf(t),1))}),t.on("ready",()=>{e.forEach(e=>{D(e,"change")})}),process.on("SIGINT",function(){t.close()})}();
1
+ import{readFileSync as e}from"fs";import{dirname as t}from"path";import n from"typescript";import{CONFIG as r}from"./common.js";import{alias as l}from"./webpack.common.js";let{ScriptKind:o,ScriptTarget:i,SyntaxKind:u,createSourceFile:c,forEachChild:a,getLeadingCommentRanges:s,isInterfaceDeclaration:f,isQuestionToken:m,isPropertySignature:p,isFunctionTypeNode:g,isUnionTypeNode:$,isMethodSignature:h}=n,b={};function d(e){let t=s(e.getSourceFile().text,e.pos);if(t){let n=e.getSourceFile().text.substring(t[0].pos,t[0].end),r=n.match(/\/\*\*([\s\S]*?)\*\//);if(r){let e=r[1].replace(/^\s*\* ?/gm,"").replace(/\s+$/,"").trim();return e}}return null}function y(e){if(!e)return null;let t=e.match(/@since\s+([^\n]+)/);return t?t[1].trim():null}function x(e){if(!e)return null;let t=e.match(/@author (\w+)\s*(?:<([^>]+)>)?/);if(t?.length){let e=t[1].trim(),n=t[2]?.trim(),r=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(n);return n?r&&(n=`mailto:${n}`):n=`https://github.com/${e}`,`[${e}${r?" 📧":" ⎋"}](${n})`}return null}function j(e){if(!e)return null;let t=e.match(/@ignore\s+([^\n]+)/);return t?t[1].trim():null}let T=/(?<!['"])(unknown|any|void|bigint|object|undefined|null|boolean|number|string|symbol)(?!['"])/g;function k(e,t){if(!e)return null;let n=e.replace(/\b([A-Z][a-zA-Z0-9]*)\b/g,e=>{if(b[e]){let n=`/${[r.routeBaseName,b[e]].join("/").split("/").filter(Boolean).join("/")}`;return t?`[\\color{#009688}{${e}}](${n})`:`[${e}](${n})`}return t?`\\color{#009688}{${e}}`:e});return t&&(n=n.replace(T,e=>`\\color{#009688}{${e}}`)),n}function w(e){return(function(e){let t;if(!e)return null;let n=[];for(;t=/\\color{([^|}]*)\|?([^|}]*)\|?([^|}]*)\|?([^}]*)}{([^}]*)}/g.exec(e);)n.push(t[0]);return e.replace(/(\{|\}|\[|\]|\(|\)|=>|keyof|typeof|true|false)/g,e=>n.some(t=>t.includes(e))?e:`\\color{#569cd6}{${e}}`)})(e)?.replace(/^\s*\|\s*|\s*\|\s*$/gm,"").replace(/\n/g,"<br/>").replace(/\*/g,"\\*").replace(/\|/g,"\\|").replace(/(['"])((?:(?!\1).)*)\1/g,"\\color{#ce9178}{$1$2$1}")}function B(e){return e?e.replace(/^@[a-z].+/gm,"").replace(/(\n\s+)+/g,"<br />").replace(/\n/g,"<br />").replace(/(<br \/>)$/g,""):null}export default function E(r){let s=e(r,"utf-8"),T=c(r,s,i.Latest,!0,o.TS),E="";return a(T,e=>{f(e)?E+=function(e){let r=e.name.text;Object.assign(b,{[e.name.text]:t(e.getSourceFile().fileName).replace(l["@pkg"],"")});let o=d(e),i=y(o),c=B(o),a=j(o)?.split("|")||[],s=a.includes("comment"),f=a.includes("initial"),T=a.includes("optional"),E=a.includes("version"),S=a.includes("author"),v=c?`\\color{|4||0.45}{${r}}`:r,F=(function(e){let t=[];if(e.heritageClauses){for(let r of e.heritageClauses)if(r.token===n.SyntaxKind.ExtendsKeyword)for(let e of r.types)t.push(e.getText())}return t})(e)?.map(e=>`<n-tag color="#4c81db" css=".tag{gap:0px;}">${k(w(e))}</n-tag>`),N=[c,v,i&&`\\color{#52c11b|1||0.9}{${i}}`,F.length>0&&`<sub>\`extends\`</sub> ${F.join(" ")}`].filter(Boolean).join(" "),z=`## ${N}`,K=e.members.filter(e=>p(e)&&e.type?.kind!==u.NeverKeyword||h(e)),q=[];if(K.length){K.forEach(e=>{let t=k(w(h(e)?`(${e.parameters.map(e=>`${e.name.getText()}: ${e.type?.getText()||"any"}`).join(", ")}): ${e.type?.getText()||"any"}`:e.type?.getText()||"any"),!0),n=d(e),r=w(e.name.getText());!r||r.startsWith("\\color")||(h(e)||function(e){if(e.type){if(!$(e.type))return g(e.type);for(let t of e.type.types)if(g(t))return!0}return!1}(e)||t?.includes("=>")?r=`\\color{#f9a913}{${r}}`:/^("|')(.+)("|')$/.test(r)||(r=`\\color{#4c81db}{${r}}`));let l=e.questionToken&&m(e.questionToken);q.push([r,!T&&`\\color{${l?"#f9a913":"#52c11b"}\\|\\|\\|0.9}{${l?"✘":"✔"}}`,!s&&w(B(n)),t,!f&&w(function(e){if(!e)return null;let t=e.match(/@default\s+([^\n]+)/);return t?t[1].trim():null}(n)),!E&&w(y(n)),!S&&(x(n)||x(o))])});let e=!1,t=!1,n=!1,r=!1;q.forEach(l=>{!s&&l[2]&&(r=!0),!f&&l[4]&&(n=!0),!E&&l[5]&&(t=!0),!S&&l[6]&&(e=!0)}),z+="\n";let l=["属性",!T&&"必要",r&&"说明","类型",n&&"默认值",t&&"版本",e&&"作者"].filter(Boolean).join("|");z+=`|${l}|`;let i=[":-",!T&&":-",r&&":-",":-",n&&":-",t&&":-",e&&":-"].filter(Boolean);z+="\n";let u=i.join("|");z+=`|${u}|`,q.forEach(l=>{z+="\n";let o=[l[0]||"-",!T&&(l[1]||"-"),r&&(l[2]||"-"),l[3]||"-",n&&(l[4]||"-"),t&&(l[5]||"-"),e&&(l[6]||"-")].filter(Boolean).join("|");z+=`|${o}|`}),z+="\n"}return z+="\n"}(e):n.isEnumDeclaration(e)&&(E+=function(e){let r=e.name.text;Object.assign(b,{[e.name.text]:t(e.getSourceFile().fileName).replace(l["@pkg"],"")});let o=d(e),i=j(o)?.split("|")||[],u=i.includes("comment"),c=i.includes("version"),a=i.includes("author"),s=`## ${r}`;if(e.members.length){let t=[];e.members.forEach(e=>{let r=w(e.name.getText()),l=d(e),i=w(function(e){let t=e.initializer;return t&&n.isStringLiteral(t)?` '${t.text}'`:null}(e)),s=w(y(l)),f=w(B(l));!r||r.startsWith("\\color")||/^("|')(.+)("|')$/.test(r)||(r=`\\color{#4c81db}{${r}}`),t.push([r,!u&&f,i,!c&&s,!a&&(x(l)||x(o))])});let r=!1,l=!1,i=!1;t.forEach(e=>{!u&&e[1]&&(i=!0),!c&&e[3]&&(l=!0),!a&&e[4]&&(r=!0)}),s+="\n";let f=["属性",i&&"说明","值",l&&"版本",r&&"作者"].filter(Boolean).join("|");s+=`|${f}|`;let m=[":-",i&&":-",":-",l&&":-",r&&":-"].filter(Boolean);s+="\n";let p=m.join("|");s+=`|${p}|`,t.forEach(e=>{s+="\n";let t=[e[0]||"-",i&&(e[1]||"-"),e[2]||"-",l&&(e[3]||"-"),r&&(e[4]||"-")].filter(Boolean).join("|");s+=`|${t}|`})}return s+="\n\n"}(e))}),E}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from './process-env.js';
2
2
  export * from './utils.js';
3
3
  export * from '../typings/global.js';
4
- export { default as envFlags } from './envFlags.js';
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- export*from"./process-env.js";export*from"./utils.js";export*from"../typings/global.js";export{default as envFlags}from"./envFlags.js";
1
+ export*from"./process-env.js";export*from"./utils.js";export*from"../typings/global.js";
@@ -1 +1 @@
1
- import{resolve as e}from"path";import s from"mini-css-extract-plugin";import o from"mini-svg-data-uri";import{CONFIG as t,PUBLICPATH as l}from"./common.js";import{hasPkg as r}from"./has-pkg.js";import a from"./modifyVars.js";import{APPTYPE as n,DEV as i,FRAMEWORK as c,__dirname as m}from"./process-env.js";import p from"./swcrc.js";import d from"./tsloader.config.js";import{resolveNodeModulesPath as u,resolveProgramPath as f}from"./utils.js";let y="single-spa"===n?l:"../",x={loader:s.loader,options:{publicPath:"/"!==y?y:"../"}},g=r("@moneko/postcss")&&{loader:"postcss-loader",options:{postcssOptions:await import("@moneko/postcss")}};i&&(x="style-loader");let $=[...t.cssModules,`@moneko/${c}`,"neko-ui"].map(u),j=[...["src/styles/variables/*.less","src/styles/mixins/*.less","site/styles/variables/*.less","site/styles/mixins/*.less"].map(f)],b=["components","example","mock","site","src"].map(f),v=[x,{loader:"@teamsupercell/typings-for-css-modules-loader",options:{verifyOnly:!i}},{loader:"css-loader",options:{modules:{auto:e=>{for(let s=0,o=$.length;s<o;s++)if(e&&e?.includes($[s]))return/(.*(?<!\.global\.(le|c)ss)$)/i.test(e);return/(^(?!.*node_modules))(.*(?<!\.global\.(le|c)ss)$)/i.test(e)},localIdentName:"[path][name]__[local]",exportLocalsConvention:"dashesOnly"},importLoaders:2}},g,"css-unicode-loader",{loader:"less-loader",options:{sourceMap:!!t.sourceMap,lessOptions:{modifyVars:a,javascriptEnabled:!0}}},{loader:"style-resources-loader",options:{patterns:j}}].filter(Boolean),w={loader:"tsc"===t.compiler?"ts-loader":"swc-loader",options:"tsc"===t.compiler?d:p(i)},h={rules:[{test:/\.mdx?$/,include:[f("components")],exclude:[/(.+)\/examples\/(.+).mdx?$/i],enforce:"pre",use:[{loader:e(m,"./frontmatter-loader.cjs")}]},{oneOf:[{resourceQuery:/raw/,type:"asset/source"},{test:/\.wasm$/,type:"webassembly/async"},{test:/\.txt$/,type:"asset/source"},{test:/\.(gif|png|jpe?g|ico|mp4)$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/images/[name][ext][query]"},include:b.concat(t.rulesInclude?.media?.map(u)||[])},{test:/\.svg$/,type:"asset/inline",generator:{dataUrl:e=>o("string"!=typeof e?e.toString():e)}},{test:/\.(eot|ttf|otf|woff(|2))$/,type:"asset",generator:{filename:"assets/fonts/[name][ext][query]"},include:b.concat(t.rulesInclude?.fonts?.map(u)||[])},{test:/\.less$/,use:v,include:b.concat(t.rulesInclude?.less?.map(u)||[])},{test:/\.css$/,use:[x,"css-loader",g,"css-unicode-loader"].filter(Boolean),include:b.concat(t.rulesInclude?.css?.map(u)||[])},{test:/\.(cj|mj|t|j)s(|x)$/,use:[...t.prefixJsLoader,w].filter(Boolean),include:b.concat(t.rulesInclude?.js?.map(u)||[])},{test:/\.mdx?$/,use:[...t.prefixJsLoader,w,{loader:"@mdx-js/loader",options:t.mdx}].filter(Boolean),include:b,exclude:[/(.+)\/examples\/(.+).mdx?$/i]},{test:/\.mdx?$/,type:"asset/source",include:[/(.+)\/examples\/(.+).mdx?$/i]},{type:"asset/source",include:[/(.+)\/examples\/(.+).*?$/i]}]},...t.moduleRules]};export default h;
1
+ import{resolve as e}from"path";import s from"mini-css-extract-plugin";import o from"mini-svg-data-uri";import{CONFIG as t,PUBLICPATH as l}from"./common.js";import{hasPkg as r}from"./has-pkg.js";import a from"./modifyVars.js";import{APPTYPE as n,DEV as i,FRAMEWORK as c,__dirname as m}from"./process-env.js";import p from"./swcrc.js";import d from"./tsloader.config.js";import{resolveNodeModulesPath as u,resolveProgramPath as f}from"./utils.js";let y="single-spa"===n?l:"../",x={loader:s.loader,options:{publicPath:"/"!==y?y:"../"}},g=r("@moneko/postcss")&&{loader:"postcss-loader",options:{postcssOptions:await import("@moneko/postcss")}};i&&(x="style-loader");let $=[...t.cssModules,`@moneko/${c}`,"neko-ui"].map(u),j=[...["src/styles/variables/*.less","src/styles/mixins/*.less","site/styles/variables/*.less","site/styles/mixins/*.less"].map(f)],b=["components","example","mock","site","src"].map(f),v=[x,{loader:"@teamsupercell/typings-for-css-modules-loader",options:{verifyOnly:!i}},{loader:"css-loader",options:{modules:{auto:e=>{for(let s=0,o=$.length;s<o;s++)if(e&&e?.includes($[s]))return/(.*(?<!\.global\.(le|c)ss)$)/i.test(e);return/(^(?!.*node_modules))(.*(?<!\.global\.(le|c)ss)$)/i.test(e)},localIdentName:"[path][name]__[local]",exportLocalsConvention:"dashesOnly"},importLoaders:2}},g,"css-unicode-loader",{loader:"less-loader",options:{sourceMap:!!t.sourceMap,lessOptions:{modifyVars:a,javascriptEnabled:!0}}},{loader:"style-resources-loader",options:{patterns:j}}].filter(Boolean),w={loader:"tsc"===t.compiler?"ts-loader":"swc-loader",options:"tsc"===t.compiler?d:p(i)},h={rules:[{test:/\.mdx?$/,include:[f("components")],exclude:[/(.+)\/examples\/(.+).mdx?$/i],enforce:"pre",use:[{loader:e(m,"./loader/frontmatter.cjs")}]},{oneOf:[{resourceQuery:/raw/,type:"asset/source"},{test:/\.wasm$/,type:"webassembly/async"},{test:/\.txt$/,type:"asset/source"},{test:/\.(gif|png|jpe?g|ico|mp4)$/i,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/images/[name][ext][query]"},include:b.concat(t.rulesInclude?.media?.map(u)||[])},{test:/\.svg$/,type:"asset/inline",generator:{dataUrl:e=>o("string"!=typeof e?e.toString():e)}},{test:/\.(eot|ttf|otf|woff(|2))$/,type:"asset",generator:{filename:"assets/fonts/[name][ext][query]"},include:b.concat(t.rulesInclude?.fonts?.map(u)||[])},{test:/\.less$/,use:v,include:b.concat(t.rulesInclude?.less?.map(u)||[])},{test:/\.css$/,use:[x,"css-loader",g,"css-unicode-loader"].filter(Boolean),include:b.concat(t.rulesInclude?.css?.map(u)||[])},{test:/\.(cj|mj|t|j)s(|x)$/,use:[...t.prefixJsLoader,w].filter(Boolean),include:b.concat(t.rulesInclude?.js?.map(u)||[])},{test:/\.mdx?$/,use:[...t.prefixJsLoader,w,{loader:"@mdx-js/loader",options:t.mdx}].filter(Boolean),include:b,exclude:[/(.+)\/examples\/(.+).mdx?$/i]},{test:/\.mdx?$/,type:"asset/source",include:[/(.+)\/examples\/(.+).mdx?$/i]},{type:"asset/source",include:[/(.+)\/examples\/(.+).*?$/i]}]},...t.moduleRules]};export default h;
@@ -0,0 +1,4 @@
1
+ export default function objectListener<T extends object>(initialData: T): {
2
+ data: T;
3
+ listener: (callback: (next: T) => void) => () => void;
4
+ };
@@ -0,0 +1 @@
1
+ export default function e(e){let t=[],n=new Proxy(e,{set:(e,n,r)=>(e[n]=r,t.forEach(t=>{t(e)}),!0)});return{data:n,listener:function(e){return t.push(e),()=>{let n=t.indexOf(e);-1!==n&&t.splice(n,1)}}}}
@@ -10,8 +10,6 @@ export declare const PACKAGENAME: string;
10
10
  export declare const PACKAGEVERSION: string;
11
11
  export declare const pkgName: string;
12
12
  export declare const DEV: boolean;
13
- export declare const frameworkCacheDir: ".git/" | `node_modules/.cache/${string}`;
14
- export declare const apiCacheDir: string;
15
13
  export declare const cacheDir: string;
16
14
  export declare const NODE_ENV: string | undefined;
17
15
  export declare const CUSTOMCONFIG: string | undefined;
@@ -1 +1 @@
1
- import{existsSync as e,mkdirSync as o,readFileSync as r}from"fs";import{join as t}from"path";import s from"url";import{hasPkg as n}from"./has-pkg.js";import{resolveProgramPath as p}from"./utils.js";import c from"./yarn-argv.js";export const __dirname=s.fileURLToPath(new URL(".",import.meta.url));export const APPTYPE=process.env.APPTYPE;export const FRAMEWORK=process.env.FRAMEWORK;export const isReact="react"===FRAMEWORK;export const isSolid="solid-js"===FRAMEWORK;export const jsxImportSource={react:"react","solid-js":"solid-js/h"}[FRAMEWORK];export const PROGRAMPATH=process.cwd();export const PACKAGENAME=process.env.npm_package_name;export const PACKAGEVERSION=process.env.npm_package_version;let a=r(t(__dirname,"../package.json"),{encoding:"utf-8"});export const pkgName=JSON.parse(a).name;export const DEV="development"===process.env.NODE_ENV;export const frameworkCacheDir=p(DEV?".git/":`node_modules/.cache/${PACKAGENAME}`);export const apiCacheDir=t(frameworkCacheDir,"./apis");export const cacheDir=t(PROGRAMPATH,"./node_modules/.cache/@moneko/cli/");e(cacheDir)||o(cacheDir,{recursive:!0});export const NODE_ENV=process.env.NODE_ENV;export const CUSTOMCONFIG=process.env.npm_config_config||c.config;export let hasEslintConfig=!!Object.keys(process.env).filter(e=>e.startsWith("npm_package_eslintConfig_")).length;export let hasStylelintConfig=!!Object.keys(process.env).filter(e=>e.startsWith("npm_package_stylelint_")).length;export const hasAntd=n("antd");export const programInfo={name:PACKAGENAME,version:PACKAGEVERSION,type:APPTYPE,description:process.env.npm_package_description,author:{name:process.env.npm_package_author_name,email:process.env.npm_package_author_email,url:process.env.npm_package_author_url},repository:{type:process.env.npm_package_repository_type,url:process.env.npm_package_repository_url,directory:process.env.npm_package_repository_directory}};if(parseInt(process.versions.node)>14){let e=r(p("package.json"),{encoding:"utf-8"}),{description:o,author:t,repository:s,eslintConfig:n,stylelint:c}=JSON.parse(e);programInfo.author="string"==typeof t?{name:t}:t,programInfo.repository="string"==typeof t?{url:s}:s,programInfo.description=o,hasEslintConfig=!!n,hasStylelintConfig=!!c}
1
+ import{existsSync as e,mkdirSync as o,readFileSync as r}from"fs";import{join as s}from"path";import t from"url";import{hasPkg as n}from"./has-pkg.js";import{resolveProgramPath as p}from"./utils.js";import c from"./yarn-argv.js";export const __dirname=t.fileURLToPath(new URL(".",import.meta.url));export const APPTYPE=process.env.APPTYPE;export const FRAMEWORK=process.env.FRAMEWORK;export const isReact="react"===FRAMEWORK;export const isSolid="solid-js"===FRAMEWORK;export const jsxImportSource={react:"react","solid-js":"solid-js/h"}[FRAMEWORK];export const PROGRAMPATH=process.cwd();export const PACKAGENAME=process.env.npm_package_name;export const PACKAGEVERSION=process.env.npm_package_version;let a=r(s(__dirname,"../package.json"),{encoding:"utf-8"});export const pkgName=JSON.parse(a).name;export const DEV="development"===process.env.NODE_ENV;export const cacheDir=s(PROGRAMPATH,"./node_modules/.cache/@moneko/cli/");e(cacheDir)||o(cacheDir,{recursive:!0});export const NODE_ENV=process.env.NODE_ENV;export const CUSTOMCONFIG=process.env.npm_config_config||c.config;export let hasEslintConfig=!!Object.keys(process.env).filter(e=>e.startsWith("npm_package_eslintConfig_")).length;export let hasStylelintConfig=!!Object.keys(process.env).filter(e=>e.startsWith("npm_package_stylelint_")).length;export const hasAntd=n("antd");export const programInfo={name:PACKAGENAME,version:PACKAGEVERSION,type:APPTYPE,description:process.env.npm_package_description,author:{name:process.env.npm_package_author_name,email:process.env.npm_package_author_email,url:process.env.npm_package_author_url},repository:{type:process.env.npm_package_repository_type,url:process.env.npm_package_repository_url,directory:process.env.npm_package_repository_directory}};if(parseInt(process.versions.node)>14){let e=r(p("package.json"),{encoding:"utf-8"}),{description:o,author:s,repository:t,eslintConfig:n,stylelint:c}=JSON.parse(e);programInfo.author="string"==typeof s?{name:s}:s,programInfo.repository="string"==typeof s?{url:t}:t,programInfo.description=o,hasEslintConfig=!!n,hasStylelintConfig=!!c}
package/lib/routes.d.ts CHANGED
@@ -1 +1,2 @@
1
- export {};
1
+ export declare let routes: string;
2
+ export declare let example: string;
package/lib/routes.js CHANGED
@@ -1 +1 @@
1
- let e,t;import{existsSync as r,mkdirSync as o,readFileSync as n,readdirSync as s,statSync as i,writeFile as l}from"fs";import{join as c,relative as m}from"path";import{watch as p}from"chokidar";import{load as a}from"js-yaml";import{APPTYPE as u,DEV as f,FRAMEWORK as d,PROGRAMPATH as g,frameworkCacheDir as h}from"./process-env.js";let $=/^---\n([\s\S]+?)\n---\n/;function j(e,t){let{regex:r,alia:o,base:l=e,outputSource:p}=t,u=s(e);return u.reduce((s,u)=>{let f=c(e,u),d=i(f);if(d.isDirectory()){let e=j(f,{...t,base:l});if(e.length>0){let t={},r={path:u,key:m(l,f)};if(p)Object.assign(t,{children:e});else{let o=e.splice(0,1)[0];e.length?Object.assign(t,{children:[{...o,path:"/",key:r.key},...e]}):Object.assign(t,o)}s.push(Object.assign(t,r))}}else if(r.test(f)){let e=n(f,{encoding:"utf-8"}),t=function(e){let t=e.match($);return t&&t[1]?t[1].trim():null}(e),r=t?a(t):{},i=m(l,f);s.push(Object.assign({path:u,key:i,meta:{...r}},o&&{component:`rr(() => import(/* webpackChunkName: '${i}' */'${c(o,i)}'))rr`},p&&{codes:function(e){let t;let r={},o=/```(.+?)\n([\s\S]*?)\n```/g;for(;null!==(t=o.exec(e));){let[,e="jsx",o]=t,n=e.split(" ").pop()||"jsx";r[n]=o.trim()}return Object.keys(r).length?r:{jsx:e}}(e.replace($,"").replace(/^\n+|\n+$/g,""))}))}return s},[])}let x=c(g,"./components");function k(e){if(e)throw e}function y(){e&&clearTimeout(e),e=setTimeout(()=>{let e={react:"createElement","solid-js":"createComponent"}[d],t=`() => ${e}(SuspenseComp, { comp: $1 })`,n=`import { ${e} } from "${d}";import { SuspenseComp } from "@moneko/${d}";`;["react","solid-js"].includes(d)||(t="$1",n="");let s=JSON.stringify(j(x,{regex:/README\.mdx?$/,alia:"@pkg"})).replace(/"rr\((.+?)\)rr"/g,t);r(h)||o(h),l(c(h,"route.js"),`${n}export default ${s}`,"utf-8",k)},100)}function b(){t&&clearTimeout(t),r(h)||o(h),t=setTimeout(()=>{let e=Object.fromEntries(j(x,{regex:/\/examples\/(.+)\.md$/,outputSource:!0}).map(e=>[e.key,e.children?.[0].children?.filter(e=>e.codes)?.map(e=>({title:e.path.replace(/.md$/,""),order:0,...e.meta,codes:e.codes})).sort((e,t)=>e.order-t.order)]));l(c(h,"example.js"),`export default ${JSON.stringify(e)}`,"utf-8",k)},100)}function O(e,t,r){let o=p(e,{ignored:(e,r)=>{if(r)return!r?.isDirectory()&&t.test(e)},persistent:!0});o.on("add",()=>{r()}).on("change",()=>{r()}).on("unlink",()=>{r()}),process.on("SIGINT",function(){o.close()})}"library"===u&&(f?(O(x,/(?<!README\.mdx?)$/,y),O(x,/(?<!\/examples\/(.+)\.md)$/,b)):(y(),b()));
1
+ let e,t;import{readFileSync as r,readdirSync as o,statSync as l}from"fs";import{join as n,relative as i}from"path";import{watch as s}from"chokidar";import{load as p}from"js-yaml";import{APPTYPE as m,DEV as c,FRAMEWORK as a,PROGRAMPATH as u}from"./process-env.js";import{resolveNodeModulesPath as f}from"./utils.js";import{vm as d}from"./virtual-module-plugin.js";let x=/^---\n([\s\S]+?)\n---\n/;function g(e,t){let{regex:s,alia:m,base:c=e,outputSource:a}=t,u=o(e);return u.reduce((o,u)=>{let f=n(e,u),d=l(f);if(d.isDirectory()){let e=g(f,{...t,base:c});if(e.length>0){let t={},r={path:u,key:i(c,f)};if(a)Object.assign(t,{children:e});else{let o=e.splice(0,1)[0];e.length?Object.assign(t,{children:[{...o,path:"/",key:r.key},...e]}):Object.assign(t,o)}o.push(Object.assign(t,r))}}else if(s.test(f)){let e=r(f,{encoding:"utf-8"}),t=function(e){let t=e.match(x);return t&&t[1]?t[1].trim():null}(e),l=t?p(t):{},s=i(c,f);o.push(Object.assign({path:u,key:s,meta:{...l}},m&&{component:`rr(() => import(/* webpackChunkName: '${s}' */'${n(m,s)}'))rr`},a&&{codes:function(e){let t;let r={},o=/```(.+?)\n([\s\S]*?)\n```/g;for(;null!==(t=o.exec(e));){let[,e="jsx",o]=t,l=e.split(" ").pop()||"jsx";r[l]=o.trim()}return Object.keys(r).length?r:{jsx:e}}(e.replace(x,"").replace(/^\n+|\n+$/g,""))}))}return o},[])}let h=n(u,"./components");export let routes="export default []";export let example="export default {}";function $(){clearTimeout(e),e=setTimeout(()=>{clearTimeout(e);let t={react:"createElement","solid-js":"createComponent"}[a],r=`() => ${t}(SuspenseComp, { comp: $1 })`,o=`import { ${t} } from "${a}";import { SuspenseComp } from "@moneko/${a}";`;["react","solid-js"].includes(a)||(r="$1",o="");let l=JSON.stringify(g(h,{regex:/README\.mdx?$/,alia:"@pkg"})).replace(/"rr\((.+?)\)rr"/g,r),n=`${o}export default ${l}`;routes!==n&&(routes=n,d?.writeModule(f("@app/routes"),routes))},100)}function j(){clearTimeout(t),t=setTimeout(()=>{clearTimeout(t);let e=Object.fromEntries(g(h,{regex:/\/examples\/(.+)\.md$/,outputSource:!0}).map(e=>[e.key,e.children?.[0].children?.filter(e=>e.codes)?.map(e=>({title:e.path.replace(/.md$/,""),order:0,...e.meta,codes:e.codes})).sort((e,t)=>e.order-t.order)])),r=`export default ${JSON.stringify(e)}`;example!==r&&(example=r,d?.writeModule(f("@app/example"),example))},100)}function k(e,t,r){let o=s(e,{ignored:(e,r)=>{if(r)return!r?.isDirectory()&&t.test(e)},persistent:!0});o.on("add",()=>{r()}).on("change",()=>{r()}).on("unlink",()=>{r()}),process.on("SIGINT",function(){o.close()})}"library"===m&&(c?(k(h,/(?<!README\.mdx?)$/,$),k(h,/(?<!\/examples\/(.+)\.md)$/,j)):($(),j()));
@@ -1,8 +1,9 @@
1
- import { type Compiler } from 'webpack';
1
+ import VirtualModulesPlugin from 'webpack-virtual-modules';
2
+ import type { Compiler } from 'webpack';
2
3
  interface VirtualModulePluginOption {
3
- name: string;
4
- contents: Record<string, any>;
4
+ [key: string]: string | object;
5
5
  }
6
+ export declare let vm: VirtualModulesPlugin;
6
7
  declare class VirtualModulePlugin {
7
8
  private options;
8
9
  constructor(options: VirtualModulePluginOption);
@@ -1 +1 @@
1
- import t from"webpack-virtual-modules";import{resolveNodeModulesPath as o}from"./utils.js";export default class{constructor(t){this.options=t}apply(i){let s=o(`${this.options.name}.js`),r=new t({[s]:JSON.stringify(this.options.contents)});r.apply(i),i.hooks.compilation.tap("VirtualModulePlugin",function(t){try{r.writeModule(s,JSON.stringify({a:2}))}catch(o){t.errors.push(o)}})}};
1
+ import t from"webpack-virtual-modules";import{resolveNodeModulesPath as o}from"./utils.js";export let vm;export default class{constructor(t){this.options=t}apply(i){(vm=new t).apply(i),i.hooks.compilation.tap("VirtualModulePlugin",()=>{for(let t in this.options)if(Object.prototype.hasOwnProperty.call(this.options,t)){let i=this.options[t];"string"==typeof i?vm.writeModule(o(t),i):vm.writeModule(o(t),`export default ${JSON.stringify(i)}`)}})}};
@@ -0,0 +1,34 @@
1
+ declare const virtualModules: {
2
+ '@app': {
3
+ base: string;
4
+ designSize: number;
5
+ routerMode: "browser" | "hash" | "memory";
6
+ mode: "csr" | "ssr";
7
+ name: string;
8
+ description: string | undefined;
9
+ version: string;
10
+ author: {
11
+ name: string | undefined;
12
+ email: string | undefined;
13
+ url: string | undefined;
14
+ };
15
+ repository: {
16
+ type: string | undefined;
17
+ url: string | undefined;
18
+ directory: string | undefined;
19
+ };
20
+ locales: boolean;
21
+ favicon: string | false | undefined;
22
+ prefixCls: string | undefined;
23
+ theme: import("./index.js").Theme | undefined;
24
+ type: import("./index.js").AppType;
25
+ persist: boolean;
26
+ projectName: string;
27
+ iconfont: {
28
+ scriptUrl?: string | string[] | undefined;
29
+ extraCommonProps?: Record<string, any> | undefined;
30
+ } | undefined;
31
+ };
32
+ '@app/fallback': string;
33
+ };
34
+ export default virtualModules;
@@ -0,0 +1 @@
1
+ import{accessSync as p,constants as o}from"fs";import{join as a}from"path";import t from"./app.js";import{CONFIG as r}from"./common.js";import{coverage as e}from"./coverage.js";import{APPTYPE as m,PROGRAMPATH as l}from"./process-env.js";let c={"@app":t,"@app/fallback":"export default null"};if(r.fallbackCompPath&&Object.assign(c,{"@app/fallback":`import Fallback from "${r.fallbackCompPath}";export default Fallback;`}),"library"===m){let t={};try{let r=a(l,"./site/mdx-scope.ts");p(r,o.R_OK),t='import scope from "@/mdx-scope";export default scope;'}catch(p){t={}}Object.assign(c,{"@app/coverage":e,"@app/mdx-scope":t})}export default c;
@@ -1,5 +1,4 @@
1
- import './cleanup.js';
2
- import './generate-api.js';
1
+ import './docs.js';
3
2
  import './routes.js';
4
3
  import type { WebpackConfiguration } from 'webpack-dev-server';
5
4
  export declare const alias: Record<string, string>;
@@ -1 +1 @@
1
- import e from"fs";import t from"add-asset-html-webpack-plugin";import s from"html-webpack-plugin";import n from"webpack";import o from"webpackbar";import"./cleanup.js";import{CONFIG as l,ENTRYPATH as i,PUBLICPATH as a}from"./common.js";import r from"./done.js";import p from"./envFlags.js";import"./generate-api.js";import m from"./html-add-entry-attr.js";import c from"./html-plugin-option.js";import{moduleFederation as u}from"./module-federation.js";import d from"./module.config.js";import{APPTYPE as f,DEV as g,FRAMEWORK as j,PACKAGENAME as h,PROGRAMPATH as b,frameworkCacheDir as y,hasEslintConfig as w,hasStylelintConfig as x}from"./process-env.js";import"./routes.js";import{seo as k}from"./seo.js";import{resolveNodeModulesPath as v,resolveProgramPath as O}from"./utils.js";import C from"./virtual-module-plugin.js";let P=[".eslintrc.js",".eslintrc.json",".eslintrc.yaml",".eslintrc.json"],$=[".stylelintrc",".stylelintrc.json",".stylelintrc.yaml",".stylelintrc.yml",".stylelintrc.js","stylelint.config.js","stylelint.config.cjs"],A=e.readdirSync(b),B=!1,S=!1;for(let e=0,t=A.length;e<t;e++)$.includes(A[e])&&(S=!0),P.includes(A[e])&&(B=!0);B||(B=w),S||(S=x);let T=S?(await import("stylelint-webpack-plugin")).default:null,M=B?(await import("eslint-webpack-plugin")).default:null;export const alias={"@":O("src"),"@framework-cache-dir":y};Object.assign(alias,l.alias),"library"===f&&Object.assign(alias,{"@":O("site"),"@pkg":O("components"),[h]:O("components")});let D=l.assetHtml.map(e=>({publicPath:"",...e}));export const outputConfig={path:O("library"===f?"docs":"dist"),filename:"js/[name].bundle.js",chunkFilename:"js/[name].chunk.js",assetModuleFilename:"assets/[name][hash][ext][query]",library:{name:h,type:"window"},globalObject:"window",chunkLoadingGlobal:`webpackJsonp_${h}`,pathinfo:g,clean:!0,publicPath:a};let F=v(`@moneko/${j}/lib/packages/${i[f]}/index.js`);"single-component"===f&&(Object.assign(alias,{[h]:O("umd")}),F=O(g?"example/index.ts":"src/index.ts"),outputConfig.path=O(g?"dist":"umd"),outputConfig.filename="index.js",outputConfig.globalObject="this",outputConfig.library={export:"default",name:h,type:"umd",umdNamedDefine:!0});let K={main:F};l.entry&&("string"==typeof l.entry?K=l.entry:Object.keys(l.entry)&&Object.assign(K,l.entry)),l.output&&("string"==typeof l.output?outputConfig.path=l.output:Object.keys(l.output)&&Object.assign(outputConfig,l.output));let L=l.routeBaseName.split("/").filter(Boolean).length,W=`${Array(L).fill("..").join("/")+(L?"/":"")}404.html`,{pathSegmentsToKeep:N=L,path:R=W}=l.fixBrowserRouter||{},_={entry:K,stats:"errors-only",infrastructureLogging:{level:"none"},target:"web",plugins:[new n.AutomaticPrefetchPlugin,...u,M&&new M({fix:!0,threads:!0,extensions:["js","md","mdx","cjs","ejs","mjs","jsx","ts","tsx","json","html","coffee","vue"]}),T&&new T({fix:!0,threads:!0,extensions:["css","scss","sass","less","ts","tsx","js","jsx"],exclude:["node_modules/","es/","lib/","docs/","coverage/","dist/"]}),l.htmlPluginOption&&new s(c),l.fixBrowserRouter&&new s({filename:R,inject:!1,templateContent:()=>`<html html><head><title>${c.title}</title><script>var pathSegmentsToKeep = ${N||L};var l = window.location;l.replace(l.protocol + '//' + l.hostname + (l.port ? ':' + l.port : '') + l.pathname.split('/').slice(0, 1 + pathSegmentsToKeep).join('/') + '/?/' + l.pathname.slice(1).split('/').slice(pathSegmentsToKeep).join('/').replace(/&/g, '~and~') + (l.search ? '&' + l.search.slice(1).replace(/&/g, '~and~') : '') + l.hash);</script></head><body></body></html>`}),new t(D),"single-spa"===f&&new m(e=>!!(e.match(/main\.(.*)\.bundle.js$/)||e.match("main.bundle.js"))),new n.DefinePlugin(p),new n.WatchIgnorePlugin({paths:[/\.d\.ts$/]}),l.sourceMap&&new n.SourceMapDevToolPlugin(l.sourceMap),l.bar&&new o(l.bar),new r({done:()=>{!g&&l.seo&&k(),l.done?.(),g||setTimeout(()=>{process.exit(0)},2e3)}}),new C({name:"env-flags",contents:p}),...l.plugins].filter(Boolean),experiments:{topLevelAwait:!0,syncWebAssembly:!0,asyncWebAssembly:!0},resolve:{extensions:[".tsx",".ts",".js",".jsx"],alias:alias,fallback:{path:!1,fs:!1,crypto:!1,assert:!1}},module:d,externals:l.externals,output:outputConfig};export default _;
1
+ import e from"fs";import t from"add-asset-html-webpack-plugin";import s from"html-webpack-plugin";import o from"webpack";import n from"webpackbar";import{CONFIG as l,ENTRYPATH as i,PUBLICPATH as a}from"./common.js";import r from"./define.js";import"./docs.js";import p from"./done.js";import m from"./html-add-entry-attr.js";import c from"./html-plugin-option.js";import{moduleFederation as u}from"./module-federation.js";import d from"./module.config.js";import{APPTYPE as f,DEV as j,FRAMEWORK as g,PACKAGENAME as h,PROGRAMPATH as b,hasEslintConfig as y,hasStylelintConfig as w}from"./process-env.js";import"./routes.js";import{seo as x}from"./seo.js";import{resolveNodeModulesPath as k,resolveProgramPath as v}from"./utils.js";import O from"./virtual-module-plugin.js";import C from"./virtual-modules.js";let P=[".eslintrc.js",".eslintrc.json",".eslintrc.yaml",".eslintrc.json"],$=[".stylelintrc",".stylelintrc.json",".stylelintrc.yaml",".stylelintrc.yml",".stylelintrc.js","stylelint.config.js","stylelint.config.cjs"],A=e.readdirSync(b),B=!1,S=!1;for(let e=0,t=A.length;e<t;e++)$.includes(A[e])&&(S=!0),P.includes(A[e])&&(B=!0);B||(B=y),S||(S=w);let T=S?(await import("stylelint-webpack-plugin")).default:null,M=B?(await import("eslint-webpack-plugin")).default:null;export const alias={"@":v("src")};Object.assign(alias,l.alias),"library"===f&&Object.assign(alias,{"@":v("site"),"@pkg":v("components"),[h]:v("components")});let D=l.assetHtml.map(e=>({publicPath:"",...e}));export const outputConfig={path:v("library"===f?"docs":"dist"),filename:"js/[name].bundle.js",chunkFilename:"js/[name].chunk.js",assetModuleFilename:"assets/[name][hash][ext][query]",library:{name:h,type:"window"},globalObject:"window",chunkLoadingGlobal:`webpackJsonp_${h}`,pathinfo:j,clean:!0,publicPath:a};let K=k(`@moneko/${g}/lib/packages/${i[f]}/index.js`);"single-component"===f&&(Object.assign(alias,{[h]:v("umd")}),K=v(j?"example/index.ts":"src/index.ts"),outputConfig.path=v(j?"dist":"umd"),outputConfig.filename="index.js",outputConfig.globalObject="this",outputConfig.library={export:"default",name:h,type:"umd",umdNamedDefine:!0});let L={main:K};l.entry&&("string"==typeof l.entry?L=l.entry:Object.keys(l.entry)&&Object.assign(L,l.entry)),l.output&&("string"==typeof l.output?outputConfig.path=l.output:Object.keys(l.output)&&Object.assign(outputConfig,l.output));let W=l.routeBaseName.split("/").filter(Boolean).length,F=`${Array(W).fill("..").join("/")+(W?"/":"")}404.html`,{pathSegmentsToKeep:N=W,path:R=F}=l.fixBrowserRouter||{},_={entry:L,stats:"errors-only",infrastructureLogging:{level:"none"},target:"web",plugins:[new o.AutomaticPrefetchPlugin,...u,M&&new M({fix:!0,threads:!0,extensions:["js","md","mdx","cjs","ejs","mjs","jsx","ts","tsx","json","html","coffee","vue"]}),T&&new T({fix:!0,threads:!0,extensions:["css","scss","sass","less","ts","tsx","js","jsx"],exclude:["node_modules/","es/","lib/","docs/","coverage/","dist/"]}),l.htmlPluginOption&&new s(c),l.fixBrowserRouter&&new s({filename:R,inject:!1,templateContent:()=>`<html html><head><title>${c.title}</title><script>var pathSegmentsToKeep = ${N||W};var l = window.location;l.replace(l.protocol + '//' + l.hostname + (l.port ? ':' + l.port : '') + l.pathname.split('/').slice(0, 1 + pathSegmentsToKeep).join('/') + '/?/' + l.pathname.slice(1).split('/').slice(pathSegmentsToKeep).join('/').replace(/&/g, '~and~') + (l.search ? '&' + l.search.slice(1).replace(/&/g, '~and~') : '') + l.hash);</script></head><body></body></html>`}),new t(D),"single-spa"===f&&new m(e=>!!(e.match(/main\.(.*)\.bundle.js$/)||e.match("main.bundle.js"))),new o.DefinePlugin(r),new o.WatchIgnorePlugin({paths:[/\.d\.ts$/]}),l.sourceMap&&new o.SourceMapDevToolPlugin(l.sourceMap),l.bar&&new n(l.bar),new p({done:()=>{!j&&l.seo&&x(),l.done?.(),j||setTimeout(()=>{process.exit(0)},2e3)}}),new O(C),...l.plugins].filter(Boolean),experiments:{topLevelAwait:!0,syncWebAssembly:!0,asyncWebAssembly:!0},resolve:{extensions:[".tsx",".ts",".js",".jsx"],alias:alias,fallback:{path:!1,fs:!1,crypto:!1,assert:!1}},module:d,externals:l.externals,output:outputConfig};export default _;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "3.0.0-beta.80",
3
+ "version": "3.0.0-beta.82",
4
4
  "description": "core",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
package/lib/envFlags.d.ts DELETED
@@ -1,17 +0,0 @@
1
- declare const envFlags: {
2
- projectName: string;
3
- projectCoverage: string;
4
- providerConfig: string;
5
- fallbackCompPath: string;
6
- ReactDOMPath: string;
7
- favicon: string;
8
- hasLocales: string;
9
- hasPersist: string;
10
- layoutSider: string;
11
- hasAntd: string;
12
- APPTYPE: string;
13
- APPENTRY: string;
14
- programInfo: string;
15
- 'process.env': string;
16
- };
17
- export default envFlags;
package/lib/envFlags.js DELETED
@@ -1 +0,0 @@
1
- import i from"fs";import r from"path";import{CONFIG as t}from"./common.js";import{coverage as e}from"./coverage.js";import o from"./html-plugin-option.js";import{APPTYPE as s,NODE_ENV as n,PACKAGENAME as f,PROGRAMPATH as a,hasAntd as c,programInfo as m}from"./process-env.js";import{toUpperCaseString as p}from"./utils.js";let l="library"===s?"site":"src",g=!1;try{let t=r.join(a,"./src/index.ts");i.accessSync(t,i.constants.R_OK),g=t}catch(i){g=!1}let y={projectName:JSON.stringify(p(f)),projectCoverage:JSON.stringify(e),providerConfig:JSON.stringify({prefixCls:t.prefixCls,iconPrefixCls:`${t.prefixCls}-icon`,theme:t.theme}),fallbackCompPath:JSON.stringify(t.fallbackCompPath),ReactDOMPath:JSON.stringify("react-dom/client"),favicon:JSON.stringify(o.favicon),hasLocales:JSON.stringify(i.existsSync(r.join(a,`./${l}/locales`))),hasPersist:JSON.stringify(i.existsSync(r.join(a,`./${l}/persist.ts`))),layoutSider:JSON.stringify(t.layoutSider),hasAntd:JSON.stringify(c),APPTYPE:JSON.stringify(s),APPENTRY:JSON.stringify(g),programInfo:JSON.stringify({...m,routeBaseName:t.routeBaseName,designSize:t.designSize,routerMode:t.routerMode,renderMode:t.mode}),"process.env":JSON.stringify({NODE_ENV:n,iconfont:t.iconfont,...t.env})};export default y;