@firmer/mesh 0.0.13 → 0.0.14

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/mesh.js CHANGED
@@ -8189,27 +8189,28 @@ var $h = class e {
8189
8189
  redirect;
8190
8190
  session;
8191
8191
  cacheKey = "mesh.token";
8192
- static tokenizer = Z.proxy(Ru);
8193
- static instance = new e();
8194
- async authorize(t, n) {
8195
- let r = await e.tokenizer.quickauth(n);
8196
- this.session = await e.tokenizer.authenticate(r.token), localStorage.setItem(this.cacheKey, r.token);
8192
+ tokenizer = Z.proxy(Ru);
8193
+ static ptr = f();
8194
+ constructor() {}
8195
+ static global() {
8196
+ return e.ptr.acx || (e.ptr.acx = new e()), e.ptr.acx;
8197
+ }
8198
+ async authorize(e, t) {
8199
+ let n = await this.tokenizer.quickauth(t);
8200
+ this.session = await this.tokenizer.authenticate(n.token), localStorage.setItem(this.cacheKey, n.token);
8197
8201
  }
8198
8202
  authorized() {
8199
8203
  return (this.session?.token ?? localStorage.getItem(this.cacheKey) ?? "") != "";
8200
8204
  }
8201
8205
  async authenticate() {
8202
8206
  if (this.session) return this.session;
8203
- let t = localStorage.getItem(this.cacheKey);
8204
- if (!t) throw b.UNAUTHORIZED;
8205
- return this.session = await e.tokenizer.authenticate(t), this.session;
8207
+ let e = localStorage.getItem(this.cacheKey);
8208
+ if (!e) throw b.UNAUTHORIZED;
8209
+ return this.session = await this.tokenizer.authenticate(e), this.session;
8206
8210
  }
8207
8211
  async destroy() {
8208
- let t = this.session?.token ?? localStorage.getItem(this.cacheKey);
8209
- t && t != "" && await e.tokenizer.destroy(t), localStorage.removeItem(this.cacheKey), this.session = void 0;
8210
- }
8211
- static global() {
8212
- return e.instance;
8212
+ let e = this.session?.token ?? localStorage.getItem(this.cacheKey);
8213
+ e && e != "" && await this.tokenizer.destroy(e), localStorage.removeItem(this.cacheKey), this.session = void 0;
8213
8214
  }
8214
8215
  }, ig = r(void 0), ag = ({ children: e, redirect: t }) => {
8215
8216
  let n = s(() => (rg.global().redirect = t, rg.global()), [t]);
@@ -8242,7 +8243,7 @@ Nf.onBefore("mesh.authorize", async (e, t) => {
8242
8243
  }
8243
8244
  }), Nf.onFailure("mesh.authenticate", async (e, t, n) => {
8244
8245
  if (n.getCode() == "E0000000630" || n.getCode() == "E0000000401") {
8245
- globalThis.location.href = rg.global().redirect ?? "";
8246
+ rg.global().destroy().catch(console.log), globalThis.location.href = rg.global().redirect ?? "";
8246
8247
  return;
8247
8248
  }
8248
8249
  console.log(n.getMessage());
package/dist/mesh.umd.cjs CHANGED
@@ -4,7 +4,7 @@
4
4
  `+e.map(Ih).join(`
5
5
  `):` `+Ih(e[0]):`as no adapter specified`),`ERR_NOT_SUPPORT`)}return i}var zh={getAdapter:Rh,adapters:Fh};function Bh(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ih(null,e)}function Vh(e){return Bh(e),e.headers=th.from(e.headers),e.data=nh.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),zh.getAdapter(e.adapter||Wm.adapter,e)(e).then(function(t){return Bh(e),t.data=nh.call(e,e.transformResponse,t),t.headers=th.from(t.headers),t},function(t){return rh(t)||(Bh(e),t&&t.response&&(t.response.data=nh.call(e,e.transformResponse,t.response),t.response.headers=th.from(t.response.headers))),Promise.reject(t)})}var Hh=`1.13.6`,Uh={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{Uh[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var Wh={};Uh.transitional=function(e,t,n){function r(e,t){return`[Axios v`+Hh+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new $(r(i,` has been removed`+(t?` in `+t:``)),$.ERR_DEPRECATED);return t&&!Wh[i]&&(Wh[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),e?e(n,i,a):!0}},Uh.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function Gh(e,t,n){if(typeof e!=`object`)throw new $(`options must be an object`,$.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-- >0;){let a=r[i],o=t[a];if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new $(`option `+a+` must be `+n,$.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new $(`Unknown option `+a,$.ERR_BAD_OPTION)}}var Kh={assertOptions:Gh,validators:Uh},qh=Kh.validators,Jh=class{constructor(e){this.defaults=e||{},this.interceptors={request:new km,response:new km}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=t.stack?t.stack.replace(/^.+\n/,``):``;try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,``))&&(e.stack+=`
6
6
  `+n):e.stack=n}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=vh(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&Kh.assertOptions(n,{silentJSONParsing:qh.transitional(qh.boolean),forcedJSONParsing:qh.transitional(qh.boolean),clarifyTimeoutError:qh.transitional(qh.boolean),legacyInterceptorReqResOrdering:qh.transitional(qh.boolean)},!1),r!=null&&(Q.isFunction(r)?t.paramsSerializer={serialize:r}:Kh.assertOptions(r,{encode:qh.function,serialize:qh.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),Kh.assertOptions(t,{baseUrl:qh.spelling(`baseURL`),withXsrfToken:qh.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&Q.merge(i.common,i[t.method]);i&&Q.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`common`],e=>{delete i[e]}),t.headers=th.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Am;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[Vh.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u<d;)l=l.then(e[u++],e[u++]);return l}d=o.length;let f=t;for(;u<d;){let e=o[u++],t=o[u++];try{f=e(f)}catch(e){t.call(this,e);break}}try{l=Vh.call(this,f)}catch(e){return Promise.reject(e)}for(u=0,d=c.length;u<d;)l=l.then(c[u++],c[u++]);return l}getUri(e){return e=vh(this.defaults,e),Om(gh(e.baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}};Q.forEach([`delete`,`get`,`head`,`options`],function(e){Jh.prototype[e]=function(t,n){return this.request(vh(n||{},{method:e,url:t,data:(n||{}).data}))}}),Q.forEach([`post`,`put`,`patch`],function(e){function t(t){return function(n,r,i){return this.request(vh(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}Jh.prototype[e]=t(),Jh.prototype[e+`Form`]=t(!0)});var Yh=class e{constructor(e){if(typeof e!=`function`)throw TypeError(`executor must be a function.`);let t;this.promise=new Promise(function(e){t=e});let n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new ih(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function Xh(e){return function(t){return e.apply(null,t)}}function Zh(e){return Q.isObject(e)&&e.isAxiosError===!0}var Qh={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Qh).forEach(([e,t])=>{Qh[t]=e});function $h(e){let t=new Jh(e),n=sp(Jh.prototype.request,t);return Q.extend(n,Jh.prototype,t,{allOwnKeys:!0}),Q.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return $h(vh(e,t))},n}var eg=$h(Wm);eg.Axios=Jh,eg.CanceledError=ih,eg.CancelToken=Yh,eg.isCancel=rh,eg.VERSION=Hh,eg.toFormData=Cm,eg.AxiosError=$,eg.Cancel=eg.CanceledError,eg.all=function(e){return Promise.all(e)},eg.spread=Xh,eg.isAxiosError=Zh,eg.mergeConfig=vh,eg.AxiosHeaders=th,eg.formToJSON=e=>Hm(Q.isHTMLForm(e)?new FormData(e):e),eg.getAdapter=zh.getAdapter,eg.HttpStatusCode=Qh,eg.default=eg;var tg=l(((e,t)=>{t.exports={}})),ng=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},rg=class extends uf{timeout=1e4;cs=new Map;getAddr(e){let t=X.MESH_ADDRESS.get().any();return e.getAttribute(yf.REMOTE)??t}async getClient(e){if(!this.cs.has(e)){let t={baseURL:e,timeout:this.timeout,headers:{"Content-Type":`application/json;charset=UTF-8`}};globalThis.__vitest_environment__==`node`&&(t.httpsAgent=new(await(Promise.resolve().then(()=>f(tg(),1)))).Agent({rejectUnauthorized:!1}));let n=eg.create(t);n.interceptors.request.use(e=>e),this.cs.set(e,n)}return this.cs.get(e)}start(){}close(){}async consume(e,t,n,r,i){let a=r.schema(e).timeout??this.timeout,o=e.getAttribute(yf.TIMEOUT)??this.timeout,s=Ce.load(Xd).getDefault(),c=s.decode(i,Object),l=await this.invoke(e,c,Object,n,Math.max(o,a));return s.encode(l)}async*consumes(e,t,n,r,i){let a=Ce.load(Xd).getDefault(),o=a.decode(i,Object),s={"mesh-urn":n,"Content-Type":`application/json; charset=utf-8`,Accept:`text/event-stream`,"Cache-Control":`no-cache`};e.getAttachments().forEach((e,t)=>{s[e]=t});let c=this.getAddr(e),l=new AbortController,u=await fetch(`${c}mpc/invoke`,{method:`POST`,headers:s,body:JSON.stringify(o),signal:l.signal});if(!u.ok||!u.body)throw De.errorf(u);let d=u.body.getReader(),f=new TextDecoder,p=``;try{for(;;){let{done:e,value:t}=await d.read();if(e)break;p+=f.decode(t,{stream:!0});let n=p.split(`
7
- `);p=n.pop()??``;for(let e of n)if(e.startsWith(`data:`)){let t=e.slice(5).trim();t&&(yield a.encode(JSON.parse(t)))}}}finally{await d.cancel(),l.abort()}}async invoke(e,t,n,r,i){let a={"mesh-urn":r};e.getAttachments().forEach((e,t)=>{a[e]=t});let o=this.getAddr(e);return await this.doing(e,o,`mpc/invoke`,t,a,Math.max(this.timeout,i))}async doing(e,t,n,r,i,a){let o=If();if(o?.consumer)return o?.consumer(e,t,n,r,i,a);let s=await(await this.getClient(t)).post(`${t}${n}`,r,{timeout:Math.max(this.timeout,a),headers:i});if(s.status!==200)throw De.errorf(s);return s.data}};rg=ng([_(uf.HTTP)],rg);var ig=class e{name=``;icon;path=``;describe;disable=!1;star=!1;route;children=[];parent;attrs;static abs(e,t=``){if(!e.parent)return`${t}${e.path}`;let n=this.abs(e.parent).replaceAll(`/*`,``);return n==``?`${t}${e.path}`:`${t}${n}${e.path.replaceAll(`/*`,``)}`}static preproc(e){e?.forEach(e=>{e.children?.forEach(t=>{t.parent=e}),this.preproc(e?.children||[])})}static chain(t){return t.parent?[...e.chain(t.parent),t]:[]}},ag=class extends Zc{proxy;constructor(){super(),this.proxy=Z.proxy(Zc)}environ(e){return this.proxy.environ(e)}accessible(e,t){return this.proxy.accessible(e)}refresh(e,t){return this.proxy.refresh(e)}route(e,t){return this.proxy.route(e)}routes(e){return this.proxy.routes(e)}disable(e,t){return this.proxy.disable(e)}enable(e,t){return this.proxy.enable(e)}index(e,t){return this.proxy.index(e)}version(e,t){return this.proxy.version(e)}},og=class{values=[];filter=(e,t)=>!0;constructor(e,t){this.values=e||[],this.filter=t}index(e){let t=e.factor||{},n=new T;n.index=e.index,n.sid=e.sid||``,n.limit=e.limit,n.total=e.index*e.limit,n.next=!1,n.data=[];let r=n.index*n.limit,i=(n.index+1)*n.limit;for(let a=r;a<this.values.length&&!(r>=this.values.length);a++){let o=this.values[a];n.data.length<e.limit&&r<=n.total&&n.total<i&&n.data.push(o),(!this.filter||this.filter(o,t))&&n.total++}return n.total>i&&(n.next=!0),n}},sg=[{label:`微信`,value:`wechat`},{label:`抖音`,value:`douyin`},{label:`飞书`,value:`feishu`},{label:`钉钉`,value:`dingtalk`}],cg=class e{redirect;session;cacheKey=`mesh.token`;static tokenizer=Z.proxy(Hu);static instance=new e;async authorize(t,n){let r=await e.tokenizer.quickauth(n);this.session=await e.tokenizer.authenticate(r.token),localStorage.setItem(this.cacheKey,r.token)}authorized(){return(this.session?.token??localStorage.getItem(this.cacheKey)??``)!=``}async authenticate(){if(this.session)return this.session;let t=localStorage.getItem(this.cacheKey);if(!t)throw x.UNAUTHORIZED;return this.session=await e.tokenizer.authenticate(t),this.session}async destroy(){let t=this.session?.token??localStorage.getItem(this.cacheKey);t&&t!=``&&await e.tokenizer.destroy(t),localStorage.removeItem(this.cacheKey),this.session=void 0}static global(){return e.instance}},lg=(0,t.createContext)(void 0),ug=({children:e,redirect:r})=>{let i=(0,t.useMemo)(()=>(cg.global().redirect=r,cg.global()),[r]);return(0,n.jsx)(lg.Provider,{value:i,children:e})},dg=()=>{let e=(0,t.useContext)(lg);if(!e)throw Error(`useAuth must be used within a AuthContextProvider`);return e},fg=({next:e})=>{let n=dg();return(0,t.useEffect)(()=>{cg.global().authenticate().catch(console.log)},[]),e(n.authorized(),n.redirect??``)},pg=[`apply.captcha.mesh`,`match.captcha.mesh`,`quickauth.auth.mesh`,`authorize.oauth.mesh`,`authenticate.oauth.mesh`,`settings.x.devops`];Lf.onBefore(`mesh.authorize`,async(e,t)=>{let n=cg.global().session,r=new URLSearchParams(globalThis.location.search);if(t.getAttachments(e).set(`mesh-token`,n?.token??r.get(`token`)??``),t.getAttachments(e).set(`mesh-query`,globalThis.location.search),!pg.some(t=>e.getUrn().includes(t))&&!n?.token){let n=await cg.global().authenticate();t.getAttachments(e).set(`mesh-token`,n.token)}}),Lf.onFailure(`mesh.authenticate`,async(e,t,n)=>{if(n.getCode()==`E0000000630`||n.getCode()==`E0000000401`){globalThis.location.href=cg.global().redirect??``;return}console.log(n.getMessage())});var mg=class{async sse(e,t,n){let r=new URLSearchParams(globalThis.location.search);await new vg(`${globalThis.location.origin}${globalThis.location.pathname}/mpc/sse`,n,t,{"mesh-token":r.get(`token`)??``,"mesh-query":globalThis.location.search,"mesh-proxy":t?.options?.proxy??``,"mesh-urn":Bf.urn(`${e}.builtin.sse`).toString()}).connect()}async fileup(e,t,n,r){let i=new FormData;return i.append(`f`,e instanceof File?e:new File([e],`mesh_${Date.now()}.${n}`)),new Promise((e,n)=>{let a=`${globalThis.location.origin}${globalThis.location.pathname}/mpc/w`,o=new XMLHttpRequest;o.upload.onprogress=e=>r?.(Math.round(e.loaded/e.total*100)),o.onload=()=>o.status<300?e(o.responseText.substring(1)):n(Error(`HTTP ${o.status}`)),o.onerror=()=>n(Error(`unknown error`)),o.open(`POST`,a),o.setRequestHeader(`mesh-bucket`,t??``),o.send(i)})}},hg=(0,t.createContext)(void 0),gg=()=>{let e=(0,t.useContext)(hg);if(!e)throw Error(`useSSE must be used within a SSEContextProvider`);return e},_g=({children:e})=>{let r=(0,t.useMemo)(()=>new mg,[]),i=(0,t.useCallback)(()=>{},[]);return(0,t.useEffect)(()=>(i(),globalThis.addEventListener(`online`,i),()=>{globalThis.removeEventListener(`online`,i)}),[i]),(0,n.jsx)(hg.Provider,{value:r,children:e})},vg=class{codec=Ce.load(Xd).getDefault();ctl=new AbortController;decoder=new TextDecoder;url;body;headers;onmessage;buffer=``;reader;constructor(e,t,n={},r={}){this.url=e,this.body=n,this.headers=r,this.onmessage=t}async connect(){let e=await fetch(this.url,{method:`POST`,headers:{"Content-Type":`application/json; charset=utf-8`,Accept:`text/event-stream`,"Cache-Control":`no-cache`,...this.headers},body:this.codec.encodeString(this.body),signal:this.ctl.signal});if(!e.ok)throw De.errorf(e);let t=e.headers.get(`content-type`);if(!t?.includes(`text/event-stream`))throw De.errorf(`unexpected content-type: `+t);if(!e.body)throw await this.close(),De.errorf(`unexpected stream response`);for(this.reader=e.body.getReader();;){let{done:e,value:t}=await this.reader.read();if(e){await this.close();break}if(await this.process(this.buffer,t)){await this.close();break}}}async process(e,t){let n=e+this.decoder.decode(t,{stream:!0});if(n.endsWith(`
7
+ `);p=n.pop()??``;for(let e of n)if(e.startsWith(`data:`)){let t=e.slice(5).trim();t&&(yield a.encode(JSON.parse(t)))}}}finally{await d.cancel(),l.abort()}}async invoke(e,t,n,r,i){let a={"mesh-urn":r};e.getAttachments().forEach((e,t)=>{a[e]=t});let o=this.getAddr(e);return await this.doing(e,o,`mpc/invoke`,t,a,Math.max(this.timeout,i))}async doing(e,t,n,r,i,a){let o=If();if(o?.consumer)return o?.consumer(e,t,n,r,i,a);let s=await(await this.getClient(t)).post(`${t}${n}`,r,{timeout:Math.max(this.timeout,a),headers:i});if(s.status!==200)throw De.errorf(s);return s.data}};rg=ng([_(uf.HTTP)],rg);var ig=class e{name=``;icon;path=``;describe;disable=!1;star=!1;route;children=[];parent;attrs;static abs(e,t=``){if(!e.parent)return`${t}${e.path}`;let n=this.abs(e.parent).replaceAll(`/*`,``);return n==``?`${t}${e.path}`:`${t}${n}${e.path.replaceAll(`/*`,``)}`}static preproc(e){e?.forEach(e=>{e.children?.forEach(t=>{t.parent=e}),this.preproc(e?.children||[])})}static chain(t){return t.parent?[...e.chain(t.parent),t]:[]}},ag=class extends Zc{proxy;constructor(){super(),this.proxy=Z.proxy(Zc)}environ(e){return this.proxy.environ(e)}accessible(e,t){return this.proxy.accessible(e)}refresh(e,t){return this.proxy.refresh(e)}route(e,t){return this.proxy.route(e)}routes(e){return this.proxy.routes(e)}disable(e,t){return this.proxy.disable(e)}enable(e,t){return this.proxy.enable(e)}index(e,t){return this.proxy.index(e)}version(e,t){return this.proxy.version(e)}},og=class{values=[];filter=(e,t)=>!0;constructor(e,t){this.values=e||[],this.filter=t}index(e){let t=e.factor||{},n=new T;n.index=e.index,n.sid=e.sid||``,n.limit=e.limit,n.total=e.index*e.limit,n.next=!1,n.data=[];let r=n.index*n.limit,i=(n.index+1)*n.limit;for(let a=r;a<this.values.length&&!(r>=this.values.length);a++){let o=this.values[a];n.data.length<e.limit&&r<=n.total&&n.total<i&&n.data.push(o),(!this.filter||this.filter(o,t))&&n.total++}return n.total>i&&(n.next=!0),n}},sg=[{label:`微信`,value:`wechat`},{label:`抖音`,value:`douyin`},{label:`飞书`,value:`feishu`},{label:`钉钉`,value:`dingtalk`}],cg=class e{redirect;session;cacheKey=`mesh.token`;tokenizer=Z.proxy(Hu);static ptr=te();constructor(){}static global(){return e.ptr.acx||(e.ptr.acx=new e),e.ptr.acx}async authorize(e,t){let n=await this.tokenizer.quickauth(t);this.session=await this.tokenizer.authenticate(n.token),localStorage.setItem(this.cacheKey,n.token)}authorized(){return(this.session?.token??localStorage.getItem(this.cacheKey)??``)!=``}async authenticate(){if(this.session)return this.session;let e=localStorage.getItem(this.cacheKey);if(!e)throw x.UNAUTHORIZED;return this.session=await this.tokenizer.authenticate(e),this.session}async destroy(){let e=this.session?.token??localStorage.getItem(this.cacheKey);e&&e!=``&&await this.tokenizer.destroy(e),localStorage.removeItem(this.cacheKey),this.session=void 0}},lg=(0,t.createContext)(void 0),ug=({children:e,redirect:r})=>{let i=(0,t.useMemo)(()=>(cg.global().redirect=r,cg.global()),[r]);return(0,n.jsx)(lg.Provider,{value:i,children:e})},dg=()=>{let e=(0,t.useContext)(lg);if(!e)throw Error(`useAuth must be used within a AuthContextProvider`);return e},fg=({next:e})=>{let n=dg();return(0,t.useEffect)(()=>{cg.global().authenticate().catch(console.log)},[]),e(n.authorized(),n.redirect??``)},pg=[`apply.captcha.mesh`,`match.captcha.mesh`,`quickauth.auth.mesh`,`authorize.oauth.mesh`,`authenticate.oauth.mesh`,`settings.x.devops`];Lf.onBefore(`mesh.authorize`,async(e,t)=>{let n=cg.global().session,r=new URLSearchParams(globalThis.location.search);if(t.getAttachments(e).set(`mesh-token`,n?.token??r.get(`token`)??``),t.getAttachments(e).set(`mesh-query`,globalThis.location.search),!pg.some(t=>e.getUrn().includes(t))&&!n?.token){let n=await cg.global().authenticate();t.getAttachments(e).set(`mesh-token`,n.token)}}),Lf.onFailure(`mesh.authenticate`,async(e,t,n)=>{if(n.getCode()==`E0000000630`||n.getCode()==`E0000000401`){cg.global().destroy().catch(console.log),globalThis.location.href=cg.global().redirect??``;return}console.log(n.getMessage())});var mg=class{async sse(e,t,n){let r=new URLSearchParams(globalThis.location.search);await new vg(`${globalThis.location.origin}${globalThis.location.pathname}/mpc/sse`,n,t,{"mesh-token":r.get(`token`)??``,"mesh-query":globalThis.location.search,"mesh-proxy":t?.options?.proxy??``,"mesh-urn":Bf.urn(`${e}.builtin.sse`).toString()}).connect()}async fileup(e,t,n,r){let i=new FormData;return i.append(`f`,e instanceof File?e:new File([e],`mesh_${Date.now()}.${n}`)),new Promise((e,n)=>{let a=`${globalThis.location.origin}${globalThis.location.pathname}/mpc/w`,o=new XMLHttpRequest;o.upload.onprogress=e=>r?.(Math.round(e.loaded/e.total*100)),o.onload=()=>o.status<300?e(o.responseText.substring(1)):n(Error(`HTTP ${o.status}`)),o.onerror=()=>n(Error(`unknown error`)),o.open(`POST`,a),o.setRequestHeader(`mesh-bucket`,t??``),o.send(i)})}},hg=(0,t.createContext)(void 0),gg=()=>{let e=(0,t.useContext)(hg);if(!e)throw Error(`useSSE must be used within a SSEContextProvider`);return e},_g=({children:e})=>{let r=(0,t.useMemo)(()=>new mg,[]),i=(0,t.useCallback)(()=>{},[]);return(0,t.useEffect)(()=>(i(),globalThis.addEventListener(`online`,i),()=>{globalThis.removeEventListener(`online`,i)}),[i]),(0,n.jsx)(hg.Provider,{value:r,children:e})},vg=class{codec=Ce.load(Xd).getDefault();ctl=new AbortController;decoder=new TextDecoder;url;body;headers;onmessage;buffer=``;reader;constructor(e,t,n={},r={}){this.url=e,this.body=n,this.headers=r,this.onmessage=t}async connect(){let e=await fetch(this.url,{method:`POST`,headers:{"Content-Type":`application/json; charset=utf-8`,Accept:`text/event-stream`,"Cache-Control":`no-cache`,...this.headers},body:this.codec.encodeString(this.body),signal:this.ctl.signal});if(!e.ok)throw De.errorf(e);let t=e.headers.get(`content-type`);if(!t?.includes(`text/event-stream`))throw De.errorf(`unexpected content-type: `+t);if(!e.body)throw await this.close(),De.errorf(`unexpected stream response`);for(this.reader=e.body.getReader();;){let{done:e,value:t}=await this.reader.read();if(e){await this.close();break}if(await this.process(this.buffer,t)){await this.close();break}}}async process(e,t){let n=e+this.decoder.decode(t,{stream:!0});if(n.endsWith(`
8
8
  `))return this.buffer=``,await this.consume(n.split(`
9
9
  `));{let e=n.split(`
10
10
  `);return this.buffer=e[e.length-1],await this.consume(e.slice(0,e.length-1))}}async consume(e){for(let t of e)if(t!=``){if(t.startsWith(`event:`))return!1;if(t.startsWith(`data:`)){let e=this.codec.decodeString(t.slice(5).trim(),zt);if(x.SUCCESS.getCode()!=e.code)return!0;await this.onmessage(e.content)}if(t.startsWith(`id:`)||t.startsWith(`retry:`))return!1}return!1}state(){return this.reader!==null&&!this.ctl?.signal.aborted}async close(){await this.reader?.cancel(),this.ctl.abort()}},yg=new class{builtin=Z.proxy(Ci);cache=Z.proxy(zi);cipherEconomy=Z.proxy(pa);cipherProvider=Z.proxy(ma);cluster=Z.proxy(Sa);commercialize=Z.proxy(ja);cryptor=Z.proxy(Xa);daler=Z.proxy(Do);dataHouse=Z.proxy(Bo);devops=Z.proxy(ns);endpoint=Z.proxy(gs);firewalld=Z.proxy(Ds);graph=Z.proxy(Fs);kms=Z.proxy(oc);kv=Z.proxy(_c);licenser=Z.proxy(Ec);locker=Z.proxy(Pc);network=Z.proxy(Zc);pipeline=Z.proxy(sl);publisher=Z.proxy(pl);registry=Z.proxy(wl);savepoint=Z.proxy(Jl);scheduler=Z.proxy(uu);sequence=Z.proxy(gu);subscriber=Z.proxy(Su);tokenizer=Z.proxy(Hu);authProvider=Z.proxy(Uu);transporter=Z.proxy(ed);fileSystem=Z.proxy(fd);vm=Z.proxy(Dd);workflow=Z.proxy(Gd)};e.AccessCode=Bn,e.AccessGrant=In,e.AccessID=Vn,e.AccessToken=Rn,e.Addrs=df,e.Appdata=rr,e.Argument=_e,e.Ark=h,e.AuthContextProvider=ug,Object.defineProperty(e,`AuthProvider`,{enumerable:!0,get:function(){return Uu}}),e.Authenticator=fg,e.Body=Mt,e.Buffer=Jd,Object.defineProperty(e,`Builtin`,{enumerable:!0,get:function(){return Ci}}),e.CONSUMER=Af,e.CRL=Ze,Object.defineProperty(e,`Cache`,{enumerable:!0,get:function(){return zi}}),e.CacheBody=Nt,e.Captcha=Fn,e.Cause=He,Object.defineProperty(e,`CipherEconomy`,{enumerable:!0,get:function(){return pa}}),e.CipherEntity=rt,e.CipherHello=Qe,e.CipherKey=nt,e.CipherKeygen=et,e.CipherObject=at,Object.defineProperty(e,`CipherProvider`,{enumerable:!0,get:function(){return ma}}),e.CipherRegen=tt,e.CipherSuite=$e,e.CipherTxEntity=it,e.Citizen=ig,Object.defineProperty(e,`Cluster`,{enumerable:!0,get:function(){return Sa}}),Object.defineProperty(e,`Codec`,{enumerable:!0,get:function(){return Xd}}),e.CommerceEnviron=jn,e.CommerceLicense=An,Object.defineProperty(e,`Commercialize`,{enumerable:!0,get:function(){return ja}}),Object.defineProperty(e,`Compiler`,{enumerable:!0,get:function(){return of}}),Object.defineProperty(e,`Consumer`,{enumerable:!0,get:function(){return uf}}),e.Context=Me,Object.defineProperty(e,`ContextProvider`,{enumerable:!0,get:function(){return Pe}}),e.Credential=Ln,e.CrtRevokeRequest=bn,e.CrtRotateRequest=xn,Object.defineProperty(e,`Cryptor`,{enumerable:!0,get:function(){return Xa}}),Object.defineProperty(e,`Daler`,{enumerable:!0,get:function(){return Do}}),e.DalerBinlog=mt,e.DalerCluster=dt,e.DalerDTSJob=pt,e.DalerInstance=ut,e.DalerSource=lt,e.DalerTest=ft,Object.defineProperty(e,`DataHouse`,{enumerable:!0,get:function(){return Bo}}),e.DataLord=Be,e.Deque=je,Object.defineProperty(e,`Devops`,{enumerable:!0,get:function(){return ns}}),Object.defineProperty(e,`Dispatcher`,{enumerable:!0,get:function(){return ls}}),e.Document=Et,e.DocumentMetadata=Dt,e.DtxBranch=gr,e.DtxDefinition=hr,e.Dynamic=be,e.DynamicOption=sr,e.DynamicRoute=cr,e.DynamicServer=lr,Object.defineProperty(e,`Eden`,{enumerable:!0,get:function(){return vf}}),Object.defineProperty(e,`Endpoint`,{enumerable:!0,get:function(){return gs}}),e.EndpointSticker=_s,e.Entry=Pt,e.Env=ne,e.Environ=Wt,e.Errors=De,e.Event=an,e.FileEntry=Ft,e.FileMirror=kr,Object.defineProperty(e,`FileSystem`,{enumerable:!0,get:function(){return fd}}),Object.defineProperty(e,`Filter`,{enumerable:!0,get:function(){return jf}}),e.Firewall=A,Object.defineProperty(e,`Firewalld`,{enumerable:!0,get:function(){return Ds}}),Object.defineProperty(e,`GRPCConsumer`,{enumerable:!0,get:function(){return ip}}),Object.defineProperty(e,`GRPCProvider`,{enumerable:!0,get:function(){return op}}),e.GenericExecution=wf,e.GenericInspector=Tf,e.GenericParameters=Ef,e.GenericReturns=Df,e.GrantCode=zn,Object.defineProperty(e,`Graph`,{enumerable:!0,get:function(){return Fs}}),Object.defineProperty(e,`HTTPConsumer`,{enumerable:!0,get:function(){return rg}}),e.Header=Ne,e.Hodor=wi,e.Hook=Lf,Object.defineProperty(e,`HookFilter`,{enumerable:!0,get:function(){return Rf}}),e.Idx=ue,e.Inbound=qn,e.Institution=Yt,Object.defineProperty(e,`JSONCodec`,{enumerable:!0,get:function(){return tf}}),Object.defineProperty(e,`KMS`,{enumerable:!0,get:function(){return oc}}),Object.defineProperty(e,`KV`,{enumerable:!0,get:function(){return _c}}),e.Key=Ae,e.KeyCsr=vn,e.Keys=yn,e.Keyset=Sn,e.KindMirror=Or,e.Lattice=Ut,e.License=kn,Object.defineProperty(e,`Licenser`,{enumerable:!0,get:function(){return Ec}}),e.Location=Jt,Object.defineProperty(e,`Locker`,{enumerable:!0,get:function(){return Pc}}),e.MPI=fe,e.MPS=we,e.Mani=Ve,e.Manifest=Ir,e.Matcher=ur,e.Mesh=yf,e.MeshCode=b,e.MeshContext=hf,Object.defineProperty(e,`MeshContextProvider`,{enumerable:!0,get:function(){return gf}}),Object.defineProperty(e,`MeshEden`,{enumerable:!0,get:function(){return Zf}}),e.MeshFlags=xf,e.MeshNetwork=ag,e.MeshService=yg,e.Metadata=tr,e.MethodInspector=y,e.MethodMirror=Dr,Object.defineProperty(e,`MethodProxy`,{enumerable:!0,get:function(){return ge}}),e.Mock=$f,Object.defineProperty(e,`MockFilter`,{enumerable:!0,get:function(){return ep}}),e.Mode=re,e.MpcStream=Il,e.Netlist=dr,Object.defineProperty(e,`Network`,{enumerable:!0,get:function(){return Zc}}),Object.defineProperty(e,`ObjectProvider`,{enumerable:!0,get:function(){return ha}}),e.Outbound=Jn,e.PROVIDER=kf,e.Packet=Ur,e.Page=T,e.Paging=w,e.ParameterMirror=Cr,e.Payload=Hr,Object.defineProperty(e,`Pipeline`,{enumerable:!0,get:function(){return sl}}),e.Principal=qt,Object.defineProperty(e,`Provider`,{enumerable:!0,get:function(){return np}}),Object.defineProperty(e,`Publisher`,{enumerable:!0,get:function(){return pl}}),e.QrParties=sg,e.Reference=$n,e.ReferenceInvokeHandler=Hf,e.Registration=nr,e.RegistrationKind=Bt,Object.defineProperty(e,`Registry`,{enumerable:!0,get:function(){return wl}}),e.Replica=xt,e.ReturnMirror=wr,e.Routable=Fl,e.Route=z,e.RunMode=ke,e.SPI=de,Object.defineProperty(e,`Savepoint`,{enumerable:!0,get:function(){return Jl}}),Object.defineProperty(e,`Scheduler`,{enumerable:!0,get:function(){return uu}}),e.Script=Fr,e.SecretCsr=Cn,e.SecretKey=wn,Object.defineProperty(e,`Sequence`,{enumerable:!0,get:function(){return gu}}),e.Service=er,e.ServiceInvocation=zf,e.ServiceInvokeHandler=Kf,e.ServiceLoader=Ce,Object.defineProperty(e,`ServiceProxy`,{enumerable:!0,get:function(){return Z}}),e.Session=Hn,e.Settings=bt,e.StatefulServer=ff,e.States=Rr,e.Status=x,e.StreamContext=mg,e.StreamContextProvider=_g,e.StreamEntity=It,e.StreamHello=Rt,e.StreamOption=Lt,e.StreamPacket=zt,Object.defineProperty(e,`Subscriber`,{enumerable:!0,get:function(){return Su}}),Object.defineProperty(e,`TSCompiler`,{enumerable:!0,get:function(){return cf}}),e.TextDecoder=qd,e.TextEncoder=Kd,e.ThrowableMirror=Tr,e.Timeout=on,Object.defineProperty(e,`Tokenizer`,{enumerable:!0,get:function(){return Hu}}),e.Tool=X,e.Topic=Ue,Object.defineProperty(e,`Transporter`,{enumerable:!0,get:function(){return ed}}),e.Triplet=Lr,e.Types=ae,e.URC=Qn,e.URN=Bf,e.URNFlag=Vf,Object.defineProperty(e,`VM`,{enumerable:!0,get:function(){return Dd}}),e.VTable=og,e.VariableMirror=Er,e.Versions=qr,e.WorkChart=ri,e.WorkContext=si,e.WorkGroup=oi,e.WorkIntent=ei,e.WorkRoutine=ai,e.WorkSide=ni,e.WorkTask=ii,e.WorkVertex=ti,e.Worker=$r,Object.defineProperty(e,`Workflow`,{enumerable:!0,get:function(){return Gd}}),e.binding=le,e.buffer=$d,e.composite=Mf,e.context=S,e.descriptor=If,e.dict=p,e.globalPtr=te,e.index=g,e.instanceOfCodeable=Ee,e.list=ee,e.mpi=v,e.mps=Te,e.returnType=sf,e.spi=_,e.textDecoder=Qd,e.textEncoder=Zd,e.useAuth=dg,e.useStream=gg,e.withCodec=Cf,e.withConsumer=Sf,e.withMode=ie});
@@ -9,13 +9,14 @@ declare class AuthContext {
9
9
  redirect?: string;
10
10
  session?: Session;
11
11
  private readonly cacheKey;
12
- private static readonly tokenizer;
13
- private static readonly instance;
12
+ private readonly tokenizer;
13
+ private static readonly ptr;
14
+ private constructor();
15
+ static global(): AuthContext;
14
16
  authorize(mode: AuthMode, account: Credential): Promise<void>;
15
17
  authorized(): boolean;
16
18
  authenticate(): Promise<Session>;
17
19
  destroy(): Promise<void>;
18
- static global(): AuthContext;
19
20
  }
20
21
  export declare const AuthContextProvider: FC<{
21
22
  children: ReactNode;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firmer/mesh",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "description": "Mesh: A lightweight, distributed, relational network architecture for MPC",
5
5
  "homepage": "mesh",
6
6
  "repository": "git.firmer.tech/firmer/mesh",