@moneko/core 4.5.8-beta.1 → 4.5.8
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/bin/changelog.mjs +3 -3
- package/lib/bin/commit-lint.mjs +1 -1
- package/lib/bin/eslint.mjs +2 -2
- package/lib/bin/pin.mjs +1 -1
- package/lib/bin/pure-lint.mjs +1 -1
- package/lib/bin/stylelint.mjs +2 -2
- package/lib/build-dev.mjs +2 -2
- package/lib/build.mjs +2 -2
- package/lib/commom/ca.mjs +1 -1
- package/lib/commom/corepack.mjs +1 -1
- package/lib/commom/paths.d.mts +0 -1
- package/lib/commom/paths.mjs +1 -1
- package/lib/common.mjs +1 -1
- package/lib/config.mjs +1 -1
- package/lib/dev/mock.mjs +1 -1
- package/lib/dev/server.mjs +1 -1
- package/lib/module.config.mjs +1 -1
- package/lib/options/modify-vars.mjs +1 -1
- package/lib/plugin/copy.mjs +1 -1
- package/lib/plugin/exposes-declararion.mjs +1 -1
- package/lib/plugin/html-plugin.mjs +1 -1
- package/lib/plugin/manifest/index.mjs +1 -1
- package/lib/plugin/module-federation.mjs +1 -1
- package/lib/plugin/override-resolve.mjs +1 -1
- package/lib/utils/create-types.mjs +1 -1
- package/lib/utils/fetch-module-federation-dts.mjs +1 -1
- package/lib/utils/index.d.mts +2 -3
- package/lib/utils/index.mjs +1 -1
- package/lib/utils/seo.mjs +2 -2
- package/lib/vm/app.mjs +1 -1
- package/lib/vm/dts.mjs +1 -1
- package/lib/vm/example.mjs +1 -1
- package/lib/vm/generate-doc.mjs +1 -1
- package/lib/vm/locales.mjs +2 -2
- package/lib/vm/scope.mjs +1 -1
- package/lib/vm/sw.mjs +1 -1
- package/lib/worker/eslint.mjs +1 -1
- package/lib/worker/stylelint.mjs +1 -1
- package/package.json +1 -1
package/lib/bin/changelog.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{execSync as t}from"node:child_process";import{
|
|
2
|
-
${t.title}`),t.logs)Object.prototype.hasOwnProperty.call(t.logs,e)&&(
|
|
1
|
+
import{execSync as t}from"node:child_process";import{join as e}from"node:path";import{argv as o}from"node:process";import{updateFileSync as r}from"@moneko/utils";import s from"../commom/log.mjs";import{cwd as i}from"./utils/config.mjs";let l={feat:"✨ Features",fix:"🐛 Bug Fixes",docs:"📚 Documentation",style:"💎 Styles",refactor:"📦 Code Refactoring",perf:"🚀 Performance Improvements",test:"🚨 Tests",build:"🛠 Builds",ci:"⚙️ Continuous Integrations",chore:"♻️ Chores",revert:"🗑 Reverts"};function a(e,o){var r=t(`git log ${e?`${e}..`:""}${o||""} --format="%H|%an|%ae|%ad|%s"`,{encoding:"utf-8"});let s=[];for(let t of r.trim().split("\n")){let[e,o,r,i,a]=t.split("|");if(a){let t=a.split(": "),n=l[t[0]];s.push({commitId:e,author:o,email:r,date:new Date(i).toLocaleString().replace(/\//g,"-"),message:n?t.slice(1).join(":"):a,type:n})}}return s}export default function n(){let l=o[3],n=["# Change log"];try{let e,o,r,s=t('git config --get remote.origin.url | sed "s/\\.git$//"').toString().trim().replace(/^git@([^:]+):(.+)$/,"https://$1/$2"),i=(e=t('git for-each-ref --sort="v:refname" --format "%(objectname) %(refname:short) %(creatordate:iso8601)" refs/tags',{encoding:"utf-8"}),o=[],(r=e.trim().split("\n")).forEach((t,e)=>{let[i,l,a]=t.split(" "),n=r[e-1]?.split(" ")[1],m=`## ${l}`;n&&(m=`## [${l}](${s}/compare/${n}...${l}) (${new Date(a).toLocaleDateString().replace(/\//g,"-")})`),o.push({commitId:i,tag:l,date:a,title:m,logs:{}})}),o);i.forEach((t,e)=>{if(e&&a(i[e-1].tag,t.tag).forEach(t=>{if(t.type){let o=i[e].logs[t.type]||[];o.push(`- ${t.message} ([${t.commitId.substring(0,7)}](${s}/commit/${t.commitId}))`),Object.assign(i[e].logs,{[t.type]:o})}}),e===i.length-1){let o=a(t.tag);o.length&&i.push({title:"## Last",logs:{}}),o.forEach(t=>{if(t.type){let o=i[e+1].logs[t.type]||[];o.push(`- ${t.message} ([${t.commitId.substring(0,7)}](${s}/commit/${t.commitId}))`),Object.assign(i[e+1].logs,{[t.type]:o})}})}}),i.reverse().forEach(t=>{for(let e in n.push(`
|
|
2
|
+
${t.title}`),t.logs)Object.prototype.hasOwnProperty.call(t.logs,e)&&(n.push(`
|
|
3
3
|
### ${e}
|
|
4
|
-
`),t.logs[e].forEach(t=>
|
|
4
|
+
`),t.logs[e].forEach(t=>n.push(t)))})}catch(t){n.push("\n当前分支尚无任何提交\n"),s(t)}r(e(i,l),n.join("\n"))}
|
package/lib/bin/commit-lint.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var e;let t,r,a,s,n,o;import{
|
|
2
|
+
var e;let t,r,a,s,n,o;import{join as l}from"node:path";import{argv as i}from"node:process";import{ink as c,loadFileSync as m,println as u}from"@moneko/utils";import p from"../commom/log.mjs";import d from"../commom/paths.mjs";import{getConfigWithTypescript as b}from"../utils/index.mjs";function g(e){return/^[A-Z][a-z\d\s]*$/.test(e)}function h(e){return/^([A-Z][a-z\d]*\s*)+$/.test(e)}function f(e){return/^([A-Z][a-z\d]*)+$/.test(e)}function y(e){return e===e.toUpperCase()}(t=i[2]||l(d.programPath,".git","COMMIT_EDITMSG"))||(p("Commit message file path is required."),process.exit(1)),null===(r=m(t))&&(p("Commit message cannot be empty"),process.exit(1)),a=b(l(d.programPath,"commitlint.config.ts")).default,e=function(e,t){let r={...e};for(let e in t)Object.hasOwn(t,e)&&Object.assign(r,{[e]:t[e]});return r}({"body-leading-blank":[1,"always"],"body-max-line-length":[2,"always",200],"footer-leading-blank":[1,"always"],"footer-max-line-length":[2,"always",100],"header-max-length":[2,"always",100],"header-trim":[2,"always"],"subject-case":[2,"never",["sentence-case","start-case","pascal-case","upper-case"]],"subject-empty":[2,"never"],"subject-full-stop":[2,"never","."],"type-case":[2,"always","lower-case"],"type-empty":[2,"never"],"type-enum":[2,"always",[["build",["Modifies the build system or external dependencies.","修改构建系统或外部依赖"]],["chore",["Performs routine maintenance or tool changes unrelated to features or fixes.","执行与功能或修复无关的日常维护、工具更改"]],["ci",["Modifies continuous integration/deployment configuration or scripts.","修改持续集成/部署的配置或脚本(如 GitHub Actions、Travis CI)"]],["docs",["Updates documentation only.","仅修改文档(如 README、注释)"]],["feat",["Introduces a new feature.","添加新的功能或特性"]],["fix",["Addresses and resolves a bug in the code.","修复代码中的错误或 Bug"]],["perf",["Improves performance without altering functionality.","性能优化,且不影响功能的更改"]],["refactor",["Restructures code without fixing bugs or adding features.","重构代码,既不修复错误也不添加功能"]],["revert",["Reverts a previous commit.","撤销之前的某次提交"]],["style",["Adjusts code style or formatting without affecting logic.","修改代码的样式、格式,而不影响逻辑"]],["test",["Adds or modifies test cases.","添加或修改测试用例"]],["merge",["Merges branches.","合并分支"]]]]},a),s=function(e){let t=e.trim().split("\n"),r=t[0]||"",a=r.match(/^([a-zA-Z]+)(?:\([a-zA-Z0-9-]+\))?:\s*(.+)$/),s=a?a[1]:"",n=a?a[2]:r,o=1;for(;o<t.length&&""===t[o].trim();)o++;let l=t.length;for(let e=o,r=/^(BREAKING CHANGE|[A-Za-z-]+(?:\([A-Za-z-]+\))?:)/,a=t.length;e<a;e++)if(r.test(t[e])){l=e;break}return{header:r,type:s,subject:n,body:t.slice(o,l).join("\n"),footer:t.slice(l).join("\n"),raw:e,lines:t}}(r),n={valid:!0,errors:[],warnings:[]},Object.entries(e).forEach(e=>{let[t,r]=e,[a,o,...l]=r;if(0===a)return;let i=!0,m="";switch(t){case"body-leading-blank":i=!s.body||s.lines.length>1&&""===s.lines[1].trim(),m="body must have leading blank line";break;case"body-max-line-length":{let e=l[0]||100;i=s.body.split("\n").every(t=>t.length<=e),m=`body's lines must not be longer than ${e} characters`;break}case"footer-leading-blank":i=!s.footer||""===s.lines[s.lines.length-s.footer.split("\n").length-1].trim(),m="footer must have leading blank line";break;case"footer-max-line-length":{let e=l[0]||100;i=s.footer.split("\n").every(t=>t.length<=e),m=`footer's lines must not be longer than ${e} characters`;break}case"header-max-length":{let e=l[0]||100;i=s.header.length<=e,m=`header must not be longer than ${e} characters`;break}case"header-trim":i=s.header.trim()===s.header,m="header must not have leading or trailing whitespace";break;case"subject-case":{let e=l[0]||[],t=s.subject.trim(),r={"sentence-case":g,"start-case":h,"pascal-case":f,"upper-case":y};i=!e.some(e=>r[e]&&r[e](t)),m=`subject must not be in ${e.join(", ")}`;break}case"subject-empty":i=""!==s.subject.trim(),m="subject cannot be empty";break;case"subject-full-stop":{let e=l[0]||".";i=!s.subject.trim().endsWith(e),m=`subject must not end with ${e}`;break}case"type-case":"lower-case"==("always"===o?"lower-case":"upper-case")?(i=s.type===s.type.toLowerCase(),m="type must be lower-case"):(i=s.type===s.type.toUpperCase(),m="type must be upper-case");break;case"type-empty":i=""!==s.type,m="type cannot be empty";break;case"type-enum":{let e=l[0]||[],t=e.map(e=>e[0]);i=t.includes(s.type.toLowerCase());let r=Math.max(...t.map(e=>e.length));m=["type must be one of","",...e.map(e=>`${" ".repeat(4)}${e[0]}:${" ".repeat(r-e[0].length)} ${function(e,t=""){return Array.isArray(e)?e.map((e,r)=>r?`${t}${c(e,"245",{})}`:e).join("\n"):e}(e[1]," ".repeat(r+6))}`)].join("\n")}}if("never"===o&&(i=!0),!i){let e={level:a,message:m,name:t};2===a?(n.errors.push(e),n.valid=!1):1===a&&n.warnings.push(e)}}),(function(e){let t=[" ","⚠","✖"],r={green:"\x1b[32m",yellow:"\x1b[33m",red:"\x1b[31m",gray:"\x1b[90m",reset:"\x1b[0m",bold:"\x1b[1m"},{errors:a=[],warnings:s=[]}=e,n=[...a,...s].map(e=>{let a=r[2===e.level?"red":"yellow"]+t[e.level]+r.reset;return`${a} ${e.message} ${r.gray}[${e.name}]${r.reset}`}),o=a.length>0?"✖":s.length?"⚠":"✔",l=a.length>0?r.red:s.length?r.yellow:r.green,i=n.length>0;return[...n,i?"":null,`${l}${o}${r.reset} ${r.gray}${r.bold}found ${a.length} problems, ${s.length} warnings${r.reset}`,i?"":null].filter(e=>null!==e)})(o=n).forEach(e=>{u(e)}),process.exit(+!o.valid);
|
package/lib/bin/eslint.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`,
|
|
1
|
+
import{relative as e,sep as o}from"node:path";import{argv as t,exit as i,stdout as r}from"node:process";import{ESLint as l}from"@moneko/eslint";import{ink as a,print as c}from"@moneko/utils";import{cachePath as s,cwd as n,parseBraced as m}from"./utils/config.mjs";export default async function f(){let f=a("eslint","cyan");c(`${f}: ${a("Runing...","yellow")}`,!0);let u=t[3],p=t.slice(4),d=p.includes("--fix"),w=new l({cache:!p.includes("--cache=false"),cacheLocation:`${s}/.eslintcache`,fix:d}),h=m(u).map(t=>e(n,t).replaceAll(o,"/")),$=await w.lintFiles(h),y=await w.loadFormatter("stylish"),x=await y.format($,{cwd:process.cwd(),rulesMeta:{}});d&&await l.outputFixes($),x&&r.write(x);let g=$.some(e=>e.errorCount>0);c(`${f}: ${a(`✨ ${g?"Error":"Successfully"}!
|
|
2
|
+
`,g?"red":"green")}`,!0),g&&i(1)}
|
package/lib/bin/pin.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{spawn as e}from"node:child_process";import{ink as
|
|
1
|
+
import{spawn as e}from"node:child_process";import{relative as t}from"node:path";import{ink as a,println as n,progressBar as o,updateFile as r}from"@moneko/utils";import{getPackageManager as l}from"../commom/package-manager.mjs";import s from"../commom/parse-args.mjs";import m from"../commom/paths.mjs";import{readJson as i}from"../commom/read-json.mjs";import c from"../commom/require.mjs";let p=c.resolve(`${m.programPath}/package.json`);async function d(t){return new Promise(a=>{let n=e("npm",["view",t,"version"],{shell:!0}),o="";n.stdout.on("data",e=>{o+=e}),n.stderr.on("data",e=>{let t=e.toString().split("\n").filter(e=>e.includes("GET http")).map(e=>e.split(" - ")[0].trim());t.length&&(o+=`Err: ${t[0]}`.trim())}),n.on("close",async()=>{a(o.trim())})})}async function u(e,t){let a={...e};return o(t.done.length,t.total,{name:"Checking"}),await Promise.allSettled(Object.keys(a).map(async e=>{let n=await d(e);t.done.includes(e)||t.done.push(e),o(t.done.length,t.total,{name:"Checking",msg:`${t.done.length} / ${t.total}`}),a[e]=n})),a}let h={major:"red",minor:"yellow",patch:"cyan",equal:"white"};async function g(e,t,a,n){if(e[t]){var o;let r=await u(e[t],n),l=(o=e[t],Object.keys(r).filter(e=>{let t=$(o[e]);return o[e]!==`${t[0]}${r[e]}`}).map(e=>{var t,a;let n,l,s=$(o[e]),m=r[e].includes("Err:"),i=m?"red":h[t=s[1],a=r[e],n=t.split("."),l=a.split("."),n[0]!==l[0]?"major":n[1]!==l[1]?"minor":n[2]!==l[2]?"patch":"equal"];return{name:e,wanted:o[e],latest:`${s[0]}${r[e].replace("Err:","")}`,color:i,err:m?r[e]:void 0}}));l.length&&(a[t]=l)}}function f(e,t,a){return e.reduce((e,n)=>Math.max(e,t[n].reduce((e,t)=>Math.max(e,t[a]?.length??0),0)),0)}function $(e){let t=e.match(/^([^\d]*)(.*)$/);return t?[t[1],t[2]]:["",e]}async function y(){let e=s(process.argv),o=i(p),c={done:[],total:Object.keys({...o.peerDependencies||{},...o.optionalDependencies||{},...o.devDependencies||{},...o.dependencies||{}}).length},d={};if(n(""),await Promise.allSettled([g(o,"peerDependencies",d,c),g(o,"optionalDependencies",d,c),g(o,"devDependencies",d,c),g(o,"dependencies",d,c)]),n(""),Object.keys(d)?.length>0){let s=l(o.packageManager),i=Object.keys(d),c="".padEnd(3," ");n(""),n(a("⚡ Updates available for:","magenta",{bold:!0})),n("");let u=f(i,d,"name"),h=f(i,d,"latest"),g=f(i,d,"wanted");i.forEach(e=>{n(a(`${e}:`,"145")),d[e].forEach(t=>{n(`${a(t.name.padEnd(u," "),t.color,{bold:!0})}${c}${t.wanted.padStart(g," ")}${c}${a("→",t.color)}${c}${a(t.latest.padStart(h," "),t.color)}`),t.err||(o[e][t.name]=t.latest)}),n("")}),e["-u"]?(await r(p,JSON.stringify(o,null,2)),n(`✅ ${a(t(m.programPath,p),"yellow")} upgrade completed successfully.`),n(`⏳ Run ${a(`${s} install`,"blue")} to install new versions.`)):n(`⏳ Run ${a("mo pin -u","blue")} to upgrade package.json`)}else n(""),n("🎉 All dependencies match the latest package versions");n("")}export default y;
|
package/lib/bin/pure-lint.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{spawnSync as t}from"node:child_process";import{argv as
|
|
2
|
+
import{spawnSync as t}from"node:child_process";import{join as e}from"node:path";import{argv as i,cwd as o,exit as r,stdout as n}from"node:process";import{ESLint as l}from"@moneko/eslint";import{stylelint as a}from"@moneko/stylelint";import{ink as s,loadFile as m,println as c}from"@moneko/utils";import d from"../commom/log.mjs";import f from"../commom/parse-args.mjs";import u from"../commom/timer.mjs";let p=f(i.slice(2)),y=p.fix,w=p.cache||!0,h=e(o(),"node_modules/.cache"),S={ci:["diff","--name-only","HEAD^","HEAD"],commit:["diff","--cached","--name-only","--diff-filter=ACM"]},j=/.*(?<!\.d)\.(j|t|mj|mt|cj|ct)sx?$/i,$=/.*(?<!\.d)\.vue$/i,g=/.*(?<!\.d)\.(c|sc|sa|le)ss$/i,v=/\.min\.(j|t|mj|mt|cj|ct)sx?$/i,E=t("git",S[p.mode||"ci"]||S.ci).stdout.toString().trim().split("\n");async function L(){let t=s("ESLint","cyan");c(`${t}: ${s("runing...","yellow")}`,!0);try{u.start("ESLint");let t=E.filter(t=>!(t.endsWith("iconfont.js")||v.test(t))&&(j.test(t)||$.test(t)));if(0===t.length)return void u.end("ESLint");let e=new l({cache:w,cacheLocation:`${h}/.eslintcache`,fix:y}),i=await e.lintFiles(t),o=await e.loadFormatter("stylish"),a=await o.format(i,{cwd:process.cwd(),rulesMeta:{}});y&&await l.outputFixes(i),a&&n.write(a);let s=i.some(t=>t.errorCount>0);u.end("ESLint"),s&&r(1)}catch(t){d(t)}}let x=E.filter(t=>g.test(t)||$.test(t));async function k(){let t=s("Stylelint","cyan");if(c(`${t}: ${s("runing...","yellow")}`,!0),u.start("Stylelint"),0===x.length)return void u.end("Stylelint");let e=await Promise.allSettled(x.map(async t=>{let e=await m(t);if(e)return await a.lint({codeFilename:t,code:e,cache:w,cacheLocation:`${h}/.stylelintcache`,fix:y,formatter:"string"}).catch(d)})),i=!1;e.forEach(t=>{"fulfilled"===t.status?t.value&&(t.value.report&&n.write(t.value.report),t.value.errored&&(i=!!t.value.errored)):t.reason&&(n.write(t.reason),i=!1)}),u.end("Stylelint"),i&&r(1)}await Promise.allSettled([L(),k()]);
|
package/lib/bin/stylelint.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{argv as
|
|
2
|
-
`,$?"red":"green")}`,!0),$&&
|
|
1
|
+
import{relative as e,sep as s}from"node:path";import{argv as t,exit as r,stdout as o}from"node:process";import{stylelint as l}from"@moneko/stylelint";import{ink as i,print as c}from"@moneko/utils";import{cachePath as n,cwd as a,parseBraced as m}from"./utils/config.mjs";async function f(){let f=i("stylelint","cyan");c(`${f}: ${i("Runing...","yellow")}`,!0);let p=t[3],u=t.slice(4),d=u.includes("--fix"),y=await l.lint({files:m(p).map(t=>e(a,`${t}/**/*.{css,scss,sass,less,ts,tsx,js,jsx}`).replaceAll(s,"/")),fix:d,cache:!u.includes("--cache=false"),cacheLocation:`${n}/.stylelintcache`,formatter:"string"}),$=y.errored;y.report&&o.write(y.report),c(`${f}: ${i(`✨ ${$?"Error":"Successfully"}!
|
|
2
|
+
`,$?"red":"green")}`,!0),$&&r(1)}export default f;
|
package/lib/build-dev.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"node:process";import{analyzeBundleSize as
|
|
2
|
-
`):(
|
|
1
|
+
import{relative as o,sep as r}from"node:path";import e from"node:process";import{analyzeBundleSize as t,completedInfo as m,ink as i,println as a,progressBar as n}from"@moneko/utils";import s from"webpack";import l from"./commom/log.mjs";import p from"./commom/paths.mjs";import{CONFIG as c}from"./config.mjs";import{createDevelopmentConfiguration as g}from"./create-development-configuration.mjs";let u=await g({});if(c.bar){let o=c.bar,r=o.name||"Build";u.plugins.push(new s.ProgressPlugin({handler(t,m,...i){let a=i.length?`[${m}] ${i.join(" ")}`:" ";o.quiet?e.stdout.write(`${a}
|
|
2
|
+
`):(n(t||0,1,{msg:a,name:r,barColor:o.barColor,nameColor:o.nameColor,barBgColor:o.barBgColor,msgColor:o.msgColor}),1===t&&e.stdout.write("\r\x1b[2K"))}}))}let d=s(u);async function f(){let e=await new Promise((o,r)=>{d?.run((e,t)=>{e&&r(e),t?o(t):r(Error("编译过程中没有生成统计信息"))})});(e.hasErrors()||e.hasWarnings())&&function(o){let{warnings:r,errors:e}=o.compilation,t=[];r.forEach(o=>{o.message.includes("Conflicting order between css ./node_modules/")&&o.message.includes("monaco-editor")?t.push(o.message):a(i(o.message,"178"))}),t.length&&l(t.join("\n")),e.forEach(o=>{a(i(o.message,"red"))})}(e),await new Promise(n=>{e.compilation.compiler.cache.shutdown(s=>{s&&a(i(s.toString(),"red")),t(e.compilation.outputOptions.path,["\\.js$"]),m(~~((e.endTime-e.startTime)/10)/100,o(p.programPath,e.compilation.outputOptions.path).replaceAll(r,"/")),n()})})}await f();
|
package/lib/build.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"node:process";import{analyzeBundleSize as
|
|
2
|
-
`):(
|
|
1
|
+
import{relative as o,sep as r}from"node:path";import e from"node:process";import{analyzeBundleSize as m,completedInfo as t,ink as i,println as s,progressBar as n}from"@moneko/utils";import a from"webpack";import{merge as l}from"webpack-merge";import p from"./build/common.mjs";import u from"./commom/log.mjs";import c from"./commom/paths.mjs";import{DonePlugin as g}from"./plugin/done.mjs";import d from"./utils/seo.mjs";import{CONFIG as f}from"./config.mjs";import h from"./module.config.mjs";let w=l(p,{module:h(!1),plugins:[]});if(f.done&&w.plugins.push(new g({done:f.done})),f.bar){let o=f.bar,r=o.name||"Build";w.plugins.push(new a.ProgressPlugin({handler(m,t,...i){let s=i.length?`[${t}] ${i.join(" ")}`:" ";o.quiet?e.stdout.write(`${s}
|
|
2
|
+
`):(n(m||0,1,{msg:s,name:r,barColor:o.barColor,nameColor:o.nameColor,barBgColor:o.barBgColor,msgColor:o.msgColor}),1===m&&e.stdout.write("\r\x1b[2K"))}}))}let b=a(w);if(!b)throw Error("无法创建编译器");async function j(){let e=await new Promise((o,r)=>{b?.run((e,m)=>{e&&r(e),m?o(m):r(Error("编译过程中没有生成统计信息"))})});(e.hasErrors()||e.hasWarnings())&&function(o){let{warnings:r,errors:e}=o.compilation,m=[];r.forEach(o=>{o.message.includes("Conflicting order between css ./node_modules/")&&o.message.includes("monaco-editor")?m.push(o.message):s(i(o.message,"178"))}),m.length&&u(m.join("\n")),e.forEach(o=>{s(i(o.message,"red"))})}(e),await new Promise(n=>{e.compilation.compiler.cache.shutdown(a=>{a&&s(i(a.toString(),"red")),m(e.compilation.outputOptions.path,["\\.js$"]),t(~~((e.endTime-e.startTime)/10)/100,o(c.programPath,e.compilation.outputOptions.path).replaceAll(r,"/")),n()})}),f.seo&&d()}await j();
|
package/lib/commom/ca.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{exec as t}from"node:child_process";import{
|
|
1
|
+
import{exec as t}from"node:child_process";import{join as e,relative as r}from"node:path";import{platform as o}from"node:process";import{promisify as i}from"node:util";import{fileExists as a,generateCert as l,loadFile as n,normalCertificateAuthority as c,println as s,saveFile as m}from"@moneko/utils";import f from"./log.mjs";import{getIPv4 as u}from"./net.mjs";import d from"./paths.mjs";let p=i(t);export const CA_ORGANIZATION="Local Root Certificate Authority - Moneko";export async function isCertificateInstalled(t){try{if("darwin"===o){let{stdout:e}=await p(`security find-certificate -c "${t}" -a`);return e.length>0}if("win32"===o){let{stdout:e}=await p(`certutil -store -user Root | findstr /C:"${t}"`);return e.length>0}}catch(t){f(t)}return!1}function y(t,e,r){if(t&&!r.includes("already exists"))return void f(t)}export function installCA(e){return"darwin"===o?t(`sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "${e}"`,y):"win32"===o?t(`certutil -addstore -user "Root" "${e}"`,y):void s(`⚠️ 暂不支持自动安装 CA 的平台: ${o}`)}export async function setupCert(t="localhost",o=!0){let i=r(d.programPath,`${d.corePath}/cert/cert.pem`),s=r(d.programPath,`${d.corePath}/cert/key.pem`),f=!a(i)||!a(s);if(f){let t=c();await Promise.allSettled([m(i,t.cert),m(s,t.key)])}o&&(!await isCertificateInstalled("Local Root Certificate Authority - Moneko")||f)&&installCA(i);let p=e(d.CA_DIR,`${t}_cert.pem`),y=e(d.CA_DIR,`${t}_key.pem`);if(f||!a(p)||!a(y)){let e=await Promise.all([n(i),n(s)]),r=l(e[0],e[1],[...new Set([t,"localhost","127.0.0.1",u()].filter(Boolean))]);await Promise.allSettled([m(p,r.cert),m(y,r.key)])}let h=await Promise.all([n(p),n(y)]);return{cert:h[0],key:h[1]}}
|
package/lib/commom/corepack.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{spawn as e}from"node:child_process";import{
|
|
1
|
+
import{spawn as e}from"node:child_process";import{dirname as r,join as o}from"node:path";import{execPath as a,platform as n,versions as p}from"node:process";import{ink as t,loadFile as m,println as i,saveFile as c}from"@moneko/utils";import{packageJson as s}from"../process-env.mjs";import l from"./log.mjs";import g from"./paths.mjs";let f=o(g.programPath,"package.json"),d=t("corepack","magenta"),k={stdio:"ignore",shell:!0};export function corepack(g){new Promise(p=>{if(s.packageManager){let t=e("corepack",["-v"],k);t.on("error",e=>{l(e),p(!1)}),t.on("exit",e=>{0!==e&&p(!1);let t=s.packageManager.split("@")[0],i="win32"===n?`${t}.cmd`:t;m(o(r(a),i)).then(e=>{p(e.includes("corepack"))}).catch(e=>{l(e),p(!1)})})}else p(!1)}).then(r=>{if(g){if(!s.packageManager){let e;s.packageManager=(e=Number(p.node.split(".")[0]))<16?"pnpm@7.33.7":e<18?"pnpm@8.15.9":"pnpm@10.14.0",c(f,JSON.stringify(s,null,2))}if(r)return;e("corepack",["enable"],k);return}r?i(`${d} is ${t("enabled","green")} ${t(`(${s.name})`,"245")}`):i(`${d} is ${t("disabled","yellow")} ${t(`(${s.name})`,"245")}`)}).catch(e=>{l(e)})}
|
package/lib/commom/paths.d.mts
CHANGED
package/lib/commom/paths.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tmpdir as o}from"node:os";import{cwd as t,env as e}from"node:process";import{fileURLToPath as
|
|
1
|
+
import{tmpdir as o}from"node:os";import{cwd as t,env as e}from"node:process";import{fileURLToPath as n,URL as a}from"node:url";import{fileExists as c}from"@moneko/utils";import{CUSTOMCONFIG as r}from"./custom-config.mjs";import{resolve as m}from"./posix.mjs";let s=JSON.parse(e.npm_config_argv||'{"original":[]}').original;export const __dirname=n(new a("..",import.meta.url));export const yarnArgv={};for(let o=0,t=s.length;o<t;o++){let t=s[o].split("=");Object.assign(yarnArgv,{[t[0]]:t[1]||!0})}export{CUSTOMCONFIG}from"./custom-config.mjs";let i=t(),p=m(i,"node_modules");export const TMP_DIR=m(o(),"@moneko");let h={nodeModules:p,pnpmNodeModules:m(p,".pnpm/node_modules"),denoNodeModules:m(p,".deno"),corePath:__dirname,programPath:i,CA_DIR:m(TMP_DIR,".ca"),webpackCachePath:m(p,".cache"),lintCachePath:m(p,".cache"),httpCachePath:m(p,".cache/http"),swcCachePath:m(p,".cache/.swc"),configPath:m(i,"config/index.ts"),customConfigPath:m(i,`config/${r}.ts`),coveragePath:m(i,"coverage/clover.xml"),pagesPath:m(i,"src/pages"),componentsPath:m(i,"components"),mockPath:m(i,"mock")};export const config_files=[c(h.configPath)&&h.configPath,c(h.customConfigPath)&&h.customConfigPath].filter(Boolean);export const routeDir="library"===e.APPTYPE?h.componentsPath:h.pagesPath;export default h;
|
package/lib/common.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e
|
|
1
|
+
import{extname as e,join as t,resolve as s}from"node:path";import o from"./commom/has-pkg.mjs";import a,{config_files as n,CUSTOMCONFIG as i}from"./commom/paths.mjs";import*as r from"./commom/rule.mjs";import{OverrideResolverPlugin as l}from"./plugin/override-resolve.mjs";import{isObject as m,resolveProgram as c}from"./utils/index.mjs";import{CONFIG as p}from"./config.mjs";import u from"./plugins.config.mjs";import{app_schema as h,CACHE_NAME as d,isDev as f,isLibrary as g,packageJson as y,projectNameCamelCase as b}from"./process-env.mjs";export const outputConfig={path:c(g?"docs":"dist"),filename:e=>e.filename?.includes(".worker")?"worker/[name].js":"js/[name].[contenthash].bundle.js",chunkFilename:"js/[contenthash].chunk.js",cssFilename:"style/[contenthash].css",cssChunkFilename:"style/[contenthash].chunk.css",assetModuleFilename:t=>{let s=e(t.filename||"").substring(1);return`assets/${s}/[hash][ext]`},library:{name:`${b}`,type:"umd",umdNamedDefine:!0},globalObject:"self",chunkLoadingGlobal:`webpackJsonp_${y.name}`,pathinfo:f,clean:!0,publicPath:p.publicPath,asyncChunks:!0,charset:!0,iife:!0,crossOriginLoading:"use-credentials",enabledWasmLoadingTypes:["fetch"],uniqueName:`${b}`};let j={main:[o(t(p.alias["@"],"service-worker")),`${h}:entry`].filter(Boolean)},v=[t(a.corePath,"./polyfills/public-path.mjs")];if(f&&p.refresh&&p.env.injectRemoteReactRefresh&&v.push(t(a.corePath,"./polyfills/inject-react-refresh.mjs")),p.polyfill&&v.push(t(a.corePath,"./polyfills/replace-children.mjs")),p.entry&&("string"==typeof p.entry?j={...j,main:[p.entry]}:Object.keys(p.entry)&&(j=Object.assign(j,p.entry))),"string"==typeof j.main?j.main=[...v,j.main]:Array.isArray(j.main)&&(j.main=[...v,...j.main]),p.output){if("string"==typeof p.output)outputConfig.path=p.output;else if(Object.keys(p.output)){let e=p.output,t={...outputConfig.library};Object.assign(outputConfig,e),"object"==typeof p.output&&e.library&&(outputConfig.library=Object.assign(t,e.library))}}let C={type:"filesystem",allowCollectingMemory:!0,cacheDirectory:a.webpackCachePath,memoryCacheUnaffected:!0,name:d,version:`${y.version}`,buildDependencies:{config:n},maxMemoryGenerations:1};!1===p.cache?C=!1:m(p.cache)&&(C=Object.assign(C,p.cache));let k={},P={imports:!0,entries:!0,test:e=>{let s=e.nameForCondition();return!!(s&&(/^[a-z][a-z0-9]*:.+$/.test(s)||s?.startsWith(t(a.programPath,"src"))||s?.startsWith(t(a.programPath,"site"))||s?.startsWith(a.componentsPath)))}};p.lazyCompilation&&f&&"true"!==process.env.IS_BUILD?m(p.lazyCompilation)?Object.assign(k,P,p.lazyCompilation):Object.assign(k,P):k=!1;export const commonConfig={name:"client",target:"web",devtool:p.devtool,entry:j,mode:p.mode??"production",cache:C,snapshot:{immutablePaths:[a.pnpmNodeModules,a.denoNodeModules,r.node_modules],managedPaths:[a.pnpmNodeModules,a.denoNodeModules,r.node_modules],resolveBuildDependencies:{timestamp:!0,hash:!0},resolve:{timestamp:!0,hash:!0},module:{timestamp:!0,hash:!0},buildDependencies:{timestamp:!0,hash:!0},contextModule:{timestamp:!0,hash:!0}},stats:"errors-only",infrastructureLogging:{level:"error"},externalsPresets:p.externalsPresets,plugins:u,node:{global:!1,__filename:!1,__dirname:!1},experiments:{asyncWebAssembly:!0,cacheUnaffected:!0,lazyCompilation:k,buildHttp:m(p.buildHttp)?{allowedUris:[],lockfileLocation:s(a.httpCachePath,"http.lock"),cacheLocation:s(a.httpCachePath,"data"),upgrade:!0,...p.buildHttp}:p.buildHttp,backCompat:!0,futureDefaults:!0,css:!0,outputModule:!1,deferImport:!0},resolve:{extensions:[".mts",".mjs",".ts",".tsx",".js",".jsx",".json",".wasm"],alias:p.alias,modules:[a.nodeModules,a.pnpmNodeModules,a.denoNodeModules],mainFields:["browser","module","main"],mainFiles:["index"],plugins:p.resolvePlugins,preferAbsolute:!0,cache:!0,fallback:{}},externals:p.externals,output:outputConfig,recordsPath:p.recordsPath};p.overrideResolve&&commonConfig.resolve.plugins.push(new l(Object.assign({original:p.alias["@"],override:i&&c(i)},p.overrideResolve)));
|
package/lib/config.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"node:process";import{merge as
|
|
1
|
+
import{relative as e}from"node:path";import o from"node:process";import{merge as t}from"webpack-merge";import{CUSTOMCONFIG as a}from"./commom/custom-config.mjs";import n from"./commom/paths.mjs";import{join as s}from"./commom/posix.mjs";import r from"./commom/setup-env.mjs";import i from"./options/jsx-dom-expressions.mjs";import m from"./options/split-chunk.mjs";import{getConfigWithTypescript as l,isFunction as p,node_modules as c,resolveProgram as u}from"./utils/index.mjs";import{initDts as d}from"./vm/dts.mjs";import{APPTYPE as f,FRAMEWORK as h,frameworkVersion as g,isCI as v,isDev as x,isLibrary as j,isMobile as C,isReact as P,jsxImportSource as b,mainDirectory as k,NODE_ENV as w,PACKAGENAME as O}from"./process-env.mjs";let I=[/(app|vm|docs|example):[a-zA-Z_0-9]/,"@moneko","neko-ui",".cache/http/data","@element-plus","ant-design-vue","element-plus","element-ui","ng-zorro-antd","@mui","@du","@fontsource","@fortawesome","font-pingfang-sc","font-pingfang-tc","katex","react-markdown-editor-lite","react-photo-view","schema-design","monaco-editor"];export async function getConfig(e){let t=l(e).default;return(p(t)?await t(o):t)??{}}let S=await r(w,f,h,[],"true"===o.env.IS_BUILD,a),[y,M]=await Promise.all([getConfig(n.configPath),getConfig(n.customConfigPath)]),z={mode:w,strict:!1,devtool:"true"!==o.env.IS_BUILD&&x?"eval-cheap-module-source-map":"cheap-module-source-map",seo:!1,bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:{},sourceMap:{filename:"[file].map",publicPath:"",namespace:O,moduleFilenameTemplate:"moneko://[namespace]/[resource-path]?[loaders]",fallbackModuleFilenameTemplate:"moneko://[namespace]/[resource-path]?[loaders]"},env:S,basename:"/",publicPath:"auto",rem:{designSize:C?375:1920},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:Object.assign({"@":u(k)},P&&g<18?{"react/package.json":c("react/package.json"),"react/jsx-runtime":c("react/jsx-runtime.js"),"react/jsx-dev-runtime":c("react/jsx-dev-runtime.js")}:{}),moduleRules:[],prefixJsLoader:[],cssModules:[],cssModuleDefinition:!0,importOnDemand:{},proxy:{},devServer:{host:"localhost",port:3e3,open:!0},htmlPluginOption:{title:O.toLocaleUpperCase(),favicon:e(n.programPath,`${n.corePath}/options/favicon.ico`)},copy:{},routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:m,runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:I,js:I,media:I,font:I,wasm:[]},mdx:{jsx:!1,development:x,jsxImportSource:b,providerImportSource:`@moneko/${h}/mdx`},jsxDomExpressions:i,bar:{name:"Client",nameColor:"68",msgColor:"242",barBgColor:"15",barColor:"69",quiet:v},normalizeCss:!0,externalsPresets:{},buildHttp:void 0,virtualModule:{},cssExtract:{},externals:["@swc/core"],lazyCompilation:!1,performance:!1,refresh:"solid"!==h,bundleId:"com.moneko.bid",bundles:[],stylelint:{},eslint:{lintDirtyModulesOnly:!1},minChunkSize:1e3,compression:!1,manifest:{filename:"site.webmanifest"},corepack:!0,reactJsxRuntime:"automatic"};j&&(z.alias=Object.assign(z.alias,{"@pkg":n.componentsPath,[O]:n.componentsPath}));let D=z;if((!1===(D=t(D,y,M)).devtool||!1===D.sourceMap)&&(D.sourceMap=!1,D.devtool=!1),"true"===o.env.CODESPACES&&(D.devServer.https=!1),!1===D.devServer.https&&"darwin"===o.platform&&(D.devServer.open=!1),D.htmlPluginOption&&(D.htmlPluginOption.tags||(D.htmlPluginOption.tags=[]),D.fixBrowserRouter&&D.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))"}),D.manifest)){let e=D.manifest.publicPath??D.publicPath??"/";D.htmlPluginOption.tags.push({href:s("auto"===e?"/":e,D.manifest.filename),tag:"link",rel:"manifest"})}export const CONFIG=D;export const PUBLICPATH="auto"===CONFIG.publicPath?"":CONFIG.publicPath;d(CONFIG);
|
package/lib/dev/mock.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{watch as e}from"node:fs";import t from"node:http";import{
|
|
1
|
+
import{watch as e}from"node:fs";import t from"node:http";import{join as r}from"node:path";import{StringDecoder as o}from"node:string_decoder";import{URL as n}from"node:url";import{directoryExists as a,ink as i,print as c,scanFolderSync as s}from"@moneko/utils";import{merge as m}from"webpack-merge";import d from"../commom/log.mjs";import l from"../commom/match-path.mjs";import p from"../commom/paths.mjs";import u,{METHOD_COLOR as f}from"../commom/print-log.mjs";import h from"../commom/require.mjs";import g from"../commom/sigint-exit.mjs";import{jsonSchema as y}from"./json-schema.mjs";function b(e){return!["GET","HEAD","OPTIONS"].includes(e.method?.toUpperCase()||"")}export function cacheBody(e){if(!e._bodyCached&&b(e)&&!e.readableEnded){e._bodyCached=!0;try{let t=[],r=e.on.bind(e),o=e.emit.bind(e),n=!1;e.on=function(e,o){return"data"!==e||n||(n=!0,r("data",e=>{t.push(e)})),r(e,o)};let a=!1;e.emit=function(r,...n){return"end"===r&&!a&&(a=!0,t.length>0&&(e._dataChunks=t)),o.call(this,r,...n)}}catch(e){d(e)}}}function k(e,t){try{let r=Buffer.concat(e);if(t.includes("application/json")){let e=new o("utf-8").write(r);return JSON.parse(e)}if(t.includes("application/octet-stream")||t.startsWith("image/"));else if(t.includes("text/"))return r.toString("utf-8");else if(t.includes("application/x-www-form-urlencoded"))return Object.fromEntries(new URLSearchParams(r.toString("utf8")));return r}catch(e){return d(e),null}}async function j(e){return new Promise(t=>{if(!b(e))return void t(null);let r=e.headers["content-type"]||"",o=e.headers["content-length"],n=e.headers["transfer-encoding"],a=[];void 0!==e._dataChunks?t(k(e._dataChunks,r)):o||n?(e.on("data",e=>{a.push(e)}),e.on("end",()=>{t(k(a,r))}),e.on("error",e=>{t(null),d(e)})):t(null)})}export const yApiSchemaMock=(e,r)=>new Promise(o=>{t.get(`${e.host}/api/interface/get?id=${e.id}&token=${e.token}`,e=>{e.setEncoding("utf8");let t="";e.on("data",e=>{t+=e}),e.on("end",()=>{try{let e=JSON.parse(t);if(e?.data?.res_body_is_json_schema){let t=JSON.parse(e.data.res_body),n=y(t);void 0!==r?o(m(n,r)):o(n)}}catch(e){d(e)}})})});export const yApiMock=(e,r)=>new Promise((o,a)=>{let i=new n(r.host),c={hostname:i.hostname,port:i.port,path:e.url?.replace(new RegExp(r.pathRewrite),`/mock/${r.projectId}/`),method:e.method,headers:e.headers,query:Object.fromEntries(i.searchParams)},s=t.request(c,e=>{e.setEncoding("utf8");let t="";e.on("data",e=>{t+=e}),e.on("end",()=>{try{o(JSON.parse(t))}catch(e){d(e)}})});s.on("error",e=>{a(e.message)}),s.write(JSON.stringify(e.body)),s.end()});let w=()=>{if(!a(p.mockPath)){O={};return}let e={},t=s(p.mockPath,["\\.(t|j)s$"]);c(i("Updating mock...","245"),!0),t.forEach(t=>{try{Object.assign(e,h(t).default)}catch(e){d(e)}}),c(i("Mock update successful","245"),!0),O=e},O={};w();export function containMockUrl(e){return Object.keys(O).find(t=>RegExp(`^${t.replace(/(:\w*)[^/]/g,"((?!/).)")}*$`).test(e))}function E(e,t){if(t.writableEnded)return t;let r=new n(`http://localhost:3000${e.url}`),o=e.method||"GET",a=`${o} ${r.pathname}`,i=containMockUrl(a)||a,c=O[i];if(c){if(u(o,r.pathname,{note:"MOCK",labelAlign:"center",labelLen:8,labelForegroundColor:f[o].fg,labelBackgroundColor:f[o].bg}),t.send=e=>t.end("string"==typeof e?e:JSON.stringify(e)),t.writeHead(200,{"Content-Type":e.headers["content-type"]}),"function"==typeof c){let o=l(i.split(" ")[1],r.pathname);r.searchParams&&Object.assign(e,{query:Object.fromEntries(r.searchParams)}),o&&Object.assign(e,{params:o.params}),e.body=j(e);try{c(e,t)}catch(e){d(e)}return!0}return t.end("string"==typeof c?c:JSON.stringify(c)),!0}return!1}export default(()=>{if(!a(p.mockPath))return;let t=e(p.mockPath,(e,t)=>{if(t){let e=r(p.mockPath,t);delete h.cache[e]}w()});return g(()=>{t.close()}),E});
|
package/lib/dev/server.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createServer as e}from"node:http";import{createServer as t}from"node:https";import{platform as o}from"node:os";import{
|
|
1
|
+
import{createServer as e}from"node:http";import{createServer as t}from"node:https";import{platform as o}from"node:os";import{extname as r,join as n,sep as i}from"node:path";import{env as s}from"node:process";import{ink as a,println as m}from"@moneko/utils";import{CA_ORGANIZATION as l,isCertificateInstalled as p}from"../commom/ca.mjs";import c from"../commom/mime.mjs";import d from"../commom/open.mjs";import{CONFIG as C}from"../config.mjs";import f from"../dev/get-cert.mjs";import{setupProxy as h}from"../dev/proxy.mjs";import u,{cacheBody as A}from"./mock.mjs";let E={"Access-Control-Allow-Credentials":"true","Access-Control-Allow-Headers":"Authorization, Content-Type, Accept, X-Requested-With, Origin, DNT, User-Agent, Cache-Control, X-CSRF-Token, X-API-Key, X-Client-Version, X-Device-ID, Content-Language, Accept-Language, X-Custom-Header, X-Mx-ReqToken, Keep-Alive, If-Modified-Since","Access-Control-Allow-Methods":"GET, DELETE, HEAD, OPTIONS, POST, PUT, PATCH, PURGE, LINK, UNLINK, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, REPORT, SEARCH, CONNECT, TRACE","Access-Control-Allow-Origin":"*","Cache-Control":"no-store, no-cache, must-revalidate, proxy-revalidate",Pragma:"no-cache",Expires:"0"};async function y(y){let T=n(y.root_dir,"index.html"),g=u();function w(e,t,o){let n=e.headers["accept-encoding"],i=n?.includes("br"),s=`${o}.${i?"br":"gz"}`,a=y.fileSystem.existsSync(s);a&&t.setHeader("Content-Encoding",i?"br":"gzip");let m=y.fileSystem.createReadStream(a?s:o,{autoClose:!0});m.on("open",()=>{t.writeHead(200,Object.assign({},E,y.headers,{"Access-Control-Allow-Origin":e.headers.origin??"*","Content-Type":c[r(o)]||"application/octet-stream"}))}),m.on("error",e=>{switch(m.readable=!0,e.code){case"ENOENT":t.writeHead(301,{Location:"/index.html"}),t.end();break;case"EACCES":t.writeHead(403,{"Content-Type":"text/plain"}),t.end(`Forbidden: ${e.message}`);break;default:t.writeHead(500,{"Content-Type":"text/plain"}),t.end(`Internal Server Error: ${e.message}`)}}),m.pipe(t)}async function O(e,t){if(A(e),!(y.onRequest&&y.onRequest(e,t))){if(!(C.proxy&&await h(e,t,C.proxy)||t.writableEnded||g&&g(e,t))&&!t.writableEnded){if("GET"===e.method){let o=("/"===e.url?T:decodeURIComponent(n(y.root_dir,e.url.replace(y.basename??"/","/")))).split("?")[0];if(y.fileSystem.existsSync(o))return w(e,t,o)}if(e.headers.accept?.includes("text/html"))return w(e,t,T.split("?")[0]);t.writeHead(404,{"Content-Type":"text/plain"}),t.end("File Not Found")}}}let x=y.https?t(await f(y.host,!0===y.https?{install:!0}:y.https),O):e(O);if(x.listen(y.port),y.https&&!await p(l)&&"darwin"===o()){let e=s.npm_execpath?.split(i).pop()?.split(".").shift()||"npm",t=s.npm_lifecycle_event??"start",o=`> sudo ${e} ${t}`;m(a("⚠️ 未检测到本地 SSL 证书,请通过以下命令重启项目以安装证书: ","yellow")),m(a(o,"yellow")),m("")}return y.open&&d(`${y.https?"https:":"http:"}//${y.host}:${y.port}${"/"===y.basename?"":y.basename}`),x}export default y;
|
package/lib/module.config.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let e;import s,
|
|
1
|
+
let e;import{join as s,sep as o}from"node:path";import t,{CUSTOMCONFIG as r}from"./commom/paths.mjs";import a from"./commom/require.mjs";import*as l from"./commom/rule.mjs";import n from"./options/modify-vars.mjs";import i from"./options/reslove.mjs";import m from"./options/swcrc.mjs";import{getLightningCssTargets as c}from"./polyfills/targets.mjs";import{node_modules as p,resolveProgram as d}from"./utils/index.mjs";import u from"./utils/svg-to-data-uri.mjs";import{outputConfig as f}from"./common.mjs";import{CONFIG as h}from"./config.mjs";import{app_schema as y,FRAMEWORK as j,isDev as g,virtual_schema as x}from"./process-env.mjs";let v={loader:s(t.corePath,"/loader/lightning-css.cjs"),options:{sourceMap:!!h.sourceMap,targets:c(),rem:!!h.rem,importLoaders:2}},w={loader:i.lessLoader,options:{sourceMap:!!h.sourceMap,lessOptions:{modifyVars:n,javascriptEnabled:!0}}},P=new Map,L=["components","example","mock","site","src","server"].map(e=>d(e));function M(e){return new Promise(s=>{s([...L,t.corePath,...h.rulesInclude?.[e]?.map(e=>"string"==typeof e?function(e){if(P.has(e))return P.get(e);try{let s,t=a.resolve(e).split(o),r=t.lastIndexOf("node_modules");return s=-1!==r?t.slice(0,r).join(o):t.join(o),P.set(e,[s]),[s]}catch{try{let s=a.resolve(`${e}${o}package.json`).replace(`${o}package.json`,"");P.set(e,[s])}catch{P.set(e,[p(e),p(".pnpm",e)])}return P.get(e)}}(e):e).flat()||[]])})}r&&L.push(d(r)),h.overrideResolve&&h.overrideResolve.override&&L.push(h.overrideResolve.override);let _=await Promise.all([M("css"),M("js"),M("media"),M("wasm"),M("font")]),C=_[0],I=_[1],O=_[2],b=_[3],N=_[4];i.sassLoader&&(e={loader:i.sassLoader,options:{implementation:await import("sass"),sassOptions:{}}});let k=f.library?.type==="umd"&&!1===h.htmlPluginOption,B=[{resourceQuery:/raw/i,type:"asset/source"},{resourceQuery:/url/i,type:"asset/resource",generator:{filename(e){let s=e.filename;return s&&s.toLocaleLowerCase().endsWith("wasm?url")?"wasm/[hash][ext]":"assets/[hash][ext]"}}},{test:l.wasm,type:"webassembly/async",include:b},{test:l.txt,type:"asset/source"},{test:l.image,type:"asset",dependency:{not:["url"]},parser:{dataUrlCondition:k?()=>!0:{maxSize:4096}},generator:{filename:e=>e.filename?.toLocaleLowerCase().endsWith(".svg")?"assets/svg/[hash][ext]":"assets/images/[hash][ext]",dataUrl:(e,s)=>s.filename.toLocaleLowerCase().endsWith(".svg")?u(e.toString()):e},include:O},{test:l.video,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/video/[hash][ext]"},include:O},{test:l.font,type:"asset",dependency:{not:["url"]},generator:{filename:"assets/fonts/[hash][ext]"},include:N}],W=h.prefixJsLoader.filter(Boolean)||[];"react"===j&&h.reactCompiler&&W.unshift({loader:s(t.corePath,"/loader/react-compiler.cjs"),options:{panicThreshold:g?void 0:"NONE",...h.reactCompiler}}),h.cssInJs&&"object"==typeof h.cssInJs.minify&&W.unshift({loader:s(t.corePath,"/loader/css-in-js-minify.cjs"),options:Object.assign({moduleName:"@moneko/css",allowFuncs:["css","injectGlobal"]},h.cssInJs.minify)});export default(o=>{let r={react:{loader:i.swcLoader,options:m(o)},solid:{loader:s(t.corePath,"/loader/solid.cjs"),options:{jsxOptions:h.jsxDomExpressions,refresh:h.refresh}}}[j];return{generator:{"css/auto":{exportsOnly:!1,exportsConvention:"camel-case-only",localIdentName:"[uniqueName]_[id]_[local]",esModule:!0},"css/module":{exportsOnly:!1,exportsConvention:"camel-case-only",localIdentName:"[uniqueName]_[id]_[local]",esModule:!0}},parser:{javascript:{commonjsMagicComments:!0,dynamicImportMode:"lazy",dynamicImportPrefetch:!1,dynamicImportPreload:!1,importMeta:!0,importMetaContext:!0},css:{import:!0,namedExports:!0,url:!0},json:{exportsDepth:1}},noParse:h.noParse,rules:[{oneOf:[...B,{test:l.js,use:[...W,r].filter(Boolean),include:I},...h.cssModules.map(e=>({test:s=>l.node_modules_css_module.test(s)&&s.includes(e),use:[v],type:"css/module"})),{test:l.css,use:[v],type:"css/auto",include:C},e&&{test:l.sass_global,use:[v,e],type:"css/auto",include:C},e&&{test:l.scss,use:[v,e],type:"css/module",include:C},{test:l.less_global,use:[v,w],type:"css/auto",include:C},{test:l.less,use:[v,w],type:"css/module",include:C},{test:l.markdown,use:[...W,{loader:s(t.corePath,"/loader/mdx.cjs"),options:h.mdx}].filter(Boolean),exclude:[l.node_modules,e=>e.startsWith(`${y}:`)||e.startsWith(`${x}:`)]}].filter(Boolean)},...h.moduleRules].filter(Boolean)}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import o from"../commom/has-pkg.mjs";import{join as
|
|
1
|
+
import o from"../commom/has-pkg.mjs";import{join as i}from"../commom/posix.mjs";import e from"../commom/require.mjs";import{CONFIG as m}from"../config.mjs";let t=m.prefixCls||"n",r=m.htmlPluginOption?.favicon||"favicon.ico",s={"@prefix-cls":t,"@iconfont-css-prefix":`${t}-icon`,"@favicon":JSON.stringify(i(m.basename,r))},n={},c=o("antd/dist/default-theme.js");c&&Object.assign(n,{...e(c)},{"@ant-prefix":t,hack:`true;@import (optional, reference) "${e.resolve("antd/lib/style/color/colorPalette.less")}";`}),Object.assign(s,n,m.modifyVars);export default s;
|
package/lib/plugin/copy.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{statSync as e}from"node:fs";import{loadFileRaw as
|
|
1
|
+
import{statSync as e}from"node:fs";import{resolve as t}from"node:path";import{loadFileRaw as s,scanFolderSync as i}from"@moneko/utils";import l from"webpack";import o from"../commom/log.mjs";let a="CopyPlugin",r=l.sources.RawSource;export class CopyPlugin{constructor(e){this.cacheFiles=[],this.fileTimestamps=new Map,this.baseFiles=new Set(e.files?.map(e=>t(e))||[]),this.dirs=new Set(e.dirs||[])}getFiles(){let e=new Set(this.baseFiles);for(let t of this.dirs)i(t,["\\.*"]).forEach(t=>e.add(t));let t={deleted:[],files:[...e]};for(let s of new Set(this.cacheFiles))e.has(s)||t.deleted.push(s);return this.cacheFiles=t.files,t}hasFileChanged(t){try{let s=e(t).mtimeMs,i=this.fileTimestamps.get(t)||0;return this.fileTimestamps.set(t,s),s>i}catch(e){return o(e),!0}}apply(e){e.hooks.thisCompilation.tap({name:a,stage:e.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},e=>{let t=e.getCache(a);e.hooks.processAssets.tapPromise(a,async()=>{let i=this.getFiles();await Promise.allSettled(i.files.map(async i=>{let l=this.hasFileChanged(i),o=t.getItemCache(i,null),a=await o.getPromise();if(a&&!l)return void e.emitAsset(i,a.source);let m=await s(i);if(null!==m){let t=new r(Buffer.from(m));await o.storePromise({source:t,timestamp:this.fileTimestamps.get(i)}),e.emitAsset(i,t)}})),i.deleted.forEach(t=>{e.deleteAsset(t),this.fileTimestamps.delete(t)})})})}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{join as e,parse as t,resolve as o,sep as s}from"node:path";import{fileURLToPath as i}from"node:url";import{Worker as r}from"node:worker_threads";import{fileExists as a,loadFile as n}from"@moneko/utils";import m from"webpack";import{module_federation_schema as p}from"../process-env.mjs";import l from"../utils/create-types.mjs";export class ModuleFederationExposesDeclarationPlugin{constructor(e){this.name="ModuleFederationExposesDeclarationPlugin",this.assetName="module-federation.d.ts",this.dts="",this.option=e,this.worker=new r(i(new URL("../worker/dts.mjs",import.meta.url))),this.worker.setMaxListeners(0),this.worker.postMessage({options:{compilerOptions:{isolatedModules:!1,outFile:this.assetName,verbatimModuleSyntax:!1},include:[...Object.values(e.exposes),"typings/**/*.d.ts"]}}),this.worker.once("message",e=>{this.dts=e,this.worker.terminate()})}apply(i){let{exposes:r}=this.option,h=Object.keys(r).map(e=>{let t=e.replace(/\.tsx?$/i,"");return{key:e,name:t,path:o(`types/${this.option.name}/${t}.d.ts`),originPath:r[e]}});i.hooks.thisCompilation.tap({name:this.name,stage:i.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},o=>{o.hooks.processAssets.tapPromise(this.name,async()=>{let i=h.map(async o=>{if(a(o.originPath)){let i=t(o.originPath),r=`export * from '${t(i.dir).name}/${i.name}'`;if("public-path"===i.name){let e=await n(o.originPath.replace(/\.mjs$/,".d.mts"));e&&(r=e)}return[l(e(this.option.name,o.name),r),l(e(p,this.option.name,o.name).replace(s,":"),r)].join("\n")}return""}),r=await Promise.all(i);r.unshift(this.dts),o.emitAsset("module-federation.d.ts",new m.sources.RawSource(r.join("\n")),{javascriptModule:!1})})})}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{existsSync as t,readFileSync as e}from"node:fs";import
|
|
1
|
+
import{existsSync as t,readFileSync as e}from"node:fs";import{basename as s,resolve as i,sep as n}from"node:path";import o from"webpack";import{join as a}from"../commom/posix.mjs";export class HtmlPlugin{constructor(t={}){this.AddEntry=/(?:.*\/)?main\.[a-zA-Z0-9]+\.bundle\.js$/,this.faviconPath="",this.name="HtmlPlugin",this.cachedMetaTags=null,this.cachedCustomTags=null,this.options={title:"WebApp",filename:"index.html",inject:"head",...t}}getPublicPath(t){if("string"==typeof this.options.publicPath)return this.options.publicPath;let e=t.getAssetPath(t.outputOptions.publicPath,{hash:t.hash}),s="auto"===e?"/":e;return s.length&&!s.endsWith("/")&&(s+="/"),s}apply(h){h.hooks.compilation.tap(this.name,l=>{l.hooks.processAssets.tap({name:this.name,stage:o.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL},()=>{let r;if(this.options.favicon){let r=i(h.context,this.options.favicon);if(t(r)){let t=s(this.options.favicon),i=e(r);l.emitAsset(t,new o.sources.RawSource(i),{javascriptModule:!1});let h=this.getPublicPath(l);this.faviconPath=a(h,t).replaceAll(n,"/")}else l.warnings.push(new o.WebpackError(`Favicon file ${r} does not exist`))}if(r=this.options.templateContent?this.options.templateContent(this.options):this.options.template?e(i(h.context,this.options.template),{encoding:"utf-8"}):this.generateDefaultTemplate(),this.options.inject){let t=this.getAssets(l);r=this.injectAssets(r,t,this.options.inject)}let c="function"==typeof this.options.filename?this.options.filename("index"):this.options.filename||"index.html";l.emitAsset(c,new o.sources.RawSource(r),{javascriptModule:!1})})})}generateDefaultTemplate(){let t=this.generateMetaTags();return`<!DOCTYPE html><html><head><meta charset="utf-8">${t}<title>${this.options.title}</title><link rel="icon" type="image/x-icon" href="${this.faviconPath}"></head><body><div id="root"></div></body></html>`}generateMetaTags(){if(null!==this.cachedMetaTags)return this.cachedMetaTags;if(!this.options.meta)return this.cachedMetaTags="","";let t=Object.entries(this.options.meta).map(([t,e])=>{if("string"==typeof e)return`<meta name="${t}" content="${e}">`;if(void 0===e)return"";let s=Object.entries(e).map(([t,e])=>`${t}="${e}"`).join(" ");return`<meta ${s}>`}).join("");return this.cachedMetaTags=t,t}generateCustomTags(){if(null!==this.cachedCustomTags)return this.cachedCustomTags;let t={head:"",body:""};if(!this.options.tags)return this.cachedCustomTags=t,t;let e=[],s=[];return this.options.tags.forEach(t=>{let{tag:i="script",textContent:n="",inject:o=this.options.inject,...a}=t,h=Object.entries(a).filter(([,t])=>null!=t).map(([t,e])=>!0===e?t:`${t}="${e}"`).join(" "),l=`<${i} ${h}>${n}</${i}>`;"head"===o?e.push(l):s.push(l)}),t.head=e.join(""),t.body=s.join(""),this.cachedCustomTags=t,t}getAssets(t){let e={js:[],css:[]},s=["import-scripts","require","async-node"],i=this.getPublicPath(t);for(let o of t.entrypoints.values())for(let t of o.chunks){let o=t.getEntryOptions(),h=o?.chunkLoading;if(!(o?.asyncChunks||h&&s.includes(h)))for(let s of t.files)s.endsWith(".js")?e.js.push(a(i,s).replaceAll(n,"/")):s.endsWith(".css")&&e.css.push(a(i,s).replaceAll(n,"/"))}return e}injectAssets(t,e,s){let i=e.css.length?e.css.map(t=>`<link href="${t}" rel="stylesheet" />`).join(""):"",n=e.js.length?e.js.map(t=>`<script defer ${this.AddEntry.test(t)?'entry="true" ':""}src="${t}"></script>`).join(""):"",o=this.generateCustomTags(),a=t.split("</head>");if(2===a.length){let[t,e]=a,h=e.split("</body>");return"head"===s?`${t}${i}${n}${o.head}</head>${h[0]}${o.body}</body>${h[1]||""}`:`${t}${o.head}</head>${h[0]}${i}${n}${o.body}</body>${h[1]||""}`}return t}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{existsSync as s,readFileSync as t}from"node:fs";import e from"webpack";import{
|
|
1
|
+
import{existsSync as s,readFileSync as t}from"node:fs";import{basename as e,resolve as o}from"node:path";import i from"webpack";import{join as r}from"../../commom/posix.mjs";import{isDev as n,packageJson as a}from"../../process-env.mjs";export*from"./types.mjs";let{PROCESS_ASSETS_STAGE_SUMMARIZE:p,PROCESS_ASSETS_STAGE_REPORT:c}=i.Compilation;export class ManifestPlugin{constructor(s){this.name="ManifestPlugin",this.options={filename:"site.webmanifest",resourcesFilename:"app-resource.json",name:a.name,description:a.description,scope:"/",display:"standalone",background_color:"#fff",icons:[{src:"https://h5static.dewucdn.com/node-common/718d5e10-576d-8b14-b0b1-e4c58c3b3f40.webp",type:"image/webp",sizes:"512x512"}]},this.options={...this.options,...s}}getPublicPath(s){if(this.options.publicPath)return this.options.publicPath;let t=s.getAssetPath(s.outputOptions.publicPath,{hash:s.hash}),e="auto"===t?"/":t;return e.length&&!e.endsWith("/")&&(e+="/"),e}addAsset(n,a,p){if(!p)return;let c=this.getPublicPath(a);return p.map(p=>{let l={...p};if(l.src&&!l.src.startsWith("http")){let p=o(n.context,l.src);if(s(p)){let s=e(l.src),o=t(p);a.emitAsset(s,new i.sources.RawSource(o),{javascriptModule:!1}),l.src=r(c,s)}else a.warnings.push(new i.WebpackError(`Asset file ${p} does not exist`))}return l})}apply(s){let t=this.name,{filename:e,resourcesFilename:o,start_url:i,icons:r,screenshots:l,...h}=this.options;s.hooks.thisCompilation.tap(t,m=>{m.hooks.processAssets.tap({name:t,stage:n?p:c},()=>{let t={...h,start_url:i??this.getPublicPath(m),screenshots:this.addAsset(s,m,l),icons:this.addAsset(s,m,r),version:`${a.version}(${n?"Dev":m.fullHash})`};if(m.emitAsset(e,new s.webpack.sources.RawSource(JSON.stringify(t)),{javascriptModule:!1}),o){let t=[];if(n)for(let[,s]of m.entrypoints)s.getFiles().forEach(s=>{t.includes(s)||t.push(s)});else t=m.getAssets().map(s=>s.name);m.emitAsset(o,new s.webpack.sources.RawSource(JSON.stringify(t)),{javascriptModule:!0})}})})}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"webpack";import
|
|
1
|
+
import{join as e,parse as t,relative as r,sep as o}from"node:path";import s from"webpack";import m from"../commom/module-resolve.mjs";import a from"../commom/paths.mjs";import{CONFIG as l}from"../config.mjs";import n from"../utils/fetch-module-federation-dts.mjs";import{resolveProgram as p}from"../utils/index.mjs";import{mf_vm as i}from"../vm/mf.mjs";import{ModuleFederationExposesDeclarationPlugin as f}from"./exposes-declararion.mjs";import{ExternalRemotesPlugin as h}from"./external-remotes.mjs";let u=s.NormalModuleReplacementPlugin,c=s.container.ModuleFederationPlugin,d={},$=[];function x(e,r){let s=e.replaceAll(o,"/").replace(/\.tsx?$/i,""),m=t(r);i.setData(s,{type:".tsx",source:()=>{if(r.startsWith(a.nodeModules)){let e=r.substring(a.nodeModules.length).split("node_modules").pop()?.replaceAll(o,"/").replace(/^\//,"");return`export * from '${e}';`}return r.startsWith(l.alias["@"])?`export * from '@/${t(m.dir).name}/${m.name}'`:"export {};"}})}let y=l.moduleFederation?.map(t=>{let o={},s={},l={};if(Array.isArray(t.remotes))for(let e=0,r=t.remotes.length;e<r;e++){let r=t.remotes[e],o=r.alias||r.name,m=r.filename||"remote_entry.js";if(s[o]=`${r.name}@${r.host}/${m}`,Array.isArray(r.library))for(let e=0,t=r.library.length;e<t;e++)d[r.library[e]]=`${o}/${r.library[e]}`;n(r.host,r.name)}if(Array.isArray(t.exposes)){t.exposes.length>0&&!t.exposes.find(e=>"public-path"===e)&&t.exposes.push({name:"public-path",path:`./${r(a.programPath,e(a.corePath,"./polyfills/public-path.mjs"))}`});for(let e=0,r=t.exposes.length;e<r;e++){let r=t.exposes[e];if("string"==typeof r){let e=r.startsWith(".");o[`./${r}`]=m(e?p(r):r),e&&(l[r]=o[`./${r}`],x(`${t.name}/${r}`,l[r]))}else if("[object Object]"===Object.prototype.toString.call(r)){let e=r.path.startsWith(".");o[`./${r.name}`]=m(e?p(r.path):r.path),e&&(l[`./${r.name}`]=o[`./${r.name}`],x(`${t.name}/${r.name}`,l[`./${r.name}`]))}}t.exposes?.length&&$.push(new f({exposes:l,name:t.name}))}return new c({filename:"remote_entry.js",...t,remotes:s,exposes:o})});y.length>0&&(y.push(new h),y.push(new u(/(.*)/,e=>{d[e.request]&&(e.request=d[e.request])})),$.forEach(e=>y.push(e))),l.env.injectRemoteReactRefresh=Object.keys(d).includes("react-dom");export default y;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{relative as e}from"node:path";import{fileExists as t}from"@moneko/utils";import r from"../commom/paths.mjs";let o="OverrideResolverPlugin";export class OverrideResolverPlugin{constructor(e){this.options=e}apply(i){let s=i.ensureHook("resolved"),{override:a,original:l}=this.options;if(a&&l){let n=`./${e(r.programPath,l)}`,p=`./${e(r.programPath,a)}`;i.getHook("existing-file").tapAsync(o,(e,r,h)=>{let m=e.request||e.path;if(m&&m.startsWith(l)&&e.relativePath){let u=m.replace(l,a);if(t(u)){let t=e.relativePath.replace(n,p);return Object.assign(e,{path:u,relativePath:t,__innerRequest_relativePath:t,__innerRequest:t}),i.doResolve(s,e,`${o} 使用目标模块${a}`,r,h)}}return h()})}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"typescript";let t
|
|
1
|
+
import{sep as e}from"node:path";import t from"typescript";let a=t.SyntaxKind,r=t.factory.createModifier(a.DeclareKeyword),i=t.createPrinter({newLine:t.NewLineKind.LineFeed});function n(e){let r=i=>{if(n=i,(t.isInterfaceDeclaration(n)||t.isTypeAliasDeclaration(n)||t.isClassDeclaration(n)||t.isFunctionDeclaration(n)||t.isEnumDeclaration(n)||t.isVariableStatement(n)||t.isModuleDeclaration(n))&&(o=i).modifiers&&o.modifiers.some(e=>e.kind===a.DeclareKeyword)){let e=function(e){if(!e)return;let t=e.filter(e=>e.kind!==a.DeclareKeyword);return t.length>0?t:void 0}(i.modifiers);var n,o,c=i,l=e;if(t.isInterfaceDeclaration(c))return t.factory.updateInterfaceDeclaration(c,l,c.name,c.typeParameters,c.heritageClauses,c.members);if(t.isTypeAliasDeclaration(c))return t.factory.updateTypeAliasDeclaration(c,l,c.name,c.typeParameters,c.type);if(t.isClassDeclaration(c))return t.factory.updateClassDeclaration(c,l,c.name,c.typeParameters,c.heritageClauses,c.members);if(t.isFunctionDeclaration(c))return t.factory.updateFunctionDeclaration(c,l,c.asteriskToken,c.name,c.typeParameters,c.parameters,c.type,c.body);if(t.isEnumDeclaration(c))return t.factory.updateEnumDeclaration(c,l,c.name,c.members);if(t.isVariableStatement(c))return t.factory.updateVariableStatement(c,l,c.declarationList);else if(t.isModuleDeclaration(c))return t.factory.updateModuleDeclaration(c,l,c.name,c.body);return c}return t.visitEachChild(i,r,e)};return e=>t.visitNode(e,r)}export default function(a,o){let c=a.replaceAll(e,"/"),l=t.createSourceFile(`@types/${c}.d.ts`,o,t.ScriptTarget.Latest,!0,t.ScriptKind.TS),s=t.transform(l,[n]),d=s.transformed[0],u=t.factory.createModuleDeclaration([r],t.factory.createStringLiteral(c),t.factory.createModuleBlock(d.statements),t.NodeFlags.None),f=[`// remote module: ${c}`,i.printNode(t.EmitHint.Unspecified,u,l)];return s.dispose(),f.join("\n")};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{request as t}from"@moneko/request";import{updateFile as o}from"@moneko/utils";import r from"../commom/log.mjs";import{CACHE_NAME as m}from"../process-env.mjs";import{mf_vm as e}from"../vm/mf.mjs";import{extractMfModules as s}from"./dts.mjs";import{node_modules as p}from"./index.mjs";async function i(i,f){try{let r=`${i.startsWith("//")?`http:${i}`:i}/module-federation.d.ts`,a=await t(r,{responseType:"text",rejectUnauthorized:!1});s(a).forEach(t=>{e.has(t)||e.setData(t,{type:".ts",source:()=>`export * from '${t}'`})}),o(p(
|
|
1
|
+
import{request as t}from"@moneko/request";import{updateFile as o}from"@moneko/utils";import r from"../commom/log.mjs";import{CACHE_NAME as m}from"../process-env.mjs";import{mf_vm as e}from"../vm/mf.mjs";import{extractMfModules as s}from"./dts.mjs";import{node_modules as p}from"./index.mjs";async function i(i,f){try{let r=`${i.startsWith("//")?`http:${i}`:i}/module-federation.d.ts`,a=await t(r,{responseType:"text",rejectUnauthorized:!1});s(a).forEach(t=>{e.has(t)||e.setData(t,{type:".ts",source:()=>`export * from '${t}'`})}),o(p("@types",m,`${f}.d.ts`),a)}catch(t){r(t)}}export default i;
|
package/lib/utils/index.d.mts
CHANGED
|
@@ -15,15 +15,14 @@ import { type BinaryLike, type BinaryToTextEncoding } from 'node:crypto';
|
|
|
15
15
|
* convertToCamelCase('hello-world') // 'HelloWorld'
|
|
16
16
|
* convertToCamelCase('foo-bar-ui') // 'FooBarUI'
|
|
17
17
|
*/ export declare function convertToCamelCase(name: string): string;
|
|
18
|
-
type ProgramPath<T extends string> = `${T extends string ? T : string}`;
|
|
19
18
|
/** 位于项目根目录下的位置
|
|
20
19
|
* @param {string} src 路径
|
|
21
20
|
* @returns {string} 位于项目根目录下的位置
|
|
22
|
-
*/ export declare function resolveProgram
|
|
21
|
+
*/ export declare function resolveProgram(...src: string[]): string;
|
|
23
22
|
/** 位于项目根目录node_modules下的位置
|
|
24
23
|
* @param {string} name 路径
|
|
25
24
|
* @returns {string} 位于项目根目录node_modules下的位置
|
|
26
|
-
*/ export declare function node_modules
|
|
25
|
+
*/ export declare function node_modules(...name: string[]): string;
|
|
27
26
|
export declare function isObject(target: unknown): target is object;
|
|
28
27
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
28
|
type AnyFunction = (...a: any[]) => any;
|
package/lib/utils/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createHash as e,createHmac as t}from"node:crypto";import{
|
|
1
|
+
import{createHash as e,createHmac as t}from"node:crypto";import{resolve as o}from"node:path";import{fileExists as r}from"@moneko/utils";import n from"../commom/paths.mjs";import c from"../commom/require.mjs";export function toCamelCase(e){return e.replace(/-./g,e=>e.charAt(1).toUpperCase())}export function convertToCamelCase(e){return e.toLowerCase().replace(/^@/,"").replace(/\//g,"-").replace(/-(\w)/g,(e,t)=>t?t.toUpperCase():"").replace(/^./,e=>e.toUpperCase()).replace(/Ui$/,"UI")}export function resolveProgram(...e){return o(n.programPath,...e)}export function node_modules(...e){return o(n.nodeModules,...e)}export function isObject(e){let t=typeof e;return null!==e&&("object"===t||"function"===t)}export function isFunction(e){return["[object Function]","[object AsyncFunction]","[object GeneratorFunction]"].includes(Object.prototype.toString.call(e))}export function transformModule(e){let t="";if("string"==typeof e)t=e;else for(let[o,r]of Object.entries(e))t+=`export const ${o} = ${isFunction(r)?r:JSON.stringify(r)};`;return t}export function empty(){}export function digest(e,o){return t(o?.algorithm??"sha1",o?.secret??"mo").update(e).digest(o?.encoding??"hex")}export function md5(t,o="hex"){return e("md5").update(t).digest(o)}export function getConfigWithTypescript(e,t){return r(e)?(delete c.cache[e],c(e)):t??{}}
|
package/lib/utils/seo.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{scanRouter as
|
|
1
|
+
import{join as o}from"node:path";import{scanRouter as m,sitemap as t}from"@moneko/mdx";import{saveFileSync as r}from"@moneko/utils";import{routeDir as e}from"../commom/paths.mjs";import{outputConfig as i}from"../common.mjs";import{CONFIG as p}from"../config.mjs";import{isLibrary as s}from"../process-env.mjs";import{resolveProgram as n}from"./index.mjs";export default function(){let{domain:f,jekyll:a,path:l}=p.seo||{},j=l&&n(l)||i?.path;if(!f||!j)return;let x=`https://${f}${p.basename}`;r(o(j,"CNAME"),f),r(o(j,"robots.txt"),`User-agent: *
|
|
2
2
|
Allow: /
|
|
3
3
|
|
|
4
|
-
Sitemap: ${x}/sitemap.txt`),
|
|
4
|
+
Sitemap: ${x}/sitemap.txt`),r(o(j,"sitemap.txt"),[x,...t(e,x,m(e,s))].join("\n")),a||r(o(j,".nojekyll"),"")};
|
package/lib/vm/app.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getAppEntry as
|
|
1
|
+
import{join as e}from"node:path";import{getAppEntry as r,getAppFallback as o,getAppMergeRouter as m,getAppNormalizeCss as t,getAppPrefixRouter as s,getAppRem as a,getAppSuspense as p}from"@moneko/mdx";import n,{routeDir as i}from"../commom/paths.mjs";import f from"../commom/reactive-object.mjs";import{readJson as c}from"../commom/read-json.mjs";import{CONFIG as l}from"../config.mjs";import d from"../plugin/module-federation.mjs";import{app_schema as u,APPTYPE as j,FRAMEWORK as x,framework as y,frameworkVersionStr as g,SSR as h}from"../process-env.mjs";import k from"../utils/create-types.mjs";import{generateDeclaration as v}from"../utils/dts.mjs";import{convertToCamelCase as C,transformModule as b}from"../utils/index.mjs";import{getEnvDts as D,vm_dts as w}from"./dts.mjs";import{generateLocales as z}from"./locales.mjs";import M from"./render-app.mjs";import{getRouter as P}from"./routes.mjs";export const app_vm=new f({env:{type:".ts",source:()=>{let e=`${u}:env`,r=D(b(l.env));return w.setData(e,k(e,v(r,e))),r}},info:r=>{let o=e(n.programPath,"package.json"),m=c(o),t=b({...m,projectName:C(m.name),ssr:h,base:l.basename,type:j,routerMode:l.routerMode,prefixCls:l.prefixCls,theme:l.theme,frameworkVersion:g,framework:y}),s=`${u}:info`;return r?.addDependency(o),w.setData(s,k(s,v(t,s))),t},render:{type:".tsx",source:()=>"react"===x?M:""},entry:()=>r(e(l.alias["@"],"./index.ts"),!!d.length,!!l.rem,!!l.normalizeCss,j,x),fallback:()=>o(l.fallbackCompPath),"merge-router":()=>m(),"prefix-router":()=>s(),suspense:{type:".tsx",source:()=>p(j,x)},routes:e=>(e.addContextDependency(i),P()),locals:r=>{let o=e(l.alias["@"],"./locales");return r.addContextDependency(o),z()},normalize:{type:".css",source:()=>t()},rem:()=>a(l.rem?.designSize||1680)});
|
package/lib/vm/dts.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{loadFileSync as
|
|
1
|
+
import{join as e}from"node:path";import{loadFileSync as t,updateFile as o,updateFileSync as r}from"@moneko/utils";import s from"../commom/paths.mjs";import n from"../commom/reactive-object.mjs";import{readJson as m}from"../commom/read-json.mjs";import{app_schema as a,APPTYPE as i,CACHE_NAME as p,FRAMEWORK as d,framework as l,frameworkVersionStr as c,packageJson as v,service_worker_schema as f,SSR as u,virtual_schema as j}from"../process-env.mjs";import $ from"../utils/create-types.mjs";import{generateDeclaration as y}from"../utils/dts.mjs";import{convertToCamelCase as h,transformModule as g}from"../utils/index.mjs";export const dts_path=e(s.nodeModules,"@types",p,"index.d.ts");export const vm_dts=new n({});export function getEnvDts(e){return`${e};declare global {import AppEnv from '${a}:env';type ImportMetaEnv = Readonly<typeof AppEnv>;interface ImportMeta {readonly env: ImportMetaEnv;}namespace NodeJS {interface ProcessEnv extends ImportMetaEnv {readonly [key: string]: string | number | boolean | undefined;}}}`}vm_dts.on("change",()=>{let e=Object.values(vm_dts.data).join("\n");o(dts_path,e)});export function initDts(o){let n=$(`${a}:env`,y(getEnvDts(g(o.env)),`${a}:env`));vm_dts.setData(`${a}:env`,n);let M=$(`${a}:info`,y(g({...m(e(s.programPath,"package.json")),projectName:h(v.name),ssr:u,type:i,frameworkVersion:c,framework:l,base:o.basename,routerMode:o.routerMode,prefixCls:o.prefixCls,theme:o.theme}),`${a}:info`));vm_dts.setData(`${a}:info`,M),vm_dts.setData(`${f}:precaching`,$(`${f}:precaching`,t(e(s.corePath,"./service-worker/precaching.d.ts"))||"")),o.virtualModule&&Object.keys(o.virtualModule).map(e=>{let t=g(o.virtualModule[e]),r=`${j}:${e}`;vm_dts.setData(r,$(r,y(t,r)))});let x=o.moduleFederation?.flatMap(e=>Array.isArray(e.remotes)?e.remotes.map(e=>e.name):[]).filter(Boolean);r(dts_path,Object.values(vm_dts.data).join("\n")),r(e(s.nodeModules,"@moneko/init.d.json"),JSON.stringify({extends:`@moneko/${d}/base`,compilerOptions:{types:[`@moneko/${d}/env.d.ts`,`@types/${p}/index.d.ts`,...x.map(e=>`@types/${p}/${e}.d.ts`)]}}))}
|
package/lib/vm/example.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{join as e}from"node:path";import{generateExample as t}from"@moneko/mdx";import o from"../commom/paths.mjs";import m from"../commom/reactive-object.mjs";import*as r from"../commom/rule.mjs";import{CONFIG as a}from"../config.mjs";import{example_schema as n,isLibrary as p}from"../process-env.mjs";export const example_vm=new m({});let s=new m({});export function generatorExample(){if(!p)return"export default {}";let m=p&&!1!==a.htmlPluginOption?JSON.parse(t(o.componentsPath,`${n}:`,"6")):{},c={};for(let t in m){if(!Object.hasOwn(m,t))continue;s.setData(t,m[t]);let r=t.replace(`${n}:`,"");example_vm.has(r)||example_vm.setData(r,{source:m=>(m.addContextDependency(e(o.componentsPath,r)),s.getData(t))}),Object.assign(c,{[t]:`rr(() => import('${t}'))rr`})}return`export default ${JSON.stringify(c).replace(r.extract_func,"$1")}`}generatorExample();
|
package/lib/vm/generate-doc.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e
|
|
1
|
+
import{dirname as e}from"node:path";import t from"typescript";import{CONFIG as n}from"../config.mjs";import r from"../options/md-to-html.mjs";import{digest as l}from"../utils/index.mjs";let o=t.ScriptKind,i=t.ScriptTarget,a=t.SyntaxKind,c=t.createSourceFile,s=t.forEachChild,u=t.getLeadingCommentRanges,f=t.isInterfaceDeclaration,m=t.isQuestionToken,p=t.isPropertySignature,g=t.isFunctionTypeNode,$=t.isUnionTypeNode,d=t.isMethodSignature,h={};function b(e){let t=u(e.getSourceFile().text,e.pos);if(t){let n=e.getSourceFile().text.slice(t[0].pos,t[0].end).match(/\/\*\*([\s\S]*?)\*\//);if(n)return n[1].replaceAll(/^\s*\* ?/gm,"").replace(/\s+$/,"").trim()}}function y(e){if(!e)return;let t=e.match(/@since\s+([^\n]+)/);return t?t[1].trim():void 0}function x(e){if(!e)return;let t=e.match(/@author (\w+)\s*(?:<([^>]+)>)?/);if(t&&t.length>0){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}](${n})`}}function j(e){if(!e)return;let t=e.match(/@ignore\s+([^\n]+)/);return t?t[1].trim():void 0}let A=/(?<!['"])(unknown|any|void|bigint|object|undefined|null|boolean|number|string|symbol)(?!['"])/g;function S(e,t){if(!e)return;let r=e.replaceAll(/\b([A-Z][a-zA-Z0-9]*)\b/g,e=>{if(h[e]){let r=`/${[n.basename,h[e]].join("/").split("/").filter(Boolean).join("/")}`;return t?`[\\color{#009688}{${e}}](${r})`:`[${e}](${r})`}return t?`\\color{#009688}{${e}}`:e});return t&&(r=r.replaceAll(A,e=>`\\color{#009688}{${e}}`)),r}function T(e){if(e)return(function(e){let t;if(!e)return;let n=[];for(;t=/\\color{([^|}]*)\|?([^|}]*)\|?([^|}]*)\|?([^}]*)}{([^}]*)}/g.exec(e);)n.push(t[0]);return e.replaceAll(/[{}[\]()=>]|keyof|typeof|true|false/g,e=>n.some(t=>t.includes(e))?e:`\\color{#569cd6}{${e}}`)})(e)?.replaceAll(/^\s*\|\s*|\s*\|\s*$/gm,"").replaceAll(/\n/g,"<br/>").replaceAll(/\*/g,"\\*").replaceAll(/\|/g,"\\|").replaceAll(/(['"])((?:(?!\1).)*)\1/g,"\\color{#ce9178}{$1$2$1}")}function k(e){if(e)return e.replaceAll(/@example\s*([\s\S]*?)(?=@[a-zA-Z]|\n*$)/g,"").replaceAll(/^@[a-z].+/gm,"").replaceAll(/(\n\s+)+/g,"<br />").replaceAll(/\n/g,"<br />").replaceAll(/(<br \/>)$/g,"")}let v=new Map;export default function w(u,A){let w=l(u),B=v.get(w);if(B)return B;let z=c(A,u,i.Latest,!0,o.TS),F="";s(z,r=>{f(r)?F+=function(r){let l=r.name.text;Object.assign(h,{[r.name.text]:e(r.getSourceFile().fileName).replace(n.alias["@pkg"],"")});let o=b(r),i=y(o),c=k(o),s=j(o)?.split("|")||[],u=s.includes("comment"),f=s.includes("initial"),A=s.includes("optional"),v=s.includes("version"),w=s.includes("author"),B=c?`\\color{|4||0.45}{${l}}`:l,z=(function(e){let n=[];if(e.heritageClauses){for(let r of e.heritageClauses)if(r.token===t.SyntaxKind.ExtendsKeyword)for(let e of r.types)n.push(e.getText())}return n})(r)?.map(e=>`<n-tag color="#4c81db" css=".tag{gap:0px;}">${S(T(e))}</n-tag>`),F=[c,B,i&&`\\color{#52c11b|1||0.9}{${i}}`,z.length>0&&`<sub>\`extends\`</sub> ${z.join(" ")}`].filter(Boolean).join(" "),N=`## ${F}`,K=r.members.filter(e=>p(e)&&e.type?.kind!==a.NeverKeyword||d(e)),C=[];if(K.length>0){for(let e=0,t=K.length;e<t;e++){let t=K[e],n=S(T(d(t)?`(${t.parameters.map(e=>`${e.name.getText()}: ${e.type?.getText()||"any"}`).join(", ")}): ${t.type?.getText()||"any"}`:t.type?.getText()||"any"),!0),r=b(t),l=T(t.name.getText());l&&!l.startsWith("\\color")&&(d(t)||function(e){if(e.type){if(!$(e.type))return g(e.type);else for(let t of e.type.types)if(g(t))return!0}return!1}(t)||n?.includes("=>")?l=`\\color{#f9a913}{${l}}`:/^["'](.+)["']$/.test(l)||(l=`\\color{#4c81db}{${l}}`));let i=t.questionToken&&m(t.questionToken);C.push([l,!A&&`\\color{${i?"#f9a913":"#52c11b"}\\|\\|\\|0.9}{${i?"✘":"✔"}}`,!u&&T(k(r)),n,!f&&T(function(e){if(!e)return;let t=e.match(/@default\s+([^\n]+)/);return t?t[1].trim():void 0}(r)),!v&&T(y(r)),!w&&(x(r)||x(o)),function(e){if(!e)return;let t=e.match(/@example\s*([\s\S]*?)(?=@[a-zA-Z]|\n*$)/);return t?t[1].trim():void 0}(r)])}let e=!1,t=!1,n=!1,r=!1;for(let l=0,o=C.length;l<o;l++){let o=C[l];!u&&o[2]&&(r=!0),!f&&o[4]&&(n=!0),!v&&o[5]&&(t=!0),!w&&o[6]&&(e=!0)}N+="\n";let l=["属性",!A&&"必要",r&&"说明","类型",n&&"默认值",t&&"版本",e&&"作者"].filter(Boolean).join("|");N+=`|${l}|`;let i=[":-",!A&&":-",r&&":-",":-",n&&":-",t&&":-",e&&":-"].filter(Boolean);N+="\n";let a=i.join("|");N+=`|${a}|`;for(let l=0,o=C.length;l<o;l++){let o=C[l];N+="\n";let i=[(o[7]?`<n-popover arrow="true" trigger="click" content=${JSON.stringify(`<n-md css=.n-md-body{margin-bottom:0;padding:0.5rem;background-color:transparent;backdrop-filter:none;box-shadow:none;}>${o[7]}</n-md>`)}><n-button size="small" type="primary" circle="true" style="margin-right:8px;">?</n-button></n-popover>`:"")+(o[0]||"-"),!A&&(o[1]||"-"),r&&(o[2]||"-"),o[3]||"-",n&&(o[4]||"-"),t&&(o[5]||"-"),e&&(o[6]||"-")].filter(Boolean).join("|");N+=`|${i}|`}N+="\n"}return N+"\n"}(r):t.isEnumDeclaration(r)&&(F+=function(r){let l=r.name.text,o=b(r),i=k(o),a=y(o);Object.assign(h,{[r.name.text]:e(r.getSourceFile().fileName).replace(n.alias["@pkg"],"")});let c=i?`\\color{|4||0.45}{${l}}`:l,s=[i,c,a&&`\\color{#52c11b|1||0.9}{${a}}`].filter(Boolean).join(" "),u=j(o)?.split("|")||[],f=u.includes("comment"),m=u.includes("version"),p=u.includes("author"),g=`## ${s}`;if(r.members.length>0){let e=[];for(let n=0,l=r.members.length;n<l;n++){let l=r.members[n],i=T(l.name.getText()),a=b(l),c=T(function(e){let n=e.initializer;if(n&&t.isStringLiteral(n))return` '${n.text}'`}(l)),s=T(y(a)),u=T(k(a));!i||i.startsWith("\\color")||/^["'](.+)["']$/.test(i)||(i=`\\color{#4c81db}{${i}}`),e.push([i,!f&&u,c,!m&&s,!p&&(x(a)||x(o))])}let n=!1,l=!1,i=!1;for(let t=0,r=e.length;t<r;t++){let r=e[t];!f&&r[1]&&(i=!0),!m&&r[3]&&(l=!0),!p&&r[4]&&(n=!0)}g+="\n";let a=["属性",i&&"说明","值",l&&"版本",n&&"作者"].filter(Boolean).join("|");g+=`|${a}|`;let c=[":-",i&&":-",":-",l&&":-",n&&":-"].filter(Boolean);g+="\n";let s=c.join("|");g+=`|${s}|`;for(let t=0,r=e.length;t<r;t++){let r=e[t];g+="\n";let o=[r[0]||"-",i&&(r[1]||"-"),r[2]||"-",l&&(r[3]||"-"),n&&(r[4]||"-")].filter(Boolean).join("|");g+=`|${o}|`}}return g+"\n\n"}(r))});let N=r(F);return v.set(w,N),N}
|
package/lib/vm/locales.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
export function template(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(e)};const _res = ${JSON.stringify(t)};const resources = deepFreeze(_res);${i}`}if(
|
|
1
|
+
import{basename as e,join as t}from"node:path";import{directoryExists as a,scanFolderSync as o}from"@moneko/utils";import l from"../commom/log.mjs";import r from"../commom/require.mjs";import{CONFIG as n}from"../config.mjs";import{FRAMEWORK as c}from"../process-env.mjs";export function generateLocales(){let s=t(n.alias["@"],"./locales"),g={react:'import sso from "shared-store-object";',solid:'import { createEffect, createRoot, getOwner } from "solid-js";import { createStore } from "solid-js/store";'},i={react:'let storageKey="localizable.language",language=localStorage.getItem(storageKey)||navigator.language,{translation:a,...defaultLocale}=Object.assign({title:"简体中文",language:navigator.language,translation:{}},resources[language]||resources[navigator.language]),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)||navigator.language,{translation:l,...o}=Object.assign({title:"简体中文",language:navigator.language,translation:{}},resources[a]||resources[navigator.language]),[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;'}[c];function u(e,t){return`${g[c]}
|
|
2
|
+
export function template(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(e)};const _res = ${JSON.stringify(t)};const resources = deepFreeze(_res);${i}`}if(a(s)&&!1!==n.htmlPluginOption){let t={};o(s,[".ts$"]).filter(e=>!/^\..*|\.d\.ts$/.test(e)).forEach(a=>{let o=e(a).replace(/\.[^.]+$/,"");try{delete r.cache[a],Object.assign(t,{[o]:r(a).default})}catch(e){Object.assign(t,{[o]:{}}),l(e)}});let a=[],n={};for(let e in t){if(!Object.hasOwn(t,e))continue;let{language:o=e,title:l=o,icon:r,translation:c={}}=t[e];a.push({language:o,title:l,icon:r}),n[o]={language:o,title:l,icon:r,translation:c}}return u(a,n)}return u([],{})}
|
package/lib/vm/scope.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{join as o}from"node:path";import{getAppScope as m}from"@moneko/mdx";import e from"../commom/has-pkg.mjs";import r from"../commom/reactive-object.mjs";import{CONFIG as s}from"../config.mjs";export const scope_vm=new r({components:{source:()=>{let r=o(s.alias["@"],"./scope.tsx"),t=o(s.alias["@"],"./scope.ts");return!e(r)&&e(t)&&(r=t),m(r,"@/scope")}}});
|
package/lib/vm/sw.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{join as o}from"node:path";import{loadFileSync as m}from"@moneko/utils";import r from"../commom/paths.mjs";import e from"../commom/reactive-object.mjs";export const sw_vm=new e({precaching:{type:".ts",source:()=>m(o(r.corePath,"./service-worker/precaching.js"))||""}});
|
package/lib/worker/eslint.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let a,e;import{parentPort as
|
|
1
|
+
let a,t;import{relative as e,sep as r}from"node:path";import{parentPort as o}from"node:worker_threads";import{ESLint as s}from"@moneko/eslint";import i from"../commom/paths.mjs";if(!o)throw Error("This file must be run as a worker");o?.setMaxListeners(0),o.on("message",async({options:m})=>{try{a||(a=new s({cache:m.cache,cacheLocation:m.cacheLocation,cacheStrategy:m.cacheStrategy,fix:m.fix}),t=await a.loadFormatter("stylish"));let c=m.files.map(a=>(m.lintDirtyModulesOnly?e(i.programPath,a):a).replaceAll(r,"/")),l=await a.lintFiles(c),n=[],h=[];m.fix&&await s.outputFixes(l),l.forEach(a=>{a.errorCount?h.push(a):a.warningCount&&n.push(a)});let p=await Promise.all([t.format(n,{cwd:i.programPath,rulesMeta:{}}),t.format(h,{cwd:i.programPath,rulesMeta:{}})]);o.postMessage(p.map(a=>a.replace(/[^\r\n]*(\r?\n)*$/,"")))}catch{o.postMessage(["",""])}});
|
package/lib/worker/stylelint.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{sep as e}from"node:path";import{parentPort as r}from"node:worker_threads";import{stylelint as t}from"@moneko/stylelint";if(!r)throw Error("This file must be run as a worker");let a=await t.formatters.string;r?.setMaxListeners(0),r.on("message",async({options:i})=>{try{let n=await t.lint({cache:i.cache,cacheLocation:i.cacheLocation,fix:i.fix,files:i.files.map(r=>r.replaceAll(e,"/")),quietDeprecationWarnings:i.quietDeprecationWarnings,quiet:i.quiet});delete n.output;let s=[],o=[];n.results.forEach(e=>{if(!e.ignored&&(e.errored||e.parseErrors.length||e.invalidOptionWarnings.length||e.deprecations.length)){let r=[],t=[];e.warnings.forEach(e=>{"error"===e.severity?r.push(e):"warning"===e.severity&&t.push(e)}),r.length>0&&s.push({...e,warnings:r}),t.length>0&&o.push({...e,warnings:t})}});let l=[a(o,n),a(s,n)];r.postMessage(l.map(e=>e.replace(/[^\r\n]*(\r?\n)*$/,"")))}catch{r.postMessage(["",""])}});
|