@ttmg/cli 0.3.2-beta.7 → 0.3.2-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/index.js +6552 -8
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +5 -2
  4. package/dist/public/assets/{index-CW9D9cbx.js → index-B7gDE9jg.js} +1 -1
  5. package/dist/public/assets/{index-C0C36jb2.js → index-BGB_3rmy.js} +5 -5
  6. package/dist/public/assets/index-BGB_3rmy.js.br +0 -0
  7. package/dist/public/assets/{index-uov949jQ.js → index-BGxy8aq-.js} +1 -1
  8. package/dist/public/assets/index-BGxy8aq-.js.br +0 -0
  9. package/dist/public/assets/{index-BkVEWAPY.js → index-Be7GH3NR.js} +1 -1
  10. package/dist/public/assets/{index-DqL2KSXM.js → index-C-hKdJe4.js} +1 -1
  11. package/dist/public/assets/{index-B6sOtD-C.js → index-CZeMe3yb.js} +1 -1
  12. package/dist/public/assets/index-CZeMe3yb.js.br +0 -0
  13. package/dist/public/assets/{index-GteNW6eR.js → index-DCvzzS3c.js} +1 -1
  14. package/dist/public/assets/index-DCvzzS3c.js.br +0 -0
  15. package/dist/public/assets/{index-Dg2qShwB.js → index-DTYGiGBE.js} +1 -1
  16. package/dist/public/assets/{index-DwEKoL_q.js → index-DZh72DCT.js} +1 -1
  17. package/dist/public/assets/{index-DQ4KFxPV.js → index-NjsKimh-.js} +1 -1
  18. package/dist/public/assets/{index-DfNs0hDP.js → index-dPxUjVAV.js} +1 -1
  19. package/dist/public/assets/index-sz2rmYug.js +1 -0
  20. package/dist/public/index.html +1 -1
  21. package/dist/scripts/build.js +6 -0
  22. package/dist/scripts/test-protocol.js +29 -0
  23. package/dist/scripts/test-regression.js +94 -0
  24. package/dist/scripts/test-regression.ts +93 -0
  25. package/package.json +5 -2
  26. package/dist/public/assets/index-B6sOtD-C.js.br +0 -0
  27. package/dist/public/assets/index-C0C36jb2.js.br +0 -0
  28. package/dist/public/assets/index-CaSOlQza.js +0 -1
  29. package/dist/public/assets/index-GteNW6eR.js.br +0 -0
  30. package/dist/public/assets/index-uov949jQ.js.br +0 -0
