cmtoken 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +10 -0
- package/package.json +9 -3
- package/index.js +0 -12
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var We=Object.create;var z=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var Ye=Object.getPrototypeOf,Xe=Object.prototype.hasOwnProperty;var Je=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var S=(e,t)=>()=>(e&&(t=e(e=0)),t);var M=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Y=(e,t)=>{for(var r in t)z(e,r,{get:t[r],enumerable:!0})},qe=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ze(t))!Xe.call(e,n)&&n!==r&&z(e,n,{get:()=>t[n],enumerable:!(o=Fe(t,n))||o.enumerable});return e};var Ve=(e,t,r)=>(r=e!=null?We(Ye(e)):{},qe(t||!e||!e.__esModule?z(r,"default",{value:e,enumerable:!0}):r,e));var X=M((yt,ce)=>{ce.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}});var de=M((Et,fe)=>{var Ze=X();function le(e){this.mode=Ze.MODE_8BIT_BYTE,this.data=e}le.prototype={getLength:function(){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}};fe.exports=le});var J=M((Ct,he)=>{var _={glog:function(e){if(e<1)throw new Error("glog("+e+")");return _.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return _.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(g=0;g<8;g++)_.EXP_TABLE[g]=1<<g;var g;for(g=8;g<256;g++)_.EXP_TABLE[g]=_.EXP_TABLE[g-4]^_.EXP_TABLE[g-5]^_.EXP_TABLE[g-6]^_.EXP_TABLE[g-8];var g;for(g=0;g<255;g++)_.LOG_TABLE[_.EXP_TABLE[g]]=g;var g;he.exports=_});var q=M((Pt,ge)=>{var L=J();function $(e,t){if(e.length===void 0)throw new Error(e.length+"/"+t);for(var r=0;r<e.length&&e[r]===0;)r++;this.num=new Array(e.length-r+t);for(var o=0;o<e.length-r;o++)this.num[o]=e[o+r]}$.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<e.getLength();o++)t[r+o]^=L.gexp(L.glog(this.get(r))+L.glog(e.get(o)));return new $(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=L.glog(this.get(0))-L.glog(e.get(0)),r=new Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(var n=0;n<e.getLength();n++)r[n]^=L.gexp(L.glog(e.get(n))+t);return new $(r,0).mod(e)}};ge.exports=$});var me=M((Lt,pe)=>{pe.exports={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7}});var Ae=M((bt,Te)=>{var w=X(),ve=q(),je=J(),C=me(),T={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;T.getBCHDigit(t)-T.getBCHDigit(T.G15)>=0;)t^=T.G15<<T.getBCHDigit(t)-T.getBCHDigit(T.G15);return(e<<10|t)^T.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;T.getBCHDigit(t)-T.getBCHDigit(T.G18)>=0;)t^=T.G18<<T.getBCHDigit(t)-T.getBCHDigit(T.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;e!==0;)t++,e>>>=1;return t},getPatternPosition:function(e){return T.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,r){switch(e){case C.PATTERN000:return(t+r)%2===0;case C.PATTERN001:return t%2===0;case C.PATTERN010:return r%3===0;case C.PATTERN011:return(t+r)%3===0;case C.PATTERN100:return(Math.floor(t/2)+Math.floor(r/3))%2===0;case C.PATTERN101:return t*r%2+t*r%3===0;case C.PATTERN110:return(t*r%2+t*r%3)%2===0;case C.PATTERN111:return(t*r%3+(t+r)%2)%2===0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new ve([1],0),r=0;r<e;r++)t=t.multiply(new ve([1,je.gexp(r)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case w.MODE_NUMBER:return 10;case w.MODE_ALPHA_NUM:return 9;case w.MODE_8BIT_BYTE:return 8;case w.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case w.MODE_NUMBER:return 12;case w.MODE_ALPHA_NUM:return 11;case w.MODE_8BIT_BYTE:return 16;case w.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else if(t<41)switch(e){case w.MODE_NUMBER:return 14;case w.MODE_ALPHA_NUM:return 13;case w.MODE_8BIT_BYTE:return 16;case w.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}else throw new Error("type:"+t)},getLostPoint:function(e){var t=e.getModuleCount(),r=0,o=0,n=0;for(o=0;o<t;o++)for(n=0;n<t;n++){for(var s=0,i=e.isDark(o,n),a=-1;a<=1;a++)if(!(o+a<0||t<=o+a))for(var u=-1;u<=1;u++)n+u<0||t<=n+u||a===0&&u===0||i===e.isDark(o+a,n+u)&&s++;s>5&&(r+=3+s-5)}for(o=0;o<t-1;o++)for(n=0;n<t-1;n++){var l=0;e.isDark(o,n)&&l++,e.isDark(o+1,n)&&l++,e.isDark(o,n+1)&&l++,e.isDark(o+1,n+1)&&l++,(l===0||l===4)&&(r+=3)}for(o=0;o<t;o++)for(n=0;n<t-6;n++)e.isDark(o,n)&&!e.isDark(o,n+1)&&e.isDark(o,n+2)&&e.isDark(o,n+3)&&e.isDark(o,n+4)&&!e.isDark(o,n+5)&&e.isDark(o,n+6)&&(r+=40);for(n=0;n<t;n++)for(o=0;o<t-6;o++)e.isDark(o,n)&&!e.isDark(o+1,n)&&e.isDark(o+2,n)&&e.isDark(o+3,n)&&e.isDark(o+4,n)&&!e.isDark(o+5,n)&&e.isDark(o+6,n)&&(r+=40);var h=0;for(n=0;n<t;n++)for(o=0;o<t;o++)e.isDark(o,n)&&h++;var p=Math.abs(100*h/t/t-50)/5;return r+=p*10,r}};Te.exports=T});var V=M((Ot,we)=>{we.exports={L:1,M:0,Q:3,H:2}});var _e=M((It,Me)=>{var K=V();function y(e,t){this.totalCount=e,this.dataCount=t}y.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];y.getRSBlocks=function(e,t){var r=y.getRsBlockTable(e,t);if(r===void 0)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var o=r.length/3,n=[],s=0;s<o;s++)for(var i=r[s*3+0],a=r[s*3+1],u=r[s*3+2],l=0;l<i;l++)n.push(new y(a,u));return n};y.getRsBlockTable=function(e,t){switch(t){case K.L:return y.RS_BLOCK_TABLE[(e-1)*4+0];case K.M:return y.RS_BLOCK_TABLE[(e-1)*4+1];case K.Q:return y.RS_BLOCK_TABLE[(e-1)*4+2];case K.H:return y.RS_BLOCK_TABLE[(e-1)*4+3];default:return}};Me.exports=y});var Ee=M((Bt,ye)=>{function ke(){this.buffer=[],this.length=0}ke.prototype={get:function(e){var t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(var r=0;r<t;r++)this.putBit((e>>>t-r-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};ye.exports=ke});var be=M((Dt,Le)=>{var et=de(),P=Ae(),tt=q(),Ce=_e(),Pe=Ee();function E(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}E.prototype={addData:function(e){var t=new et(e);this.dataList.push(t),this.dataCache=null},isDark:function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var e=1;for(e=1;e<40;e++){for(var t=Ce.getRSBlocks(e,this.errorCorrectLevel),r=new Pe,o=0,n=0;n<t.length;n++)o+=t[n].dataCount;for(var s=0;s<this.dataList.length;s++){var i=this.dataList[s];r.put(i.mode,4),r.put(i.getLength(),P.getLengthInBits(i.mode,e)),i.write(r)}if(r.getLengthInBits()<=o*8)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){this.moduleCount=this.typeNumber*4+17,this.modules=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++){this.modules[r]=new Array(this.moduleCount);for(var o=0;o<this.moduleCount;o++)this.modules[r][o]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e),this.dataCache===null&&(this.dataCache=E.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var r=-1;r<=7;r++)if(!(e+r<=-1||this.moduleCount<=e+r))for(var o=-1;o<=7;o++)t+o<=-1||this.moduleCount<=t+o||(0<=r&&r<=6&&(o===0||o===6)||0<=o&&o<=6&&(r===0||r===6)||2<=r&&r<=4&&2<=o&&o<=4?this.modules[e+r][t+o]=!0:this.modules[e+r][t+o]=!1)},getBestMaskPattern:function(){for(var e=0,t=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=P.getLostPoint(this);(r===0||e>o)&&(e=o,t=r)}return t},createMovieClip:function(e,t,r){var o=e.createEmptyMovieClip(t,r),n=1;this.make();for(var s=0;s<this.modules.length;s++)for(var i=s*n,a=0;a<this.modules[s].length;a++){var u=a*n,l=this.modules[s][a];l&&(o.beginFill(0,100),o.moveTo(u,i),o.lineTo(u+n,i),o.lineTo(u+n,i+n),o.lineTo(u,i+n),o.endFill())}return o},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)this.modules[e][6]===null&&(this.modules[e][6]=e%2===0);for(var t=8;t<this.moduleCount-8;t++)this.modules[6][t]===null&&(this.modules[6][t]=t%2===0)},setupPositionAdjustPattern:function(){for(var e=P.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var r=0;r<e.length;r++){var o=e[t],n=e[r];if(this.modules[o][n]===null)for(var s=-2;s<=2;s++)for(var i=-2;i<=2;i++)Math.abs(s)===2||Math.abs(i)===2||s===0&&i===0?this.modules[o+s][n+i]=!0:this.modules[o+s][n+i]=!1}},setupTypeNumber:function(e){for(var t=P.getBCHTypeNumber(this.typeNumber),r,o=0;o<18;o++)r=!e&&(t>>o&1)===1,this.modules[Math.floor(o/3)][o%3+this.moduleCount-8-3]=r;for(var n=0;n<18;n++)r=!e&&(t>>n&1)===1,this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=r},setupTypeInfo:function(e,t){for(var r=this.errorCorrectLevel<<3|t,o=P.getBCHTypeInfo(r),n,s=0;s<15;s++)n=!e&&(o>>s&1)===1,s<6?this.modules[s][8]=n:s<8?this.modules[s+1][8]=n:this.modules[this.moduleCount-15+s][8]=n;for(var i=0;i<15;i++)n=!e&&(o>>i&1)===1,i<8?this.modules[8][this.moduleCount-i-1]=n:i<9?this.modules[8][15-i-1+1]=n:this.modules[8][15-i-1]=n;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var r=-1,o=this.moduleCount-1,n=7,s=0,i=this.moduleCount-1;i>0;i-=2)for(i===6&&i--;;){for(var a=0;a<2;a++)if(this.modules[o][i-a]===null){var u=!1;s<e.length&&(u=(e[s]>>>n&1)===1);var l=P.getMask(t,o,i-a);l&&(u=!u),this.modules[o][i-a]=u,n--,n===-1&&(s++,n=7)}if(o+=r,o<0||this.moduleCount<=o){o-=r,r=-r;break}}}};E.PAD0=236;E.PAD1=17;E.createData=function(e,t,r){for(var o=Ce.getRSBlocks(e,t),n=new Pe,s=0;s<r.length;s++){var i=r[s];n.put(i.mode,4),n.put(i.getLength(),P.getLengthInBits(i.mode,e)),i.write(n)}for(var a=0,u=0;u<o.length;u++)a+=o[u].dataCount;if(n.getLengthInBits()>a*8)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+a*8+")");for(n.getLengthInBits()+4<=a*8&&n.put(0,4);n.getLengthInBits()%8!==0;)n.putBit(!1);for(;!(n.getLengthInBits()>=a*8||(n.put(E.PAD0,8),n.getLengthInBits()>=a*8));)n.put(E.PAD1,8);return E.createBytes(n,o)};E.createBytes=function(e,t){for(var r=0,o=0,n=0,s=new Array(t.length),i=new Array(t.length),a=0;a<t.length;a++){var u=t[a].dataCount,l=t[a].totalCount-u;o=Math.max(o,u),n=Math.max(n,l),s[a]=new Array(u);for(var h=0;h<s[a].length;h++)s[a][h]=255&e.buffer[h+r];r+=u;var p=P.getErrorCorrectPolynomial(l),k=new tt(s[a],p.getLength()-1),c=k.mod(p);i[a]=new Array(p.getLength()-1);for(var m=0;m<i[a].length;m++){var f=m+c.getLength()-i[a].length;i[a][m]=f>=0?c.get(f):0}}for(var v=0,A=0;A<t.length;A++)v+=t[A].totalCount;for(var B=new Array(v),D=0,R=0;R<o;R++)for(var x=0;x<t.length;x++)R<s[x].length&&(B[D++]=s[x][R]);for(var U=0;U<n;U++)for(var N=0;N<t.length;N++)U<i[N].length&&(B[D++]=i[N][U]);return B};Le.exports=E});var Be=M((Rt,Ie)=>{var rt=be(),Oe=V(),nt="\x1B[40m \x1B[0m",H="\x1B[47m \x1B[0m",ot=function(e){return e?nt:H},Z=function(e){return{times:function(t){return new Array(t).join(e)}}},it=function(e,t){for(var r=new Array(e),o=0;o<e;o++)r[o]=t;return r};Ie.exports={error:Oe.L,generate:function(e,t,r){typeof t=="function"&&(r=t,t={});var o=new rt(-1,this.error);o.addData(e),o.make();var n="";if(t&&t.small){var s=!0,i=!1,a=o.getModuleCount(),u=o.modules.slice(),l=a%2===1;l&&u.push(it(a,i));var h={WHITE_ALL:"\u2588",WHITE_BLACK:"\u2580",BLACK_WHITE:"\u2584",BLACK_ALL:" "},p=Z(h.BLACK_WHITE).times(a+3),k=Z(h.WHITE_BLACK).times(a+3);n+=p+`
|
|
2
|
+
`;for(var c=0;c<a;c+=2){n+=h.WHITE_ALL;for(var m=0;m<a;m++)u[c][m]===i&&u[c+1][m]===i?n+=h.WHITE_ALL:u[c][m]===i&&u[c+1][m]===s?n+=h.WHITE_BLACK:u[c][m]===s&&u[c+1][m]===i?n+=h.BLACK_WHITE:n+=h.BLACK_ALL;n+=h.WHITE_ALL+`
|
|
3
|
+
`}l||(n+=k)}else{var f=Z(H).times(o.getModuleCount()+3);n+=f+`
|
|
4
|
+
`,o.modules.forEach(function(v){n+=H,n+=v.map(ot).join(""),n+=H+`
|
|
5
|
+
`}),n+=f}r?r(n):console.log(n)},setErrorLevel:function(e){this.error=Oe[e]||this.error}}});var Ne={};Y(Ne,{fetchCMTokenOAuthModels:()=>re,loginCMTokenOAuth:()=>ee,refreshCMTokenToken:()=>te});import{randomBytes as De,randomUUID as st,createHash as at}from"node:crypto";import*as Q from"node:os";function j(){try{let{ensureGlobalUndiciEnvProxyDispatcher:e}=Je("openclaw/plugin-sdk/runtime-env");e()}catch{}}function W(e){let t=e?.oauthBaseUrl||Re.baseUrl,r=e?.clientId||Re.clientId;return{codeEndpoint:`${t}/oauth/device/code`,tokenEndpoint:`${t}/oauth/device/token`,authorizeEndpoint:`${t}/oauth/authorize`,clientId:r,baseUrl:t}}function ft(){let e=De(32).toString("base64url"),t=at("sha256").update(e).digest("base64url"),r=De(16).toString("base64url");return{verifier:e,challenge:t,state:r}}async function dt(e){let t=W(e.config);j();try{let r=await fetch(t.codeEndpoint,{method:"POST",signal:AbortSignal.timeout(G),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","x-request-id":st()},body:new URLSearchParams({response_type:"device_code",client_id:t.clientId,scope:ct,code_challenge:e.challenge,code_challenge_method:"S256",state:e.state})}),o=await r.text();if(!r.ok)throw new Error(`CMToken OAuth device code request failed: ${o||r.status}`);let n=JSON.parse(o);if(!n.device_code||!n.user_code||!n.verification_uri)throw new Error(n.error??"CMToken OAuth returned an incomplete payload (missing device_code, user_code or verification_uri).");return n}catch(r){throw new Error(`CMToken OAuth \u8BBE\u5907\u8BF7\u6C42\u8FDE\u63A5\u5931\u8D25 (${t.codeEndpoint}): ${r instanceof Error?r.message:String(r)}`)}}async function ht(e){let t=W(e.config);j();let r;try{r=await fetch(t.tokenEndpoint,{method:"POST",signal:AbortSignal.timeout(G),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:lt,client_id:t.clientId,device_code:e.deviceCode,code_verifier:e.verifier})})}catch(s){return{status:"pending",message:`\u7F51\u7EDC\u8BF7\u6C42\u4E0D\u7A33\u5B9A\uFF0C\u6B63\u5728\u91CD\u8BD5... (${s instanceof Error?s.message:String(s)})`}}let o=await r.text(),n;try{n=JSON.parse(o)}catch{n=void 0}return r.ok?n?!n.access_token||!n.refresh_token||!n.expires_in?{status:"error",message:"CMToken OAuth \u8FD4\u56DE\u7684\u4EE4\u724C\u8D1F\u8F7D\u4E0D\u5B8C\u6574\u3002"}:{status:"success",token:{access:n.access_token,refresh:n.refresh_token,expires:Date.now()+n.expires_in*1e3,resourceUrl:n.resource_url,notification_message:n.notification_message}}:{status:"error",message:"CMToken OAuth \u65E0\u6CD5\u89E3\u6790\u54CD\u5E94\u3002"}:n?.error==="authorization_pending"?{status:"pending",message:"\u6B63\u5728\u7B49\u5F85\u7528\u6237\u6388\u6743..."}:n?.error==="slow_down"?{status:"pending",message:"\u901F\u7387\u53D7\u9650\uFF0C\u6B63\u5728\u51CF\u6162\u8BF7\u6C42..."}:{status:"error",message:n?.error_description??n?.error??o??"OAuth \u4EE4\u724C\u8BF7\u6C42\u5931\u8D25"}}function xe(e,t=!0){return new Promise(r=>{Ue.default.generate(e,{small:t},o=>{r(o)})})}async function gt(){return process.stdout.isTTY?new Promise(e=>{let t=setTimeout(()=>{r(),e({isModern:!1,debugInfo:"timeout_no_response"})},300);function r(){clearTimeout(t),process.stdin.removeListener("data",o),process.stdin.isTTY&&process.stdin.setRawMode(!1),process.stdin.pause()}function o(n){r();let s=n.toString(),i=!1;process.platform==="win32"?i=s.includes("\x1B]11;"):i=s.includes("\x1B[?")||s.includes("\x1B[>")||s.includes("\x1B]11;"),e({isModern:i,debugInfo:JSON.stringify(s)})}try{process.stdin.resume(),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.once("data",o),process.stdout.write("\x1B[c\x1B]11;?\x1B\\")}catch(n){r(),e({isModern:!1,debugInfo:`error_${String(n)}`})}}):{isModern:!1,debugInfo:"not_tty"}}async function ee(e){let t=W(e.config),r=e.runtime?.log??console.log,o=e.runtime?.error??console.error;e.progress.update("\u6B63\u5728\u521D\u59CB\u5316 CMToken OAuth...");let n,{verifier:s,challenge:i,state:a}=ft();try{e.progress.update("\u6B63\u5728\u4ECE\u670D\u52A1\u5668\u83B7\u53D6\u8EAB\u4EFD\u9A8C\u8BC1\u94FE\u63A5..."),n=await dt({challenge:i,state:a,config:e.config})}catch(f){let v=t.baseUrl,A=await xe(v),D=["\u{1F6A8} **\u8EAB\u4EFD\u9A8C\u8BC1\u8FDE\u63A5\u5931\u8D25**","",`\u9519\u8BEF\u8BE6\u60C5: ${f instanceof Error?f.message:String(f)}`,"","\u7531\u4E8E\u7F51\u7EDC\u6216\u5B89\u5168\u62E6\u622A\uFF0C\u65E0\u6CD5\u83B7\u53D6\u52A8\u6001\u4E8C\u7EF4\u7801\u3002\u8BF7\u68C0\u67E5\u60A8\u7684\u7F51\u7EDC\u8FDE\u63A5\u5E76\u5C1D\u8BD5\u5728\u7EC8\u7AEF\u67E5\u770B\u9A8C\u8BC1\u94FE\u63A5\u3002",`\u8BBF\u95EE\u5730\u5740: [${v}](${v})`];throw await e.note(D.join(`
|
|
6
|
+
`),"CMToken \u8BA4\u8BC1\u5931\u8D25 (\u5907\u9009\u65B9\u6848)"),f}let u=n.verification_uri_complete??n.verification_uri,l=Q.platform()==="win32",h=!0;l&&(h=(await gt()).isModern);let p=await xe(u,h),k=[`\u9A8C\u8BC1\u5730\u5740: ${u}`,`\u7528\u6237\u4EE3\u7801: ${n.user_code}`,"\u8BF7\u626B\u63CF\u4E0A\u65B9\u4E8C\u7EF4\u7801\uFF0C\u6216\u590D\u5236\u94FE\u63A5\u5728\u6D4F\u89C8\u5668\u4E2D\u6388\u6743\u3002"];r(p),await e.note(k.join(`
|
|
7
|
+
`),"CMToken OAuth \u767B\u5F55"),e.progress.stop("\u7B49\u5F85\u626B\u7801\u6388\u6743\u4E2D...\uFF08\u53EF\u81EA\u7531\u5411\u4E0A\u6EDA\u52A8\u67E5\u770B\u4E8C\u7EF4\u7801\uFF09");let c=n.interval?n.interval*1e3:2e3,m=Date.now()+n.expires_in*1e3;for(;Date.now()<m;){let f=await ht({deviceCode:n.device_code,verifier:s,config:e.config});if(f.status==="success")return f.token;if(f.status==="error")throw new Error(f.message);f.message?.includes("slow down")&&(c=Math.min(c+1e3,4e3)),await new Promise(v=>setTimeout(v,c))}throw new Error("CMToken OAuth \u5728\u6388\u6743\u5B8C\u6210\u524D\u8D85\u65F6\u3002")}async function te(e){let t=W(e.config);j();let r=await fetch(t.tokenEndpoint,{method:"POST",signal:AbortSignal.timeout(G),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",client_id:t.clientId,refresh_token:e.refreshToken})}),o=await r.text();if(!r.ok)throw new Error(`CMToken OAuth refresh failed: ${o||r.status}`);let n=JSON.parse(o);if(n.error)throw new Error(`CMToken OAuth refresh failed: ${n.error_description||n.error}`);if(!n.access_token||!n.refresh_token||!n.expires_in)throw new Error("CMToken OAuth refresh returned incomplete token payload.");return{access:n.access_token,refresh:n.refresh_token,expires:Date.now()+n.expires_in*1e3,resourceUrl:n.resource_url,notification_message:n.notification_message}}async function re(e){let t=e.baseUrl,r=await fetch(`${t}/models`,{signal:AbortSignal.timeout(G),headers:{Authorization:`Bearer ${e.accessToken}`,Accept:"application/json"}});if(!r.ok){let n=await r.text();throw new Error(`Failed to fetch models: ${n||r.statusText}`)}return((await r.json()).data??[]).map(n=>({id:n.id,name:n.name??n.id,context_window:n.context_window}))}var Ue,G,Re,ut,ct,lt,ne=S(()=>{"use strict";Ue=Ve(Be(),1),G=900*1e3;Re={baseUrl:"https://agentlink.idaas.cmpassport.com/oauth2-service",clientId:"00a60e3140284b408d51a436ecce121d"},ut=Q.hostname(),ct=`profile model.completion identity:device:${ut}`,lt="urn:ietf:params:oauth:grant-type:device_code"});var Se={};Y(Se,{fetchCMTokenOAuthModels:()=>re,loginCMTokenOAuth:()=>ee,refreshCMTokenToken:()=>te});var $e=S(()=>{"use strict";ne()});var pt,Nt,F,Ke=S(()=>{"use strict";pt="minimax-m25",Nt=`cmtoken/${pt}`,F=[{id:"minimax-m25",name:"minimax-m25",reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:192e3,maxTokens:8192}]});var oe={};Y(oe,{CMTokenDiscoveryError:()=>O,CMTokenSubscriptionError:()=>b,fetchCMTokenModels:()=>mt});async function mt(e,t=15e3,r){if(!r)return F;try{let o=new AbortController,n=setTimeout(()=>o.abort(),t),s={Accept:"application/json"};r&&(s.Authorization=`Bearer ${r}`);let i=await fetch(e,{signal:o.signal,headers:s});if(clearTimeout(n),!i.ok){let l=await i.text().catch(()=>"N/A");throw i.status===403&&(l.includes("\u8BA2\u9605\u5957\u9910")||l.includes("\u8BA2\u9605\u5DF2\u8FC7\u671F")||l.includes("\u4F59\u989D\u4E0D\u8DB3"))?(console.warn(`[CMToken] Subscription issue: ${l}`),new b(l)):(i.status!==401&&i.status!==400&&console.error(`[CMToken] Fetch models failed (${i.status}): ${l.slice(0,200)}`),new O(l,i.status))}let a=await i.json(),u=Array.isArray(a.models)?a.models:a.data&&Array.isArray(a.data)?a.data:null;if(u)return u;if(a&&a.code&&a.code!==100200){let l=a.msg||a.message||"Unknown error";if(a.code===403&&l.includes("\u8BA2\u9605\u5957\u9910"))throw new b(l);a.code!==100401&&a.code!==401&&console.error(`[CMToken] Models API returned error code ${a.code}: ${l}`)}return F}catch(o){if(o instanceof b)throw o;if(!(o instanceof O&&(o.status===401||o.status===400))&&!(o.message&&(o.message.includes("100401")||o.message.includes("\u7528\u6237\u672A\u767B\u5F55"))))throw new O(o.message||String(o),o.status||0);return F}}var b,O,ie=S(()=>{"use strict";Ke();b=class extends Error{constructor(t){super(t),this.name="CMTokenSubscriptionError"}},O=class extends Error{status;constructor(t,r){super(t),this.name="CMTokenDiscoveryError",this.status=r}}});import{definePluginEntry as _t}from"openclaw/plugin-sdk/plugin-entry";import{formatErrorMessage as vt}from"openclaw/plugin-sdk/error-runtime";var d="cmtoken",se="CMToken",He="https://maas.gd.chinamobile.com:36007/ai/uifm/open/v1/models",I="https://maas.gd.chinamobile.com:36007/ai/uifm/open/v1",ue=[],Tt={choiceId:"cmtoken-api-key",choiceLabel:"CMToken API Key",groupId:d,groupLabel:se,groupHint:"CMToken AI \u6A21\u578B",modelAllowlist:{allowedKeys:[`${d}/minimax-m25`,`${d}/qwen36-35b`,`${d}/deepseekv4-flash`,`${d}/deepseek-r1`,`${d}/deepseek-v3`,`${d}/qwen-max`,`${d}/qwen-turbo`]}};async function At(e){let t=e.config,r=t.models?.providers?.[d]?.models;return r&&Array.isArray(r)&&r.length>0?{provider:{baseUrl:t.baseUrl||I,api:"openai-completions",models:r}}:{provider:{baseUrl:t.baseUrl||I,api:"openai-completions",models:ue.map(o=>({...o}))}}}function wt(e){return ue.map(t=>({...t,provider:d}))}async function Qe(e,t){if(t.length>0){let r="\u65E0",o=e.config?.agents?.defaults?.model;typeof o=="string"?r=o:o&&typeof o=="object"&&o.primary?r=o.primary:o&&typeof o=="object"&&o.model&&(r=`${o.provider||"unknown"}/${o.model}`);let n=[];r!=="\u65E0"&&n.push({value:"skip",label:`\u4FDD\u6301\u539F\u6709\u9ED8\u8BA4\u6A21\u578B (Keep current default: ${r})`}),n.push(...t.map(i=>({value:`${d}/${i.id}`,label:i.name||i.id})));let s=await e.prompter.select({message:"\u8BF7\u9009\u62E9\u9ED8\u8BA4\u4F7F\u7528\u54EA\u4E2A\u6A21\u578B\uFF1F(Select Default Model)",options:n,initialValue:r!=="\u65E0"?"skip":n[0]?.value});if(s==="skip")return;if(typeof s=="string")return s}}async function Mt(e){let t=e.prompter.progress("\u6B63\u5728\u542F\u52A8 CMToken OAuth\u2026");try{let{loginCMTokenOAuth:r}=await Promise.resolve().then(()=>($e(),Se)),o=e.config,n=await r({openUrl:e.openUrl,note:e.prompter.note,progress:t,runtime:e.runtime,config:{oauthBaseUrl:o.oauthBaseUrl,clientId:o.clientId}});t.stop("CMToken OAuth \u5B8C\u6210");let s=o.discoveryUrl||He,{fetchCMTokenModels:i,CMTokenSubscriptionError:a,CMTokenDiscoveryError:u}=await Promise.resolve().then(()=>(ie(),oe)),l=[];try{l=await i(s,15e3,n.access)}catch(c){throw c instanceof a?c:c instanceof u?new Error(`\u6A21\u578B\u5217\u8868\u83B7\u53D6\u5931\u8D25 (\u72B6\u6001\u7801: ${c.status})\u3002\u8FD9\u53EF\u80FD\u662F\u7531\u4E8E\u7F51\u7EDC\u6CE2\u52A8\u6216\u670D\u52A1\u7AEF\u6682\u65F6\u4E0D\u53EF\u7528\u5F15\u8D77\u7684\uFF0C\u914D\u7F6E\u6D41\u7A0B\u5DF2\u4E2D\u65AD\u3002
|
|
8
|
+
|
|
9
|
+
\u8BE6\u60C5: ${c.message}`):c}let p=l.map(c=>({id:c.id,name:c.name||c.id,reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:c.contextWindow||192e3,maxTokens:c.maxTokens||8192}));p&&p.length>0&&(ae=p.map(c=>c.id.includes("/")?c.id:`${d}/${c.id}`));let k=await Qe(e,p);return{profiles:[{profileId:`${d}:default`,credential:{provider:d,type:"oauth",access:n.access,refresh:n.refresh,expires:n.expires}}],configPatch:{models:{providers:{[d]:{baseUrl:n.resourceUrl||o.baseUrl||I,api:"openai-completions",models:p}}},...k?{agents:{defaults:{model:{primary:k}}}}:{}}}}catch(r){let o=vt(r);throw t.stop(`CMToken OAuth \u5931\u8D25: ${o}`),r}}var ae;function Ge(e){let t=ae;e.registerProvider({id:d,label:se,docsPath:"/plugins/cmtoken",auth:[{id:"api-key",label:"CMToken API Key",hint:"\u4F7F\u7528 API Key \u8FDB\u884C\u8BA4\u8BC1",kind:"api_key",wizard:Tt,async run(r){let{ensureApiKeyFromOptionEnvOrPrompt:o,buildApiKeyCredential:n,normalizeApiKeyInput:s,validateApiKeyInput:i}=await import("openclaw/plugin-sdk/provider-auth"),a,u;await o({token:r.opts?.token,tokenProvider:r.opts?.tokenProvider,secretInputMode:r.allowSecretRefPrompt===!1?r.secretInputMode??"plaintext":r.secretInputMode,config:r.config,env:r.env,expectedProviders:[d],provider:d,promptMessage:"\u8BF7\u8F93\u5165 CMToken API Key",normalize:s,validate:i,prompter:r.prompter,setCredential:async(f,v)=>{a=f,u=v}});let l=`${d}:default`,h=n(d,a,{},{secretInputMode:u,config:r.config}),p=r.config,k=p.discoveryUrl||He,c=[];try{let{fetchCMTokenModels:f}=await Promise.resolve().then(()=>(ie(),oe)),v=await f(k,15e3,a);v&&Array.isArray(v)&&v.length>0&&(c=v.map(A=>({id:A.id,name:A.name||A.id,reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:A.contextWindow||192e3,maxTokens:A.maxTokens||8192})),c&&c.length>0&&(ae=c.map(A=>`${d}/${A.id}`)))}catch(f){throw f instanceof Error?f:new Error("\u6A21\u578B\u5217\u8868\u83B7\u53D6\u5931\u8D25\u3002\u914D\u7F6E\u6D41\u7A0B\u5DF2\u4E2D\u65AD\u3002")}let m=await Qe(r,c);return{configPatch:{models:{providers:{[d]:{baseUrl:p.baseUrl||I,api:"openai-completions",models:c}}},...m?{agents:{defaults:{model:{primary:m}}}}:{}},profiles:[{profileId:l,credential:h}]}}},{id:"oauth",label:"CMToken OAuth",hint:"\u901A\u8FC7\u79FB\u52A8\u8BA4\u8BC1\u6D4F\u89C8\u5668\u6D41\u767B\u5F55",kind:"device_code",run:Mt,applyConfig:r=>({...r,models:{...r.models,providers:{...r.models?.providers,[d]:{baseUrl:I,api:"openai-completions",models:ue}}}}),wizard:{choiceId:"cmtoken-oauth",choiceLabel:"CMToken OAuth",groupId:d,groupLabel:se,groupHint:"CMToken AI \u6A21\u578B"}}],wizard:{setup:{modelAllowlist:{allowedKeys:t,loadCatalog:!1}}},catalog:{order:"simple",run:async r=>At(r)},augmentModelCatalog:r=>wt(r),async refreshOAuth(r){let{refreshCMTokenToken:o}=await Promise.resolve().then(()=>(ne(),Ne));try{let n=await o({refreshToken:r.refresh});return{...r,access:n.access,refresh:n.refresh,expires:n.expires}}catch(n){throw console.error("[CMToken] refreshOAuth failed:",n),n}},classifyFailoverReason(r){let o=r.error?.message||String(r.error);if(o.includes("\u8BA2\u9605\u5957\u9910")||o.includes("\u8BA2\u9605\u5DF2\u8FC7\u671F")||o.includes("\u4F59\u989D\u4E0D\u8DB3"))return"billing"}})}var Wt=_t({id:"cmtoken",name:"CMToken",description:"CMToken provider plugin with OAuth support (browser and QR code)",register(e){Ge(e)}});export{Wt as default};
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cmtoken",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "OpenClaw CMToken provider plugin with OAuth support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"openclaw": {
|
|
7
7
|
"extensions": [
|
|
8
|
-
"./index.js"
|
|
8
|
+
"./dist/index.js"
|
|
9
9
|
],
|
|
10
|
+
"compat": {
|
|
11
|
+
"pluginApi": ">=2026.0.0"
|
|
12
|
+
},
|
|
13
|
+
"build": {
|
|
14
|
+
"openclawVersion": "^2026.5.27"
|
|
15
|
+
},
|
|
10
16
|
"install": {
|
|
11
17
|
"minHostVersion": ">=2024.1.0"
|
|
12
18
|
}
|
|
13
19
|
},
|
|
14
20
|
"packageManager": "pnpm@10.32.1+sha512.a706938f0e89ac1456b6563eab4edf1d1faf3368d1191fc5c59790e96dc918e4456ab2e67d613de1043d2e8c81f87303e6b40d4ffeca9df15ef1ad567348f2be",
|
|
15
21
|
"openclaw.hooks": [
|
|
16
|
-
"./index.js"
|
|
22
|
+
"./dist/index.js"
|
|
17
23
|
]
|
|
18
24
|
}
|
package/index.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
var Ye=Object.create;var Z=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var Je=Object.getPrototypeOf,Ve=Object.prototype.hasOwnProperty;var qe=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,o)=>(typeof require<"u"?require:t)[o]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Q=(e,t)=>()=>(e&&(t=e(e=0)),t);var k=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),j=(e,t)=>{for(var o in t)Z(e,o,{get:t[o],enumerable:!0})},Ze=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Xe(t))!Ve.call(e,r)&&r!==o&&Z(e,r,{get:()=>t[r],enumerable:!(n=ze(t,r))||n.enumerable});return e};var je=(e,t,o)=>(o=e!=null?Ye(Je(e)):{},Ze(t||!e||!e.__esModule?Z(o,"default",{value:e,enumerable:!0}):o,e));var ee,yt,F,te=Q(()=>{"use strict";ee="minmax",yt=`cmtoken/${ee}`,F=[{id:"minmax",name:"minmax",reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:192e3,maxTokens:8192}]});var R={};j(R,{CMTokenDiscoveryError:()=>S,CMTokenSubscriptionError:()=>B,fetchCMTokenModels:()=>et});async function et(e,t=15e3,o){if(!o)return F;try{let n=new AbortController,r=setTimeout(()=>n.abort(),t),s={Accept:"application/json"};o&&(s.Authorization=`Bearer ${o}`);let i=await fetch(e,{signal:n.signal,headers:s});if(clearTimeout(r),!i.ok){let c=await i.text().catch(()=>"N/A");throw i.status===403&&(c.includes("\u8BA2\u9605\u5957\u9910")||c.includes("\u8BA2\u9605\u5DF2\u8FC7\u671F")||c.includes("\u4F59\u989D\u4E0D\u8DB3"))?(console.warn(`[CMToken] Subscription issue: ${c}`),new B(c)):(i.status!==401&&i.status!==400&&console.error(`[CMToken] Fetch models failed (${i.status}): ${c.slice(0,200)}`),new S(c,i.status))}let a=await i.json(),u=Array.isArray(a.models)?a.models:a.data&&Array.isArray(a.data)?a.data:null;if(u)return u;if(a&&a.code&&a.code!==100200){let c=a.msg||a.message||"Unknown error";if(a.code===403&&c.includes("\u8BA2\u9605\u5957\u9910"))throw new B(c);a.code!==100401&&a.code!==401&&console.error(`[CMToken] Models API returned error code ${a.code}: ${c}`)}return F}catch(n){if(n instanceof B)throw n;return!(n instanceof S&&(n.status===401||n.status===400))&&!(n.message&&(n.message.includes("100401")||n.message.includes("\u7528\u6237\u672A\u767B\u5F55")))&&console.error(`[CMToken] Fetch models error: ${String(n.message||n).slice(0,200)}`),F}}var B,S,U=Q(()=>{"use strict";te();B=class extends Error{constructor(t){super(t),this.name="CMTokenSubscriptionError"}},S=class extends Error{status;constructor(t,o){super(t),this.name="CMTokenDiscoveryError",this.status=o}}});var re=k((bt,ge)=>{ge.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}});var ve=k((Ot,me)=>{var tt=re();function pe(e){this.mode=tt.MODE_8BIT_BYTE,this.data=e}pe.prototype={getLength:function(){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}};me.exports=pe});var ne=k((xt,Te)=>{var w={glog:function(e){if(e<1)throw new Error("glog("+e+")");return w.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return w.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(v=0;v<8;v++)w.EXP_TABLE[v]=1<<v;var v;for(v=8;v<256;v++)w.EXP_TABLE[v]=w.EXP_TABLE[v-4]^w.EXP_TABLE[v-5]^w.EXP_TABLE[v-6]^w.EXP_TABLE[v-8];var v;for(v=0;v<255;v++)w.LOG_TABLE[w.EXP_TABLE[v]]=v;var v;Te.exports=w});var oe=k((Dt,Ae)=>{var I=ne();function G(e,t){if(e.length===void 0)throw new Error(e.length+"/"+t);for(var o=0;o<e.length&&e[o]===0;)o++;this.num=new Array(e.length-o+t);for(var n=0;n<e.length-o;n++)this.num[n]=e[n+o]}G.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),o=0;o<this.getLength();o++)for(var n=0;n<e.getLength();n++)t[o+n]^=I.gexp(I.glog(this.get(o))+I.glog(e.get(n)));return new G(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=I.glog(this.get(0))-I.glog(e.get(0)),o=new Array(this.getLength()),n=0;n<this.getLength();n++)o[n]=this.get(n);for(var r=0;r<e.getLength();r++)o[r]^=I.gexp(I.glog(e.get(r))+t);return new G(o,0).mod(e)}};Ae.exports=G});var ke=k((It,Me)=>{Me.exports={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7}});var Ee=k((Bt,Ce)=>{var M=re(),we=oe(),rt=ne(),O=ke(),T={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;T.getBCHDigit(t)-T.getBCHDigit(T.G15)>=0;)t^=T.G15<<T.getBCHDigit(t)-T.getBCHDigit(T.G15);return(e<<10|t)^T.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;T.getBCHDigit(t)-T.getBCHDigit(T.G18)>=0;)t^=T.G18<<T.getBCHDigit(t)-T.getBCHDigit(T.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;e!==0;)t++,e>>>=1;return t},getPatternPosition:function(e){return T.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,o){switch(e){case O.PATTERN000:return(t+o)%2===0;case O.PATTERN001:return t%2===0;case O.PATTERN010:return o%3===0;case O.PATTERN011:return(t+o)%3===0;case O.PATTERN100:return(Math.floor(t/2)+Math.floor(o/3))%2===0;case O.PATTERN101:return t*o%2+t*o%3===0;case O.PATTERN110:return(t*o%2+t*o%3)%2===0;case O.PATTERN111:return(t*o%3+(t+o)%2)%2===0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new we([1],0),o=0;o<e;o++)t=t.multiply(new we([1,rt.gexp(o)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case M.MODE_NUMBER:return 10;case M.MODE_ALPHA_NUM:return 9;case M.MODE_8BIT_BYTE:return 8;case M.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case M.MODE_NUMBER:return 12;case M.MODE_ALPHA_NUM:return 11;case M.MODE_8BIT_BYTE:return 16;case M.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else if(t<41)switch(e){case M.MODE_NUMBER:return 14;case M.MODE_ALPHA_NUM:return 13;case M.MODE_8BIT_BYTE:return 16;case M.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}else throw new Error("type:"+t)},getLostPoint:function(e){var t=e.getModuleCount(),o=0,n=0,r=0;for(n=0;n<t;n++)for(r=0;r<t;r++){for(var s=0,i=e.isDark(n,r),a=-1;a<=1;a++)if(!(n+a<0||t<=n+a))for(var u=-1;u<=1;u++)r+u<0||t<=r+u||a===0&&u===0||i===e.isDark(n+a,r+u)&&s++;s>5&&(o+=3+s-5)}for(n=0;n<t-1;n++)for(r=0;r<t-1;r++){var c=0;e.isDark(n,r)&&c++,e.isDark(n+1,r)&&c++,e.isDark(n,r+1)&&c++,e.isDark(n+1,r+1)&&c++,(c===0||c===4)&&(o+=3)}for(n=0;n<t;n++)for(r=0;r<t-6;r++)e.isDark(n,r)&&!e.isDark(n,r+1)&&e.isDark(n,r+2)&&e.isDark(n,r+3)&&e.isDark(n,r+4)&&!e.isDark(n,r+5)&&e.isDark(n,r+6)&&(o+=40);for(r=0;r<t;r++)for(n=0;n<t-6;n++)e.isDark(n,r)&&!e.isDark(n+1,r)&&e.isDark(n+2,r)&&e.isDark(n+3,r)&&e.isDark(n+4,r)&&!e.isDark(n+5,r)&&e.isDark(n+6,r)&&(o+=40);var l=0;for(r=0;r<t;r++)for(n=0;n<t;n++)e.isDark(n,r)&&l++;var m=Math.abs(100*l/t/t-50)/5;return o+=m*10,o}};Ce.exports=T});var ie=k((Rt,_e)=>{_e.exports={L:1,M:0,Q:3,H:2}});var Le=k((Ut,ye)=>{var Y=ie();function _(e,t){this.totalCount=e,this.dataCount=t}_.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];_.getRSBlocks=function(e,t){var o=_.getRsBlockTable(e,t);if(o===void 0)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var n=o.length/3,r=[],s=0;s<n;s++)for(var i=o[s*3+0],a=o[s*3+1],u=o[s*3+2],c=0;c<i;c++)r.push(new _(a,u));return r};_.getRsBlockTable=function(e,t){switch(t){case Y.L:return _.RS_BLOCK_TABLE[(e-1)*4+0];case Y.M:return _.RS_BLOCK_TABLE[(e-1)*4+1];case Y.Q:return _.RS_BLOCK_TABLE[(e-1)*4+2];case Y.H:return _.RS_BLOCK_TABLE[(e-1)*4+3];default:return}};ye.exports=_});var Oe=k((St,be)=>{function Pe(){this.buffer=[],this.length=0}Pe.prototype={get:function(e){var t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(var o=0;o<t;o++)this.putBit((e>>>t-o-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};be.exports=Pe});var Be=k((Nt,Ie)=>{var nt=ve(),x=Ee(),ot=oe(),xe=Le(),De=Oe();function y(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}y.prototype={addData:function(e){var t=new nt(e);this.dataList.push(t),this.dataCache=null},isDark:function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var e=1;for(e=1;e<40;e++){for(var t=xe.getRSBlocks(e,this.errorCorrectLevel),o=new De,n=0,r=0;r<t.length;r++)n+=t[r].dataCount;for(var s=0;s<this.dataList.length;s++){var i=this.dataList[s];o.put(i.mode,4),o.put(i.getLength(),x.getLengthInBits(i.mode,e)),i.write(o)}if(o.getLengthInBits()<=n*8)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){this.moduleCount=this.typeNumber*4+17,this.modules=new Array(this.moduleCount);for(var o=0;o<this.moduleCount;o++){this.modules[o]=new Array(this.moduleCount);for(var n=0;n<this.moduleCount;n++)this.modules[o][n]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e),this.dataCache===null&&(this.dataCache=y.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var o=-1;o<=7;o++)if(!(e+o<=-1||this.moduleCount<=e+o))for(var n=-1;n<=7;n++)t+n<=-1||this.moduleCount<=t+n||(0<=o&&o<=6&&(n===0||n===6)||0<=n&&n<=6&&(o===0||o===6)||2<=o&&o<=4&&2<=n&&n<=4?this.modules[e+o][t+n]=!0:this.modules[e+o][t+n]=!1)},getBestMaskPattern:function(){for(var e=0,t=0,o=0;o<8;o++){this.makeImpl(!0,o);var n=x.getLostPoint(this);(o===0||e>n)&&(e=n,t=o)}return t},createMovieClip:function(e,t,o){var n=e.createEmptyMovieClip(t,o),r=1;this.make();for(var s=0;s<this.modules.length;s++)for(var i=s*r,a=0;a<this.modules[s].length;a++){var u=a*r,c=this.modules[s][a];c&&(n.beginFill(0,100),n.moveTo(u,i),n.lineTo(u+r,i),n.lineTo(u+r,i+r),n.lineTo(u,i+r),n.endFill())}return n},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)this.modules[e][6]===null&&(this.modules[e][6]=e%2===0);for(var t=8;t<this.moduleCount-8;t++)this.modules[6][t]===null&&(this.modules[6][t]=t%2===0)},setupPositionAdjustPattern:function(){for(var e=x.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var o=0;o<e.length;o++){var n=e[t],r=e[o];if(this.modules[n][r]===null)for(var s=-2;s<=2;s++)for(var i=-2;i<=2;i++)Math.abs(s)===2||Math.abs(i)===2||s===0&&i===0?this.modules[n+s][r+i]=!0:this.modules[n+s][r+i]=!1}},setupTypeNumber:function(e){for(var t=x.getBCHTypeNumber(this.typeNumber),o,n=0;n<18;n++)o=!e&&(t>>n&1)===1,this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=o;for(var r=0;r<18;r++)o=!e&&(t>>r&1)===1,this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o},setupTypeInfo:function(e,t){for(var o=this.errorCorrectLevel<<3|t,n=x.getBCHTypeInfo(o),r,s=0;s<15;s++)r=!e&&(n>>s&1)===1,s<6?this.modules[s][8]=r:s<8?this.modules[s+1][8]=r:this.modules[this.moduleCount-15+s][8]=r;for(var i=0;i<15;i++)r=!e&&(n>>i&1)===1,i<8?this.modules[8][this.moduleCount-i-1]=r:i<9?this.modules[8][15-i-1+1]=r:this.modules[8][15-i-1]=r;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var o=-1,n=this.moduleCount-1,r=7,s=0,i=this.moduleCount-1;i>0;i-=2)for(i===6&&i--;;){for(var a=0;a<2;a++)if(this.modules[n][i-a]===null){var u=!1;s<e.length&&(u=(e[s]>>>r&1)===1);var c=x.getMask(t,n,i-a);c&&(u=!u),this.modules[n][i-a]=u,r--,r===-1&&(s++,r=7)}if(n+=o,n<0||this.moduleCount<=n){n-=o,o=-o;break}}}};y.PAD0=236;y.PAD1=17;y.createData=function(e,t,o){for(var n=xe.getRSBlocks(e,t),r=new De,s=0;s<o.length;s++){var i=o[s];r.put(i.mode,4),r.put(i.getLength(),x.getLengthInBits(i.mode,e)),i.write(r)}for(var a=0,u=0;u<n.length;u++)a+=n[u].dataCount;if(r.getLengthInBits()>a*8)throw new Error("code length overflow. ("+r.getLengthInBits()+">"+a*8+")");for(r.getLengthInBits()+4<=a*8&&r.put(0,4);r.getLengthInBits()%8!==0;)r.putBit(!1);for(;!(r.getLengthInBits()>=a*8||(r.put(y.PAD0,8),r.getLengthInBits()>=a*8));)r.put(y.PAD1,8);return y.createBytes(r,n)};y.createBytes=function(e,t){for(var o=0,n=0,r=0,s=new Array(t.length),i=new Array(t.length),a=0;a<t.length;a++){var u=t[a].dataCount,c=t[a].totalCount-u;n=Math.max(n,u),r=Math.max(r,c),s[a]=new Array(u);for(var l=0;l<s[a].length;l++)s[a][l]=255&e.buffer[l+o];o+=u;var m=x.getErrorCorrectPolynomial(c),f=new ot(s[a],m.getLength()-1),p=f.mod(m);i[a]=new Array(m.getLength()-1);for(var g=0;g<i[a].length;g++){var d=g+p.getLength()-i[a].length;i[a][g]=d>=0?p.get(d):0}}for(var h=0,C=0;C<t.length;C++)h+=t[C].totalCount;for(var E=new Array(h),N=0,K=0;K<n;K++)for(var $=0;$<t.length;$++)K<s[$].length&&(E[N++]=s[$][K]);for(var H=0;H<r;H++)for(var W=0;W<t.length;W++)H<i[W].length&&(E[N++]=i[W][H]);return E};Ie.exports=y});var Se=k((Kt,Ue)=>{var it=Be(),Re=ie(),st="\x1B[40m \x1B[0m",z="\x1B[47m \x1B[0m",at=function(e){return e?st:z},se=function(e){return{times:function(t){return new Array(t).join(e)}}},ct=function(e,t){for(var o=new Array(e),n=0;n<e;n++)o[n]=t;return o};Ue.exports={error:Re.L,generate:function(e,t,o){typeof t=="function"&&(o=t,t={});var n=new it(-1,this.error);n.addData(e),n.make();var r="";if(t&&t.small){var s=!0,i=!1,a=n.getModuleCount(),u=n.modules.slice(),c=a%2===1;c&&u.push(ct(a,i));var l={WHITE_ALL:"\u2588",WHITE_BLACK:"\u2580",BLACK_WHITE:"\u2584",BLACK_ALL:" "},m=se(l.BLACK_WHITE).times(a+3),f=se(l.WHITE_BLACK).times(a+3);r+=m+`
|
|
2
|
-
`;for(var p=0;p<a;p+=2){r+=l.WHITE_ALL;for(var g=0;g<a;g++)u[p][g]===i&&u[p+1][g]===i?r+=l.WHITE_ALL:u[p][g]===i&&u[p+1][g]===s?r+=l.WHITE_BLACK:u[p][g]===s&&u[p+1][g]===i?r+=l.BLACK_WHITE:r+=l.BLACK_ALL;r+=l.WHITE_ALL+`
|
|
3
|
-
`}c||(r+=f)}else{var d=se(z).times(n.getModuleCount()+3);r+=d+`
|
|
4
|
-
`,n.modules.forEach(function(h){r+=z,r+=h.map(at).join(""),r+=z+`
|
|
5
|
-
`}),r+=d}o?o(r):console.log(r)},setErrorLevel:function(e){this.error=Re[e]||this.error}}});var He={};j(He,{fetchCMTokenModels:()=>de,loginCMTokenOAuth:()=>ue,refreshCMTokenToken:()=>le});import{generatePkceVerifierChallenge as ut,toFormUrlEncoded as ae}from"openclaw/plugin-sdk/provider-auth";import{randomBytes as lt,randomUUID as dt}from"node:crypto";import*as X from"node:os";function ce(){try{let{ensureGlobalUndiciEnvProxyDispatcher:e}=qe("openclaw/plugin-sdk/runtime-env");e()}catch{}}function V(e){let t=e?.oauthBaseUrl||Ne.baseUrl,o=e?.clientId||Ne.clientId;return{codeEndpoint:`${t}/oauth/device/code`,tokenEndpoint:`${t}/oauth/device/token`,authorizeEndpoint:`${t}/oauth/authorize`,clientId:o,baseUrl:t}}function pt(){let{verifier:e,challenge:t}=ut(),o=lt(16).toString("base64url");return{verifier:e,challenge:t,state:o}}async function mt(e){let t=V(e.config);ce();try{let o=await fetch(t.codeEndpoint,{method:"POST",signal:AbortSignal.timeout(J),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","x-request-id":dt()},body:ae({response_type:"device_code",client_id:t.clientId,scope:ht,code_challenge:e.challenge,code_challenge_method:"S256",state:e.state})}),n=await o.text();if(!o.ok)throw new Error(`CMToken OAuth device code request failed: ${n||o.status}`);let r=JSON.parse(n);if(!r.device_code||!r.user_code||!r.verification_uri)throw new Error(r.error??"CMToken OAuth returned an incomplete payload (missing device_code, user_code or verification_uri).");return r}catch(o){throw new Error(`CMToken OAuth \u8BBE\u5907\u8BF7\u6C42\u8FDE\u63A5\u5931\u8D25 (${t.codeEndpoint}): ${o instanceof Error?o.message:String(o)}`)}}async function vt(e){let t=V(e.config);ce();let o;try{o=await fetch(t.tokenEndpoint,{method:"POST",signal:AbortSignal.timeout(J),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:ae({grant_type:gt,client_id:t.clientId,device_code:e.deviceCode,code_verifier:e.verifier})})}catch(s){return{status:"pending",message:`\u7F51\u7EDC\u8BF7\u6C42\u4E0D\u7A33\u5B9A\uFF0C\u6B63\u5728\u91CD\u8BD5... (${s instanceof Error?s.message:String(s)})`}}let n=await o.text(),r;try{r=JSON.parse(n)}catch{r=void 0}return o.ok?r?!r.access_token||!r.refresh_token||!r.expires_in?{status:"error",message:"CMToken OAuth \u8FD4\u56DE\u7684\u4EE4\u724C\u8D1F\u8F7D\u4E0D\u5B8C\u6574\u3002"}:{status:"success",token:{access:r.access_token,refresh:r.refresh_token,expires:Date.now()+r.expires_in*1e3,resourceUrl:r.resource_url,notification_message:r.notification_message}}:{status:"error",message:"CMToken OAuth \u65E0\u6CD5\u89E3\u6790\u54CD\u5E94\u3002"}:r?.error==="authorization_pending"?{status:"pending",message:"\u6B63\u5728\u7B49\u5F85\u7528\u6237\u6388\u6743..."}:r?.error==="slow_down"?{status:"pending",message:"\u901F\u7387\u53D7\u9650\uFF0C\u6B63\u5728\u51CF\u6162\u8BF7\u6C42..."}:{status:"error",message:r?.error_description??r?.error??n??"OAuth \u4EE4\u724C\u8BF7\u6C42\u5931\u8D25"}}function Ke(e,t=!0){return new Promise(o=>{$e.default.generate(e,{small:t},n=>{o(n)})})}async function Tt(){return process.stdout.isTTY?new Promise(e=>{let t=setTimeout(()=>{o(),e({isModern:!1,debugInfo:"timeout_no_response"})},300);function o(){clearTimeout(t),process.stdin.removeListener("data",n),process.stdin.isTTY&&process.stdin.setRawMode(!1),process.stdin.pause()}function n(r){o();let s=r.toString(),i=!1;process.platform==="win32"?i=s.includes("\x1B]11;"):i=s.includes("\x1B[?")||s.includes("\x1B[>")||s.includes("\x1B]11;"),e({isModern:i,debugInfo:JSON.stringify(s)})}try{process.stdin.resume(),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.once("data",n),process.stdout.write("\x1B[c\x1B]11;?\x1B\\")}catch(r){o(),e({isModern:!1,debugInfo:`error_${String(r)}`})}}):{isModern:!1,debugInfo:"not_tty"}}async function ue(e){let t=V(e.config),o=e.runtime?.log??console.log,n=e.runtime?.error??console.error;e.progress.update("\u6B63\u5728\u521D\u59CB\u5316 CMToken OAuth...");let r,{verifier:s,challenge:i,state:a}=pt();try{e.progress.update("\u6B63\u5728\u4ECE\u670D\u52A1\u5668\u83B7\u53D6\u8EAB\u4EFD\u9A8C\u8BC1\u94FE\u63A5..."),r=await mt({challenge:i,state:a,config:e.config})}catch(d){let h=t.baseUrl,C=await Ke(h),N=["\u{1F6A8} **\u8EAB\u4EFD\u9A8C\u8BC1\u8FDE\u63A5\u5931\u8D25**","",`\u9519\u8BEF\u8BE6\u60C5: ${d instanceof Error?d.message:String(d)}`,"","\u7531\u4E8E\u7F51\u7EDC\u6216\u5B89\u5168\u62E6\u622A\uFF0C\u65E0\u6CD5\u83B7\u53D6\u52A8\u6001\u4E8C\u7EF4\u7801\u3002\u8BF7\u68C0\u67E5\u60A8\u7684\u7F51\u7EDC\u8FDE\u63A5\u5E76\u5C1D\u8BD5\u5728\u7EC8\u7AEF\u67E5\u770B\u9A8C\u8BC1\u94FE\u63A5\u3002",`\u8BBF\u95EE\u5730\u5740: [${h}](${h})`];throw await e.note(N.join(`
|
|
6
|
-
`),"CMToken \u8BA4\u8BC1\u5931\u8D25 (\u5907\u9009\u65B9\u6848)"),d}let u=r.verification_uri_complete??r.verification_uri,c=X.platform()==="win32",l=!0;c&&(l=(await Tt()).isModern);let m=await Ke(u,l),f=[`\u9A8C\u8BC1\u5730\u5740: ${u}`,`\u7528\u6237\u4EE3\u7801: ${r.user_code}`,"\u8BF7\u626B\u63CF\u4E0A\u65B9\u4E8C\u7EF4\u7801\uFF0C\u6216\u590D\u5236\u94FE\u63A5\u5728\u6D4F\u89C8\u5668\u4E2D\u6388\u6743\u3002"];o(m),await e.note(f.join(`
|
|
7
|
-
`),"CMToken OAuth \u767B\u5F55"),e.progress.stop("\u7B49\u5F85\u626B\u7801\u6388\u6743\u4E2D...\uFF08\u53EF\u81EA\u7531\u5411\u4E0A\u6EDA\u52A8\u67E5\u770B\u4E8C\u7EF4\u7801\uFF09");let p=r.interval?r.interval*1e3:2e3,g=Date.now()+r.expires_in*1e3;for(;Date.now()<g;){let d=await vt({deviceCode:r.device_code,verifier:s,config:e.config});if(d.status==="success")return d.token;if(d.status==="error")throw new Error(d.message);d.message?.includes("slow down")&&(p=Math.min(p*1.5,1e4)),await new Promise(h=>setTimeout(h,p))}throw new Error("CMToken OAuth \u5728\u6388\u6743\u5B8C\u6210\u524D\u8D85\u65F6\u3002")}async function le(e){let t=V(e.config);ce();let o=await fetch(t.tokenEndpoint,{method:"POST",signal:AbortSignal.timeout(J),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:ae({grant_type:"refresh_token",client_id:t.clientId,refresh_token:e.refreshToken})}),n=await o.text();if(!o.ok)throw new Error(`CMToken OAuth refresh failed: ${n||o.status}`);let r=JSON.parse(n);if(r.error)throw new Error(`CMToken OAuth refresh failed: ${r.error_description||r.error}`);if(!r.access_token||!r.refresh_token||!r.expires_in)throw new Error("CMToken OAuth refresh returned incomplete token payload.");return{access:r.access_token,refresh:r.refresh_token,expires:Date.now()+r.expires_in*1e3,resourceUrl:r.resource_url,notification_message:r.notification_message}}async function de(e){let t=e.baseUrl,o=await fetch(`${t}/models`,{signal:AbortSignal.timeout(J),headers:{Authorization:`Bearer ${e.accessToken}`,Accept:"application/json"}});if(!o.ok){let r=await o.text();throw new Error(`Failed to fetch models: ${r||o.statusText}`)}return((await o.json()).data??[]).map(r=>({id:r.id,name:r.name??r.id,context_window:r.context_window}))}var $e,J,Ne,ft,ht,gt,fe=Q(()=>{"use strict";$e=je(Se(),1),J=900*1e3;Ne={baseUrl:"https://agentlink.idaas.cmpassport.com/oauth2-service",clientId:"00a60e3140284b408d51a436ecce121d"},ft=X.hostname(),ht=`profile model.completion identity:device:${ft}`,gt="urn:ietf:params:oauth:grant-type:device_code"});var We={};j(We,{fetchCMTokenModels:()=>de,loginCMTokenOAuth:()=>ue,refreshCMTokenToken:()=>le});var Qe=Q(()=>{"use strict";fe()});import{definePluginEntry as Et}from"openclaw/plugin-sdk/plugin-entry";te();import{formatErrorMessage as At}from"openclaw/plugin-sdk/error-runtime";import{buildOauthProviderAuthResult as Mt}from"openclaw/plugin-sdk/provider-auth";var A="cmtoken",he="CMToken",q="https://maas.gd.chinamobile.com:36007/ai/uifm/open/v1/models",b="https://maas.gd.chinamobile.com:36007/ai/uifm/open/v1",D=[{id:"minmax",name:"minmax",reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:192e3,maxTokens:8192}],L=null,P=(e,t)=>globalThis.performance?performance.now():Date.now();async function kt(e){let t=e.config,o=P("Entering resolveApiCatalog");if(L&&Date.now()-L.timestamp<3e5)return P("Exiting resolveApiCatalog (Cache hit)",o),L.data;if(t.models&&Array.isArray(t.models)&&t.models.length>0){let c={provider:{baseUrl:t.baseUrl||b,api:"openai-completions",models:t.models}};return L={data:c,timestamp:Date.now()},P("Exiting resolveApiCatalog (Fast path via config.models)",o),setTimeout(async()=>{try{let{fetchCMTokenModels:l}=await Promise.resolve().then(()=>(U(),R)),m=e.resolveProviderAuth(A),f=m.apiKey?.trim()||m.discoveryApiKey?.trim()||e.config?.apiKey?.trim(),p=m.access?.trim()||f;if(p&&p.length>15){let g=await l(t.discoveryUrl||q,15e3,p);if(g&&g.length>0){let d=g.map(h=>({id:h.id,name:h.name||h.id,reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:h.contextWindow||192e3,maxTokens:h.maxTokens||8192}));L={data:{provider:{baseUrl:t.baseUrl||b,api:"openai-completions",models:d}},timestamp:Date.now()}}}}catch{}},1e3),c}let n=t.discoveryUrl||q,r=[];try{let{fetchCMTokenModels:c,CMTokenSubscriptionError:l,CMTokenDiscoveryError:m}=await Promise.resolve().then(()=>(U(),R)),f=e.resolveProviderAuth(A),p=f.apiKey?.trim()||f.discoveryApiKey?.trim()||e.config?.apiKey?.trim(),d=f.access?.trim()||p;if(!d||d.length<16||d==="undefined"||d==="null"||d==="initial_activation_token")return P("Skipping CMToken discovery: No valid token available yet."),{provider:{baseUrl:t.baseUrl||b,api:"openai-completions",models:D}};let h=f.expires;if(h&&Date.now()>h)return P("Skipping CMToken discovery: OAuth token expired, awaiting refresh."),{provider:{baseUrl:t.baseUrl||b,api:"openai-completions",models:D}};let C=await c(n,15e3,d);C&&C.length>0&&(r=C.map(E=>({id:E.id,name:E.name||E.id,reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:E.contextWindow||192e3,maxTokens:E.maxTokens||8192})))}catch(c){let{CMTokenSubscriptionError:l,CMTokenDiscoveryError:m}=await Promise.resolve().then(()=>(U(),R));c instanceof l?(P(`Subscription missing for CMToken: ${c.message}`),r=[{id:"subscription-required",name:"\u26A0\uFE0F \u8BA2\u9605\u5230\u671F (\u8BF7\u68C0\u67E5\u5957\u9910)",reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:0,maxTokens:0},...D]):c instanceof m?(P(`Discovery API error (${c.status}): ${c.message}`),r=[{id:"api-error",name:`\u26A0\uFE0F \u670D\u52A1\u5F02\u5E38 (${c.status})`,reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:0,maxTokens:0},...D]):P(`Discovery error: ${c}`)}let s=r.length===0;s&&(r=D.map(c=>({...c})));let a={provider:{baseUrl:t.baseUrl||b,api:"openai-completions",models:r}},u=s?29e4:0;return L={data:a,timestamp:Date.now()-u},P(s?"Exiting resolveApiCatalog (Fallback used)":"Exiting resolveApiCatalog (Success)",o),a}function wt(e){return L?.data?.provider?.models?L.data.provider.models.map(t=>({...t,provider:A})):D.map(t=>({...t,provider:A}))}async function Fe(e,t){return t.length>0?t[0].id:ee}async function Ct(e){let t=e.prompter.progress("\u6B63\u5728\u542F\u52A8 CMToken OAuth\u2026");try{let{loginCMTokenOAuth:o}=await Promise.resolve().then(()=>(Qe(),We)),n=e.config,r=await o({openUrl:e.openUrl,note:e.prompter.note,progress:t,runtime:e.runtime,config:{oauthBaseUrl:n.oauthBaseUrl,clientId:n.clientId}});t.stop("CMToken OAuth \u5B8C\u6210");let s=n.discoveryUrl||q,{fetchCMTokenModels:i,CMTokenSubscriptionError:a,CMTokenDiscoveryError:u}=await Promise.resolve().then(()=>(U(),R)),c=[];try{c=await i(s,15e3,r.access)}catch(f){if(f instanceof a)e.prompter.note({title:"CMToken \u8BA2\u9605\u63D0\u9192",body:`\u60A8\u7684\u8D26\u53F7\u8BA4\u8BC1\u6210\u529F\uFF0C\u4F46\u5F53\u524D\u672A\u5305\u542B\u53EF\u7528\u8BA2\u9605\u5957\u9910\u3002\u90E8\u5206\u6A21\u578B\uFF08\u5982 minmax\uFF09\u53EF\u80FD\u65E0\u6CD5\u4F7F\u7528\uFF0C\u8BF7\u68C0\u67E5\u60A8\u7684\u5957\u9910\u72B6\u6001\u3002
|
|
8
|
-
|
|
9
|
-
\u9519\u8BEF\u8BE6\u60C5: ${f.message}`,severity:"warning"});else if(f instanceof u)e.prompter.note({title:"CMToken \u670D\u52A1\u63D0\u9192",body:`\u6A21\u578B\u5217\u8868\u83B7\u53D6\u5931\u8D25 (\u72B6\u6001\u7801: ${f.status})\u3002\u8FD9\u53EF\u80FD\u662F\u7531\u4E8E\u7F51\u7EDC\u6CE2\u52A8\u6216\u670D\u52A1\u7AEF\u6682\u65F6\u4E0D\u53EF\u7528\u5F15\u8D77\u7684\uFF0C\u6211\u4EEC\u5C06\u4F7F\u7528\u5185\u7F6E\u5907\u7528\u6A21\u578B\u3002
|
|
10
|
-
|
|
11
|
-
\u8BE6\u60C5: ${f.message}`,severity:"info"});else throw f}let l=c.map(f=>({id:f.id,name:f.name||f.id,reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:f.contextWindow||192e3,maxTokens:f.maxTokens||8192})),m=await Fe(e,l);return L={timestamp:Date.now(),data:{provider:{baseUrl:r.resourceUrl||n.baseUrl||b,api:"openai-completions",models:l.length>0?l:D}}},Mt({providerId:A,defaultModel:`${A}/${m}`,access:r.access,refresh:r.refresh,expires:r.expires,configPatch:{models:{providers:{[A]:{baseUrl:r.resourceUrl||n.baseUrl||b,api:"openai-completions",models:l}}}}})}catch(o){o.name==="CMTokenSubscriptionError"&&t.stop("CMToken OAuth \u5B8C\u6210 (\u53D1\u73B0\u8BA2\u9605\u95EE\u9898)");let n=At(o);throw t.stop(`CMToken OAuth \u5931\u8D25: ${n}`),o}}function Ge(e){e.registerProvider({id:A,label:he,docsPath:"/plugins/cmtoken",auth:[{id:"api-key",label:"CMToken API Key",hint:"\u4F7F\u7528 API Key \u8FDB\u884C\u8BA4\u8BC1",kind:"api_key",wizard:{choiceId:"cmtoken-api-key",choiceLabel:"CMToken API Key",groupId:A,groupLabel:he,groupHint:"CMToken AI \u6A21\u578B"},async run(t){let{ensureApiKeyFromOptionEnvOrPrompt:o,buildApiKeyCredential:n,normalizeApiKeyInput:r,validateApiKeyInput:s}=await import("openclaw/plugin-sdk/provider-auth"),i,a;await o({config:t.config,env:{},provider:A,envLabel:"CMTOKEN_API_KEY",promptMessage:"\u8BF7\u8F93\u5165 CMToken API Key",normalize:r,validate:s,prompter:t.prompter,setCredential:async(h,C)=>{i=h,a=C}});let u=`${A}:default`,c=n(A,i,{},{secretInputMode:a,config:t.config}),l=t.config,m=l.discoveryUrl||q,{fetchCMTokenModels:f}=await Promise.resolve().then(()=>(U(),R)),g=(await f(m,15e3,i)).map(h=>({id:h.id,name:h.name||h.id,reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:h.contextWindow||192e3,maxTokens:h.maxTokens||8192})),d=await Fe(t,g);return{profiles:[{profileId:u,credential:c}],defaultModel:`${A}/${d}`,configPatch:{models:{providers:{[A]:{baseUrl:l.baseUrl||b,api:"openai-completions",models:g}}}}}}},{id:"oauth",label:"CMToken OAuth",hint:"\u901A\u8FC7\u79FB\u52A8\u8BA4\u8BC1\u6D4F\u89C8\u5668\u6D41\u767B\u5F55",kind:"device_code",run:Ct,applyConfig:t=>({...t,models:{...t.models,providers:{...t.models?.providers,[A]:{baseUrl:b,api:"openai-completions",models:D}}}}),wizard:{choiceId:"cmtoken-oauth",choiceLabel:"CMToken OAuth",groupId:A,groupLabel:he,groupHint:"CMToken AI \u6A21\u578B"}}],catalog:{order:"simple",run:async t=>kt(t)},augmentModelCatalog:t=>wt(t),async refreshOAuth(t){let{refreshCMTokenToken:o}=await Promise.resolve().then(()=>(fe(),He));try{let n=await o({refreshToken:t.refresh});return L=null,{...t,access:n.access,refresh:n.refresh,expires:n.expires}}catch(n){throw console.error("[CMToken] refreshOAuth failed:",n),n}},classifyFailoverReason(t){let o=t.error?.message||String(t.error);if(o.includes("\u8BA2\u9605\u5957\u9910")||o.includes("\u8BA2\u9605\u5DF2\u8FC7\u671F")||o.includes("\u4F59\u989D\u4E0D\u8DB3"))return"billing"}})}var Vt=Et({id:"cmtoken",name:"CMToken",description:"CMToken provider plugin with OAuth support (browser and QR code)",register(e){Ge(e)}});export{Vt as default};
|
|
12
|
-
//# sourceMappingURL=index.js.map
|