@moneko/core 3.54.0-beta.3 → 3.54.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/lib/bin/build-app.mjs +1 -0
  2. package/lib/bin/build.mjs +1 -0
  3. package/lib/bin/changelog.mjs +4 -0
  4. package/lib/bin/eslint.mjs +2 -0
  5. package/lib/bin/git-hooks.mjs +2 -0
  6. package/lib/bin/help.mjs +13 -0
  7. package/lib/bin/lessc.mjs +1 -0
  8. package/lib/bin/server.mjs +1 -0
  9. package/lib/bin/start.mjs +1 -0
  10. package/lib/bin/stylelint.mjs +2 -0
  11. package/lib/bin/tsc.mjs +1 -0
  12. package/lib/bin/utils/bundle-app.mjs +1 -0
  13. package/lib/bin/utils/config.mjs +1 -0
  14. package/lib/bin/utils/get-commit-files.mjs +1 -0
  15. package/lib/build.mjs +2 -2
  16. package/lib/commom/check-npm.mjs +1 -0
  17. package/lib/commom/corepack.mjs +1 -0
  18. package/lib/commom/diff-object.mjs +1 -0
  19. package/lib/commom/host.mjs +19 -0
  20. package/lib/commom/module-resolve.mjs +1 -0
  21. package/lib/commom/net.mjs +1 -0
  22. package/lib/commom/open.mjs +1 -0
  23. package/lib/commom/paths.mjs +1 -0
  24. package/lib/commom/reactive-object.mjs +1 -0
  25. package/lib/commom/rule.mjs +1 -0
  26. package/lib/commom/setup-env.mjs +1 -0
  27. package/lib/commom/sigint-exit.mjs +1 -0
  28. package/lib/commom/transform-solid-js.mjs +1 -0
  29. package/lib/dev/config.mjs +2 -0
  30. package/lib/dev/get-cert.mjs +1 -0
  31. package/lib/dev/mock.mjs +1 -0
  32. package/lib/dev/server.mjs +1 -0
  33. package/lib/loader/css-in-js-minify.cjs +1 -0
  34. package/lib/loader/lightning-css/codegen.cjs +20 -0
  35. package/lib/loader/lightning-css/loader.cjs +1 -0
  36. package/lib/loader/lightning-css/utils.cjs +1 -0
  37. package/lib/loader/mdx.cjs +1 -0
  38. package/lib/loader/react-compiler.cjs +1 -0
  39. package/lib/loader/solid.cjs +1 -0
  40. package/lib/loader/ts-doc.cjs +1 -0
  41. package/lib/options/md-to-html.mjs +1 -0
  42. package/lib/options/reslove.mjs +1 -0
  43. package/lib/options/swcrc.mjs +1 -0
  44. package/lib/plugin/compression.mjs +1 -0
  45. package/lib/plugin/copy.mjs +1 -0
  46. package/lib/plugin/done.mjs +1 -0
  47. package/lib/plugin/exposes-declararion.mjs +1 -0
  48. package/lib/plugin/external-remotes.mjs +1 -0
  49. package/lib/plugin/html-plugin.mjs +1 -0
  50. package/lib/plugin/lightningcss-plugin.mjs +1 -0
  51. package/lib/plugin/manifest.mjs +1 -0
  52. package/lib/plugin/override-resolve.mjs +1 -0
  53. package/lib/plugin/swc-minify-plugin.mjs +1 -0
  54. package/lib/plugin/virtual-module.mjs +1 -0
  55. package/lib/polyfills/polyfills.mjs +1 -0
  56. package/lib/polyfills/targets.mjs +1 -0
  57. package/lib/utils/fetch-module-federation-dts.mjs +1 -0
  58. package/lib/utils/index.mjs +1 -0
  59. package/lib/utils/run.mjs +1 -0
  60. package/lib/utils/seo.mjs +4 -0
  61. package/lib/vm/coverage.mjs +1 -0
  62. package/lib/vm/example.mjs +1 -0
  63. package/lib/vm/generate-doc.mjs +1 -0
  64. package/lib/vm/routes.mjs +1 -0
  65. package/lib/vm/utils.mjs +1 -0
  66. package/package.json +2 -2
  67. package/typings/global.d.ts +1 -1
  68. package/lib/bin/commit-lint.d.mts +0 -2
  69. package/lib/bin/file.d.mts +0 -2
  70. package/lib/bin/index.d.mts +0 -2
  71. package/lib/bin/pin.d.mts +0 -5
  72. package/lib/bin/pure-lint.d.mts +0 -2
  73. package/lib/bin/setup.d.mts +0 -2
  74. package/lib/bin/utils/convert-solid.d.mts +0 -28
  75. package/lib/bin/utils/convert-solid.mjs +0 -1
  76. package/lib/bin/utils/setup-swcrc.d.mts +0 -2
  77. package/lib/build/common.d.mts +0 -3
  78. package/lib/build/server.d.mts +0 -3
  79. package/lib/build.d.mts +0 -1
  80. package/lib/commom/ca.d.mts +0 -7
  81. package/lib/commom/esm.d.mts +0 -2
  82. package/lib/commom/has-pkg.d.mts +0 -2
  83. package/lib/commom/is-ci-environment.d.mts +0 -5
  84. package/lib/commom/log.d.mts +0 -2
  85. package/lib/commom/match-path.d.mts +0 -21
  86. package/lib/commom/mime.d.mts +0 -2
  87. package/lib/commom/parse-args.d.mts +0 -2
  88. package/lib/commom/parse-module-meta.d.mts +0 -9
  89. package/lib/commom/print-log.d.mts +0 -15
  90. package/lib/commom/require.d.mts +0 -2
  91. package/lib/commom/timer.d.mts +0 -11
  92. package/lib/common.d.mts +0 -3
  93. package/lib/config.d.mts +0 -4
  94. package/lib/dev/generate-progress-html.d.mts +0 -6
  95. package/lib/dev/json-schema.d.mts +0 -72
  96. package/lib/dev/proxy.d.mts +0 -15
  97. package/lib/dev.d.mts +0 -1
  98. package/lib/file-system.d.mts +0 -2
  99. package/lib/index.d.mts +0 -24
  100. package/lib/lint/eslint/base.d.mts +0 -2
  101. package/lib/lint/eslint/index.d.mts +0 -2
  102. package/lib/lint/eslint/react.d.mts +0 -2
  103. package/lib/lint/eslint/solid.d.mts +0 -2
  104. package/lib/lint/eslint/vue.d.mts +0 -2
  105. package/lib/lint/stylelint/config.d.mts +0 -2
  106. package/lib/lint/stylelint/index.d.mts +0 -1
  107. package/lib/loader/lightning-css/runtime/api.d.cts +0 -5
  108. package/lib/loader/lightning-css/runtime/get-url.d.cts +0 -1
  109. package/lib/module.config.d.mts +0 -3
  110. package/lib/options/css-extract.d.mts +0 -4
  111. package/lib/options/jsx-dom-expressions.d.mts +0 -10
  112. package/lib/options/modify-vars.d.mts +0 -2
  113. package/lib/options/split-chunk.d.mts +0 -4
  114. package/lib/plugin/eslint.d.mts +0 -14
  115. package/lib/plugin/module-federation.d.mts +0 -3
  116. package/lib/plugin/stylelint.d.mts +0 -13
  117. package/lib/plugins.config.d.mts +0 -3
  118. package/lib/polyfills/replace-children.d.mts +0 -1
  119. package/lib/process-env.d.mts +0 -22
  120. package/lib/utils/compile-dts.d.mts +0 -22
  121. package/lib/utils/create-types.d.mts +0 -2
  122. package/lib/utils/dts.d.mts +0 -12
  123. package/lib/utils/svg-to-data-uri.d.mts +0 -2
  124. package/lib/utils/vts.d.mts +0 -18
  125. package/lib/vm/docs.d.mts +0 -7
  126. package/lib/vm/info.d.mts +0 -2
  127. package/lib/vm/locales.d.mts +0 -5
  128. package/lib/vm/modules.d.mts +0 -2
  129. package/lib/vm/render-app.d.mts +0 -2
  130. package/lib/worker/dts.d.mts +0 -1
  131. package/lib/worker/eslint.d.mts +0 -1
  132. package/lib/worker/react-compiler.d.mts +0 -35
  133. package/lib/worker/stylelint.d.mts +0 -1
  134. package/lib/worker/swc-minify.d.mts +0 -1
