@fulgurjs/federation 6.9.3 → 6.10.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/dist/react.js CHANGED
@@ -7,13 +7,13 @@ import { defineBridgeApp as defineReactBridgeApp } from "./bridge-app-react.js";
7
7
  import { createReactBridgeAppWithLoader } from "./bridge-host-react.js";
8
8
  import { createReactBridgeNavigation, createReactBridgeRouter } from "./bridge-router-react.js";
9
9
  import { hasBridgeMount } from "./bridge-core.js";
10
- export const remoteComponent = createRemoteComponent(loadRemote);
11
- export const useLoadRemote = createUseLoadRemote(loadRemote);
10
+ export const remoteComponent = /*#__PURE__*/ createRemoteComponent(loadRemote);
11
+ export const useLoadRemote = /*#__PURE__*/ createUseLoadRemote(loadRemote);
12
12
  export { RemoteErrorBoundary };
13
13
  export const createReactHostPages = (options) => createReactHostPagesWithLoader(options, loadRemote);
14
14
  export const defineBridgeApp = defineReactBridgeApp;
15
15
  export { defineApplication } from "./bridge-app-react.js";
16
- export const createReactBridgeApp = createReactBridgeAppWithLoader(loadRemote);
16
+ export const createReactBridgeApp = /*#__PURE__*/ createReactBridgeAppWithLoader(loadRemote);
17
17
  export { createReactBridgeNavigation, createReactBridgeRouter };
18
18
  export { hasBridgeMount };
19
19
  export const remoteSchema = {};
