@moneko/core 4.8.0-beta.3 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.mts
CHANGED
|
@@ -15,6 +15,7 @@ export { default as timer } from './commom/timer.mjs';
|
|
|
15
15
|
export { type MockConfiguration, type ProxyFuncType, type RequestFormData, yApiMock, type YApiOption, type YApiOptionBySchema, yApiSchemaMock } from './dev/mock.mjs';
|
|
16
16
|
export { convertUriToFileName, type HarvesterGenerateParams, type HarvesterOptions, type ProxyConfig, type ProxyItem } from './dev/proxy.mjs';
|
|
17
17
|
export type { ReactCompilerOption } from './loader/react-compiler.cjs';
|
|
18
|
+
export * from './mcp/module-federation/common.mjs';
|
|
18
19
|
export { type JsxDomExpressions, default as jsxDomExpressions } from './options/jsx-dom-expressions.mjs';
|
|
19
20
|
export { type OptimizationSplitChunksOptions, default as splitChunk } from './options/split-chunk.mjs';
|
|
20
21
|
export type { CompressionPluginOptions } from './plugin/compression.mjs';
|
package/lib/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{declToMd}from"./commom/decl-to-md.mjs";export*from"./commom/git.mjs";export{default as hasPkg}from"./commom/has-pkg.mjs";export{getIPv4,getPort}from"./commom/net.mjs";export{default as open}from"./commom/open.mjs";export{default as parseArgs}from"./commom/parse-args.mjs";export{CUSTOMCONFIG,default as paths,routeDir,yarnArgv}from"./commom/paths.mjs";export{default as printLog}from"./commom/print-log.mjs";export{default as require}from"./commom/require.mjs";export*as Rule from"./commom/rule.mjs";export{default as timer}from"./commom/timer.mjs";export{yApiMock,yApiSchemaMock}from"./dev/mock.mjs";export{convertUriToFileName}from"./dev/proxy.mjs";export{default as jsxDomExpressions}from"./options/jsx-dom-expressions.mjs";export{default as splitChunk}from"./options/split-chunk.mjs";export{HtmlPlugin}from"./plugin/html-plugin.mjs";export*from"./plugin/manifest/index.mjs";export{APPTYPE,coreName,FRAMEWORK,isCI,isDev,isLibrary,isMicro,mainDirectory,packageJson,PACKAGENAME}from"./process-env.mjs";export{digest,getConfigWithTypescript,md5,node_modules,resolveProgram,toCamelCase}from"./utils/index.mjs";export*from"@moneko/mdx";export*from"@moneko/utils";import o from"webpack";export{o as webpack};
|
|
1
|
+
export{declToMd}from"./commom/decl-to-md.mjs";export*from"./commom/git.mjs";export{default as hasPkg}from"./commom/has-pkg.mjs";export{getIPv4,getPort}from"./commom/net.mjs";export{default as open}from"./commom/open.mjs";export{default as parseArgs}from"./commom/parse-args.mjs";export{CUSTOMCONFIG,default as paths,routeDir,yarnArgv}from"./commom/paths.mjs";export{default as printLog}from"./commom/print-log.mjs";export{default as require}from"./commom/require.mjs";export*as Rule from"./commom/rule.mjs";export{default as timer}from"./commom/timer.mjs";export{yApiMock,yApiSchemaMock}from"./dev/mock.mjs";export{convertUriToFileName}from"./dev/proxy.mjs";export*from"./mcp/module-federation/common.mjs";export{default as jsxDomExpressions}from"./options/jsx-dom-expressions.mjs";export{default as splitChunk}from"./options/split-chunk.mjs";export{HtmlPlugin}from"./plugin/html-plugin.mjs";export*from"./plugin/manifest/index.mjs";export{APPTYPE,coreName,FRAMEWORK,isCI,isDev,isLibrary,isMicro,mainDirectory,packageJson,PACKAGENAME}from"./process-env.mjs";export{digest,getConfigWithTypescript,md5,node_modules,resolveProgram,toCamelCase}from"./utils/index.mjs";export*from"@moneko/mdx";export*from"@moneko/utils";import o from"webpack";export{o as webpack};
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* 获取当前项目所有 moduleFederation 远端,生成指定文件名的 URL 映射
|
|
3
3
|
* @param {string} filename - 文件名,如 'LLMs.md' 或 'module-federation.d.ts'
|
|
4
4
|
* @returns {Record<string, string>} - 返回 { ['mf:<name>']: 'host/<filename>' } 格式
|
|
5
|
-
*/ export declare function
|
|
6
|
-
export declare function
|
|
5
|
+
*/ export declare function getModuleFederationRemoteUrls(filename: string): Record<string, string>;
|
|
6
|
+
export declare function fetchText(url: string): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{request as e}from"@moneko/request";import t from"../../commom/paths.mjs";import{getConfigWithTypescript as o}from"../../utils/index.mjs";export function getModuleFederationRemoteUrls(e){let r=o(t.configPath).default;return Object.fromEntries((r?.moduleFederation??[]).flatMap(e=>e.remotes??[]).filter(e=>e?.name&&e?.host).map(t=>[`mf:${t.name}`,new URL(e,t.host).toString()]))}export async function fetchText(t){return e(t,{responseType:"text",rejectUnauthorized:!1})}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{McpServer as e}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as t}from"@modelcontextprotocol/sdk/server/stdio.js";import o from"zod";import{
|
|
2
|
+
import{McpServer as e}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as t}from"@modelcontextprotocol/sdk/server/stdio.js";import o from"zod";import{fetchText as n,getModuleFederationRemoteUrls as r}from"./common.mjs";function i(e){let t=[],o=e.split("\n"),n=null,r=0;for(let e of o)if(0===r&&/^(export\s+)?(declare\s+)?(module|namespace|interface|type|class|function|const|enum|var)\s/.test(e)){n&&t.push(n);let o=e.match(/module\s+['"]([^'"]+)['"]/)||e.match(/(?:namespace|interface|type|class|function|const|enum|var)\s+(\w+)/);n={name:o?o[1]:e.trim().slice(0,60),content:e},r+=(e.match(/\{/g)||[]).length-(e.match(/\}/g)||[]).length}else n&&(n.content+=`
|
|
3
3
|
${e}`,(r+=(e.match(/\{/g)||[]).length-(e.match(/\}/g)||[]).length)<=0&&(r=0));return n&&t.push(n),t}let s=new e({name:"module-federation",version:"1.0.0"},{capabilities:{tools:{}}}),a=o.string().optional().describe("项目根目录路径,默认使用当前工作目录");function l(e){return async t=>{try{return{content:[{type:"text",text:JSON.stringify(await e(t),null,2)}]}}catch(e){return{content:[{type:"text",text:`错误:${e.message}`}],isError:!0}}}}s.registerTool("get_module_federation_dts",{title:"获取 Module Federation dts 文件地址",description:"获取各 Module Federation 远端对应的 module-federation.d.ts 文件 URL,可用于下获取完整类型声明。",inputSchema:{project_root:a}},l(()=>r("module-federation.d.ts"))),s.registerTool("search_module_federation_dts",{title:"搜索 Module Federation dts",description:"从指定 Module Federation 远端拉取 module-federation.d.ts,仅返回与查询关键词匹配的顶级类型声明块(declare module / interface / type 等)。",inputSchema:{query:o.string().describe("要搜索的类型名或关键词(大小写不敏感)"),remote:o.string().optional().describe('远端名称,例如 "mf:lexicon_admin",不填则搜索所有远端。'),project_root:a}},l(async e=>{let{query:t,remote:o}=e||{},s=r("module-federation.d.ts"),a=o?{[o]:s[o]??(()=>{throw Error(`远端 "${o}" 不存在`)})()}:s;return(await Promise.allSettled(Object.entries(a).map(async([e,o])=>{let r=await n(o),s=t?.toLowerCase()??"",a=s?i(r).filter(e=>e.content.toLowerCase().includes(s)):i(r);return{remote:e,matched:a.length,sections:a.map(e=>e.content)}}))).map(e=>"fulfilled"===e.status&&e.value?.matched>0?e.value:null).filter(Boolean)})),await s.connect(new t);
|