@@ -0,0 +1 @@
1
+ import{execSync as e}from"node:child_process";import{existsSync as i,readdirSync as n,statSync as o}from"node:fs";import r from"node:path";import{argv as s,env as t,exit as l}from"node:process";import{buildPlist as a,buildXml as d,createDir as c,ink as p,jsonToYaml as m,loadFileSync as u,parsePlist as f,parseXml as y,parseYaml as S,print as $,println as b,removeDir as j,saveFile as _,saveFileSync as g}from"@moneko/utils";import{bundleApk as w,bundleIOS as k}from"./utils/bundle-app.mjs";import{cwd as O}from"./utils/config.mjs";import{__dirname as A}from"./file.mjs";export function copyFileSync(e,i){let n=u(e);if(null!==n){let s=i;o(i).isDirectory()&&(s=r.join(i,r.basename(e))),g(s,n)}}export function copyFolderRecursiveSync(e,i,s){let t=i;s&&(t=r.join(i,r.basename(e))),o(e).isDirectory()&&n(e).forEach(function(i){let n=r.join(e,i);o(n).isDirectory()?copyFolderRecursiveSync(n,t,!0):copyFileSync(n,t)})}export default async function N(){s.slice(3).forEach(e=>{let[i,n]=e.replace(/^--/,"").split("=");t[`__args__${i}__`]=n});let{CONFIG:g}=await import("../config.mjs"),N=g.bundleId;N||(b(p("请配置 bundleId","red")),l(1)),/(^com\.)([a-zA-Z_][a-zA-Z0-9_]*[.])*([a-zA-Z_][a-zA-Z0-9_]*)$/.test(N)&&3===N.split(".").length||(b(p("软件包名不合法","red")),l(1));let h=g.bundles;h&&0!==h.length||(b(p("请配置 bundles (打包类型)","red")),l(1));let E=N.split(".").splice(-1,1).join(""),R=r.join(O,"/dist"),T=`flutter create -t app --org ${N} -i swift -a kotlin ${E}`,V=r.join(O,`/${E}`),v=r.join(V,"assets/web/");e(T,{encoding:"utf-8"}),c(v),$(p("正在注册资产...","yellow"),!0),copyFolderRecursiveSync(R,v);let x=r.join(V,"pubspec.yaml"),I=JSON.parse(await S(x)||"{}"),J=[],D=(e,i="assets/web")=>{let r=n(e);!function n(s){s!=r.length&&(o(`${e}/${r[s]}`).isDirectory()&&(J.push(`${i}/${r[s]}/`),D(`${e}/${r[s]}`,`${i}/${r[s]}`)),n(s+1))}(0)};if(D(R),I.dependencies.webview_flutter_plus="^0.2.3",I.flutter.assets=["assets/web/",...J],_(x,await m(JSON.stringify(I))),$(`${p("注册资产","cyan")}: ${p("完成","cyan")}`,!0),h.includes("apk -release")||h.includes("apk -debug")){$(p("正在配置安卓权限...","yellow"),!0);let e=r.join(V,"android/app/src/main/AndroidManifest.xml"),i=JSON.parse(y(e));i.manifest.application.$["android:usesCleartextTraffic"]="true",i.manifest["uses-permission"]=[{$:{"android:name":"android.permission.INTERNET"}},{$:{"android:name":"android.permission.ACCESS_NETWORK_STATE"}},{$:{"android:name":"android.permission.WAKE_LOCK"}}],_(e,d(JSON.stringify(i)));let n=r.join(V,"android/app/build.gradle"),o=u(n)||"",s="minSdkVersion flutter.minSdkVersion";if(o?.includes(s))o=o.replace(s,"minSdkVersion 20");else{let e=o.indexOf("minSdkVersion "),i=o.substring(e,e+16);o=o.replace(i,"minSdkVersion 20")}let t="compileSdkVersion flutter.compileSdkVersion";o.includes(t)&&(o=o.replace(t,"compileSdkVersion 32")),_(n,o),$(`${p("安卓权限配置","cyan")}: ${p("完成","cyan")}`,!0)}if(h.includes("ios -release")||h.includes("ios -debug")){$(p("开始配置IOS权限","yellow"),!0);let e=r.join(V,"ios/Runner/Info.plist"),i=Object.assign(JSON.parse(await f(e)),{NSAppTransportSecurity:{NSAllowsArbitraryLoads:!0},"io.flutter.embedded_views_preview":!0});_(e,await a(JSON.stringify(i))),$(`${p("IOS权限配置","cyan")}: ${p("完成","cyan")}`,!0)}_(r.join(V,"lib/main.dart"),u(r.join(A,"./conf/bootstrap"))||"");let F=r.join(O,"./bundle/");c(F),setTimeout(()=>{h.forEach(e=>{let i=e.split(" ");"apk"===i[0]&&w(V,F,i[1]),"ios"===i[0]&&k(V,F,i[1])}),j(V),i(r.join(F,"Runner"))&&j(r.join(F,"Runner")),$(`✨ ${p("Done","green")}`,!0),l(0)},1e3)}
@@ -0,0 +1 @@
1
+ import{join as o}from"node:path";import{argv as t,exit as e}from"node:process";import{ink as s,println as i,removeDir as r}from"@moneko/utils";import m from"../commom/setup-env.mjs";import{cwd as n,swcCachePath as l}from"./utils/config.mjs";import{getSwcOption as p}from"./utils/setup-swcrc.mjs";import{lesscCommonjs as c}from"./lessc.mjs";import d from"./tsc.mjs";async function a(){let a=t[3],j=t[4],u=t.slice(5);a||(i(s(`type: 无效值 ${s(a,"245")}`,"red")),e(1));let f=!u.includes("no-docs"),x=!u.includes("no-lib"),y=!u.includes("no-es"),_=!u.includes("no-dts"),g=u.filter(o=>!["no-docs","no-es","no-lib"].includes(o));if(await m("production",a,j,g),"library"===a){let t="solid"===j?await import("@moneko/convert/solid"):await import("@moneko/convert"),{CONFIG:e}=await import("../config.mjs"),s="swc"===e.dts,i=[x&&{type:"commonjs",dir:"lib",msg:"Convert to CommonJS"},y&&{type:"es6",dir:"es",msg:"Convert to ES Module"}].filter(Boolean);for(let m=0,a=i.length;m<a;m++){if(r(o(n,`./${i[m].dir}`)),"react"===j){let o=p();"es6"===i[m].type&&(o.jsc.target="es2015"),o.jsc.experimental.emitIsolatedDts=_&&s,o.jsc.experimental.cacheRoot=l,o.module.type=i[m].type,t.convert({outDir:i[m].dir,inputDir:"components",ignore:[/^.*\/__*__\//,/\.test\.(js|ts)x?$/,/\.DS_Store/,/\.mdx?$/,/^.*\/examples\//,/\.d\.(cj|mj|j|t|ct|mt)sx?$/],options:o})}else if("solid"===j){let o={jsxOptions:e.jsxDomExpressions,presetEnvOption:{modules:"commonjs"}};"es6"===i[m].type&&(o.presetEnvOption.modules=!1),t.convertSolid({outDir:i[m].dir,inputDir:"components",ignore:[/^.*\/__*__\//,/\.test\.(js|ts)x?$/,/\.DS_Store/,/\.mdx?$/,/^.*\/examples\//,/\.d\.(cj|mj|j|t|ct|mt)sx?$/],options:o})}"commonjs"===i[m].type&&c(),_&&!s&&d(i[m].dir)}}if("library"!==a||f&&"library"===a)try{await import("../build.mjs")}catch(o){i(s(Error(o).message,"red")),e(1)}}export default a;
@@ -0,0 +1,4 @@
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 n(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,n]=t.split("|");if(n){let t=n.split(": "),a=l[t[0]];s.push({commitId:e,author:o,email:r,date:new Date(i).toLocaleString().replace(/\//g,"-"),message:a?t.slice(1).join(":"):n,type:a})}}return s}export default function a(){let l=o[3],a=["# Change log"];try{let e=t('git config --get remote.origin.url | sed "s/\\.git$//"').toString().trim().replace(/^git@([^:]+):(.+)$/,"https://$1/$2"),o=function(e){let o=t('git for-each-ref --sort="v:refname" --format "%(objectname) %(refname:short) %(creatordate:iso8601)" refs/tags',{encoding:"utf-8"}),r=[],s=o.trim().split("\n");return s.forEach((t,o)=>{let[i,l,n]=t.split(" "),a=s[o-1]?.split(" ")[1],m=`## ${l}`;a&&(m=`## [${l}](${e}/compare/${a}...${l}) (${new Date(n).toLocaleDateString().replace(/\//g,"-")})`),r.push({commitId:i,tag:l,date:n,title:m,logs:{}})}),r}(e);o.forEach((t,r)=>{if(r&&n(o[r-1].tag,t.tag).forEach(t=>{if(t.type){let s=o[r].logs[t.type]||[];s.push(`- ${t.message} ([${t.commitId.substring(0,7)}](${e}/commit/${t.commitId}))`),Object.assign(o[r].logs,{[t.type]:s})}}),r===o.length-1){let s=n(t.tag);s.length&&o.push({title:"## Last",logs:{}}),s.forEach(t=>{if(t.type){let s=o[r+1].logs[t.type]||[];s.push(`- ${t.message} ([${t.commitId.substring(0,7)}](${e}/commit/${t.commitId}))`),Object.assign(o[r+1].logs,{[t.type]:s})}})}}),o.reverse().forEach(t=>{for(let e in a.push(`
2
+ ${t.title}`),t.logs)Object.prototype.hasOwnProperty.call(t.logs,e)&&(a.push(`
3
+ ### ${e}
4
+ `),t.logs[e].forEach(t=>a.push(t)))})}catch(t){a.push("\n当前分支尚无任何提交\n"),s(t)}r(e(i,l),a.join("\n"))}
@@ -0,0 +1,2 @@
1
+ import{relative as e}from"node:path";import{argv as o,exit as t,stdout as i}from"node:process";import{ESLint as r}from"@moneko/eslint";import{ink as a,print as l}from"@moneko/utils";import{cachePath as n,cwd as s,parseBraced as c}from"./utils/config.mjs";export default async function m(){let m=a("eslint","cyan");l(`${m}: ${a("Runing...","yellow")}`,!0);let f=o[3],u=o.slice(4),p=u.includes("--fix"),d=new r({cache:!u.includes("--cache=false"),cacheLocation:`${n}/.eslintcache`,fix:p}),w=c(f).map(o=>e(s,o)),h=await d.lintFiles(w),$=await d.loadFormatter("stylish"),y=await $.format(h);p&&await r.outputFixes(h),y&&i.write(y);let x=h.some(e=>e.errorCount>0);l(`${m}: ${a(`✨ ${x?"Error":"Successfully"}!
2
+ `,x?"red":"green")}`,!0),x&&t(1)}
@@ -0,0 +1,2 @@
1
+ import{spawn as o}from"node:child_process";import{argv as e,exit as l}from"node:process";import{ink as n,print as i}from"@moneko/utils";import t from"husky";export default function s(){let s=n("Git init","cyan"),r=o=>n(`✨ ${o?"Error":"Successfully"}!
2
+ `,o?"red":"green");i(`${s}: ${n("Runing...","yellow")}`,!0),o("git init && git config core.ignorecase false",{stdio:[null],shell:!0}).on("close",function(c){i(`${s}: ${r(0!==c)}`,!0);let u=n("Git hooks","cyan");i(`${u}: ${n("Runing...","yellow")}`,!0);let $="node_modules/.husky";t($);let f=e.slice(3).map(o=>{let e=o.split("=");return`echo ${e[1]} > ${$}/${e[0]}`}).join(" && ");o(`${f}`,{stdio:[null],shell:!0}).on("close",function(o){i(`${u}: ${r(0!==o)}`,!0),l(o)})})}
@@ -0,0 +1,13 @@
1
+ import{ink as e,println as t}from"@moneko/utils";let n=[{name:"start",description:"启动开发服务器",args:"<type> <framework>",arguments:[{name:"type",description:"backstage | library | site | micro | mobile"},{name:"framework",description:"react | solid | vue"}]},{name:"build",description:"构建生产环境应用",args:"<type> <framework>",arguments:[{name:"type",description:"backstage | library | site | micro | mobile"},{name:"framework",description:"react | solid | vue"}]},{name:"eslint",description:"执行代码规范检查",args:"<source_path>",arguments:[{name:"source_path",description:"要检查的文件或目录路径"}]},{name:"stylelint",description:"执行样式规范检查",args:"<source_path>",arguments:[{name:"source_path",description:"要检查的文件或目录路径"}]},{name:"changelog",description:"生成项目变更日志",args:"<filename>",arguments:[{name:"filename",description:"输出的文件名"}]},{name:"server",description:"启动静态资源服务器",args:"[port] [root_dir] [https] [host]",arguments:[{name:"port",description:"number"},{name:"root_dir",description:"string"},{name:"https",description:"boolean"},{name:"host",description:"string"}]},{name:"setup",description:"设置一些默认行为; 比如开启 corepack、支持npm执行pre、post脚本等"},{name:"pin",description:"检查过时依赖",args:"[-u]",arguments:[{name:"-u",description:"写入更新到 package.json 中"}]},{name:"githooks",description:"配置 Git 钩子以自动化工作流"},{name:"buildApp",description:"将资产打包成App"}],r=[["mo","start","library react","# 启动开发服务器"],["mo","build","library react","# 构建生产版本"],["mo","eslint","components --fix","# 检查并修复components目录下的代码"],["mo","stylelint","src","# 检查src目录下的样式文件"],["mo","changelog","CHANGELOG.md","# 生成变更日志,输出到 CHANGELOG.md"],["mo","server","port=8080 root_dir=./dist","# 启动静态资源服务器,端口8080,根目录为./dist"],["mo","setup","","# 设置默认行为"],["mo","pin","-u","# 检查过时依赖并更新 package.json"],["mo","githooks",'pre-commit="npm run lint:commit" commit-msg="commit-lint"',"# 配置 Git 钩子,如 pre-commit 和 commit-msg"],["mo","buildApp","","# 打包应用"]];export default function(){let i=n.reduce((e,t)=>Math.max(e,t.name.length),0)+4,o=n.reduce((e,t)=>Math.max(e,t.args?.length||0),0)+4,a=n.map(t=>[" ",e(t.name.padEnd(i),"green"),e(`${t.args||""}`.padEnd(o),"208"),t.description,...(t.arguments||[]).map(t=>`
2
+ ${" ".repeat(2+i+o)}${e(`${t.name}: `,"245",{bold:!0})}${e(t.description,"245",{italic:!0})}`),"\n"].join("")).join("\n"),m=r.reduce((e,t)=>Math.max(e,t[0].length+t[1].length+t[2].length),0),s=r.map(t=>` ${e(t[0],"blue")} ${e(t[1],"green")} ${e(t[2],"208")}${" ".padEnd(m-t[0].length-t[1].length-t[2].length+4)} ${e(t[3]||"","245")}`).join("\n");t(`
3
+ 使用方法: ${e("mo","blue")} ${e("<命令>","green")} ${e("<必选参数>","208")} ${e("[可选参数]","yellow")}
4
+
5
+ 命令列表:
6
+ ${a}
7
+ ${e("选项:","white")}
8
+ ${e("-v, --version","yellow")} 显示版本信息
9
+ ${e("-h, --help","yellow")} 显示帮助信息
10
+
11
+ 示例:
12
+ ${s}
13
+ `)}
@@ -0,0 +1 @@
1
+ import{exec as e}from"node:child_process";import{join as o}from"node:path";import{loadFile as s,saveFile as t,scanFolderSync as r}from"@moneko/utils";import i from"../commom/require.mjs";import{runtimePath as l}from"./utils/config.mjs";let m="";function n(s){let t=o(i.resolve("less"),"../bin/lessc");return new Promise((o,r)=>{e(`${l} ${t} --js ${m} ${s} > ${s.replace(/\.less$/g,".css")}`,function(e){if(e)return r(e);o(!0)})})}let a=/\*?\.less/g;async function c(e){let o=await s(e);o&&a.test(o)&&await t(e,o.replace(a,".css"))}export async function lesscCommonjs(){let e=r("lib",["\\.less$"]),o=(await import("../options/modify-vars.mjs")).default;for(let e in o)Object.hasOwnProperty.call(o,e)&&(m+=`--modify-var="${e}=${o[e]}" `);Promise.all(e.map(n)),e.length&&Promise.all(r("lib",["\\.js$"]).map(c))}
@@ -0,0 +1 @@
1
+ import e from"node:fs";import{ink as r,println as o}from"@moneko/utils";import m from"../commom/parse-args.mjs";import s from"../commom/print-log.mjs";import{CONFIG as t}from"../config.mjs";import p from"../dev/server.mjs";export default(async()=>{let{argv:i}=process,{port:a=t.devServer.port??8080,root_dir:n="./dist",https:l=t.devServer.https,host:v=t.devServer.host??"localhost"}=m(i.slice(2));p({port:a,root_dir:n,https:l,host:v,fileSystem:e,headers:t.devServer.headers,open:t.devServer.open,basename:t.basename}),o(r("You application is running here:","245"),!0),o("",!0),s("Preview",`${l?"https":"http"}://${v}:${a}`,{timestamp:!1,labelBackgroundColor:"blue"}),o("",!0)});
@@ -0,0 +1 @@
1
+ import{argv as e,exit as o}from"node:process";import{ink as r,println as t}from"@moneko/utils";import m from"../commom/setup-env.mjs";async function i(){let i=e[3],s=e[4],p=e.slice(5);i||(t(r(`type: 无效值 ${r(i,"245")}`,"red")),o(1));let n=p.indexOf("no-verify");-1!==n&&p.splice(n,1),await m("development",i,s,p);try{await import("../dev.mjs")}catch(e){t(r(Error(e).message,"red")),o(1)}}export default i;
@@ -0,0 +1,2 @@
1
+ import{relative as e}from"node:path";import{argv as s,exit as t,stdout as r}from"node:process";import{stylelint as o}from"@moneko/stylelint";import{ink as i,print as l}from"@moneko/utils";import{cachePath as c,cwd as n,parseBraced as a}from"./utils/config.mjs";async function m(){let m=i("stylelint","cyan");l(`${m}: ${i("Runing...","yellow")}`,!0);let f=s[3],p=s.slice(4),u=p.includes("--fix"),d=await o.lint({files:a(f).map(s=>e(n,`${s}/**/*.{css,scss,sass,less,ts,tsx,js,jsx}`).replace(/\\/g,"/")),fix:u,cache:!p.includes("--cache=false"),cacheLocation:`${c}/.stylelintcache`,formatter:"string"}),y=d.errored;d.report&&r.write(d.report),l(`${m}: ${i(`✨ ${y?"Error":"Successfully"}!
2
+ `,y?"red":"green")}`,!0),y&&t(1)}export default m;
@@ -0,0 +1 @@
1
+ import{join as e}from"node:path";import{stdout as t}from"node:process";import o from"typescript";import{cwd as i}from"./utils/config.mjs";async function n(n){return new Promise(s=>{let r=o.parseJsonConfigFileContent({extends:e(i,"tsconfig.json"),compilerOptions:{outDir:n,typeRoots:["node_modules/@types/","node_modules/.pnpm/node_modules/@types/"],declaration:!0,emitDeclarationOnly:!0,skipLibCheck:!0,skipDefaultLibCheck:!0,noEmitOnError:!1},include:[e(i,"components"),e(i,"typings")],exclude:[e(i,"components/**/examples/*"),e(i,"components/**/__tests__/*"),e(i,"components/**/__mocks__/*")]},o.sys,i);r.options.incremental&&(r.options.tsBuildInfoFile=r.options.tsBuildInfoFile??e(n,".tsbuildinfo"));let l=o.createProgram(r.fileNames,r.options),m=l.emit();o.getPreEmitDiagnostics(l).concat(m.diagnostics).forEach(e=>{if(t.write("\n"),e.file){let{line:i,character:n}=e.file.getLineAndCharacterOfPosition(e.start),s=o.flattenDiagnosticMessageText(e.messageText,"\n");t.write(`${e.file.fileName} (${i+1},${n+1}): ${s}`)}else t.write(o.flattenDiagnosticMessageText(e.messageText,"\n"))}),s(!0)})}export default n;
@@ -0,0 +1 @@
1
+ import{execSync as e}from"node:child_process";import{renameSync as o}from"node:fs";import{join as n}from"node:path";import{bundleIpa as p,createDir as t,ink as a,print as r}from"@moneko/utils";import l from"../../commom/timer.mjs";export function bundleApk(p,i,u="-release"){r(a("正在编译 apk...","yellow"),!0),l.start(`bundle apk ${u}`),e(`flutter build apk -${u}`),l.end(`bundle apk ${u}`),t(i),o(n(p,`build/app/outputs/flutter-apk/app${u}.apk`),i),r(`✨ ${a("Apk 编译","cyan")}: ${a("完成","cyan")}`,!0)}export function bundleIOS(i,u,d="-release"){r(a("正在编译 ipa...","yellow"),!0),l.start(`bundle ipa ${d}`);let m=n(u,"Runner/Payload");e(`flutter build ios -${d} --no-codesign`),t(m),o(n(i,"build/ios/iphoneos/Runner.app"),m),p(n(u,"Runner"),u,d),l.end(`bundle ipa ${d}`),r(`✨ ${a("ipa 编译","cyan")}: ${a("完成","cyan")}`,!0)}
@@ -0,0 +1 @@
1
+ import{dirname as e,join as o}from"node:path";import{cwd as t,execPath as n,platform as c}from"node:process";let r="undefined"!=typeof Deno?"deno":"undefined"!=typeof Bun?"bun":"node",s=e(n);"win32"===c&&s.includes(" ")&&(s=`"${s}"`);export const runtimePath=o(s,r);export const corePkg="@moneko/core";export const cwd=t();export const cachePath=o(cwd,"node_modules/.cache");export const swcCachePath=o(cachePath,".swc");export function parseBraced(e){return e.startsWith("[")&&e.endsWith("]")?e.slice(1,-1).split(","):[e]}
@@ -0,0 +1 @@
1
+ import{spawn as t}from"node:child_process";export default function(){return new Promise(function(n,o){let r=t("git",["diff","--name-only","HEAD^","HEAD"]),i="",e="";r.stdout.on("data",function(t){i+=t.toString()}),r.stderr.on("data",function(t){e+=t.toString()}),r.on("close",function(t){0===t?n(i.trim().split("\n")):o({code:t,error:e})})})}
package/lib/build.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{relative as o}from"node:path";import r from"node:process";import{analyzeBundleSize as m,completedInfo as t,ink as i,println as e,progressBar as n}from"@moneko/utils";import s from"webpack";import{merge as a}from"webpack-merge";import p from"./build/common.mjs";import l from"./commom/paths.mjs";import{DonePlugin as u}from"./plugin/done.mjs";import{empty as g}from"./utils/index.mjs";import c from"./utils/seo.mjs";import{CONFIG as f}from"./config.mjs";import d from"./module.config.mjs";let h=a(p,{module:d(!1),plugins:[]});if(f.done&&h.plugins.push(new u({done:f.done})),f.bar){let o=f.bar,m=o.name||"Build";h.plugins.push(new s.ProgressPlugin({handler(t,i,...e){let s=e.length?`[${i}] ${e.join(" ")}`:" ";o.quiet?r.stdout.write(`${s}
2
- `):(n(t||0,1,{msg:s,name:m,barColor:o.barColor,nameColor:o.nameColor,barBgColor:o.barBgColor,msgColor:o.msgColor}),1===t&&r.stdout.write("\r\x1b[2K"))}}))}let w=s(h);async function b(){let r=await new Promise((o,r)=>{w.run((m,t)=>{m&&r(m),t?o(t):r(Error("编译过程中没有生成统计信息"))})});(r.hasErrors()||r.hasWarnings())&&function(o){let{warnings:r,errors:m}=o.compilation;r.forEach(o=>{e(i(o.message,"178"))}),m.forEach(o=>{e(i(o.message,"red"))})}(r),await new Promise(n=>{r.compilation.compiler.cache.shutdown(s=>{s&&e(i(s.toString(),"red")),m(r.compilation.outputOptions.path,["\\.js$"]),t(~~((r.endTime-r.startTime)/10)/100,o(l.programPath,r.compilation.outputOptions.path)),n()})}),f.seo&&c()}r.on("exit",g),await b();
1
+ import{relative as o}from"node:path";import r from"node:process";import{analyzeBundleSize as m,completedInfo as t,ink as i,println as e,progressBar as n}from"@moneko/utils";import s from"webpack";import{merge as a}from"webpack-merge";import p from"./build/common.mjs";import l from"./commom/paths.mjs";import{DonePlugin as u}from"./plugin/done.mjs";import{empty as f}from"./utils/index.mjs";import g from"./utils/seo.mjs";import{CONFIG as c}from"./config.mjs";import d from"./module.config.mjs";let h=a(p,{module:d(!1),plugins:[]});if(c.done&&h.plugins.push(new u({done:c.done})),c.bar){let o=c.bar,m=o.name||"Build";h.plugins.push(new s.ProgressPlugin({handler(t,i,...e){let s=e.length?`[${i}] ${e.join(" ")}`:" ";o.quiet?r.stdout.write(`${s}
2
+ `):(n(t||0,1,{msg:s,name:m,barColor:o.barColor,nameColor:o.nameColor,barBgColor:o.barBgColor,msgColor:o.msgColor}),1===t&&r.stdout.write("\r\x1b[2K"))}}))}let w=s(h);if(!w)throw Error("无法创建编译器");async function b(){let r=await new Promise((o,r)=>{w?.run((m,t)=>{m&&r(m),t?o(t):r(Error("编译过程中没有生成统计信息"))})});(r.hasErrors()||r.hasWarnings())&&function(o){let{warnings:r,errors:m}=o.compilation;r.forEach(o=>{e(i(o.message,"178"))}),m.forEach(o=>{e(i(o.message,"red"))})}(r),await new Promise(n=>{r.compilation.compiler.cache.shutdown(s=>{s&&e(i(s.toString(),"red")),m(r.compilation.outputOptions.path,["\\.js$"]),t(~~((r.endTime-r.startTime)/10)/100,o(l.programPath,r.compilation.outputOptions.path)),n()})}),c.seo&&g()}r.on("exit",f),await b();
@@ -0,0 +1 @@
1
+ import{spawn as t}from"node:child_process";export default function(){t("npm",["-v"],{stdio:"pipe",shell:!0}).stdout.on("data",e=>{e.toString().split(".")[0]<9&&t("npm",["config","get","enable-pre-post-scripts"],{stdio:"pipe",shell:!0}).stdout.on("data",e=>{"true"!==e.toString().trim()&&t("npm",["config","set","enable-pre-post-scripts","true","-L","project"],{stdio:"ignore",shell:!0})})})}
@@ -0,0 +1 @@
1
+ import{spawn as e}from"node:child_process";import{dirname as r,join as n}from"node:path";import{execPath as o,platform as a,versions as p}from"node:process";import{ink as c,loadFile as t,loadFileSync as i,println as m,saveFile as s}from"@moneko/utils";import l from"./log.mjs";let g=`${process.cwd()}/package.json`,d=JSON.parse(i(g)),f=c("corepack","magenta"),k={stdio:"ignore",shell:!0};export function corepack(i){new Promise(p=>{if(d.packageManager){let c=e("corepack",["-v"],k);c.on("error",e=>{l(e),p(!1)}),c.on("exit",e=>{0!==e&&p(!1);let c=d.packageManager.split("@")[0],i="win32"===a?`${c}.cmd`:c;t(n(r(o),i)).then(e=>{p(e.includes("corepack"))}).catch(e=>{l(e),p(!1)})})}else p(!1)}).then(r=>{if(i){if(d.packageManager||(d.packageManager=function(){let e=Number(p.node.split(".")[0]);return e<16?"pnpm@7.33.7":e<18?"pnpm@8.15.9":"pnpm@10.14.0"}(),s(g,JSON.stringify(d,null,2))),r)return;e("corepack",["enable"],k);return}r?m(`${f} is ${c("enabled","green")} ${c(`(${d.name})`,"245")}`):m(`${f} is ${c("disabled","yellow")} ${c(`(${d.name})`,"245")}`)}).catch(e=>{l(e)})}
@@ -0,0 +1 @@
1
+ export function diffObject(e,t){let f={};if(!e||!t)return t||{};for(let n of new Set([...Object.keys(e),...Object.keys(t)])){if(!(n in t)){f[n]=void 0;continue}if(e[n]!==t[n])if("object"==typeof e[n]&&"object"==typeof t[n]&&null!==e[n]&&null!==t[n]){let i=diffObject(e[n],t[n]);Object.keys(i).length>0&&(f[n]=i)}else f[n]=t[n]}return f}
@@ -0,0 +1,19 @@
1
+ import{addHost as s,checkHost as t,getHostsPath as e,ink as o,println as l}from"@moneko/utils";export function hostHelp(r){let c="127.0.0.1";t(c,r)||s(c,r),t(c,r)||l(`
2
+ ${o("🚦 域名解析配置提醒","yellow",{bold:!0})}
3
+
4
+ 检测到您正在使用本地域名:${o(r,"yellow")},但系统未找到对应的本地解析记录
5
+
6
+ 📝 请按以下步骤操作:
7
+
8
+ 1. 使用文本编辑器【以管理员身份】打开 hosts 文件:
9
+
10
+ ${o("hosts 文件地址:","242")} ${o(e(),"208")}
11
+
12
+ 2. 在文件末尾添加解析规则:
13
+
14
+ ${o(c,"39")} ${o(r,"39")}
15
+
16
+ 3. 保存文件后,建议刷新DNS缓存:
17
+
18
+ ${o(function(){switch(process.platform){case"darwin":return"sudo dscacheutil -flushcache";case"win32":return"ipconfig /flushdns";default:return"sudo systemctl restart systemd-resolved"}}(),"208")}
19
+ `)}
@@ -0,0 +1 @@
1
+ import r from"./require.mjs";export default function t(e,o){try{return o&&"function"==typeof import.meta.resolve?import.meta.resolve(e):r.resolve(e)}catch{try{return t(e,!0)}catch{return e}}}
@@ -0,0 +1 @@
1
+ import{createConnection as e}from"node:net";import{networkInterfaces as t}from"node:os";export function getIPv4(){let e=t(),o=null,r=Object.keys(e);for(let t=0,n=r.length;t<n;t++){let n=e[r[t]]||[];for(let e=0,t=n.length;e<t;e++){let t=n[e];"IPv4"!==t.family||t.internal||(o=t.address)}}return o}export function getPort(t,o="0.0.0.0"){return new Promise((r,n)=>{if("number"!=typeof t)r(t);else{let l=e(t,o);l.on("connect",()=>{l.destroy(),r(getPort(t+1,o))}),l.on("error",e=>{l.destroy(e),"ECONNREFUSED"===e.code?r(t):n(e)})}})}
@@ -0,0 +1 @@
1
+ import{spawn as e}from"node:child_process";import{platform as o}from"node:process";import{empty as r}from"../utils/index.mjs";export default function(t){let n,d;"win32"===o?(n="cmd.exe",d=["/c","start",'""',"/b",t.replace(/&/g,"^&")]):(n="darwin"===o?"open":"xdg-open",d=[t]);let i=e(n,d,{detached:!0,stdio:"ignore"});i.on("error",r),i.unref()}
@@ -0,0 +1 @@
1
+ import{tmpdir as o}from"node:os";import{resolve as e}from"node:path";import{argv as t,cwd as n,env as a}from"node:process";import r from"node:url";import{fileExists as c}from"@moneko/utils";import i from"./parse-args.mjs";let s=JSON.parse(a.npm_config_argv||'{"original":[]}').original;export const __dirname=r.fileURLToPath(new URL("..",import.meta.url));export const yarnArgv={};for(let o=0,e=s.length;o<e;o++){let e=s[o].split("=");Object.assign(yarnArgv,{[e[0]]:e[1]||!0})}export const CUSTOMCONFIG=a.npm_config_config||yarnArgv.config||a.__args__config__||i(t.slice(2)).config;let m=n(),p=e(m,"node_modules");export const TMP_DIR=e(o(),"@moneko");let g={nodeModules:p,pnpmNodeModules:e(p,".pnpm/node_modules"),denoNodeModules:e(p,".deno"),corePath:__dirname,programPath:m,CA_DIR:e(TMP_DIR,".ca"),webpackCachePath:e(p,".cache"),lintCachePath:e(p,".cache"),httpCachePath:e(p,".cache/http"),swcCachePath:e(p,".cache/.swc"),configPath:e(m,"config/index.ts"),customConfigPath:e(m,`config/${CUSTOMCONFIG}.ts`),coveragePath:e(m,"coverage/clover.xml"),pagesPath:e(m,"src/pages"),componentsPath:e(m,"components"),mockPath:e(m,"mock")};export const config_files=[c(g.configPath)&&g.configPath,c(g.customConfigPath)&&g.customConfigPath].filter(Boolean);export const routeDir="library"===a.APPTYPE?g.componentsPath:g.pagesPath;export default g;
@@ -0,0 +1 @@
1
+ import t from"node:events";class e extends t{constructor(t={}){super(),this.data=t,this.setMaxListeners(0)}setData(t,e){this.data[t]!==e&&(this.data[t]=e,this.emit("change",t,e))}getData(t){return this.data[t]}removeData(t){Object.prototype.hasOwnProperty.call(this.data,t)&&(delete this.data[t],this.emit("change",t,null))}[Symbol.iterator](){let t=Object.keys(this.data),e=0;return{next:()=>{if(e<t.length){let a=t[e++];return{value:[a,this.data[a]],done:!1}}return{value:void 0,done:!0}}}}}export default e;
@@ -0,0 +1 @@
1
+ export default{js:/\.(cj|mj|t|j)s(|x)$/i,css:/\.css$/i,less:/\.less$/i,scss:/\.(sa|sc)ss$/i,wasm:/\.wasm$/i,txt:/\.txt$/i,image:/\.(gif|png|jpe?g|webp|svg|ico)$/i,video:/\.(webm|mp4|ogv)$/i,font:/\.(woff2?|eot|ttf|otf)(\?.*)?$/i,markdown:/\.mdx?$/i,tsdoc:/^(?![._]).*(?<!\.test)\.(tsx?)$/,css_module:/(.*(?<!\.?global\.(le|c|sc|sa)ss)$)/i,node_modules_css_module:/(^(?!.*node_modules))(.*(?<!\.?global\.(le|c|sc|sa)ss)$)/i,node_modules:/node_modules/,__tests__:/(.+)\/__tests__\/(.+)/,dev_watch_ignored:/node_modules(?![\\/]@app)/,extract_func:/"rr\((.+?)\)rr"/g};
@@ -0,0 +1 @@
1
+ import{env as e}from"node:process";import{loadFile as t}from"@moneko/utils";async function r(r,i,n,o){let s=[".env",".env/.env",`.env/.${"production"===r?"prod":"dev"}.env`],a={NODE_ENV:r,APPTYPE:i,FRAMEWORK:n};return o.forEach(e=>{let[t,r]=e.replace(/^--/,"").split("=");Object.assign(a,{[`__args__${t}__`]:r||!0})}),(await Promise.all(s.map(t))).forEach(e=>{e&&Object.assign(a,e.split("\n").reduce((e,t)=>{if(!t||t.trim().startsWith("#"))return e;let[r,...i]=t.split("=");if(!r)return e;let n=i.join("=").trim();return e[r.trim()]=n.replace(/^["']|["']$/g,""),e},{}))}),Object.keys(a).forEach(t=>{let r=a[t];e[t]!==r&&(e[t]=a[t])}),a}export default r;
@@ -0,0 +1 @@
1
+ import o from"node:process";export default function(n){o.on("SIGINT",n),o.on("SIGTERM",n),o.on("SIGQUIT",n)}
@@ -0,0 +1 @@
1
+ export*from"@moneko/convert/solid";
@@ -0,0 +1,2 @@
1
+ import{ink as e,println as r,termClear as o}from"@moneko/utils";import{hostHelp as t}from"../commom/host.mjs";import{getIPv4 as m,getPort as s}from"../commom/net.mjs";import n from"../commom/print-log.mjs";import{CONFIG as i}from"../config.mjs";let a=i.devServer.port||3e3;export const PORT=await s(a);i.devServer.port=PORT;let l="/"===i.basename?"":i.basename,p=a!==PORT&&e(`Port ${e(`${a}`,"yellow")} is in use, trying ${e(`${PORT}`,"green")} instead.
2
+ `,"245");export function getServerAddress(e){return`${i.devServer.https?"https":"http"}://${"local"===e?i.devServer.host:m()}:${PORT}${l}`}let c=e("You application is running here:","245");export function devLog(m,s){o(3);let a=(s?.endTime??0)-(s?.startTime??0);r(c,!0),r("",!0),n("Local",getServerAddress("local"),{timestamp:!1,labelBackgroundColor:"blue",labelLen:9}),n("Network",getServerAddress("net"),{timestamp:!1,labelBackgroundColor:"29"}),r("",!0),r(e(`Compiled successfully in ${e(`${a}ms`,"green")}`,"245"),!0),r("",!0),p&&r(p),t(i.devServer.host),s&&(s.compilation.warnings.forEach(e=>{r(e.message)}),s.compilation.errors.forEach(e=>{r(e.message)})),m&&r(m.message)}
@@ -0,0 +1 @@
1
+ import{ink as e,loadFile as r,println as t}from"@moneko/utils";import{setupCert as o}from"../commom/ca.mjs";async function i(i,m){if("key"in m){let o=await Promise.all([r(m.key),r(m.cert)]);return o[0]||(t(e(`法加载私钥。请检查路径和文件是否存在,并确保路径正确:${m.key}`,"red")),process.exit(1)),o[1]||(t(e(`无法加载证书。请检查路径和文件是否存在,并确保路径正确:${m.cert}`,"red")),process.exit(1)),{key:o[0],cert:o[1]}}return o(i,m.install)}export default i;
@@ -0,0 +1 @@
1
+ import e from"node:http";import{StringDecoder as t}from"node:string_decoder";import{URL as r}from"node:url";import{directoryExists as o,ink as n,print as a}from"@moneko/utils";import{watch as c}from"chokidar";import{merge as i}from"webpack-merge";import s from"../commom/log.mjs";import d from"../commom/match-path.mjs";import l,{METHOD_COLOR as m}from"../commom/print-log.mjs";import p from"../commom/require.mjs";import{jsonSchema as u}from"./json-schema.mjs";function f(e){return!["GET","HEAD","OPTIONS"].includes(e.method?.toUpperCase()||"")}export function cacheBody(e){if(!e._bodyCached&&f(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){s(e)}}}function h(e,r){try{let o=Buffer.concat(e);if(r.includes("application/json")){let e=new t("utf-8").write(o);return JSON.parse(e)}if(r.includes("application/octet-stream")||r.startsWith("image/"));else if(r.includes("text/"))return o.toString("utf-8");else if(r.includes("application/x-www-form-urlencoded"))return Object.fromEntries(new URLSearchParams(o.toString("utf8")));return o}catch(e){return s(e),null}}async function g(e){return new Promise(t=>{if(!f(e))return void t(null);let r=e.headers["content-type"]||"",o=e.headers["content-length"],n=e.headers["transfer-encoding"],a=[];return void 0!==e._dataChunks?void t(h(e._dataChunks,r)):o||n?void(e.on("data",e=>{a.push(e)}),e.on("end",()=>{t(h(a,r))}),e.on("error",e=>{t(null),s(e)})):void t(null)})}function y(e,t,r){if(delete p.cache[t],r[t]){for(let o in r[t])Object.prototype.hasOwnProperty.call(r[t],o)&&(e[o]=null,delete e[o]);r[t]=null,delete r[t]}}export const yApiSchemaMock=(t,r)=>new Promise(o=>{e.get(`${t.host}/api/interface/get?id=${t.id}&token=${t.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=u(t);void 0!==r?o(i(n,r)):o(n)}}catch(e){s(e)}})})});export const yApiMock=(t,o)=>new Promise((n,a)=>{let c=new r(o.host),i={hostname:c.hostname,port:c.port,path:t.url?.replace(new RegExp(o.pathRewrite),`/mock/${o.projectId}/`),method:t.method,headers:t.headers,query:Object.fromEntries(c.searchParams)},d=e.request(i,e=>{e.setEncoding("utf8");let t="";e.on("data",e=>{t+=e}),e.on("end",()=>{try{n(JSON.parse(t))}catch(e){s(e)}})});d.on("error",e=>{a(e.message)}),d.write(JSON.stringify(t.body)),d.end()});export const oldMock={};export let nextMock={};export function containMockUrl(e){return Object.keys(nextMock).find(t=>RegExp(`^${t.replace(/(:\w*)[^/]/g,"((?!/).)")}*$`).test(e))}export default(e=>{if(!o(e.directory))return;let t=!0;return c(e.directory).on("all",async function(e,r){if("string"==typeof r){switch(a(n("Updating mock...","245"),!0),e){case"add":case"change":try{y(nextMock,r,oldMock);let e=p(r).default;oldMock[r]=e,nextMock=Object.assign(nextMock,e)}catch(e){s(e)}break;case"unlink":y(nextMock,r,oldMock)}t?t=!1:a(n("Mock update successful","245"),!0)}}),(e,t)=>{if(t.writableEnded)return t;let o=new r(`http://localhost:3000${e.url}`),n=e.method||"GET",a=`${n} ${o.pathname}`,c=containMockUrl(a)||a,i=nextMock[c];if(i){if(l(n,o.pathname,{note:"MOCK",labelAlign:"center",labelLen:8,labelForegroundColor:m[n].fg,labelBackgroundColor:m[n].bg}),t.send=e=>t.end("string"==typeof e?e:JSON.stringify(e)),t.writeHead(200,{"Content-Type":e.headers["content-type"]}),"function"==typeof i){let r=d(c.split(" ")[1],o.pathname);o.searchParams&&Object.assign(e,{query:Object.fromEntries(o.searchParams)}),r&&Object.assign(e,{params:r.params}),e.body=g(e);try{i(e,t)}catch(e){s(e)}return!0}return t.end("string"==typeof i?i:JSON.stringify(i)),!0}return!1}});
@@ -0,0 +1 @@
1
+ import{createServer as e}from"node:http";import{createServer as t}from"node:https";import{extname as o,join as r}from"node:path";import n from"../commom/mime.mjs";import i from"../commom/open.mjs";import a from"../commom/paths.mjs";import{CONFIG as s}from"../config.mjs";import m from"../dev/get-cert.mjs";import{setupProxy as c}from"../dev/proxy.mjs";import l,{cacheBody as d}from"./mock.mjs";let p={"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 C(C){let h=r(C.root_dir,"index.html"),f=l({directory:a.mockPath});function u(e,t,r){let i=e.headers["accept-encoding"],a=i?.includes("br"),s=`${r}.${a?"br":"gz"}`,m=C.fileSystem.existsSync(s);m&&t.setHeader("Content-Encoding",a?"br":"gzip");let c=C.fileSystem.createReadStream(m?s:r,{autoClose:!0});c.on("open",()=>{t.writeHead(200,Object.assign({},p,C.headers,{"Access-Control-Allow-Origin":e.headers.origin??"*","Content-Type":n[o(r)]||"application/octet-stream"}))}),c.on("error",e=>{switch(c.destroy(),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}`)}}),c.pipe(t)}async function A(e,t){if(d(e),!(C.onRequest&&C.onRequest(e,t))){if(!(s.proxy&&await c(e,t,s.proxy)||t.writableEnded||f&&f(e,t))&&!t.writableEnded){if("GET"===e.method){let o="/"===e.url?h:decodeURIComponent(r(C.root_dir,e.url.replace(C.basename??"/","/")));if(C.fileSystem.existsSync(o))return u(e,t,o)}if(e.headers.accept?.includes("text/html"))return u(e,t,h);t.writeHead(404,{"Content-Type":"text/plain"}),t.end("File Not Found")}}}let E=C.https?t(await m(C.host,!0===C.https?{install:!0}:C.https),A):e(A);return E.listen(C.port),C.open&&i(`${C.https?"https:":"http:"}//${C.host}:${C.port}${"/"===C.basename?"":C.basename}`),E}export default C;
@@ -0,0 +1 @@
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return s}});const t=require("@swc/core"),r=require("stylis"),n=(e=require("../commom/log.mjs"))&&e.__esModule?e:{default:e};function l(e){return{type:"iTemplateElement",span:{start:0,end:0,ctxt:0},tail:!1,cooked:e,raw:e}}function a(e,t){if("Identifier"===e.tag.type&&t.includes(e.tag.value)){let t=e.template,n=function(e){let t=e.quasis.map(e=>e.cooked);return t.reduce((e,r,n)=>(e.push(r),n!==t.length-1&&e.push(`xxx${n}:xxx`),e),[]).join("").trim()}(t),a=function e(t){return t.map(t=>{switch(t.type){case"import":case"decl":return t.value;case"comm":return"/"===t.props&&t.value.includes("@")?t.value:"";case"rule":return`${t.value.replace(/&\f/g,"&")}{${e(t.children)}}`;default:return`${t.value}{${e(t.children)}}`}}).join("")}(function e(t,r){for(let n=0;n<t.length;n++){let l=t[n],a=l.parent,s=l.children;a?!function(e){var t;return"rule"===e.type&&e.parent&&(t=e.parent,e.line===t.line&&e.column===t.column)}(l)&&a.children.push(l):r.push(l),Array.isArray(s)&&(l.children=[],e(s,r))}return r}((0,r.compile)(n),[])),s=function(e,t){let r=function(e){let t,r=/xxx(\d+):xxx/gm,n=[];for(;null!==(t=r.exec(e));)n.push({value:t[0],p1:parseInt(t[1],10),index:t.index});return n}(e);if(0===r.length)return""===e?[]:[l(e)];let n=[],a=[],s=0;return r.forEach(({value:i,p1:p,index:u},o)=>{let c=e.substring(s,u);s=s+c.length+i.length,c||0!==o?n.push(l(c)):n.push(l("")),a.push(t[p]),o===r.length-1&&n.push(l(e.substring(u+i.length)))}),a.reduce((e,t,r)=>e.concat([t],n[r+1]),[n[0]]).filter(e=>""!==e.raw)}(a,t.expressions);if(a.length>1){let e=[],r=[];s.forEach((t,n)=>{"iTemplateElement"===t.type?e.push({...t,type:"TemplateElement",tail:n===s.length-1}):r.push(t)}),t.quasis=e,t.expressions=r}}}async function s(e){let r=this.async(),{moduleName:l,allowFuncs:s}=this.getOptions()||{};this.cacheable&&this.cacheable();try{let n=await (0,t.parse)(e,{syntax:"ecmascript"}),i=[];n.body.forEach(e=>{"ImportDeclaration"===e.type&&e.source.value===l&&e.specifiers.forEach(e=>{"ImportSpecifier"===e.type&&(e.imported&&s.includes(e.imported.value)?i.push(e.local.value):s.includes(e.local.value)&&i.push(e.local.value))})}),n.body.forEach(e=>{if("ExportDeclaration"===e.type||"ExpressionStatement"===e.type){let t="declaration"in e?e.declaration:e.expression;t&&"CallExpression"===t.type&&t.arguments.forEach(e=>{e.expression&&"TaggedTemplateExpression"===e.expression.type&&a(e.expression,i)}),t&&"VariableDeclaration"===t.type&&t.declarations.forEach(e=>{e.init?.type==="TaggedTemplateExpression"&&a(e.init,i)})}else"CallExpression"===e.type&&e.arguments.forEach(e=>{e.expression&&"TaggedTemplateExpression"===e.expression.type&&a(e.expression,i)})});let{code:p}=await (0,t.print)(n);r(null,p)}catch(e){r(e),(0,n.default)(e)}}
@@ -0,0 +1,20 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=exports,r={get getExportCode(){return l},get getImportCode(){return s},get getModuleCode(){return _}};for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:Object.getOwnPropertyDescriptor(r,t).get});const o=require("./utils.cjs");function s(e,r){let t="";for(let o of e){let{importName:e,url:s,icss:_}=o;r.esModule?_&&r.modules?.namedExport?t+=`import ${r.modules.exportOnlyLocals?"":`${e}, `}* as ${e}_NAMED___ from ${s};
2
+ `:t+=`import ${e} from ${s};
3
+ `:t+=`var ${e} = require(${s});
4
+ `}return t?`// Imports
5
+ ${t}`:""}function _(e,r,t,s,_){if(s.modules?.exportOnlyLocals===!0)return"";let l=s.sourceMap?`,${(0,o.normalizeSourceMapForRuntime)(e.map,_)}`:"",a=JSON.stringify(e.css),n=`var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(${s.sourceMap});
6
+ `;for(let e of r){let{url:r,media:t,dedupe:o}=e;n+=r?`___CSS_LOADER_EXPORT___.push([module.id, ${JSON.stringify(`@import url(${r});`)}${t?`, ${JSON.stringify(t)}`:""}]);
7
+ `:`___CSS_LOADER_EXPORT___.i(${e.importName}${t?`, ${JSON.stringify(t)}`:o?', ""':""}${o?", true":""});
8
+ `}for(let e of t){let{replacementName:r,importName:t,localName:_}=e;if(_)a=a.replace(RegExp(r,"g"),()=>s.modules?.namedExport?`" + ${t}_NAMED___[${JSON.stringify((0,o.camelCase)(_))}] + "`:`" + ${t}.locals[${JSON.stringify(_)}] + "`);else{let{hash:o,needQuotes:s}=e,_=[...o?[`hash: ${JSON.stringify(o)}`]:[],...s?"needQuotes: true":[]],l=_.length>0?`, { ${_.join(", ")} }`:"";n+=`var ${r} = ___CSS_LOADER_GET_URL_IMPORT___(${t}${l});
9
+ `,a=a.replace(RegExp(r,"g"),()=>`" + ${r} + "`)}}return`${n}// Module
10
+ ___CSS_LOADER_EXPORT___.push([module.id, ${a}, ""${l}]);
11
+ `}function l(e,r,t){let s="// Exports\n",_="",l=(e,r)=>{t.modules?.namedExport?_+=`export const ${(0,o.camelCase)(e)} = ${JSON.stringify(r)};
12
+ `:(_&&(_+=`,
13
+ `),_+=` ${JSON.stringify(e)}: ${JSON.stringify(r)}`)};for(let{name:r,value:s}of e)switch(t.modules?.exportLocalsConvention){case"camelCase":{l(r,s);let e=(0,o.camelCase)(r);e!==r&&l(e,s);break}case"camelCaseOnly":l((0,o.camelCase)(r),s);break;case"dashes":{l(r,s);let e=(0,o.dashesCamelCase)(r);e!==r&&l(e,s);break}case"dashesOnly":l((0,o.dashesCamelCase)(r),s);break;default:l(r,s)}for(let e of r){let{replacementName:r,localName:s}=e;if(s){let{importName:l}=e;_=_.replace(RegExp(r,"g"),()=>t.modules?.namedExport?`" + ${l}_NAMED___[${JSON.stringify((0,o.camelCase)(s))}] + "`:t.modules?.exportOnlyLocals?`" + ${l}[${JSON.stringify(s)}] + "`:`" + ${l}.locals[${JSON.stringify(s)}] + "`)}else _=_.replace(RegExp(r,"g"),()=>`" + ${r} + "`)}return t.modules?.exportOnlyLocals?s+=t.modules.namedExport?_:`${t.esModule?"export default":"module.exports ="} {
14
+ ${_}
15
+ };
16
+ `:(_&&(s+=t.modules?.namedExport?_:`___CSS_LOADER_EXPORT___.locals = {
17
+ ${_}
18
+ };
19
+ `),s+=`${t.esModule?"export default":"module.exports ="} ___CSS_LOADER_EXPORT___;
20
+ `)}
@@ -0,0 +1 @@
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return _}});const t=require("lightningcss"),r=(e=require("../../commom/log.mjs"))&&e.__esModule?e:{default:e},s=require("../../process-env.mjs"),i=require("./codegen.cjs"),o=require("./utils.cjs");function l(e,t){return JSON.stringify(e.utils.contextify(e.context||e.rootContext,t))}const n=new TextEncoder,u={Declaration:{custom(e){if("content"===e.name&&1===e.value.length){let t=e.value[0];if("token"===t.type&&"string"===t.value.type)return[{property:e.name,raw:JSON.stringify(t.value.value.replace(/[\u4e00-\u9faF]/g,function(e){return`\\${e.charCodeAt(0).toString(16)}`}))}]}}}};async function _(e,_){let a=this.async();this.cacheable&&this.cacheable();let{implementation:p,visitor:c,rem:f,...m}=this.getOptions(),d=!!m.modules?.auto?.(this.resourcePath);if(d&&void 0===m.modules.namedExport&&(m.modules.namedExport=!0),p&&"function"!=typeof p.transform)return void a(TypeError(`[lightning-loader]: implementation.transform must be an 'lightningcss' transform function. Received ${typeof p.transform}`));let h=[],R=[],S=[],g=[],L=[];m.modules?.exportOnlyLocals!==!0&&R.unshift({type:"api_import",importName:"___CSS_LOADER_API_IMPORT___",url:l(this,require.resolve("./runtime/api.cjs"))});let O=p?.transform?p.transform:t.transform,y=new Map,E=new Map,v=new Map,C=function(e,t,r,s,i,l){let n=new Map,u=!1,_=new Map,a=new Map,p=-1,c=-1;return{Rule:{import(s){let i;if(e.importFilter&&!e.importFilter(s.value.url,s.value.media))return s;let u=s.value.url;c++,l.set(c,u),u=`__MO_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${c}__`;let _=s.value.media.mediaQueries.length?JSON.stringify(s.value.media.mediaQueries):void 0,a=(0,o.isUrlRequestable)(u);if(a){let e=u.split("!");e.length>1&&(u=e.pop(),i=e.join("!"))}if(!a)return t.push({url:u,media:_}),{type:"ignored",value:""};let p=i?`${i}!${u}`:u,f=n.get(p);if(!f){f=`___CSS_LOADER_AT_RULE_IMPORT_${n.size}___`,n.set(p,f);let t=e.urlHandler(p);r.push({type:"rule_import",importName:f,url:t})}return t.push({importName:f,media:_}),{type:"ignored",value:""}}},Url:t=>(function(t){let l,n=t.url;if(!e.urlFilter(n)||n.startsWith("#")||(0,o.isDataUrl)(n))return t;p++,i.set(p,n);let[,c,f]=(n=`__MO_LIGHTNINGCSS_LOADER_URL_REPLACE_${p}__`).split(/(\?)?#/,3),m=n.split("!");m.length>1&&(n=m.pop(),l=m.join("!"));let d=c?"?":"";d+=f?`#${f}`:"",u||(r.push({type:"get_url_import",importName:"___CSS_LOADER_GET_URL_IMPORT___",url:JSON.stringify(require.resolve("./runtime/get-url.cjs")),index:-1}),u=!0);let h=l?`${l}!${n}`:n,R=_.get(h);R||(R=`___CSS_LOADER_URL_IMPORT_${_.size}___`,_.set(h,R),r.push({type:"url",importName:R,url:JSON.stringify(h),index:p}));let S=JSON.stringify({newUrl:h,hash:d,needQuotes:!1}),g=a.get(S);return g||(g=`___CSS_LOADER_URL_REPLACEMENT_${a.size}___`,a.set(S,g),s.push({replacementName:g,importName:R,hash:d,needQuotes:!1})),{loc:t.loc,url:g}})(t)}}({urlHandler:e=>l(this,(0,o.getPreRequester)(this)(m.importLoaders??0)+e),urlFilter:(0,o.getFilter)(m.url,this.resourcePath),importFilter:(0,o.getFilter)(m.import,this.resourcePath),context:this.context},g,R,L,y,v),M=function({apis:e,imports:t,replacements:r,replacedUrls:s,urlHandler:i}){let o=-1,l=-1;return{Declaration:{composes(n){if("unparsed"===n.property)return;let u=n.value.from;if(u?.type!=="file")return;let _=u.value;if(!_)return;o++,s.set(o,_),_=`__MO_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${o}__`;let a=`___CSS_LOADER_ICSS_IMPORT_${t.length}___`;t.push({type:"icss_import",importName:a,icss:!0,url:i(_),index:o}),e.push({importName:a,dedupe:!0,index:o});let p=[];for(let e of n.value.names){l++;let t=`___CSS_LOADER_ICSS_IMPORT_${o}_REPLACEMENT_${l}___`;r.push({replacementName:t,importName:a,localName:e}),p.push(t)}return{property:"composes",value:{loc:n.value.loc,names:p,from:u}}}}}}({apis:g,imports:S,replacements:L,replacedUrls:E,urlHandler:e=>l(this,(0,o.getPreRequester)(this)(m.importLoaders)+e)});try{f&&!u.Length&&(u.Length=function(e){if("px"===e.unit)return{unit:"rem",value:e.value/16}});let{code:t,map:r,exports:l}=O({filename:this.resourcePath,code:n.encode(e),minify:!0,visitor:{...u,...C,...M,...c},cssModules:!!d&&{pattern:m.modules.localIdentName},sourceMap:this.sourceMap,inputSourceMap:this.sourceMap&&_?JSON.stringify(_):void 0,analyzeDependencies:!1,drafts:{customMedia:!0},include:1,errorRecovery:!1,unusedSymbols:[],...m}),p=t.toString();if(l){for(let e in l)if(Object.prototype.hasOwnProperty.call(l,e)){let t=l[e],r=t.name;for(let e of t.composes)r+=` ${e.name}`;h.push({name:e,value:r})}m.modules.getJSON?.({resourcePath:this.resourcePath,exports:h})}if(0!==y.size)if(s.IS_WINDOW)for(let[e,t]of y.entries())for(let r of R)r.url=r.url.replace(`__MO_LIGHTNINGCSS_LOADER_URL_REPLACE_${e}__`,t);else{let e=this.getResolve({conditionNames:["asset"],mainFields:["asset"],mainFiles:[],extensions:[]});for(let[t,r]of y.entries()){let[s,,]=r.split(/(\?)?#/,3),i=(0,o.requestify)(s,this.rootContext),l=await (0,o.resolveRequests)(e,this.context,[...new Set([i,r])]);for(let e of R)e.url=e.url.replace(`__MO_LIGHTNINGCSS_LOADER_URL_REPLACE_${t}__`,l??r)}}if(0!==v.size){let e=this.getResolve({conditionNames:["style"],extensions:[".css"],mainFields:["css","style","main","..."],mainFiles:["index","..."],restrictions:[/\.css$/i]});for(let[t,r]of v.entries()){let[s,,]=r.split(/(\?)?#/,3),i=(0,o.requestify)(s,this.rootContext),l=await (0,o.resolveRequests)(e,this.context,[...new Set([i,r])]);for(let e of R)e.url=e.url.replace(`__MO_LIGHTNINGCSS_LOADER_IMPORT_URL_REPLACE_${t}__`,l??r)}}if(0!==E.size){let e=this.getResolve({conditionNames:["style"],extensions:[],mainFields:["css","style","main","..."],mainFiles:["index","..."]});for(let[t,r]of E.entries()){let[s,,]=r.split(/(\?)?#/,3),i=(0,o.requestify)(s,this.rootContext),l=await (0,o.resolveRequests)(e,this.context,[...new Set([r,i])]);for(let e of S)e.url=e.url.replace(`__MO_LIGHTNINGCSS_LOADER_ICSS_URL_REPLACE_${t}__`,l??r)}}R.push(...S);let N=(0,i.getImportCode)(R,m),I=(0,i.getModuleCode)({css:p,map:r},g,L,m,this),P=(0,i.getExportCode)(h,L,m);a(null,`${N}${I}${P}`,r&&JSON.parse(r.toString()))}catch(e){a(e),(0,r.default)(e)}}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=exports,t={get camelCase(){return d},get dashesCamelCase(){return L},get getFilter(){return f},get getPreRequester(){return p},get isDataUrl(){return c},get isUrlRequestable(){return i},get normalizeSourceMapForRuntime(){return C},get requestify(){return u},get resolveRequests(){return n},get urlToRequest(){return l}};for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:Object.getOwnPropertyDescriptor(t,r).get});const a=require("node:path"),s=require("node:url"),o=/^[A-Z]:[/\\]|^\\\\/i;function l(e,t){let r;if(""===e)return"";let a=/^[^?]*~/;if(o.test(e))r=e;else if(void 0!==t&&!1!==t&&e.startsWith("/"))switch(typeof t){case"string":r=a.test(t)?t.replace(/([^~/])$/,"$1/")+e.slice(1):t+e;break;case"boolean":r=e;break;default:throw Error(`Unexpected parameters to loader-utils 'urlToRequest': url = ${e}, root = ${t}.`)}else r=/^\.\.?\//.test(e)?e:`./${e}`;return a.test(r)&&(r=r.replace(a,"")),r}async function n(e,t,r){return e(t,r[0]).then(e=>e).catch(a=>{let[,...s]=r;if(0===s.length)throw a;return n(e,t,s)})}function u(e,t){return/^file:/i.test(e)?(0,s.fileURLToPath)(e):/^[a-z][a-z0-9+.-]*:/i.test(e)?e:"/"===e.charAt(0)?l(e,t):l(e)}function i(e){return!(e.startsWith("//")||/^(https?:)?\/\//.test(e))&&(!!(/^file:/i.test(e)||/^[a-z][a-z0-9+.-]*:/i.test(e))||!e.startsWith("#"))}function c(e){return!!/^data:/i.test(e)}function p({loaders:e,loaderIndex:t}){let r=Object.create(null);return a=>{if(r[a])return r[a];if(!1===a)r[a]="";else{let s=e.slice(t,t+1+("number"!=typeof a?0:a)).map(e=>e.request).join("!");r[a]=`-!${s}!`}return r[a]}}function f(e,t){return(...r)=>"function"!=typeof e||e(...r,t)}const g=/^[a-z]:[/\\]|^\\\\/i,h=/^[a-z0-9+\-.]+:/i;function C(e,t){let r=e?e.toJSON():null;return r&&(delete r.file,r.sourceRoot="",r.sources=r.sources?.map(e=>{var r,s;if(e.startsWith("<")||"path-relative"!=("/"===(s=e)[0]?"/"===s[1]?"scheme-relative":"path-absolute":g.test(s)?"path-absolute":h.test(s)?"absolute":"path-relative"))return e;let o=(0,a.dirname)(t.resourcePath),l=(0,a.resolve)(o,e),n=(r=(0,a.relative)(t.rootContext,l),"\\"===a.sep?r.replace(/\\/g,"/"):r);return`moneko://${n}`})),JSON.stringify(r)}function L(e){return e.replace(/-+(\w)/g,(e,t)=>t.toUpperCase())}const d=(e,t)=>{let r,a;if(!("string"==typeof e||Array.isArray(e)))throw TypeError("Expected the input to be `string | string[]`");return(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},0===(e=Array.isArray(e)?e.map(e=>e.trim()).filter(e=>e.length).join("-"):e.trim()).length)?"":1===e.length?t.pascalCase?e.toLocaleUpperCase(t.locale):e.toLocaleLowerCase(t.locale):(e!==e.toLocaleLowerCase(t.locale)&&(e=((e,t)=>{let r=!1,a=!1,s=!1;for(let o=0;o<e.length;o++){let l=e[o];r&&/[\p{Lu}]/u.test(l)?(e=`${e.slice(0,o)}-${e.slice(o)}`,r=!1,s=a,a=!0,o++):a&&s&&/[\p{Ll}]/u.test(l)?(e=`${e.slice(0,o-1)}-${e.slice(o-1)}`,s=a,a=!1,r=!0):(r=l.toLocaleLowerCase(t)===l&&l.toLocaleUpperCase(t)!==l,s=a,a=l.toLocaleUpperCase(t)===l&&l.toLocaleLowerCase(t)!==l)}return e})(e,t.locale)),e=e.replace(/^[_.\- ]+/,""),e=t.preserveConsecutiveUppercase?e.replace(/^[\p{Lu}](?![\p{Lu}])/gu,e=>e.toLowerCase()):e.toLocaleLowerCase(),t.pascalCase&&(e=e.charAt(0).toLocaleUpperCase(t.locale)+e.slice(1)),r=e,a=t,r.replace(/[_.\- ]+([\p{Alpha}\p{N}_]|$)/gu,(e,t)=>t.toLocaleUpperCase(a.locale)).replace(/\d+([\p{Alpha}\p{N}_]|$)/gu,e=>e.toLocaleUpperCase(a.locale)))};
@@ -0,0 +1 @@
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return o}});const t=require("@moneko/mdx"),c=(e=require("../commom/log.mjs"))&&e.__esModule?e:{default:e};async function o(e){let o=this.async();this.cacheable&&this.cacheable(),(0,t.mdx)({value:e,filepath:this.resourcePath,...this.getOptions()}).then(e=>{o(null,e.code)}).catch(e=>{o(e),(0,c.default)(e)})}
@@ -0,0 +1 @@
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return r}});const t=require("@moneko/eslint/babel-core"),s=require("@moneko/eslint/react-compiler"),o=(e=require("../commom/log.mjs"))&&e.__esModule?e:{default:e};function r(e){let r=this.async();this.cacheable&&this.cacheable();let i=this.getOptions();("annotation"===i.compilationMode?e.includes("use memo")||e.includes("use forget"):e.includes("react")||this.resourcePath.endsWith(".tsx")||this.resourcePath.endsWith(".jsx"))?(0,t.transformAsync)(e,{sourceFileName:this.resourcePath,filename:this.resourcePath,sourceMaps:"inline",plugins:[[s.BabelPluginReactCompiler,i]],cloneInputAst:!1,ast:!1,configFile:!1,babelrc:!1}).then(t=>{null===t?r(Error(`Failed to transform "${this.resourcePath}"`),e):r(null,t.code??void 0,t.map??void 0)}).catch(t=>{t&&((0,o.default)(t),r(t,e))}):r(null,e)}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=exports,r={get custom(){return c},get default(){return a}};for(var o in r)Object.defineProperty(t,o,{enumerable:!0,get:Object.getOwnPropertyDescriptor(r,o).get});const s=require("@moneko/convert/solid"),n=(e=require("../commom/log.mjs"))&&e.__esModule?e:{default:e};async function i(e){let t=this.async();this.cacheable&&this.cacheable();let r=this.getOptions();(0,s.transformSolidJs)(e,{...r,filename:this.resourcePath}).then(r=>{null===r?t(Error(`Failed to transform "${this.resourcePath}"`),e):t(null,r.code??void 0,r.map??void 0)}).catch(r=>{r&&((0,n.default)(r),t(r,e))})}function c(e){return i.bind(this,e)}const a=i;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return u}});const e=require("fs"),t=/*#__PURE__*/s(require("../commom/log.mjs")),r=/*#__PURE__*/s(require("../commom/parse-module-meta.mjs"));function s(e){return e&&e.__esModule?e:{default:e}}const i={};function u(s){this.cacheable&&this.cacheable();let u=this.resourcePath;if(u.endsWith(".d.ts"))return s;try{let t=(0,e.statSync)(u).mtime.getTime();if(i[u]!==t){Object.assign(i,{[u]:t});let{comment:e,generateDoc:a,getCommentPath:o}=this.getOptions(),{file:c,pkg:n,meta:l}=(0,r.default)(o(u));e.setData(c,a(s,u)),e.setData(n,l)}}catch(e){(0,t.default)(e)}return s}
@@ -0,0 +1 @@
1
+ import e from"marked-completed";let r=!0;export default function(t){if(r){r=!1;let t=new e.Renderer;t.code=(e,r)=>"treeview"===r?`<n-tree data="${e}" />`:`<n-code class="n-code" toolbar="${JSON.stringify(["copy"])}" language="${r}" line-number="true">${encodeURIComponent(e)}</n-code>`,t.image=(e,r,t)=>`<n-img lazy="true" role="img" src="${e}" alt="${t}" ${r?`title="${r}"`:""}></n-img>`,e.use({langToolbar:["copy"],headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0,renderer:t})}return e.parse(t)}
@@ -0,0 +1 @@
1
+ import e from"../commom/has-pkg.mjs";import o from"../commom/require.mjs";let r={styleLoader:o.resolve("style-loader"),sassLoader:e("sass-loader"),lessLoader:o.resolve("less-loader"),swcLoader:o.resolve("swc-loader"),transformImports:e("@moneko/transform-imports"),hotMiddlewareClient:o.resolve("webpack-hot-middleware/client.js")};export default r;
@@ -0,0 +1 @@
1
+ import{merge as e}from"webpack-merge";import r from"../commom/paths.mjs";import{CONFIG as o}from"../config.mjs";import t,{coreJsVersion as s}from"../polyfills/polyfills.mjs";import{isDev as m,isReact as c,jsxImportSource as p}from"../process-env.mjs";let a={include:t(),mode:"entry",coreJs:s};export default((t,s={})=>e({module:{type:"es6",resolveFully:!0},sync:!0,jsc:{parser:{syntax:"typescript",tsx:c,decorators:!0,dynamicImport:!0},loose:!0,target:o.polyfill?void 0:"es2017",externalHelpers:!1,transform:{legacyDecorator:!0,decoratorMetadata:!0,react:{runtime:o.reactJsxRuntime||"automatic",throwIfNamespace:!0,refresh:c&&m,development:m,importSource:p},optimizer:{simplify:!1}},experimental:{emitAssertForImportAttributes:!0,cacheRoot:r.swcCachePath}},env:o.polyfill?a:void 0,sourceMaps:!0,parseMap:!0},"function"==typeof o.swcrc?o.swcrc(m):o.swcrc||{},s));
@@ -0,0 +1 @@
1
+ import{compression as e}from"@moneko/utils";export class CompressionPlugin{constructor(e){this.name="compression-plugin";let{test:s,algorithm:t="brotli"}=e||{};this.options={test:s,algorithm:t,filename:`[path][base].${"brotli"===t?"br":"gz"}`}}runCompressionAlgorithm(s){return Buffer.from(e(Buffer.isBuffer(s)?Array.from(s):s,this.options.algorithm))}async compress(e,s,t){let o=s.getCache(this.name),{RawSource:i}=e.webpack.sources;await Promise.all(Object.keys(t).map(async t=>{let r,a="gzip"===this.options.algorithm?"gzipped":`${this.options.algorithm}ed`,{info:m,source:p}=s.getAsset(t);if(m.compressed||!e.webpack.ModuleFilenameHelpers.matchObject.bind(void 0,this.options)(t)||m.related&&m.related[a])return!1;let n=o.getItemCache(JSON.stringify(`${t}${this.options.algorithm}`),o.getLazyHashedEtag(p)),l=await n.getPromise()||{};if(!l.source){if("function"==typeof p.buffer)r=p.buffer();else{let e=p.source();r=Buffer.isBuffer(e)?e:Buffer.from(e)}if(!l.compressed&&r)try{l.compressed=this.runCompressionAlgorithm(r)}catch(e){s.errors.push(e);return}l.compressed&&(l.source=new i(l.compressed)),await n.storePromise(l)}let f=s.getPath(this.options.filename,{filename:t}),c={compressed:!0};m.immutable&&/(\[name]|\[base]|\[file])/.test(this.options.filename)&&(c.immutable=!0),s.updateAsset(t,p,{related:{[a]:f}}),s.emitAsset(f,l.source,c)}))}apply(e){let s=this.name;e.hooks.thisCompilation.tap(s,t=>{t.hooks.processAssets.tapPromise({name:s,stage:e.webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER,additionalAssets:!0},s=>this.compress(e,t,s))})}}
@@ -0,0 +1 @@
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 o from"webpack";import a from"../commom/log.mjs";let l="CopyPlugin",r=o.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 a(e),!0}}apply(e){e.hooks.thisCompilation.tap({name:l,stage:e.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},e=>{let t=e.getCache(l);e.hooks.processAssets.tapPromise(l,async()=>{let i=this.getFiles();await Promise.all(i.files.map(async i=>{let o=this.hasFileChanged(i),a=t.getItemCache(i,null),l=await a.getPromise();if(l&&!o)return void e.emitAsset(i,l.source);let m=await s(i);if(null!==m){let t=new r(Buffer.from(m));await a.storePromise({source:t,timestamp:this.fileTimestamps.get(i)}),e.emitAsset(i,t)}})),i.deleted.forEach(t=>{e.deleteAsset(t),this.fileTimestamps.delete(t)})})})}}
@@ -0,0 +1 @@
1
+ export class DonePlugin{constructor(o){this.name="DonePlugin",this.options=Object.assign({},o)}apply(o){o.hooks.done.tap(this.name,o=>{this.options.done(o)})}}
@@ -0,0 +1 @@
1
+ import{join as e,parse as t,resolve as o}from"node:path";import{fileURLToPath as s}from"node:url";import{loadFile as i}from"@moneko/utils";import r from"webpack";import{Worker as a}from"worker_threads";import n from"../utils/create-types.mjs";let m="ModuleFederationExposesDeclarationPlugin";export class ModuleFederationExposesDeclarationPlugin{constructor(e){this.name="ModuleFederationExposesDeclarationPlugin",this.assetName="module-federation.d.ts",this.dts="",this.option=e,this.worker=new a(s(new URL("../worker/dts.mjs",import.meta.url))),this.worker.postMessage({options:{compilerOptions:{outFile:this.assetName},include:Object.values(e.exposes)}}),this.worker.once("message",e=>{this.dts=e,this.worker.terminate()})}apply(s){let{exposes:a}=this.option,p=Object.keys(a).map(e=>{let t=e.replace(/\.tsx?$/i,"");return{key:e,name:t,path:o(`types/${this.option.name}/${t}.d.ts`),originPath:a[e]}});s.hooks.thisCompilation.tap({name:m,stage:s.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},o=>{o.hooks.processAssets.tapPromise(m,async()=>{let s=p.map(async o=>{if(null!==await i(o.originPath)){let s=t(o.originPath);return`${n(e(this.option.name,o.name),`export * from '${t(s.dir).name}/${s.name}'`)}`}return""}),a=await Promise.all(s);a.unshift(this.dts),o.emitAsset("module-federation.d.ts",new r.sources.RawSource(a.join("\n")),{javascriptModule:!1})})})}}
@@ -0,0 +1 @@
1
+ import e from"webpack";let t=e.sources,r="ExternalRemotesPlugin";export class ExternalRemotesPlugin{apply(e){e.hooks.make.tap(r,e=>{let n=[];e.hooks.buildModule.tap(r,e=>{"ExternalModule"===e.constructor.name&&"script"===e.externalType&&n.push(e)}),e.hooks.afterCodeGeneration.tap(r,function(){n.map(r=>{let n=function(e){let t=e.indexOf("@");if(t<=0||t===e.length-1)throw Error(`Invalid request "${e}"`);return[e.substring(t+1),e.substring(0,t)]}(r.request)[0],o=function(e){let t=[],r=[],n=!1,o=!1;for(let s of e)if("["===s){if(n){o=!0;break}n=!0,r.length&&(t.push(`"${r.join("")}"`),r.length=0)}else if("]"===s){if(!n){o=!0;break}n=!1,r.length&&(t.push(`${r.join("")}`),r.length=0),r.length=0}else r.push(s);if(n||o)throw Error(`Invalid template URL "${e}"`);return r.length&&t.push(`"${r.join("")}"`),t.join(" + ")}(n),s=e.codeGenerationResults.get(r,void 0).sources,l=s.get("javascript")?.source();l&&s.set("javascript",new t.RawSource(l.replace(`"${n}"`,o)))})})})}}
@@ -0,0 +1 @@
1
+ import{existsSync as t,readFileSync as e}from"node:fs";import{basename as s,resolve as i}from"node:path";import o from"webpack";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}}apply(n){n.hooks.compilation.tap(this.name,a=>{a.hooks.processAssets.tap({name:this.name,stage:o.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL},()=>{let h;if(this.options.favicon){let h=i(n.context,this.options.favicon);if(t(h)){let t=s(this.options.favicon),i=e(h);a.emitAsset(t,new o.sources.RawSource(i),{javascriptModule:!1});let n=a.outputOptions.publicPath||"";this.faviconPath=("auto"===n?"":n)+t}else a.warnings.push(new o.WebpackError(`Favicon file ${h} does not exist`))}if(h=this.options.templateContent?this.options.templateContent(this.options):this.options.template?e(i(n.context,this.options.template),{encoding:"utf-8"}):this.generateDefaultTemplate(),this.options.inject){let t=this.getAssets(a);h=this.injectAssets(h,t,this.options.inject)}let l="function"==typeof this.options.filename?this.options.filename("index"):this.options.filename||"index.html";a.emitAsset(l,new o.sources.RawSource(h),{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:o="",inject:n=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}>${o}</${i}>`;"head"===n?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=t.outputOptions.publicPath||"",i="auto"===s?"":s;for(let s of t.entrypoints.values())for(let t of s.chunks)for(let s of t.files)s.endsWith(".js")?e.js.push(i+s):s.endsWith(".css")&&e.css.push(i+s);return e}injectAssets(t,e,s){let i=e.css.length?e.css.map(t=>`<link href="${t}" rel="stylesheet" />`).join(""):"",o=e.js.length?e.js.map(t=>`<script defer ${this.AddEntry.test(t)?'entry="true" ':""}src="${t}"></script>`).join(""):"",n=this.generateCustomTags(),a=t.split("</head>");if(2===a.length){let[t,e]=a,h=e.split("</body>");return"head"===s?`${t}${i}${o}${n.head}</head>${h[0]}${n.body}</body>${h[1]||""}`:`${t}${n.head}</head>${h[0]}${i}${o}${n.body}</body>${h[1]||""}`}return t}}
@@ -0,0 +1 @@
1
+ import{Buffer as s}from"node:buffer";import{transform as e}from"lightningcss";import i from"webpack";let t=new TextEncoder,o=i.sources.RawSource,n=i.sources.SourceMapSource,a=i.ModuleFilenameHelpers.matchObject,r="lightning-css-minify",m=/\.(c|le|sc|sa)ss(?:\?.*)?$/i;export class LightningCssMinifyPlugin{constructor(s={}){let{implementation:i,...t}=s;if(i&&"function"!=typeof i.transform)throw TypeError(`[LightningCssMinifyPlugin]: implementation.transform must be an 'lightningcss' transform function. Received ${typeof i.transform}`);this.transform=i?.transform??e,this.options=t}apply(s){let e=JSON.stringify({name:r,version:"0.0.1",options:this.options});s.hooks.compilation.tap(r,s=>{s.hooks.chunkHash.tap(r,(s,i)=>i.update(e)),s.hooks.processAssets.tapPromise({name:r,stage:i.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,additionalAssets:!0},async()=>await this.transformAssets(s)),s.hooks.statsPrinter.tap(r,s=>{s.hooks.print.for("asset.info.minimized").tap(r,(s,{green:e,formatFlag:i})=>s?e(i("minimized")):void 0)})})}async transformAssets(e){let{options:{devtool:i}}=e.compiler,{include:c,exclude:p,test:f,sourceMap:l=void 0===this.options.sourceMap?!!(i&&i.includes("source-map")):this.options.sourceMap,...u}=this.options,h=e.getCache(r),d=e.getAssets().filter(s=>!s.info.minimized&&(f||m).test(s.name)&&a({include:c,exclude:p},s.name));await Promise.all(d.map(async i=>{let a,r=h.getItemCache(JSON.stringify(i.name),h.getLazyHashedEtag(i.source)),m=await r.getPromise();if(m&&m.minimized)return void e.updateAsset(i.name,m.source,{...i.info,minimized:!0});let c=i.source.source(),p="string"==typeof c?t.encode(c):c,f=this.transform({filename:i.name,code:p,minify:!0,sourceMap:l,...u}),d=s.from(f.code),g={source:a=l?new n(d,i.name,f.map||"",c,f.map||"",!0):new o(d),minimized:!0};await r.storePromise(g),e.updateAsset(i.name,a,{...i.info,minimized:!0})}))}}
@@ -0,0 +1 @@
1
+ import{packageJson as s}from"../process-env.mjs";let e={filename:"manifest.json",name:s.name,short_name:s.shortName,description:s.description,start_url:s.startUrl??"/?source=pwa",display:s.display??"standalone",background_color:s.backgroundColor??"#fff",theme_color:s.themeColor,icons:[{src:"/favicon.ico",sizes:"48x48",type:"image/x-icon"}]};export function generateManifest(t,o,a){return Object.assign({},e,t,{version:`${s.version}-${o}`,hash:o,content_assets:a})}export class ManifestPlugin{constructor(s){this.name="ManifestPlugin",this.options=Object.assign({},e,s??{})}apply(s){let e=this.name,{filename:t,...o}=this.options;s.hooks.thisCompilation.tap(e,a=>{a.hooks.processAssets.tap({name:e,stage:s.webpack.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},e=>{a.emitAsset(t,new s.webpack.sources.RawSource(JSON.stringify(generateManifest(o,a.fullHash,Object.keys(e)))),{javascriptModule:!1})})})}}
@@ -0,0 +1 @@
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()})}}}
@@ -0,0 +1 @@
1
+ import{minify as e}from"@swc/core";import s from"webpack";let o=s.sources.SourceMapSource;export class SwcMinifyPlugin{constructor(e){this.name="SwcMinifyPlugin",this.options={format:{comments:!1},ecma:2015,compress:{drop_console:!0,drop_debugger:!0,global_defs:{"@alert":"console.log"},pure_funcs:["console.log","console.warn","console.error","console.info"],ecma:2015,toplevel:!1,module:!1,ie8:!1,keep_classnames:void 0,keep_fnames:!1,top_retain:[],keep_infinity:!0},mangle:!0,sourceMap:!0,...e}}apply(t){t.hooks.compilation.tap(this.name,t=>{t.hooks.processAssets.tapAsync({name:this.name,stage:s.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,additionalAssets:!0},async(s,i)=>{let a=t.getCache(this.name),n=Object.keys(s).filter(e=>e.endsWith(".js")&&!e.endsWith(".min.js"));try{await Promise.all(n.map(async s=>{let i=t.getAsset(s);if(!i||i.info.minimized)return;let n=a.getItemCache(JSON.stringify(i.name),a.getLazyHashedEtag(i.source)),r=await n.getPromise();if(r&&r.minimized)return void t.updateAsset(i.name,r.source,{...i.info,minimized:!0});let c=i.source.sourceAndMap();try{let s=await e(c.source.toString().replace(/\r\n/g,"\n"),this.options),a={sources:[i.name]};s.map&&((a=JSON.parse(s.map)).sources=[i.name],delete a.sourcesContent);let r={source:new o(s.code,i.name,a||"",c.source,c.map||"",!0),minimized:!0};await n.storePromise(r),t.updateAsset(i.name,r.source,{...i.info,minimized:!0})}catch(e){t.errors.push(e)}})),i()}catch(e){i(e)}})})}}
@@ -0,0 +1 @@
1
+ import o from"webpack-virtual-modules";import t from"../commom/parse-module-meta.mjs";import i from"../commom/paths.mjs";import{isLibrary as e}from"../process-env.mjs";import{node_modules as s,transformModule as r}from"../utils/index.mjs";import{comment as m,docs as l}from"../vm/docs.mjs";import{examples as p}from"../vm/example.mjs";import{locales as n}from"../vm/locales.mjs";import a from"../vm/modules.mjs";import{route as f}from"../vm/routes.mjs";let c={};for(let o in a)if(Object.prototype.hasOwnProperty.call(a,o)){let{file:i,pkg:e,meta:s}=t(o);c[e]=s,c[i]=r(a[o])}export class VirtualModuleWebpackPlugin{constructor(i={}){this.options={},this.init=!1,this.virtualModules=new o(c);let e={};for(let o in i)if(Object.prototype.hasOwnProperty.call(i,o)){let{file:s,pkg:m,meta:l}=t(o),p=i[o],n=p;n=s.endsWith("json")?"string"==typeof p?p:JSON.stringify(p):r(p),Object.assign(e,{[s]:n,[m]:l})}this.options=e}modify(o,t,e){let r=t.startsWith(i.nodeModules)?t:s(t);this.virtualModules.writeModule(r,e||"")}apply(o){this.virtualModules.apply(o);let t=(t,i)=>{this.modify(o,t,i)};f.on("change",t),n.on("change",t),e&&(p.on("change",t),l.on("change",t),m.on("change",t)),o.hooks.compilation.tap("VirtualModuleWebpackPlugin",()=>{if(!this.init){for(let o in this.init=!0,this.options)Object.prototype.hasOwnProperty.call(this.options,o)&&t(o,this.options[o]);for(let o of p)t(o[0],o[1]);for(let o of l)t(o[0],o[1]);for(let o of m)t(o[0],o[1])}})}}
@@ -0,0 +1 @@
1
+ import r from"core-js-compat";import o from"../commom/require.mjs";import{getBrowsersTargets as e}from"./targets.mjs";let s=o("core-js/package.json").version;export const coreJsVersion=s.substring(0,s.indexOf(".",2));export default function(){return r({targets:e(),version:coreJsVersion}).list}
@@ -0,0 +1 @@
1
+ let r,t;import{env as o}from"node:process";import e from"browserslist";import{browserslistToTargets as s}from"lightningcss";import i from"../commom/paths.mjs";export function getBrowsersTargets(){return r||(r=e(void 0,{path:i.programPath,env:o.NODE_ENV}).filter(r=>!r.endsWith(" TP"))),r}export function getLightningCssTargets(){return t||(t=s(getBrowsersTargets())),t}
@@ -0,0 +1 @@
1
+ import{request as t}from"@moneko/request";import{updateFile as o}from"@moneko/utils";import e from"../commom/log.mjs";import{node_modules as r}from"./index.mjs";async function m(m,i){try{let e=`${m.startsWith("//")?`http:${m}`:m}/module-federation.d.ts`,s=await t(e,{responseType:"text",rejectUnauthorized:!1});o(r(`@types/${i}/index.d.ts`),s)}catch(t){e(t)}}export default m;
@@ -0,0 +1 @@
1
+ import{resolve as e}from"node:path";import t from"../commom/paths.mjs";export function toCamelCase(e){return e.replace(/-./g,e=>e.charAt(1).toUpperCase())}export function convertToCamelCase(e){return e.toLowerCase().replace(/-(\w)/g,(e,t)=>t?t.toUpperCase():"").replace(/^./,e=>e.toUpperCase()).replace(/Ui$/,"UI")}export function resolveProgram(o){return e(t.programPath,`./${o}`)}export function node_modules(o){return e(t.nodeModules,`./${o}`)}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(){}
@@ -0,0 +1 @@
1
+ import e from"node:vm";export default function(n,r){return e.runInThisContext(n||"",{filename:r,lineOffset:0,columnOffset:0,displayErrors:!0})}
@@ -0,0 +1,4 @@
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 p}from"../common.mjs";import{CONFIG as i}from"../config.mjs";import{isLibrary as s}from"../process-env.mjs";import{resolveProgram as n}from"./index.mjs";export default(()=>{let{domain:f,jekyll:a,path:l}=i.seo||{},j=l&&n(l)||p?.path;if(!f||!j)return;let x=`https://${f}${i.basename}`;r(o(j,"CNAME"),f),r(o(j,"robots.txt"),`User-agent: *
2
+ Allow: /
3
+
4
+ Sitemap: ${x}/sitemap.txt`),r(o(j,"sitemap.txt"),[x,...t(e,x,m(e,s))].join("\n")),a||r(o(j,".nojekyll"),"")});
@@ -0,0 +1 @@
1
+ import{fileExists as e,parseXml as t}from"@moneko/utils";import{PACKAGENAME as r}from"../process-env.mjs";export default function(o){let i="export default {}";if(e(o)){let e={},s=t(o);if(s){let{metrics:t,package:o}=JSON.parse(s).coverage.project;Object.assign(e,{[r]:t.$});for(let t=0,r=o.length;t<r;t++){let r=o[t];Object.assign(e,{[r.$.name]:r.metrics.$})}}i=`export default ${JSON.stringify(e)}`}return i}
@@ -0,0 +1 @@
1
+ import{generateExample as e}from"@moneko/mdx";import o from"../commom/parse-module-meta.mjs";import t from"../commom/paths.mjs";import m from"../commom/reactive-object.mjs";import r from"../commom/rule.mjs";import{CONFIG as p}from"../config.mjs";import{isDev as a,isLibrary as l}from"../process-env.mjs";import{watchFiles as n}from"./utils.mjs";export const exampleModuleName="@app/example";function s(){if(!l||!1===p.htmlPluginOption)return{};let m=JSON.parse(e(t.componentsPath,`${exampleModuleName}/`,"6")),a={};for(let e in m)Object.prototype.hasOwnProperty.call(m,e)&&Object.assign(a,{[e]:`rr(() => import('${e}'))rr`});let n={...m,[exampleModuleName]:`export default ${JSON.stringify(a).replace(r.extract_func,"$1")}`},s={};for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e)){let{file:t,pkg:m,meta:r}=o(e);s[m]=r,s[t]=n[e]}return s}export const examples=new m(s());export function generatorExample(){let e=s();for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&examples.setData(o,e[o])}l&&a&&!1!==p.htmlPluginOption&&n(t.componentsPath,/(?<!\/examples\/(.+)\.md)$/,generatorExample);
@@ -0,0 +1 @@
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";let l=t.ScriptKind,o=t.ScriptTarget,i=t.SyntaxKind,a=t.createSourceFile,c=t.forEachChild,s=t.getLeadingCommentRanges,u=t.isInterfaceDeclaration,f=t.isQuestionToken,m=t.isPropertySignature,p=t.isFunctionTypeNode,g=t.isUnionTypeNode,$=t.isMethodSignature,d={};function h(e){let t=s(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 b(e){if(!e)return;let t=e.match(/@since\s+([^\n]+)/);return t?t[1].trim():void 0}function y(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}-alt](https://avatars.githubusercontent.com/${e}?s=64)${e}](${n})`}}function x(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 j(e,t){if(!e)return;let r=e.replaceAll(/\b([A-Z][a-zA-Z0-9]*)\b/g,e=>{if(d[e]){let r=`/${[n.basename,d[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 S(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 T(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,"")}export default function k(s,A){let k=a(A,s,o.Latest,!0,l.TS),v="";return c(k,r=>{u(r)?v+=function(r){let l=r.name.text;Object.assign(d,{[r.name.text]:e(r.getSourceFile().fileName).replace(n.alias["@pkg"],"")});let o=h(r),a=b(o),c=T(o),s=x(o)?.split("|")||[],u=s.includes("comment"),A=s.includes("initial"),k=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;}">${j(S(e))}</n-tag>`),F=[c,B,a&&`\\color{#52c11b|1||0.9}{${a}}`,z.length>0&&`<sub>\`extends\`</sub> ${z.join(" ")}`].filter(Boolean).join(" "),N=`## ${F}`,K=r.members.filter(e=>m(e)&&e.type?.kind!==i.NeverKeyword||$(e)),C=[];if(K.length>0){for(let e=0,t=K.length;e<t;e++){let t=K[e],n=j(S($(t)?`(${t.parameters.map(e=>`${e.name.getText()}: ${e.type?.getText()||"any"}`).join(", ")}): ${t.type?.getText()||"any"}`:t.type?.getText()||"any"),!0),r=h(t),l=S(t.name.getText());l&&!l.startsWith("\\color")&&($(t)||function(e){if(e.type){if(!g(e.type))return p(e.type);else for(let t of e.type.types)if(p(t))return!0}return!1}(t)||n?.includes("=>")?l=`\\color{#f9a913}{${l}}`:/^["'](.+)["']$/.test(l)||(l=`\\color{#4c81db}{${l}}`));let i=t.questionToken&&f(t.questionToken);C.push([l,!k&&`\\color{${i?"#f9a913":"#52c11b"}\\|\\|\\|0.9}{${i?"✘":"✔"}}`,!u&&S(T(r)),n,!A&&S(function(e){if(!e)return;let t=e.match(/@default\s+([^\n]+)/);return t?t[1].trim():void 0}(r)),!v&&S(b(r)),!w&&(y(r)||y(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),!A&&o[4]&&(n=!0),!v&&o[5]&&(t=!0),!w&&o[6]&&(e=!0)}N+="\n";let l=["属性",!k&&"必要",r&&"说明","类型",n&&"默认值",t&&"版本",e&&"作者"].filter(Boolean).join("|");N+=`|${l}|`;let i=[":-",!k&&":-",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]||"-"),!k&&(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)&&(v+=function(r){let l=r.name.text,o=h(r),i=T(o),a=b(o);Object.assign(d,{[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=x(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=S(l.name.getText()),a=h(l),c=S(function(e){let n=e.initializer;if(n&&t.isStringLiteral(n))return` '${n.text}'`}(l)),s=S(b(a)),u=S(T(a));!i||i.startsWith("\\color")||/^["'](.+)["']$/.test(i)||(i=`\\color{#4c81db}{${i}}`),e.push([i,!f&&u,c,!m&&s,!p&&(y(a)||y(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))}),r(v)}
@@ -0,0 +1 @@
1
+ import{generateRouter as o}from"@moneko/mdx";import e from"../commom/parse-module-meta.mjs";import{routeDir as t}from"../commom/paths.mjs";import r from"../commom/reactive-object.mjs";import{CONFIG as m}from"../config.mjs";import{FRAMEWORK as s,isDev as u,isLibrary as n}from"../process-env.mjs";import{watchFiles as p}from"./utils.mjs";let a=n?"@pkg":"@/pages",i=e("@app/routes");export const routesModuleName=i.file;export const routesModulePkgJson=i.pkg;export const routesModuleMeta=i.meta;function l(){return!1===m.htmlPluginOption?"":o(t,`${m.alias["@"]}/router/index.ts`,s,a,n,"6")}export const route=new r({[routesModuleName]:l(),[routesModulePkgJson]:routesModuleMeta});export function generatorRouter(){route.setData(routesModuleName,l())}u&&p(t,n?/(?<!README\.mdx?)$/:/(?<!index\.tsx?)$/,generatorRouter);
@@ -0,0 +1 @@
1
+ import{watch as i}from"chokidar";import o from"../commom/sigint-exit.mjs";import{empty as t}from"../utils/index.mjs";export function watchFiles(n,r,e=t){let m=i(n,{ignored:(i,o)=>{if(o)return!o.isDirectory()&&r?.test(i)},persistent:!0,ignoreInitial:!0});m.on("add",e).on("change",e).on("unlink",e),o(function(){m.unwatch(n),m.close()})}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "3.54.0-beta.3",
3
+ "version": "3.54.0-beta.5",
4
4
  "description": "core",
5
5
  "main": "lib/index.mjs",
6
6
  "type": "module",
7
7
  "scripts": {
8
- "build": "node build.mjs",
8
+ "build": "rm -rf ./lib && node build.mjs && tsc",
9
9
  "prepublishOnly": "node build.mjs"
10
10
  },
11
11
  "bin": {
@@ -360,7 +360,7 @@ export declare type ConfigType = {
360
360
  | 'single'
361
361
  | 'multiple'
362
362
  | {
363
- name?: string | VoidFunction;
363
+ name?: string | ((entrypoint: { name: string }) => string);
364
364
  };
365
365
  /** 编译输出路径
366
366
  * @description 用于配置输出选项,可以是一个字符串(表示输出目录路径)或一个对象(包含详细的输出配置)
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export { };
@@ -1,2 +0,0 @@
1
- export declare const __filename: string;
2
- export declare const __dirname: string;
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export { };
package/lib/bin/pin.d.mts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * 检测过时依赖
3
- * @returns {Promise<void>} 返回码 1 失败,0 成功
4
- */ declare function pin(): Promise<void>;
5
- export default pin;
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export { };
@@ -1,2 +0,0 @@
1
- declare function setup(): void;
2
- export default setup;
@@ -1,28 +0,0 @@
1
- import { TransformSolidJsOption } from '../../commom/transform-solid-js.mjs';
2
- interface ConvertOptions {
3
- outDir: string;
4
- inputDir: string;
5
- options: TransformSolidJsOption;
6
- ignore?: RegExp[];
7
- extensions?: string[];
8
- copy?: boolean;
9
- quiet?: boolean;
10
- outputExtension?: string;
11
- }
12
- interface ConvertResult {
13
- duration: number;
14
- compiled: string[];
15
- copied: string[];
16
- failed: string[];
17
- }
18
- export declare function convertSolid({ ignore = [], quiet = true, copy = true, outDir, outputExtension, inputDir, options, extensions = [
19
- '.ts',
20
- '.js',
21
- '.tsx',
22
- '.jsx',
23
- '.mts',
24
- '.mjs',
25
- '.cts',
26
- '.cjs'
27
- ] }: ConvertOptions): Promise<ConvertResult>;
28
- export { };
@@ -1 +0,0 @@
1
- import e from"node:path";import{copyFile as t,ink as o,loadFileSync as s,println as i,scanFolderSync as a,updateFile as r}from"@moneko/utils";import{transformSolidJs as m}from"../../commom/transform-solid-js.mjs";function n(t,o,s){let i=o.split(e.sep),a=""===i[0]?i[1]:i[0],r=o.replace(a,""),m=e.join(t,r);return s?m.replace(e.extname(m),s):m}let p={".ts":".js",".tsx":".js",".mts":".mjs",".cts":".cjs",".js":".js",".jsx":".js",".mjs":".mjs",".cjs":".cjs"};export async function convertSolid({ignore:l=[],quiet:c=!0,copy:d=!0,outDir:j,outputExtension:f,inputDir:h,options:u,extensions:$=[".ts",".js",".tsx",".jsx",".mts",".mjs",".cts",".cjs"]}){let g=process.hrtime(),x={duration:0,compiled:[],copied:[],failed:[]},y=a(h,["^.*"]).map(t=>e.normalize(t)),S=[],w=[];y.forEach(t=>{!(/\.DS_Store/.test(t)||l.some(e=>e.test(t)))&&($.includes(e.extname(t))?S.push(t):d&&w.push(t))});let E=S.map(async t=>{try{let o=f||p[e.extname(t)],i=await m(s(t)||"",{...u,filename:t,minified:!0,compact:!0}),a=n(j,t,o);await r(a,i?.code??""),i?.map&&await r(`${a}.map`,"string"==typeof i.map?i.map:JSON.stringify(i.map)),x.compiled.push(`${t} -> ${a}`)}catch(e){x.failed.push(`Error converting ${t}: ${e}`)}}).concat(w.map(async e=>{let o=n(j,e);await t(e,o)?x.copied.push(`${e} -> ${o}`):x.failed.push(`Error copying ${e} -> ${o}`)}));await Promise.all(E);let v=process.hrtime(g);if(x.duration=1e3*v[0]+v[1]/1e6,c){let e=u.presetEnvOption?.modules,t=!1===e?"ESM":e?.toString().toLocaleUpperCase();i([`${o("✨ 编译成功!🎉","82",{bold:!0})} ${o(`(${t})`,"213")}`,o(`⏱️ 总耗时:${x.duration.toFixed(3)} ms`,"117"),x.compiled.length&&o(`📄 编译文件:${x.compiled.length} 个`,"111"),x.copied.length&&o(`📋 复制文件:${x.copied.length} 个`,"226"),x.failed.length&&o(`❌ 编译失败:${x.failed.length} 个`,"203")].filter(Boolean).join("\n- "))}return x}
@@ -1,2 +0,0 @@
1
- import type { Config } from '@swc/core';
2
- export declare function getSwcOption(): Config;
@@ -1,3 +0,0 @@
1
- import { type Configuration } from 'webpack';
2
- declare const buildCommon: Configuration;
3
- export default buildCommon;