@moneko/core 3.0.0-beta.131 → 3.0.0-beta.133

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-entry.js CHANGED
@@ -1 +1 @@
1
- import{existsSync as o}from"fs";import{join as p}from"path";import t from"./common/rem.js";import{CONFIG as n}from"./common.js";import r from"./persist.js";import{APPTYPE as e,FRAMEWORK as i,isMicro as m}from"./process-env.js";import{getExportTokens as s}from"./utils.js";let a=n.alias["@"],_=o(p(a,"./persist.ts")),u=p(n.alias["@"],"./index.ts"),l=o(u),d="",f=`const renderApp = (await import('@moneko/${i}/lib/entry.js')).default;`,c=[];if(l){let o="";m&&(c=s(u).filter(Boolean)).length&&(o=`{${c.map(o=>`${o} as app${o}`).join(",")}} from `),d=`import ${o}"@/index.ts";`}n.normalizeCss&&(d+=`import "@moneko/${i}/lib/normalize.css";`),_&&(d+=r),n.rem?.designSize&&(d+=t),m?(d+="if (window.__POWERED_BY_QIANKUN__) {__webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;}",f+=`if (!window.__POWERED_BY_QIANKUN__) {renderApp();}let unmountApp = void 0;export async function bootstrap() {console.log('app bootstraped');}export async function mount(props) {${c.includes("mount")?"appmount(props);":""}unmountApp = renderApp(props);}export async function unmount(props) {${c.includes("unmount")?"appunmount(props);":""}unmountApp();}`):f+="renderApp();","mobile"===e&&(d+="window.H5RemoteRuntime = {bootstrap: renderApp};");let A=`${d}${f}`;export default A;
1
+ import{existsSync as o}from"fs";import{join as p}from"path";import{CONFIG as t}from"./common.js";import{APPTYPE as n,FRAMEWORK as r,isMicro as e}from"./process-env.js";import i from"./rem.js";import{getExportTokens as m}from"./utils.js";let s=p(t.alias["@"],"./index.ts"),_=o(s),u="",a=`const renderApp = (await import('@moneko/${r}/lib/entry.js')).default;`,l=[];if(_){let o="";e&&(l=m(s).filter(Boolean)).length&&(o=`{${l.map(o=>`${o} as app${o}`).join(",")}} from `),u=`import ${o}"@/index.ts";`}u+=`import "@app/normalize.css";${i}`,e?(u+="if (window.__POWERED_BY_QIANKUN__) {__webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;}",a+=`if (!window.__POWERED_BY_QIANKUN__) {renderApp();}let unmountApp = void 0;export async function bootstrap() {console.log('app bootstraped');}export async function mount(props) {${l.includes("mount")?"appmount(props);":""}unmountApp = renderApp(props);}export async function unmount(props) {${l.includes("unmount")?"appunmount(props);":""}unmountApp();}`):a+="renderApp();","mobile"===n&&(u+="window.H5RemoteRuntime = {bootstrap: renderApp};");let d=`${u}${a}`;export default d;
package/lib/app.d.ts CHANGED
@@ -7,7 +7,6 @@ declare const app: {
7
7
  prefixCls: string | undefined;
8
8
  theme: import("./index.js").Theme | undefined;
9
9
  type: import("./index.js").AppType;
10
- persist: boolean;
11
10
  projectName: string;
12
11
  iconfont: {
13
12
  scriptUrl?: string | string[] | undefined;
package/lib/app.js CHANGED
@@ -1 +1 @@
1
- import{existsSync as o}from"fs";import{join as e}from"path";import{CONFIG as t}from"./common.js";import r from"./html-plugin-option.js";import{APPTYPE as s,PACKAGENAME as m,PROGRAMPATH as i,isLibrary as p,programInfo as f}from"./process-env.js";import{toUpperCaseString as l}from"./utils.js";let n=p?"site":"src",a={...f,base:t.routeBaseName,routerMode:t.routerMode,mode:t.mode,locales:o(e(i,`./${n}/locales`)),favicon:r.favicon,prefixCls:t.prefixCls,theme:t.theme,type:s,persist:o(e(i,`./${n}/persist.ts`)),projectName:JSON.stringify(l(m)),iconfont:t.iconfont};export default a;
1
+ import{existsSync as o}from"fs";import{join as e}from"path";import{CONFIG as r}from"./common.js";import t from"./html-plugin-option.js";import{APPTYPE as m,PACKAGENAME as i,PROGRAMPATH as s,isLibrary as f,programInfo as p}from"./process-env.js";import{toUpperCaseString as l}from"./utils.js";let n={...p,base:r.routeBaseName,routerMode:r.routerMode,mode:r.mode,locales:o(e(s,`./${f?"site":"src"}/locales`)),favicon:t.favicon,prefixCls:r.prefixCls,theme:r.theme,type:m,projectName:JSON.stringify(l(i)),iconfont:r.iconfont};export default n;
package/lib/common.js CHANGED
@@ -1 +1 @@
1
- import{accessSync as e,constants as t}from"fs";import{join as o}from"path";import s from"readline";import r from"chalk";import{merge as i}from"webpack-merge";import{APPTYPE as n,CUSTOMCONFIG as a,FRAMEWORK as l,PACKAGENAME as c,PROGRAMPATH as m,jsxImportSource as u,pkgName as p}from"./process-env.js";import{isFunction as d,readConf as h,resolveProgramPath as f}from"./utils.js";export const ENTRYPATH={mobile:"mobile",site:"site",backstage:"backstage",micro:"micro",library:"library"};let g=[`@moneko/${l}`,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design","@app"],x={library:{"@":f("site"),"@pkg":f("components"),[c]:f("components")},mobile:{},site:{},backstage:{},micro:{}},b={seo:!1,mode:"csr",compiler:"swc",bundleAnalyzer:!1,entry:{},minifier:{js:{},css:{}},sourceMap:{filename:"[file].map",publicPath:""},env:{},routeBaseName:"/",publicPath:"/",rem:{designSize:"mobile"===n?375:1680},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:Object.assign({"@":f("src")},x[n]),layoutSider:{},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:`${m}/node_modules/.temp_cache`,devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:!1,compress:!1},htmlPluginOption:{template:`./node_modules/${p}/template/index.html`,favicon:`./node_modules/${p}/template/favicon.ico`,tags:[]},assetHtml:[],routerMode:"browser",fixBrowserRouter:!1,plugins:[],splitChunk:{chunks:"all",minSize:1024,minChunks:1,cacheGroups:{route:{test:/[\\/].git[\\/]router/,priority:-10,reuseExistingChunk:!0,name:"route"},example:{test:/[\\/].git[\\/]example/,priority:-10,reuseExistingChunk:!0,name:"example"}}},runtimeChunk:"single",moduleFederation:[],rulesInclude:{less:g,css:g,js:g,media:g,fonts:g},mdx:{jsxImportSource:u,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"},virtualModule:{},normalizeCss:!0,externalsPresets:{}};export const log=e=>{s.cursorTo(process.stdout,0),process.stdout.write(e)};let y=b,w=null,C={},k={};try{w=o(m,"./config/index.ts"),e(w,t.R_OK)}catch(e){w=null}if(w)try{let e=(await h(w,"index")).default;C=d(e)?e(process):e}catch(e){process.stdout.write(r.red(e))}if(a){let s=null;try{s=o(m,`./config/${a}.ts`),e(s,t.R_OK)}catch(e){s=null}if(null!==s)try{let e=(await h(s,a)).default;k=d(e)?e(process):e}catch(e){process.stdout.write(r.red(e))}}"tsc"===(y=i(y,C,k)).compiler&&y.minifier&&(y.minifier.js||Object.assign(y.minifier,{js:{type:"terser"}}),y.minifier.css||Object.assign(y.minifier,{css:{type:"swc"}})),!1===y.devtool&&(y.sourceMap=!1),!1===y.sourceMap&&(y.devtool=!1),y.fixBrowserRouter&&y.htmlPluginOption&&(y.htmlPluginOption.tags||(y.htmlPluginOption.tags=[]),y.htmlPluginOption.tags.push({textContent:'!function(n){var a=location.search.slice(1);if("/"===a[0]){for(var o=[],c=decodeURIComponent(a).split("&"),e=0,t=c.length;e<t;e++)o.push(c[e].replace(/~and~/g,"&"));var l=o.join("&");l!==a&&window.history.replaceState(null,null,"".concat(n.pathname.slice(0,-1),"?").concat(l).concat(n.hash))}}(window.location);'}));export const CONFIG=y;export const PUBLICPATH=CONFIG.publicPath||"/";export let hasCustomRouter=!1;try{e(o(CONFIG.alias["@"],"./router/index.ts"),t.R_OK),hasCustomRouter=!0}catch(e){hasCustomRouter=!1}global.NEKOCLICONFIG={CONFIG,log};
1
+ import{accessSync as e,constants as t}from"fs";import{join as o}from"path";import s from"readline";import r from"chalk";import{merge as i}from"webpack-merge";import{APPTYPE as n,CUSTOMCONFIG as a,FRAMEWORK as l,PACKAGENAME as c,PROGRAMPATH as m,jsxImportSource as u,pkgName as p}from"./process-env.js";import{isFunction as d,readConf as h,resolveProgramPath as f}from"./utils.js";export const ENTRYPATH={mobile:"mobile",site:"site",backstage:"backstage",micro:"micro",library:"library"};let g=[`@moneko/${l}`,"neko-ui","antd","@antv","katex","font-pingfang-sc","font-pingfang-tc","react-photo-view","react-markdown-editor-lite","schema-design","@app"],x={library:{"@":f("site"),"@pkg":f("components"),[c]:f("components")},mobile:{},site:{},backstage:{},micro:{}},b={seo:!1,mode:"csr",compiler:"swc",bundleAnalyzer:!1,entry:{},minifier:{js:{},css:{}},sourceMap:{filename:"[file].map",publicPath:""},env:{},routeBaseName:"/",publicPath:"/",rem:{designSize:"mobile"===n?375:1680},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:Object.assign({"@":f("src")},x[n]),layoutSider:{},moduleRules:[],prefixJsLoader:[],cssModules:[],importOnDemand:{},proxy:[],cacheDirectory:`${m}/node_modules/.temp_cache`,devServer:{allowedHosts:[".baidu.com"],host:"localhost",port:3e3,https:!1,compress:!1},htmlPluginOption:{template:`./node_modules/${p}/template/index.html`,favicon:`./node_modules/${p}/template/favicon.ico`,tags:[]},assetHtml:[],routerMode:"browser",fixBrowserRouter:!1,plugins:[],splitChunk:{chunks:"all",minSize:1024,minChunks:1,cacheGroups:{route:{test:/[\\/].git[\\/]router/,priority:-10,reuseExistingChunk:!0,name:"route"},example:{test:/[\\/].git[\\/]example/,priority:-10,reuseExistingChunk:!0,name:"example"}}},runtimeChunk:"single",moduleFederation:[],rulesInclude:{less:g,css:g,js:g,media:g,fonts:g},mdx:{jsxImportSource:u,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"},virtualModule:{},normalizeCss:!0,externalsPresets:{}};export const log=e=>{s.cursorTo(process.stdout,0),process.stdout.write(e)};let y=b,C=null,w={},k={};try{C=o(m,"./config/index.ts"),e(C,t.R_OK)}catch(e){C=null}if(C)try{let e=(await h(C,"index")).default;w=d(e)?e(process):e}catch(e){process.stdout.write(r.red(e))}if(a){let s=null;try{s=o(m,`./config/${a}.ts`),e(s,t.R_OK)}catch(e){s=null}if(null!==s)try{let e=(await h(s,a)).default;k=d(e)?e(process):e}catch(e){process.stdout.write(r.red(e))}}"tsc"===(y=i(y,w,k)).compiler&&y.minifier&&(y.minifier.js||Object.assign(y.minifier,{js:{type:"terser"}}),y.minifier.css||Object.assign(y.minifier,{css:{type:"cssnano"}})),!1===y.devtool&&(y.sourceMap=!1),!1===y.sourceMap&&(y.devtool=!1),y.fixBrowserRouter&&y.htmlPluginOption&&(y.htmlPluginOption.tags||(y.htmlPluginOption.tags=[]),y.htmlPluginOption.tags.push({textContent:'!function(n){var a=location.search.slice(1);if("/"===a[0]){for(var o=[],c=decodeURIComponent(a).split("&"),e=0,t=c.length;e<t;e++)o.push(c[e].replace(/~and~/g,"&"));var l=o.join("&");l!==a&&window.history.replaceState(null,null,"".concat(n.pathname.slice(0,-1),"?").concat(l).concat(n.hash))}}(window.location);'}));export const CONFIG=y;export const PUBLICPATH=CONFIG.publicPath||"/";export let hasCustomRouter=!1;try{e(o(CONFIG.alias["@"],"./router/index.ts"),t.R_OK),hasCustomRouter=!0}catch(e){hasCustomRouter=!1}global.NEKOCLICONFIG={CONFIG,log};
package/lib/docs.js CHANGED
@@ -1 +1 @@
1
- import{statSync as e}from"fs";import{dirname as t,join as o}from"path";import{watch as r}from"chokidar";import{CONFIG as i}from"./common.js";import n from"./generate-api.js";import s from"./object-listener.js";import{FRAMEWORK as p,FRAMEWORKNAME as l,createElement as a,isLibrary as c,isSolid as m}from"./process-env.js";import{resolveProgramPath as d}from"./utils.js";let f="@app/comment";export const docs=s({});let u={[f]:{}},$=`() => ${a}(SuspenseComp, { comp: $1 })`,g=`import { ${a} } from "${l}";import { SuspenseComp } from "@moneko/${p}";`;function b(e,r){let s=e.replace(RegExp(`^${i.alias["@pkg"]}`),""),p=t(s).replace(/^\//,""),l=[f,p].join("/"),c=s.split("/").pop()?.replace(/\.tsx?/,".md");if(!c)return;u[f][p]||(u[f][p]={});let m=o(l,c);if("deleted"===r)u[f][p][c]&&delete u[f][p][c];else{let t=n(e);u[m]=t,t?u[f][p][c]=`rr(() => import(/* webpackChunkName: '${m}' */'${m}?raw').then((res) => ({default: ${a}(Dynamic, {text: res.default, component: 'n-md', css: 'table td a {display:inline-flex;align-items:center;gap:2px;}table td a n-img{display:inline-block;overflow:hidden;border-radius:var(--border-radius);inline-size:18px;block-size:18px;}'})})))rr`:u[f][p][c]&&delete u[f][p][c]}let d={};for(let e in u[f])Object.prototype.hasOwnProperty.call(u[f],e)&&(d[e]=Object.values(u[f][e]));let b={...u};delete b[f],Object.assign(docs.data,{...b,"@app/docs":`${g}export default ${JSON.stringify(d).replace(/"rr\((.+?)\)rr"/g,$)}`})}["react","solid"].includes(p)||($="$1",g=""),m&&(g=`import { Dynamic } from "${l}/web";${g}`),c&&function(){let t=[],o=r(d("components"),{ignored:[/(^|[\\/\\])\../,/(^|[\\/\\])__tests__([\\/\\]|$)/],persistent:!0,ignoreInitial:!1});function i(t){return/\.tsx?$/.test(t)&&e(t).isFile()}o.on("add",e=>{i(e)&&(b(e,"added"),t.push(e))}),o.on("change",e=>{i(e)&&b(e,"change")}),o.on("unlink",e=>{i(e)&&(b(e,"deleted"),t.splice(t.indexOf(e),1))}),o.on("ready",()=>{t.forEach(e=>{b(e,"change")})}),process.on("SIGINT",function(){o.close()})}();
1
+ import{statSync as e}from"fs";import{dirname as t,join as o}from"path";import{watch as r}from"chokidar";import{CONFIG as i}from"./common.js";import n from"./generate-api.js";import s from"./object-listener.js";import{FRAMEWORK as p,FRAMEWORKNAME as l,createElement as a,isLibrary as c,isSolid as m}from"./process-env.js";import{resolveProgramPath as d}from"./utils.js";let f="@app/comment";export const docs=s({});let u={[f]:{}},$=`() => ${a}(SuspenseComp, { comp: $1 })`,g=`import { ${a} } from "${l}";import SuspenseComp from "@app/suspense";`;function b(e,r){let s=e.replace(RegExp(`^${i.alias["@pkg"]}`),""),p=t(s).replace(/^\//,""),l=[f,p].join("/"),c=s.split("/").pop()?.replace(/\.tsx?/,".md");if(!c)return;u[f][p]||(u[f][p]={});let m=o(l,c);if("deleted"===r)u[f][p][c]&&delete u[f][p][c];else{let t=n(e);u[m]=t,t?u[f][p][c]=`rr(() => import(/* webpackChunkName: '${m}' */'${m}?raw').then((res) => ({default: ${a}(Dynamic, {text: res.default, component: 'n-md', css: 'table td a {display:inline-flex;align-items:center;gap:2px;}table td a n-img{display:inline-block;overflow:hidden;border-radius:var(--border-radius);inline-size:18px;block-size:18px;}'})})))rr`:u[f][p][c]&&delete u[f][p][c]}let d={};for(let e in u[f])Object.prototype.hasOwnProperty.call(u[f],e)&&(d[e]=Object.values(u[f][e]));let b={...u};delete b[f],Object.assign(docs.data,{...b,"@app/docs":`${g}export default ${JSON.stringify(d).replace(/"rr\((.+?)\)rr"/g,$)}`})}["react","solid"].includes(p)||($="$1",g=""),m&&(g=`import { Dynamic } from "${l}/web";${g}`),c&&function(){let t=[],o=r(d("components"),{ignored:[/(^|[\\/\\])\../,/(^|[\\/\\])__tests__([\\/\\]|$)/],persistent:!0,ignoreInitial:!1});function i(t){return/\.tsx?$/.test(t)&&e(t).isFile()}o.on("add",e=>{i(e)&&(b(e,"added"),t.push(e))}),o.on("change",e=>{i(e)&&b(e,"change")}),o.on("unlink",e=>{i(e)&&(b(e,"deleted"),t.splice(t.indexOf(e),1))}),o.on("ready",()=>{t.forEach(e=>{b(e,"change")})}),process.on("SIGINT",function(){o.close()})}();
package/lib/locales.js CHANGED
@@ -1,2 +1,2 @@
1
- import{readFileSync as e}from"fs";import{basename as o,join as t}from"path";import{watch as r}from"chokidar";import s from"./app.js";import n from"./esm.js";import c from"./object-listener.js";import{FRAMEWORK as i,__dirname as l,isLibrary as a}from"./process-env.js";import{resolveProgramPath as p,tfc as f}from"./utils.js";let m={react:'import { persistence } from "@moneko/common";import sso from "shared-store-object";',solid:'import { createEffect, createRoot, getOwner } from "solid-js";import { createStore } from "solid-js/store";'},d=e(t(l,`./common/localisable-${i}.txt`),{encoding:"utf-8"});export const locales=c({name:"@app/locales",data:"export const locales = [];export const resources = {};"});let u={};async function g(e,t){let r=o(e).replace(/\.[^.]+$/,"");if("deleted"===t)delete u[r];else{let o=await import(n`${f(e)}`);Object.assign(u,{[r]:o.default})}let s=[],c={};for(let e in u)if(Object.prototype.hasOwnProperty.call(u,e)){let o=u[e],{language:t=r,title:n=t,icon:i,translation:l={}}=o;s.push({language:t,title:n,icon:i}),c[t]={language:t,title:n,icon:i,translation:l}}Object.assign(locales.data,{data:`${m[i]}
2
- export function interpolateString(r,n){return r.replace(/\\\${\\w+}/g,function(r){var t=r.slice(2,-1);var e=n[t];return e!==void 0?e.toString():""})}function deepFreeze(o) { const p = Reflect.ownKeys(o);for (const k of p) {const v = o[k];if ((v && typeof v === "object") || typeof v === "function") {deepFreeze(v);}}return Object.freeze(o);}export const locales = ${JSON.stringify(s)};const _res = ${JSON.stringify(c)};const resources = deepFreeze(_res);${d}`})}s.locales&&function(e,o){let t=[],s=r(e,{ignored:o,persistent:!0,ignoreInitial:!1});s.on("add",e=>{g(e,"added"),t.push(e)}),s.on("change",e=>{g(e,"change")}),s.on("unlink",e=>{g(e,"deleted"),t.splice(t.indexOf(e),1)}),s.on("ready",()=>{t.forEach(e=>{g(e,"change")})}),process.on("SIGINT",function(){s.close()})}(p(a?"site/locales":"src/locales"),[/^\..*/,/!\.ts$/,/\.d\.ts$/]);
1
+ import{basename as e}from"path";import{watch as t}from"chokidar";import o from"./app.js";import a from"./esm.js";import l from"./object-listener.js";import{FRAMEWORK as r,isLibrary as n}from"./process-env.js";import{resolveProgramPath as s,tfc as c}from"./utils.js";let i={react:'import sso from "shared-store-object";',solid:'import { createEffect, createRoot, getOwner } from "solid-js";import { createStore } from "solid-js/store";'},g={react:'let storageKey="localizable.language",language=localStorage.getItem(storageKey)||"zh_CN",{translation:a,...defaultLocale}=Object.assign({title:"简体中文",language:"zh_CN",translation:{}},resources[language]||resources.zh_CN),localizable=sso({lang:defaultLocale,t:a});export function setLang(a){let{translation:e,...l}=resources[a]||{};e&&(localizable.lang=l,localizable.t=e,localStorage.setItem(storageKey,l.language))}export default localizable;',solid:'let locale=createRoot(()=>{let e="localizable.language",a=localStorage.getItem(e)||"zh_CN",{translation:l,...o}=Object.assign({title:"简体中文",language:"zh_CN",translation:{}},resources[a]||resources.zh_CN),[n,c]=createStore({lang:o,t:l});return createEffect(()=>{let a=resources[n.lang.language]?.translation;a&&(c("t",a),localStorage.setItem(e,n.lang.language))}),{localizable:n,setLocalizable:c,setLang:function(e){let{translation:a,...l}=resources[e]||{};a&&c("lang",l)}}},getOwner());export const setLocalizable=locale.setLocalizable;export const t=locale.localizable.t;export const lang=locale.localizable.lang;export const setLang=locale.setLang;'}[r];export const locales=l({name:"@app/locales",data:"export const locales = [];"});let p={};async function f(t,o){let l=e(t).replace(/\.[^.]+$/,"");if("deleted"===o)delete p[l];else{let e=await import(a`${c(t)}`);Object.assign(p,{[l]:e.default})}let n=[],s={};for(let e in p)if(Object.prototype.hasOwnProperty.call(p,e)){let t=p[e],{language:o=l,title:a=o,icon:r,translation:c={}}=t;n.push({language:o,title:a,icon:r}),s[o]={language:o,title:a,icon:r,translation:c}}Object.assign(locales.data,{data:`${i[r]}
2
+ export function interpolateString(r,n){return r.replace(/\\\${\\w+}/g,function(r){var t=r.slice(2,-1);var e=n[t];return e!==void 0?e.toString():""})}function deepFreeze(o) { const p = Reflect.ownKeys(o);for (const k of p) {const v = o[k];if ((v && typeof v === "object") || typeof v === "function") {deepFreeze(v);}}return Object.freeze(o);}export const locales = ${JSON.stringify(n)};const _res = ${JSON.stringify(s)};const resources = deepFreeze(_res);${g}`})}o.locales&&function(e,o){let a=[],l=t(e,{ignored:o,persistent:!0,ignoreInitial:!1});l.on("add",e=>{f(e,"added"),a.push(e)}),l.on("change",e=>{f(e,"change")}),l.on("unlink",e=>{f(e,"deleted"),a.splice(a.indexOf(e),1)}),l.on("ready",()=>{a.forEach(e=>{f(e,"change")})}),process.on("SIGINT",function(){l.close()})}(s(n?"site/locales":"src/locales"),[/^\..*/,/!\.ts$/,/\.d\.ts$/]);
package/lib/rem.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ declare let rem: string;
2
+ export default rem;
package/lib/rem.js ADDED
@@ -0,0 +1 @@
1
+ import{CONFIG as e}from"./common.js";let t="";e.rem.designSize&&(t=`!function(e,n){function t(){let n=e.documentElement,t=n.clientWidth||e.body.clientWidth,i=t<=375?375:${e.rem.designSize},o=t;o=t<=375?t:t<=${e.rem.designSize}?i:t;let d=16/i*o+"px";d!==n.style.fontSize&&(n.style.fontSize=d)}t(),"addEventListener"in e&&n.addEventListener("orientationchange"in n?"orientationchange":"resize",t,!1)}(document,window);`);export default t;
package/lib/routes.js CHANGED
@@ -1,3 +1,2 @@
1
- let e,t;import{readFileSync as r,readdirSync as o,statSync as s}from"fs";import{join as n,relative as a}from"path";import{watch as i}from"chokidar";import{load as l}from"js-yaml";import{hasCustomRouter as p}from"./common.js";import c from"./object-listener.js";import{FRAMEWORK as m,FRAMEWORKNAME as u,PROGRAMPATH as d,createElement as f,isLibrary as g}from"./process-env.js";let x=/^---\n([\s\S]+?)\n---\n/;function h(e){return e.replace(/\$/g,":").replace(/^index\.tsx?$/,"/").replace(/^README\.mdx?$/,"/")}function $(e,t){let{regex:i,alia:p,base:c=e,outputSource:m}=t,u=o(e);return u.reduce((o,u)=>{let d=n(e,u),f=s(d);if(f.isDirectory()){let e=$(d,{...t,base:c});if(e.length>0){let t={},r={path:h(u),key:h(a(c,d))};if(m)Object.assign(t,{children:e});else{let o=e.findIndex(e=>"/"===e.path||r.path===e.path),s=e.splice(o,1)[0];e.length?Object.assign(t,{children:[{...s,path:r.path===s.path?"/":s.path},...e]}):Object.assign(t,s)}o.push(Object.assign(t,r))}}else if(i.test(d)){let e=r(d,{encoding:"utf-8"}),t=function(e){let t=e.match(x);return t&&t[1]?t[1].trim():null}(e),s=t?l(t):{},i=a(c,d),u=h(i);o.push(Object.assign({path:u.split("/").slice(-2,-1)?.join("")||"/",key:u.replace(/\/?index.tsx?$/,"/").replace(/\/?README.mdx?$/,"/").split("/").filter(Boolean).join("/"),meta:{...s}},p&&{component:`rr(() => import(/* webpackChunkName: '${i}' */'${n(p,i)}'))rr`},m&&{codes:function(e){let t;let r={},o=/```(.+?)\n([\s\S]*?)\n```/g;for(;null!==(t=o.exec(e));){let[,e="jsx",o]=t,s=e.split(" ").pop()||"jsx";r[s]=o.trim()}return Object.keys(r).length?r:{jsx:e}}(e.replace(x,"").replace(/^\n+|\n+$/g,""))}))}return o},[])}let j=n(d,"./components");export const route=c({name:"@app/routes",data:"export default []"});export const example=c({name:"@app/example",data:{}});let b=`() => ${f}(SuspenseComp, { comp: $1 })`,O=`import { ${f} } from "${u}";import { SuspenseComp } from "@moneko/${m}";`;p&&(O+=`import merge from "@moneko/${m}/lib/merge.js";import customRouter from "@/router";`),["react","solid"].includes(m)||(b="$1",O="");export let routes=[];function k(e,t,r){let o=i(e,{ignored:(e,r)=>{if(r)return!r?.isDirectory()&&t.test(e)},persistent:!0,ignoreInitial:!1});o.on("add",()=>{r()}).on("change",()=>{r()}).on("unlink",()=>{r()}),process.on("SIGINT",function(){o.close()})}let y=n(d,"./src/pages");g?(k(j,/(?<!README\.mdx?)$/,function(){clearTimeout(e),e=setTimeout(()=>{clearTimeout(e),routes=$(j,{regex:/README\.mdx?$/,alia:"@pkg"});let t=JSON.stringify(routes).replace(/"rr\((.+?)\)rr"/g,b).slice(1,-1);Object.assign(route.data,{data:`${O}const routes = [{ path: "/", children: [{ path: "/" }, ${t}] }];
2
- export default ${p?'merge([...routes, ...customRouter], "path")':"routes"}`})},100)}),k(j,/(?<!\/examples\/(.+)\.md)$/,function(){clearTimeout(t),t=setTimeout(()=>{clearTimeout(t);let e={};$(j,{regex:/\/examples\/(.+)\.md$/,outputSource:!0}).forEach(t=>{let r=[example.data.name,t.key].filter(Boolean).join("/"),o=t.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);Object.assign(e,{[r]:`export default ${JSON.stringify(o)};`})}),Object.assign(example.data,{data:e})},100)})):k(y,/(?<!index\.tsx?)$/,function(){clearTimeout(e),e=setTimeout(()=>{clearTimeout(e),routes=$(y,{regex:/index\.tsx?$/,alia:"@/pages"});let t=JSON.stringify(routes).replace(/"rr\((.+?)\)rr"/g,b).slice(1,-1);Object.assign(route.data,{data:`${O}const routes = [{ path: "/", children: [{ path: "/" }, ${t}] }];
1
+ let e,t;import{readFileSync as r,readdirSync as o,statSync as n}from"fs";import{join as s,relative as i}from"path";import{watch as a}from"chokidar";import{load as l}from"js-yaml";import{hasCustomRouter as p}from"./common.js";import c from"./object-listener.js";import{FRAMEWORK as m,FRAMEWORKNAME as u,PROGRAMPATH as d,createElement as f,isLibrary as h,isReact as x,isSolid as g}from"./process-env.js";let $=/^---\n([\s\S]+?)\n---\n/,j=g?"component":"element";function b(e){return e.replace(/\$/g,":").replace(/^index\.tsx?$/,"/").replace(/^README\.mdx?$/,"/")}function O(e,t){let{regex:a,alia:p,base:c=e,outputSource:m}=t,u=o(e);return u.reduce((o,u)=>{let d=s(e,u),f=n(d);if(f.isDirectory()){let e=O(d,{...t,base:c});if(e.length>0){let t={},r={path:b(u),key:b(i(c,d))};if(m)Object.assign(t,{children:e});else{let o=e.findIndex(e=>"/"===e.path||r.path===e.path),n=e.splice(o,1)[0];e.length?Object.assign(t,!g&&n,{children:[g&&{...n,path:r.path===n.path?"/":n.path},...e].filter(Boolean)}):Object.assign(t,n)}o.push(Object.assign(t,r))}}else if(a.test(d)){let e=r(d,{encoding:"utf-8"}),t=function(e){let t=e.match($);return t&&t[1]?t[1].trim():null}(e),n=t?l(t):{},a=i(c,d),u=b(a);o.push(Object.assign({path:u.split("/").slice(-2,-1)?.join("")||"/",key:u.replace(/\/?index.tsx?$/,"/").replace(/\/?README.mdx?$/,"/").split("/").filter(Boolean).join("/"),meta:{...n}},p&&{[j]:`rr(() => import(/* webpackChunkName: '${a}' */'${s(p,a)}'))rr`},m&&{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 o},[])}let y=s(d,"./components");export const route=c({name:"@app/routes",data:"export default []"});export const example=c({name:"@app/example",data:{}});let _=`${g?"() => ":""}${f}(SuspenseComp, { comp: $1 })`,E=`import { ${f} ${g?"":",isValidElement"} } from "${u}";import SuspenseComp from "@app/suspense";`;p&&(E+=`import merge from "@moneko/${m}/lib/merge.js";import customRouter from "@/router";`);let k="";x&&p&&(k="function prefix(list){return list.map(r=>{const _=Object.assign({key:r.path},r);if(_.element&&!isValidElement(_.element)){_.element=createElement(_.element,_.meta)}if(Array.isArray(_.children)){_.children=prefix(_.children)}return _})}"),["react","solid"].includes(m)||(_="$1",E="");export let routes=[];function T(e,t,r){let o=a(e,{ignored:(e,r)=>{if(r)return!r?.isDirectory()&&t.test(e)},persistent:!0,ignoreInitial:!1});o.on("add",()=>{r()}).on("change",()=>{r()}).on("unlink",()=>{r()}),process.on("SIGINT",function(){o.close()})}let S=s(d,"./src/pages");h?(T(y,/(?<!README\.mdx?)$/,function(){clearTimeout(e),e=setTimeout(()=>{clearTimeout(e),routes=O(y,{regex:/README\.mdx?$/,alia:"@pkg"});let t=JSON.stringify(routes).replace(/"rr\((.+?)\)rr"/g,_).slice(1,-1);Object.assign(route.data,{data:`${E}const routes = [{ path: "/", children: [{ path: "/" }, ${t}] }];const _routes = ${p?'merge([...routes, ...customRouter], "path")':"routes"};${k}export default ${x&&p?"prefix(_routes)":"_routes"};`})},100)}),T(y,/(?<!\/examples\/(.+)\.md)$/,function(){clearTimeout(t),t=setTimeout(()=>{clearTimeout(t);let e={};O(y,{regex:/\/examples\/(.+)\.md$/,outputSource:!0}).forEach(t=>{let r=[example.data.name,t.key].filter(Boolean).join("/"),o=t.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);Object.assign(e,{[r]:`export default ${JSON.stringify(o)};`})}),Object.assign(example.data,{data:e})},100)})):T(S,/(?<!index\.tsx?)$/,function(){clearTimeout(e),e=setTimeout(()=>{clearTimeout(e),routes=O(S,{regex:/index\.tsx?$/,alia:"@/pages"});let t=JSON.stringify(routes).replace(/"rr\((.+?)\)rr"/g,_).slice(1,-1);Object.assign(route.data,{data:`${E}const routes = [{ path: "/", children: [${g?'{ path: "/" },':""} ${t}] }];
3
2
  export default ${p?'merge([...routes, ...customRouter], "path")':"routes"}`})},100)});
@@ -1 +1 @@
1
- import{accessSync as p,constants as o}from"fs";import{join as t}from"path";import a from"./app-entry.js";import r from"./app.js";import{CONFIG as e}from"./common.js";import{coverage as m}from"./coverage.js";import{isLibrary as l}from"./process-env.js";import{resolveProgramPath as s}from"./utils.js";let f={...e.virtualModule,"@app":r,"@app/fallback":"export default null","@app/coverage":m,"@app/entry":a};e.fallbackCompPath&&Object.assign(f,{"@app/fallback":`import Fallback from "${e.fallbackCompPath}";export default Fallback;`});let c={};if(l)try{let a=t(s("site"),"./mdx-scope.ts");p(a,o.R_OK),c='import scope from "@/mdx-scope";export default scope;'}catch(p){c={}}Object.assign(f,{"@app/mdx-scope":c});export default f;
1
+ import{accessSync as e,constants as t}from"fs";import{join as o}from"path";import r from"./app-entry.js";import n from"./app.js";import{CONFIG as a}from"./common.js";import{coverage as i}from"./coverage.js";import{FRAMEWORKNAME as p,isLibrary as s,isReact as l}from"./process-env.js";import{resolveProgramPath as c}from"./utils.js";let b={...a.virtualModule,"@app":n,"@app/fallback":"export default null","@app/coverage":i,"@app/entry":r,"@app/normalize.css":"","@app/suspense/index.tsx":`import ${l?"React,":""}{Suspense,lazy} from "${p}";import Fallback from '@app/fallback';${s?'import scope from "@app/mdx-scope";':""}function SuspenseComp(props) {const Lazy = lazy(props.comp);return (<Suspense fallback={Fallback && <Fallback />}><Lazy ${s?"components={scope}":""}/></Suspense>);}export default SuspenseComp;`};a.normalizeCss&&Object.assign(b,{"@app/normalize.css":'html,body{margin:0;padding:0;line-height:1.8}input,textarea{caret-color:inherit}h1{margin:0.67em 0;font-size:2em}hr{overflow:visible;block-size:0;box-sizing:content-box}pre{font-size:1em;font-family:monospace}a{text-decoration:none;background-color:transparent;cursor:pointer}abbr[title]{border-block-end:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-size:1em;font-family:monospace}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{inset-block-end:-0.25em}sup{inset-block-start:-0.5em}img{border-style:none}img,button{outline:1px solid transparent}button,input,optgroup,select,textarea{margin:0;font-size:100%;font-family:inherit;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted var(--primary-outline)}fieldset{padding:0.35em 0.75em 0.625em}legend{display:table;padding:0;max-inline-size:100%;white-space:normal;color:inherit;box-sizing:border-box}progress{vertical-align:baseline}textarea{overflow:auto}details{display:block}summary{display:list-item}template,[hidden]{display:none}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{block-size:auto}[type="search"]{appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}::-webkit-scrollbar{inline-size:5px;block-size:5px}::-webkit-scrollbar-track,::-webkit-scrollbar-thumb{background-color:transparent}:hover::-webkit-scrollbar-thumb{background-color:var(--primary-selection)}::-webkit-scrollbar-thumb:hover{background-color:var(--primary-hover)}::-webkit-scrollbar-thumb:active{background-color:var(--primary-active)}::-webkit-scrollbar-button{display:none}'}),a.fallbackCompPath&&Object.assign(b,{"@app/fallback":`import Fallback from "${a.fallbackCompPath}";export default Fallback;`});let m={};if(s)try{let r=o(c("site"),"./mdx-scope.ts");e(r,t.R_OK),m='import scope from "@/mdx-scope";export default scope;'}catch(e){m={}}Object.assign(b,{"@app/mdx-scope":m});export default b;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "3.0.0-beta.131",
3
+ "version": "3.0.0-beta.133",
4
4
  "description": "core",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
@@ -88,10 +88,6 @@ export declare type ConfigType<T extends 'tsc' | 'swc' = 'swc'> = {
88
88
  /** 环境变量, 可通过 process.env 获取 */
89
89
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
90
  env?: Record<string, any>;
91
- // /** persistence 持久化数据使用的key, 为 false 时关闭持久化
92
- // * @default false
93
- // **/
94
- // persistence?: string | false;
95
91
  devtool?: Configuration['devtool'];
96
92
  sourceMap?: SourceMapDevToolPluginOptions | false;
97
93
  /** 路径别名映射 */
@@ -1,20 +0,0 @@
1
- const language = persistence.load('localizable.language', 'zh_CN');
2
- const { translation, ...defaultLocale } = Object.assign(
3
- { title: '简体中文', language: 'zh_CN', translation: {} },
4
- resources[language] || resources.zh_CN,
5
- );
6
- const localizable = sso({
7
- lang: defaultLocale,
8
- t: translation,
9
- });
10
- export const lang = localizable.lang;
11
- export const t = localizable.t;
12
- export function setLang(localeName) {
13
- const { translation: _t, ...lang } = resources[localeName] || {};
14
-
15
- if (_t) {
16
- localizable.lang = lang;
17
- localizable.t = _t;
18
- }
19
- }
20
- export const setLocalizable = localizable;
@@ -1,34 +0,0 @@
1
- const locale = createRoot(() => {
2
- const storageKey = 'localizable.language';
3
- const language = localStorage.getItem(storageKey) || 'zh_CN';
4
- const { translation, ...defaultLocale } = Object.assign(
5
- { title: '简体中文', language: 'zh_CN', translation: {} },
6
- resources[language] || resources.zh_CN,
7
- );
8
- const [localizable, setLocalizable] = createStore({
9
- lang: defaultLocale,
10
- t: translation,
11
- });
12
-
13
- createEffect(() => {
14
- const _t = resources[localizable.lang.language]?.translation;
15
-
16
- if (_t) {
17
- setLocalizable('t', _t);
18
- localStorage.setItem(storageKey, localizable.lang.language);
19
- }
20
- });
21
- function setLang(localeName) {
22
- const { translation: _t, ...lang } = resources[localeName] || {};
23
-
24
- if (_t) {
25
- setLocalizable('lang', lang);
26
- }
27
- }
28
- return { localizable, setLocalizable, setLang };
29
- }, getOwner());
30
-
31
- export const setLocalizable = locale.setLocalizable;
32
- export const t = locale.localizable.t;
33
- export const lang = locale.localizable.lang;
34
- export const setLang = locale.setLang;
@@ -1,2 +0,0 @@
1
- declare const _default: string;
2
- export default _default;
package/lib/common/rem.js DELETED
@@ -1,28 +0,0 @@
1
- import{CONFIG as e}from"../common.js";export default`(function (doc, win) {
2
- function refreshRem() {
3
- const docEl = doc.documentElement;
4
- const clientWidth = docEl.clientWidth || doc.body.clientWidth;
5
- const _designSize = clientWidth <= 375 ? 375 : ${e.rem?.designSize};
6
- let unitSize = clientWidth;
7
-
8
- if (clientWidth <= 375) {
9
- unitSize = clientWidth;
10
- } else if (clientWidth <= ${e.rem?.designSize}) {
11
- unitSize = _designSize;
12
- } else {
13
- unitSize = clientWidth;
14
- }
15
- const rootSize = (16 / _designSize) * unitSize + 'px';
16
-
17
- if (rootSize !== docEl.style.fontSize) {
18
- docEl.style.fontSize = rootSize;
19
- }
20
- }
21
- refreshRem();
22
- if ('addEventListener' in doc) {
23
- const resizeEvt = 'orientationchange' in win ? 'orientationchange' : 'resize';
24
-
25
- win.addEventListener(resizeEvt, refreshRem, false);
26
- }
27
- })(document, window);
28
- `;
package/lib/persist.d.ts DELETED
@@ -1,2 +0,0 @@
1
- declare const _default: "import { persistence } from '@moneko/common';import obj from '@/persist';function persist() {for (const key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {persistence.set(key, obj[key]);}}window.removeEventListener('unload', persist, false);}window.addEventListener('unload', persist, false);";
2
- export default _default;
package/lib/persist.js DELETED
@@ -1 +0,0 @@
1
- export default"import { persistence } from '@moneko/common';import obj from '@/persist';function persist() {for (const key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {persistence.set(key, obj[key]);}}window.removeEventListener('unload', persist, false);}window.addEventListener('unload', persist, false);";