package/dist/runtime.js CHANGED
@@ -1,4 +1,4 @@
1
- var ve=/^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z.-]+)?$/;function N(l){let d=ve.exec(String(l).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function $e(l,d){if(l.length===0&&d.length===0)return 0;if(l.length===0)return 1;if(d.length===0)return-1;let f=Math.max(l.length,d.length);for(let c=0;c<f;c++){let m=l[c],y=d[c];if(m===void 0)return-1;if(y===void 0)return 1;let b=/^\d+$/.test(m),v=/^\d+$/.test(y);if(b&&v){let M=Number(m)-Number(y);if(M!==0)return M}else{if(b!==v)return b?-1:1;if(m!==y)return m<y?-1:1}}return 0}function I(l,d){let f=N(l),c=N(d);return!f||!c?l<d?-1:l>d?1:0:f.major!==c.major?f.major-c.major:f.minor!==c.minor?f.minor-c.minor:f.patch!==c.patch?f.patch-c.patch:$e(f.pre,c.pre)}var Pe=/^[a-z]+[+:-]/i;function x(l,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Pe.test(f)?!0:f.split("||").some(c=>_e(l,c.trim()))}function _e(l,d){if(!d||d==="*")return!N(l)?.pre.length;let f=d.split(/\s+-\s+/);if(f.length===2){let y=f[0].trim(),b=f[1].trim();return!(!x(l,`>=${y}`)||!x(l,`<=${b}`))}let c=N(l);if(!c)return!1;let m=ke(d);if(m===null)return!0;for(let y of m)if(!Te(c,l,y))return!1;return!(c.pre.length>0&&!m.some(y=>y.ver.pre.length>0)&&!m.some(b=>b.ver.major===c.major&&b.ver.minor===c.minor&&b.ver.patch===c.patch))}function ke(l){let d=[],f=l.trim().split(/\s+/).filter(Boolean);if(f.length===0)return null;for(let c of f){let m=/^(>=|<=|>|<|=|\^|~)?(.*)$/.exec(c);if(!m)return null;let y=m[1],b=m[2],v=Le(y,b);if(v===null)return null;d.push(...v)}return d}function Le(l,d){let f=Ae(d);if(!f)return null;let{ver:c,partial:m}=f;switch(l){case"^":{let y=Oe(c);return y?[{op:">=",ver:c},{op:"<",ver:y}]:null}case"~":{let y=m>=2?{major:c.major,minor:c.minor+1,patch:0,pre:[]}:{major:c.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:c},{op:"<",ver:y}]}case">=":return[{op:">=",ver:c}];case">":return m===1?[{op:">=",ver:{major:c.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:c.major,minor:c.minor+1,patch:0,pre:[]}}]:[{op:">",ver:c}];case"<":return m===1?[{op:"<",ver:{major:c.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:c.major,minor:c.minor,patch:0,pre:[]}}]:[{op:"<",ver:c}];case"<=":return[{op:"<=",ver:c}];case"=":case void 0:return m===1?[{op:">=",ver:c},{op:"<",ver:{major:c.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:c},{op:"<",ver:{major:c.major,minor:c.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:c}];default:return null}}function Oe(l){return l.major>0?{major:l.major+1,minor:0,patch:0,pre:[]}:l.minor>0?{major:0,minor:l.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:l.patch+1,pre:[]}}function Ae(l){let d=l.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),c=[],m=0;for(let v of f.slice(0,3))if(/^\d+$/.test(v))c.push(Number(v)),m++;else{if(v==="x"||v==="X"||v==="*")break;break}let y=d.split("-"),b=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:c[0]??0,minor:c[1]??0,patch:c[2]??0,pre:b},partial:m}}function Me(l,d){switch(d){case">=":return l>=0;case">":return l>0;case"<":return l<0;case"<=":return l<=0;case"=":return l===0}}function Te(l,d,f){let c=`${l.major}.${l.minor}.${l.patch}`+(l.pre.length?`-${l.pre.join(".")}`:"");if(f.upper)return!(!(I(c,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(I(c,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=I(c,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),y=Me(m,f.op);return f.ver.pre.length>0&&l.pre.length===0&&(f.op===">"||f.op==="<")?!1:y}var w=class extends Error{code;details;constructor(d,f,c,m){super(`[fulgurjs:${d}] ${f}`,m),this.name="FgError",this.code=d,this.details=c}},E={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014"};var te="6.9.3";var Ie="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",G=15e3,oe=2,je=5,Ne=3e4,Ce=4e3,Ue=.2;function Ve(){let l=Object.create(null),d=new Map,f=[],c=new Set,m=new Map,y=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,v=new Map,M=new WeakMap,C=new WeakMap,_={},ie=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \u8FD0\u884C\u65F6\u6269\u5C55\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BE5\u6269\u5C55\u5C06\u4E0D\u53EF\u7528\uFF1A",e.name,r)}},U=new Map,V,F=e=>{let r=U.get(e);return r||U.set(e,r={}),r},X=()=>globalThis[xe]??{};async function B(e,r,n,o){let t=u=>u instanceof w?u:new w(E.SETUP_RUN_FAILED,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e}" \u7684 ${o} \u521D\u59CB\u5316\u5931\u8D25\u3002
1
+ var ve=/^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-((?:[0-9A-Za-z-]+)(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z.-]+)?$/;function N(l){let d=ve.exec(String(l).trim());return d?{major:Number(d[1]),minor:Number(d[2]??0),patch:Number(d[3]??0),pre:d[4]?d[4].split("."):[]}:null}function $e(l,d){if(l.length===0&&d.length===0)return 0;if(l.length===0)return 1;if(d.length===0)return-1;let f=Math.max(l.length,d.length);for(let c=0;c<f;c++){let m=l[c],y=d[c];if(m===void 0)return-1;if(y===void 0)return 1;let b=/^\d+$/.test(m),v=/^\d+$/.test(y);if(b&&v){let M=Number(m)-Number(y);if(M!==0)return M}else{if(b!==v)return b?-1:1;if(m!==y)return m<y?-1:1}}return 0}function I(l,d){let f=N(l),c=N(d);return!f||!c?l<d?-1:l>d?1:0:f.major!==c.major?f.major-c.major:f.minor!==c.minor?f.minor-c.minor:f.patch!==c.patch?f.patch-c.patch:$e(f.pre,c.pre)}var Pe=/^[a-z]+[+:-]/i;function x(l,d){if(d===!1||d==null||d==="")return!0;let f=String(d).trim();return!f||f==="*"||f==="latest"||Pe.test(f)?!0:f.split("||").some(c=>_e(l,c.trim()))}function _e(l,d){if(!d||d==="*")return!N(l)?.pre.length;let f=d.split(/\s+-\s+/);if(f.length===2){let y=f[0].trim(),b=f[1].trim();return!(!x(l,`>=${y}`)||!x(l,`<=${b}`))}let c=N(l);if(!c)return!1;let m=ke(d);if(m===null)return!0;for(let y of m)if(!Te(c,l,y))return!1;return!(c.pre.length>0&&!m.some(y=>y.ver.pre.length>0)&&!m.some(b=>b.ver.major===c.major&&b.ver.minor===c.minor&&b.ver.patch===c.patch))}function ke(l){let d=[],f=l.trim().split(/\s+/).filter(Boolean);if(f.length===0)return null;for(let c of f){let m=/^(>=|<=|>|<|=|\^|~)?(.*)$/.exec(c);if(!m)return null;let y=m[1],b=m[2],v=Le(y,b);if(v===null)return null;d.push(...v)}return d}function Le(l,d){let f=Ae(d);if(!f)return null;let{ver:c,partial:m}=f;switch(l){case"^":{let y=Oe(c);return y?[{op:">=",ver:c},{op:"<",ver:y}]:null}case"~":{let y=m>=2?{major:c.major,minor:c.minor+1,patch:0,pre:[]}:{major:c.major+1,minor:0,patch:0,pre:[]};return[{op:">=",ver:c},{op:"<",ver:y}]}case">=":return[{op:">=",ver:c}];case">":return m===1?[{op:">=",ver:{major:c.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:{major:c.major,minor:c.minor+1,patch:0,pre:[]}}]:[{op:">",ver:c}];case"<":return m===1?[{op:"<",ver:{major:c.major,minor:0,patch:0,pre:[]}}]:m===2?[{op:"<",ver:{major:c.major,minor:c.minor,patch:0,pre:[]}}]:[{op:"<",ver:c}];case"<=":return[{op:"<=",ver:c}];case"=":case void 0:return m===1?[{op:">=",ver:c},{op:"<",ver:{major:c.major+1,minor:0,patch:0,pre:[]}}]:m===2?[{op:">=",ver:c},{op:"<",ver:{major:c.major,minor:c.minor+1,patch:0,pre:[]}}]:[{op:"=",ver:c}];default:return null}}function Oe(l){return l.major>0?{major:l.major+1,minor:0,patch:0,pre:[]}:l.minor>0?{major:0,minor:l.minor+1,patch:0,pre:[]}:{major:0,minor:0,patch:l.patch+1,pre:[]}}function Ae(l){let d=l.replace(/^v/,"").trim();if(!d||d==="*"||d==="x"||d==="X")return{ver:{major:0,minor:0,patch:0,pre:[]},partial:0};let f=d.split("."),c=[],m=0;for(let v of f.slice(0,3))if(/^\d+$/.test(v))c.push(Number(v)),m++;else{if(v==="x"||v==="X"||v==="*")break;break}let y=d.split("-"),b=y.length>1?y.slice(1).join("-").split("+")[0].split("."):[];return m===0&&b.length===0?{ver:{major:0,minor:0,patch:0,pre:[]},partial:0}:{ver:{major:c[0]??0,minor:c[1]??0,patch:c[2]??0,pre:b},partial:m}}function Me(l,d){switch(d){case">=":return l>=0;case">":return l>0;case"<":return l<0;case"<=":return l<=0;case"=":return l===0}}function Te(l,d,f){let c=`${l.major}.${l.minor}.${l.patch}`+(l.pre.length?`-${l.pre.join(".")}`:"");if(f.upper)return!(!(I(c,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:""))>=0)||!(I(c,`${f.upper.major}.${f.upper.minor}.${f.upper.patch}`)<0));let m=I(c,`${f.ver.major}.${f.ver.minor}.${f.ver.patch}`+(f.ver.pre.length?`-${f.ver.pre.join(".")}`:"")),y=Me(m,f.op);return f.ver.pre.length>0&&l.pre.length===0&&(f.op===">"||f.op==="<")?!1:y}var w=class extends Error{code;details;constructor(d,f,c,m){super(`[fulgurjs:${d}] ${f}`,m),this.name="FgError",this.code=d,this.details=c}},E={REMOTE_LOAD_FAILED:"MFU-001",REMOTE_NAME_MISMATCH:"MFU-002",SHARE_STRICT_VERSION:"MFU-003",SHARE_NOT_AVAILABLE:"MFU-004",CONTAINER_REINIT_CONFLICT:"MFU-005",MODULE_NOT_EXPOSED:"MFU-006",PRELOAD_FAILED:"MFU-007",REMOTE_UNKNOWN:"MFU-008",EMPTY_EXPORTS:"MFU-009",SINGLETON_SKEW:"MFU-010",SETUP_INVALID_EXPORT:"MFU-011",SETUP_RUN_FAILED:"MFU-012",SETUP_SESSION_KEY_MISSING:"MFU-013",SETUP_RECURSION:"MFU-014"};var te="6.10.0";var Ie="__fulgurjsSetup",xe="__FULGURJS_APP_CONFIG__",G=15e3,oe=2,je=5,Ne=3e4,Ce=4e3,Ue=.2;function Ve(){let l=Object.create(null),d=new Map,f=[],c=new Set,m=new Map,y=(e,r)=>JSON.stringify([r.shareScope||"default",r.shareKey||e,r.requiredVersion??null,!!r.singleton,!!r.strictVersion]),b=new Map,v=new Map,M=new WeakMap,C=new WeakMap,_={},ie=()=>{for(let e of f)try{e.init?.(_)}catch(r){console.warn("[fulgurjs] \u8FD0\u884C\u65F6\u6269\u5C55\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BE5\u6269\u5C55\u5C06\u4E0D\u53EF\u7528\uFF1A",e.name,r)}},U=new Map,V,F=e=>{let r=U.get(e);return r||U.set(e,r={}),r},X=()=>globalThis[xe]??{};async function B(e,r,n,o){let t=u=>u instanceof w?u:new w(E.SETUP_RUN_FAILED,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e}" \u7684 ${o} \u521D\u59CB\u5316\u5931\u8D25\u3002
2
2
  \u539F\u56E0\uFF1A${String(u?.message??u)}
3
3
  \u4FEE\u6CD5\uFF1A\u68C0\u67E5\u5E76\u4FEE\u590D\u8BE5 ${o} \u51FD\u6570\u540E\u91CD\u65B0\u52A0\u8F7D\uFF1B\u5931\u8D25\u7F13\u5B58\u5DF2\u6E05\u9664\uFF0C\u53EF\u4EE5\u76F4\u63A5\u91CD\u8BD5\u3002`,{remote:e,phase:o},{cause:u});V=e;let s;try{s=r(n)}catch(u){throw t(u)}finally{V=void 0}try{await s}catch(u){throw t(u)}}async function ae(e,r,n,o){e.debug.setup="pending";try{if(e.manifestUrl)try{await H(`${e.name}/${n}`)}catch{}let t=await r.get(n),s=t?.default;if(typeof s!="function")throw new w(E.SETUP_INVALID_EXPORT,`\u73B0\u8C61\uFF1A\u8FDC\u7A0B\u5E94\u7528 "${e.name}" \u7684 setup \u6A21\u5757 "${n}" \u65E0\u6CD5\u521D\u59CB\u5316\u3002
4
4
  \u539F\u56E0\uFF1A\u9ED8\u8BA4\u5BFC\u51FA\u7C7B\u578B\u4E3A ${t==null?String(t):typeof s}\uFF0C\u5E94\u4E3A\u51FD\u6570\u3002
@@ -305,7 +305,7 @@ var SECONDARY_BUTTON_STYLE = {
305
305
  fontSize: "13px",
306
306
  cursor: "pointer"
307
307
  };
308
- var RemoteErrorPlaceholder = (0, import_vue.defineComponent)({
308
+ var RemoteErrorPlaceholder = /* @__PURE__ */ (0, import_vue.defineComponent)({
309
309
  name: "FulgurjsRemoteError",
310
310
  props: {
311
311
  error: { type: Object, default: void 0 },
@@ -39,7 +39,7 @@ var SECONDARY_BUTTON_STYLE = {
39
39
  fontSize: "13px",
40
40
  cursor: "pointer"
41
41
  };
42
- var RemoteErrorPlaceholder = defineComponent({
42
+ var RemoteErrorPlaceholder = /* @__PURE__ */ defineComponent({
43
43
  name: "FulgurjsRemoteError",
44
44
  props: {
45
45
  error: { type: Object, default: void 0 },
package/dist/vue.js CHANGED
@@ -8,12 +8,12 @@ import { createVueBridgeAppWithLoader } from "./bridge-host-vue.js";
8
8
  import { createVueBridgeNavigation, connectVueBridgeRouter, installVueBridgeRouter } from "./bridge-router-vue.js";
9
9
  import { createBridgeSession } from "./bridge-session.js";
10
10
  import { hasBridgeMount } from "./bridge-core.js";
11
- export const remoteComponent = createRemoteComponent(loadRemote);
11
+ export const remoteComponent = /*#__PURE__*/ createRemoteComponent(loadRemote);
12
12
  export const createHostPages = (options) => createHostPagesWithLoader(options, loadRemote);
13
13
  export const defineBridgeApp = defineVueBridgeApp;
14
14
  export { defineApplication } from "./bridge-app-vue.js";
15
15
  export { bindStoreToApp } from "./vue-store.js";
16
- export const createVueBridgeApp = createVueBridgeAppWithLoader(loadRemote);
16
+ export const createVueBridgeApp = /*#__PURE__*/ createVueBridgeAppWithLoader(loadRemote);
17
17
  export { createVueBridgeNavigation, connectVueBridgeRouter, installVueBridgeRouter };
18
18
  export { createBridgeSession };
19
19
  export { hasBridgeMount };
@@ -5,6 +5,12 @@
5
5
 
6
6
  五个可独立复制、`pnpm install` 后直接运行的联邦接入模板。全部使用 **npm registry 正式包** `@fulgurjs/federation`(精确版本 + pnpm 锁文件,钉定版本见各模板 package.json;统一入口 /vue、/react、/runtime——模板代码即统一入口用法),不依赖本仓库源码、workspace 或父目录。
7
7
 
8
+ ## 已有工程怎么参考这些样板
9
+
10
+ 这些模板展示接入完成后的代码,不要求你把已有应用换成模板。已有工程先按[接入指南](https://github.com/chenmingye/fulgurjs-federation/blob/master/docs/zh/guide/existing-apps.md)使用 `init --plan` 预览需要改动的位置,确认后 `--write`。
11
+
12
+ 普通组件/模块参考 vue-vue 或 react-react 的 config 和消费视图;完整子应用参考跨框架模板的 application 与宿主挂载视图;需要 URL 同步时参考 showcase。不需要的会话、路由和 Provider 不要一起复制。自动工具遇到复杂业务装配会保留人工待办,不能把生成文件视为已验收。
13
+
8
14
  ## 获取模板的两种方式
9
15
 
10
16
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fulgurjs/federation",
3
- "version": "6.9.3",
3
+ "version": "6.10.0",
4
4
  "type": "module",
5
5
  "description": "Vite Module Federation for Vue and React: remote modules, shared dependencies and app bridges.",
6
6
  "license": "MIT",
@@ -122,7 +122,7 @@
122
122
  "types"
123
123
  ],
124
124
  "scripts": {
125
- "build": "cp ../../README.md README.md && cp ../../README.en.md README.en.md && mkdir -p docs && mkdir -p docs/zh/reference docs/en/reference docs/maintainers && cp ../../docs/zh/reference/api.md ../../docs/zh/reference/errors.md ../../docs/zh/reference/types.md docs/zh/reference/ && cp ../../docs/en/reference/api.md ../../docs/en/reference/errors.md ../../docs/en/reference/types.md docs/en/reference/ && cp ../../docs/maintainers/webpack-mf-对照与缺口.md ../../docs/maintainers/沙箱边界审计.md ../../docs/maintainers/compatibility-testing.md docs/maintainers/ && cp ../../CHANGELOG.md CHANGELOG.md && node scripts/sync-package-examples.mjs && esbuild src/runtime/index.ts --bundle --format=esm --target=es2022 --minify --outfile=dist/runtime.js && node scripts/gen-runtime.mjs && tsup src/index.ts src/pages.ts src/vue-adapter.ts src/react-adapter.ts src/context.ts src/bridge-core.ts src/bridge-errors.ts src/bridge-session.ts src/bridge-app-vue.ts src/bridge-app-react.ts src/vue-store.ts src/bridge-host-vue.ts src/bridge-host-react.ts --format esm,cjs --dts --external vite --external @fulgurjs/federation/internal/registry.js --target node18 --clean && tsup src/runtime-entry.ts --format esm --dts --external vite --external @fulgurjs/federation/internal/registry.js --target node18 && tsup src/vue.ts --format esm --dts --external vite,vue,vue-router,@fulgurjs/federation/internal/registry.js --target node18 && tsup src/react.ts --format esm --dts --external vite,react,react-dom,react-router-dom,@fulgurjs/federation/internal/registry.js --target node18 && tsup src/bridge-router-vue.ts --format esm --dts --external vite,vue,vue-router --target node18 && tsup src/bridge-router-react.tsx --format esm --dts --external vite,react,react-dom,react-router-dom --target node18 && esbuild src/cli.ts --bundle --format=esm --target=node18 --platform=node --outfile=dist/cli.js && esbuild src/runtime/index.ts --bundle --format=esm --target=es2022 --minify --outfile=dist/runtime.js && node scripts/gen-runtime-entry.mjs && node scripts/check-gzip.mjs && node scripts/check-manual-codes.mjs",
125
+ "build": "cp ../../README.md README.md && cp ../../README.en.md README.en.md && mkdir -p docs && mkdir -p docs/zh/reference docs/en/reference docs/maintainers && cp ../../docs/zh/reference/api.md ../../docs/zh/reference/errors.md ../../docs/zh/reference/types.md docs/zh/reference/ && cp ../../docs/en/reference/api.md ../../docs/en/reference/errors.md ../../docs/en/reference/types.md docs/en/reference/ && cp ../../docs/maintainers/webpack-mf-对照与缺口.md ../../docs/maintainers/沙箱边界审计.md ../../docs/maintainers/compatibility-testing.md docs/maintainers/ && cp ../../CHANGELOG.md CHANGELOG.md && node scripts/sync-package-examples.mjs && esbuild src/runtime/index.ts --bundle --format=esm --target=es2022 --minify --outfile=dist/runtime.js && node scripts/gen-runtime.mjs && tsup src/index.ts src/pages.ts src/vue-adapter.ts src/react-adapter.ts src/context.ts src/bridge-core.ts src/bridge-errors.ts src/bridge-session.ts src/bridge-app-vue.ts src/bridge-app-react.ts src/vue-store.ts src/bridge-host-vue.ts src/bridge-host-react.ts --format esm,cjs --dts --external vite --external @fulgurjs/federation/internal/registry.js --target node18 --clean && tsup src/runtime-entry.ts --format esm --dts --external vite --external @fulgurjs/federation/internal/registry.js --target node18 && tsup src/vue.ts --format esm --dts --external vite,vue,vue-router,@fulgurjs/federation/internal/registry.js --target node18 && tsup src/react.ts --format esm --dts --external vite,react,react-dom,react-router-dom,@fulgurjs/federation/internal/registry.js --target node18 && tsup src/bridge-router-vue.ts --format esm --dts --external vite,vue,vue-router --target node18 && tsup src/bridge-router-react.tsx --format esm --dts --external vite,react,react-dom,react-router-dom --target node18 && esbuild src/cli.ts --bundle --format=esm --target=node18 --platform=node --outfile=dist/cli.js && esbuild src/runtime/index.ts --bundle --format=esm --target=es2022 --minify --outfile=dist/runtime.js && node scripts/gen-runtime-entry.mjs && node scripts/check-gzip.mjs && node scripts/check-tree-shaking.mjs && node scripts/check-manual-codes.mjs",
126
126
  "dev": "tsup --watch",
127
127
  "test": "vitest run --dir tests",
128
128
  "typecheck": "tsc --noEmit",