@moneko/core 4.8.6-beta.0 → 4.8.6-beta.10

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.
@@ -1,17 +1,12 @@
1
- /** 带别名的本地文件条目:key 为重新导出的模块名,value 为本地文件路径。 */ export interface BundleEntry {
1
+ export interface BundleEntry {
2
2
  [key: string]: string;
3
3
  }
4
4
  /**
5
5
  * 将一个或多个 npm 包或本地文件的类型声明打包成单一的 .d.ts 字符串。
6
- * 每个文件对应一个 declare module "..." { ... } 块,传递依赖自动包含。
7
- * 多包时共享 processedPkgs,全局去重,避免 declare module 重复声明。
8
- *
9
- * @param pkgOrPkgs - 包名、路径或带别名条目(支持混合数组),例如:
10
- * - `'react'` — npm 包名
11
- * - `['antd', 'dayjs']` — 多个 npm 包
12
- * - `'./src/services/search.ts'` 本地相对路径
13
- * - `'/absolute/path/to/file.ts'` — 本地绝对路径
14
- * - `{ 'pkg/sub': '/abs/path/to/sub.mjs' }` — 带别名的本地文件,key 作为重新导出的模块名
15
- * - `['react', { 'mf:csss/app': './src/app.ts' }]` — 混合数组
16
- * @param scope - 本地文件模块 ID 的作用域前缀,用于区分不同项目的声明(如 `'dflux-front'`)
17
- */ export declare function bundleDts(pkgOrPkgs: BundleEntry | string | (BundleEntry | string)[], scope?: string): Promise<string>;
6
+ */ export declare function bundleDts(pkgOrPkgs: BundleEntry | string | (BundleEntry | string)[], scope?: string, minify?: boolean, progress?: (/**
7
+ * 当前处理的进度
8
+ */ current: number, /**
9
+ * 总处理的模块数(动态更新)
10
+ */ total: number, /**
11
+ * 当前处理的消息
12
+ */ msg: string) => void): Promise<string>;
@@ -1,7 +1 @@
1
- import{readFileSync as t,statSync as e}from"node:fs";import{createRequire as r,isBuiltin as i}from"node:module";import{dirname as n,isAbsolute as l,join as s,posix as o,relative as f,resolve as d,sep as c}from"node:path";import u from"node:process";import a from"typescript";let p=new Map;function m(t){if(p.has(t))return p.get(t);try{let r=e(t).isFile();return p.set(t,r),r}catch{return p.set(t,!1),!1}}let y=new Map;function g(t){return y.has(t)||y.set(t,r(s(t,"__x__.js"))),y.get(t)}let h=r(import.meta.url),x=null;function $(){if(x)return x;let t=u.cwd(),e=a.findConfigFile(t,a.sys.fileExists,"tsconfig.json");if(e){let{config:t,error:r}=a.readConfigFile(e,a.sys.readFile);if(!r){let{options:r}=a.parseJsonConfigFileContent(t,a.sys,n(e));return x={...r,declaration:!0,emitDeclarationOnly:!0,noEmit:!1,skipLibCheck:!0,noEmitOnError:!1,declarationMap:!1}}}return x={declaration:!0,emitDeclarationOnly:!0,noEmit:!1,skipLibCheck:!0,noEmitOnError:!1,declarationMap:!1,target:a.ScriptTarget.ESNext,module:a.ModuleKind.ESNext,moduleResolution:a.ModuleResolutionKind.Bundler,jsx:a.JsxEmit.ReactJSX}}let F=null,k=null,j=new Map,O=/^(?:import|export)\s[\s\S]*?\bfrom\s+['"]([^'"]+)['"]\s*;?/gm,S=/\bimport\(\s*['"]([^'"]+)['"]\s*\)/g,w=/^\/\/\/\s*<reference\s+types="([^"]+)"\s*\/>/gm,D=/^\/\/\/\s*<reference\s+path="([^"]+)"\s*\/>/gm;function v(t){if(t){if("string"==typeof t)return t;for(let e of["import","require","default","node","browser"]){let r=t[e];if("string"==typeof r)return r;if(r&&"object"==typeof r){let t=v(r);if(t)return t}}}}function E(t,e=!1){if(t){if("string"==typeof t)return e?t:void 0;for(let e of Object.keys(t).filter(t=>"types"===t||t.startsWith("types@")).sort((t,e)=>"types"===t?-1:+("types"===e))){let r=E(t[e],!0);if(r)return r}for(let r of["import","require","default","node"]){let i=t[r];if("string"==typeof i){if(e)return i;continue}if(i&&"object"==typeof i){let t=E(i,e);if(t)return t}}}}function W(t){return t.startsWith("@types/")?t:t.startsWith("@")?`@types/${t.slice(1).replace("/","__")}`:`@types/${t}`}function b(e,r){try{let i=e.resolve(`${r}/package.json`),l=JSON.parse(t(i,"utf-8"));return{pkgDir:n(i),pkgJson:l}}catch{try{let i=n(e.resolve(r));for(;i!==n(i);){let e=s(i,"package.json");if(m(e)){let n=JSON.parse(t(e,"utf-8")),l=n.name;if(!l||l===r)return{pkgDir:i,pkgJson:n}}i=n(i)}}catch{}return null}}function J(e,r){let i,l,o=r?g(r):h,f=b(o,e)??(r?b(h,e):null);if(f&&(i=f.pkgDir,l=f.pkgJson),i&&l){let t=l.types??l.typings;if(t){let e=s(i,t);if(m(e))return{entryFile:e,pkgDir:i}}let e=s(i,"index.d.ts");if(m(e))return{entryFile:e,pkgDir:i};if(l.exports)for(let t of[".","./index"]){let e=l.exports[t];if(!e)continue;let r="string"==typeof e?void 0:E(e);if(r){let t=s(i,r);if(m(t))return{entryFile:t,pkgDir:i}}let n="string"==typeof e?e:v(e);if(n){let t=s(i,n).replace(/\.([cm]?)js$/,".d.$1ts");if(m(t))return{entryFile:t,pkgDir:i}}}if(l.typesVersions){let t=l.typesVersions["*"];if(t){let e=t["*"]??t.index;if(Array.isArray(e)&&e.length>0){let t=s(i,e[0].replace("*","index"));if(m(t))return{entryFile:t,pkgDir:i}}}}}let d=W(e);for(let e of r?[o,h]:[h])try{let r=e.resolve(`${d}/package.json`),i=JSON.parse(t(r,"utf-8")),l=n(r),o=i.types??i.typings??"index.d.ts",f=s(l,o);if(m(f))return{entryFile:f,pkgDir:l}}catch{}throw Error(`Cannot find types for "${e}"`)}function C(t,e){return f(e,t).split(c).join(o.sep).replace(/\.d\.[cm]?ts$/,"").replace(/\.[cm]?tsx?$/,"")}function M(e,r,o,f){let c=new Set,u=[],p=new Set,y=new Set;return!function o(g){let h,x=d(g);if(c.has(x))return;c.add(x);let v=/\.[cm]?tsx?$/.test(x)&&!/\.d\.[cm]?ts$/.test(x);try{if(v){if(!(h=function(t){let e=d(t);if(j.has(e))return j.get(e);let r=function(t){let e=d(t);if(k?.getSourceFile(e))return k;let r=$(),i=k?[...k.getRootFileNames(),e]:[e];return k=a.createProgram(i,r,F||(F=a.createCompilerHost($())),k??void 0)}(e),i=r.getSourceFile(e);if(!i)return j.set(e,""),"";let n="";r.emit(i,(t,e)=>{/\.d\.[cm]?ts$/.test(t)&&(n=e)},void 0,!0);let l=n.replace(/^export\s*\{\s*\};\s*$/gm,"").replace(/^#![^\n]*\n?/,"").trim();return j.set(e,l),l}(x)))return void c.delete(x)}else h=t(g,"utf-8").replace(/^#![^\n]*\n?/,"")}catch{c.delete(x);return}let E=new Map,W=t=>(E.has(t)||E.set(t,function(t,e){let r=s(n(e),t);if(m(r))return r;let i=r.lastIndexOf(".");if(i>Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"))){let t=r.slice(0,i);for(let e of[".d.ts",".d.mts",".d.cts"]){let r=t+e;if(m(r))return r}}for(let t of[".d.ts",".d.mts",".d.cts"])if(m(r+t))return r+t;for(let t of["index.d.ts","index.d.mts","index.d.cts"]){let e=s(r,t);if(m(e))return e}for(let t of[".ts",".tsx",".mts",".cts"])if(m(r+t))return r+t;for(let t of["index.ts","index.tsx","index.mts","index.cts"]){let e=s(r,t);if(m(e))return e}return null}(t,g)),E.get(t));for(let[,t]of h.matchAll(O))if(t.startsWith(".")){let e=W(t);e&&o(e)}else if(!l(t)&&!i(t)){let e=t.startsWith("@")?t.split("/").slice(0,2).join("/"):t.split("/")[0];p.add(e),t!==e&&y.add(t)}for(let[,t]of h.matchAll(w))i(t)||p.add(t);for(let[,t]of h.matchAll(D)){let e=W(t);e&&o(e)}for(let[,t]of h.matchAll(S))if(!t.startsWith(".")&&!l(t)&&!i(t)){let e=t.startsWith("@")?t.split("/").slice(0,2).join("/"):t.split("/")[0];p.add(e),t!==e&&y.add(t)}let b=t=>{let i=C(t,r);return e?`${e}/${i}`:f?`${f}:${i}`:i},J=h.replace(O,(t,e)=>{if(!e.startsWith("."))return t;let r=W(e);if(!r)return t;let i=b(r),n=`'${e}'`,l=`"${e}"`,s=t.lastIndexOf(n),o=t.lastIndexOf(l);return s>o?`${t.slice(0,s)}'${i}'${t.slice(s+n.length)}`:o>=0?`${t.slice(0,o)}"${i}"${t.slice(o+l.length)}`:t}).replace(D,(t,e)=>{let r=W(e);return r?`/// <reference types="${b(r)}" />`:""}).replace(/\n{3,}/g,"\n\n").trim();if(!J)return;let M=b(x),A=J.replace(/^(?=.)/gm," ");u.push({id:M,content:`declare module "${M}" {
2
- ${A}
3
- }`})}(o),{blocks:u,externalDeps:p,externalSubpaths:y}}function A(e,r,i,l,o,f){let c,{blocks:u,externalDeps:a,externalSubpaths:p}=M(e,i,r,f);for(let t of(e&&(c=`${e}/${C(d(r),i)}`,u.push({id:e,content:`declare module "${e}" {
4
- export * from "${c}";
5
- }`})),a))if(!l.has(t))try{let{entryFile:e,pkgDir:r}=J(t,i);l.add(t),A(t,e,r,l,o)}catch{}for(let e of p)if(!l.has(e))try{let r=function(e,r){let i,l,o=e.startsWith("@")?e.indexOf("/",e.indexOf("/")+1):e.indexOf("/");if(-1===o)return null;let f=e.slice(0,o),d=`./${e.slice(o+1)}`,c=r?g(r):h,u=b(c,f)??(r?b(h,f):null);if(u&&(i=u.pkgDir,l=u.pkgJson),!i||!l)return null;if(l.exports){let t=l.exports[d];if(t){let e="string"==typeof t?void 0:E(t);if(e){let t=s(i,e);if(m(t))return{entryFile:t,pkgDir:i}}let r="string"==typeof t?t:v(t);if(r){let t=s(i,r).replace(/\.([cm]?)js$/,".d.$1ts");if(m(t))return{entryFile:t,pkgDir:i}}}}let a=d.slice(2),p=s(i,a);if(m(p))return{entryFile:p,pkgDir:i};for(let t of[".d.ts",".d.mts",".d.cts"]){let e=p+t;if(m(e))return{entryFile:e,pkgDir:i}}for(let t of["index.d.ts","index.d.mts","index.d.cts"]){let e=s(p,t);if(m(e))return{entryFile:e,pkgDir:i}}let y=W(f);for(let e of r?[c,h]:[h])try{let r=e.resolve(`${y}/package.json`),i=JSON.parse(t(r,"utf-8")),l=n(r);if(i.exports){let t=i.exports[d];if(t){let e="string"==typeof t?void 0:E(t);if(e){let t=s(l,e);if(m(t))return{entryFile:t,pkgDir:l}}}}let o=s(l,a);if(m(o))return{entryFile:o,pkgDir:l};for(let t of[".d.ts",".d.mts",".d.cts"]){let e=o+t;if(m(e))return{entryFile:e,pkgDir:l}}}catch{}return null}(e,i);if(!r)continue;l.add(e);let f=e.startsWith("@")?e.split("/").slice(0,2).join("/"):e.split("/")[0],{blocks:d}=M(f,r.pkgDir,r.entryFile);for(let t of d)o.push(t)}catch{}for(let t of u)o.push(t)}function N(t){let e=d(t),r=u.cwd();if(/\.d\.[cm]?ts$/.test(e)&&m(e))return{entryFile:e,pkgDir:r};let i=e.match(/^(.*)\.[cm]?[tj]sx?$/);if(i){let t=i[1];for(let e of[".d.ts",".d.mts",".d.cts"]){let i=t+e;if(m(i))return{entryFile:i,pkgDir:r}}return/\.[cm]?tsx?$/.test(e)&&m(e)?{entryFile:e,pkgDir:r}:null}for(let t of[".d.ts",".d.mts",".d.cts"])if(m(e+t))return{entryFile:e+t,pkgDir:r};for(let t of["index.d.ts","index.d.mts","index.d.cts"]){let i=s(e,t);if(m(i))return{entryFile:i,pkgDir:r}}throw Error(`Cannot find local file: "${t}"`)}export async function bundleDts(t,e){let r=Array.isArray(t)?t:[t],i=new Set,n=[],s=[];for(let t of r)if("string"==typeof t)if(l(t)||t.startsWith("./")||t.startsWith("../")){let r=d(t);if(i.has(r))continue;i.add(r);let l=N(t);if(!l)continue;let{entryFile:s,pkgDir:o}=l;A("",s,o,i,n,e)}else{if(i.has(t))continue;i.add(t);let{entryFile:e,pkgDir:r}=J(t);A(t,e,r,i,n)}else for(let[r,l]of Object.entries(t)){let t=d(l);if(i.has(t))continue;i.add(t);let o=N(l);if(!o)continue;let{entryFile:f,pkgDir:c}=o,u=C(d(f),c),a=e?`${e}:${u}`:u;s.push({name:r,moduleId:a}),A("",f,c,i,n,e)}for(let{name:t,moduleId:e}of s)n.push({id:t,content:`declare module "${t}" {
6
- export * from "${e}";
7
- }`});let o=new Set,f=[];for(let t of n)o.has(t.id)||(o.add(t.id),f.push(t.content));return f.join("\n\n")}
1
+ import{readdirSync as e,readFileSync as t,statSync as i}from"node:fs";import{createRequire as r,isBuiltin as n}from"node:module";import{dirname as l,isAbsolute as s,join as a,posix as o,relative as d,resolve as f,sep as p}from"node:path";import u from"node:process";import c from"typescript";let m=new Map;function y(e){if(m.has(e))return m.get(e);try{let t=i(e).isFile();return m.set(e,t),t}catch{return m.set(e,!1),!1}}let g=new Map;function x(e){return g.has(e)||g.set(e,r(a(e,"__x__.js"))),g.get(e)}let h=r(a(u.cwd(),"__x__.js")),S=null;function N(){if(S)return S;let e=u.cwd(),t=c.findConfigFile(e,c.sys.fileExists,"tsconfig.json");if(t){let{config:e,error:i}=c.readConfigFile(t,c.sys.readFile);if(!i){let{options:i}=c.parseJsonConfigFileContent(e,c.sys,l(t));return S={...i,declaration:!0,emitDeclarationOnly:!0,noEmit:!1,skipLibCheck:!0,noEmitOnError:!1,declarationMap:!1}}}return S={declaration:!0,emitDeclarationOnly:!0,noEmit:!1,skipLibCheck:!0,noEmitOnError:!1,declarationMap:!1,target:c.ScriptTarget.ESNext,module:c.ModuleKind.ESNext,moduleResolution:c.ModuleResolutionKind.Bundler,jsx:c.JsxEmit.ReactJSX}}let D=null;function T(){return D||(D=c.createCompilerHost(N()))}function $(e,t){let i=N(),r=T();return c.resolveModuleName(e,t,i,r)}function k(e,t){if(e.startsWith(".")||s(e))return!1;let{resolvedModule:i}=$(e,t);return!!i&&!i.isExternalLibraryImport}let F=null;function L(e){return e.startsWith("@types/")?e:e.startsWith("@")?`@types/${e.slice(1).replace("/","__")}`:`@types/${e}`}function v(e){if(e){if("string"==typeof e)return e;for(let t of["import","require","default","node","browser"]){let i=e[t];if("string"==typeof i)return i;if(i&&"object"==typeof i){let e=v(i);if(e)return e}}}}function E(e,t=!1){if(e){if("string"==typeof e)return t?e:void 0;for(let t of Object.keys(e).filter(e=>"types"===e||e.startsWith("types@")).sort((e,t)=>"types"===e?-1:+("types"===t))){let i=E(e[t],!0);if(i)return i}for(let i of["import","require","default","node"]){let r=e[i];if("string"==typeof r){if(t)return r;continue}if(r&&"object"==typeof r){let e=E(r,t);if(e)return e}}}}function C(r,n){try{let e=r.resolve(`${n}/package.json`),i=JSON.parse(t(e,"utf-8"));return{pkgDir:l(e),pkgJson:i}}catch{try{let e=l(r.resolve(n));for(;e!==l(e);){let i=a(e,"package.json");if(y(i)){let r=JSON.parse(t(i,"utf-8")),l=r.name;if(!l||l===n)return{pkgDir:e,pkgJson:r}}e=l(e)}}catch{}let s=function(r){let n=a(u.cwd(),"node_modules",".pnpm");try{if(!i(n).isDirectory())return null}catch{return null}let l=r.startsWith("@")?r.replace("@","").replace("/","+"):r;try{let i=e(n,{withFileTypes:!0}),s=`${l}@`;for(let e of i)if(e.isDirectory()&&e.name.startsWith(s)){let i=a(n,e.name,"node_modules",r),l=a(i,"package.json");if(y(l)){let e=JSON.parse(t(l,"utf-8"));return{pkgDir:i,pkgJson:e}}}}catch{}return null}(n);if(s)return s;return null}}function b(e,i){let r,n,s=i?x(i):h,o=C(s,e)??(i?C(h,e):null);if(o&&(r=o.pkgDir,n=o.pkgJson),r&&n){let e=n.types??n.typings;if(e){let t=a(r,e);if(y(t))return{entryFile:t,pkgDir:r}}let t=a(r,"index.d.ts");if(y(t))return{entryFile:t,pkgDir:r};if(n.exports)for(let e of[".","./index"]){let t=n.exports[e];if(!t)continue;let i="string"==typeof t?void 0:E(t);if(i){let e=a(r,i);if(y(e))return{entryFile:e,pkgDir:r}}let l="string"==typeof t?t:v(t);if(l){let e=`${a(r,l)}.d.ts`,t=a(r,l).replace(/\.([cm]?)js$/,".d.$1ts");if(y(e))return{entryFile:e,pkgDir:r};if(y(t))return{entryFile:t,pkgDir:r}}}if(n.typesVersions){let e=n.typesVersions["*"];if(e){let t=e["*"]??e.index;if(Array.isArray(t)&&t.length>0){let e=a(r,t[0].replace("*","index"));if(y(e))return{entryFile:e,pkgDir:r}}}}}let d=L(e);for(let e of i?[s,h]:[h])try{let i=e.resolve(`${d}/package.json`),r=JSON.parse(t(i,"utf-8")),n=l(i),s=r.types??r.typings??"index.d.ts",o=a(n,s);if(y(o))return{entryFile:o,pkgDir:n}}catch{}return null}function j(e,i){let r,n,s=e.startsWith("@")?e.indexOf("/",e.indexOf("/")+1):e.indexOf("/");if(-1===s)return null;let o=e.slice(0,s),d=`./${e.slice(s+1)}`,f=i?x(i):h,p=C(f,o)??(i?C(h,o):null);if(p&&(r=p.pkgDir,n=p.pkgJson),!r||!n)return null;if(n.exports){let e=n.exports[d];if(e){let t="string"==typeof e?void 0:E(e);if(t){let e=a(r,t);if(y(e))return{entryFile:e,pkgDir:r}}let i="string"==typeof e?e:v(e);if(i){let e=a(r,i).replace(/\.([cm]?)js$/,".d.$1ts");if(y(e))return{entryFile:e,pkgDir:r}}}}let u=d.slice(2),c=a(r,u);if(y(c))return{entryFile:c,pkgDir:r};for(let e of[".d.ts",".d.mts",".d.cts"]){let t=c+e;if(y(t))return{entryFile:t,pkgDir:r}}for(let e of["index.d.ts","index.d.mts","index.d.cts"]){let t=a(c,e);if(y(t))return{entryFile:t,pkgDir:r}}let m=L(o);for(let e of i?[f,h]:[h])try{let i=e.resolve(`${m}/package.json`),r=JSON.parse(t(i,"utf-8")),n=l(i);if(r.exports){let e=r.exports[d];if(e){let t="string"==typeof e?void 0:E(e);if(t){let e=a(n,t);if(y(e))return{entryFile:e,pkgDir:n}}}}let s=a(n,u);if(y(s))return{entryFile:s,pkgDir:n};for(let e of[".d.ts",".d.mts",".d.cts"]){let t=s+e;if(y(t))return{entryFile:t,pkgDir:n}}}catch{}return null}function w(e,t){let i=a(l(t),e),r=i.lastIndexOf(".");if(r>Math.max(i.lastIndexOf("/"),i.lastIndexOf("\\"))){let e=i.slice(r),t=i.slice(0,r);if((".d.ts"===e||".d.mts"===e||".d.cts"===e)&&y(i))return i;if(".js"===e)for(let e of[".d.ts",".d.mts",".d.cts"]){let i=t+e;if(y(i))return i}else if(".mjs"===e)for(let e of[".d.mts",".d.ts",".d.cts"]){let i=t+e;if(y(i))return i}else if(".cjs"===e)for(let e of[".d.cts",".d.ts",".d.mts"]){let i=t+e;if(y(i))return i}if((".ts"===e||".tsx"===e||".mts"===e||".cts"===e)&&y(i))return i}for(let e of[".d.ts",".d.mts",".d.cts"])if(y(i+e))return i+e;for(let e of[".ts",".tsx",".mts",".cts"])if(y(i+e))return i+e;for(let e of["index.d.ts","index.d.mts","index.d.cts"]){let t=a(i,e);if(y(t))return t}for(let e of["index.ts","index.tsx","index.mts","index.cts"]){let t=a(i,e);if(y(t))return t}return null}function M(e,t){return d(t,e).split(p).join(o.sep).replace(/\.d\.[cm]?ts$/,"").replace(/\.[cm]?tsx?$/,"")}let I=/\.(css|less|sass|scss|styl|stylus|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|otf|mp3|mp4|webp|webm)$/i;function W(e,t){let i=c.factory;if(c.isImportTypeNode(e)){let r=e.argument;if(c.isLiteralTypeNode(r)&&c.isStringLiteral(r.literal)){let n=t(r.literal.text);if(n&&n!==r.literal.text)return i.updateImportTypeNode(e,i.createLiteralTypeNode(i.createStringLiteral(n)),e.attributes,e.qualifier,e.typeArguments,e.isTypeOf)}return e}if(c.isTypeReferenceNode(e)){let r=K(e.typeName,t),n=!1,l=e.typeArguments?.map(e=>{let i=W(e,t);return i!==e&&(n=!0),i});return r!==e.typeName||n?l?i.updateTypeReferenceNode(e,r,i.createNodeArray(l)):i.updateTypeReferenceNode(e,r,void 0):e}if(c.isArrayTypeNode(e)){let r=W(e.elementType,t);return r===e.elementType?e:i.updateArrayTypeNode(e,r)}if(c.isTupleTypeNode(e)){let r=!1,n=e.elements.map(e=>{if(c.isNamedTupleMember(e)){let n=W(e.type,t);return n!==e.type?(r=!0,i.updateNamedTupleMember(e,e.dotDotDotToken,e.name,e.questionToken,n)):e}let n=W(e,t);return n!==e&&(r=!0),n});return r?i.updateTupleTypeNode(e,i.createNodeArray(n)):e}if(c.isUnionTypeNode(e)){let r=!1,n=e.types.map(e=>{let i=W(e,t);return i!==e&&(r=!0),i});return r?i.updateUnionTypeNode(e,i.createNodeArray(n)):e}if(c.isIntersectionTypeNode(e)){let r=!1,n=e.types.map(e=>{let i=W(e,t);return i!==e&&(r=!0),i});return r?i.updateIntersectionTypeNode(e,i.createNodeArray(n)):e}if(c.isParenthesizedTypeNode(e)){let r=W(e.type,t);return r===e.type?e:i.updateParenthesizedType(e,r)}if(c.isTypeOperatorNode(e)){let r=W(e.type,t);return r===e.type?e:i.updateTypeOperatorNode(e,r)}if(c.isIndexedAccessTypeNode(e)){let r=W(e.objectType,t),n=W(e.indexType,t);return r===e.objectType&&n===e.indexType?e:i.updateIndexedAccessTypeNode(e,r,n)}if(c.isMappedTypeNode(e)){let r=e.type?W(e.type,t):void 0;return r===e.type?e:i.updateMappedTypeNode(e,e.readonlyToken,e.typeParameter,e.nameType,e.questionToken,r,e.members)}if(c.isConditionalTypeNode(e)){let r=W(e.checkType,t),n=W(e.extendsType,t),l=W(e.trueType,t),s=W(e.falseType,t);return r===e.checkType&&n===e.extendsType&&l===e.trueType&&s===e.falseType?e:i.updateConditionalTypeNode(e,r,n,l,s)}if(c.isInferTypeNode(e))return e;if(c.isTypeLiteralNode(e)){let r=!1,n=e.members.map(e=>{let i=function(e,t){let i=c.factory;if(c.isPropertySignature(e)){let r=e.type?W(e.type,t):void 0;return r===e.type?e:i.updatePropertySignature(e,e.modifiers,e.name,e.questionToken,r)}if(c.isMethodSignature(e)){let r=e.type?W(e.type,t):void 0,n=!1,l=e.parameters.map(e=>{let i=A(e,t);return i!==e&&(n=!0),i});return r!==e.type||n?i.updateMethodSignature(e,e.modifiers,e.name,e.questionToken,e.typeParameters,i.createNodeArray(l),r):e}if(c.isCallSignatureDeclaration(e)){let r=e.type?W(e.type,t):void 0,n=!1,l=e.parameters.map(e=>{let i=A(e,t);return i!==e&&(n=!0),i});return r!==e.type||n?i.updateCallSignature(e,e.typeParameters,i.createNodeArray(l),r):e}if(c.isConstructSignatureDeclaration(e)){let r=e.type?W(e.type,t):void 0,n=!1,l=e.parameters.map(e=>{let i=A(e,t);return i!==e&&(n=!0),i});return r!==e.type||n?i.updateConstructSignature(e,e.typeParameters,i.createNodeArray(l),r):e}if(c.isIndexSignatureDeclaration(e)){if(!e.type)return e;let r=W(e.type,t);return r===e.type?e:i.updateIndexSignature(e,e.modifiers,e.parameters,r)}return e}(e,t);return i!==e&&(r=!0),i});return r?i.updateTypeLiteralNode(e,i.createNodeArray(n)):e}if(c.isTypeQueryNode(e)){let r=K(e.exprName,t),n=!1,l=e.typeArguments?.map(e=>{let i=W(e,t);return i!==e&&(n=!0),i});return r!==e.exprName||n?l?i.updateTypeQueryNode(e,r,l):i.updateTypeQueryNode(e,r):e}return e}function K(e,t){if(c.isIdentifier(e))return e;let i=K(e.left,t);return i===e.left?e:c.factory.updateQualifiedName(e,i,e.right)}function A(e,t){let i=c.factory,r=e.type?W(e.type,t):void 0;return r!==e.type?i.updateParameterDeclaration(e,e.modifiers,e.dotDotDotToken,e.name,e.questionToken,r,e.initializer):e}function B(e,t){let i=c.factory,r=c.canHaveModifiers(e)?c.getModifiers(e):void 0;if(!r?.some(e=>e.kind===c.SyntaxKind.DeclareKeyword))return e;let n=r?.filter(e=>e.kind!==c.SyntaxKind.DeclareKeyword)??[],l=i.createNodeArray(n);if(c.isFunctionDeclaration(e)){let r=e.type&&t?W(e.type,t):e.type;return i.updateFunctionDeclaration(e,l,e.asteriskToken,e.name,e.typeParameters,e.parameters,r,e.body)}if(c.isClassDeclaration(e))return i.updateClassDeclaration(e,l,e.name,e.typeParameters,e.heritageClauses,e.members);if(c.isInterfaceDeclaration(e))return i.updateInterfaceDeclaration(e,l,e.name,e.typeParameters,e.heritageClauses,e.members);if(c.isTypeAliasDeclaration(e)){let r=e.type&&t?W(e.type,t):e.type;return i.updateTypeAliasDeclaration(e,l,e.name,e.typeParameters,r)}return c.isEnumDeclaration(e)?i.updateEnumDeclaration(e,l,e.name,e.members):c.isModuleDeclaration(e)?i.updateModuleDeclaration(e,l,e.name,e.body):c.isVariableStatement(e)?i.updateVariableStatement(e,l,e.declarationList):(c.isNamespaceExportDeclaration(e),e)}let O=new Map;function P(e){let t=f(e);if(O.has(t))return O.get(t);let i=function(e){let t=f(e);if(F?.getSourceFile(t))return F;let i=N(),r=F?[...F.getRootFileNames(),t]:[t];return F=c.createProgram(r,i,T(),F??void 0)}(t),r=i.getSourceFile(t);if(!r)return O.set(t,""),"";let n="";return i.emit(r,(e,t)=>{/\.d\.[cm]?ts$/.test(e)&&(n=t)},void 0,!0),n&&(n=function(e){let t=c.createSourceFile("temp.d.ts",e,c.ScriptTarget.Latest,!0,c.ScriptKind.TS),i=c.factory,r=[];for(let e of t.statements){if(c.isImportDeclaration(e)&&!e.importClause){let t=e.moduleSpecifier;if(c.isStringLiteral(t)&&I.test(t.text))continue}r.push(e)}return c.createPrinter({newLine:c.NewLineKind.LineFeed}).printNode(c.EmitHint.Unspecified,i.updateSourceFile(t,i.createNodeArray(r)),t)}(n)),O.set(t,n),n}function J(){return c.createPrinter({newLine:c.NewLineKind.LineFeed,removeComments:!1,omitTrailingSemicolon:!1})}function _(e,t){let i=c.factory,r=i.createModuleBlock(t);return i.createModuleDeclaration([i.createModifier(c.SyntaxKind.DeclareKeyword)],i.createStringLiteral(e),r,c.NodeFlags.None)}function H(e,t,i){let r=c.factory,n=[];for(let[e,i]of t){let t="default"===i.originalName,l=r.createNamedExports([r.createExportSpecifier(!1,t?r.createIdentifier("default"):i.originalName?r.createIdentifier(i.originalName):void 0,r.createIdentifier(e))]),s=r.createExportDeclaration(void 0,!1,l,r.createStringLiteral(i.sourceModule));n.push(s)}let l=i?`${i}:${e}`:e,s=_(l,n),a=J(),o=c.createSourceFile("temp.d.ts","",c.ScriptTarget.Latest,!0,c.ScriptKind.TS);return{id:l,content:a.printNode(c.EmitHint.Unspecified,s,o)}}function U(e,i,r,l,a,o,d,p,u){let m=new Set,g=[],x=new Set,h=new Set,S=new Map,N=(e,t)=>{let i=`${e}::${t}`;return S.has(i)||S.set(i,w(e,t)),S.get(i)};return!function S(D){var T,F,L;let v,E,C,b=f(D);if(m.has(b))return;m.add(b),u&&(T=u,T.total++);let j=/\.[cm]?tsx?$/.test(b)&&!/\.d\.[cm]?ts$/.test(b);if(/\.[cm]?js$/.test(b)){let e=b.replace(/\.[cm]?js$/,e=>".mjs"===e?".d.mts":".cjs"===e?".d.cts":".d.ts");y(e)&&S(e),m.delete(b);return}try{if(j){if(!(v=P(b)))return void m.delete(b)}else v=t(D,"utf-8").replace(/^#![^\n]*\n?/,"")}catch{m.delete(b);return}let w=c.createSourceFile(b,v,c.ScriptTarget.Latest,!0,/\.[cm]?tsx?$/.test(b)&&!/\.d\.[cm]?ts$/.test(b)?c.ScriptKind.TSX:c.ScriptKind.TS),W=f(r),K=t=>{if(void 0!==a&&t===W)return a.includes(":")||p?.has(a)?a:l?`${l}:${a}`:a;let r=M(t,i);if(r.endsWith("/index")?r=r.slice(0,-6):"index"===r&&(r=""),e){let t=e.split("/").slice(1).join("/").replace(/\.[cm]?js$/,"");if(t&&r.startsWith(`${t}/`)){let i=r.slice(t.length+1),n=i?`${e}/${i}`:e,s=n.replace(/\.[cm]?js$/,""),a=p?.has(s),o=l||d;return o&&!a?`${o}:${n}`:n}if(t&&r===t){let t=e.replace(/\.[cm]?js$/,""),i=p?.has(t),r=l||d;return r&&!i?`${r}:${t}`:t}let i=e.split("/").slice(0,e.startsWith("@")?2:1).join("/"),n=r?`${i}/${r}`:i,s=p?.has(n),a=l||d;return a&&!s?`${a}:${n}`:n}let n=l||d;return n&&!p?.has(r)?`${n}:${r}`:r},A=K(b),O={pkgName:e,pkgDir:i,entryFile:r,mainModuleId:a,scope:l,resolver:N,externalDeps:x,externalSubpaths:h,currentModuleId:A,isEntry:o,depScope:d,entryPkgs:p};for(let e of(E=w.fileName,C=e=>{if(c.isImportDeclaration(e)){let t=e.moduleSpecifier;if(c.isStringLiteral(t)){let i=t.text;if(!I.test(i)){if(!e.importClause)return;if(!i.startsWith(".")&&!s(i)&&!n(i)&&!k(i,E)){let t=i.startsWith("@")?i.split("/").slice(0,2).join("/"):i.split("/")[0];if(O.externalDeps.add(t),i!==t&&O.externalSubpaths.add(i),O.usedBindings&&e.importClause){let t=O.usedBindings.get(i)||new Set,r=e.importClause;if(r.name&&t.add("default"),r.namedBindings&&c.isNamedImports(r.namedBindings))for(let e of r.namedBindings.elements){let i=e.propertyName?.text||e.name.text;t.add(i)}r.namedBindings&&c.isNamespaceImport(r.namedBindings)&&t.add("*"),O.usedBindings.set(i,t)}}}}}if(c.isExportDeclaration(e)&&e.moduleSpecifier){let t=e.moduleSpecifier;if(c.isStringLiteral(t)){let i=t.text;if(!I.test(i)&&!i.startsWith(".")&&!s(i)&&!n(i)&&!k(i,E)){let t=i.startsWith("@")?i.split("/").slice(0,2).join("/"):i.split("/")[0];if(O.externalDeps.add(t),i!==t&&O.externalSubpaths.add(i),O.usedBindings){let t=O.usedBindings.get(i)||new Set;if(e.exportClause&&c.isNamedExports(e.exportClause))for(let i of e.exportClause.elements){let e=i.propertyName?.text||i.name.text;t.add(e)}e.exportClause||t.add("*"),O.usedBindings.set(i,t)}}}}if(c.isCallExpression(e)&&c.isIdentifier(e.expression)&&"import"===e.expression.text&&e.arguments.length>0){let t=e.arguments[0];if(c.isStringLiteral(t)){let e=t.text;if(!I.test(e)&&!e.startsWith(".")&&!s(e)&&!n(e)&&!k(e,E)){let t=e.startsWith("@")?e.split("/").slice(0,2).join("/"):e.split("/")[0];O.externalDeps.add(t),e!==t&&O.externalSubpaths.add(e)}}}if(c.isImportTypeNode(e)&&c.isLiteralTypeNode(e.argument)&&c.isStringLiteral(e.argument.literal)){let t=e.argument.literal.text;if(!I.test(t)&&!t.startsWith(".")&&!s(t)&&!n(t)&&!k(t,E)){let e=t.startsWith("@")?t.split("/").slice(0,2).join("/"):t.split("/")[0];O.externalDeps.add(e),t!==e&&O.externalSubpaths.add(t)}}let t=c.getLeadingCommentRanges(w.text,e.getFullStart());if(t)for(let e of t){let t=w.text.slice(e.pos,e.end).match(/<reference\s+types="([^"]+)"/);t&&!n(t[1])&&O.externalDeps.add(t[1])}c.forEachChild(e,C)},c.forEachChild(w,C),w.statements))if(c.isImportDeclaration(e)||c.isExportDeclaration(e)){let t=(c.isImportDeclaration(e),e.moduleSpecifier);if(t&&c.isStringLiteral(t)){let e=t.text;if(!I.test(e)){if(e.startsWith(".")){let t=N(e,b);t&&S(t)}else if(k(e,b)){let{resolvedModule:t}=$(e,b);if(t&&!t.isExternalLibraryImport){let e=f(t.resolvedFileName);e&&S(e)}}}}}let H=e=>{if(c.isImportTypeNode(e)&&c.isLiteralTypeNode(e.argument)&&c.isStringLiteral(e.argument.literal)){let t=e.argument.literal.text;if(!I.test(t)){if(t.startsWith(".")){let e=N(t,b);e&&S(e)}else if(k(t,b)){let{resolvedModule:e}=$(t,b);if(e&&!e.isExternalLibraryImport){let t=f(e.resolvedFileName);t&&S(t)}}}}c.forEachChild(e,H)};for(let e of(c.forEachChild(w,H),w.getFullText().slice(0,w.getFullStart()).matchAll(/<reference\s+path="([^"]+)"/g))){let t=N(e[1],b);t&&S(t)}let U=function(e,t,i){let r=[],l=c.factory,s=e=>(function(e,t,i){if(e.startsWith(".")){let r=t.resolver(e,i);if(!r)return null;let n=f(t.entryFile),l=t.mainModuleId;return(e=>{if(void 0!==l&&e===n)return l.includes(":")?l:t.scope?`${t.scope}:${l}`:l;let i=M(e,t.pkgDir);if(i.endsWith("/index")?i=i.slice(0,-6):"index"===i&&(i=""),t.pkgName){let e=t.pkgName.split("/").slice(1).join("/").replace(/\.[cm]?js$/,""),r=t.scope||t.depScope;if(e&&i.startsWith(`${e}/`)){let n=i.slice(e.length+1),l=n?`${t.pkgName}/${n}`:t.pkgName,s=l.replace(/\.[cm]?js$/,""),a=t.entryPkgs?.has(s);return r&&!a?`${r}:${l}`:l}if(e&&i===e){let e=t.pkgName.replace(/\.[cm]?js$/,""),i=t.entryPkgs?.has(e);return r&&!i?`${r}:${e}`:e}let n=t.pkgName.split("/").slice(0,t.pkgName.startsWith("@")?2:1).join("/"),l=i?`${n}/${i}`:n,s=t.entryPkgs?.has(l);return r&&!s?`${r}:${l}`:l}let r=t.scope||t.depScope;return r?`${r}:${i}`:i})(r)}if(k(e,i)){let{resolvedModule:r}=$(e,i);if(r&&!r.isExternalLibraryImport){let e=f(r.resolvedFileName);if(e){let i=M(e,t.pkgDir);i.endsWith("/index")?i=i.slice(0,-6):"index"===i&&(i="");let r=t.scope||t.depScope;return r?`${r}:${i}`:i}}}if(!n(e)){let i=e.startsWith("@")?e.split("/").slice(0,2).join("/"):e.split("/")[0],r=t.entryPkgs?.has(e),n=t.externalDeps.has(i)||t.externalSubpaths.has(e),l=t.scope||t.isEntry;if(r)return e;if(n&&l){let i=t.scope||t.depScope||"s";return`${i}:${e}`}}return e})(e,t,i),a=e=>{if(c.isImportDeclaration(e)){let i=e.moduleSpecifier;if(c.isStringLiteral(i)){let r=i.text;if(I.test(r)||!e.importClause||!(e.importClause.name||e.importClause.namedBindings))return null;let n=s(r);if(null===n||t.currentModuleId&&n===t.currentModuleId)return null;if(n!==r)return l.updateImportDeclaration(e,e.modifiers,e.importClause,l.createStringLiteral(n),e.attributes??e.assertClause)}return e}if(c.isExportDeclaration(e)){if(e.moduleSpecifier&&c.isStringLiteral(e.moduleSpecifier)){let i=e.moduleSpecifier.text;if(I.test(i))return null;let r=s(i);if(null===r||t.currentModuleId&&r===t.currentModuleId)return null;if(r!==i)return l.updateExportDeclaration(e,e.modifiers,e.isTypeOnly,e.exportClause,l.createStringLiteral(r),e.attributes??e.assertClause)}return e}if(c.isModuleDeclaration(e)&&e.name.kind===c.SyntaxKind.StringLiteral||c.isModuleDeclaration(e)&&e.name.kind===c.SyntaxKind.GlobalKeyword){if(e.body&&c.isModuleBlock(e.body)){let t=[];for(let i of e.body.statements){let e=B(i,s);e&&t.push(e)}return t}return null}return B(e,s)};for(let t of e.statements){let e=a(t);null!==e&&(Array.isArray(e)?r.push(...e):r.push(e))}return r}(w,O,b);if(0===U.length)return;let R=_(A,U),q=J().printNode(c.EmitHint.Unspecified,R,w);if(q=q.replace(/import\s*\(\s*(['"])(\.[^'"]*)\1\s*\)/g,(e,t,i)=>{let r=N(i,b);if(r){let e=K(r);return`import(${t}${e}${t})`}return e}),l||o){let e=l||"s";q=q.replace(/import\s*\(\s*(['"])([^'"]+)\1\s*\)/g,(t,i,r)=>{if(r.includes(":")||r.startsWith("."))return t;let n=r.startsWith("@")?r.split("/").slice(0,2).join("/"):r.split("/")[0];return p?.has(r)?t:x.has(n)||h.has(r)?`import(${i}${e}:${r}${i})`:t})}g.push({id:A,content:q}),u&&(F=u,L=A,F.processed++,F.callback(F.processed,F.total,L))}(r),{blocks:g,externalDeps:x,externalSubpaths:h}}function R(e,i,r){let n=new Map;if(r.has("*"))return n.set("*",{file:i}),n;try{let l=t(i,"utf-8"),s=c.createSourceFile(i,l,c.ScriptTarget.Latest,!0,c.ScriptKind.TS),a=new Map,o=(e,t)=>(a.has(e)||a.set(e,w(e,t)),a.get(e));for(let t of s.statements){if(c.isExportDeclaration(t)&&t.moduleSpecifier&&c.isStringLiteral(t.moduleSpecifier)){let e=t.moduleSpecifier.text;if(t.exportClause&&c.isNamedExports(t.exportClause))for(let l of t.exportClause.elements){let t=l.name.text,s=l.propertyName?.text;if(r.has(t)){let r=o(e,i);r&&n.set(t,{file:r,originalName:s})}}}if(c.isExportDeclaration(t)&&!t.exportClause&&t.moduleSpecifier&&c.isStringLiteral(t.moduleSpecifier)){let l=t.moduleSpecifier.text,s=o(l,i);if(s)for(let[t,i]of R(e,s,r))n.has(t)||n.set(t,i)}if(c.isVariableStatement(t)&&t.modifiers?.some(e=>e.kind===c.SyntaxKind.ExportKeyword)||c.isTypeAliasDeclaration(t)&&t.modifiers?.some(e=>e.kind===c.SyntaxKind.ExportKeyword)||c.isInterfaceDeclaration(t)&&t.modifiers?.some(e=>e.kind===c.SyntaxKind.ExportKeyword)||c.isFunctionDeclaration(t)&&t.modifiers?.some(e=>e.kind===c.SyntaxKind.ExportKeyword)||c.isExportAssignment(t))if(c.isVariableStatement(t))for(let e of t.declarationList.declarations)c.isIdentifier(e.name)&&r.has(e.name.text)&&n.set(e.name.text,{file:i});else c.isTypeAliasDeclaration(t)&&r.has(t.name.text)||c.isInterfaceDeclaration(t)&&r.has(t.name.text)||c.isFunctionDeclaration(t)&&t.name&&r.has(t.name.text)?n.set(t.name.text,{file:i}):c.isExportAssignment(t)&&r.has("default")&&n.set("default",{file:i})}}catch{for(let e of r)n.set(e,{file:i})}return n}function q(e,i,r,l=new Set){let a,o=f(e);if(l.has(o))return;l.add(o);try{a=t(e,"utf-8")}catch{return}if(/\.[cm]?tsx?$/.test(o)&&!/\.d\.[cm]?ts$/.test(o)&&!(a=P(o)))return;let d=c.createSourceFile(o,a,c.ScriptTarget.Latest,!0,c.ScriptKind.TS),p=new Map,u=(e,t)=>(p.has(e)||p.set(e,w(e,t)),p.get(e));for(let e of d.statements){if(!function e(t,i){if(c.isImportTypeNode(t)&&c.isLiteralTypeNode(t.argument)&&c.isStringLiteral(t.argument.literal)){let e=t.argument.literal.text;if(!e.startsWith(".")&&!s(e)&&!n(e)&&!I.test(e)){let t=i.get(e)||new Set;t.add("*"),i.set(e,t)}}c.forEachChild(t,t=>e(t,i))}(e,r),c.isImportDeclaration(e)&&e.moduleSpecifier&&c.isStringLiteral(e.moduleSpecifier)){let t=e.moduleSpecifier.text,a=k(t,o),d=t.startsWith(".");if(!d&&!s(t)&&!n(t)&&!I.test(t)&&!a){let i=r.get(t)||new Set;if(e.importClause&&(e.importClause.name&&i.add("default"),e.importClause.namedBindings))if(c.isNamedImports(e.importClause.namedBindings))for(let t of e.importClause.namedBindings.elements){let e=t.propertyName?.text||t.name.text;i.add(e)}else c.isNamespaceImport(e.importClause.namedBindings)&&i.add("*");r.set(t,i)}if(d){let e=u(t,o);e&&q(e,i,r,l)}else if(a){let{resolvedModule:e}=$(t,o);if(e&&!e.isExternalLibraryImport){let t=f(e.resolvedFileName);t&&q(t,i,r,l)}}}if(c.isExportDeclaration(e)&&e.moduleSpecifier&&c.isStringLiteral(e.moduleSpecifier)){let t=e.moduleSpecifier.text,a=k(t,o),d=t.startsWith(".");if(!d&&!s(t)&&!n(t)&&!I.test(t)&&!a){let i=r.get(t)||new Set;if(e.exportClause&&c.isNamedExports(e.exportClause))for(let t of e.exportClause.elements){let e=t.propertyName?.text||t.name.text;i.add(e)}else e.exportClause||i.add("*");r.set(t,i)}if(d){let e=u(t,o);e&&q(e,i,r,l)}else if(a){let{resolvedModule:e}=$(t,o);if(e&&!e.isExternalLibraryImport){let t=f(e.resolvedFileName);t&&q(t,i,r,l)}}}}}function z(e,t,i,r,n,l,s,a,o,d,p){let u=e||s,{blocks:m,externalDeps:y,externalSubpaths:g}=U(e,i,t,o?void 0:l,u,o,l,d,p);for(let s of(e&&function(e,t,i,r,n,l){if(n===t)return;let s=M(f(i),r),a=n??`${t}/${s}`,o=l?`${l}:${a}`:a,d=l?`${l}:${t}`:t,p=c.factory,u=p.createExportDeclaration(void 0,!1,void 0,p.createStringLiteral(o),void 0),m=p.createModuleBlock([u]),y=p.createModuleDeclaration([p.createModifier(c.SyntaxKind.DeclareKeyword)],p.createStringLiteral(d),m,c.NodeFlags.None),g=J(),x=c.createSourceFile("temp.d.ts","",c.ScriptTarget.Latest,!0,c.ScriptKind.TS),h=g.printNode(c.EmitHint.Unspecified,y,x);e.push({id:d,content:h})}(m,e,t,i,e,o?void 0:l),y))if(!r.has(s))try{let e=b(s,i);if(!e)continue;let{entryFile:t,pkgDir:u}=e;r.add(s);let c=a?.get(s);if(c&&!c.has("*")){let e=R(u,t,c),i=new Set;for(let t of e.values())i.add(t.file);let a=new Map;for(let t of i){let{blocks:i,externalDeps:c,externalSubpaths:m}=U(s,u,t,l,void 0,!1,void 0,d,p);for(let r of i)for(let[i,l]of(n.push(r),e))f(l.file)===f(t)&&a.set(i,{sourceModule:r.id,originalName:l.originalName});for(let e of c)if(!r.has(e)){r.add(e);try{let t=b(e,u);if(!t)continue;let i=X(l,o);z(e,t.entryFile,t.pkgDir,r,n,i,void 0,void 0,!1,d,p)}catch{}}for(let e of m)if(!r.has(e)){r.add(e);try{let t=j(e,u);if(t){let i=e.startsWith("@")?e.split("/").slice(0,2).join("/"):e.split("/")[0],r=X(l,o),{blocks:s}=U(i,t.pkgDir,t.entryFile,r,void 0,!1,void 0,d,p);for(let e of s)n.push(e)}}catch{}}}if(a.size>0){let e=X(l,o),t=H(s,a,e);n.push(t)}}else{let e=X(l,o);z(s,t,u,r,n,e,void 0,a,!1,d,p)}}catch{}for(let e of g)if(!r.has(e))try{let t=j(e,i);if(!t)continue;r.add(e);let s=e.startsWith("@")?e.split("/").slice(0,2).join("/"):e.split("/")[0],u=a?.get(e);if(u&&!u.has("*")){let i=R(t.pkgDir,t.entryFile,u),a=new Set;for(let e of i.values())a.add(e.file);let c=new Map;for(let e of a){let{blocks:a,externalDeps:u,externalSubpaths:m}=U(s,t.pkgDir,e,l,void 0,!1,void 0,d,p);for(let t of a)for(let[r,l]of(n.push(t),i))f(l.file)===f(e)&&c.set(r,{sourceModule:t.id,originalName:l.originalName});for(let e of u)if(!r.has(e)){r.add(e);try{let i=b(e,t.pkgDir);if(!i)continue;let s=X(l,o);z(e,i.entryFile,i.pkgDir,r,n,s,void 0,void 0,!1,d,p)}catch{}}for(let e of m)if(!r.has(e)){r.add(e);try{let i=j(e,t.pkgDir);if(i){let t=e.startsWith("@")?e.split("/").slice(0,2).join("/"):e.split("/")[0],r=X(l,o),{blocks:s}=U(t,i.pkgDir,i.entryFile,r,void 0,!1,void 0,d,p);for(let e of s)n.push(e)}}catch{}}}if(c.size>0){let t=X(l,o),i=H(e,c,t);n.push(i)}}else{let e=X(l,o),{blocks:i}=U(s,t.pkgDir,t.entryFile,e,void 0,!1,void 0,d,p);for(let e of i)n.push(e)}}catch{}for(let e of m)n.push(e)}function V(e){return s(e)||e.startsWith("./")||e.startsWith("../")}function Q(e){let t=f(e),i=u.cwd();if(/\.d\.[cm]?ts$/.test(t)&&y(t))return{entryFile:t,pkgDir:i};let r=t.match(/^(.*)\.[cm]?[tj]sx?$/);if(r){let e=r[1];for(let t of[".d.ts",".d.mts",".d.cts"]){let r=e+t;if(y(r))return{entryFile:r,pkgDir:i}}return/\.[cm]?tsx?$/.test(t)&&y(t)?{entryFile:t,pkgDir:i}:null}for(let e of[".d.ts",".d.mts",".d.cts"])if(y(t+e))return{entryFile:t+e,pkgDir:i};for(let e of["index.d.ts","index.d.mts","index.d.cts"]){let r=a(t,e);if(y(r))return{entryFile:r,pkgDir:i}}throw Error(`Cannot find local file: "${e}"`)}function X(e,t){return e||(t?"s":void 0)}function G(e,t){e.processed++,e.total++,e.callback(e.processed,e.total,t)}export async function bundleDts(e,t,i=!0,r){let n=Array.isArray(e)?e:[e],l=new Set,s=[],a=[],o=new Map,d=new Set,p=new Set,u={processed:0,total:0,callback:r||(()=>{})};for(let e of n)if("string"==typeof e)if(V(e)){let t=Q(e);t&&q(t.entryFile,t.pkgDir,o)}else{d.add(e);let t=e.replace(/\.[cm]?js$/,"");p.add(t);let i=e.startsWith("@")?e.split("/").slice(0,2).join("/"):e.split("/")[0];p.add(i)}else for(let[t,i]of Object.entries(e)){let e=Q(i);if(e&&q(e.entryFile,e.pkgDir,o),t&&!t.startsWith(".")){let e=t.startsWith("@")?t.split("/").slice(0,2).join("/"):t.split("/")[0];p.add(e)}}for(let e of d){let t=o.get(e)||new Set;t.add("*"),o.set(e,t)}for(let e of(G(u,"Collecting bindings..."),n))if("string"==typeof e)if(V(e)){let i=f(e);if(l.has(i))continue;l.add(i);let r=Q(e);if(!r)continue;let{entryFile:n,pkgDir:a}=r;z("",n,a,l,s,t,void 0,o,!1,p,u)}else{if(l.has(e))continue;l.add(e);let i=j(e)??b(e);if(!i)continue;let{entryFile:r,pkgDir:n}=i;z(e,r,n,l,s,t,void 0,o,!0,p,u)}else for(let[i,r]of Object.entries(e)){let e=f(r);if(l.has(e))continue;l.add(e);let n=Q(r);if(!n)continue;let{entryFile:d,pkgDir:c}=n,m=M(f(d),c),y=t?`${t}:${m}`:m;a.push({name:i,moduleId:y}),z("",d,c,l,s,t,y,o,!1,p,u)}let m=c.factory,y=J(),g=c.createSourceFile("temp.d.ts","",c.ScriptTarget.Latest,!0,c.ScriptKind.TS);for(let{name:e,moduleId:t}of a){let i=s.find(e=>e.id===t);if(i){let r=i.content.replace(RegExp(`declare module ["']${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}["']`),`declare module "${e}"`),n=s.findIndex(e=>e.id===t);-1!==n&&s.splice(n,1),s.push({id:e,content:r})}else{let i=m.createExportDeclaration(void 0,!1,void 0,m.createStringLiteral(t),void 0),r=m.createModuleBlock([i]),n=m.createModuleDeclaration([m.createModifier(c.SyntaxKind.DeclareKeyword)],m.createStringLiteral(e),r,c.NodeFlags.None),l=y.printNode(c.EmitHint.Unspecified,n,g);s.push({id:e,content:l})}}let x=new Set,h=[];for(let e of(G(u,"Deduplicating modules..."),s))x.has(e.id)||(x.add(e.id),h.push(e.content));let S=h.join("\n\n");G(u,"Inlining export * from...");let N=function(e){let t=c.createSourceFile("bundle.d.ts",e,c.ScriptTarget.Latest,!0,c.ScriptKind.TS),i=c.createPrinter({newLine:c.NewLineKind.LineFeed,removeComments:!1,omitTrailingSemicolon:!1}),r=new Map;for(let e of t.statements)if(c.isModuleDeclaration(e)&&c.isStringLiteral(e.name)){let t=e.name.text;e.body&&c.isModuleBlock(e.body)&&r.set(t,Array.from(e.body.statements))}let n=[];for(let e of t.statements)if(c.isModuleDeclaration(e)&&c.isStringLiteral(e.name)){let l=e.name.text,s=r.get(l);if(!s){n.push(i.printNode(c.EmitHint.Unspecified,e,t));continue}let a=[];for(let e of s)if(c.isExportDeclaration(e)&&!e.exportClause&&e.moduleSpecifier&&c.isStringLiteral(e.moduleSpecifier)){let t=e.moduleSpecifier.text;if(function e(t,i){if(i.has(t))return!1;i.add(t);let n=r.get(t);if(!n)return!1;for(let t of n){if(c.isExportAssignment(t))return!0;if(c.isExportDeclaration(t)&&t.exportClause&&c.isNamedExports(t.exportClause)){for(let e of t.exportClause.elements)if("default"===(c.isIdentifier(e.name)?e.name.text:""))return!0}if(c.isExportDeclaration(t)&&!t.exportClause&&t.moduleSpecifier&&c.isStringLiteral(t.moduleSpecifier)&&e(t.moduleSpecifier.text,i))return!0}return!1}(t,new Set)){let e=c.factory.createExportDeclaration(void 0,!1,c.factory.createNamedExports([c.factory.createExportSpecifier(!1,"default","default")]),c.factory.createStringLiteral(t),void 0);a.push(e)}}if(0===a.length){n.push(i.printNode(c.EmitHint.Unspecified,e,t));continue}let o=[...s,...a],d=c.factory.createModuleBlock(o),f=c.factory.updateModuleDeclaration(e,e.modifiers,e.name,d);n.push(i.printNode(c.EmitHint.Unspecified,f,t))}return n.join("\n")}(S);G(u,i?"Minifying...":"Finalizing...");let D=i?function(e){let t=c.createSourceFile("bundle.d.ts",e,c.ScriptTarget.Latest,!0,c.ScriptKind.TS),i=c.createPrinter({newLine:c.NewLineKind.LineFeed,removeComments:!1,omitTrailingSemicolon:!1}),r=[];for(let e of t.statements)if(c.isModuleDeclaration(e)){let n=function(e){let t=[],i=0,r=e.length,n=!1;for(;i<r;){let l=e[i];if('"'===l||"'"===l||"`"===l){for(t.push(l),i++;i<r;){let n=e[i];if("\\"===n&&i+1<r){t.push(n,e[i+1]),i+=2;continue}if(t.push(n),i++,n===l)break}n=!1;continue}if("/"===l&&i+1<r&&"/"===e[i+1]){for(i+=2;i<r&&"\n"!==e[i];)i++;continue}if("/"===l&&i+2<r&&"*"===e[i+1]&&"*"===e[i+2]){let l=i;for(i+=3;i+1<r&&("*"!==e[i]||"/"!==e[i+1]);)i++;let s=i+2;i=s;let a=function(e){let t=e.slice(3,-2).split("\n").map(e=>{let t=e.trim();return t.startsWith("*")?t.slice(1).trim():t}),i=t.findIndex(e=>e.startsWith("@example")),r=t.some(e=>/^\|[\s:-|]+\|$/.test(e.trim()));return -1!==i||r?t.filter((e,t,i)=>""!==e||0!==t&&""!==i[t-1]).join("\n").trim():t.join(" ").replace(/\s+/g," ").trim()}(e.slice(l,s));if(a)if(a.includes("\n")){for(let e of(t.push("\n/**\n"),a.split("\n")))t.push(" *",e?` ${e}`:"","\n");t.push(" */")}else t.push("\n/** ",a," */");n=!1;continue}if(" "===l||" "===l||"\n"===l||"\r"===l){n||(t.push(" "),n=!0),i++;continue}t.push(l),n=!1,i++}return t.join("").trim()}(i.printNode(c.EmitHint.Unspecified,e,t));r.push(n)}return r.join("\n")}(N):N;return G(u,"Done"),D}
package/lib/config.mjs CHANGED
@@ -1 +1 @@
1
- import{sep as e}from"node:path";import o from"node:process";import{merge as t}from"webpack-merge";import{CUSTOMCONFIG as n}from"./commom/custom-config.mjs";import s from"./commom/paths.mjs";import{join as a}from"./commom/posix.mjs";import i from"./commom/setup-env.mjs";import r from"./options/jsx-dom-expressions.mjs";import m from"./options/split-chunk.mjs";import{getConfigWithTypescript as l,isFunction as p,node_modules as c,resolveProgram as u}from"./utils/index.mjs";import{initDts as d}from"./vm/dts.mjs";import{APPTYPE as f,FRAMEWORK as h,frameworkVersion as g,isCI as v,isDev as x,isLibrary as b,isMobile as j,isReact as C,jsxImportSource as P,mainDirectory as k,NODE_ENV as w,PACKAGENAME as O}from"./process-env.mjs";let I=[/(app|vm|docs|example):[a-zA-Z_0-9]/,"@moneko","neko-ui",".cache/http/data","@element-plus","ant-design-vue","element-plus","element-ui","ng-zorro-antd","@mui","@du","@fontsource","@fortawesome","font-pingfang-sc","font-pingfang-tc","katex","react-markdown-editor-lite","react-photo-view","schema-design","monaco-editor"];export async function getConfig(e){let t=l(e).default;return(p(t)?await t(o):t)??{}}let S=await i(w,f,h,[],"true"===o.env.IS_BUILD,n),[y,M]=await Promise.all([getConfig(s.configPath),getConfig(s.customConfigPath)]),z={mode:w,strict:!1,devtool:"true"!==o.env.IS_BUILD&&x?"eval-cheap-module-source-map":"cheap-module-source-map",seo:!1,bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:{},sourceMap:{filename:"[file].map",publicPath:"",namespace:O,moduleFilenameTemplate:"moneko://[namespace]/[resource-path]?[loaders]",fallbackModuleFilenameTemplate:"moneko://[namespace]/[resource-path]?[loaders]"},env:S,basename:"/",publicPath:"auto",rem:{designSize:j?375:1920},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:Object.assign({"@":u(k)},C&&g<18?{"react/package.json":c("react/package.json"),"react/jsx-runtime":c("react/jsx-runtime.js"),"react/jsx-dev-runtime":c("react/jsx-dev-runtime.js")}:{}),moduleRules:[],prefixJsLoader:[],cssModules:[],cssModuleDefinition:!0,importOnDemand:{},proxy:{},devServer:{host:"localhost",port:3e3,open:!0},htmlPluginOption:{title:O.toLocaleUpperCase(),favicon:"https://h5static.dewucdn.com/node-common/718d5e10-576d-8b14-b0b1-e4c58c3b3f40.webp"},copy:{},routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:m,runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:I,js:I,media:I,font:I,wasm:[]},mdx:{jsx:!1,development:x,jsxImportSource:P,providerImportSource:`@moneko/${h}/mdx`},jsxDomExpressions:r,bar:{name:"Client",nameColor:"68",msgColor:"242",barBgColor:"15",barColor:"69",quiet:v},normalizeCss:!0,externalsPresets:{},buildHttp:void 0,virtualModule:{},cssExtract:{},externals:["@swc/core"],lazyCompilation:!1,performance:!1,refresh:"solid"!==h,bundleId:"com.moneko.bid",bundles:[],stylelint:{},eslint:{lintDirtyModulesOnly:!1},minChunkSize:1e3,compression:!1,manifest:{filename:"site.webmanifest"},corepack:!0,reactJsxRuntime:"automatic"};b&&(z.alias=Object.assign(z.alias,{"@pkg":s.componentsPath,[O]:s.componentsPath}));let D=z;if((!1===(D=t(D,y,M)).devtool||!1===D.sourceMap)&&(D.sourceMap=!1,D.devtool=!1),"true"===o.env.CODESPACES&&(D.devServer.https=!1),!1===D.devServer.https&&"darwin"===o.platform&&(D.devServer.open=!1),D.htmlPluginOption&&(D.htmlPluginOption.tags||(D.htmlPluginOption.tags=[]),D.fixBrowserRouter&&D.htmlPluginOption.tags.push({textContent:"(function(l) {if (l.search[1] === '/' ) {var decoded = l.search.slice(1).split('&').map(function(s) {return s.replace(/~and~/g, '&')}).join('?');window.history.replaceState(null, null,l.pathname.slice(0, -1) + decoded + l.hash);}}(window.location))"}),D.manifest)){let o=D.manifest.publicPath??D.htmlPluginOption.publicPath??D.publicPath??"/";D.htmlPluginOption.tags.push({href:a("auto"===o?"/":o,D.manifest.filename).replaceAll(e,"/"),tag:"link",rel:"manifest"})}export const CONFIG=D;export const PUBLICPATH="auto"===CONFIG.publicPath?"":CONFIG.publicPath;d(CONFIG);
1
+ import{sep as e}from"node:path";import o from"node:process";import{merge as t}from"webpack-merge";import{CUSTOMCONFIG as n}from"./commom/custom-config.mjs";import s from"./commom/paths.mjs";import{join as a}from"./commom/posix.mjs";import i from"./commom/setup-env.mjs";import r from"./options/jsx-dom-expressions.mjs";import m from"./options/split-chunk.mjs";import{getConfigWithTypescript as l,isFunction as p,node_modules as c,resolveProgram as u}from"./utils/index.mjs";import{initDts as d}from"./vm/dts.mjs";import{APPTYPE as f,FRAMEWORK as h,frameworkVersion as g,isCI as v,isDev as x,isLibrary as b,isMobile as j,isReact as C,jsxImportSource as P,mainDirectory as k,NODE_ENV as w,PACKAGENAME as O}from"./process-env.mjs";let I=[/(app|vm|docs|example):[a-zA-Z_0-9]/,"@moneko","neko-ui",".cache/http/data","@element-plus","ant-design-vue","element-plus","element-ui","ng-zorro-antd","@mui","@du","@fontsource","@fortawesome","font-pingfang-sc","font-pingfang-tc","katex","react-markdown-editor-lite","react-photo-view","schema-design","monaco-editor"];export async function getConfig(e){let t=l(e).default;return(p(t)?await t(o):t)??{}}let S=await i(w,f,h,[],"true"===o.env.IS_BUILD,n),[y,M]=await Promise.all([getConfig(s.configPath),getConfig(s.customConfigPath)]),z={mode:w,strict:!1,devtool:"true"!==o.env.IS_BUILD&&x?"eval-cheap-module-source-map":"cheap-module-source-map",seo:!1,bundleAnalyzer:!1,polyfill:!1,entry:{},minifier:!!v&&{},sourceMap:{filename:"[file].map",publicPath:"",namespace:O,moduleFilenameTemplate:"moneko://[namespace]/[resource-path]?[loaders]",fallbackModuleFilenameTemplate:"moneko://[namespace]/[resource-path]?[loaders]"},env:S,basename:"/",publicPath:"auto",rem:{designSize:j?375:1920},fallbackCompPath:null,modifyVars:{},prefixCls:"n",alias:Object.assign({"@":u(k)},C&&g<18?{"react/package.json":c("react/package.json"),"react/jsx-runtime":c("react/jsx-runtime.js"),"react/jsx-dev-runtime":c("react/jsx-dev-runtime.js")}:{}),moduleRules:[],prefixJsLoader:[],cssModules:[],cssModuleDefinition:!0,importOnDemand:{},proxy:{},devServer:{host:"localhost",port:3e3,open:!0},htmlPluginOption:{title:O.toLocaleUpperCase(),favicon:"https://h5static.dewucdn.com/node-common/718d5e10-576d-8b14-b0b1-e4c58c3b3f40.webp"},copy:{},routerMode:"browser",fixBrowserRouter:!1,plugins:[],resolvePlugins:[],overrideResolve:!1,splitChunk:m,runtimeChunk:"single",moduleFederation:[],rulesInclude:{css:I,js:I,media:I,font:I,wasm:[]},mdx:{jsx:!1,development:x,jsxImportSource:P,providerImportSource:`@moneko/${h}/mdx`},jsxDomExpressions:r,bar:{name:"Client",nameColor:"68",msgColor:"242",barBgColor:"15",barColor:"69",quiet:v},normalizeCss:!0,externalsPresets:{},buildHttp:void 0,virtualModule:{},cssExtract:{},externals:["@swc/core"],lazyCompilation:!1,performance:!1,refresh:"solid"!==h,bundleId:"com.moneko.bid",bundles:[],stylelint:{},eslint:{lintDirtyModulesOnly:!1},minChunkSize:1e3,compression:!1,manifest:{filename:"site.webmanifest"},corepack:!0,reactJsxRuntime:"automatic"};b&&(z.alias=Object.assign(z.alias,{"@pkg":s.componentsPath,[O]:s.componentsPath}));let D=z;if((!1===(D=t(D,y,M)).devtool||!1===D.sourceMap)&&(D.sourceMap=!1,D.devtool=!1),"true"===o.env.CODESPACES&&(D.devServer.https=!1),!1===D.devServer.https&&"darwin"===o.platform&&(D.devServer.open=!1),D.htmlPluginOption&&(D.htmlPluginOption.tags||(D.htmlPluginOption.tags=[]),D.fixBrowserRouter&&D.htmlPluginOption.tags.push({textContent:"(function(l) {if (l.search[1] === '/' ) {var decoded = l.search.slice(1).split('&').map(function(s) {return s.replace(/~and~/g, '&')}).join('?');window.history.replaceState(null, null,l.pathname.slice(0, -1) + decoded + l.hash);}}(window.location))"}),D.manifest)){let o=D.manifest.publicPath??D.htmlPluginOption.publicPath??D.publicPath??"/";D.htmlPluginOption.tags.push({href:a("auto"===o?"/":o,D.manifest.filename).replaceAll(e,"/"),tag:"link",rel:"manifest"})}export const CONFIG=D;export const PUBLICPATH="auto"===CONFIG.publicPath?"":CONFIG.publicPath;d(CONFIG);
package/lib/dev.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{exec as e,spawn as t}from"node:child_process";import{watchFile as o}from"node:fs";import{relative as r,sep as i}from"node:path";import s from"node:process";import{URL as n}from"node:url";import{ink as a,print as m,println as l,progressBar as p}from"@moneko/utils";import c from"webpack";import f from"webpack-hot-middleware";import{merge as h}from"webpack-merge";import{diffObject as d}from"./commom/diff-object.mjs";import u,{config_files as g}from"./commom/paths.mjs";import*as w from"./commom/rule.mjs";import y from"./commom/sigint-exit.mjs";import{devLog as $,PORT as j}from"./dev/config.mjs";import v from"./dev/generate-progress-html.mjs";import b from"./dev/server.mjs";import x from"./options/reslove.mjs";import{ESLintPlugin as C}from"./plugin/eslint.mjs";import{StylelintPlugin as _}from"./plugin/stylelint.mjs";import{empty as P}from"./utils/index.mjs";import{CONFIG as S,getConfig as k}from"./config.mjs";import{createDevelopmentConfiguration as E}from"./create-development-configuration.mjs";import{outputFileSystem as B}from"./file-system.mjs";import{isLibrary as H,refresh as I}from"./process-env.mjs";let O=!1,T="/____progress____",q={percentage:0,info:""},G="/__hmr__",L=new URLSearchParams({name:"client",path:G.substring(1),dynamicPublicPath:!0,timeout:2e3,reload:!I,quiet:!0,noInfo:!0,overlay:!1,autoConnect:!0}).toString(),U=await E({watchOptions:{stdin:!0,aggregateTimeout:300,ignored:w.node_modules},entry:{main:[`${x.hotMiddlewareClient}?${L}`]},plugins:[new c.WatchIgnorePlugin({paths:[w.node_modules,/\.d\.ts$/]}),new c.ProgressPlugin({handler(e,t,...o){let r=o.length?`[${t}] ${o.join(" ")}`:" ";O||(q.info=r,q.percentage=e,O=1===e);let i=S.bar;if(i){let t=i.name||"Build";i.quiet?s.stdout.write(`${r}
2
- `):(p(e||0,1,{msg:r,name:t,barColor:i.barColor,nameColor:i.nameColor,barBgColor:i.barBgColor,msgColor:i.msgColor}),1===e&&s.stdout.write("\r\x1b[2K"))}}})]});function A(e){let t=e.join(","),o=[r(u.programPath,`${S.alias["@"]}/**/*.{${t}}`).replaceAll(i,"/")];return H&&o.push(r(u.programPath,`${S.alias["@pkg"]}/**/*.{${t}}`).replaceAll(i,"/")),o}S.eslint&&U.plugins.push(new C({fix:!0,cache:!0,cacheLocation:`${u.lintCachePath}/.eslintcache`,cacheStrategy:"metadata",files:A(["js","jsx","ts","tsx","json","html","vue"]),...S.eslint})),S.stylelint&&U.plugins.push(new _({fix:!0,cache:!0,cacheLocation:`${u.lintCachePath}/.stylelintcache`,files:A(["css","scss","sass","less","ts","tsx","js","jsx"]),...S.stylelint}));let F=c(U);if(!F)throw Error("无法创建编译器");F.outputFileSystem=B;let N=F.watch(F.options.watchOptions,$);if(!N)throw Error("无法创建监视器");F.hooks.done.tap("client-log",e=>{$(null,e)});let R=`${S.basename}/${G}`.replace(/\/+/g,"/"),J=f(F,{log:!1,path:R,heartbeat:2e3}),K=await b({port:j,root_dir:F.options.output.path,fileSystem:F.outputFileSystem,headers:S.devServer.headers,https:S.devServer.https,host:S.devServer.host,open:S.devServer.open,basename:S.basename,onRequest(e,t){if(!t.writableEnded){if("GET"===e.method){let o=new n(`${S.devServer.https?"https":"http"}://${e.headers.host}${e.url}`);if(o.pathname===T)return t.writeHead(200,{"Content-Type":"application/json; charset=utf-8","Cache-Control":"no-store"}),t.end(JSON.stringify(q)),!0;if(!O)return t.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),t.end(v(T,q)),!0;if(o.pathname===R&&"text/event-stream"===e.headers.accept)return J(e,t,P),!0}return!1}}});function M(){s.exit(0)}K.on("close",()=>{N.close(P),J.close()});let W=await Promise.all(g.map(k)),z=h(W[0]||{},W[1]||{});g.forEach(function(t){o(t,async function(){var o;let[r,i]=await Promise.all(g.map(k)),n=h(r||{},i||{}),p=d(z,n);1===Object.keys(p).length&&"proxy"in p?(m(a("代理更新中...","yellow"),!0),m(a("代理更新完成...","green"),!0),S.proxy=n.proxy,z.proxy=n.proxy,z=n):(z=n,l(a(`检测到工程配置${a(`[${t}]`,"blue")}变更, 程序即将重启...`,"yellow"),!0),o=j,e(D?`netstat -ano | findstr :${o}`:`lsof -i :${o} -t`,(e,t)=>{if(e){l(a(`查找端口 ${o} 时发生错误: ${e.message}`,"red")),l(a("请尝试手动重启程序","yellow"));return}let r=t.trim().replace(/\r\n/g,"\n").split("\n").filter(Boolean),i=D?r[0]?.split(/\s+/).pop()?.trim():r[0]?.trim();if(!i)return void l(a(`未找到占用端口 ${o} 的进程, 请尝试手动重启程序`,"yellow"));try{s.kill(Number(i),"SIGHUP")}catch(e){l(a(`终止进程 ${i} 时发生错误: ${e.message}`,"red"))}}))})});let D="win32"===s.platform;s.on("SIGHUP",function(){let e;K.close(),(e=t(s.argv[0],s.argv.slice(1),{detached:!1,stdio:"inherit"})).unref(),e.on("close",M)}),s.on("exit",function(){K.close()}),y(M);
1
+ import{exec as e,spawn as t}from"node:child_process";import{watchFile as o}from"node:fs";import{relative as r,sep as i}from"node:path";import s from"node:process";import{URL as n}from"node:url";import{ink as a,print as m,println as l,progressBar as p}from"@moneko/utils";import c from"webpack";import f from"webpack-hot-middleware";import{merge as h}from"webpack-merge";import{diffObject as u}from"./commom/diff-object.mjs";import d,{config_files as g}from"./commom/paths.mjs";import*as w from"./commom/rule.mjs";import y from"./commom/sigint-exit.mjs";import{devLog as j,PORT as $}from"./dev/config.mjs";import v from"./dev/generate-progress-html.mjs";import b from"./dev/server.mjs";import x from"./options/reslove.mjs";import{ESLintPlugin as C}from"./plugin/eslint.mjs";import{StylelintPlugin as _}from"./plugin/stylelint.mjs";import{empty as P}from"./utils/index.mjs";import{CONFIG as S,getConfig as k}from"./config.mjs";import{createDevelopmentConfiguration as E}from"./create-development-configuration.mjs";import{outputFileSystem as B}from"./file-system.mjs";import{isLibrary as H,refresh as I}from"./process-env.mjs";import{pureCache as O}from"./pure-cache.mjs";let T=!1,q="/____progress____",G={percentage:0,info:""},L="/__hmr__",U=new URLSearchParams({name:"client",path:L.substring(1),dynamicPublicPath:!0,timeout:2e3,reload:!I,quiet:!0,noInfo:!0,overlay:!1,autoConnect:!0}).toString(),A=await E({watchOptions:{stdin:!0,aggregateTimeout:300,ignored:w.node_modules},entry:{main:[`${x.hotMiddlewareClient}?${U}`]},plugins:[new c.WatchIgnorePlugin({paths:[w.node_modules,/\.d\.ts$/]}),new c.ProgressPlugin({handler(e,t,...o){let r=o.length?`[${t}] ${o.join(" ")}`:" ";T||(G.info=r,G.percentage=e,T=1===e);let i=S.bar;if(i){let t=i.name||"Build";i.quiet?s.stdout.write(`${r}
2
+ `):(p(e||0,1,{msg:r,name:t,barColor:i.barColor,nameColor:i.nameColor,barBgColor:i.barBgColor,msgColor:i.msgColor}),1===e&&s.stdout.write("\r\x1b[2K"))}}})]});function F(e){let t=e.join(","),o=[r(d.programPath,`${S.alias["@"]}/**/*.{${t}}`).replaceAll(i,"/")];return H&&o.push(r(d.programPath,`${S.alias["@pkg"]}/**/*.{${t}}`).replaceAll(i,"/")),o}S.eslint&&A.plugins.push(new C({fix:!0,cache:!0,cacheLocation:`${d.lintCachePath}/.eslintcache`,cacheStrategy:"metadata",files:F(["js","jsx","ts","tsx","json","html","vue"]),...S.eslint})),S.stylelint&&A.plugins.push(new _({fix:!0,cache:!0,cacheLocation:`${d.lintCachePath}/.stylelintcache`,files:F(["css","scss","sass","less","ts","tsx","js","jsx"]),...S.stylelint}));let N=c(A);if(!N)throw Error("无法创建编译器");N.outputFileSystem=B;let R=N.watch(N.options.watchOptions,j);if(!R)throw Error("无法创建监视器");N.hooks.done.tap("client-log",e=>{O(e.compilation),j(null,e)});let J=`${S.basename}/${L}`.replace(/\/+/g,"/"),K=f(N,{log:!1,path:J,heartbeat:2e3}),M=await b({port:$,root_dir:N.options.output.path,fileSystem:N.outputFileSystem,headers:S.devServer.headers,https:S.devServer.https,host:S.devServer.host,open:S.devServer.open,basename:S.basename,onRequest(e,t){if(!t.writableEnded){if("GET"===e.method){let o=new n(`${S.devServer.https?"https":"http"}://${e.headers.host}${e.url}`);if(o.pathname===q)return t.writeHead(200,{"Content-Type":"application/json; charset=utf-8","Cache-Control":"no-store"}),t.end(JSON.stringify(G)),!0;if(!T)return t.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),t.end(v(q,G)),!0;if(o.pathname===J&&"text/event-stream"===e.headers.accept)return K(e,t,P),!0}return!1}}});function W(){s.exit(0)}M.on("close",()=>{R.close(P),K.close()});let z=await Promise.all(g.map(k)),D=h(z[0]||{},z[1]||{});g.forEach(function(t){o(t,async function(){var o;let[r,i]=await Promise.all(g.map(k)),n=h(r||{},i||{}),p=u(D,n);1===Object.keys(p).length&&"proxy"in p?(m(a("代理更新中...","yellow"),!0),m(a("代理更新完成...","green"),!0),S.proxy=n.proxy,D.proxy=n.proxy,D=n):(D=n,l(a(`检测到工程配置${a(`[${t}]`,"blue")}变更, 程序即将重启...`,"yellow"),!0),o=$,e(Q?`netstat -ano | findstr :${o}`:`lsof -i :${o} -t`,(e,t)=>{if(e){l(a(`查找端口 ${o} 时发生错误: ${e.message}`,"red")),l(a("请尝试手动重启程序","yellow"));return}let r=t.trim().replace(/\r\n/g,"\n").split("\n").filter(Boolean),i=Q?r[0]?.split(/\s+/).pop()?.trim():r[0]?.trim();if(!i)return void l(a(`未找到占用端口 ${o} 的进程, 请尝试手动重启程序`,"yellow"));try{s.kill(Number(i),"SIGHUP")}catch(e){l(a(`终止进程 ${i} 时发生错误: ${e.message}`,"red"))}}))})});let Q="win32"===s.platform;s.on("SIGHUP",function(){let e;M.close(),(e=t(s.argv[0],s.argv.slice(1),{detached:!1,stdio:"inherit"})).unref(),e.on("close",W)}),s.on("exit",function(){M.close()}),y(W);
@@ -6,8 +6,12 @@ interface ModuleFederationExposesDeclarationPluginOptions {
6
6
  export declare class ModuleFederationExposesDeclarationPlugin {
7
7
  private name;
8
8
  private assetName;
9
- private options;
9
+ private dts;
10
+ private compiler;
11
+ private worker;
10
12
  constructor(option: ModuleFederationExposesDeclarationPluginOptions);
13
+ final(err: NodeJS.ErrnoException | null): void;
14
+ writeDts(): void;
11
15
  apply(compiler: Compiler): void;
12
16
  }
13
17
  export { };
@@ -1 +1 @@
1
- import{join as e}from"node:path";import{fileURLToPath as t}from"node:url";import{Worker as o}from"node:worker_threads";import r from"../commom/log.mjs";export class ModuleFederationExposesDeclarationPlugin{constructor(e){this.name="ModuleFederationExposesDeclarationPlugin",this.assetName="module-federation.d.ts",this.options=e}apply(s){s.hooks.done.tapPromise(this.name,async i=>{if(i.hasErrors())return;let n=s.outputFileSystem,a=s.options.output.path;if(!n||!a)return;let m=new o(t(new URL("../worker/dts.mjs",import.meta.url)));m.setMaxListeners(0);try{let t=await new Promise((e,t)=>{m.once("message",e),m.once("error",t),m.postMessage({options:this.options})});s.outputFileSystem?.writeFile(e(a,this.assetName),t,{encoding:"utf-8"},e=>{e&&r(e)})}catch(e){r(e)}m.terminate()})}}
1
+ import{join as t}from"node:path";import{fileURLToPath as e}from"node:url";import{Worker as i}from"node:worker_threads";import s from"../commom/log.mjs";export class ModuleFederationExposesDeclarationPlugin{constructor(t){this.name="ModuleFederationExposesDeclarationPlugin",this.assetName="module-federation.d.ts",this.dts="",this.compiler=null,this.worker=new i(e(new URL("../worker/dts.mjs",import.meta.url))),this.worker.setMaxListeners(0),this.worker.postMessage({options:t}),this.worker.once("message",t=>{this.dts=t,this.writeDts(),this.worker.terminate()})}final(t){t&&s(t)}writeDts(){let e=this.compiler?.options.output.path,i=this.compiler?.outputFileSystem;if(e&&i){let s=t(e,this.assetName);i.mkdir(e,{recursive:!0},this.final),i.existsSync(s)?i.readFile(s,{encoding:"utf-8"},(t,e)=>{t?this.final(t):e!=this.dts&&i.writeFile(s,this.dts,{encoding:"utf-8"},this.final)}):i.writeFile(s,this.dts,{encoding:"utf-8"},this.final)}}apply(t){this.compiler=t,t.hooks.done.tap(this.name,t=>{t.hasErrors()||this.writeDts()})}}
@@ -1 +1 @@
1
- import{join as e,parse as t,relative as r,sep as o}from"node:path";import s from"webpack";import m from"../commom/module-resolve.mjs";import a from"../commom/paths.mjs";import{CONFIG as l}from"../config.mjs";import{re_export_schema as p}from"../process-env.mjs";import n from"../utils/fetch-module-federation-dts.mjs";import{resolveProgram as i}from"../utils/index.mjs";import{mf_vm as f}from"../vm/mf.mjs";import{re_export_vm as h}from"../vm/re-export.mjs";import{ModuleFederationExposesDeclarationPlugin as u}from"./exposes-declararion.mjs";import{ExternalRemotesPlugin as c}from"./external-remotes.mjs";let d=s.NormalModuleReplacementPlugin,$=s.container.ModuleFederationPlugin,x={},j=[];function y(e,r){let s=e.replaceAll(o,"/").replace(/\.tsx?$/i,""),m=t(r);f.setData(s,{type:".tsx",source:()=>{if(r.startsWith(a.nodeModules)){let e=r.substring(a.nodeModules.length).split("node_modules").pop()?.replaceAll(o,"/").replace(/^\//,"");return`export * from '${e}';`}return r.startsWith(l.alias["@"])?`export * from '@/${t(m.dir).name}/${m.name}'`:"export {};"}})}let g=l.moduleFederation?.map(t=>{let o={},s={},l={};if(Array.isArray(t.remotes))for(let e=0,r=t.remotes.length;e<r;e++){let r=t.remotes[e],o=r.alias||r.name,m=r.filename||"remote_entry.js";if(s[o]=`${r.name}@${r.host}/${m}`,Array.isArray(r.library))for(let e=0,t=r.library.length;e<t;e++)x[r.library[e]]=`${o}/${r.library[e]}`;n(r.host,r.name)}if(Array.isArray(t.exposes)){t.exposes.length>0&&!t.exposes.find(e=>"public-path"===e)&&t.exposes.push({name:"public-path",path:`./${r(a.programPath,e(a.corePath,"./polyfills/public-path.mjs"))}`});for(let e=0,r=t.exposes.length;e<r;e++){let r=t.exposes[e];if("string"==typeof r){let e=r,s=r.startsWith(".");!s&&h.has(r)&&(e=`${p}:${r}`),o[`./${r}`]=m(s?i(e):e),s&&(l[r]=o[`./${r}`],y(`${t.name}/${r}`,l[r]))}else if("[object Object]"===Object.prototype.toString.call(r)){let e=r.path.startsWith(".");o[`./${r.name}`]=m(e?i(r.path):r.path),e&&(l[`./${r.name}`]=o[`./${r.name}`],y(`${t.name}/${r.name}`,l[`./${r.name}`]))}}t.exposes?.length&&j.push(new u({exposes:l,name:t.name}))}return new $({filename:"remote_entry.js",...t,remotes:s,exposes:o})});g.length>0&&(g.push(new c),g.push(new d(/(.*)/,e=>{x[e.request]&&(e.request=x[e.request])})),j.forEach(e=>g.push(e))),l.env.injectRemoteReactRefresh=Object.keys(x).includes("react-dom");export default g;
1
+ import{join as e,parse as t,relative as r,sep as o}from"node:path";import s from"webpack";import m from"../commom/module-resolve.mjs";import a from"../commom/paths.mjs";import{CONFIG as l}from"../config.mjs";import{re_export_schema as p}from"../process-env.mjs";import n from"../utils/fetch-module-federation-dts.mjs";import{resolveProgram as i}from"../utils/index.mjs";import{mf_vm as f}from"../vm/mf.mjs";import{re_export_vm as h}from"../vm/re-export.mjs";import{ModuleFederationExposesDeclarationPlugin as u}from"./exposes-declararion.mjs";import{ExternalRemotesPlugin as c}from"./external-remotes.mjs";let d=s.NormalModuleReplacementPlugin,$=s.container.ModuleFederationPlugin,x={},j=[];function y(e,r){let s=e.replaceAll(o,"/").replace(/\.tsx?$/i,""),m=t(r);f.setData(s,{type:".tsx",source:()=>{if(r.startsWith(a.nodeModules)){let e=r.substring(a.nodeModules.length).split("node_modules").pop()?.replaceAll(o,"/").replace(/^\//,"");return`export * from '${e}';`}return r.startsWith(l.alias["@"])?`export * from '@/${t(m.dir).name}/${m.name}'`:"export {};"}})}let g=l.moduleFederation?.map(t=>{let o={},s={};if(Array.isArray(t.remotes))for(let e=0,r=t.remotes.length;e<r;e++){let r=t.remotes[e],o=r.alias||r.name,m=r.filename||"remote_entry.js";if(s[o]=`${r.name}@${r.host}/${m}`,Array.isArray(r.library))for(let e=0,t=r.library.length;e<t;e++)x[r.library[e]]=`${o}/${r.library[e]}`;n(r.host,r.name)}if(Array.isArray(t.exposes)){t.exposes.length>0&&!t.exposes.find(e=>"public-path"===e)&&t.exposes.push({name:"public-path",path:`./${r(a.programPath,e(a.corePath,"./polyfills/public-path.mjs"))}`});for(let e=0,r=t.exposes.length;e<r;e++){let r=t.exposes[e];if("string"==typeof r){let e=r,s=r.startsWith(".");!s&&h.has(r)&&(e=`${p}:${r}`),o[`./${r}`]=m(s?i(e):e),s&&y(`${t.name}/${r}`,o[`./${r}`])}else if("[object Object]"===Object.prototype.toString.call(r)){let e=r.path.startsWith(".");o[`./${r.name}`]=m(e?i(r.path):r.path),e&&y(`${t.name}/${r.name}`,o[`./${r.name}`])}}t.exposes?.length&&j.push(new u({exposes:Object.fromEntries(t.exposes.map(e=>"string"==typeof e?[e,m(e)]:[`${t.name}/${e.name}`,o[`./${e.name}`]])),name:t.name}))}return new $({filename:"remote_entry.js",...t,remotes:s,exposes:o})});g.length>0&&(g.push(new c),g.push(new d(/(.*)/,e=>{x[e.request]&&(e.request=x[e.request])})),j.forEach(e=>g.push(e))),l.env.injectRemoteReactRefresh=Object.keys(x).includes("react-dom");export default g;
@@ -1 +1 @@
1
- import o from"node:process";import e from"./commom/has-pkg.mjs";import r from"./commom/is-ci-environment.mjs";import{CUSTOMCONFIG as t}from"./commom/paths.mjs";import{readJson as s}from"./commom/read-json.mjs";import{convertToCamelCase as c,digest as p}from"./utils/index.mjs";export const packageJson=s(`${o.cwd()}/package.json`);delete packageJson.scripts;export const IS_WINDOW="win32"===o.platform;export const APPTYPE=o.env.APPTYPE;export const FRAMEWORK=o.env.FRAMEWORK??"react";export const NODE_ENV=o.env.NODE_ENV;export const isLibrary="library"===APPTYPE;export const isMicro="micro"===APPTYPE;export const isMobile="mobile"===APPTYPE;export const isReact="react"===FRAMEWORK;export const isSolid="solid"===FRAMEWORK;export const SSR="true"===o.env.SSR;export const app_schema="app";export const virtual_schema="vm";export const docs_schema="docs";export const example_schema="example";export const scope_schema="scope";export const service_worker_schema="sw";export const re_export_schema="re-export";export const module_federation_schema="mf";export const mainDirectory=isLibrary?"site":"src";export const jsxImportSource={react:"react",solid:"solid-js/h"}[FRAMEWORK];export const framework={react:"react",solid:"solid-js"}[FRAMEWORK];export const frameworkVersionStr=framework?s(`${framework}/package.json`).version:19;export const frameworkVersion=parseFloat(frameworkVersionStr);export const PACKAGENAME=packageJson.name;export const projectNameCamelCase=c(PACKAGENAME);export const coreName="@moneko/core";export const isDev="development"===NODE_ENV;export const refresh=!!(isDev&&e("solid"===FRAMEWORK?"solid-refresh":"react-refresh"));export const isCI=r();export const CACHE_NAME=p(`${PACKAGENAME}${t}${NODE_ENV}${o.argv[2]}`);
1
+ import o from"node:process";import e from"./commom/has-pkg.mjs";import r from"./commom/is-ci-environment.mjs";import{CUSTOMCONFIG as t}from"./commom/paths.mjs";import{readJson as s}from"./commom/read-json.mjs";import{convertToCamelCase as c,md5 as p}from"./utils/index.mjs";export const packageJson=s(`${o.cwd()}/package.json`);delete packageJson.scripts;export const IS_WINDOW="win32"===o.platform;export const APPTYPE=o.env.APPTYPE;export const FRAMEWORK=o.env.FRAMEWORK??"react";export const NODE_ENV=o.env.NODE_ENV;export const isLibrary="library"===APPTYPE;export const isMicro="micro"===APPTYPE;export const isMobile="mobile"===APPTYPE;export const isReact="react"===FRAMEWORK;export const isSolid="solid"===FRAMEWORK;export const SSR="true"===o.env.SSR;export const app_schema="app";export const virtual_schema="vm";export const docs_schema="docs";export const example_schema="example";export const scope_schema="scope";export const service_worker_schema="sw";export const re_export_schema="re-export";export const module_federation_schema="mf";export const mainDirectory=isLibrary?"site":"src";export const jsxImportSource={react:"react",solid:"solid-js/h"}[FRAMEWORK];export const framework={react:"react",solid:"solid-js"}[FRAMEWORK];export const frameworkVersionStr=framework?s(`${framework}/package.json`).version:19;export const frameworkVersion=parseFloat(frameworkVersionStr);export const PACKAGENAME=packageJson.name;export const projectNameCamelCase=c(PACKAGENAME);export const coreName="@moneko/core";export const isDev="development"===NODE_ENV;export const refresh=!!(isDev&&e("solid"===FRAMEWORK?"solid-refresh":"react-refresh"));export const isCI=r();export const CACHE_NAME=p(`${PACKAGENAME}${t}${NODE_ENV}${o.argv[2]}`);
@@ -1 +1 @@
1
- import{join as e,sep as r}from"node:path";import{parentPort as o}from"node:worker_threads";import{bundleDts as t}from"../commom/bundle-dts.mjs";import{module_federation_schema as s}from"../process-env.mjs";if(!o)throw Error("This file must be run as a worker");o?.setMaxListeners(0),o.on("message",async({options:a})=>{try{let{name:m,exposes:l}=a,p={},i=[];for(let o in l)if(Object.prototype.hasOwnProperty.call(l,o)){let t=o.replace(/\.tsx?$/i,""),a=e(m,t).replaceAll(r,"/");p[a]=l[o],i.push(`declare module "${s}:${a}" { export * from "${a}"; }`)}let n=await t(p,m);i.unshift(n);let c=i.join("\n\n");o.postMessage(c)}catch{o.postMessage("")}});
1
+ import{parentPort as e}from"node:worker_threads";import{bundleDts as r}from"../commom/bundle-dts.mjs";import{module_federation_schema as s}from"../process-env.mjs";if(!e)throw Error("This file must be run as a worker");e?.setMaxListeners(0),e.on("message",async({options:o})=>{try{let{name:t,exposes:m={}}=o,a=[],p=[];Object.keys(m).map(e=>{e.startsWith(t)?(p.push({[e]:m[e]}),a.push(`declare module "${s}:${e}" { export * from "${e}"; export { default } from "${e}"; }`)):(p.push(e),a.push(`declare module "${t}/${e}" { export * from "${e}"; export { default } from "${e}"; }`))});let f=await r(p,`_${t}_`);a.unshift(f);let u=a.join("\n\n");e.postMessage(u)}catch{e.postMessage("")}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "4.8.6-beta.0",
3
+ "version": "4.8.6-beta.10",
4
4
  "description": "@moneko/core",
5
5
  "main": "lib/index.mjs",
6
6
  "type": "module",
@@ -130,7 +130,7 @@
130
130
  "homepage": "https://moneko-o.github.io/neko-ui/@moneko/config",
131
131
  "license": "MIT",
132
132
  "dependencies": {
133
- "@jsonjoy.com/fs-node": "4.57.1",
133
+ "@jsonjoy.com/fs-node": "4.57.2",
134
134
  "@moneko/convert": "1.3.0",
135
135
  "@moneko/eslint": "1.11.2",
136
136
  "@moneko/mdx": "1.0.3",
@@ -139,7 +139,7 @@
139
139
  "@moneko/stylelint": "1.8.3",
140
140
  "@moneko/transform-imports": "1.4.0",
141
141
  "@moneko/utils": "0.3.3",
142
- "@swc/core": "1.15.24",
142
+ "@swc/core": "1.15.30",
143
143
  "browserslist": "4.28.2",
144
144
  "core-js": "3.49.0",
145
145
  "core-js-compat": "3.49.0",
@@ -148,8 +148,8 @@
148
148
  "less-loader": "12.3.2",
149
149
  "lightningcss": "1.32.0",
150
150
  "swc-loader": "0.2.7",
151
- "typescript": "6.0.2",
152
- "webpack": "5.106.1",
151
+ "typescript": "6.0.3",
152
+ "webpack": "5.106.2",
153
153
  "webpack-hot-middleware": "2.26.1",
154
154
  "webpack-merge": "6.0.1"
155
155
  },