@@ -1 +1 @@
1
- import{G as re,r as f,B as q,c as P,R as b,v as Y,y as J,ag as ee,P as u,V as ne,ah as le,g as A,ai as ie,f as N,aj as z,i as c,j as s,m as j,h as $,F as H,ak as T,d as oe,u as ce,al as de,K as ue,ad as pe}from"./index-C0C36jb2.js";function me(t){return f.createElement("svg",Object.assign({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",focusable:!1,"aria-hidden":!0},t),f.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2 4c0-1.1.9-2 2-2h5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4Zm0 11c0-1.1.9-2 2-2h5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5ZM15 2a2 2 0 0 0-2 2v5c0 1.1.9 2 2 2h5a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-5Zm1 12.5a1.5 1.5 0 0 1 3 0V16h1.5a1.5 1.5 0 0 1 0 3H19v1.5a1.5 1.5 0 0 1-3 0V19h-1.5a1.5 1.5 0 0 1 0-3H16v-1.5Z",fill:"currentColor"}))}const fe=re(me,"customize"),W={PREFIX:`${q}-steps`,ITEM:`${q}-steps-item`};var F;(function(t){t.small="large",t.default="extra-large"})(F||(F={}));const M=t=>{const{prefixCls:e,className:r,size:a,title:n,description:l,status:m,style:d,active:i,done:o,icon:g,stepNumber:x,onClick:w,onChange:h,onKeyDown:C}=t,S=()=>{let _,E;if("icon"in t)b.isValidElement(g)&&(_=g);else if("status"in t)switch(m){case"error":_=b.createElement(ee,{size:F[a]});break;case"wait":_=b.createElement("span",{className:`${e}-number-icon`},x);break;case"process":_=b.createElement("span",{className:`${e}-number-icon`},x),E=!0;break;case"finish":_=b.createElement(J,{size:F[a]});break;case"warning":_=b.createElement(Y,{size:F[a]});break;default:_=null;break}const ae=P({[`${e}-icon`]:!0,[`${e}-custom-icon`]:"icon"in t,[`${e}-icon-process`]:E});return _?b.createElement("span",{className:ae},_):null},v=P(e,`${e}-${m}`,{[`${e}-active`]:i,[`${e}-done`]:o,[`${e}-hover`]:h||t.onClick,[`${e}-clickable`]:h||w,[`${e}-${m}-hover`]:h||t.onClick},r),p=_=>{w?.(_),h?.()},k=_=>{_.key==="Enter"&&(C?.(_),h?.())};return b.createElement("div",{role:t.role,"aria-label":t["aria-label"],tabIndex:0,"aria-current":"step",className:v,style:d,onClick:_=>p(_),onKeyDown:k},b.createElement("div",{className:`${e}-container`},b.createElement("div",{className:`${e}-left`},S()),b.createElement("div",{className:`${e}-content`},b.createElement("div",{className:`${e}-title`},b.createElement("div",{className:`${e}-title-text`},n)),l&&b.createElement("div",{className:`${e}-description`},l))))};M.propTypes={prefixCls:u.string,description:u.node,icon:u.node,status:u.oneOf(["wait","process","finish","error","warning"]),title:u.node,className:u.string,style:u.object,onClick:u.func,active:u.bool,done:u.bool};M.defaultProps={prefixCls:W.ITEM,active:!1,done:!1,status:"wait",className:""};const B=t=>{const{prefixCls:e,className:r,title:a,description:n,status:l,style:m,onClick:d,icon:i,onChange:o,stepNumber:g,onKeyDown:x}=t,w=()=>{let S,v;if("icon"in t)S=i;else if("status"in t)switch(l){case"error":S=b.createElement(ee,{size:"extra-large"});break;case"wait":S=g;break;case"process":S=g,v=!0;break;case"finish":S=b.createElement(J,{size:"extra-large"});break;case"warning":S=b.createElement(Y,{size:"extra-large"});break;default:S=null;break}const p=P({[`${e}-left`]:!0,[`${e}-icon`]:"icon"in t,[`${e}-plain`]:!("icon"in t),[`${e}-icon-process`]:v,[`${e}-hover`]:o||d});return S?b.createElement("div",{className:p},S):null},h=S=>{d?.(S),o?.()},C=S=>{S.key==="Enter"&&(x?.(S),o?.())};return b.createElement("div",{role:t.role,"aria-label":t["aria-label"],"aria-current":"step",tabIndex:0,className:P({[e]:!0,[`${e}-${l}`]:!!l,[`${e}-${l}-hover`]:!!l&&(o||d),[`${e}-${l}-active`]:!!l&&(o||d),[`${e}-clickable`]:o||d},r),style:m,onClick:S=>{h(S)},onKeyDown:C},w(),b.createElement("div",{className:`${e}-content`},b.createElement("div",{className:`${e}-title`,title:typeof a=="string"?a:null},b.createElement("span",{className:`${e}-title-text`},a)),b.createElement("div",{className:`${e}-description`,title:typeof n=="string"?n:null},n)))};B.propTypes={prefixCls:u.string,description:u.node,icon:u.node,status:u.oneOf(["wait","process","finish","error","warning"]),title:u.node,className:u.string,style:u.object,onClick:u.func};B.defaultProps={prefixCls:W.ITEM,status:"wait",className:""};const G=t=>{const{prefixCls:e,className:r,title:a,style:n,active:l,index:m,total:d,onClick:i,onKeyDown:o,onChange:g}=t,x=P(e,{[`${e}-active`]:l},r),w=C=>{i?.(C),g?.()},h=C=>{C.key==="Enter"&&(o?.(C),g?.())};return b.createElement("div",{role:t.role,"aria-label":t["aria-label"],"aria-current":"step",tabIndex:0,className:x,style:n,onClick:C=>w(C),onKeyDown:h},b.createElement("div",{className:`${e}-container`},b.createElement("div",{className:`${e}-content`},b.createElement("div",{className:`${e}-title`},a)),m!==d-1&&b.createElement("div",{className:`${e}-icon`},b.createElement(ne,{size:"small"}))))};G.propTypes={prefixCls:u.string,title:u.node,className:u.string,style:u.object,onClick:u.func,active:u.bool};G.defaultProps={prefixCls:W.ITEM,active:!1,className:""};const te=b.createContext(null),we=t=>{const{type:e}=f.useContext(te);return(()=>{switch(e){case"fill":return b.createElement(B,Object.assign({},t));case"basic":return b.createElement(M,Object.assign({},t));case"nav":return b.createElement(G,Object.assign({},t));default:return null}})()};var he=function(t,e){var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)e.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(r[a[n]]=t[a[n]]);return r};const V=t=>{const{current:e,status:r,children:a,prefixCls:n,initial:l,direction:m,className:d,style:i,onChange:o}=t,g=he(t,["current","status","children","prefixCls","initial","direction","className","style","onChange"]),x=f.useMemo(()=>{const h=f.Children.toArray(a).filter(v=>f.isValidElement(v)),C=m==="vertical"?null:{width:`${100/h.length}%`};return f.Children.map(h,(v,p)=>{if(!v)return null;const k=l+p,_=Object.assign({stepNumber:`${k+1}`,direction:m},v.props);return r==="error"&&p===e-1&&(_.className=`${n}-next-error`),v.props.status||(k===e?_.status=r:k<e?_.status="finish":_.status="wait"),_.onChange=o?()=>{p!==e&&o(p+l)}:void 0,b.createElement(le,{style:C},f.cloneElement(v,Object.assign({},_)))})},[a,l,n,m,r,e,o]),w=P(d,{[n]:!0,[`${n}-${m}`]:!0});return b.createElement("div",Object.assign({className:w,style:i,"aria-label":t["aria-label"]},A(g)),b.createElement(ie,{type:"flex",justify:"start"},x))};V.propTypes={prefixCls:u.string,className:u.string,style:u.object,current:u.number,initial:u.number,direction:u.oneOf(["horizontal","vertical"]),status:u.oneOf(["wait","process","finish","error","warning"])};V.defaultProps={prefixCls:W.PREFIX,current:0,direction:"horizontal",initial:0,status:"process"};var ge=function(t,e){var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)e.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(r[a[n]]=t[a[n]]);return r};const U=t=>{const{size:e,current:r,status:a,children:n,prefixCls:l,initial:m,direction:d,className:i,style:o,hasLine:g,onChange:x}=t,w=ge(t,["size","current","status","children","prefixCls","initial","direction","className","style","hasLine","onChange"]),h=f.useMemo(()=>{const S=f.Children.toArray(n).filter(p=>f.isValidElement(p));return f.Children.map(S,(p,k)=>{if(!p)return null;const _=m+k,E=Object.assign({stepNumber:`${_+1}`,size:e},p.props);return a==="error"&&k===r-1&&(E.className=`${l}-next-error`),p.props.status||(_===r?E.status=a:_<r?E.status="finish":E.status="wait"),E.active=_===r,E.done=_<r,E.onChange=x?()=>{k!==r&&x(k+m)}:void 0,f.cloneElement(p,Object.assign({},E))})},[n,m,l,d,a,r,e,x]),C=P(i,{[`${l}-basic`]:!0,[`${l}-${d}`]:!0,[`${l}-${e}`]:e!=="default",[`${l}-hasline`]:g});return b.createElement("div",Object.assign({"aria-label":t["aria-label"],className:C,style:o},A(w)),h)};U.propTypes={prefixCls:u.string,className:u.string,style:u.object,current:u.number,initial:u.number,direction:u.oneOf(["horizontal","vertical"]),status:u.oneOf(["wait","process","finish","error","warning"]),hasLine:u.bool};U.defaultProps={prefixCls:W.PREFIX,current:0,direction:"horizontal",size:"",initial:0,hasLine:!0,status:"process"};var xe=function(t,e){var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)e.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(r[a[n]]=t[a[n]]);return r};const L=t=>{const{size:e,current:r,initial:a,children:n,prefixCls:l,className:m,style:d,onChange:i}=t,o=xe(t,["size","current","initial","children","prefixCls","className","style","onChange"]),g=f.useMemo(()=>{const w=f.Children.toArray(n).filter(S=>f.isValidElement(S)),h=w.length;return f.Children.map(w,(S,v)=>{if(!S)return null;const p=Object.assign({index:v,total:h},S.props);return p.active=v===r,p.onChange=i?()=>{v!==r&&i(v+a)}:void 0,f.cloneElement(S,Object.assign({},p))})},[n,l,r,e,a,i]),x=P(m,{[`${l}-nav`]:!0,[`${l}-${e}`]:e!=="default"});return b.createElement("div",Object.assign({"aria-label":t["aria-label"],className:x,style:d},A(o)),g)};L.propTypes={prefixCls:u.string,className:u.string,style:u.object,current:u.number,initial:u.number,size:u.oneOf(["small","default"])};L.defaultProps={prefixCls:W.PREFIX,current:0,direction:"horizontal",size:"default",initial:0,status:"process"};var be=function(t,e){var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)e.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(r[a[n]]=t[a[n]]);return r};class R extends f.Component{renderComponent(){const e=this.props,{type:r}=e,a=be(e,["type"]);switch(r){case"fill":return b.createElement(V,Object.assign({},a));case"basic":return b.createElement(U,Object.assign({},a));case"nav":return b.createElement(L,Object.assign({},a));default:return null}}render(){const{type:e}=this.props;return b.createElement(te.Provider,{value:{type:e}},this.renderComponent())}}R.Step=we;R.propTypes={onChange:u.func,type:u.oneOf(["fill","basic","nav"]),size:u.oneOf(["small","default"])};R.defaultProps={type:"fill",size:"default"};const O={Idle:0,WasmPreparing:1,WasmPrepared:2,WasmSplitIssued:3,WasmSplitting:4,WasmSplitDone:5,WasmReadyToPrepare:6,WasmSplitPreparing:7,WasmPreparedSuccess:8,WasmCollecting:9,WasmUploadFail:-1,WasmDownloadFail:-2,WasmFileNotExist:-3,WasmSplitFail:-4,WasmSplitUpdateDBFail:-5,WasmSplitPrepareFail:-6,WasmPrepareFailed:-1};function Se({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-split-config",method:"GET",data:{codeMd5:t,clientKey:e}})}function ve(t){const{codePath:e,codeMd5:r,clientKey:a,desc:n}=t;return N({url:"/game/wasm-prepare",method:"POST",data:{codePath:e,clientKey:a,codeMd5:r,desc:n}})}function _e({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-prepare-result",method:"POST",data:{codeMd5:t,clientKey:e}})}function Ce(t,e){const r=e?.intervalMs,a=e?.maxAttempts,n=e?.signal||new AbortController().signal;let l=0;return new Promise((m,d)=>{if(n?.aborted){d(new DOMException("Polling aborted","AbortError"));return}const i=()=>{clearTimeout(o),d(new DOMException("Polling aborted","AbortError"))};n?.addEventListener("abort",i,{once:!0});let o;const g=async()=>{l+=1;try{const x=await _e(t),{status:w}=x.data;if(w===O.WasmPreparedSuccess||w===O.WasmSplitDone){m(x);return}if(w<0){m(x);return}if(l>=a){d(new Error(`Polling timeout after ${a} attempts`));return}o=window.setTimeout(g,r)}catch(x){if(l>=a){d(x);return}o=window.setTimeout(g,r)}};g()})}function je({codeMd5:t,clientKey:e,codePath:r}){return N({url:"/game/wasm-prepare-download",method:"POST",data:{codeMd5:t,clientKey:e,codePath:r}})}function ye(t){const{codeMd5:e,clientKey:r}=t;return N({url:"/game/wasm-split",method:"POST",data:{codeMd5:e,clientKey:r}})}function ke({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-split-result",method:"POST",data:{codeMd5:t,clientKey:e}})}function Ne(t,e){const r=e?.intervalMs,a=e?.maxAttempts,n=e?.signal||new AbortController().signal;let l=0;return new Promise((m,d)=>{if(n?.aborted){d(new DOMException("Polling aborted","AbortError"));return}const i=()=>{clearTimeout(o),d(new DOMException("Polling aborted","AbortError"))};n?.addEventListener("abort",i,{once:!0});let o;const g=async()=>{l+=1;try{const x=await ke(t),{status:w}=x.data;if(w!==O.WasmSplitDone){if(l>=a){d(new Error(`Polling timeout after ${a} attempts`));return}o=window.setTimeout(g,r);return}m(x)}catch(x){if(l>=a){d(x);return}o=window.setTimeout(g,r)}};g()})}function Ee({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-split-download-result",method:"POST",data:{clientKey:e,codeMd5:t}})}function Pe(t){return N({url:"/game/wasm-split-download",method:"POST",data:t})}function se(t){const{codeMd5:e,clientKey:r,codePath:a}=t;return N({url:"/game/wasm-split-reset",method:"POST",data:{codeMd5:e,clientKey:r,codePath:a}})}function Oe({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-taskinfo",method:"GET",data:{codeMd5:t,clientKey:e}})}function $e({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-set-collect",method:"POST",data:{codeMd5:t,clientKey:e}})}function X(t){return N({url:"/game/wasm-collect-funcids",method:"GET",data:t})}function Re(t){return N({url:"/game/wasm-collect-info",method:"GET",data:t})}const D={container:"wasm-prepare-downloading-content",process:"wasm-prepare-downloading-text",success:"wasm-prepare-downloading-success",error:"wasm-prepare-downloading-error"},Te=({kind:t,children:e})=>{const r={process:D.process,success:D.success,error:D.error};return s.jsx("div",{className:r[t],children:e})},Z={star_fetch_prepared_wasm_url:{kind:"process",text:"fetchDownloadUrl",showSpin:!0},fetch_prepared_wasm_url_done:{kind:"success",text:"fetchDownloadUrlSuccess",showSpin:!0},fetch_prepared_wasm_url_failed:{kind:"error",text:"fetchDownloadUrlFailed",appendError:!0},start_download_prepared_wasm:{kind:"process",text:"downloadPreparedWasmCode",showSpin:!0},download_prepared_wasm_done:{kind:"success",text:"downloadPreparedWasmCodeSuccess",showSpin:!0},download_prepared_wasm_failed:{kind:"error",text:"downloadPreparedWasmCodeFailed",appendError:!0,showRetry:!0},start_compress_prepared_wasm:{kind:"process",text:"compressPreparedWasmCode",showSpin:!0},compress_prepared_wasm_done:{kind:"success",text:"compressPreparedWasmCodeSuccess",showSpin:!0},start_write_compress_prepared_wasm:{kind:"process",text:"writeCompressPreparedWasmCode",showSpin:!0},start_update_wasm_split_config:{kind:"process",text:"updateWasmSplitConfig",showSpin:!0},update_wasm_split_config_done:{kind:"success",text:"updateWasmSplitConfigSuccess"},update_wasm_split_config_failed:{kind:"error",text:"updateWasmSplitConfigFailed",appendError:!0},default:{kind:"process",text:"processing",showSpin:!0}},We=({onCancel:t,onRetry:e,onHide:r})=>{const[a,n]=f.useState(""),[l,m]=f.useState("");f.useEffect(()=>{const g=x=>{n(x.status),m(x.errorMsg||"")};return z.on("unitySplitStatus",g),()=>{z.off("unitySplitStatus",g)}},[]);const d=f.useMemo(()=>Z[a]??Z.default,[a]),i=s.jsx($,{size:"large",color:"primary"}),o=typeof d.text=="string"?c(d.text)??d.text:"";return s.jsxs("div",{className:D.container,children:[d.showSpin&&i,!!o&&s.jsx(Te,{kind:d.kind,children:o}),d.appendError&&!!l&&s.jsx("div",{className:D.error,children:l}),d.showRetry&&s.jsx(j,{onClick:e,children:c("retryDownload")}),s.jsx(j,{style:{marginTop:12},type:"tertiary",onClick:r,children:c("backgroundRun")})]})},Fe=({onSubmit:t,onCancel:e,onChange:r})=>s.jsxs(H,{style:{width:"100%",transform:"translateY(-20px)"},onChange:r,onSubmit:t,children:[s.jsx(H.TextArea,{rules:[{required:!0,message:c("inputSplitDesc")}],label:c("splitDesc"),placeholder:c("inputSplitDesc"),field:"desc"}),s.jsxs("div",{className:"wasm-prepare-form-button-container",children:[s.jsx(j,{type:"tertiary",htmlType:"submit",style:{marginRight:12},children:c("startPrepare")}),s.jsx(j,{type:"tertiary",onClick:e,children:c("cancel")})]})]}),y={init:"init",start:"start",processing:O.WasmPreparing,processingReady:O.WasmReadyToPrepare,success:O.WasmPreparedSuccess,failed:O.WasmPrepareFailed,splitDone:O.WasmSplitDone,downloading:"downloading",downloadFailed:"downloadFailed"},K=new AbortController,De=({codePath:t,codeMd5:e,clientKey:r,onCancel:a,onNext:n,onHide:l})=>{const[m,d]=f.useState(""),[i,o]=f.useState({code:0,data:{status:y.init}}),g=f.useMemo(()=>i?.data?.status,[i?.data?.status]),x=()=>{K.abort(),a(),se({codeMd5:e,clientKey:r,codePath:t}).then(p=>{p.code===0&&o({...i,data:{...i?.data,status:y.init}})})},w=()=>{o({code:0,data:{status:y.start}}),ve({codePath:t,codeMd5:e,clientKey:r,desc:m}).then(p=>{p.code===0||p?.error?.code===10024||p?.error?.code===10028?(o({...p,data:{...p?.data,status:y.processing}}),h()):o({...i,error:p?.error||{code:-1,message:"Internal server error, please try again later..."},data:{...i?.data,status:y.failed}})})},h=()=>{Ce({codeMd5:e,clientKey:r},{intervalMs:500,maxAttempts:100,signal:K.signal}).then(p=>{p.code===0?o(p):o({...i,data:{...i?.data}})})},C=()=>{o({...i,data:{...i?.data,status:"downloading"}}),je({codePath:t,codeMd5:e,clientKey:r}).then(p=>{p.code===0?(o({...i,data:{...i?.data,status:y.success}}),n()):o({...i,data:{...i?.data,status:y.downloadFailed}})})},S=p=>{d(p?.values?.desc)};let v=null;switch(g){case y.init:v=s.jsx(Fe,{onSubmit:w,onCancel:a,onChange:S});break;case y.start:v=s.jsxs("div",{className:"wasm-prepare-processing-content",children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:"wasm-prepare-processing-text",children:c("startingPrepare")}),s.jsx("div",{className:"wasm-prepare-processing-cancel",children:s.jsxs(T,{children:[s.jsx(j,{type:"danger",onClick:a,children:c("cancelPrepare")}),s.jsx(j,{onClick:()=>l(),children:c("backgroundRun")})]})})]});break;case y.processing:case y.processingReady:v=s.jsxs("div",{className:"wasm-prepare-processing-content",children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:"wasm-prepare-processing-text",children:c("preparingSplit")}),s.jsx("div",{className:"wasm-prepare-processing-warning",children:c("warningDuringPreparing")}),s.jsx("div",{className:"wasm-prepare-processing-cancel",children:s.jsxs(T,{children:[s.jsx(j,{type:"tertiary",onClick:()=>{x()},children:c("cancelPrepare")}),s.jsx(j,{type:"tertiary",onClick:()=>l(),children:c("backgroundRun")})]})})]});break;case y.success:case y.splitDone:v=s.jsxs("div",{className:"wasm-prepare-success-content",children:[s.jsx("div",{className:"wasm-prepare-success-text",children:c("preparingSplitSuccess")}),s.jsx("div",{className:"wasm-prepare-success-download",children:s.jsx(j,{type:"tertiary",onClick:()=>{C()},children:c("downloadPreparedWasmCode")})})]});break;case y.downloading:v=s.jsx(We,{onHide:l});break;case y.downloadFailed:const p=i?.error?.message||"Unknown error";v=s.jsxs("div",{className:"wasm-prepare-downloadfailed-content",children:[s.jsx("div",{className:"wasm-prepare-downloadfailed-text",children:c("downloadFailed")}),s.jsx("div",{className:"wasm-prepare-downloadfailed-warning",children:p}),s.jsx(j,{onClick:C,children:c("retryDownload")})]});break;case y.failed:const k=i?.error?.message||"Unknown error";v=s.jsxs("div",{className:"wasm-prepare-failed-content",children:[s.jsx("div",{className:"wasm-prepare-failed-text",children:c("preparingSplitFailed")}),i?.data?.status===y.failed&&s.jsx("div",{className:"wasm-prepare-failed-warning",children:k}),s.jsx(j,{type:"tertiary",style:{marginTop:12},onClick:w,children:c("retryPrepare")})]});break;default:v=null}return s.jsx("div",{className:"wasm-prepare-content-container",children:v})},Ie=({data:t})=>{const e={...t||{}},r=[{label:"Client key",value:"app_id"},{label:c("wasmSize"),value:"wasm_size",render:a=>`${(a/1024/1024).toFixed(2)} MB`},{label:c("totalFuncCount"),value:"total_wasm_func_count",render:a=>a>=1e3?`${(a/1e3).toFixed(2)} K`:`${a}`},{label:c("collectedFuncCount"),value:"collected_func_count",render:a=>a>=1e3?`${(a/1e3).toFixed(2)} K`:`${a}`},{label:"Wasm md5",value:"wasm_md5"}];return s.jsx("div",{className:"wasm-collect-status",children:r.map(a=>s.jsxs("div",{className:"wasm-collect-status-item",children:[s.jsx(oe,{size:"small",className:"wasm-collect-status-item-label",children:a.label}),s.jsx("span",{className:"wasm-collect-status-item-value",children:a.render?.(e[a.value])||e[a.value]})]},a.value))})},ze=({onNext:t,codeMd5:e,clientKey:r,onHide:a})=>{const{state:{devSchema:n}}=ce(),[l,m]=f.useState("willCollect"),[d,i]=f.useState(),[o,g]=f.useState(),[x,w]=f.useState(0),h=f.useRef(null),C=f.useMemo(()=>!o||!o?.total_wasm_func_count?!1:(x||0)/(o?.total_wasm_func_count||0)>=.08,[o,x]);f.useEffect(()=>{if(l!=="collecting"){h.current&&(window.clearInterval(h.current),h.current=null);return}if(!h.current)return X({codeMd5:e,clientKey:r}).then(p=>{w(p.data?.collected_func_count||0)}).catch(console.error),h.current=window.setInterval(()=>{X({codeMd5:e,clientKey:r}).then(p=>{w(p.data?.collected_func_count||0)}).catch(p=>{console.error(p)})},2e3),()=>{h.current&&(window.clearInterval(h.current),h.current=null)}},[l,e,r]);const S=async()=>{if(l!=="collecting")try{m("startCollect");const p=await $e({codeMd5:e,clientKey:r});m("collecting"),Oe({codeMd5:e,clientKey:r}).then(k=>{i(k.data)}).catch(console.error),Re({codeMd5:e,clientKey:r}).then(k=>{g(k.data||{})}).catch(console.error)}catch(p){console.error(p)}},v=()=>{h.current&&(window.clearInterval(h.current),h.current=null),m("willCollect"),t()};return s.jsxs("div",{className:"wasm-collect-content-container",children:[d&&s.jsx(Ie,{data:{...d||{},total_wasm_func_count:o?.total_wasm_func_count,collected_func_count:x}}),s.jsx("div",{className:"collect-qrcode-container",children:s.jsx(de,{value:n})}),s.jsx("div",{className:"collect-qrcode-desc",children:c("collectDesc")}),s.jsxs("div",{className:"collect-qrcode-button-container",children:[l!=="collecting"&&s.jsx(j,{loading:l==="startCollect",onClick:S,children:c("startCollect")}),l==="collecting"&&s.jsxs(T,{children:[C?s.jsx(j,{type:"tertiary",onClick:v,children:c("startSplit")}):s.jsx(ue,{content:c("cannotSplitTip"),children:s.jsx(j,{type:"tertiary",disabled:!0,children:c("startSplit")})}),s.jsx(j,{type:"tertiary",onClick:a,children:c("backgroundRun")})]})]})]})},Ae=({onCancel:t,onHide:e})=>{const[r,a]=f.useState(""),[n,l]=f.useState("");f.useEffect(()=>{const o=g=>{a(g.status),l(g.errorMsg||"")};return z.on("unitySplitStatus",o),()=>{z.off("unitySplitStatus",o)}},[]);let m=null;const d="wasm-split-downloading-content",i="wasm-split-downloading-text";switch(r){case"start_download_android_main_wasm":case"download_android_main_wasm_done":case"start_compress_android_main_wasm":case"compress_android_main_wasm_done":case"start_download_android_sub_wasm_code":case"download_android_sub_wasm_code_done":case"start_compress_android_sub_wasm_code":case"compress_android_sub_wasm_code_done":case"start_download_ios_main_wasm":case"download_ios_main_wasm_done":case"start_compress_ios_main_wasm":case"compress_ios_main_wasm_done":case"start_download_ios_range_json":case"download_ios_range_json_done":case"start_download_ios_js_data_br":case"download_ios_js_data_br_done":case"start_compress_ios_sub_wasm_code":case"compress_ios_sub_wasm_code_done":case"start_write_splited_wasm_br":case"write_splited_wasm_done":case"start_update_wasm_split_config":case"update_wasm_split_config_done":m=s.jsxs("div",{className:d,children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:i,children:c(r)}),s.jsxs(T,{children:[s.jsx(j,{type:"danger",onClick:t,children:c("cancelSplit")}),s.jsx(j,{onClick:e,children:c("backgroundRun")})]})]});break;default:m=s.jsxs("div",{className:d,children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:i,children:c("processing")})]})}return m},Q=new AbortController,Me=({onCancel:t,onHide:e,codeMd5:r,clientKey:a})=>{const[n,l]=f.useState("spliting"),[m,d]=f.useState(),i=()=>{Q.abort(),t()},o=()=>{l("downloadingSplitResult"),Pe(m?.result).then(h=>{h.code===0?l("downloadSuccess"):l("downloadFailed")}).catch(()=>{l("downloadFailed")})},g=()=>{l("spliting"),ye({codeMd5:r,clientKey:a}).then(h=>{h.code===0&&Ne({codeMd5:r,clientKey:a},{intervalMs:1e3,maxAttempts:1e3,signal:Q.signal}).then(C=>{l("splitSuccess"),x()})}).catch(()=>{l("splitFailed")})},x=()=>{l("startGetSplitResult"),Ee({clientKey:a,codeMd5:r}).then(h=>{h.code===0?(d(h.data),l("getSplitResultSuccess")):l("getSplitResultFailed")})};f.useEffect(()=>{g()},[]);let w=null;switch(n){case"spliting":w=s.jsxs("div",{className:"wasm-split-processing",children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:"wasm-split-processing-content",children:c("splittingDesc")}),s.jsx("div",{className:"wasm-split-processing-cancel",children:s.jsxs(T,{children:[s.jsx(j,{onClick:()=>i(),type:"danger",children:c("cancelSplit")}),s.jsx(j,{onClick:()=>e(),children:c("backgroundRun")})]})})]});break;case"splitSuccess":w=s.jsx("div",{className:"wasm-split-success",children:s.jsx("div",{className:"wasm-split-success-content",children:c("getSplitResult")})});break;case"startGetSplitResult":w=s.jsxs("div",{className:"wasm-split-processing",children:[s.jsx($,{}),s.jsx("div",{className:"wasm-split-processing-content",children:c("getSplitResult")})]});break;case"getSplitResultFailed":w=s.jsxs("div",{className:"wasm-split-failed",children:[s.jsx("div",{className:"wasm-split-failed-content",children:c("getSplitResultFailed")}),s.jsx("div",{className:"wasm-split-failed-retry",children:s.jsx(j,{type:"primary",onClick:()=>x(),children:c("retryGetSplitResult")})})]});break;case"getSplitResultSuccess":w=s.jsxs("div",{className:"wasm-split-success",children:[s.jsx("div",{className:"wasm-split-success-content",children:c("splitSuccess")}),s.jsx("div",{className:"wasm-split-success-download",children:s.jsx(j,{type:"primary",onClick:()=>o(),children:c("downloadSplitResult")})})]});break;case"getDownloadResultFailed":w=s.jsxs("div",{className:"wasm-split-failed",children:[s.jsx("div",{className:"wasm-split-failed-content",children:c("getSplitResultFailed")}),s.jsx("div",{className:"wasm-split-failed-retry",children:s.jsx(j,{type:"primary",onClick:()=>x(),children:c("retryGetSplitResult")})})]});break;case"downloadingSplitResult":w=s.jsx(Ae,{onCancel:i,onHide:e});break;case"downloadSuccess":w=s.jsxs("div",{className:"wasm-split-success",children:[s.jsx("div",{className:"wasm-split-success-content",children:c("downloadSplitResultSuccess")}),s.jsx("div",{className:"wasm-split-success-tip",children:c("downloadSplitResultTip")})]});break;default:w=null}return s.jsx("div",{className:"wasm-split-content-container",children:w})},I={prepare:{number:0,title:c("splitPrepare")},collect:{number:1,title:c("splitCollect")},split:{number:2,title:c("splitCode")},rollback:{number:3,title:c("rollback")}},Be=({stage:t})=>s.jsxs(R,{type:"basic",current:I[t].number,style:{marginTop:24},children:[s.jsx(R.Step,{title:I.prepare.title}),s.jsx(R.Step,{title:I.collect.title}),s.jsx(R.Step,{title:I.split.title})]}),Ge=({onCancel:t,errorType:e,onHide:r})=>s.jsxs("div",{className:"wasm-code-split-error",children:[e==="noWasmCode"&&s.jsxs("div",{className:"wasm-code-split-error-container",children:[s.jsx("div",{className:"wasm-code-split-error-title",children:c("noWasmCode")}),s.jsx("div",{className:"wasm-code-split-error-desc",children:c("noWasmCodeDesc")})]}),e==="hasSplited"&&s.jsxs("div",{className:"wasm-code-split-error-container",children:[s.jsx("div",{className:"wasm-code-split-error-title",children:c("hasSplitedTitle")}),s.jsx("div",{className:"wasm-code-split-error-desc",children:c("hasSplitedDesc")}),s.jsxs(T,{children:[s.jsx(j,{onClick:t,children:c("cancelSplit")}),s.jsx(j,{onClick:r,children:c("backgroundRun")})]})]}),e==="noSplitConfig"&&s.jsxs("div",{className:"wasm-code-split-error-container",children:[s.jsx("div",{className:"wasm-code-split-error-title",children:c("noSplitConfigTitle")}),s.jsx("div",{className:"wasm-code-split-error-desc",children:c("noSplitConfigDesc")})]})]}),Ve=()=>s.jsxs("div",{className:"split-loading",children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:"split-loading-text",children:"正在初始化分包环境"})]}),Ue=({codeMd5:t,clientKey:e,codePath:r,onHide:a,onReset:n})=>{const[l,m]=f.useState("rollbacking"),d=()=>{m("rollbacking"),se({codeMd5:t,clientKey:e,codePath:r}).then(g=>{g.code===0?(m("rollbackSuccess"),n()):m("rollbackFailed")})};f.useEffect(()=>{d()},[]);let i="",o=null;switch(l){case"rollbacking":i="回滚中...",o=s.jsx(j,{onClick:()=>{m("rollbackFailed")},children:"后台进行"});break;case"rollbackSuccess":i="回滚成功",o=s.jsx(j,{onClick:()=>{a()},children:"关闭"});break;case"rollbackFailed":i="回滚失败",o=s.jsx(j,{onClick:()=>{d()},children:"重试"});break}return s.jsx(s.Fragment,{children:s.jsxs("div",{className:"wasm-split-rollback-container",children:[s.jsx("div",{className:"wasm-split-rollback-text",children:i}),o]})})};function Le({enableWasmCollect:t,enableWasmSplit:e}){return typeof t=="boolean"&&(typeof e=="string"||e===!1)?t:!1}function qe({enableWasmSplit:t,hasWasmCode:e}){return t===!0?{errorType:"hasSplited",hasError:!0}:e?{hasError:!1}:{errorType:"noWasmCode",hasError:!0}}const Xe=({codePath:t,clientKey:e,codeMd5:r})=>{const[a,n]=f.useState(!1),[l,m]=f.useState(""),[d,i]=f.useState("loading"),[o,g]=f.useState(null),x=()=>{n(!0),(!o||d==="error")&&(i("loading"),Se({codeMd5:r,clientKey:e}).then(C=>{if(C.code===0){const{errorType:S,hasError:v}=qe({enableWasmSplit:C.data.enableWasmSplit,hasWasmCode:!!t});m(S),v?(m(S),i("error")):Le(C.data)?i("collect"):i("prepare"),g(C.data)}else i("error")}))},w=()=>{n(!1)},h=()=>{i("rollback")};return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:P("wasm-code-split",{}),onClick:x,children:[s.jsx(fe,{size:"default"}),s.jsx("span",{className:"wasm-code-split-text",children:c("wasmSplit")})]}),s.jsxs(pe,{centered:!0,keepDOM:!0,maskClosable:!1,visible:a,footer:null,style:{width:"90%"},onCancel:()=>n(!1),onOk:()=>n(!1),title:c("wasmSplit"),children:[d==="loading"&&s.jsx(Ve,{}),d==="error"&&s.jsx(Ge,{errorType:l,onCancel:h,onHide:w}),d!=="error"&&d!=="loading"&&s.jsx(Be,{stage:d}),d==="prepare"&&s.jsx(De,{codeMd5:r,codePath:t,clientKey:e,onCancel:()=>{n(!1)},onNext:()=>{i("collect")},onHide:w}),d==="collect"&&s.jsx(ze,{codeMd5:r,clientKey:e,onCancel:()=>{n(!1),i("prepare")},onHide:w,onNext:()=>{i("split")}}),d==="split"&&s.jsx(Me,{codeMd5:r,clientKey:e,onCancel:h,onHide:w}),d==="rollback"&&s.jsx(Ue,{codeMd5:r,clientKey:e,codePath:t,onHide:w,onReset:()=>{i("prepare")}})]})]})};export{Xe as WasmCodeSplit};
1
+ import{G as re,r as f,B as q,c as P,R as b,v as Y,y as J,ag as ee,P as u,V as ne,ah as le,g as A,ai as ie,f as N,aj as z,i as c,j as s,m as j,h as $,F as H,ak as T,d as oe,u as ce,al as de,K as ue,ad as pe}from"./index-BGB_3rmy.js";function me(t){return f.createElement("svg",Object.assign({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",focusable:!1,"aria-hidden":!0},t),f.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2 4c0-1.1.9-2 2-2h5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4Zm0 11c0-1.1.9-2 2-2h5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5ZM15 2a2 2 0 0 0-2 2v5c0 1.1.9 2 2 2h5a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-5Zm1 12.5a1.5 1.5 0 0 1 3 0V16h1.5a1.5 1.5 0 0 1 0 3H19v1.5a1.5 1.5 0 0 1-3 0V19h-1.5a1.5 1.5 0 0 1 0-3H16v-1.5Z",fill:"currentColor"}))}const fe=re(me,"customize"),W={PREFIX:`${q}-steps`,ITEM:`${q}-steps-item`};var F;(function(t){t.small="large",t.default="extra-large"})(F||(F={}));const M=t=>{const{prefixCls:e,className:r,size:a,title:n,description:l,status:m,style:d,active:i,done:o,icon:g,stepNumber:x,onClick:w,onChange:h,onKeyDown:C}=t,S=()=>{let _,E;if("icon"in t)b.isValidElement(g)&&(_=g);else if("status"in t)switch(m){case"error":_=b.createElement(ee,{size:F[a]});break;case"wait":_=b.createElement("span",{className:`${e}-number-icon`},x);break;case"process":_=b.createElement("span",{className:`${e}-number-icon`},x),E=!0;break;case"finish":_=b.createElement(J,{size:F[a]});break;case"warning":_=b.createElement(Y,{size:F[a]});break;default:_=null;break}const ae=P({[`${e}-icon`]:!0,[`${e}-custom-icon`]:"icon"in t,[`${e}-icon-process`]:E});return _?b.createElement("span",{className:ae},_):null},v=P(e,`${e}-${m}`,{[`${e}-active`]:i,[`${e}-done`]:o,[`${e}-hover`]:h||t.onClick,[`${e}-clickable`]:h||w,[`${e}-${m}-hover`]:h||t.onClick},r),p=_=>{w?.(_),h?.()},k=_=>{_.key==="Enter"&&(C?.(_),h?.())};return b.createElement("div",{role:t.role,"aria-label":t["aria-label"],tabIndex:0,"aria-current":"step",className:v,style:d,onClick:_=>p(_),onKeyDown:k},b.createElement("div",{className:`${e}-container`},b.createElement("div",{className:`${e}-left`},S()),b.createElement("div",{className:`${e}-content`},b.createElement("div",{className:`${e}-title`},b.createElement("div",{className:`${e}-title-text`},n)),l&&b.createElement("div",{className:`${e}-description`},l))))};M.propTypes={prefixCls:u.string,description:u.node,icon:u.node,status:u.oneOf(["wait","process","finish","error","warning"]),title:u.node,className:u.string,style:u.object,onClick:u.func,active:u.bool,done:u.bool};M.defaultProps={prefixCls:W.ITEM,active:!1,done:!1,status:"wait",className:""};const B=t=>{const{prefixCls:e,className:r,title:a,description:n,status:l,style:m,onClick:d,icon:i,onChange:o,stepNumber:g,onKeyDown:x}=t,w=()=>{let S,v;if("icon"in t)S=i;else if("status"in t)switch(l){case"error":S=b.createElement(ee,{size:"extra-large"});break;case"wait":S=g;break;case"process":S=g,v=!0;break;case"finish":S=b.createElement(J,{size:"extra-large"});break;case"warning":S=b.createElement(Y,{size:"extra-large"});break;default:S=null;break}const p=P({[`${e}-left`]:!0,[`${e}-icon`]:"icon"in t,[`${e}-plain`]:!("icon"in t),[`${e}-icon-process`]:v,[`${e}-hover`]:o||d});return S?b.createElement("div",{className:p},S):null},h=S=>{d?.(S),o?.()},C=S=>{S.key==="Enter"&&(x?.(S),o?.())};return b.createElement("div",{role:t.role,"aria-label":t["aria-label"],"aria-current":"step",tabIndex:0,className:P({[e]:!0,[`${e}-${l}`]:!!l,[`${e}-${l}-hover`]:!!l&&(o||d),[`${e}-${l}-active`]:!!l&&(o||d),[`${e}-clickable`]:o||d},r),style:m,onClick:S=>{h(S)},onKeyDown:C},w(),b.createElement("div",{className:`${e}-content`},b.createElement("div",{className:`${e}-title`,title:typeof a=="string"?a:null},b.createElement("span",{className:`${e}-title-text`},a)),b.createElement("div",{className:`${e}-description`,title:typeof n=="string"?n:null},n)))};B.propTypes={prefixCls:u.string,description:u.node,icon:u.node,status:u.oneOf(["wait","process","finish","error","warning"]),title:u.node,className:u.string,style:u.object,onClick:u.func};B.defaultProps={prefixCls:W.ITEM,status:"wait",className:""};const G=t=>{const{prefixCls:e,className:r,title:a,style:n,active:l,index:m,total:d,onClick:i,onKeyDown:o,onChange:g}=t,x=P(e,{[`${e}-active`]:l},r),w=C=>{i?.(C),g?.()},h=C=>{C.key==="Enter"&&(o?.(C),g?.())};return b.createElement("div",{role:t.role,"aria-label":t["aria-label"],"aria-current":"step",tabIndex:0,className:x,style:n,onClick:C=>w(C),onKeyDown:h},b.createElement("div",{className:`${e}-container`},b.createElement("div",{className:`${e}-content`},b.createElement("div",{className:`${e}-title`},a)),m!==d-1&&b.createElement("div",{className:`${e}-icon`},b.createElement(ne,{size:"small"}))))};G.propTypes={prefixCls:u.string,title:u.node,className:u.string,style:u.object,onClick:u.func,active:u.bool};G.defaultProps={prefixCls:W.ITEM,active:!1,className:""};const te=b.createContext(null),we=t=>{const{type:e}=f.useContext(te);return(()=>{switch(e){case"fill":return b.createElement(B,Object.assign({},t));case"basic":return b.createElement(M,Object.assign({},t));case"nav":return b.createElement(G,Object.assign({},t));default:return null}})()};var he=function(t,e){var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)e.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(r[a[n]]=t[a[n]]);return r};const V=t=>{const{current:e,status:r,children:a,prefixCls:n,initial:l,direction:m,className:d,style:i,onChange:o}=t,g=he(t,["current","status","children","prefixCls","initial","direction","className","style","onChange"]),x=f.useMemo(()=>{const h=f.Children.toArray(a).filter(v=>f.isValidElement(v)),C=m==="vertical"?null:{width:`${100/h.length}%`};return f.Children.map(h,(v,p)=>{if(!v)return null;const k=l+p,_=Object.assign({stepNumber:`${k+1}`,direction:m},v.props);return r==="error"&&p===e-1&&(_.className=`${n}-next-error`),v.props.status||(k===e?_.status=r:k<e?_.status="finish":_.status="wait"),_.onChange=o?()=>{p!==e&&o(p+l)}:void 0,b.createElement(le,{style:C},f.cloneElement(v,Object.assign({},_)))})},[a,l,n,m,r,e,o]),w=P(d,{[n]:!0,[`${n}-${m}`]:!0});return b.createElement("div",Object.assign({className:w,style:i,"aria-label":t["aria-label"]},A(g)),b.createElement(ie,{type:"flex",justify:"start"},x))};V.propTypes={prefixCls:u.string,className:u.string,style:u.object,current:u.number,initial:u.number,direction:u.oneOf(["horizontal","vertical"]),status:u.oneOf(["wait","process","finish","error","warning"])};V.defaultProps={prefixCls:W.PREFIX,current:0,direction:"horizontal",initial:0,status:"process"};var ge=function(t,e){var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)e.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(r[a[n]]=t[a[n]]);return r};const U=t=>{const{size:e,current:r,status:a,children:n,prefixCls:l,initial:m,direction:d,className:i,style:o,hasLine:g,onChange:x}=t,w=ge(t,["size","current","status","children","prefixCls","initial","direction","className","style","hasLine","onChange"]),h=f.useMemo(()=>{const S=f.Children.toArray(n).filter(p=>f.isValidElement(p));return f.Children.map(S,(p,k)=>{if(!p)return null;const _=m+k,E=Object.assign({stepNumber:`${_+1}`,size:e},p.props);return a==="error"&&k===r-1&&(E.className=`${l}-next-error`),p.props.status||(_===r?E.status=a:_<r?E.status="finish":E.status="wait"),E.active=_===r,E.done=_<r,E.onChange=x?()=>{k!==r&&x(k+m)}:void 0,f.cloneElement(p,Object.assign({},E))})},[n,m,l,d,a,r,e,x]),C=P(i,{[`${l}-basic`]:!0,[`${l}-${d}`]:!0,[`${l}-${e}`]:e!=="default",[`${l}-hasline`]:g});return b.createElement("div",Object.assign({"aria-label":t["aria-label"],className:C,style:o},A(w)),h)};U.propTypes={prefixCls:u.string,className:u.string,style:u.object,current:u.number,initial:u.number,direction:u.oneOf(["horizontal","vertical"]),status:u.oneOf(["wait","process","finish","error","warning"]),hasLine:u.bool};U.defaultProps={prefixCls:W.PREFIX,current:0,direction:"horizontal",size:"",initial:0,hasLine:!0,status:"process"};var xe=function(t,e){var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)e.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(r[a[n]]=t[a[n]]);return r};const L=t=>{const{size:e,current:r,initial:a,children:n,prefixCls:l,className:m,style:d,onChange:i}=t,o=xe(t,["size","current","initial","children","prefixCls","className","style","onChange"]),g=f.useMemo(()=>{const w=f.Children.toArray(n).filter(S=>f.isValidElement(S)),h=w.length;return f.Children.map(w,(S,v)=>{if(!S)return null;const p=Object.assign({index:v,total:h},S.props);return p.active=v===r,p.onChange=i?()=>{v!==r&&i(v+a)}:void 0,f.cloneElement(S,Object.assign({},p))})},[n,l,r,e,a,i]),x=P(m,{[`${l}-nav`]:!0,[`${l}-${e}`]:e!=="default"});return b.createElement("div",Object.assign({"aria-label":t["aria-label"],className:x,style:d},A(o)),g)};L.propTypes={prefixCls:u.string,className:u.string,style:u.object,current:u.number,initial:u.number,size:u.oneOf(["small","default"])};L.defaultProps={prefixCls:W.PREFIX,current:0,direction:"horizontal",size:"default",initial:0,status:"process"};var be=function(t,e){var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,a=Object.getOwnPropertySymbols(t);n<a.length;n++)e.indexOf(a[n])<0&&Object.prototype.propertyIsEnumerable.call(t,a[n])&&(r[a[n]]=t[a[n]]);return r};class R extends f.Component{renderComponent(){const e=this.props,{type:r}=e,a=be(e,["type"]);switch(r){case"fill":return b.createElement(V,Object.assign({},a));case"basic":return b.createElement(U,Object.assign({},a));case"nav":return b.createElement(L,Object.assign({},a));default:return null}}render(){const{type:e}=this.props;return b.createElement(te.Provider,{value:{type:e}},this.renderComponent())}}R.Step=we;R.propTypes={onChange:u.func,type:u.oneOf(["fill","basic","nav"]),size:u.oneOf(["small","default"])};R.defaultProps={type:"fill",size:"default"};const O={Idle:0,WasmPreparing:1,WasmPrepared:2,WasmSplitIssued:3,WasmSplitting:4,WasmSplitDone:5,WasmReadyToPrepare:6,WasmSplitPreparing:7,WasmPreparedSuccess:8,WasmCollecting:9,WasmUploadFail:-1,WasmDownloadFail:-2,WasmFileNotExist:-3,WasmSplitFail:-4,WasmSplitUpdateDBFail:-5,WasmSplitPrepareFail:-6,WasmPrepareFailed:-1};function Se({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-split-config",method:"GET",data:{codeMd5:t,clientKey:e}})}function ve(t){const{codePath:e,codeMd5:r,clientKey:a,desc:n}=t;return N({url:"/game/wasm-prepare",method:"POST",data:{codePath:e,clientKey:a,codeMd5:r,desc:n}})}function _e({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-prepare-result",method:"POST",data:{codeMd5:t,clientKey:e}})}function Ce(t,e){const r=e?.intervalMs,a=e?.maxAttempts,n=e?.signal||new AbortController().signal;let l=0;return new Promise((m,d)=>{if(n?.aborted){d(new DOMException("Polling aborted","AbortError"));return}const i=()=>{clearTimeout(o),d(new DOMException("Polling aborted","AbortError"))};n?.addEventListener("abort",i,{once:!0});let o;const g=async()=>{l+=1;try{const x=await _e(t),{status:w}=x.data;if(w===O.WasmPreparedSuccess||w===O.WasmSplitDone){m(x);return}if(w<0){m(x);return}if(l>=a){d(new Error(`Polling timeout after ${a} attempts`));return}o=window.setTimeout(g,r)}catch(x){if(l>=a){d(x);return}o=window.setTimeout(g,r)}};g()})}function je({codeMd5:t,clientKey:e,codePath:r}){return N({url:"/game/wasm-prepare-download",method:"POST",data:{codeMd5:t,clientKey:e,codePath:r}})}function ye(t){const{codeMd5:e,clientKey:r}=t;return N({url:"/game/wasm-split",method:"POST",data:{codeMd5:e,clientKey:r}})}function ke({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-split-result",method:"POST",data:{codeMd5:t,clientKey:e}})}function Ne(t,e){const r=e?.intervalMs,a=e?.maxAttempts,n=e?.signal||new AbortController().signal;let l=0;return new Promise((m,d)=>{if(n?.aborted){d(new DOMException("Polling aborted","AbortError"));return}const i=()=>{clearTimeout(o),d(new DOMException("Polling aborted","AbortError"))};n?.addEventListener("abort",i,{once:!0});let o;const g=async()=>{l+=1;try{const x=await ke(t),{status:w}=x.data;if(w!==O.WasmSplitDone){if(l>=a){d(new Error(`Polling timeout after ${a} attempts`));return}o=window.setTimeout(g,r);return}m(x)}catch(x){if(l>=a){d(x);return}o=window.setTimeout(g,r)}};g()})}function Ee({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-split-download-result",method:"POST",data:{clientKey:e,codeMd5:t}})}function Pe(t){return N({url:"/game/wasm-split-download",method:"POST",data:t})}function se(t){const{codeMd5:e,clientKey:r,codePath:a}=t;return N({url:"/game/wasm-split-reset",method:"POST",data:{codeMd5:e,clientKey:r,codePath:a}})}function Oe({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-taskinfo",method:"GET",data:{codeMd5:t,clientKey:e}})}function $e({codeMd5:t,clientKey:e}){return N({url:"/game/wasm-set-collect",method:"POST",data:{codeMd5:t,clientKey:e}})}function X(t){return N({url:"/game/wasm-collect-funcids",method:"GET",data:t})}function Re(t){return N({url:"/game/wasm-collect-info",method:"GET",data:t})}const D={container:"wasm-prepare-downloading-content",process:"wasm-prepare-downloading-text",success:"wasm-prepare-downloading-success",error:"wasm-prepare-downloading-error"},Te=({kind:t,children:e})=>{const r={process:D.process,success:D.success,error:D.error};return s.jsx("div",{className:r[t],children:e})},Z={star_fetch_prepared_wasm_url:{kind:"process",text:"fetchDownloadUrl",showSpin:!0},fetch_prepared_wasm_url_done:{kind:"success",text:"fetchDownloadUrlSuccess",showSpin:!0},fetch_prepared_wasm_url_failed:{kind:"error",text:"fetchDownloadUrlFailed",appendError:!0},start_download_prepared_wasm:{kind:"process",text:"downloadPreparedWasmCode",showSpin:!0},download_prepared_wasm_done:{kind:"success",text:"downloadPreparedWasmCodeSuccess",showSpin:!0},download_prepared_wasm_failed:{kind:"error",text:"downloadPreparedWasmCodeFailed",appendError:!0,showRetry:!0},start_compress_prepared_wasm:{kind:"process",text:"compressPreparedWasmCode",showSpin:!0},compress_prepared_wasm_done:{kind:"success",text:"compressPreparedWasmCodeSuccess",showSpin:!0},start_write_compress_prepared_wasm:{kind:"process",text:"writeCompressPreparedWasmCode",showSpin:!0},start_update_wasm_split_config:{kind:"process",text:"updateWasmSplitConfig",showSpin:!0},update_wasm_split_config_done:{kind:"success",text:"updateWasmSplitConfigSuccess"},update_wasm_split_config_failed:{kind:"error",text:"updateWasmSplitConfigFailed",appendError:!0},default:{kind:"process",text:"processing",showSpin:!0}},We=({onCancel:t,onRetry:e,onHide:r})=>{const[a,n]=f.useState(""),[l,m]=f.useState("");f.useEffect(()=>{const g=x=>{n(x.status),m(x.errorMsg||"")};return z.on("unitySplitStatus",g),()=>{z.off("unitySplitStatus",g)}},[]);const d=f.useMemo(()=>Z[a]??Z.default,[a]),i=s.jsx($,{size:"large",color:"primary"}),o=typeof d.text=="string"?c(d.text)??d.text:"";return s.jsxs("div",{className:D.container,children:[d.showSpin&&i,!!o&&s.jsx(Te,{kind:d.kind,children:o}),d.appendError&&!!l&&s.jsx("div",{className:D.error,children:l}),d.showRetry&&s.jsx(j,{onClick:e,children:c("retryDownload")}),s.jsx(j,{style:{marginTop:12},type:"tertiary",onClick:r,children:c("backgroundRun")})]})},Fe=({onSubmit:t,onCancel:e,onChange:r})=>s.jsxs(H,{style:{width:"100%",transform:"translateY(-20px)"},onChange:r,onSubmit:t,children:[s.jsx(H.TextArea,{rules:[{required:!0,message:c("inputSplitDesc")}],label:c("splitDesc"),placeholder:c("inputSplitDesc"),field:"desc"}),s.jsxs("div",{className:"wasm-prepare-form-button-container",children:[s.jsx(j,{type:"tertiary",htmlType:"submit",style:{marginRight:12},children:c("startPrepare")}),s.jsx(j,{type:"tertiary",onClick:e,children:c("cancel")})]})]}),y={init:"init",start:"start",processing:O.WasmPreparing,processingReady:O.WasmReadyToPrepare,success:O.WasmPreparedSuccess,failed:O.WasmPrepareFailed,splitDone:O.WasmSplitDone,downloading:"downloading",downloadFailed:"downloadFailed"},K=new AbortController,De=({codePath:t,codeMd5:e,clientKey:r,onCancel:a,onNext:n,onHide:l})=>{const[m,d]=f.useState(""),[i,o]=f.useState({code:0,data:{status:y.init}}),g=f.useMemo(()=>i?.data?.status,[i?.data?.status]),x=()=>{K.abort(),a(),se({codeMd5:e,clientKey:r,codePath:t}).then(p=>{p.code===0&&o({...i,data:{...i?.data,status:y.init}})})},w=()=>{o({code:0,data:{status:y.start}}),ve({codePath:t,codeMd5:e,clientKey:r,desc:m}).then(p=>{p.code===0||p?.error?.code===10024||p?.error?.code===10028?(o({...p,data:{...p?.data,status:y.processing}}),h()):o({...i,error:p?.error||{code:-1,message:"Internal server error, please try again later..."},data:{...i?.data,status:y.failed}})})},h=()=>{Ce({codeMd5:e,clientKey:r},{intervalMs:500,maxAttempts:100,signal:K.signal}).then(p=>{p.code===0?o(p):o({...i,data:{...i?.data}})})},C=()=>{o({...i,data:{...i?.data,status:"downloading"}}),je({codePath:t,codeMd5:e,clientKey:r}).then(p=>{p.code===0?(o({...i,data:{...i?.data,status:y.success}}),n()):o({...i,data:{...i?.data,status:y.downloadFailed}})})},S=p=>{d(p?.values?.desc)};let v=null;switch(g){case y.init:v=s.jsx(Fe,{onSubmit:w,onCancel:a,onChange:S});break;case y.start:v=s.jsxs("div",{className:"wasm-prepare-processing-content",children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:"wasm-prepare-processing-text",children:c("startingPrepare")}),s.jsx("div",{className:"wasm-prepare-processing-cancel",children:s.jsxs(T,{children:[s.jsx(j,{type:"danger",onClick:a,children:c("cancelPrepare")}),s.jsx(j,{onClick:()=>l(),children:c("backgroundRun")})]})})]});break;case y.processing:case y.processingReady:v=s.jsxs("div",{className:"wasm-prepare-processing-content",children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:"wasm-prepare-processing-text",children:c("preparingSplit")}),s.jsx("div",{className:"wasm-prepare-processing-warning",children:c("warningDuringPreparing")}),s.jsx("div",{className:"wasm-prepare-processing-cancel",children:s.jsxs(T,{children:[s.jsx(j,{type:"tertiary",onClick:()=>{x()},children:c("cancelPrepare")}),s.jsx(j,{type:"tertiary",onClick:()=>l(),children:c("backgroundRun")})]})})]});break;case y.success:case y.splitDone:v=s.jsxs("div",{className:"wasm-prepare-success-content",children:[s.jsx("div",{className:"wasm-prepare-success-text",children:c("preparingSplitSuccess")}),s.jsx("div",{className:"wasm-prepare-success-download",children:s.jsx(j,{type:"tertiary",onClick:()=>{C()},children:c("downloadPreparedWasmCode")})})]});break;case y.downloading:v=s.jsx(We,{onHide:l});break;case y.downloadFailed:const p=i?.error?.message||"Unknown error";v=s.jsxs("div",{className:"wasm-prepare-downloadfailed-content",children:[s.jsx("div",{className:"wasm-prepare-downloadfailed-text",children:c("downloadFailed")}),s.jsx("div",{className:"wasm-prepare-downloadfailed-warning",children:p}),s.jsx(j,{onClick:C,children:c("retryDownload")})]});break;case y.failed:const k=i?.error?.message||"Unknown error";v=s.jsxs("div",{className:"wasm-prepare-failed-content",children:[s.jsx("div",{className:"wasm-prepare-failed-text",children:c("preparingSplitFailed")}),i?.data?.status===y.failed&&s.jsx("div",{className:"wasm-prepare-failed-warning",children:k}),s.jsx(j,{type:"tertiary",style:{marginTop:12},onClick:w,children:c("retryPrepare")})]});break;default:v=null}return s.jsx("div",{className:"wasm-prepare-content-container",children:v})},Ie=({data:t})=>{const e={...t||{}},r=[{label:"Client key",value:"app_id"},{label:c("wasmSize"),value:"wasm_size",render:a=>`${(a/1024/1024).toFixed(2)} MB`},{label:c("totalFuncCount"),value:"total_wasm_func_count",render:a=>a>=1e3?`${(a/1e3).toFixed(2)} K`:`${a}`},{label:c("collectedFuncCount"),value:"collected_func_count",render:a=>a>=1e3?`${(a/1e3).toFixed(2)} K`:`${a}`},{label:"Wasm md5",value:"wasm_md5"}];return s.jsx("div",{className:"wasm-collect-status",children:r.map(a=>s.jsxs("div",{className:"wasm-collect-status-item",children:[s.jsx(oe,{size:"small",className:"wasm-collect-status-item-label",children:a.label}),s.jsx("span",{className:"wasm-collect-status-item-value",children:a.render?.(e[a.value])||e[a.value]})]},a.value))})},ze=({onNext:t,codeMd5:e,clientKey:r,onHide:a})=>{const{state:{devSchema:n}}=ce(),[l,m]=f.useState("willCollect"),[d,i]=f.useState(),[o,g]=f.useState(),[x,w]=f.useState(0),h=f.useRef(null),C=f.useMemo(()=>!o||!o?.total_wasm_func_count?!1:(x||0)/(o?.total_wasm_func_count||0)>=.08,[o,x]);f.useEffect(()=>{if(l!=="collecting"){h.current&&(window.clearInterval(h.current),h.current=null);return}if(!h.current)return X({codeMd5:e,clientKey:r}).then(p=>{w(p.data?.collected_func_count||0)}).catch(console.error),h.current=window.setInterval(()=>{X({codeMd5:e,clientKey:r}).then(p=>{w(p.data?.collected_func_count||0)}).catch(p=>{console.error(p)})},2e3),()=>{h.current&&(window.clearInterval(h.current),h.current=null)}},[l,e,r]);const S=async()=>{if(l!=="collecting")try{m("startCollect");const p=await $e({codeMd5:e,clientKey:r});m("collecting"),Oe({codeMd5:e,clientKey:r}).then(k=>{i(k.data)}).catch(console.error),Re({codeMd5:e,clientKey:r}).then(k=>{g(k.data||{})}).catch(console.error)}catch(p){console.error(p)}},v=()=>{h.current&&(window.clearInterval(h.current),h.current=null),m("willCollect"),t()};return s.jsxs("div",{className:"wasm-collect-content-container",children:[d&&s.jsx(Ie,{data:{...d||{},total_wasm_func_count:o?.total_wasm_func_count,collected_func_count:x}}),s.jsx("div",{className:"collect-qrcode-container",children:s.jsx(de,{value:n})}),s.jsx("div",{className:"collect-qrcode-desc",children:c("collectDesc")}),s.jsxs("div",{className:"collect-qrcode-button-container",children:[l!=="collecting"&&s.jsx(j,{loading:l==="startCollect",onClick:S,children:c("startCollect")}),l==="collecting"&&s.jsxs(T,{children:[C?s.jsx(j,{type:"tertiary",onClick:v,children:c("startSplit")}):s.jsx(ue,{content:c("cannotSplitTip"),children:s.jsx(j,{type:"tertiary",disabled:!0,children:c("startSplit")})}),s.jsx(j,{type:"tertiary",onClick:a,children:c("backgroundRun")})]})]})]})},Ae=({onCancel:t,onHide:e})=>{const[r,a]=f.useState(""),[n,l]=f.useState("");f.useEffect(()=>{const o=g=>{a(g.status),l(g.errorMsg||"")};return z.on("unitySplitStatus",o),()=>{z.off("unitySplitStatus",o)}},[]);let m=null;const d="wasm-split-downloading-content",i="wasm-split-downloading-text";switch(r){case"start_download_android_main_wasm":case"download_android_main_wasm_done":case"start_compress_android_main_wasm":case"compress_android_main_wasm_done":case"start_download_android_sub_wasm_code":case"download_android_sub_wasm_code_done":case"start_compress_android_sub_wasm_code":case"compress_android_sub_wasm_code_done":case"start_download_ios_main_wasm":case"download_ios_main_wasm_done":case"start_compress_ios_main_wasm":case"compress_ios_main_wasm_done":case"start_download_ios_range_json":case"download_ios_range_json_done":case"start_download_ios_js_data_br":case"download_ios_js_data_br_done":case"start_compress_ios_sub_wasm_code":case"compress_ios_sub_wasm_code_done":case"start_write_splited_wasm_br":case"write_splited_wasm_done":case"start_update_wasm_split_config":case"update_wasm_split_config_done":m=s.jsxs("div",{className:d,children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:i,children:c(r)}),s.jsxs(T,{children:[s.jsx(j,{type:"danger",onClick:t,children:c("cancelSplit")}),s.jsx(j,{onClick:e,children:c("backgroundRun")})]})]});break;default:m=s.jsxs("div",{className:d,children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:i,children:c("processing")})]})}return m},Q=new AbortController,Me=({onCancel:t,onHide:e,codeMd5:r,clientKey:a})=>{const[n,l]=f.useState("spliting"),[m,d]=f.useState(),i=()=>{Q.abort(),t()},o=()=>{l("downloadingSplitResult"),Pe(m?.result).then(h=>{h.code===0?l("downloadSuccess"):l("downloadFailed")}).catch(()=>{l("downloadFailed")})},g=()=>{l("spliting"),ye({codeMd5:r,clientKey:a}).then(h=>{h.code===0&&Ne({codeMd5:r,clientKey:a},{intervalMs:1e3,maxAttempts:1e3,signal:Q.signal}).then(C=>{l("splitSuccess"),x()})}).catch(()=>{l("splitFailed")})},x=()=>{l("startGetSplitResult"),Ee({clientKey:a,codeMd5:r}).then(h=>{h.code===0?(d(h.data),l("getSplitResultSuccess")):l("getSplitResultFailed")})};f.useEffect(()=>{g()},[]);let w=null;switch(n){case"spliting":w=s.jsxs("div",{className:"wasm-split-processing",children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:"wasm-split-processing-content",children:c("splittingDesc")}),s.jsx("div",{className:"wasm-split-processing-cancel",children:s.jsxs(T,{children:[s.jsx(j,{onClick:()=>i(),type:"danger",children:c("cancelSplit")}),s.jsx(j,{onClick:()=>e(),children:c("backgroundRun")})]})})]});break;case"splitSuccess":w=s.jsx("div",{className:"wasm-split-success",children:s.jsx("div",{className:"wasm-split-success-content",children:c("getSplitResult")})});break;case"startGetSplitResult":w=s.jsxs("div",{className:"wasm-split-processing",children:[s.jsx($,{}),s.jsx("div",{className:"wasm-split-processing-content",children:c("getSplitResult")})]});break;case"getSplitResultFailed":w=s.jsxs("div",{className:"wasm-split-failed",children:[s.jsx("div",{className:"wasm-split-failed-content",children:c("getSplitResultFailed")}),s.jsx("div",{className:"wasm-split-failed-retry",children:s.jsx(j,{type:"primary",onClick:()=>x(),children:c("retryGetSplitResult")})})]});break;case"getSplitResultSuccess":w=s.jsxs("div",{className:"wasm-split-success",children:[s.jsx("div",{className:"wasm-split-success-content",children:c("splitSuccess")}),s.jsx("div",{className:"wasm-split-success-download",children:s.jsx(j,{type:"primary",onClick:()=>o(),children:c("downloadSplitResult")})})]});break;case"getDownloadResultFailed":w=s.jsxs("div",{className:"wasm-split-failed",children:[s.jsx("div",{className:"wasm-split-failed-content",children:c("getSplitResultFailed")}),s.jsx("div",{className:"wasm-split-failed-retry",children:s.jsx(j,{type:"primary",onClick:()=>x(),children:c("retryGetSplitResult")})})]});break;case"downloadingSplitResult":w=s.jsx(Ae,{onCancel:i,onHide:e});break;case"downloadSuccess":w=s.jsxs("div",{className:"wasm-split-success",children:[s.jsx("div",{className:"wasm-split-success-content",children:c("downloadSplitResultSuccess")}),s.jsx("div",{className:"wasm-split-success-tip",children:c("downloadSplitResultTip")})]});break;default:w=null}return s.jsx("div",{className:"wasm-split-content-container",children:w})},I={prepare:{number:0,title:c("splitPrepare")},collect:{number:1,title:c("splitCollect")},split:{number:2,title:c("splitCode")},rollback:{number:3,title:c("rollback")}},Be=({stage:t})=>s.jsxs(R,{type:"basic",current:I[t].number,style:{marginTop:24},children:[s.jsx(R.Step,{title:I.prepare.title}),s.jsx(R.Step,{title:I.collect.title}),s.jsx(R.Step,{title:I.split.title})]}),Ge=({onCancel:t,errorType:e,onHide:r})=>s.jsxs("div",{className:"wasm-code-split-error",children:[e==="noWasmCode"&&s.jsxs("div",{className:"wasm-code-split-error-container",children:[s.jsx("div",{className:"wasm-code-split-error-title",children:c("noWasmCode")}),s.jsx("div",{className:"wasm-code-split-error-desc",children:c("noWasmCodeDesc")})]}),e==="hasSplited"&&s.jsxs("div",{className:"wasm-code-split-error-container",children:[s.jsx("div",{className:"wasm-code-split-error-title",children:c("hasSplitedTitle")}),s.jsx("div",{className:"wasm-code-split-error-desc",children:c("hasSplitedDesc")}),s.jsxs(T,{children:[s.jsx(j,{onClick:t,children:c("cancelSplit")}),s.jsx(j,{onClick:r,children:c("backgroundRun")})]})]}),e==="noSplitConfig"&&s.jsxs("div",{className:"wasm-code-split-error-container",children:[s.jsx("div",{className:"wasm-code-split-error-title",children:c("noSplitConfigTitle")}),s.jsx("div",{className:"wasm-code-split-error-desc",children:c("noSplitConfigDesc")})]})]}),Ve=()=>s.jsxs("div",{className:"split-loading",children:[s.jsx($,{size:"large",color:"primary"}),s.jsx("div",{className:"split-loading-text",children:"正在初始化分包环境"})]}),Ue=({codeMd5:t,clientKey:e,codePath:r,onHide:a,onReset:n})=>{const[l,m]=f.useState("rollbacking"),d=()=>{m("rollbacking"),se({codeMd5:t,clientKey:e,codePath:r}).then(g=>{g.code===0?(m("rollbackSuccess"),n()):m("rollbackFailed")})};f.useEffect(()=>{d()},[]);let i="",o=null;switch(l){case"rollbacking":i="回滚中...",o=s.jsx(j,{onClick:()=>{m("rollbackFailed")},children:"后台进行"});break;case"rollbackSuccess":i="回滚成功",o=s.jsx(j,{onClick:()=>{a()},children:"关闭"});break;case"rollbackFailed":i="回滚失败",o=s.jsx(j,{onClick:()=>{d()},children:"重试"});break}return s.jsx(s.Fragment,{children:s.jsxs("div",{className:"wasm-split-rollback-container",children:[s.jsx("div",{className:"wasm-split-rollback-text",children:i}),o]})})};function Le({enableWasmCollect:t,enableWasmSplit:e}){return typeof t=="boolean"&&(typeof e=="string"||e===!1)?t:!1}function qe({enableWasmSplit:t,hasWasmCode:e}){return t===!0?{errorType:"hasSplited",hasError:!0}:e?{hasError:!1}:{errorType:"noWasmCode",hasError:!0}}const Xe=({codePath:t,clientKey:e,codeMd5:r})=>{const[a,n]=f.useState(!1),[l,m]=f.useState(""),[d,i]=f.useState("loading"),[o,g]=f.useState(null),x=()=>{n(!0),(!o||d==="error")&&(i("loading"),Se({codeMd5:r,clientKey:e}).then(C=>{if(C.code===0){const{errorType:S,hasError:v}=qe({enableWasmSplit:C.data.enableWasmSplit,hasWasmCode:!!t});m(S),v?(m(S),i("error")):Le(C.data)?i("collect"):i("prepare"),g(C.data)}else i("error")}))},w=()=>{n(!1)},h=()=>{i("rollback")};return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:P("wasm-code-split",{}),onClick:x,children:[s.jsx(fe,{size:"default"}),s.jsx("span",{className:"wasm-code-split-text",children:c("wasmSplit")})]}),s.jsxs(pe,{centered:!0,keepDOM:!0,maskClosable:!1,visible:a,footer:null,style:{width:"90%"},onCancel:()=>n(!1),onOk:()=>n(!1),title:c("wasmSplit"),children:[d==="loading"&&s.jsx(Ve,{}),d==="error"&&s.jsx(Ge,{errorType:l,onCancel:h,onHide:w}),d!=="error"&&d!=="loading"&&s.jsx(Be,{stage:d}),d==="prepare"&&s.jsx(De,{codeMd5:r,codePath:t,clientKey:e,onCancel:()=>{n(!1)},onNext:()=>{i("collect")},onHide:w}),d==="collect"&&s.jsx(ze,{codeMd5:r,clientKey:e,onCancel:()=>{n(!1),i("prepare")},onHide:w,onNext:()=>{i("split")}}),d==="split"&&s.jsx(Me,{codeMd5:r,clientKey:e,onCancel:h,onHide:w}),d==="rollback"&&s.jsx(Ue,{codeMd5:r,clientKey:e,codePath:t,onHide:w,onReset:()=>{i("prepare")}})]})]})};export{Xe as WasmCodeSplit};
@@ -1 +1 @@
1
- import{u as n,j as s,p as o,af as t,i}from"./index-C0C36jb2.js";const r="/api/passport/web/email/login",a={aid:"2471",account_sdk_source:"web",sdk_version:"2.1.1"};r+""+new URLSearchParams(a);const c=()=>{const{state:{user:e}}=n();return e?.email?s.jsx(o,{position:"bottom",content:s.jsx("div",{className:"login-user-popover",children:e.email}),children:s.jsx(t,{color:"amber",style:{flexShrink:0},alt:e?.email,size:"small",children:e?.email?.split("@")[0][0]})}):s.jsx(o,{position:"bottom",trigger:"hover",content:s.jsx("div",{className:"not-login-status-popover",children:i("notLoginTip")}),children:s.jsx(t,{color:"grey",style:{flexShrink:0},size:"small",children:i("notLogin")})})};export{c as LoginStatus};
1
+ import{u as n,j as s,p as o,af as t,i}from"./index-BGB_3rmy.js";const r="/api/passport/web/email/login",a={aid:"2471",account_sdk_source:"web",sdk_version:"2.1.1"};r+""+new URLSearchParams(a);const c=()=>{const{state:{user:e}}=n();return e?.email?s.jsx(o,{position:"bottom",content:s.jsx("div",{className:"login-user-popover",children:e.email}),children:s.jsx(t,{color:"amber",style:{flexShrink:0},alt:e?.email,size:"small",children:e?.email?.split("@")[0][0]})}):s.jsx(o,{position:"bottom",trigger:"hover",content:s.jsx("div",{className:"not-login-status-popover",children:i("notLoginTip")}),children:s.jsx(t,{color:"grey",style:{flexShrink:0},size:"small",children:i("notLogin")})})};export{c as LoginStatus};
@@ -1 +1 @@
1
- import{r as s,j as e,S as b,C as k,T as g}from"./index-C0C36jb2.js";const m=c=>{const{open:C,onClose:u}=c,[t,n]=s.useState(!0),[o,l]=s.useState(!1),[d,i]=s.useState(!1),[x,E]=s.useState(!1),r=[{label:"是否开启域名校验",description:"开启后,客户端将校验所有请求的域名是否合法,建议开发环境关闭以便调试。",checked:t,onChange:n},{label:"是否开启 IAA Mock",description:"启用后,广告相关接口将返回模拟数据,方便开发和测试广告逻辑。",checked:o,onChange:l},{label:"是否开启 IAP Mock",description:"启用后,内购相关流程将使用模拟支付,避免真实扣费。",checked:d,onChange:i}];return e.jsx("div",{children:e.jsx(b,{vertical:!0,align:"start",spacing:"loose",children:r.map((a,h)=>e.jsxs("div",{children:[e.jsx(k,{checked:a.checked,onChange:p=>a.onChange(p.target.checked),children:a.label}),e.jsx(g.Text,{type:"tertiary",style:{display:"block",marginTop:4},children:a.description})]},h))})})};export{m as DebugSetting};
1
+ import{r as s,j as e,S as b,C as k,T as g}from"./index-BGB_3rmy.js";const m=c=>{const{open:C,onClose:u}=c,[t,n]=s.useState(!0),[o,l]=s.useState(!1),[d,i]=s.useState(!1),[x,E]=s.useState(!1),r=[{label:"是否开启域名校验",description:"开启后,客户端将校验所有请求的域名是否合法,建议开发环境关闭以便调试。",checked:t,onChange:n},{label:"是否开启 IAA Mock",description:"启用后,广告相关接口将返回模拟数据,方便开发和测试广告逻辑。",checked:o,onChange:l},{label:"是否开启 IAP Mock",description:"启用后,内购相关流程将使用模拟支付,避免真实扣费。",checked:d,onChange:i}];return e.jsx("div",{children:e.jsx(b,{vertical:!0,align:"start",spacing:"loose",children:r.map((a,h)=>e.jsxs("div",{children:[e.jsx(k,{checked:a.checked,onChange:p=>a.onChange(p.target.checked),children:a.label}),e.jsx(g.Text,{type:"tertiary",style:{display:"block",marginTop:4},children:a.description})]},h))})})};export{m as DebugSetting};
@@ -1 +1 @@
1
- import{B as I,a as q,k as R,l as k,b as D,c as T,R as r,m as x,I as A,n as U,L as z,o as M,p as X,q as Q,P as s,s as Z,t as j,v as G,i as o,w as H,u as J,r as v,N as w,j as m,e as K,F as P,x as W}from"./index-C0C36jb2.js";const B={PREFIX:`${I}-popconfirm`,POPOVER:`${I}-popconfirm-popover`},Y={DEFAULT_Z_INDEX:1030};class ee extends q{init(){}destroy(){}handleCancel(e){const t=this._adapter.notifyCancel(e);R(t)?(this._adapter.updateCancelLoading(!0),t.then(n=>{this.handleVisibleChange(!1),this._adapter.updateCancelLoading(!1)},n=>{this._adapter.updateCancelLoading(!1)})):this.handleVisibleChange(!1)}handleConfirm(e){const t=this._adapter.notifyConfirm(e);R(t)?(this._adapter.updateConfirmLoading(!0),t.then(n=>{this._adapter.updateConfirmLoading(!1),this.handleVisibleChange(!1)},n=>{this._adapter.updateConfirmLoading(!1)})):this.handleVisibleChange(!1)}handleClickOutSide(e){this._adapter.notifyClickOutSide(e)}handleVisibleChange(e){this._isControlledComponent("visible")||this._adapter.setVisible(e),e?this.handleFocusOperateButton():this._adapter.focusPrevFocusElement(),this._adapter.notifyVisibleChange(e)}handleFocusOperateButton(){const{cancelButtonProps:e,okButtonProps:t}=this._adapter.getProps();k(e,"autoFocus")&&!k(e,"disabled")?this._adapter.focusCancelButton():k(t,"autoFocus")&&!k(t,"disabled")&&this._adapter.focusOkButton()}}var te=function(u,e){var t={};for(var n in u)Object.prototype.hasOwnProperty.call(u,n)&&e.indexOf(n)<0&&(t[n]=u[n]);if(u!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(u);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(u,n[i])&&(t[n[i]]=u[n[i]]);return t};class O extends D{constructor(e){super(e),this.handleCancel=t=>this.foundation.handleCancel(t&&t.nativeEvent),this.handleConfirm=t=>this.foundation.handleConfirm(t&&t.nativeEvent),this.handleVisibleChange=t=>this.foundation.handleVisibleChange(t),this.handleClickOutSide=t=>this.foundation.handleClickOutSide(t),this.stopImmediatePropagation=t=>t&&t.nativeEvent&&t.nativeEvent.stopImmediatePropagation(),this.renderConfirmPopCard=t=>{let{initialFocusRef:n}=t;const{content:i,title:g,className:p,style:f,cancelType:b,icon:h,prefixCls:l,showCloseIcon:y}=this.props,{direction:_}=this.context,S=T(l,p,{[`${l}-rtl`]:_==="rtl"}),E=g!==null&&typeof g<"u",F=!(i===null||typeof i>"u"),V=r.isValidElement(h),N=T({[`${l}-body`]:!0,[`${l}-body-withIcon`]:V});return r.createElement("div",{className:S,onClick:this.stopImmediatePropagation,style:f},r.createElement("div",{className:`${l}-inner`},r.createElement("div",{className:`${l}-header`},V?r.createElement("i",{className:`${l}-header-icon`,"x-semi-prop":"icon"},h):null,r.createElement("div",{className:`${l}-header-body`},E?r.createElement("div",{className:`${l}-header-title`,"x-semi-prop":"title"},g):null),y?r.createElement(x,{className:`${l}-btn-close`,icon:r.createElement(A,null),size:"small",theme:"borderless",type:b,onClick:this.handleCancel}):null),F?r.createElement("div",{className:N,"x-semi-prop":"content"},U(i)?i({initialFocusRef:n}):i):null,r.createElement("div",{className:`${l}-footer`,ref:this.footerRef},this.renderControls())))},this.state={cancelLoading:!1,confirmLoading:!1,visible:e.defaultVisible||!1},this.foundation=new ee(this.adapter),this.footerRef=r.createRef(),this.popoverRef=r.createRef()}static getDerivedStateFromProps(e,t){const n={},{hasOwnProperty:i}=Object.prototype;return i.call(e,"visible")&&(n.visible=e.visible),n}get adapter(){return Object.assign(Object.assign({},super.adapter),{setVisible:e=>this.setState({visible:e}),updateConfirmLoading:e=>this.setState({confirmLoading:e}),updateCancelLoading:e=>this.setState({cancelLoading:e}),notifyConfirm:e=>this.props.onConfirm(e),notifyCancel:e=>this.props.onCancel(e),notifyVisibleChange:e=>this.props.onVisibleChange(e),notifyClickOutSide:e=>this.props.onClickOutSide(e),focusCancelButton:()=>{var e,t;const n=(t=(e=this.footerRef)===null||e===void 0?void 0:e.current)===null||t===void 0?void 0:t.querySelector("[data-type=cancel]");n?.focus({preventScroll:!0})},focusOkButton:()=>{var e,t;const n=(t=(e=this.footerRef)===null||e===void 0?void 0:e.current)===null||t===void 0?void 0:t.querySelector("[data-type=ok]");n?.focus({preventScroll:!0})},focusPrevFocusElement:()=>{var e;(e=this.popoverRef.current)===null||e===void 0||e.focusTrigger()}})}renderControls(){const{okText:e,cancelText:t,okType:n,cancelType:i,cancelButtonProps:g,okButtonProps:p}=this.props,{cancelLoading:f,confirmLoading:b}=this.state;return r.createElement(z,{componentName:"Popconfirm"},(h,l)=>r.createElement(r.Fragment,null,r.createElement(x,Object.assign({"data-type":"cancel",type:i,onClick:this.handleCancel,loading:f},M(g,"autoFocus")),t||k(h,"cancel")),r.createElement(x,Object.assign({"data-type":"ok",type:n,theme:"solid",onClick:this.handleConfirm,loading:b},M(p,"autoFocus")),e||k(h,"confirm"))))}render(){const{direction:e}=this.context,t=e==="rtl"?"bottomRight":"bottomLeft",n=this.props,{className:i,prefixCls:g,disabled:p,children:f,style:b,position:h=t}=n,l=te(n,["className","prefixCls","disabled","children","style","position"]);if(p)return f;const{visible:y}=this.state,_={onVisibleChange:this.handleVisibleChange,className:B.POPOVER,onClickOutSide:this.handleClickOutSide};return this.isControlled("visible")&&(_.trigger="custom"),r.createElement(X,Object.assign({ref:this.popoverRef},l,{content:S=>{let{initialFocusRef:E}=S;return this.renderConfirmPopCard({initialFocusRef:E})},visible:y,position:h},_),f)}}O.contextType=Q;O.propTypes={motion:s.oneOfType([s.bool,s.func,s.object]),disabled:s.bool,content:s.oneOfType([s.node,s.func]),title:s.any,prefixCls:s.string,className:s.string,style:s.object,icon:s.node,okText:s.string,okType:s.string,cancelText:s.string,cancelType:s.string,onCancel:s.func,onConfirm:s.func,onClickOutSide:s.func,onVisibleChange:s.func,visible:s.bool,defaultVisible:s.bool,okButtonProps:s.object,cancelButtonProps:s.object,stopPropagation:s.oneOfType([s.bool,s.string]),showCloseIcon:s.bool,zIndex:s.number,trigger:s.string,position:s.string};O.__SemiComponentName__="Popconfirm";O.defaultProps=Z(O.__SemiComponentName__,{stopPropagation:!0,trigger:"click",onVisibleChange:j,disabled:!1,icon:r.createElement(G,{size:"extra-large"}),okType:"primary",cancelType:"tertiary",prefixCls:B.PREFIX,zIndex:Y.DEFAULT_Z_INDEX,showCloseIcon:!0,onCancel:j,onConfirm:j,onClickOutSide:j});const ne=[{label:o("scene_scan_qrcode"),value:"scan_qrcode"},{label:o("scene_search"),value:"search"},{label:o("scene_anchor"),value:"anchor"},{label:o("scene_center"),value:"center"},{label:o("scene_ad"),value:"ads"},{label:o("scene_shortcut"),value:"desktop_shortcut"},{label:o("scene_sharing"),value:"dm_sharing"},{label:o("scene_link"),value:"minis_link"}],se=()=>{const u=H(),{state:{launchOptions:e,selectedLaunchOption:t,packages:n},setLaunchOptions:i,setSelectedLaunchOption:g}=J(),p=v.useRef(null),f=t||w,[b,h]=v.useState(f),[l,y]=v.useState(f.id),_=n.map(a=>{if(a.type==="main")return{label:o("gameMainPackage"),value:a.name};if(a.type==="independent")return{label:`${o("independentPackage")}: ${a.name}`,value:a.name}}).filter(Boolean),S=v.useCallback(a=>{const c={...b,...a};c.pkgType==="main"&&c.independentPkg!==void 0&&(c.independentPkg=void 0,p.current&&p.current.setValues({independentPkg:void 0})),h(c)},[b]),E=v.useCallback(()=>{if(!p.current)return;const a=p.current.getValues();a.pkgType==="main"&&(a.independentPkg=void 0);const c=e.findIndex(C=>C.name===a.name&&C.id!=="created"&&C.id!=="normal");let d;c!==-1?(d=[...e],d[c]=a):(a.id=Date.now().toString(),d=[...e.slice(0,-1),a,...e.slice(-1)]),i(d),h(a),g(a),u("/")},[e,u,i,g]),F=v.useCallback(a=>{const c=e.find(d=>d.id===a);if(c){y(a);const d={...c};a==="created"?d.name="":a==="normal"&&(d.name=o("normalLaunchMode")),h(d),p.current?.setValues(d)}},[e]),V=v.useCallback(()=>{const a=l;if(["normal","created"].includes(a))return;const c=e.filter(L=>L.id!==a);i(c);const d=c.find(L=>L.id==="normal")||c.find(L=>L.id==="created")||c[0]||w,C={...d,...d.id==="created"?{name:""}:{},...d.id==="normal"?{name:o("normalLaunchMode")}:{}};g(C),y(C.id),h(C),p.current?.setValues(C)},[e,l,i,g]),N=v.useCallback(()=>{h(f),p.current?.setValues(f),u("/")},[f,u]),$=e.find(a=>a.id===l);return m.jsxs("div",{children:[m.jsx(K,{style:{marginBottom:32},fullMode:!1,icon:null,closeIcon:null,description:o("launchModeDesc"),type:"info"}),m.jsxs(P,{initValues:b,onValueChange:S,getFormApi:a=>p.current=a,style:{padding:20,border:"1px solid #eee",borderRadius:8},onSubmit:E,children:[m.jsx(P.Select,{placeholder:o("selectLaunchMode"),rules:[{required:!0,message:o("selectLaunchMode")}],field:"id",label:o("selectLaunchMode"),optionList:e.map(a=>({label:a.name,value:a.id})),onChange:F,style:{width:"100%"},value:l}),m.jsx(P.Input,{required:!0,placeholder:o("launchModeName"),field:"name",label:o("launchModeName"),rules:[{required:!0,message:o("notEmpty")}],style:{width:"100%"},trigger:"blur"}),m.jsx(P.Select,{field:"pkgName",label:o("selectLaunchPkg"),placeholder:o("selectLaunchPkg"),rules:[{required:!0,message:o("notEmpty")}],optionList:_,style:{width:"100%"}}),m.jsx(P.Select,{field:"scene",label:o("selectScene"),rules:[{required:!0,message:o("notEmpty")}],placeholder:o("selectScene"),optionList:ne,style:{width:"100%"},filter:!0}),m.jsx(P.Input,{field:"queries",label:o("launchQueries"),placeholder:o("launchQueriesDesc"),trigger:"blur",rules:[{validator:(a,c)=>{const{isValid:d,message:C}=W(c);return d?Promise.resolve():Promise.reject(C)}}],style:{width:"100%"}}),m.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",marginTop:20},children:[["created","normal"].includes(l)?m.jsx(x,{style:{marginRight:12},onClick:N,children:o("cancel")}):m.jsx(O,{title:o("deleteLaunchModeConfirm",{name:$?.name??""}),onConfirm:V,position:"bottomRight",children:m.jsx(x,{type:"danger",style:{marginRight:12},children:o("delete")})}),m.jsx(x,{htmlType:"submit",type:"primary",children:o("saveAndUse")})]})]})]})};export{se as LaunchMode};
1
+ import{B as I,a as q,k as R,l as k,b as D,c as T,R as r,m as x,I as A,n as U,L as z,o as M,p as X,q as Q,P as s,s as Z,t as j,v as G,i as o,w as H,u as J,r as v,N as w,j as m,e as K,F as P,x as W}from"./index-BGB_3rmy.js";const B={PREFIX:`${I}-popconfirm`,POPOVER:`${I}-popconfirm-popover`},Y={DEFAULT_Z_INDEX:1030};class ee extends q{init(){}destroy(){}handleCancel(e){const t=this._adapter.notifyCancel(e);R(t)?(this._adapter.updateCancelLoading(!0),t.then(n=>{this.handleVisibleChange(!1),this._adapter.updateCancelLoading(!1)},n=>{this._adapter.updateCancelLoading(!1)})):this.handleVisibleChange(!1)}handleConfirm(e){const t=this._adapter.notifyConfirm(e);R(t)?(this._adapter.updateConfirmLoading(!0),t.then(n=>{this._adapter.updateConfirmLoading(!1),this.handleVisibleChange(!1)},n=>{this._adapter.updateConfirmLoading(!1)})):this.handleVisibleChange(!1)}handleClickOutSide(e){this._adapter.notifyClickOutSide(e)}handleVisibleChange(e){this._isControlledComponent("visible")||this._adapter.setVisible(e),e?this.handleFocusOperateButton():this._adapter.focusPrevFocusElement(),this._adapter.notifyVisibleChange(e)}handleFocusOperateButton(){const{cancelButtonProps:e,okButtonProps:t}=this._adapter.getProps();k(e,"autoFocus")&&!k(e,"disabled")?this._adapter.focusCancelButton():k(t,"autoFocus")&&!k(t,"disabled")&&this._adapter.focusOkButton()}}var te=function(u,e){var t={};for(var n in u)Object.prototype.hasOwnProperty.call(u,n)&&e.indexOf(n)<0&&(t[n]=u[n]);if(u!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(u);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(u,n[i])&&(t[n[i]]=u[n[i]]);return t};class O extends D{constructor(e){super(e),this.handleCancel=t=>this.foundation.handleCancel(t&&t.nativeEvent),this.handleConfirm=t=>this.foundation.handleConfirm(t&&t.nativeEvent),this.handleVisibleChange=t=>this.foundation.handleVisibleChange(t),this.handleClickOutSide=t=>this.foundation.handleClickOutSide(t),this.stopImmediatePropagation=t=>t&&t.nativeEvent&&t.nativeEvent.stopImmediatePropagation(),this.renderConfirmPopCard=t=>{let{initialFocusRef:n}=t;const{content:i,title:g,className:p,style:f,cancelType:b,icon:h,prefixCls:l,showCloseIcon:y}=this.props,{direction:_}=this.context,S=T(l,p,{[`${l}-rtl`]:_==="rtl"}),E=g!==null&&typeof g<"u",F=!(i===null||typeof i>"u"),V=r.isValidElement(h),N=T({[`${l}-body`]:!0,[`${l}-body-withIcon`]:V});return r.createElement("div",{className:S,onClick:this.stopImmediatePropagation,style:f},r.createElement("div",{className:`${l}-inner`},r.createElement("div",{className:`${l}-header`},V?r.createElement("i",{className:`${l}-header-icon`,"x-semi-prop":"icon"},h):null,r.createElement("div",{className:`${l}-header-body`},E?r.createElement("div",{className:`${l}-header-title`,"x-semi-prop":"title"},g):null),y?r.createElement(x,{className:`${l}-btn-close`,icon:r.createElement(A,null),size:"small",theme:"borderless",type:b,onClick:this.handleCancel}):null),F?r.createElement("div",{className:N,"x-semi-prop":"content"},U(i)?i({initialFocusRef:n}):i):null,r.createElement("div",{className:`${l}-footer`,ref:this.footerRef},this.renderControls())))},this.state={cancelLoading:!1,confirmLoading:!1,visible:e.defaultVisible||!1},this.foundation=new ee(this.adapter),this.footerRef=r.createRef(),this.popoverRef=r.createRef()}static getDerivedStateFromProps(e,t){const n={},{hasOwnProperty:i}=Object.prototype;return i.call(e,"visible")&&(n.visible=e.visible),n}get adapter(){return Object.assign(Object.assign({},super.adapter),{setVisible:e=>this.setState({visible:e}),updateConfirmLoading:e=>this.setState({confirmLoading:e}),updateCancelLoading:e=>this.setState({cancelLoading:e}),notifyConfirm:e=>this.props.onConfirm(e),notifyCancel:e=>this.props.onCancel(e),notifyVisibleChange:e=>this.props.onVisibleChange(e),notifyClickOutSide:e=>this.props.onClickOutSide(e),focusCancelButton:()=>{var e,t;const n=(t=(e=this.footerRef)===null||e===void 0?void 0:e.current)===null||t===void 0?void 0:t.querySelector("[data-type=cancel]");n?.focus({preventScroll:!0})},focusOkButton:()=>{var e,t;const n=(t=(e=this.footerRef)===null||e===void 0?void 0:e.current)===null||t===void 0?void 0:t.querySelector("[data-type=ok]");n?.focus({preventScroll:!0})},focusPrevFocusElement:()=>{var e;(e=this.popoverRef.current)===null||e===void 0||e.focusTrigger()}})}renderControls(){const{okText:e,cancelText:t,okType:n,cancelType:i,cancelButtonProps:g,okButtonProps:p}=this.props,{cancelLoading:f,confirmLoading:b}=this.state;return r.createElement(z,{componentName:"Popconfirm"},(h,l)=>r.createElement(r.Fragment,null,r.createElement(x,Object.assign({"data-type":"cancel",type:i,onClick:this.handleCancel,loading:f},M(g,"autoFocus")),t||k(h,"cancel")),r.createElement(x,Object.assign({"data-type":"ok",type:n,theme:"solid",onClick:this.handleConfirm,loading:b},M(p,"autoFocus")),e||k(h,"confirm"))))}render(){const{direction:e}=this.context,t=e==="rtl"?"bottomRight":"bottomLeft",n=this.props,{className:i,prefixCls:g,disabled:p,children:f,style:b,position:h=t}=n,l=te(n,["className","prefixCls","disabled","children","style","position"]);if(p)return f;const{visible:y}=this.state,_={onVisibleChange:this.handleVisibleChange,className:B.POPOVER,onClickOutSide:this.handleClickOutSide};return this.isControlled("visible")&&(_.trigger="custom"),r.createElement(X,Object.assign({ref:this.popoverRef},l,{content:S=>{let{initialFocusRef:E}=S;return this.renderConfirmPopCard({initialFocusRef:E})},visible:y,position:h},_),f)}}O.contextType=Q;O.propTypes={motion:s.oneOfType([s.bool,s.func,s.object]),disabled:s.bool,content:s.oneOfType([s.node,s.func]),title:s.any,prefixCls:s.string,className:s.string,style:s.object,icon:s.node,okText:s.string,okType:s.string,cancelText:s.string,cancelType:s.string,onCancel:s.func,onConfirm:s.func,onClickOutSide:s.func,onVisibleChange:s.func,visible:s.bool,defaultVisible:s.bool,okButtonProps:s.object,cancelButtonProps:s.object,stopPropagation:s.oneOfType([s.bool,s.string]),showCloseIcon:s.bool,zIndex:s.number,trigger:s.string,position:s.string};O.__SemiComponentName__="Popconfirm";O.defaultProps=Z(O.__SemiComponentName__,{stopPropagation:!0,trigger:"click",onVisibleChange:j,disabled:!1,icon:r.createElement(G,{size:"extra-large"}),okType:"primary",cancelType:"tertiary",prefixCls:B.PREFIX,zIndex:Y.DEFAULT_Z_INDEX,showCloseIcon:!0,onCancel:j,onConfirm:j,onClickOutSide:j});const ne=[{label:o("scene_scan_qrcode"),value:"scan_qrcode"},{label:o("scene_search"),value:"search"},{label:o("scene_anchor"),value:"anchor"},{label:o("scene_center"),value:"center"},{label:o("scene_ad"),value:"ads"},{label:o("scene_shortcut"),value:"desktop_shortcut"},{label:o("scene_sharing"),value:"dm_sharing"},{label:o("scene_link"),value:"minis_link"}],se=()=>{const u=H(),{state:{launchOptions:e,selectedLaunchOption:t,packages:n},setLaunchOptions:i,setSelectedLaunchOption:g}=J(),p=v.useRef(null),f=t||w,[b,h]=v.useState(f),[l,y]=v.useState(f.id),_=n.map(a=>{if(a.type==="main")return{label:o("gameMainPackage"),value:a.name};if(a.type==="independent")return{label:`${o("independentPackage")}: ${a.name}`,value:a.name}}).filter(Boolean),S=v.useCallback(a=>{const c={...b,...a};c.pkgType==="main"&&c.independentPkg!==void 0&&(c.independentPkg=void 0,p.current&&p.current.setValues({independentPkg:void 0})),h(c)},[b]),E=v.useCallback(()=>{if(!p.current)return;const a=p.current.getValues();a.pkgType==="main"&&(a.independentPkg=void 0);const c=e.findIndex(C=>C.name===a.name&&C.id!=="created"&&C.id!=="normal");let d;c!==-1?(d=[...e],d[c]=a):(a.id=Date.now().toString(),d=[...e.slice(0,-1),a,...e.slice(-1)]),i(d),h(a),g(a),u("/")},[e,u,i,g]),F=v.useCallback(a=>{const c=e.find(d=>d.id===a);if(c){y(a);const d={...c};a==="created"?d.name="":a==="normal"&&(d.name=o("normalLaunchMode")),h(d),p.current?.setValues(d)}},[e]),V=v.useCallback(()=>{const a=l;if(["normal","created"].includes(a))return;const c=e.filter(L=>L.id!==a);i(c);const d=c.find(L=>L.id==="normal")||c.find(L=>L.id==="created")||c[0]||w,C={...d,...d.id==="created"?{name:""}:{},...d.id==="normal"?{name:o("normalLaunchMode")}:{}};g(C),y(C.id),h(C),p.current?.setValues(C)},[e,l,i,g]),N=v.useCallback(()=>{h(f),p.current?.setValues(f),u("/")},[f,u]),$=e.find(a=>a.id===l);return m.jsxs("div",{children:[m.jsx(K,{style:{marginBottom:32},fullMode:!1,icon:null,closeIcon:null,description:o("launchModeDesc"),type:"info"}),m.jsxs(P,{initValues:b,onValueChange:S,getFormApi:a=>p.current=a,style:{padding:20,border:"1px solid #eee",borderRadius:8},onSubmit:E,children:[m.jsx(P.Select,{placeholder:o("selectLaunchMode"),rules:[{required:!0,message:o("selectLaunchMode")}],field:"id",label:o("selectLaunchMode"),optionList:e.map(a=>({label:a.name,value:a.id})),onChange:F,style:{width:"100%"},value:l}),m.jsx(P.Input,{required:!0,placeholder:o("launchModeName"),field:"name",label:o("launchModeName"),rules:[{required:!0,message:o("notEmpty")}],style:{width:"100%"},trigger:"blur"}),m.jsx(P.Select,{field:"pkgName",label:o("selectLaunchPkg"),placeholder:o("selectLaunchPkg"),rules:[{required:!0,message:o("notEmpty")}],optionList:_,style:{width:"100%"}}),m.jsx(P.Select,{field:"scene",label:o("selectScene"),rules:[{required:!0,message:o("notEmpty")}],placeholder:o("selectScene"),optionList:ne,style:{width:"100%"},filter:!0}),m.jsx(P.Input,{field:"queries",label:o("launchQueries"),placeholder:o("launchQueriesDesc"),trigger:"blur",rules:[{validator:(a,c)=>{const{isValid:d,message:C}=W(c);return d?Promise.resolve():Promise.reject(C)}}],style:{width:"100%"}}),m.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",marginTop:20},children:[["created","normal"].includes(l)?m.jsx(x,{style:{marginRight:12},onClick:N,children:o("cancel")}):m.jsx(O,{title:o("deleteLaunchModeConfirm",{name:$?.name??""}),onConfirm:V,position:"bottomRight",children:m.jsx(x,{type:"danger",style:{marginRight:12},children:o("delete")})}),m.jsx(x,{htmlType:"submit",type:"primary",children:o("saveAndUse")})]})]})]})};export{se as LaunchMode};
@@ -1 +1 @@
1
- import{u as U,r as l,j as e,p as b,ac as m,i as a,c as k,ad as y,h as D,T as x,F as h,f as F,ae as A}from"./index-C0C36jb2.js";const M=()=>{const{state:{user:r}}=U(),[f,i]=l.useState(!1),[g,o]=l.useState(!1),[j,c]=l.useState(""),[d,n]=l.useState(""),p=l.useRef(null),u=()=>{o(!1),n(""),c("")},v=()=>{i(!1),u(),p.current?.formApi?.reset?.()},C=()=>{r?.email&&i(!0)},N=s=>{const t=s;if(t?.code===0)A.success({title:a("uploadPlatformSuccess"),content:e.jsxs(e.Fragment,{children:[e.jsx("div",{children:a("uploadPlatformDesc")}),e.jsx("div",{style:{marginTop:12,display:"flex",justifyContent:"flex-end"},children:e.jsx(x.Text,{link:!0,onClick:()=>{window.open(t?.data?.detail,"_blank")},children:a("viewOnPlatform")})})]}),duration:10}),i(!1),u();else{const P=t?.error?.StatusMessage||t?.detail||a("uploadPlatformFailed");n(P),o(!1)}},S=s=>{const t=s?.error?.StatusMessage||s?.response?.detail||s?.message||a("uploadPlatformFailed");n(t),o(!1)},T=()=>{o(!0),F({method:"POST",url:"/game/upload",headers:{"ttmg-game-desc":encodeURIComponent(j||"--")}}).then(s=>{N(s)}).catch(s=>{S(s)})};return e.jsxs(e.Fragment,{children:[e.jsx(b,{content:()=>r?.email?null:e.jsx("div",{className:"uploader-login-tip",children:a("loginToUpload")}),children:e.jsxs("div",{className:k("resource-uploader",{"resource-uploader-disabled":!r?.email}),onClick:C,children:[e.jsx(m,{size:"default"}),e.jsx("div",{className:"uploader-text",children:a("upload")})]})}),e.jsx(y,{footer:null,visible:f,onCancel:v,title:a("uploadToPlatform"),children:e.jsxs("div",{className:"uploader-modal-content",children:[g&&e.jsx("div",{className:"upload-loading-container",children:e.jsx("div",{className:"loading-spin",children:e.jsx(D,{size:"large"})})}),d&&e.jsx(x.Text,{style:{color:"red",marginBottom:12,marginTop:12},children:d}),e.jsxs(h,{ref:p,onChange:({values:s})=>{c(s?.gameDescription||"--"),n("")},children:[e.jsx(h.TextArea,{label:a("gameAssetDescription"),placeholder:a("gameAssetDescription"),field:"gameDescription"}),e.jsxs("div",{className:"uploader-button-container",onClick:T,children:[e.jsx(m,{className:"uploader-button-icon"}),e.jsx("div",{className:"uploader-button-text",children:a("uploadGamePackageTip")})]})]})]})})]})};export{M as GameUploader};
1
+ import{u as U,r as l,j as e,p as b,ac as m,i as a,c as k,ad as y,h as D,T as x,F as h,f as F,ae as A}from"./index-BGB_3rmy.js";const M=()=>{const{state:{user:r}}=U(),[f,i]=l.useState(!1),[g,o]=l.useState(!1),[j,c]=l.useState(""),[d,n]=l.useState(""),p=l.useRef(null),u=()=>{o(!1),n(""),c("")},v=()=>{i(!1),u(),p.current?.formApi?.reset?.()},C=()=>{r?.email&&i(!0)},N=s=>{const t=s;if(t?.code===0)A.success({title:a("uploadPlatformSuccess"),content:e.jsxs(e.Fragment,{children:[e.jsx("div",{children:a("uploadPlatformDesc")}),e.jsx("div",{style:{marginTop:12,display:"flex",justifyContent:"flex-end"},children:e.jsx(x.Text,{link:!0,onClick:()=>{window.open(t?.data?.detail,"_blank")},children:a("viewOnPlatform")})})]}),duration:10}),i(!1),u();else{const P=t?.error?.StatusMessage||t?.detail||a("uploadPlatformFailed");n(P),o(!1)}},S=s=>{const t=s?.error?.StatusMessage||s?.response?.detail||s?.message||a("uploadPlatformFailed");n(t),o(!1)},T=()=>{o(!0),F({method:"POST",url:"/game/upload",headers:{"ttmg-game-desc":encodeURIComponent(j||"--")}}).then(s=>{N(s)}).catch(s=>{S(s)})};return e.jsxs(e.Fragment,{children:[e.jsx(b,{content:()=>r?.email?null:e.jsx("div",{className:"uploader-login-tip",children:a("loginToUpload")}),children:e.jsxs("div",{className:k("resource-uploader",{"resource-uploader-disabled":!r?.email}),onClick:C,children:[e.jsx(m,{size:"default"}),e.jsx("div",{className:"uploader-text",children:a("upload")})]})}),e.jsx(y,{footer:null,visible:f,onCancel:v,title:a("uploadToPlatform"),children:e.jsxs("div",{className:"uploader-modal-content",children:[g&&e.jsx("div",{className:"upload-loading-container",children:e.jsx("div",{className:"loading-spin",children:e.jsx(D,{size:"large"})})}),d&&e.jsx(x.Text,{style:{color:"red",marginBottom:12,marginTop:12},children:d}),e.jsxs(h,{ref:p,onChange:({values:s})=>{c(s?.gameDescription||"--"),n("")},children:[e.jsx(h.TextArea,{label:a("gameAssetDescription"),placeholder:a("gameAssetDescription"),field:"gameDescription"}),e.jsxs("div",{className:"uploader-button-container",onClick:T,children:[e.jsx(m,{className:"uploader-button-icon"}),e.jsx("div",{className:"uploader-button-text",children:a("uploadGamePackageTip")})]})]})]})})]})};export{M as GameUploader};
@@ -0,0 +1 @@
1
+ import{u as c,r as l,D as d,j as e,i as a,d as i,E as r}from"./index-BGB_3rmy.js";const g=[{title:"0.3.2",target:{iOS:">=43.1",Android:">=43.1"},changes:{feature:[{desc:{"zh-CN":"增加对 unity 是否需要分包的检查,对于需要分包的 unity 项目,给出明确提示","en-US":"Add check for whether unity project needs subpackage, for unity projects that need subpackage, give clear prompt"},module:"new"},{desc:{"zh-CN":"支持通过 `ttmg setup` 配置 CLI 语言,调试环境会跟随语言设置展示文案,首次调试时会自动同步默认语言,后续 CLI 与 IDE 语言保持一致,减少反复切换","en-US":"Support configuring CLI language via `ttmg setup`; the debug workspace follows this language setting for message display, the default language is auto-synced on first debug, so CLI and IDE stay consistent afterwards without repeated switching"},module:"new"},{desc:{"zh-CN":"调试与预检支持多语言展示,关键提示与校验信息更易理解","en-US":"Debugging and precheck flows now support multilingual display, making key prompts and validation messages easier to understand"},module:"new"},{desc:{"zh-CN":"支持 Cocos 2.0 openDataContext 配置","en-US":"Support Cocos 2.0 openDataContext configuration"},module:"openDataContext"},{desc:{"zh-CN":"变更记录新增提醒功能,当有新版本发布时,会通过弹窗提醒开发者更新","en-US":"Change log now has a reminder function, when a new version is released, a popup will remind developers to update"},module:"new"}],optimize:[{desc:{"zh-CN":"ttmg login 支持 ttmg login --verbose 参数,打印更多登录信息","en-US":"ttmg login supports ttmg login --verbose parameter, print more login information"},module:"new"},{desc:{"zh-CN":"API 预检建议文案统一收敛,避免重复提示,阅读更清晰","en-US":"API precheck suggestion messages are now unified to avoid duplicated hints and improve readability"},module:"check"},{desc:{"zh-CN":"顶部区域透出项目预检错误与警告信息,便于开发者及时发现问题并修复","en-US":"Top area now displays project precheck error and warning information, making it easier for developers to find and fix problems"},module:"check"},{desc:{"zh-CN":"语言选择策略优化:优先使用 CLI 本地设置,未设置时自动回退浏览器语言","en-US":"Language selection is optimized: CLI local setting is preferred, and browser language is used as fallback when unset"},module:"check"},{desc:{"zh-CN":"启动校验增强:检查是否在小游戏根目录执行,对于分包配置 subPackages 给出明确报错,引导开发者修改为 subpackages","en-US":"Enhance entry validation: ensure running in project root and warn about subPackages typo; subpackages is required"},module:"check"}],bugfix:[{desc:{"zh-CN":"修复项目详情中展示的主包大小限制和代码预检不一致的情况","en-US":"Fix the issue that the main package size limit and code precheck are inconsistent in the project details"},module:"detail"},{desc:{"zh-CN":"修复 CLI npm package size 过大问题","en-US":"Fix the issue that the CLI npm package size is too large"},module:"detail"}]}},{title:"0.3.1",target:{iOS:">=43.1",Android:">=43.1"},changes:{feature:[{desc:{"zh-CN":"支持 unity 小游戏本地一些列调试功能,如 Wasm 分包、包大小校验、一键上传代码包至平台等","en-US":"Support unity debug features, such as Wasm split, package size check, one-click upload code package to platform, etc."},link:"https://bytedance.larkoffice.com/wiki/E5TAwQ1O1iylUXkoQFocfdL0ntG",module:"new"},{desc:{"zh-CN":"增加用户登录过期的异常提示,提醒开发者重新登录","en-US":"Add login expired exception prompt, prompt developers to re-login."},module:"login"}],optimize:[{desc:{"zh-CN":"优化上传代码包至平台功能,开发者只用添加描述后点击上传便可自动压缩当前目录下的代码包上传至开发者平台","en-US":"Optimize upload code package to platform function, developers only need to add a description and click upload to automatically compress the code package in the current directory to the developer platform."},module:"upload"},{desc:{"zh-CN":"优化 ttmg login 终端网络代理异常导致无法登录的报错引导,提示用户检查网络设置","en-US":"Optimize ttmg login terminal network proxy exception login prompt, prompt check network settings."},module:"login"}]}},{title:"0.3.0",target:{iOS:">=43.1",Android:">=43.1"},changes:{feature:[{desc:{"zh-CN":"支持了开发信息蒙层,打开后可以查看游戏 FPS、设备信息、调试开关等信息,便于查看游戏运行状态","en-US":"Support devInfo panel, which can show game FPS, device info, debug switch, etc."},link:"https://bytedance.larkoffice.com/wiki/PaK1wSu0eiPrxrkrqtrcR3VEnjf",module:"devOptions"},{desc:{"zh-CN":"支持删除历史启动模式,便于管理历史启动模式","en-US":"Support delete historical launch mode,keep consistent with client dev options"},module:"devOptions"},{desc:{"zh-CN":"调整调试设置模块名称为开发选项,和客户端内调开发者选项保持一致","en-US":"Rename debug setting module to dev options, keep consistent with client dev options"},module:"devOptions",link:"https://bytedance.larkoffice.com/wiki/PaK1wSu0eiPrxrkrqtrcR3VEnjf"},{desc:{"zh-CN":"调试设置新增定义 vConsole 和 开发信息浮层设置","en-US":"Add debug setting to define vConsole and dev overlay"},module:"devOptions"},{desc:{"zh-CN":"支持了变更日志,用户可以在调试环境下查看游戏的变更记录,部分新功能可通过更多信息查看使用","en-US":"Support change log, user can view game change log in IDE, some new features can be viewed in more info"},module:"new"}],optimize:[{desc:{"zh-CN":"支持了调试设置开关本地缓存,避免每次都需要重新设置","en-US":"Support debug setting cache, avoid setting debug mode every time"},module:"devOptions"}],bugfix:[{desc:{"zh-CN":"修复上传名称为中文的游戏时,平台展示乱码的问题","en-US":"Fix the issue that the platform shows garbled code when the game name is in Chinese"},module:"upload"},{desc:{"zh-CN":"修复启动模式模块,自定义query 参数无法持久化的问题","en-US":"Fix the issue that custom query parameters cannot be persisted in launch mode module"},module:"launchMode"},{desc:{"zh-CN":"修复扫描二维码模块,内容过多,纵向无法滚动问题","en-US":"Fix the issue that the content in scan QR code module is too long, and cannot be scrolled vertically"},module:"scanQrcode"}]}}],p=()=>{const{state:{devToolVersion:s}}=c(),o=r;return l.useEffect(()=>{s&&d(s)},[s]),e.jsx("div",{className:"change-log-container",children:g.map(n=>e.jsxs("div",{className:"change-log-item",children:[e.jsx("h2",{className:"change-log-title",children:n.title}),e.jsx("div",{className:"change-log-target",children:e.jsxs("div",{className:"change-log-target-title",children:[a("changelogTarget")," iOS ",n.target.iOS," | Android",n.target.Android]})}),n?.changes?.feature?.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"change-log-feature-title",children:e.jsx(i,{color:"green",size:"large",shape:"circle",type:"solid",children:a("changelogFeature")})}),e.jsx("ul",{className:"change-log-changes-feature",children:n.changes.feature.map(t=>e.jsxs("li",{className:"change-log-change",children:[t.desc[o]," ",t?.link?e.jsx("a",{style:{fontWeight:600,color:"orange"},href:t.link,target:"_blank",rel:"noopener noreferrer",children:a("changelogLink")}):null]},t.desc[o]))})]}),n?.changes?.optimize?.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"change-log-optimize-title",children:e.jsx(i,{color:"orange",size:"large",shape:"circle",type:"solid",children:a("changelogOptimize")})}),e.jsx("ul",{className:"change-log-changes-optimize",children:n.changes.optimize.map(t=>e.jsx("li",{className:"change-log-change",children:t.desc[o]},t.desc[o]))})]}),n?.changes?.bugfix?.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"change-log-bugfix-title",children:e.jsx(i,{color:"red",size:"large",shape:"circle",type:"solid",children:a("changelogBugfix")})}),e.jsx("ul",{className:"change-log-changes-bugfix",children:n.changes.bugfix.map(t=>e.jsx("li",{className:"change-log-change",children:t.desc[o]},t.desc[o]))})]})]},n.title))})};export{p as ChangeLog};
@@ -12,7 +12,7 @@
12
12
  rel="stylesheet"
13
13
  />
14
14
  <title>TikTok Mini Games DevTool</title>
15
- <script type="module" crossorigin src="/assets/index-C0C36jb2.js"></script>
15
+ <script type="module" crossorigin src="/assets/index-BGB_3rmy.js"></script>
16
16
  <link rel="stylesheet" crossorigin href="/assets/index-C250u6X0.css">
17
17
  </head>
18
18
  <body>
@@ -15,3 +15,9 @@ if (hasIde) {
15
15
  }
16
16
 
17
17
  execSync('rollup -c', { stdio: 'inherit' });
18
+
19
+ // Ensure the compiled CLI entry point has execution permissions
20
+ const entryFile = path.resolve(distDir, 'index.js');
21
+ if (fs.existsSync(entryFile)) {
22
+ fs.chmodSync(entryFile, 0o755);
23
+ }
@@ -0,0 +1,29 @@
1
+
2
+ const { HttpsProxyAgent } = require('https-proxy-agent');
3
+ const url = require('url');
4
+
5
+ console.log('--- Protocol Compatibility Test ---');
6
+
7
+ try {
8
+ // Test 1: SOCKS5 URI (Should technically fail with HttpsProxyAgent if it doesn't support socks under the hood,
9
+ // but HttpsProxyAgent v5 *might* only support http/https. Let's verify.)
10
+ // Actually, `https-proxy-agent` is specifically for HTTP CONNECT tunneling.
11
+ // If user passes `socks5://...`, does it throw or just fail at runtime?
12
+ const socksProxy = 'socks5://127.0.0.1:1080';
13
+ console.log(`Trying to create HttpsProxyAgent with: ${socksProxy}`);
14
+
15
+ // NOTE: HttpsProxyAgent v5 constructor parses the URL.
16
+ // If protocol is not supported, it might behavior unexpectedly.
17
+ const agent = new HttpsProxyAgent(socksProxy);
18
+ console.log('✅ Agent created successfully (Constructor did not throw).');
19
+ console.log(' Agent protocol:', agent.proxy.protocol);
20
+
21
+ if (agent.proxy.protocol !== 'http:' && agent.proxy.protocol !== 'https:') {
22
+ console.log('⚠️ Warning: Protocol is not http/https. Runtime connection might fail if library doesn\'t support it.');
23
+ }
24
+
25
+ } catch (err) {
26
+ console.log('❌ Constructor threw error for SOCKS5:', err.message);
27
+ }
28
+
29
+ console.log('--- Test End ---');
@@ -0,0 +1,94 @@
1
+
2
+ const path = require('path');
3
+ const fs = require('fs');
4
+ const os = require('os');
5
+ const { HttpsProxyAgent } = require('https-proxy-agent');
6
+
7
+ const MOCK_CONFIG_PATH = path.join(process.cwd(), '.ttmgrc_test_regression');
8
+
9
+ function getTTMGRC() {
10
+ if (!fs.existsSync(MOCK_CONFIG_PATH)) return null;
11
+ return JSON.parse(fs.readFileSync(MOCK_CONFIG_PATH, 'utf8'));
12
+ }
13
+
14
+ function setTTMGRC(config) {
15
+ const origin = getTTMGRC() || {};
16
+ // Simulate CLI logic: merging new config into old
17
+ const merged = { ...origin, ...config };
18
+ // If config value is undefined, it won't remove key in JSON.stringify unless we manipulate it
19
+ // In `config.ts`: `setTTMGRC({ proxy: undefined })` -> JSON.stringify will OMIT the key if value is strictly undefined
20
+ fs.writeFileSync(MOCK_CONFIG_PATH, JSON.stringify(merged));
21
+ }
22
+
23
+ function getAxiosProxyConfig() {
24
+ const config = getTTMGRC();
25
+ const proxyUrl = config ? config.proxy : undefined;
26
+ if (proxyUrl) {
27
+ return {
28
+ httpsAgent: new HttpsProxyAgent(proxyUrl),
29
+ httpAgent: new HttpsProxyAgent(proxyUrl),
30
+ proxy: false,
31
+ };
32
+ }
33
+ return {}; // Important: return empty object means "use axios defaults"
34
+ }
35
+
36
+ async function testRegression() {
37
+ console.log('--- Starting Regression Test (JS) ---');
38
+
39
+ if (fs.existsSync(MOCK_CONFIG_PATH)) fs.unlinkSync(MOCK_CONFIG_PATH);
40
+
41
+ // 1. Default (No Config)
42
+ console.log('Testing default state (no proxy config)...');
43
+ const defaultConfig = getAxiosProxyConfig();
44
+ if (Object.keys(defaultConfig).length === 0) {
45
+ console.log('✅ Default config is empty (Axios defaults apply).');
46
+ } else {
47
+ console.error('❌ Default config is NOT empty.');
48
+ console.log(defaultConfig);
49
+ process.exit(1);
50
+ }
51
+
52
+ // 2. Set Proxy
53
+ const testProxy = 'http://127.0.0.1:7890';
54
+ console.log(`Setting proxy to ${testProxy}...`);
55
+ setTTMGRC({ proxy: testProxy });
56
+
57
+ const activeConfig = getAxiosProxyConfig();
58
+ if (activeConfig.proxy === false) {
59
+ console.log('✅ Proxy configured correctly.');
60
+ } else {
61
+ console.error('❌ Proxy config failed.');
62
+ process.exit(1);
63
+ }
64
+
65
+ // 3. Delete Proxy
66
+ console.log('Deleting proxy config...');
67
+ setTTMGRC({ proxy: undefined });
68
+
69
+ // Verify file content
70
+ const fileContent = fs.readFileSync(MOCK_CONFIG_PATH, 'utf8');
71
+ if (!fileContent.includes('"proxy"')) {
72
+ console.log('✅ Proxy key removed from JSON file.');
73
+ } else {
74
+ console.log('⚠️ Proxy key still present in JSON (might be null or undefined value).');
75
+ console.log(' File content:', fileContent);
76
+ }
77
+
78
+ const revertedConfig = getAxiosProxyConfig();
79
+ if (Object.keys(revertedConfig).length === 0) {
80
+ console.log('✅ Reverted to default state successfully (Axios defaults apply).');
81
+ } else {
82
+ console.error('❌ Revert failed. Config still active:');
83
+ console.log(revertedConfig);
84
+ process.exit(1);
85
+ }
86
+
87
+ if (fs.existsSync(MOCK_CONFIG_PATH)) fs.unlinkSync(MOCK_CONFIG_PATH);
88
+ console.log('--- Regression Test Passed ---');
89
+ }
90
+
91
+ testRegression().catch(err => {
92
+ console.error(err);
93
+ process.exit(1);
94
+ });
@@ -0,0 +1,93 @@
1
+
2
+ import path from 'path';
3
+ import fs from 'fs';
4
+ import os from 'os';
5
+ import { HttpsProxyAgent } from 'https-proxy-agent';
6
+
7
+ // Mock TTMGRC logic
8
+ const MOCK_CONFIG_PATH = path.join(process.cwd(), '.ttmgrc_test_regression');
9
+
10
+ function getTTMGRC() {
11
+ if (!fs.existsSync(MOCK_CONFIG_PATH)) return null;
12
+ return JSON.parse(fs.readFileSync(MOCK_CONFIG_PATH, 'utf8'));
13
+ }
14
+
15
+ function setTTMGRC(config: any) {
16
+ const origin = getTTMGRC() || {};
17
+ fs.writeFileSync(MOCK_CONFIG_PATH, JSON.stringify({ ...origin, ...config }));
18
+ }
19
+
20
+ // Replicate request.ts logic
21
+ function getAxiosProxyConfig() {
22
+ const config = getTTMGRC();
23
+ const proxyUrl = config?.proxy;
24
+ if (proxyUrl) {
25
+ return {
26
+ httpsAgent: new HttpsProxyAgent(proxyUrl),
27
+ httpAgent: new HttpsProxyAgent(proxyUrl),
28
+ proxy: false as const,
29
+ };
30
+ }
31
+ return {};
32
+ }
33
+
34
+ async function testRegression() {
35
+ console.log('--- Starting Regression Test ---');
36
+
37
+ // 1. Cleanup
38
+ if (fs.existsSync(MOCK_CONFIG_PATH)) fs.unlinkSync(MOCK_CONFIG_PATH);
39
+
40
+ // 2. Default State (No Config)
41
+ console.log('Testing default state (no proxy config)...');
42
+ const defaultConfig = getAxiosProxyConfig();
43
+ if (Object.keys(defaultConfig).length === 0) {
44
+ console.log('✅ Default config is empty (Axios will use env vars by default).');
45
+ } else {
46
+ console.error('❌ Default config is NOT empty.');
47
+ console.log(defaultConfig);
48
+ process.exit(1);
49
+ }
50
+
51
+ // 3. Set Proxy
52
+ const testProxy = 'http://127.0.0.1:7890';
53
+ console.log(`Setting proxy to ${testProxy}...`);
54
+ setTTMGRC({ proxy: testProxy });
55
+ const activeConfig = getAxiosProxyConfig();
56
+ if (activeConfig.proxy === false) {
57
+ console.log('✅ Proxy configured correctly.');
58
+ } else {
59
+ console.error('❌ Proxy config failed.');
60
+ process.exit(1);
61
+ }
62
+
63
+ // 4. Delete Proxy (Simulate `ttmg config delete proxy` which sets it to undefined/null)
64
+ console.log('Deleting proxy config...');
65
+ setTTMGRC({ proxy: undefined }); // In JSON.stringify, undefined fields are omitted
66
+
67
+ // Verify file content actually lacks "proxy"
68
+ const fileContent = fs.readFileSync(MOCK_CONFIG_PATH, 'utf8');
69
+ if (fileContent.includes('"proxy"')) {
70
+ // If setTTMGRC implementation merges, we might need to explicitly set to null or check merge logic
71
+ // In the mock above: { ...origin, ...config }. If config has {proxy: undefined}, it overrides?
72
+ // JSON.stringify({a:1, b:undefined}) -> "{\"a\":1}"
73
+ console.log(' (Proxy key removed from JSON)');
74
+ }
75
+
76
+ const revertedConfig = getAxiosProxyConfig();
77
+ if (Object.keys(revertedConfig).length === 0) {
78
+ console.log('✅ Reverted to default state successfully.');
79
+ } else {
80
+ console.error('❌ Revert failed. Config still active:');
81
+ console.log(revertedConfig);
82
+ process.exit(1);
83
+ }
84
+
85
+ // 5. Cleanup
86
+ if (fs.existsSync(MOCK_CONFIG_PATH)) fs.unlinkSync(MOCK_CONFIG_PATH);
87
+ console.log('--- Regression Test Passed ---');
88
+ }
89
+
90
+ testRegression().catch(err => {
91
+ console.error(err);
92
+ process.exit(1);
93
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttmg/cli",
3
- "version": "0.3.2-beta.7",
3
+ "version": "0.3.2-beta.9",
4
4
  "description": "TikTok Mini Game Command Line Tool",
5
5
  "license": "ISC",
6
6
  "bin": {
@@ -13,7 +13,8 @@
13
13
  "prepublish": "npm run build",
14
14
  "build": "node scripts/build.js",
15
15
  "setup": "node scripts/setup.js",
16
- "reset:local-state": "node scripts/resetLocalState.js"
16
+ "reset:local-state": "node scripts/resetLocalState.js",
17
+ "dev:link": "npm run build && npm link"
17
18
  },
18
19
  "keywords": [
19
20
  "TTMG",
@@ -40,6 +41,7 @@
40
41
  "glob": "^11.0.3",
41
42
  "got": "^11.8.5",
42
43
  "handlebars": "4.7.8",
44
+ "https-proxy-agent": "^5.0.1",
43
45
  "inquirer": "^12.7.0",
44
46
  "jsdom": "^26.1.0",
45
47
  "mime-types": "^3.0.1",
@@ -50,6 +52,7 @@
50
52
  "prettier": "^3.6.2",
51
53
  "qs": "6.12.1",
52
54
  "semver": "^7.7.2",
55
+ "socks-proxy-agent": "^9.0.0",
53
56
  "ttmg-pack": "0.4.3",
54
57
  "ws": "^8.18.3"
55
58
  },
@@ -1 +0,0 @@
1
- import{u as c,r as l,D as d,j as e,i as a,d as i,E as r}from"./index-C0C36jb2.js";const g=[{title:"0.3.2",target:{iOS:">=43.1",Android:">=43.1"},changes:{feature:[{desc:{"zh-CN":"增加对 unity 是否需要分包的检查,对于需要分包的 unity 项目,给出明确提示","en-US":"Add check for whether unity project needs subpackage, for unity projects that need subpackage, give clear prompt"},module:"new"},{desc:{"zh-CN":"支持通过 `ttmg setup` 配置 CLI 语言,调试环境会跟随语言设置展示文案,首次调试时会自动同步默认语言,后续 CLI 与 IDE 语言保持一致,减少反复切换","en-US":"Support configuring CLI language via `ttmg setup`; the debug workspace follows this language setting for message display, the default language is auto-synced on first debug, so CLI and IDE stay consistent afterwards without repeated switching"},module:"new"},{desc:{"zh-CN":"调试与预检支持多语言展示,关键提示与校验信息更易理解","en-US":"Debugging and precheck flows now support multilingual display, making key prompts and validation messages easier to understand"},module:"new"},{desc:{"zh-CN":"支持 Cocos 2.0 openDataContext 配置","en-US":"Support Cocos 2.0 openDataContext configuration"},module:"openDataContext"},{desc:{"zh-CN":"变更记录新增提醒功能,当有新版本发布时,会通过弹窗提醒开发者更新","en-US":"Change log now has a reminder function, when a new version is released, a popup will remind developers to update"},module:"new"}],optimize:[{desc:{"zh-CN":"ttmg login 支持 ttmg login --verbose 参数,打印更多登录信息","en-US":"ttmg login supports ttmg login --verbose parameter, print more login information"},module:"new"},{desc:{"zh-CN":"API 预检建议文案统一收敛,避免重复提示,阅读更清晰","en-US":"API precheck suggestion messages are now unified to avoid duplicated hints and improve readability"},module:"check"},{desc:{"zh-CN":"顶部区域透出项目预检错误与警告信息,便于开发者及时发现问题并修复","en-US":"Top area now displays project precheck error and warning information, making it easier for developers to find and fix problems"},module:"check"},{desc:{"zh-CN":"语言选择策略优化:优先使用 CLI 本地设置,未设置时自动回退浏览器语言","en-US":"Language selection is optimized: CLI local setting is preferred, and browser language is used as fallback when unset"},module:"check"},{desc:{"zh-CN":"启动校验增强:检查是否在小游戏根目录执行,对于分包配置 subPackages 给出明确报错,引导开发者修改为 subpackages","en-US":"Enhance entry validation: ensure running in project root and warn about subPackages typo; subpackages is required"},module:"check"}],bugfix:[{desc:{"zh-CN":"修复项目详情中展示的主包大小限制和代码预检不一致的情况","en-US":"Fix the issue that the main package size limit and code precheck are inconsistent in the project details"},module:"detail"}]}},{title:"0.3.1",target:{iOS:">=43.1",Android:">=43.1"},changes:{feature:[{desc:{"zh-CN":"支持 unity 小游戏本地一些列调试功能,如 Wasm 分包、包大小校验、一键上传代码包至平台等","en-US":"Support unity debug features, such as Wasm split, package size check, one-click upload code package to platform, etc."},link:"https://bytedance.larkoffice.com/wiki/E5TAwQ1O1iylUXkoQFocfdL0ntG",module:"new"},{desc:{"zh-CN":"增加用户登录过期的异常提示,提醒开发者重新登录","en-US":"Add login expired exception prompt, prompt developers to re-login."},module:"login"}],optimize:[{desc:{"zh-CN":"优化上传代码包至平台功能,开发者只用添加描述后点击上传便可自动压缩当前目录下的代码包上传至开发者平台","en-US":"Optimize upload code package to platform function, developers only need to add a description and click upload to automatically compress the code package in the current directory to the developer platform."},module:"upload"},{desc:{"zh-CN":"优化 ttmg login 终端网络代理异常导致无法登录的报错引导,提示用户检查网络设置","en-US":"Optimize ttmg login terminal network proxy exception login prompt, prompt check network settings."},module:"login"}]}},{title:"0.3.0",target:{iOS:">=43.1",Android:">=43.1"},changes:{feature:[{desc:{"zh-CN":"支持了开发信息蒙层,打开后可以查看游戏 FPS、设备信息、调试开关等信息,便于查看游戏运行状态","en-US":"Support devInfo panel, which can show game FPS, device info, debug switch, etc."},link:"https://bytedance.larkoffice.com/wiki/PaK1wSu0eiPrxrkrqtrcR3VEnjf",module:"devOptions"},{desc:{"zh-CN":"支持删除历史启动模式,便于管理历史启动模式","en-US":"Support delete historical launch mode,keep consistent with client dev options"},module:"devOptions"},{desc:{"zh-CN":"调整调试设置模块名称为开发选项,和客户端内调开发者选项保持一致","en-US":"Rename debug setting module to dev options, keep consistent with client dev options"},module:"devOptions",link:"https://bytedance.larkoffice.com/wiki/PaK1wSu0eiPrxrkrqtrcR3VEnjf"},{desc:{"zh-CN":"调试设置新增定义 vConsole 和 开发信息浮层设置","en-US":"Add debug setting to define vConsole and dev overlay"},module:"devOptions"},{desc:{"zh-CN":"支持了变更日志,用户可以在调试环境下查看游戏的变更记录,部分新功能可通过更多信息查看使用","en-US":"Support change log, user can view game change log in IDE, some new features can be viewed in more info"},module:"new"}],optimize:[{desc:{"zh-CN":"支持了调试设置开关本地缓存,避免每次都需要重新设置","en-US":"Support debug setting cache, avoid setting debug mode every time"},module:"devOptions"}],bugfix:[{desc:{"zh-CN":"修复上传名称为中文的游戏时,平台展示乱码的问题","en-US":"Fix the issue that the platform shows garbled code when the game name is in Chinese"},module:"upload"},{desc:{"zh-CN":"修复启动模式模块,自定义query 参数无法持久化的问题","en-US":"Fix the issue that custom query parameters cannot be persisted in launch mode module"},module:"launchMode"},{desc:{"zh-CN":"修复扫描二维码模块,内容过多,纵向无法滚动问题","en-US":"Fix the issue that the content in scan QR code module is too long, and cannot be scrolled vertically"},module:"scanQrcode"}]}}],p=()=>{const{state:{devToolVersion:s}}=c(),o=r;return l.useEffect(()=>{s&&d(s)},[s]),e.jsx("div",{className:"change-log-container",children:g.map(n=>e.jsxs("div",{className:"change-log-item",children:[e.jsx("h2",{className:"change-log-title",children:n.title}),e.jsx("div",{className:"change-log-target",children:e.jsxs("div",{className:"change-log-target-title",children:[a("changelogTarget")," iOS ",n.target.iOS," | Android",n.target.Android]})}),n?.changes?.feature?.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"change-log-feature-title",children:e.jsx(i,{color:"green",size:"large",shape:"circle",type:"solid",children:a("changelogFeature")})}),e.jsx("ul",{className:"change-log-changes-feature",children:n.changes.feature.map(t=>e.jsxs("li",{className:"change-log-change",children:[t.desc[o]," ",t?.link?e.jsx("a",{style:{fontWeight:600,color:"orange"},href:t.link,target:"_blank",rel:"noopener noreferrer",children:a("changelogLink")}):null]},t.desc[o]))})]}),n?.changes?.optimize?.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"change-log-optimize-title",children:e.jsx(i,{color:"orange",size:"large",shape:"circle",type:"solid",children:a("changelogOptimize")})}),e.jsx("ul",{className:"change-log-changes-optimize",children:n.changes.optimize.map(t=>e.jsx("li",{className:"change-log-change",children:t.desc[o]},t.desc[o]))})]}),n?.changes?.bugfix?.length>0&&e.jsxs("div",{children:[e.jsx("div",{className:"change-log-bugfix-title",children:e.jsx(i,{color:"red",size:"large",shape:"circle",type:"solid",children:a("changelogBugfix")})}),e.jsx("ul",{className:"change-log-changes-bugfix",children:n.changes.bugfix.map(t=>e.jsx("li",{className:"change-log-change",children:t.desc[o]},t.desc[o]))})]})]},n.title))})};export{p as ChangeLog};