bigstate.client.javascript 0.0.5-alpha.1 → 0.0.5-alpha.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.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=e=>e instanceof Response?{error:{code:e.status,message:e.statusText}}:e instanceof Error?{error:{code:500,message:e.message}}:{error:{code:500,message:"Unknown error"}},t=e=>{const t=new URLSearchParams;return Object.entries(e).forEach(([e,i])=>{null!=i&&t.append(e,String(i))}),t.toString()},i=async(e,t,i=null,n={},a={})=>{const o={...a},r=i&&"object"==typeof i&&!(e=>e instanceof Blob||e instanceof File||e instanceof ArrayBuffer||e instanceof Uint8Array)(i)&&!(i instanceof FormData);return r&&(o["Content-Type"]="application/json",o.Accept="application/json"),(null==n?void 0:n.apiKey)&&(o["x-api-key"]=n.apiKey),(null==n?void 0:n.token)&&(o["x-auth"]=n.token),s(e,t,r,i,o)},s=async(t,i,s,n=null,a={})=>{try{const o=await fetch(t,{method:i,headers:a,body:n?s?JSON.stringify(n):n:null,cache:"no-store"});if(!o.ok)return e(o);const r=o.headers.get("content-type")||"";if(r.includes("application/octet-stream")||r.includes("application/pdf")||r.includes("image/")){return{data:await o.arrayBuffer()}}const c=await o.text();if(!c)return{data:null};try{return{data:JSON.parse(c)}}catch{return{data:c}}}catch(t){return e(t)}},n=Symbol("apiUrl"),a={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async set(e,t,s){return await i(`${null==this?void 0:this[n]}/state?object=${e}`,"POST",t,s)},async setRef(e,t,s){return await i(`${null==this?void 0:this[n]}/value?object=${e}`,"POST",t,s)},async get(e,s){return await i(`${null==this?void 0:this[n]}/state?${t({...e})}`,"GET",null,s)},async getRef(e,s){return await i(`${null==this?void 0:this[n]}/value?${t({...e})}`,"GET",null,s)},async getVersionList(e,t){return await i(`${null==this?void 0:this[n]}/version?object=${e}`,"GET",null,t)},async getRefList(e,t){return await i(`${null==this?void 0:this[n]}/value?object=${e}`,"GET",null,t)}},o={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async signUp(e){return await i(`${null==this?void 0:this[n]}/owner`,"POST",null,{},{"x-bs-edge-sign":e,"x-bs-edge-sign-nonce":"1","x-bs-edge-sign-timestamp":"1"})},async signInPrincipal(e,t){return await i(`${null==this?void 0:this[n]}/token?principal=${e}`,"POST",null,t)},async creatKeyPrincipal(e,t){return await i(`${null==this?void 0:this[n]}/keypair?principal=${e}`,"POST",null,t)},async deleteKeyPrincipal(e,t,s){return await i(`${null==this?void 0:this[n]}/keypair?principal=${e}`,"DELETE",t,s)},async getListKeyPrincipal(e,t){return await i(`${null==this?void 0:this[n]}/keypair/match?principal=${e}`,"GET",null,t)}},r={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async getList(e){return await i(`${null==this?void 0:this[n]}/delivery/match`,"GET",null,e)},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${e}`,"POST",t,s)},async get(e,t){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${e}`,"GET",null,t)},async delete(e,t){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${e}`,"DELETE",null,t)}},c={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async getList(e){return await i(`${null==this?void 0:this[n]}/policy/match`,"GET",null,e)},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/policy?policy=${e}`,"POST",t,s)},async get(e,t){return await i(`${null==this?void 0:this[n]}/policy?policy=${e}`,"GET",null,t)},async delete(e,t){return await i(`${null==this?void 0:this[n]}/policy?policy=${e}`,"DELETE",null,t)}},l={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async getList(e){return await i(`${null==this?void 0:this[n]}/principal/match`,"GET",null,e)},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/principal?principal=${e}`,"POST",t,s)},async get(e,t){return await i(`${null==this?void 0:this[n]}/principal?principal=${e}`,"GET",null,t)},async delete(e,t){return await i(`${null==this?void 0:this[n]}/principal?principal=${e}`,"DELETE",null,t)}},h={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/object?object=${e}`,"POST",s,t)},async get(e,t){return await i(`${null==this?void 0:this[n]}/object?object=${e}`,"GET",null,t)},async getList(e,t){return await i(`${null==this?void 0:this[n]}/object/match?path=${e}`,"GET",null,t)}},u={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/apikey?principal=${e}`,"POST",t,s)},async getList(e,t){return await i(`${null==this?void 0:this[n]}/apikey/match?principal=${e}`,"GET",null,t)},async delete(e,t,s){return await i(`${null==this?void 0:this[n]}/apikey?principal=${e}`,"DELETE",t,s)}};var p,y,d,v;exports.NotificationType=void 0,(p=exports.NotificationType||(exports.NotificationType={})).Message="message",p.Info="info",p.Error="error";class w{constructor(e){this.socket=null,this.isConnected=!1,this.messageQueue=[],this.options=e,this.connect()}serverSocket(){var e,t,i,s,n,a,o;const r="undefined"!=typeof require?require("ws"):null;if(!r)throw new Error("ws module is required for Node.js environment. Please install it: npm install ws");const c=(null===(e=this.options.authKeys)||void 0===e?void 0:e.apiKey)?`apiKey=${encodeURIComponent(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)}`:(null===(i=this.options.authKeys)||void 0===i?void 0:i.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new r(`${this.options.baseUrlWs}?${c}`),null===(s=this.socket)||void 0===s||s.addListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(e=>this.send(e)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(n=this.socket)||void 0===n||n.addListener("close",e=>{console.log("Close",JSON.stringify(e)),this.isConnected=!1,this.options.onClose&&this.options.onClose(e)}),null===(a=this.socket)||void 0===a||a.addListener("message",e=>{const t=e?JSON.parse(e.toString()):{};this.options.onMessage({type:exports.NotificationType.Message,data:t})}),null===(o=this.socket)||void 0===o||o.addListener("error",e=>{this.options.onError&&this.options.onError({type:exports.NotificationType.Error,data:e}),console.error("WebSocket error:",e)})}clientSocket(){var e,t,i,s,n,a,o;const r=(null===(e=this.options.authKeys)||void 0===e?void 0:e.apiKey)?`apiKey=${encodeURIComponent(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)}`:(null===(i=this.options.authKeys)||void 0===i?void 0:i.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new WebSocket(`${this.options.baseUrlWs}?${r}`),null===(s=this.socket)||void 0===s||s.addEventListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(e=>this.send(e)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(n=this.socket)||void 0===n||n.addEventListener("close",e=>{console.log("Close",JSON.stringify(e)),this.isConnected=!1,this.options.onClose&&this.options.onClose(e)}),null===(a=this.socket)||void 0===a||a.addEventListener("message",e=>{const t=e.data?JSON.parse(e.data):{};this.options.onMessage({type:exports.NotificationType.Message,data:t})}),null===(o=this.socket)||void 0===o||o.addEventListener("error",e=>{this.options.onError&&this.options.onError({type:exports.NotificationType.Error,data:e}),console.error("WebSocket error:",e)})}connect(){"undefined"==typeof window?this.serverSocket():this.clientSocket()}send(e){this.isConnected&&this.socket?e.forEach(e=>{this.socket&&this.socket.send(`addListenerFor=${e}`),console.log("Message sent, deliveryId:",e)}):e.forEach(e=>{!this.messageQueue.includes(e)&&this.messageQueue.push(e)})}close(){if(this.socket){this.isConnected=!1;const e=this.socket.readyState;e!==WebSocket.OPEN&&e!==WebSocket.CONNECTING&&0!==e&&1!==e||this.socket.close(3001),this.messageQueue=[],this.socket=null}}addEventListener(e){var t,i;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.addListener("message",t=>{const i=t?JSON.parse(t.toString()):{};e({type:exports.NotificationType.Message,data:i})}):null===(i=this.socket)||void 0===i||i.addEventListener("message",t=>{const i=t.data?JSON.parse(t.data):{};e({type:exports.NotificationType.Message,data:i})})}removeEventListener(e){var t,i;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.removeListener("message",t=>e):null===(i=this.socket)||void 0===i||i.removeEventListener("message",t=>e)}}exports.PrincipalType=void 0,(y=exports.PrincipalType||(exports.PrincipalType={}))[y.App=1]="App",y[y.User=2]="User",exports.DeliveryType=void 0,(d=exports.DeliveryType||(exports.DeliveryType={}))[d.WS=1]="WS",d[d.HTTP=2]="HTTP",d[d.FILE=3]="FILE",exports.ObjectType=void 0,(v=exports.ObjectType||(exports.ObjectType={}))[v.Private=1]="Private",v[v.Public=2]="Public",exports.BigStateHttpClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.baseUrl=`${e.baseUrl}/v1`,e){const{token:t,apiKey:i}=e;t&&(this._token=t),i&&(this._apiKey=i)}h.apiUrl=this.baseUrl,a.apiUrl=this.baseUrl,l.apiUrl=this.baseUrl,c.apiUrl=this.baseUrl,r.apiUrl=this.baseUrl,o.apiUrl=this.baseUrl,u.apiUrl=this.baseUrl}set apiKey(e){if(!e)throw new Error("ApiKey cannot be empty");this._apiKey=e}set token(e){if(!e)throw new Error("Token cannot be empty");this._token=e}get authKey(){return{apiKey:this._apiKey,token:this._token}}async signUp(e){return await o.signUp(e)}async creatKeyPrincipal(e){return await o.creatKeyPrincipal(e,this.authKey)}async deleteKeyPrincipal(e,t){return await o.deleteKeyPrincipal(e,t,this.authKey)}async getListKeyPrincipal(e){return await o.getListKeyPrincipal(e,this.authKey)}async signInPrincipal(e){return await o.signInPrincipal(e,this.authKey)}async createApiKey(e,t){return await u.create(e,t,this.authKey)}async deleteApiKey(e,t){return await u.delete(e,t,this.authKey)}async getListApiKey(e){return await u.getList(e,this.authKey)}async objectCreate(e,t){return await h.create(e,this.authKey,t)}async objectGet(e){return await h.get(e,this.authKey)}async objectGetList(e){return await h.getList(e,this.authKey)}async stateSet(e,t){return await a.set(e,t,this.authKey)}async stateSetValueRef(e,t){return await a.setRef(e,t,this.authKey)}async stateGet(e){return await a.get(e,this.authKey)}async stateGetRef(e){return await a.getRef(e,this.authKey)}async getVersionList(e){return await a.getVersionList(e,this.authKey)}async getRefList(e){return await a.getRefList(e,this.authKey)}async principalCreate(e,t){return await l.create(e,t,this.authKey)}async principalGet(e){return await l.get(e,this.authKey)}async principalGetList(){return await l.getList(this.authKey)}async principalDelete(e){return await l.delete(e,this.authKey)}async policyCreate(e,t){return await c.create(e,t,this.authKey)}async policyDelete(e){return await c.delete(e,this.authKey)}async policyGet(e){return await c.get(e,this.authKey)}async policyGetList(){return await c.getList(this.authKey)}async deliveryCreate(e,t){return await r.create(t,e,this.authKey)}async deliveryDelete(e){return await r.delete(e,this.authKey)}async deliveryGet(e){return await r.get(e,this.authKey)}async deliveryGetList(){return await r.getList(this.authKey)}},exports.BigStateWsDeliveryClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.socket=null,this.reconnectCount=0,this.reconnectTime=5e3,this.defaultReconnectTime=5e3,this.maxReconnectCount=11,this.messages=new Set([]),this.callbacks=[],this.timerId=null,this.baseUrl=`${e.baseUrl}/v1`,e){const{maxReconnectCount:t,reconnectTime:i,token:s,apiKey:n}=e;s&&(this._token=s),n&&(this._apiKey=n),t&&(this.maxReconnectCount=t),i&&(this.reconnectTime=i),i&&(this.defaultReconnectTime=i)}}set apiKey(e){if(!e)throw new Error("ApiKey cannot be empty");this._apiKey=e}set token(e){if(!e)throw new Error("Token cannot be empty");this._token=e}get authKey(){return{apiKey:this._apiKey,token:this._token}}onOpenSocket(e,t){e(t)}retry(e,t){if(this.reconnectCount+=1,this.reconnectCount>this.maxReconnectCount)return t&&t({type:exports.NotificationType.Error,data:{error:e}}),console.log("reconnect "+this.reconnectCount),this.timerId&&(clearInterval(this.timerId),this.callbacks=[],this.messages=new Set,this.reconnectTime=this.defaultReconnectTime),void(this.reconnectCount=0);this.unsubscribeStateUpdate(),this.reconnectCount>this.maxReconnectCount||(this.subscribeStateUpdate(Array.from(this.messages),t),this.callbacks.forEach(({callback:e,key:t})=>this.addWsEventListener(e,t)))}openSocket(e,t){const i={baseUrlWs:this.baseUrl,authKeys:this.authKey,onOpen:i=>{this.reconnectCount=0,this.timerId&&(clearInterval(this.timerId),this.reconnectTime=this.defaultReconnectTime),this.onOpenSocket(i,e),t({type:exports.NotificationType.Info,data:{message:"webSocket opened"}})},onMessage:e=>{t(e)},onError:e=>{console.error("Error "+JSON.stringify(e.data)),t(e)},onClose:e=>{console.log("webSocket close",e),t({type:exports.NotificationType.Error,data:{error:"webSocket close"}}),3001!==e?(!this.reconnectCount&&this.retry("webSocket close",t),this.timerId=setTimeout(()=>{this.reconnectCount&&this.retry("webSocket close",t),this.reconnectTime*=1.5},1===this.reconnectCount?this.defaultReconnectTime:Math.round(this.reconnectTime))):this.unsubscribeStateUpdate()}};this.socket=new w(i)}subscribeStateUpdate(e,t){this.messages=new Set([...this.messages,...e]),this.socket?this.socket.send(e):t&&this.openSocket(e,t)}unsubscribeStateUpdate(){this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.socket&&(this.socket.close(),this.socket=null)}isSocketConnected(){return!!this.socket}addWsEventListener(e,t){var i;null===(i=this.socket)||void 0===i||i.addEventListener(e),!this.callbacks.find(e=>e.key===t)&&this.callbacks.push({key:t,callback:e})}removeWsEventListener(e,t){var i;null===(i=this.socket)||void 0===i||i.removeEventListener(e),this.callbacks=this.callbacks.filter(e=>e.key!==t)}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=e=>e instanceof Response?{error:{code:e.status,message:e.statusText}}:e instanceof Error?{error:{code:500,message:e.message}}:{error:{code:500,message:"Unknown error"}},t=e=>{const t=new URLSearchParams;return Object.entries(e).forEach(([e,i])=>{null!=i&&t.append(e,String(i))}),t.toString()},i=async(e,t,i=null,n={},a={})=>{const o={...a},r=i&&"object"==typeof i&&!(e=>e instanceof Blob||e instanceof File||e instanceof ArrayBuffer||e instanceof Uint8Array)(i)&&!(i instanceof FormData);return r&&(o["Content-Type"]="application/json",o.Accept="application/json"),(null==n?void 0:n.apiKey)&&(o["x-api-key"]=n.apiKey),(null==n?void 0:n.token)&&(o["x-auth"]=n.token),s(e,t,r,i,o)},s=async(t,i,s,n=null,a={})=>{try{const o=await fetch(t,{method:i,headers:a,body:n?s?JSON.stringify(n):n:null,cache:"no-store"});if(!o.ok)return e(o);const r=o.headers.get("content-type")||"";if(r.includes("application/octet-stream")||r.includes("application/pdf")||r.includes("image/")){return{data:await o.arrayBuffer()}}const c=await o.text();if(!c)return{data:null};try{return{data:JSON.parse(c)}}catch{return{data:c}}}catch(t){return e(t)}},n=Symbol("apiUrl"),a={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async set(e,t,s){return await i(`${null==this?void 0:this[n]}/state?object=${e}`,"POST",t,s)},async setRef(e,t,s){return await i(`${null==this?void 0:this[n]}/value?object=${e}`,"POST",t,s)},async get(e,s){return await i(`${null==this?void 0:this[n]}/state?${t({...e})}`,"GET",null,s)},async getRef(e,s){return await i(`${null==this?void 0:this[n]}/value?${t({...e})}`,"GET",null,s)},async getVersionList(e,t){return await i(`${null==this?void 0:this[n]}/version?object=${e}`,"GET",null,t)},async getRefList(e,t){return await i(`${null==this?void 0:this[n]}/value?object=${e}`,"GET",null,t)}},o={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async signUp(e){return await i(`${null==this?void 0:this[n]}/owner`,"POST",null,{},{"x-bs-edge-sign":e,"x-bs-edge-sign-nonce":"1","x-bs-edge-sign-timestamp":"1"})},async signInPrincipal(e,t){return await i(`${null==this?void 0:this[n]}/token?principal=${e}`,"POST",null,t)},async creatKeyPrincipal(e,t){return await i(`${null==this?void 0:this[n]}/keypair?principal=${e}`,"POST",null,t)},async deleteKeyPrincipal(e,t,s){return await i(`${null==this?void 0:this[n]}/keypair?principal=${e}`,"DELETE",t,s)},async getListKeyPrincipal(e,t){return await i(`${null==this?void 0:this[n]}/keypair/match?principal=${e}`,"GET",null,t)}},r={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async getList(e){return await i(`${null==this?void 0:this[n]}/delivery/match`,"GET",null,e)},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${e}`,"POST",t,s)},async get(e,t){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${e}`,"GET",null,t)},async delete(e,t){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${e}`,"DELETE",null,t)}},c={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async getList(e){return await i(`${null==this?void 0:this[n]}/policy/match`,"GET",null,e)},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/policy?policy=${e}`,"POST",t,s)},async get(e,t){return await i(`${null==this?void 0:this[n]}/policy?policy=${e}`,"GET",null,t)},async delete(e,t){return await i(`${null==this?void 0:this[n]}/policy?policy=${e}`,"DELETE",null,t)}},l={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async getList(e){return await i(`${null==this?void 0:this[n]}/principal/match`,"GET",null,e)},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/principal?principal=${e}`,"POST",t,s)},async get(e,t){return await i(`${null==this?void 0:this[n]}/principal?principal=${e}`,"GET",null,t)},async delete(e,t){return await i(`${null==this?void 0:this[n]}/principal?principal=${e}`,"DELETE",null,t)}},h={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/object?object=${e}`,"POST",s,t)},async get(e,t){return await i(`${null==this?void 0:this[n]}/object?object=${e}`,"GET",null,t)},async getList(e,t){return await i(`${null==this?void 0:this[n]}/object/match?path=${e}`,"GET",null,t)}},u={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async create(e,t,s){return await i(`${null==this?void 0:this[n]}/apikey?principal=${e}`,"POST",t,s)},async getList(e,t){return await i(`${null==this?void 0:this[n]}/apikey/match?principal=${e}`,"GET",null,t)},async delete(e,t,s){return await i(`${null==this?void 0:this[n]}/apikey?principal=${e}`,"DELETE",t,s)}};var p,y,d,v;exports.NotificationType=void 0,(p=exports.NotificationType||(exports.NotificationType={})).Message="message",p.Info="info",p.Error="error";class w{constructor(e){this.socket=null,this.isConnected=!1,this.messageQueue=[],this.options=e,this.connect()}serverSocket(){var e,t,i,s,n,a,o;const r="undefined"!=typeof require?require("ws"):null;if(!r)throw new Error("ws module is required for Node.js environment. Please install it: npm install ws");const c=(null===(e=this.options.authKeys)||void 0===e?void 0:e.apiKey)?`apiKey=${encodeURIComponent(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)}`:(null===(i=this.options.authKeys)||void 0===i?void 0:i.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new r(`${this.options.baseUrlWs}?${c}`),null===(s=this.socket)||void 0===s||s.addListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(e=>this.send(e)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(n=this.socket)||void 0===n||n.addListener("close",e=>{console.log("Close",JSON.stringify(e)),this.isConnected=!1,this.options.onClose&&this.options.onClose(e)}),null===(a=this.socket)||void 0===a||a.addListener("message",e=>{const t=e?JSON.parse(e.toString()):{};this.options.onMessage({type:exports.NotificationType.Message,data:t})}),null===(o=this.socket)||void 0===o||o.addListener("error",e=>{this.options.onError&&this.options.onError({type:exports.NotificationType.Error,data:e}),console.error("WebSocket error:",e)})}clientSocket(){var e,t,i,s,n,a,o;const r=(null===(e=this.options.authKeys)||void 0===e?void 0:e.apiKey)?`apiKey=${encodeURIComponent(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)}`:(null===(i=this.options.authKeys)||void 0===i?void 0:i.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new WebSocket(`${this.options.baseUrlWs}?${r}`),null===(s=this.socket)||void 0===s||s.addEventListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(e=>this.send(e)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(n=this.socket)||void 0===n||n.addEventListener("close",e=>{console.log("Close",JSON.stringify(e)),this.isConnected=!1,this.options.onClose&&this.options.onClose(e)}),null===(a=this.socket)||void 0===a||a.addEventListener("message",e=>{const t=e.data?JSON.parse(e.data):{};this.options.onMessage({type:exports.NotificationType.Message,data:t})}),null===(o=this.socket)||void 0===o||o.addEventListener("error",e=>{this.options.onError&&this.options.onError({type:exports.NotificationType.Error,data:e}),console.error("WebSocket error:",e)})}connect(){"undefined"==typeof window?this.serverSocket():this.clientSocket()}send(e){this.isConnected&&this.socket?e.forEach(e=>{this.socket&&this.socket.send(`delivery.listen=${e}`),console.log("Message sent, deliveryId:",e)}):e.forEach(e=>{!this.messageQueue.includes(e)&&this.messageQueue.push(e)})}close(){if(this.socket){this.isConnected=!1;const e=this.socket.readyState;e!==WebSocket.OPEN&&e!==WebSocket.CONNECTING&&0!==e&&1!==e||this.socket.close(3001),this.messageQueue=[],this.socket=null}}addEventListener(e){var t,i;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.addListener("message",t=>{const i=t?JSON.parse(t.toString()):{};e({type:exports.NotificationType.Message,data:i})}):null===(i=this.socket)||void 0===i||i.addEventListener("message",t=>{const i=t.data?JSON.parse(t.data):{};e({type:exports.NotificationType.Message,data:i})})}removeEventListener(e){var t,i;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.removeListener("message",t=>e):null===(i=this.socket)||void 0===i||i.removeEventListener("message",t=>e)}}exports.PrincipalType=void 0,(y=exports.PrincipalType||(exports.PrincipalType={}))[y.App=1]="App",y[y.User=2]="User",exports.DeliveryType=void 0,(d=exports.DeliveryType||(exports.DeliveryType={}))[d.WS=1]="WS",d[d.HTTP=2]="HTTP",d[d.FILE=3]="FILE",exports.ObjectType=void 0,(v=exports.ObjectType||(exports.ObjectType={}))[v.Private=1]="Private",v[v.Public=2]="Public",exports.BigStateHttpClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.baseUrl=`${e.baseUrl}/v1`,e){const{token:t,apiKey:i}=e;t&&(this._token=t),i&&(this._apiKey=i)}h.apiUrl=this.baseUrl,a.apiUrl=this.baseUrl,l.apiUrl=this.baseUrl,c.apiUrl=this.baseUrl,r.apiUrl=this.baseUrl,o.apiUrl=this.baseUrl,u.apiUrl=this.baseUrl}set apiKey(e){if(!e)throw new Error("ApiKey cannot be empty");this._apiKey=e}set token(e){if(!e)throw new Error("Token cannot be empty");this._token=e}get authKey(){return{apiKey:this._apiKey,token:this._token}}async signUp(e){return await o.signUp(e)}async creatKeyPrincipal(e){return await o.creatKeyPrincipal(e,this.authKey)}async deleteKeyPrincipal(e,t){return await o.deleteKeyPrincipal(e,t,this.authKey)}async getListKeyPrincipal(e){return await o.getListKeyPrincipal(e,this.authKey)}async signInPrincipal(e){return await o.signInPrincipal(e,this.authKey)}async createApiKey(e,t){return await u.create(e,t,this.authKey)}async deleteApiKey(e,t){return await u.delete(e,t,this.authKey)}async getListApiKey(e){return await u.getList(e,this.authKey)}async objectCreate(e,t){return await h.create(e,this.authKey,t)}async objectGet(e){return await h.get(e,this.authKey)}async objectGetList(e){return await h.getList(e,this.authKey)}async stateSet(e,t){return await a.set(e,t,this.authKey)}async stateSetValueRef(e,t){return await a.setRef(e,t,this.authKey)}async stateGet(e){return await a.get(e,this.authKey)}async stateGetRef(e){return await a.getRef(e,this.authKey)}async getVersionList(e){return await a.getVersionList(e,this.authKey)}async getRefList(e){return await a.getRefList(e,this.authKey)}async principalCreate(e,t){return await l.create(e,t,this.authKey)}async principalGet(e){return await l.get(e,this.authKey)}async principalGetList(){return await l.getList(this.authKey)}async principalDelete(e){return await l.delete(e,this.authKey)}async policyCreate(e,t){return await c.create(e,t,this.authKey)}async policyDelete(e){return await c.delete(e,this.authKey)}async policyGet(e){return await c.get(e,this.authKey)}async policyGetList(){return await c.getList(this.authKey)}async deliveryCreate(e,t){return await r.create(t,e,this.authKey)}async deliveryDelete(e){return await r.delete(e,this.authKey)}async deliveryGet(e){return await r.get(e,this.authKey)}async deliveryGetList(){return await r.getList(this.authKey)}},exports.BigStateWsDeliveryClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.socket=null,this.reconnectCount=0,this.reconnectTime=5e3,this.defaultReconnectTime=5e3,this.maxReconnectCount=11,this.messages=new Set([]),this.callbacks=[],this.timerId=null,this.baseUrl=`${e.baseUrl}/v1`,e){const{maxReconnectCount:t,reconnectTime:i,token:s,apiKey:n}=e;s&&(this._token=s),n&&(this._apiKey=n),t&&(this.maxReconnectCount=t),i&&(this.reconnectTime=i),i&&(this.defaultReconnectTime=i)}}set apiKey(e){if(!e)throw new Error("ApiKey cannot be empty");this._apiKey=e}set token(e){if(!e)throw new Error("Token cannot be empty");this._token=e}get authKey(){return{apiKey:this._apiKey,token:this._token}}onOpenSocket(e,t){e(t)}retry(e,t){if(this.reconnectCount+=1,this.reconnectCount>this.maxReconnectCount)return t&&t({type:exports.NotificationType.Error,data:{error:e}}),console.log("reconnect "+this.reconnectCount),this.timerId&&(clearInterval(this.timerId),this.callbacks=[],this.messages=new Set,this.reconnectTime=this.defaultReconnectTime),void(this.reconnectCount=0);this.unsubscribeStateUpdate(),this.reconnectCount>this.maxReconnectCount||(this.subscribeStateUpdate(Array.from(this.messages),t),this.callbacks.forEach(({callback:e,key:t})=>this.addWsEventListener(e,t)))}openSocket(e,t){const i={baseUrlWs:this.baseUrl,authKeys:this.authKey,onOpen:i=>{this.reconnectCount=0,this.timerId&&(clearInterval(this.timerId),this.reconnectTime=this.defaultReconnectTime),this.onOpenSocket(i,e),t({type:exports.NotificationType.Info,data:{message:"webSocket opened"}})},onMessage:e=>{t(e)},onError:e=>{console.error("Error "+JSON.stringify(e.data)),t(e)},onClose:e=>{console.log("webSocket close",e),t({type:exports.NotificationType.Error,data:{error:"webSocket close"}}),3001!==e?(!this.reconnectCount&&this.retry("webSocket close",t),this.timerId=setTimeout(()=>{this.reconnectCount&&this.retry("webSocket close",t),this.reconnectTime*=1.5},1===this.reconnectCount?this.defaultReconnectTime:Math.round(this.reconnectTime))):this.unsubscribeStateUpdate()}};this.socket=new w(i)}subscribeStateUpdate(e,t){this.messages=new Set([...this.messages,...e]),this.socket?this.socket.send(e):t&&this.openSocket(e,t)}unsubscribeStateUpdate(){this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.socket&&(this.socket.close(),this.socket=null)}isSocketConnected(){return!!this.socket}addWsEventListener(e,t){var i;null===(i=this.socket)||void 0===i||i.addEventListener(e),!this.callbacks.find(e=>e.key===t)&&this.callbacks.push({key:t,callback:e})}removeWsEventListener(e,t){var i;null===(i=this.socket)||void 0===i||i.removeEventListener(e),this.callbacks=this.callbacks.filter(e=>e.key!==t)}};
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/handleError.ts","../src/helpers/common.ts","../src/fetchService.ts","../src/constants/index.ts","../src/stateService/stateService.ts","../src/authService/authService.ts","../src/deliveryService/deliveryService.ts","../src/securityPolicyService/securityPolicyService.ts","../src/securityPrincipalService/securityPrincipalService.ts","../src/objectService/objectService.ts","../src/apiKeyService/apiKeyService.ts","../src/webSocketService/WebSocket.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/objectService/Object.ts","../src/webSocketService/webSocketService.ts","../src/bsClientHttpClient.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorResponse } from './types';\r\n\r\nexport const handleError = (error: any): ErrorResponse => {\r\n\tif (error instanceof Response) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: error.status,\r\n\t\t\t\tmessage: error.statusText,\r\n\t\t\t},\r\n\t\t};\r\n\t} else if (error instanceof Error) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t},\r\n\t\t};\r\n\t} else {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: 'Unknown error',\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n};\r\n","export const isBinaryBody = (body: any): boolean =>\r\n\tbody instanceof Blob ||\r\n\tbody instanceof File ||\r\n\tbody instanceof ArrayBuffer ||\r\n\tbody instanceof Uint8Array;\r\n\r\nexport const toSearchParams = (data: Record<string, unknown>): string => {\r\n\tconst params = new URLSearchParams();\r\n\r\n\tObject.entries(data).forEach(([key, value]) => {\r\n\t\tif (value !== undefined && value !== null) {\r\n\t\t\tparams.append(key, String(value));\r\n\t\t}\r\n\t});\r\n\r\n\treturn params.toString();\r\n};\r\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\nimport { isBinaryBody } from './helpers/common';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nexport const fetchData = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tbody: any = null,\r\n\tauthKeys: AuthKeys = {},\r\n\theadersCustom: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\tconst headers: HeadersType = {\r\n\t\t...headersCustom,\r\n\t};\r\n\r\n\tconst isJson =\r\n\t\tbody &&\r\n\t\ttypeof body === 'object' &&\r\n\t\t!isBinaryBody(body) &&\r\n\t\t!(body instanceof FormData);\r\n\r\n\tif (isJson) {\r\n\t\theaders['Content-Type'] = 'application/json';\r\n\t\theaders['Accept'] = 'application/json';\r\n\t}\r\n\r\n\tif (authKeys?.apiKey) {\r\n\t\theaders['x-api-key'] = authKeys.apiKey;\r\n\t}\r\n\r\n\tif (authKeys?.token) {\r\n\t\theaders['x-auth'] = authKeys.token;\r\n\t}\r\n\r\n\treturn fetchDataClient(baseUrl, method, isJson, body, headers);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tisJson: boolean,\r\n\tbody: any = null,\r\n\theaders: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\ttry {\r\n\t\tconst res = await fetch(baseUrl, {\r\n\t\t\tmethod,\r\n\t\t\theaders,\r\n\t\t\tbody: body ? (isJson ? JSON.stringify(body) : body) : null,\r\n\t\t\tcache: 'no-store',\r\n\t\t});\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn handleError(res);\r\n\t\t}\r\n\r\n\t\tconst contentType = res.headers.get('content-type') || '';\r\n\r\n\t\tif (\r\n\t\t\tcontentType.includes('application/octet-stream') ||\r\n\t\t\tcontentType.includes('application/pdf') ||\r\n\t\t\tcontentType.includes('image/')\r\n\t\t) {\r\n\t\t\tconst buffer = await res.arrayBuffer();\r\n\t\t\treturn { data: buffer };\r\n\t\t}\r\n\r\n\t\tconst text = await res.text();\r\n\r\n\t\tif (!text) {\r\n\t\t\treturn { data: null };\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\treturn { data: JSON.parse(text) };\r\n\t\t} catch {\r\n\t\t\treturn { data: text };\r\n\t\t}\r\n\t} catch (error) {\r\n\t\treturn handleError(error);\r\n\t}\r\n};\r\n","export const _apiUrl = Symbol('apiUrl');\r\n","import {\r\n\tIState,\r\n\tSubjectStateResponse,\r\n\tAuthKeys,\r\n\tSetStateResponse,\r\n\tGetStateRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst stateService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync set<T>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync setRef(\r\n\t\tobject: string,\r\n\t\tdata: File,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get<T>(\r\n\t\tdata: GetStateRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getVersionList<T>(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/version?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRefList(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ValueListRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default stateService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tPublicKey,\r\n\tAuthenticateResponse,\r\n\tCreateKeyPairResponse,\r\n\tRegisterResponse,\r\n\tListPublicKeysResponse,\r\n} from '../types';\r\n\r\nconst authService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/owner`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\t{},\r\n\t\t\t{\r\n\t\t\t\t'x-bs-edge-sign': key,\r\n\t\t\t\t'x-bs-edge-sign-nonce': '1',\r\n\t\t\t\t'x-bs-edge-sign-timestamp': '1',\r\n\t\t\t},\r\n\t\t);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<AuthenticateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync creatKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default authService;\r\n","import {\r\n\tAuthKeys,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { CreateDeliveryRequest } from './Delivery';\r\n\r\nconst deliveryService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListDeliveriesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetDeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default deliveryService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tDefinition,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst securityPolicyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPoliciesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(policy: string, authKeys?: AuthKeys): Promise<GetPolicyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tpolicy: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPolicyService;\r\n","import { AuthKeys, ResponseWitOutData } from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { GetPrincipalResponse, ListPrincipalsResponse } from '../types';\r\nimport { CreatePrincipalRequest } from './Principal';\r\n\r\nconst securityPrincipalService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPrincipalsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetPrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPrincipalService;\r\n","import {\r\n\tResponseWitOutData,\r\n\tAuthKeys,\r\n\tGetObjectResponse,\r\n\tCreateObjectRequest,\r\n\tListObjectsResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\n\r\nconst objectService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\r\n\tasync get(object: string, authKeys: AuthKeys): Promise<GetObjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListObjectsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/match?path=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\nexport default objectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst apiKeyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tprincipal: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default apiKeyService;\r\n","import { AuthKeys } from '../types';\r\n\r\nexport enum NotificationType {\r\n\tMessage = 'message',\r\n\tInfo = 'info',\r\n\tError = 'error',\r\n}\r\n\r\nexport interface MessageData {\r\n\tobject: string;\r\n\tversion: number;\r\n\trec: string;\r\n\tvalue?: any;\r\n}\r\n\r\nexport interface InfoData {\r\n\tmessage: string;\r\n}\r\n\r\nexport interface ErrorData {\r\n\terror: string;\r\n\tcode?: string | number;\r\n}\r\n\r\nexport type Notification =\r\n\t| {\r\n\t\t\ttype: NotificationType.Error;\r\n\t\t\tdata: ErrorData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Info;\r\n\t\t\tdata: InfoData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Message;\r\n\t\t\tdata: MessageData;\r\n\t };\r\n\r\nexport type SendHandler = (deliveries: string[]) => void;\r\nexport type MessageHandler = (message: Notification) => void;\r\nexport type ErrorHandler = (error: any) => void;\r\nexport type OpenHandler = (send: SendHandler) => void;\r\nexport type CloseHandler = (e: number | CloseEvent) => void;\r\n\r\nexport interface WebSocketOptions {\r\n\tbaseUrlWs: string;\r\n\tauthKeys: AuthKeys;\r\n\tonMessage: MessageHandler;\r\n\tonOpen?: OpenHandler;\r\n\tonClose?: CloseHandler;\r\n\tonError?: ErrorHandler;\r\n}\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum PrincipalType {\r\n\tApp = 1,\r\n\tUser = 2,\r\n}\r\n\r\nexport interface CreatePrincipalRequest {\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport interface Principal extends CreatePrincipalRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport type ListPrincipalsResponse = FetchDataResponse<Principal[]>;\r\nexport type GetPrincipalResponse = FetchDataResponse<Principal>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum DeliveryType {\r\n\tWS = 1,\r\n\tHTTP = 2,\r\n\tFILE = 3,\r\n}\r\n\r\nexport interface CreateDeliveryRequest {\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface Delivery extends CreateDeliveryRequest {\r\n\tdelivery: string;\r\n}\r\n\r\nexport type ListDeliveriesResponse = FetchDataResponse<Delivery[]>;\r\nexport type GetDeliveryResponse = FetchDataResponse<Delivery>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum ObjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface InfoObject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n}\r\n\r\nexport interface CreateObjectRequest {\r\n\ttype: ObjectType;\r\n\tttl: number;\r\n\tvalidity: number;\r\n\tversionDeep: number;\r\n\tinfo: InfoObject;\r\n}\r\n\r\nexport interface ObjectResponse extends CreateObjectRequest {\r\n\tobject: string;\r\n}\r\n\r\nexport type GetObjectResponse = FetchDataResponse<ObjectResponse>;\r\nexport type ListObjectsResponse = FetchDataResponse<string[]>;\r\n","import { MessageHandler, WebSocketOptions } from '../types';\r\nimport { MessageData, NotificationType } from './WebSocket';\r\n\r\n// Type for Node.js WebSocket (ws library)\r\ntype WebSocketWs = {\r\n\taddListener(event: string, listener: (...args: any[]) => void): void;\r\n\tremoveListener(event: string, listener: (...args: any[]) => void): void;\r\n\tsend(data: string): void;\r\n\tclose(code?: number): void;\r\n};\r\n\r\n// Declare require for TypeScript (only available in Node.js)\r\ndeclare const require: ((id: string) => any) | undefined;\r\n\r\nclass WebSocketService {\r\n\tprivate socket: WebSocketWs | WebSocket | null = null;\r\n\tprivate isConnected: boolean = false;\r\n\tprivate options: WebSocketOptions;\r\n\tmessageQueue: string[] = [];\r\n\r\n\tconstructor(options: WebSocketOptions) {\r\n\t\tthis.options = options;\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate serverSocket() {\r\n\t\t// Dynamic require to avoid bundling ws in browser builds\r\n\t\tconst Ws = typeof require !== 'undefined' ? require('ws') : null;\r\n\t\tif (!Ws) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t'ws module is required for Node.js environment. Please install it: npm install ws',\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\t\tthis.socket = new Ws(`${this.options.baseUrlWs}?${auth}`) as WebSocketWs;\r\n\r\n\t\tthis.socket?.addListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sids => this.send(sids));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('message', event => {\r\n\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('error', (event: any) => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate clientSocket() {\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\r\n\t\tthis.socket = new WebSocket(\r\n\t\t\t`${this.options.baseUrlWs}?${auth}`,\r\n\t\t) as WebSocket;\r\n\r\n\t\tthis.socket?.addEventListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sid => this.send(sid));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event as CloseEvent);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('message', event => {\r\n\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('error', event => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate connect() {\r\n\t\ttypeof window === 'undefined' ? this.serverSocket() : this.clientSocket();\r\n\t}\r\n\r\n\tsend(deliveryIds: string[]) {\r\n\t\tif (this.isConnected && this.socket) {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\tthis.socket && this.socket.send(`addListenerFor=${deliveryId}`);\r\n\t\t\t\tconsole.log('Message sent, deliveryId:', deliveryId);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\t!this.messageQueue.includes(deliveryId) &&\r\n\t\t\t\t\tthis.messageQueue.push(deliveryId);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tif (this.socket) {\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tconst readyState =\r\n\t\t\t\ttypeof window === 'undefined'\r\n\t\t\t\t\t? (this.socket as any).readyState\r\n\t\t\t\t\t: (this.socket as WebSocket).readyState;\r\n\r\n\t\t\tif (\r\n\t\t\t\treadyState === WebSocket.OPEN ||\r\n\t\t\t\treadyState === WebSocket.CONNECTING ||\r\n\t\t\t\treadyState === 0 ||\r\n\t\t\t\treadyState === 1\r\n\t\t\t) {\r\n\t\t\t\tthis.socket.close(3001);\r\n\t\t\t}\r\n\t\t\tthis.messageQueue = [];\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.addListener('message', event => {\r\n\t\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.addEventListener('message', event => {\r\n\t\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.removeListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.removeEventListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default WebSocketService;\r\n","import {\r\n\tIState,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n\tCreateObjectRequest,\r\n\tGetObjectResponse,\r\n\tListObjectsResponse,\r\n\tSubjectStateResponse,\r\n\tDelivery,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tAuthenticateResponse,\r\n\tGetStateRequest,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\r\n\tDefinition,\r\n\tCreatePrincipalRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tRegisterResponse,\r\n\tCreateKeyPairResponse,\r\n\tPublicKey,\r\n\tListPublicKeysResponse,\r\n} from './types';\r\nimport stateService from './stateService/stateService';\r\nimport authService from './authService/authService';\r\nimport deliveryService from './deliveryService/deliveryService';\r\nimport securityPolicyService from './securityPolicyService/securityPolicyService';\r\nimport securityPrincipalService from './securityPrincipalService/securityPrincipalService';\r\nimport objectService from './objectService/objectService';\r\nimport apiKeyService from './apiKeyService/apiKeyService';\r\n\r\nclass BigStateHttpClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\r\n\tconstructor(data: BSHttpOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t}\r\n\t\tobjectService.apiUrl = this.baseUrl;\r\n\t\tstateService.apiUrl = this.baseUrl;\r\n\t\tsecurityPrincipalService.apiUrl = this.baseUrl;\r\n\t\tsecurityPolicyService.apiUrl = this.baseUrl;\r\n\t\tdeliveryService.apiUrl = this.baseUrl;\r\n\t\tauthService.apiUrl = this.baseUrl;\r\n\t\tapiKeyService.apiUrl = this.baseUrl;\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await authService.signUp(key);\r\n\t}\r\n\r\n\tasync creatKeyPrincipal(principal: string): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.creatKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.deleteKeyPrincipal(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await authService.getListKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync signInPrincipal(principal: string): Promise<AuthenticateResponse> {\r\n\t\treturn await authService.signInPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await apiKeyService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(principal: string): Promise<ListApiKeysResponse> {\r\n\t\treturn await apiKeyService.getList(principal, this.authKey);\r\n\t}\r\n\r\n\tasync objectCreate(\r\n\t\tobject: string,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await objectService.create(object, this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGet(sid: string): Promise<GetObjectResponse> {\r\n\t\treturn await objectService.get(sid, this.authKey);\r\n\t}\r\n\r\n\tasync objectGetList(object: string): Promise<ListObjectsResponse> {\r\n\t\treturn await objectService.getList(object, this.authKey);\r\n\t}\r\n\r\n\tasync stateSet<T = any>(\r\n\t\tsid: string,\r\n\t\tdata: IState<T>,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await stateService.set<T>(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateSetValueRef(\r\n\t\tsid: string,\r\n\t\tdata: File,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await stateService.setRef(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGet<T = any>(\r\n\t\tdata: GetStateRequest,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.get<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGetRef(data: GetStateRefRequest): Promise<GetValueRefResponse> {\r\n\t\treturn await stateService.getRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync getVersionList<T = any>(\r\n\t\tobject: string,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.getVersionList<T>(object, this.authKey);\r\n\t}\r\n\r\n\tasync getRefList(object: string): Promise<ValueListRefResponse> {\r\n\t\treturn await stateService.getRefList(object, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principal: string): Promise<GetPrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principal, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(): Promise<ListPrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync principalDelete(principal: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.delete(principal, this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(policy, data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policy: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policy: string): Promise<GetPolicyResponse> {\r\n\t\treturn await securityPolicyService.get(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(): Promise<ListPoliciesResponse> {\r\n\t\treturn await securityPolicyService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(\r\n\t\tdata: Delivery,\r\n\t\tdelivery: string,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(delivery, data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(delivery: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(delivery: string): Promise<GetDeliveryResponse> {\r\n\t\treturn await deliveryService.get(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(): Promise<ListDeliveriesResponse> {\r\n\t\treturn await deliveryService.getList(this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import { BSDeliveryWsOptions, MessageHandler, SendHandler } from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\r\nimport { Notification, NotificationType } from './webSocketService/WebSocket';\r\n\r\nclass BigStateWsDeliveryClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\tprivate socket: WebSocketService | null = null;\r\n\tprivate reconnectCount = 0;\r\n\tprivate reconnectTime = 5000;\r\n\tprivate defaultReconnectTime = 5000;\r\n\tprivate maxReconnectCount = 11;\r\n\tprivate messages: Set<string> = new Set<string>([]);\r\n\tprivate callbacks: { key: string; callback: MessageHandler }[] = [];\r\n\tprivate timerId: ReturnType<typeof setTimeout> | null = null;\r\n\r\n\tconstructor(data: BSDeliveryWsOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { maxReconnectCount, reconnectTime, token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tmaxReconnectCount && (this.maxReconnectCount = maxReconnectCount);\r\n\t\t\treconnectTime && (this.reconnectTime = reconnectTime);\r\n\t\t\treconnectTime && (this.defaultReconnectTime = reconnectTime);\r\n\t\t}\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tonOpenSocket(send: SendHandler, sids: string[]) {\r\n\t\tsend(sids);\r\n\t}\r\n\r\n\tretry(error: any, onMessage: MessageHandler) {\r\n\t\tthis.reconnectCount += 1;\r\n\t\tif (this.reconnectCount > this.maxReconnectCount) {\r\n\t\t\tonMessage && onMessage({ type: NotificationType.Error, data: { error } });\r\n\t\t\tconsole.log('reconnect ' + this.reconnectCount);\r\n\t\t\tif (this.timerId) {\r\n\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\tthis.callbacks = [];\r\n\t\t\t\tthis.messages = new Set<string>();\r\n\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t}\r\n\t\t\tthis.reconnectCount = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.unsubscribeStateUpdate();\r\n\t\tif (!(this.reconnectCount > this.maxReconnectCount)) {\r\n\t\t\tthis.subscribeStateUpdate(Array.from(this.messages), onMessage);\r\n\t\t\tthis.callbacks.forEach(({ callback, key }) =>\r\n\t\t\t\tthis.addWsEventListener(callback, key),\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\topenSocket(deliveries: string[], onMessage: MessageHandler) {\r\n\t\tconst options = {\r\n\t\t\tbaseUrlWs: this.baseUrl,\r\n\t\t\tauthKeys: this.authKey,\r\n\t\t\tonOpen: (send: SendHandler) => {\r\n\t\t\t\tthis.reconnectCount = 0;\r\n\t\t\t\tif (this.timerId) {\r\n\t\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t\t}\r\n\t\t\t\tthis.onOpenSocket(send, deliveries);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Info,\r\n\t\t\t\t\tdata: { message: 'webSocket opened' },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonMessage: (message: Notification) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (message: Notification) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(message.data));\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonClose: (event: number | CloseEvent) => {\r\n\t\t\t\tconsole.log('webSocket close', event);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Error,\r\n\t\t\t\t\tdata: { error: 'webSocket close' },\r\n\t\t\t\t});\r\n\t\t\t\tif (event !== 3001) {\r\n\t\t\t\t\t!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\tthis.timerId = setTimeout(\r\n\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t!!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\t\t\tthis.reconnectTime *= 1.5;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.reconnectCount === 1\r\n\t\t\t\t\t\t\t? this.defaultReconnectTime\r\n\t\t\t\t\t\t\t: Math.round(this.reconnectTime),\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.unsubscribeStateUpdate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tthis.socket = new WebSocketService(options);\r\n\t}\r\n\r\n\tsubscribeStateUpdate(deliveries: string[], onMessage?: MessageHandler) {\r\n\t\tthis.messages = new Set([...this.messages, ...deliveries]);\r\n\t\tif (!this.socket) {\r\n\t\t\tonMessage && this.openSocket(deliveries, onMessage);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.socket.send(deliveries);\r\n\t}\r\n\r\n\tunsubscribeStateUpdate() {\r\n\t\tif (this.timerId) {\r\n\t\t\tclearTimeout(this.timerId);\r\n\t\t\tthis.timerId = null;\r\n\t\t}\r\n\t\tif (this.socket) {\r\n\t\t\tthis.socket.close();\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\tisSocketConnected(): boolean {\r\n\t\treturn !!this.socket;\r\n\t}\r\n\r\n\taddWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.addEventListener(callback);\r\n\t\t!this.callbacks.find(el => el.key === key) &&\r\n\t\t\tthis.callbacks.push({ key, callback });\r\n\t}\r\n\r\n\tremoveWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.removeEventListener(callback);\r\n\t\tthis.callbacks = this.callbacks.filter(data => data.key !== key);\r\n\t}\r\n}\r\n\r\nexport default BigStateWsDeliveryClient;\r\n"],"names":["handleError","error","Response","code","status","message","statusText","Error","toSearchParams","data","params","URLSearchParams","Object","entries","forEach","key","value","append","String","toString","fetchData","async","baseUrl","method","body","authKeys","headersCustom","headers","isJson","Blob","File","ArrayBuffer","Uint8Array","isBinaryBody","FormData","apiKey","token","fetchDataClient","res","fetch","JSON","stringify","cache","ok","contentType","get","includes","arrayBuffer","text","parse","_apiUrl","Symbol","stateService","apiUrl","this","set","object","setRef","getRef","getVersionList","getRefList","authService","signUp","signInPrincipal","principal","creatKeyPrincipal","deleteKeyPrincipal","getListKeyPrincipal","deliveryService","getList","create","delivery","securityPolicyService","policy","securityPrincipalService","objectService","apiKeyService","NotificationType","PrincipalType","DeliveryType","ObjectType","WebSocketService","constructor","options","socket","isConnected","messageQueue","connect","serverSocket","Ws","require","auth","_a","encodeURIComponent","_b","_c","baseUrlWs","_d","addListener","onOpen","sids","send","console","log","length","_e","event","onClose","_f","newMessage","onMessage","type","Message","_g","onError","clientSocket","WebSocket","addEventListener","sid","window","deliveryIds","deliveryId","push","close","readyState","OPEN","CONNECTING","callback","removeEventListener","removeListener","_apiKey","_token","authKey","createApiKey","deleteApiKey","delete","getListApiKey","objectCreate","objectGet","objectGetList","stateSet","stateSetValueRef","stateGet","stateGetRef","principalCreate","principalGet","principalGetList","principalDelete","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","addWsEventListener","openSocket","deliveries","Info","setTimeout","Math","round","clearTimeout","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/handleError.ts","../src/helpers/common.ts","../src/fetchService.ts","../src/constants/index.ts","../src/stateService/stateService.ts","../src/authService/authService.ts","../src/deliveryService/deliveryService.ts","../src/securityPolicyService/securityPolicyService.ts","../src/securityPrincipalService/securityPrincipalService.ts","../src/objectService/objectService.ts","../src/apiKeyService/apiKeyService.ts","../src/webSocketService/WebSocket.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/objectService/Object.ts","../src/webSocketService/webSocketService.ts","../src/bsClientHttpClient.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorResponse } from './types';\r\n\r\nexport const handleError = (error: any): ErrorResponse => {\r\n\tif (error instanceof Response) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: error.status,\r\n\t\t\t\tmessage: error.statusText,\r\n\t\t\t},\r\n\t\t};\r\n\t} else if (error instanceof Error) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t},\r\n\t\t};\r\n\t} else {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: 'Unknown error',\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n};\r\n","export const isBinaryBody = (body: any): boolean =>\r\n\tbody instanceof Blob ||\r\n\tbody instanceof File ||\r\n\tbody instanceof ArrayBuffer ||\r\n\tbody instanceof Uint8Array;\r\n\r\nexport const toSearchParams = (data: Record<string, unknown>): string => {\r\n\tconst params = new URLSearchParams();\r\n\r\n\tObject.entries(data).forEach(([key, value]) => {\r\n\t\tif (value !== undefined && value !== null) {\r\n\t\t\tparams.append(key, String(value));\r\n\t\t}\r\n\t});\r\n\r\n\treturn params.toString();\r\n};\r\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\nimport { isBinaryBody } from './helpers/common';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nexport const fetchData = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tbody: any = null,\r\n\tauthKeys: AuthKeys = {},\r\n\theadersCustom: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\tconst headers: HeadersType = {\r\n\t\t...headersCustom,\r\n\t};\r\n\r\n\tconst isJson =\r\n\t\tbody &&\r\n\t\ttypeof body === 'object' &&\r\n\t\t!isBinaryBody(body) &&\r\n\t\t!(body instanceof FormData);\r\n\r\n\tif (isJson) {\r\n\t\theaders['Content-Type'] = 'application/json';\r\n\t\theaders['Accept'] = 'application/json';\r\n\t}\r\n\r\n\tif (authKeys?.apiKey) {\r\n\t\theaders['x-api-key'] = authKeys.apiKey;\r\n\t}\r\n\r\n\tif (authKeys?.token) {\r\n\t\theaders['x-auth'] = authKeys.token;\r\n\t}\r\n\r\n\treturn fetchDataClient(baseUrl, method, isJson, body, headers);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tisJson: boolean,\r\n\tbody: any = null,\r\n\theaders: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\ttry {\r\n\t\tconst res = await fetch(baseUrl, {\r\n\t\t\tmethod,\r\n\t\t\theaders,\r\n\t\t\tbody: body ? (isJson ? JSON.stringify(body) : body) : null,\r\n\t\t\tcache: 'no-store',\r\n\t\t});\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn handleError(res);\r\n\t\t}\r\n\r\n\t\tconst contentType = res.headers.get('content-type') || '';\r\n\r\n\t\tif (\r\n\t\t\tcontentType.includes('application/octet-stream') ||\r\n\t\t\tcontentType.includes('application/pdf') ||\r\n\t\t\tcontentType.includes('image/')\r\n\t\t) {\r\n\t\t\tconst buffer = await res.arrayBuffer();\r\n\t\t\treturn { data: buffer };\r\n\t\t}\r\n\r\n\t\tconst text = await res.text();\r\n\r\n\t\tif (!text) {\r\n\t\t\treturn { data: null };\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\treturn { data: JSON.parse(text) };\r\n\t\t} catch {\r\n\t\t\treturn { data: text };\r\n\t\t}\r\n\t} catch (error) {\r\n\t\treturn handleError(error);\r\n\t}\r\n};\r\n","export const _apiUrl = Symbol('apiUrl');\r\n","import {\r\n\tIState,\r\n\tSubjectStateResponse,\r\n\tAuthKeys,\r\n\tSetStateResponse,\r\n\tGetStateRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst stateService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync set<T>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync setRef(\r\n\t\tobject: string,\r\n\t\tdata: File,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get<T>(\r\n\t\tdata: GetStateRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getVersionList<T>(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/version?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRefList(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ValueListRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default stateService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tPublicKey,\r\n\tAuthenticateResponse,\r\n\tCreateKeyPairResponse,\r\n\tRegisterResponse,\r\n\tListPublicKeysResponse,\r\n} from '../types';\r\n\r\nconst authService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/owner`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\t{},\r\n\t\t\t{\r\n\t\t\t\t'x-bs-edge-sign': key,\r\n\t\t\t\t'x-bs-edge-sign-nonce': '1',\r\n\t\t\t\t'x-bs-edge-sign-timestamp': '1',\r\n\t\t\t},\r\n\t\t);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<AuthenticateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync creatKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default authService;\r\n","import {\r\n\tAuthKeys,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { CreateDeliveryRequest } from './Delivery';\r\n\r\nconst deliveryService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListDeliveriesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetDeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default deliveryService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tDefinition,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst securityPolicyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPoliciesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(policy: string, authKeys?: AuthKeys): Promise<GetPolicyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tpolicy: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPolicyService;\r\n","import { AuthKeys, ResponseWitOutData } from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { GetPrincipalResponse, ListPrincipalsResponse } from '../types';\r\nimport { CreatePrincipalRequest } from './Principal';\r\n\r\nconst securityPrincipalService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPrincipalsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetPrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPrincipalService;\r\n","import {\r\n\tResponseWitOutData,\r\n\tAuthKeys,\r\n\tGetObjectResponse,\r\n\tCreateObjectRequest,\r\n\tListObjectsResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\n\r\nconst objectService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\r\n\tasync get(object: string, authKeys: AuthKeys): Promise<GetObjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListObjectsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/match?path=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\nexport default objectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst apiKeyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tprincipal: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default apiKeyService;\r\n","import { AuthKeys } from '../types';\r\n\r\nexport enum NotificationType {\r\n\tMessage = 'message',\r\n\tInfo = 'info',\r\n\tError = 'error',\r\n}\r\n\r\nexport interface MessageData {\r\n\tobject: string;\r\n\tversion: number;\r\n\trec: string;\r\n\tvalue?: any;\r\n\tvalueRef?: string;\r\n}\r\n\r\nexport interface InfoData {\r\n\tmessage: string;\r\n}\r\n\r\nexport interface ErrorData {\r\n\terror: string;\r\n\tcode?: string | number;\r\n}\r\n\r\nexport type Notification =\r\n\t| {\r\n\t\t\ttype: NotificationType.Error;\r\n\t\t\tdata: ErrorData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Info;\r\n\t\t\tdata: InfoData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Message;\r\n\t\t\tdata: MessageData;\r\n\t };\r\n\r\nexport type SendHandler = (deliveries: string[]) => void;\r\nexport type MessageHandler = (message: Notification) => void;\r\nexport type ErrorHandler = (error: any) => void;\r\nexport type OpenHandler = (send: SendHandler) => void;\r\nexport type CloseHandler = (e: number | CloseEvent) => void;\r\n\r\nexport interface WebSocketOptions {\r\n\tbaseUrlWs: string;\r\n\tauthKeys: AuthKeys;\r\n\tonMessage: MessageHandler;\r\n\tonOpen?: OpenHandler;\r\n\tonClose?: CloseHandler;\r\n\tonError?: ErrorHandler;\r\n}\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum PrincipalType {\r\n\tApp = 1,\r\n\tUser = 2,\r\n}\r\n\r\nexport interface CreatePrincipalRequest {\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport interface Principal extends CreatePrincipalRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport type ListPrincipalsResponse = FetchDataResponse<Principal[]>;\r\nexport type GetPrincipalResponse = FetchDataResponse<Principal>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum DeliveryType {\r\n\tWS = 1,\r\n\tHTTP = 2,\r\n\tFILE = 3,\r\n}\r\n\r\nexport interface CreateDeliveryRequest {\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface Delivery extends CreateDeliveryRequest {\r\n\tdelivery: string;\r\n}\r\n\r\nexport type ListDeliveriesResponse = FetchDataResponse<Delivery[]>;\r\nexport type GetDeliveryResponse = FetchDataResponse<Delivery>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum ObjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface InfoObject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n}\r\n\r\nexport interface CreateObjectRequest {\r\n\ttype: ObjectType;\r\n\tttl: number;\r\n\tvalidity: number;\r\n\tversionDeep: number;\r\n\tinfo: InfoObject;\r\n}\r\n\r\nexport interface ObjectResponse extends CreateObjectRequest {\r\n\tobject: string;\r\n}\r\n\r\nexport type GetObjectResponse = FetchDataResponse<ObjectResponse>;\r\nexport type ListObjectsResponse = FetchDataResponse<string[]>;\r\n","import { MessageHandler, WebSocketOptions } from '../types';\r\nimport { MessageData, NotificationType } from './WebSocket';\r\n\r\n// Type for Node.js WebSocket (ws library)\r\ntype WebSocketWs = {\r\n\taddListener(event: string, listener: (...args: any[]) => void): void;\r\n\tremoveListener(event: string, listener: (...args: any[]) => void): void;\r\n\tsend(data: string): void;\r\n\tclose(code?: number): void;\r\n};\r\n\r\n// Declare require for TypeScript (only available in Node.js)\r\ndeclare const require: ((id: string) => any) | undefined;\r\n\r\nclass WebSocketService {\r\n\tprivate socket: WebSocketWs | WebSocket | null = null;\r\n\tprivate isConnected: boolean = false;\r\n\tprivate options: WebSocketOptions;\r\n\tmessageQueue: string[] = [];\r\n\r\n\tconstructor(options: WebSocketOptions) {\r\n\t\tthis.options = options;\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate serverSocket() {\r\n\t\t// Dynamic require to avoid bundling ws in browser builds\r\n\t\tconst Ws = typeof require !== 'undefined' ? require('ws') : null;\r\n\t\tif (!Ws) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t'ws module is required for Node.js environment. Please install it: npm install ws',\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\t\tthis.socket = new Ws(`${this.options.baseUrlWs}?${auth}`) as WebSocketWs;\r\n\r\n\t\tthis.socket?.addListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sids => this.send(sids));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('message', event => {\r\n\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('error', (event: any) => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate clientSocket() {\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\r\n\t\tthis.socket = new WebSocket(\r\n\t\t\t`${this.options.baseUrlWs}?${auth}`,\r\n\t\t) as WebSocket;\r\n\r\n\t\tthis.socket?.addEventListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sid => this.send(sid));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event as CloseEvent);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('message', event => {\r\n\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('error', event => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate connect() {\r\n\t\ttypeof window === 'undefined' ? this.serverSocket() : this.clientSocket();\r\n\t}\r\n\r\n\tsend(deliveryIds: string[]) {\r\n\t\tif (this.isConnected && this.socket) {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\tthis.socket && this.socket.send(`delivery.listen=${deliveryId}`);\r\n\t\t\t\tconsole.log('Message sent, deliveryId:', deliveryId);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\t!this.messageQueue.includes(deliveryId) &&\r\n\t\t\t\t\tthis.messageQueue.push(deliveryId);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tif (this.socket) {\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tconst readyState =\r\n\t\t\t\ttypeof window === 'undefined'\r\n\t\t\t\t\t? (this.socket as any).readyState\r\n\t\t\t\t\t: (this.socket as WebSocket).readyState;\r\n\r\n\t\t\tif (\r\n\t\t\t\treadyState === WebSocket.OPEN ||\r\n\t\t\t\treadyState === WebSocket.CONNECTING ||\r\n\t\t\t\treadyState === 0 ||\r\n\t\t\t\treadyState === 1\r\n\t\t\t) {\r\n\t\t\t\tthis.socket.close(3001);\r\n\t\t\t}\r\n\t\t\tthis.messageQueue = [];\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.addListener('message', event => {\r\n\t\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.addEventListener('message', event => {\r\n\t\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.removeListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.removeEventListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default WebSocketService;\r\n","import {\r\n\tIState,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n\tCreateObjectRequest,\r\n\tGetObjectResponse,\r\n\tListObjectsResponse,\r\n\tSubjectStateResponse,\r\n\tDelivery,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tAuthenticateResponse,\r\n\tGetStateRequest,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\r\n\tDefinition,\r\n\tCreatePrincipalRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tRegisterResponse,\r\n\tCreateKeyPairResponse,\r\n\tPublicKey,\r\n\tListPublicKeysResponse,\r\n} from './types';\r\nimport stateService from './stateService/stateService';\r\nimport authService from './authService/authService';\r\nimport deliveryService from './deliveryService/deliveryService';\r\nimport securityPolicyService from './securityPolicyService/securityPolicyService';\r\nimport securityPrincipalService from './securityPrincipalService/securityPrincipalService';\r\nimport objectService from './objectService/objectService';\r\nimport apiKeyService from './apiKeyService/apiKeyService';\r\n\r\nclass BigStateHttpClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\r\n\tconstructor(data: BSHttpOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t}\r\n\t\tobjectService.apiUrl = this.baseUrl;\r\n\t\tstateService.apiUrl = this.baseUrl;\r\n\t\tsecurityPrincipalService.apiUrl = this.baseUrl;\r\n\t\tsecurityPolicyService.apiUrl = this.baseUrl;\r\n\t\tdeliveryService.apiUrl = this.baseUrl;\r\n\t\tauthService.apiUrl = this.baseUrl;\r\n\t\tapiKeyService.apiUrl = this.baseUrl;\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await authService.signUp(key);\r\n\t}\r\n\r\n\tasync creatKeyPrincipal(principal: string): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.creatKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.deleteKeyPrincipal(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await authService.getListKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync signInPrincipal(principal: string): Promise<AuthenticateResponse> {\r\n\t\treturn await authService.signInPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await apiKeyService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(principal: string): Promise<ListApiKeysResponse> {\r\n\t\treturn await apiKeyService.getList(principal, this.authKey);\r\n\t}\r\n\r\n\tasync objectCreate(\r\n\t\tobject: string,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await objectService.create(object, this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGet(sid: string): Promise<GetObjectResponse> {\r\n\t\treturn await objectService.get(sid, this.authKey);\r\n\t}\r\n\r\n\tasync objectGetList(object: string): Promise<ListObjectsResponse> {\r\n\t\treturn await objectService.getList(object, this.authKey);\r\n\t}\r\n\r\n\tasync stateSet<T = any>(\r\n\t\tsid: string,\r\n\t\tdata: IState<T>,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await stateService.set<T>(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateSetValueRef(\r\n\t\tsid: string,\r\n\t\tdata: File,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await stateService.setRef(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGet<T = any>(\r\n\t\tdata: GetStateRequest,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.get<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGetRef(data: GetStateRefRequest): Promise<GetValueRefResponse> {\r\n\t\treturn await stateService.getRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync getVersionList<T = any>(\r\n\t\tobject: string,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.getVersionList<T>(object, this.authKey);\r\n\t}\r\n\r\n\tasync getRefList(object: string): Promise<ValueListRefResponse> {\r\n\t\treturn await stateService.getRefList(object, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principal: string): Promise<GetPrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principal, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(): Promise<ListPrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync principalDelete(principal: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.delete(principal, this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(policy, data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policy: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policy: string): Promise<GetPolicyResponse> {\r\n\t\treturn await securityPolicyService.get(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(): Promise<ListPoliciesResponse> {\r\n\t\treturn await securityPolicyService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(\r\n\t\tdata: Delivery,\r\n\t\tdelivery: string,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(delivery, data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(delivery: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(delivery: string): Promise<GetDeliveryResponse> {\r\n\t\treturn await deliveryService.get(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(): Promise<ListDeliveriesResponse> {\r\n\t\treturn await deliveryService.getList(this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import { BSDeliveryWsOptions, MessageHandler, SendHandler } from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\r\nimport { Notification, NotificationType } from './webSocketService/WebSocket';\r\n\r\nclass BigStateWsDeliveryClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\tprivate socket: WebSocketService | null = null;\r\n\tprivate reconnectCount = 0;\r\n\tprivate reconnectTime = 5000;\r\n\tprivate defaultReconnectTime = 5000;\r\n\tprivate maxReconnectCount = 11;\r\n\tprivate messages: Set<string> = new Set<string>([]);\r\n\tprivate callbacks: { key: string; callback: MessageHandler }[] = [];\r\n\tprivate timerId: ReturnType<typeof setTimeout> | null = null;\r\n\r\n\tconstructor(data: BSDeliveryWsOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { maxReconnectCount, reconnectTime, token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tmaxReconnectCount && (this.maxReconnectCount = maxReconnectCount);\r\n\t\t\treconnectTime && (this.reconnectTime = reconnectTime);\r\n\t\t\treconnectTime && (this.defaultReconnectTime = reconnectTime);\r\n\t\t}\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tonOpenSocket(send: SendHandler, sids: string[]) {\r\n\t\tsend(sids);\r\n\t}\r\n\r\n\tretry(error: any, onMessage: MessageHandler) {\r\n\t\tthis.reconnectCount += 1;\r\n\t\tif (this.reconnectCount > this.maxReconnectCount) {\r\n\t\t\tonMessage && onMessage({ type: NotificationType.Error, data: { error } });\r\n\t\t\tconsole.log('reconnect ' + this.reconnectCount);\r\n\t\t\tif (this.timerId) {\r\n\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\tthis.callbacks = [];\r\n\t\t\t\tthis.messages = new Set<string>();\r\n\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t}\r\n\t\t\tthis.reconnectCount = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.unsubscribeStateUpdate();\r\n\t\tif (!(this.reconnectCount > this.maxReconnectCount)) {\r\n\t\t\tthis.subscribeStateUpdate(Array.from(this.messages), onMessage);\r\n\t\t\tthis.callbacks.forEach(({ callback, key }) =>\r\n\t\t\t\tthis.addWsEventListener(callback, key),\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\topenSocket(deliveries: string[], onMessage: MessageHandler) {\r\n\t\tconst options = {\r\n\t\t\tbaseUrlWs: this.baseUrl,\r\n\t\t\tauthKeys: this.authKey,\r\n\t\t\tonOpen: (send: SendHandler) => {\r\n\t\t\t\tthis.reconnectCount = 0;\r\n\t\t\t\tif (this.timerId) {\r\n\t\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t\t}\r\n\t\t\t\tthis.onOpenSocket(send, deliveries);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Info,\r\n\t\t\t\t\tdata: { message: 'webSocket opened' },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonMessage: (message: Notification) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (message: Notification) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(message.data));\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonClose: (event: number | CloseEvent) => {\r\n\t\t\t\tconsole.log('webSocket close', event);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Error,\r\n\t\t\t\t\tdata: { error: 'webSocket close' },\r\n\t\t\t\t});\r\n\t\t\t\tif (event !== 3001) {\r\n\t\t\t\t\t!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\tthis.timerId = setTimeout(\r\n\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t!!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\t\t\tthis.reconnectTime *= 1.5;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.reconnectCount === 1\r\n\t\t\t\t\t\t\t? this.defaultReconnectTime\r\n\t\t\t\t\t\t\t: Math.round(this.reconnectTime),\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.unsubscribeStateUpdate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tthis.socket = new WebSocketService(options);\r\n\t}\r\n\r\n\tsubscribeStateUpdate(deliveries: string[], onMessage?: MessageHandler) {\r\n\t\tthis.messages = new Set([...this.messages, ...deliveries]);\r\n\t\tif (!this.socket) {\r\n\t\t\tonMessage && this.openSocket(deliveries, onMessage);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.socket.send(deliveries);\r\n\t}\r\n\r\n\tunsubscribeStateUpdate() {\r\n\t\tif (this.timerId) {\r\n\t\t\tclearTimeout(this.timerId);\r\n\t\t\tthis.timerId = null;\r\n\t\t}\r\n\t\tif (this.socket) {\r\n\t\t\tthis.socket.close();\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\tisSocketConnected(): boolean {\r\n\t\treturn !!this.socket;\r\n\t}\r\n\r\n\taddWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.addEventListener(callback);\r\n\t\t!this.callbacks.find(el => el.key === key) &&\r\n\t\t\tthis.callbacks.push({ key, callback });\r\n\t}\r\n\r\n\tremoveWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.removeEventListener(callback);\r\n\t\tthis.callbacks = this.callbacks.filter(data => data.key !== key);\r\n\t}\r\n}\r\n\r\nexport default BigStateWsDeliveryClient;\r\n"],"names":["handleError","error","Response","code","status","message","statusText","Error","toSearchParams","data","params","URLSearchParams","Object","entries","forEach","key","value","append","String","toString","fetchData","async","baseUrl","method","body","authKeys","headersCustom","headers","isJson","Blob","File","ArrayBuffer","Uint8Array","isBinaryBody","FormData","apiKey","token","fetchDataClient","res","fetch","JSON","stringify","cache","ok","contentType","get","includes","arrayBuffer","text","parse","_apiUrl","Symbol","stateService","apiUrl","this","set","object","setRef","getRef","getVersionList","getRefList","authService","signUp","signInPrincipal","principal","creatKeyPrincipal","deleteKeyPrincipal","getListKeyPrincipal","deliveryService","getList","create","delivery","securityPolicyService","policy","securityPrincipalService","objectService","apiKeyService","NotificationType","PrincipalType","DeliveryType","ObjectType","WebSocketService","constructor","options","socket","isConnected","messageQueue","connect","serverSocket","Ws","require","auth","_a","encodeURIComponent","_b","_c","baseUrlWs","_d","addListener","onOpen","sids","send","console","log","length","_e","event","onClose","_f","newMessage","onMessage","type","Message","_g","onError","clientSocket","WebSocket","addEventListener","sid","window","deliveryIds","deliveryId","push","close","readyState","OPEN","CONNECTING","callback","removeEventListener","removeListener","_apiKey","_token","authKey","createApiKey","deleteApiKey","delete","getListApiKey","objectCreate","objectGet","objectGetList","stateSet","stateSetValueRef","stateGet","stateGetRef","principalCreate","principalGet","principalGetList","principalDelete","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","addWsEventListener","openSocket","deliveries","Info","setTimeout","Math","round","clearTimeout","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"oEAEO,MAAMA,EAAeC,GACvBA,aAAiBC,SACb,CACND,MAAO,CACNE,KAAMF,EAAMG,OACZC,QAASJ,EAAMK,aAGPL,aAAiBM,MACpB,CACNN,MAAO,CACNE,KAAM,IACNE,QAASJ,EAAMI,UAIV,CACNJ,MAAO,CACNE,KAAM,IACNE,QAAS,kBCfAG,EAAkBC,IAC9B,MAAMC,EAAS,IAAIC,gBAQnB,OANAC,OAAOC,QAAQJ,GAAMK,QAAQ,EAAEC,EAAKC,MAC/BA,SACHN,EAAOO,OAAOF,EAAKG,OAAOF,MAIrBN,EAAOS,YCRFC,EAAYC,MACxBC,EACAC,EACAC,EAAY,KACZC,EAAqB,CAAA,EACrBC,EAA6B,MAE7B,MAAMC,EAAuB,IACzBD,GAGEE,EACLJ,GACgB,iBAATA,IDpBmB,CAACA,GAC5BA,aAAgBK,MAChBL,aAAgBM,MAChBN,aAAgBO,aAChBP,aAAgBQ,WCiBdC,CAAaT,MACZA,aAAgBU,UAenB,OAbIN,IACHD,EAAQ,gBAAkB,mBAC1BA,EAAgB,OAAI,qBAGjBF,aAAQ,EAARA,EAAUU,UACbR,EAAQ,aAAeF,EAASU,SAG7BV,aAAQ,EAARA,EAAUW,SACbT,EAAQ,UAAYF,EAASW,OAGvBC,EAAgBf,EAASC,EAAQK,EAAQJ,EAAMG,IAG1CU,EAAkBhB,MAC9BC,EACAC,EACAK,EACAJ,EAAY,KACZG,EAAuB,MAEvB,IACC,MAAMW,QAAYC,MAAMjB,EAAS,CAChCC,SACAI,UACAH,KAAMA,EAAQI,EAASY,KAAKC,UAAUjB,GAAQA,EAAQ,KACtDkB,MAAO,aAGR,IAAKJ,EAAIK,GACR,OAAO3C,EAAYsC,GAGpB,MAAMM,EAAcN,EAAIX,QAAQkB,IAAI,iBAAmB,GAEvD,GACCD,EAAYE,SAAS,6BACrBF,EAAYE,SAAS,oBACrBF,EAAYE,SAAS,UACpB,CAED,MAAO,CAAErC,WADY6B,EAAIS,cAEzB,CAED,MAAMC,QAAaV,EAAIU,OAEvB,IAAKA,EACJ,MAAO,CAAEvC,KAAM,MAGhB,IACC,MAAO,CAAEA,KAAM+B,KAAKS,MAAMD,GAC1B,CAAC,MACD,MAAO,CAAEvC,KAAMuC,EACf,CACD,CAAC,MAAO/C,GACR,OAAOD,EAAYC,EACnB,GCnFWiD,EAAUC,OAAO,UCexBC,EAAe,CACpBF,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,SAAMuC,CACLC,EACA/C,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,mBAAyBM,IACnC,OACA/C,EACAgB,EAED,EACD,YAAMgC,CACLD,EACA/C,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,mBAAyBM,IACnC,OACA/C,EACAgB,EAED,EACD,SAAMoB,CACLpC,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAI,EAAJA,KAAOJ,YAAkB1C,EAAe,IAAKC,MAChD,MACA,KACAgB,EAED,EACD,YAAMiC,CACLjD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAI,EAAJA,KAAOJ,YAAkB1C,EAAe,IAAKC,MAChD,MACA,KACAgB,EAED,EACD,oBAAMkC,CACLH,EACA/B,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,qBAA2BM,IACrC,MACA,KACA/B,EAED,EACD,gBAAMmC,CACLJ,EACA/B,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,mBAAyBM,IACnC,MACA,KACA/B,EAED,GC/EIoC,EAAc,CACnBX,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,YAAM8C,CAAO/C,GACZ,aAAaK,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,WACV,OACA,KACA,GACA,CACC,iBAAkBnC,EAClB,uBAAwB,IACxB,2BAA4B,KAG9B,EACD,qBAAMgD,CACLC,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,sBAA4Bc,IACtC,OACA,KACAvC,EAED,EACD,uBAAMwC,CACLD,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8Bc,IACxC,OACA,KACAvC,EAED,EACD,wBAAMyC,CACLF,EACAvD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8Bc,IACxC,SACAvD,EACAgB,EAED,EACD,yBAAM0C,CACLH,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,8BAAoCc,IAC9C,MACA,KACAvC,EAED,GClEI2C,EAAkB,CACvBlB,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,aAAMqD,CAAQ5C,GACb,aAAaL,EACZ,GAAGkC,kBAAAA,KAAOJ,oBACV,MACA,KACAzB,EAED,EACD,YAAM6C,CACLC,EACA9D,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8BqB,IACxC,OACA9D,EACAgB,EAED,EACD,SAAMoB,CACL0B,EACA9C,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8BqB,IACxC,MACA,KACA9C,EAED,EACD,YAAM,CACL8C,EACA9C,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8BqB,IACxC,SACA,KACA9C,EAED,GCjDI+C,EAAwB,CAC7BtB,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,aAAMqD,CAAQ5C,GACb,aAAaL,EACZ,GAAGkC,kBAAAA,KAAOJ,kBACV,MACA,KACAzB,EAED,EACD,YAAM6C,CACLG,EACAhE,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BuB,IACpC,OACAhE,EACAgB,EAED,EACD,SAAMoB,CAAI4B,EAAgBhD,GACzB,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BuB,IACpC,MACA,KACAhD,EAED,EACD,YAAM,CACLgD,EACAhD,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BuB,IACpC,SACA,KACAhD,EAED,GClDIiD,EAA2B,CAChCxB,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,aAAMqD,CAAQ5C,GACb,aAAaL,EACZ,GAAGkC,kBAAAA,KAAOJ,qBACV,MACA,KACAzB,EAED,EACD,YAAM6C,CACLN,EACAvD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,0BAAgCc,IAC1C,OACAvD,EACAgB,EAED,EACD,SAAMoB,CACLmB,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,0BAAgCc,IAC1C,MACA,KACAvC,EAED,EACD,YAAM,CACLuC,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,0BAAgCc,IAC1C,SACA,KACAvC,EAED,GC7CIkD,EAAgB,CACrBzB,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,YAAMsD,CACLd,EACA/B,EACAhB,GAEA,aAAaW,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BM,IACpC,OACA/C,EACAgB,EAED,EAED,SAAMoB,CAAIW,EAAgB/B,GACzB,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BM,IACpC,MACA,KACA/B,EAED,EACD,aAAM4C,CACLb,EACA/B,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8BM,IACxC,MACA,KACA/B,EAED,GCvCImD,EAAgB,CACrB1B,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,YAAMsD,CACLN,EACAvD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,uBAA6Bc,IACvC,OACAvD,EACAgB,EAED,EACD,aAAM4C,CACLL,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,6BAAmCc,IAC7C,MACA,KACAvC,EAED,EACD,YAAM,CACLuC,EACAvD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,uBAA6Bc,IACvC,SACAvD,EACAgB,EAED,GClDF,IAAYoD,ECAAC,ECAAC,ECAAC,EHAAH,QAIXA,sBAAA,GAJWA,EAAAA,QAAgBA,mBAAhBA,yBAIX,CAAA,IAHA,QAAA,UACAA,EAAA,KAAA,OACAA,EAAA,MAAA,QISD,MAAMI,EAML,WAAAC,CAAYC,GALJ7B,KAAM8B,OAAmC,KACzC9B,KAAW+B,aAAY,EAE/B/B,KAAYgC,aAAa,GAGxBhC,KAAK6B,QAAUA,EACf7B,KAAKiC,SACL,CAEO,YAAAC,qBAEP,MAAMC,EAAwB,oBAAZC,QAA0BA,QAAQ,MAAQ,KAC5D,IAAKD,EACJ,MAAM,IAAIlF,MACT,oFAGF,MAAMoF,GAA4B,QAArBC,EAAAtC,KAAK6B,QAAQ1D,gBAAQ,IAAAmE,OAAA,EAAAA,EAAEzD,QACjC,UAAU0D,mBAA0C,QAAvBC,EAAAxC,KAAK6B,QAAQ1D,gBAAU,IAAAqE,OAAA,EAAAA,EAAA3D,WAC/B,QAArB4D,EAAAzC,KAAK6B,QAAQ1D,gBAAQ,IAAAsE,OAAA,EAAAA,EAAE3D,OACtB,QAAQyD,mBAAmBvC,KAAK6B,QAAQ1D,SAASW,SACjD,GACJkB,KAAK8B,OAAS,IAAIK,EAAG,GAAGnC,KAAK6B,QAAQa,aAAaL,KAEvC,QAAXM,EAAA3C,KAAK8B,cAAM,IAAAa,GAAAA,EAAEC,YAAY,OAAQ,KAChC5C,KAAK+B,aAAc,EACf/B,KAAK6B,QAAQgB,QAChB7C,KAAK6B,QAAQgB,OAAOC,GAAQ9C,KAAK+C,KAAKD,IAEvCE,QAAQC,IAAI,qBACRjD,KAAKgC,aAAakB,SACrBlD,KAAK+C,KAAK/C,KAAKgC,cACfhC,KAAKgC,aAAe,MAIT,QAAbmB,EAAAnD,KAAK8B,cAAQ,IAAAqB,GAAAA,EAAAP,YAAY,QAASQ,IACjCJ,QAAQC,IAAI,QAAS/D,KAAKC,UAAUiE,IACpCpD,KAAK+B,aAAc,EACf/B,KAAK6B,QAAQwB,SAChBrD,KAAK6B,QAAQwB,QAAQD,KAIV,QAAbE,EAAAtD,KAAK8B,cAAQ,IAAAwB,GAAAA,EAAAV,YAAY,UAAWQ,IACnC,MAAMG,EAAaH,EAAQlE,KAAKS,MAAMyD,EAAMvF,YAAc,GAC1DmC,KAAK6B,QAAQ2B,UAAU,CACtBC,KAAMlC,QAAgBA,iBAACmC,QACvBvG,KAAMoG,MAIK,QAAbI,EAAA3D,KAAK8B,cAAQ,IAAA6B,GAAAA,EAAAf,YAAY,QAAUQ,IAC9BpD,KAAK6B,QAAQ+B,SAChB5D,KAAK6B,QAAQ+B,QAAQ,CAAEH,KAAMlC,QAAgBA,iBAACtE,MAAOE,KAAMiG,IAE5DJ,QAAQrG,MAAM,mBAAoByG,IAEnC,CAEO,YAAAS,qBACP,MAAMxB,GAA4B,QAArBC,EAAAtC,KAAK6B,QAAQ1D,gBAAQ,IAAAmE,OAAA,EAAAA,EAAEzD,QACjC,UAAU0D,mBAA0C,QAAvBC,EAAAxC,KAAK6B,QAAQ1D,gBAAU,IAAAqE,OAAA,EAAAA,EAAA3D,WAC/B,QAArB4D,EAAAzC,KAAK6B,QAAQ1D,gBAAQ,IAAAsE,OAAA,EAAAA,EAAE3D,OACtB,QAAQyD,mBAAmBvC,KAAK6B,QAAQ1D,SAASW,SACjD,GAEJkB,KAAK8B,OAAS,IAAIgC,UACjB,GAAG9D,KAAK6B,QAAQa,aAAaL,KAGnB,QAAXM,EAAA3C,KAAK8B,cAAM,IAAAa,GAAAA,EAAEoB,iBAAiB,OAAQ,KACrC/D,KAAK+B,aAAc,EACf/B,KAAK6B,QAAQgB,QAChB7C,KAAK6B,QAAQgB,OAAOmB,GAAOhE,KAAK+C,KAAKiB,IAEtChB,QAAQC,IAAI,qBACRjD,KAAKgC,aAAakB,SACrBlD,KAAK+C,KAAK/C,KAAKgC,cACfhC,KAAKgC,aAAe,MAIT,QAAbmB,EAAAnD,KAAK8B,cAAQ,IAAAqB,GAAAA,EAAAY,iBAAiB,QAASX,IACtCJ,QAAQC,IAAI,QAAS/D,KAAKC,UAAUiE,IACpCpD,KAAK+B,aAAc,EACf/B,KAAK6B,QAAQwB,SAChBrD,KAAK6B,QAAQwB,QAAQD,KAIV,QAAbE,EAAAtD,KAAK8B,cAAQ,IAAAwB,GAAAA,EAAAS,iBAAiB,UAAWX,IACxC,MAAMG,EAAaH,EAAMjG,KAAO+B,KAAKS,MAAMyD,EAAMjG,MAAQ,GACzD6C,KAAK6B,QAAQ2B,UAAU,CACtBC,KAAMlC,QAAgBA,iBAACmC,QACvBvG,KAAMoG,MAIK,QAAbI,EAAA3D,KAAK8B,cAAQ,IAAA6B,GAAAA,EAAAI,iBAAiB,QAASX,IAClCpD,KAAK6B,QAAQ+B,SAChB5D,KAAK6B,QAAQ+B,QAAQ,CAAEH,KAAMlC,QAAgBA,iBAACtE,MAAOE,KAAMiG,IAE5DJ,QAAQrG,MAAM,mBAAoByG,IAEnC,CAEO,OAAAnB,GACW,oBAAXgC,OAAyBjE,KAAKkC,eAAiBlC,KAAK6D,cAC3D,CAED,IAAAd,CAAKmB,GACAlE,KAAK+B,aAAe/B,KAAK8B,OAC5BoC,EAAY1G,QAAQ2G,IACnBnE,KAAK8B,QAAU9B,KAAK8B,OAAOiB,KAAK,mBAAmBoB,KACnDnB,QAAQC,IAAI,4BAA6BkB,KAG1CD,EAAY1G,QAAQ2G,KAClBnE,KAAKgC,aAAaxC,SAAS2E,IAC3BnE,KAAKgC,aAAaoC,KAAKD,IAG1B,CAED,KAAAE,GACC,GAAIrE,KAAK8B,OAAQ,CAChB9B,KAAK+B,aAAc,EACnB,MAAMuC,EAEDtE,KAAK8B,OAAewC,WAIxBA,IAAeR,UAAUS,MACzBD,IAAeR,UAAUU,YACV,IAAfF,GACe,IAAfA,GAEAtE,KAAK8B,OAAOuC,MAAM,MAEnBrE,KAAKgC,aAAe,GACpBhC,KAAK8B,OAAS,IACd,CACD,CAED,gBAAAiC,CAAiBU,WACM,oBAAXR,OACoB,QAA7B3B,EAAAtC,KAAK8B,cAAwB,IAAAQ,GAAAA,EAAAM,YAAY,UAAWQ,IACpD,MAAMG,EAAaH,EAAQlE,KAAKS,MAAMyD,EAAMvF,YAAc,GAC1D4G,EAAS,CACRhB,KAAMlC,QAAgBA,iBAACmC,QACvBvG,KAAMoG,MAIoB,QAA3Bf,EAAAxC,KAAK8B,cAAsB,IAAAU,GAAAA,EAAAuB,iBAAiB,UAAWX,IACvD,MAAMG,EAAaH,EAAMjG,KAAO+B,KAAKS,MAAMyD,EAAMjG,MAAQ,GACzDsH,EAAS,CACRhB,KAAMlC,QAAgBA,iBAACmC,QACvBvG,KAAMoG,KAIT,CAED,mBAAAmB,CAAoBD,WACG,oBAAXR,OACkB,QAA5B3B,EAACtC,KAAK8B,cAAsB,IAAAQ,GAAAA,EAAEqC,eAC7B,UACAvB,GAASqB,GAGgB,QAA1BjC,EAACxC,KAAK8B,cAAoB,IAAAU,GAAAA,EAAEkC,oBAC3B,UACAtB,GAASqB,EAGX,EHhMUjD,QAGXA,mBAAA,GAHWA,EAAAA,QAAaA,gBAAbA,sBAGX,CAAA,IAFAA,EAAA,IAAA,GAAA,MACAA,EAAAA,EAAA,KAAA,GAAA,OCFWC,QAIXA,kBAAA,GAJWA,EAAAA,QAAYA,eAAZA,qBAIX,CAAA,IAHAA,EAAA,GAAA,GAAA,KACAA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,KAAA,GAAA,OCHWC,QAGXA,gBAAA,GAHWA,EAAAA,QAAUA,aAAVA,mBAGX,CAAA,IAFAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,OAAA,GAAA,oCEoCD,MAKC,WAAAE,CAAYzE,GAEX,GANO6C,KAAOhC,QAAW,GAClBgC,KAAO4E,QAAW,GAClB5E,KAAM6E,OAAW,GAGxB7E,KAAKhC,QAAU,GAAGb,EAAKa,aACnBb,EAAM,CACT,MAAM2B,MAAEA,EAAKD,OAAEA,GAAW1B,EAC1B2B,IAAUkB,KAAK6E,OAAS/F,GACxBD,IAAWmB,KAAK4E,QAAU/F,EAC1B,CACDwC,EAActB,OAASC,KAAKhC,QAC5B8B,EAAaC,OAASC,KAAKhC,QAC3BoD,EAAyBrB,OAASC,KAAKhC,QACvCkD,EAAsBnB,OAASC,KAAKhC,QACpC8C,EAAgBf,OAASC,KAAKhC,QAC9BuC,EAAYR,OAASC,KAAKhC,QAC1BsD,EAAcvB,OAASC,KAAKhC,OAC5B,CAED,UAAIa,CAAOnB,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,0BAEjB+C,KAAK4E,QAAUlH,CACf,CAED,SAAIoB,CAAMpB,GACT,IAAKA,EACJ,MAAM,IAAIT,MAAM,yBAEjB+C,KAAK6E,OAASnH,CACd,CAED,WAAYoH,GACX,MAAO,CAAEjG,OAAQmB,KAAK4E,QAAS9F,MAAOkB,KAAK6E,OAC3C,CAED,YAAMrE,CAAO/C,GACZ,aAAa8C,EAAYC,OAAO/C,EAChC,CAED,uBAAMkD,CAAkBD,GACvB,aAAaH,EAAYI,kBAAkBD,EAAWV,KAAK8E,QAC3D,CAED,wBAAMlE,CACLF,EACAvD,GAEA,aAAaoD,EAAYK,mBAAmBF,EAAWvD,EAAM6C,KAAK8E,QAClE,CAED,yBAAMjE,CACLH,GAEA,aAAaH,EAAYM,oBAAoBH,EAAWV,KAAK8E,QAC7D,CAED,qBAAMrE,CAAgBC,GACrB,aAAaH,EAAYE,gBAAgBC,EAAWV,KAAK8E,QACzD,CAED,kBAAMC,CACLrE,EACAvD,GAEA,aAAamE,EAAcN,OAAON,EAAWvD,EAAM6C,KAAK8E,QACxD,CAED,kBAAME,CACLtE,EACAvD,GAEA,aAAamE,EAAc2D,OAAOvE,EAAWvD,EAAM6C,KAAK8E,QACxD,CAED,mBAAMI,CAAcxE,GACnB,aAAaY,EAAcP,QAAQL,EAAWV,KAAK8E,QACnD,CAED,kBAAMK,CACLjF,EACA/C,GAEA,aAAakE,EAAcL,OAAOd,EAAQF,KAAK8E,QAAS3H,EACxD,CAED,eAAMiI,CAAUpB,GACf,aAAa3C,EAAc9B,IAAIyE,EAAKhE,KAAK8E,QACzC,CAED,mBAAMO,CAAcnF,GACnB,aAAamB,EAAcN,QAAQb,EAAQF,KAAK8E,QAChD,CAED,cAAMQ,CACLtB,EACA7G,GAEA,aAAa2C,EAAaG,IAAO+D,EAAK7G,EAAM6C,KAAK8E,QACjD,CAED,sBAAMS,CACLvB,EACA7G,GAEA,aAAa2C,EAAaK,OAAO6D,EAAK7G,EAAM6C,KAAK8E,QACjD,CAED,cAAMU,CACLrI,GAEA,aAAa2C,EAAaP,IAAOpC,EAAM6C,KAAK8E,QAC5C,CAED,iBAAMW,CAAYtI,GACjB,aAAa2C,EAAaM,OAAOjD,EAAM6C,KAAK8E,QAC5C,CAED,oBAAMzE,CACLH,GAEA,aAAaJ,EAAaO,eAAkBH,EAAQF,KAAK8E,QACzD,CAED,gBAAMxE,CAAWJ,GAChB,aAAaJ,EAAaQ,WAAWJ,EAAQF,KAAK8E,QAClD,CAED,qBAAMY,CACLhF,EACAvD,GAEA,aAAaiE,EAAyBJ,OAAON,EAAWvD,EAAM6C,KAAK8E,QACnE,CAED,kBAAMa,CAAajF,GAClB,aAAaU,EAAyB7B,IAAImB,EAAWV,KAAK8E,QAC1D,CAED,sBAAMc,GACL,aAAaxE,EAAyBL,QAAQf,KAAK8E,QACnD,CAED,qBAAMe,CAAgBnF,GACrB,aAAaU,EAAyB6D,OAAOvE,EAAWV,KAAK8E,QAC7D,CAED,kBAAMgB,CACL3E,EACAhE,GAEA,aAAa+D,EAAsBF,OAAOG,EAAQhE,EAAM6C,KAAK8E,QAC7D,CAED,kBAAMiB,CAAa5E,GAClB,aAAaD,EAAsB+D,OAAO9D,EAAQnB,KAAK8E,QACvD,CAED,eAAMkB,CAAU7E,GACf,aAAaD,EAAsB3B,IAAI4B,EAAQnB,KAAK8E,QACpD,CAED,mBAAMmB,GACL,aAAa/E,EAAsBH,QAAQf,KAAK8E,QAChD,CAED,oBAAMoB,CACL/I,EACA8D,GAEA,aAAaH,EAAgBE,OAAOC,EAAU9D,EAAM6C,KAAK8E,QACzD,CAED,oBAAMqB,CAAelF,GACpB,aAAaH,EAAgBmE,OAAOhE,EAAUjB,KAAK8E,QACnD,CAED,iBAAMsB,CAAYnF,GACjB,aAAaH,EAAgBvB,IAAI0B,EAAUjB,KAAK8E,QAChD,CAED,qBAAMuB,GACL,aAAavF,EAAgBC,QAAQf,KAAK8E,QAC1C,oCC9NF,MAaC,WAAAlD,CAAYzE,GAEX,GAdO6C,KAAOhC,QAAW,GAClBgC,KAAO4E,QAAW,GAClB5E,KAAM6E,OAAW,GACjB7E,KAAM8B,OAA4B,KAClC9B,KAAcsG,eAAG,EACjBtG,KAAauG,cAAG,IAChBvG,KAAoBwG,qBAAG,IACvBxG,KAAiByG,kBAAG,GACpBzG,KAAA0G,SAAwB,IAAIC,IAAY,IACxC3G,KAAS4G,UAAgD,GACzD5G,KAAO6G,QAAyC,KAGvD7G,KAAKhC,QAAU,GAAGb,EAAKa,aACnBb,EAAM,CACT,MAAMsJ,kBAAEA,EAAiBF,cAAEA,EAAazH,MAAEA,EAAKD,OAAEA,GAAW1B,EAC5D2B,IAAUkB,KAAK6E,OAAS/F,GACxBD,IAAWmB,KAAK4E,QAAU/F,GAC1B4H,IAAsBzG,KAAKyG,kBAAoBA,GAC/CF,IAAkBvG,KAAKuG,cAAgBA,GACvCA,IAAkBvG,KAAKwG,qBAAuBD,EAC9C,CACD,CAED,UAAI1H,CAAOnB,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,0BAEjB+C,KAAK4E,QAAUlH,CACf,CAED,SAAIoB,CAAMpB,GACT,IAAKA,EACJ,MAAM,IAAIT,MAAM,yBAEjB+C,KAAK6E,OAASnH,CACd,CAED,WAAYoH,GACX,MAAO,CAAEjG,OAAQmB,KAAK4E,QAAS9F,MAAOkB,KAAK6E,OAC3C,CAED,YAAAiC,CAAa/D,EAAmBD,GAC/BC,EAAKD,EACL,CAED,KAAAiE,CAAMpK,EAAY6G,GAEjB,GADAxD,KAAKsG,gBAAkB,EACnBtG,KAAKsG,eAAiBtG,KAAKyG,kBAU9B,OATAjD,GAAaA,EAAU,CAAEC,KAAMlC,QAAgBA,iBAACtE,MAAOE,KAAM,CAAER,WAC/DqG,QAAQC,IAAI,aAAejD,KAAKsG,gBAC5BtG,KAAK6G,UACRG,cAAchH,KAAK6G,SACnB7G,KAAK4G,UAAY,GACjB5G,KAAK0G,SAAW,IAAIC,IACpB3G,KAAKuG,cAAgBvG,KAAKwG,2BAE3BxG,KAAKsG,eAAiB,GAGvBtG,KAAKiH,yBACCjH,KAAKsG,eAAiBtG,KAAKyG,oBAChCzG,KAAKkH,qBAAqBC,MAAMC,KAAKpH,KAAK0G,UAAWlD,GACrDxD,KAAK4G,UAAUpJ,QAAQ,EAAGiH,WAAUhH,SACnCuC,KAAKqH,mBAAmB5C,EAAUhH,IAGpC,CAED,UAAA6J,CAAWC,EAAsB/D,GAChC,MAAM3B,EAAU,CACfa,UAAW1C,KAAKhC,QAChBG,SAAU6B,KAAK8E,QACfjC,OAASE,IACR/C,KAAKsG,eAAiB,EAClBtG,KAAK6G,UACRG,cAAchH,KAAK6G,SACnB7G,KAAKuG,cAAgBvG,KAAKwG,sBAE3BxG,KAAK8G,aAAa/D,EAAMwE,GACxB/D,EAAU,CACTC,KAAMlC,QAAgBA,iBAACiG,KACvBrK,KAAM,CAAEJ,QAAS,uBAGnByG,UAAYzG,IACXyG,EAAUzG,IAEX6G,QAAU7G,IACTiG,QAAQrG,MAAM,SAAWuC,KAAKC,UAAUpC,EAAQI,OAChDqG,EAAUzG,IAEXsG,QAAUD,IACTJ,QAAQC,IAAI,kBAAmBG,GAC/BI,EAAU,CACTC,KAAMlC,QAAgBA,iBAACtE,MACvBE,KAAM,CAAER,MAAO,qBAEF,OAAVyG,IACFpD,KAAKsG,gBAAkBtG,KAAK+G,MAAM,kBAAmBvD,GACtDxD,KAAK6G,QAAUY,WACd,KACGzH,KAAKsG,gBAAkBtG,KAAK+G,MAAM,kBAAmBvD,GACvDxD,KAAKuG,eAAiB,KAEC,IAAxBvG,KAAKsG,eACFtG,KAAKwG,qBACLkB,KAAKC,MAAM3H,KAAKuG,iBAGpBvG,KAAKiH,2BAIRjH,KAAK8B,OAAS,IAAIH,EAAiBE,EACnC,CAED,oBAAAqF,CAAqBK,EAAsB/D,GAC1CxD,KAAK0G,SAAW,IAAIC,IAAI,IAAI3G,KAAK0G,YAAaa,IACzCvH,KAAK8B,OAIV9B,KAAK8B,OAAOiB,KAAKwE,GAHhB/D,GAAaxD,KAAKsH,WAAWC,EAAY/D,EAI1C,CAED,sBAAAyD,GACKjH,KAAK6G,UACRe,aAAa5H,KAAK6G,SAClB7G,KAAK6G,QAAU,MAEZ7G,KAAK8B,SACR9B,KAAK8B,OAAOuC,QACZrE,KAAK8B,OAAS,KAEf,CAED,iBAAA+F,GACC,QAAS7H,KAAK8B,MACd,CAED,kBAAAuF,CAAmB5C,EAA0BhH,SACjC,QAAX6E,EAAAtC,KAAK8B,cAAM,IAAAQ,GAAAA,EAAEyB,iBAAiBU,IAC7BzE,KAAK4G,UAAUkB,KAAKC,GAAMA,EAAGtK,MAAQA,IACrCuC,KAAK4G,UAAUxC,KAAK,CAAE3G,MAAKgH,YAC5B,CAED,qBAAAuD,CAAsBvD,EAA0BhH,SACpC,QAAX6E,EAAAtC,KAAK8B,cAAM,IAAAQ,GAAAA,EAAEoC,oBAAoBD,GACjCzE,KAAK4G,UAAY5G,KAAK4G,UAAUqB,OAAO9K,GAAQA,EAAKM,MAAQA,EAC5D"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const t=t=>t instanceof Response?{error:{code:t.status,message:t.statusText}}:t instanceof Error?{error:{code:500,message:t.message}}:{error:{code:500,message:"Unknown error"}},e=t=>{const e=new URLSearchParams;return Object.entries(t).forEach(([t,i])=>{null!=i&&e.append(t,String(i))}),e.toString()},i=async(t,e,i=null,n={},a={})=>{const r={...a},o=i&&"object"==typeof i&&!(t=>t instanceof Blob||t instanceof File||t instanceof ArrayBuffer||t instanceof Uint8Array)(i)&&!(i instanceof FormData);return o&&(r["Content-Type"]="application/json",r.Accept="application/json"),(null==n?void 0:n.apiKey)&&(r["x-api-key"]=n.apiKey),(null==n?void 0:n.token)&&(r["x-auth"]=n.token),s(t,e,o,i,r)},s=async(e,i,s,n=null,a={})=>{try{const r=await fetch(e,{method:i,headers:a,body:n?s?JSON.stringify(n):n:null,cache:"no-store"});if(!r.ok)return t(r);const o=r.headers.get("content-type")||"";if(o.includes("application/octet-stream")||o.includes("application/pdf")||o.includes("image/")){return{data:await r.arrayBuffer()}}const c=await r.text();if(!c)return{data:null};try{return{data:JSON.parse(c)}}catch{return{data:c}}}catch(e){return t(e)}},n=Symbol("apiUrl"),a={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async set(t,e,s){return await i(`${null==this?void 0:this[n]}/state?object=${t}`,"POST",e,s)},async setRef(t,e,s){return await i(`${null==this?void 0:this[n]}/value?object=${t}`,"POST",e,s)},async get(t,s){return await i(`${null==this?void 0:this[n]}/state?${e({...t})}`,"GET",null,s)},async getRef(t,s){return await i(`${null==this?void 0:this[n]}/value?${e({...t})}`,"GET",null,s)},async getVersionList(t,e){return await i(`${null==this?void 0:this[n]}/version?object=${t}`,"GET",null,e)},async getRefList(t,e){return await i(`${null==this?void 0:this[n]}/value?object=${t}`,"GET",null,e)}},r={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async signUp(t){return await i(`${null==this?void 0:this[n]}/owner`,"POST",null,{},{"x-bs-edge-sign":t,"x-bs-edge-sign-nonce":"1","x-bs-edge-sign-timestamp":"1"})},async signInPrincipal(t,e){return await i(`${null==this?void 0:this[n]}/token?principal=${t}`,"POST",null,e)},async creatKeyPrincipal(t,e){return await i(`${null==this?void 0:this[n]}/keypair?principal=${t}`,"POST",null,e)},async deleteKeyPrincipal(t,e,s){return await i(`${null==this?void 0:this[n]}/keypair?principal=${t}`,"DELETE",e,s)},async getListKeyPrincipal(t,e){return await i(`${null==this?void 0:this[n]}/keypair/match?principal=${t}`,"GET",null,e)}},o={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async getList(t){return await i(`${null==this?void 0:this[n]}/delivery/match`,"GET",null,t)},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${t}`,"POST",e,s)},async get(t,e){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${t}`,"GET",null,e)},async delete(t,e){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${t}`,"DELETE",null,e)}},c={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async getList(t){return await i(`${null==this?void 0:this[n]}/policy/match`,"GET",null,t)},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/policy?policy=${t}`,"POST",e,s)},async get(t,e){return await i(`${null==this?void 0:this[n]}/policy?policy=${t}`,"GET",null,e)},async delete(t,e){return await i(`${null==this?void 0:this[n]}/policy?policy=${t}`,"DELETE",null,e)}},l={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async getList(t){return await i(`${null==this?void 0:this[n]}/principal/match`,"GET",null,t)},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/principal?principal=${t}`,"POST",e,s)},async get(t,e){return await i(`${null==this?void 0:this[n]}/principal?principal=${t}`,"GET",null,e)},async delete(t,e){return await i(`${null==this?void 0:this[n]}/principal?principal=${t}`,"DELETE",null,e)}},h={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/object?object=${t}`,"POST",s,e)},async get(t,e){return await i(`${null==this?void 0:this[n]}/object?object=${t}`,"GET",null,e)},async getList(t,e){return await i(`${null==this?void 0:this[n]}/object/match?path=${t}`,"GET",null,e)}},u={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/apikey?principal=${t}`,"POST",e,s)},async getList(t,e){return await i(`${null==this?void 0:this[n]}/apikey/match?principal=${t}`,"GET",null,e)},async delete(t,e,s){return await i(`${null==this?void 0:this[n]}/apikey?principal=${t}`,"DELETE",e,s)}};class y{constructor(t){if(this.baseUrl="",this._apiKey="",this._token="",this.baseUrl=`${t.baseUrl}/v1`,t){const{token:e,apiKey:i}=t;e&&(this._token=e),i&&(this._apiKey=i)}h.apiUrl=this.baseUrl,a.apiUrl=this.baseUrl,l.apiUrl=this.baseUrl,c.apiUrl=this.baseUrl,o.apiUrl=this.baseUrl,r.apiUrl=this.baseUrl,u.apiUrl=this.baseUrl}set apiKey(t){if(!t)throw new Error("ApiKey cannot be empty");this._apiKey=t}set token(t){if(!t)throw new Error("Token cannot be empty");this._token=t}get authKey(){return{apiKey:this._apiKey,token:this._token}}async signUp(t){return await r.signUp(t)}async creatKeyPrincipal(t){return await r.creatKeyPrincipal(t,this.authKey)}async deleteKeyPrincipal(t,e){return await r.deleteKeyPrincipal(t,e,this.authKey)}async getListKeyPrincipal(t){return await r.getListKeyPrincipal(t,this.authKey)}async signInPrincipal(t){return await r.signInPrincipal(t,this.authKey)}async createApiKey(t,e){return await u.create(t,e,this.authKey)}async deleteApiKey(t,e){return await u.delete(t,e,this.authKey)}async getListApiKey(t){return await u.getList(t,this.authKey)}async objectCreate(t,e){return await h.create(t,this.authKey,e)}async objectGet(t){return await h.get(t,this.authKey)}async objectGetList(t){return await h.getList(t,this.authKey)}async stateSet(t,e){return await a.set(t,e,this.authKey)}async stateSetValueRef(t,e){return await a.setRef(t,e,this.authKey)}async stateGet(t){return await a.get(t,this.authKey)}async stateGetRef(t){return await a.getRef(t,this.authKey)}async getVersionList(t){return await a.getVersionList(t,this.authKey)}async getRefList(t){return await a.getRefList(t,this.authKey)}async principalCreate(t,e){return await l.create(t,e,this.authKey)}async principalGet(t){return await l.get(t,this.authKey)}async principalGetList(){return await l.getList(this.authKey)}async principalDelete(t){return await l.delete(t,this.authKey)}async policyCreate(t,e){return await c.create(t,e,this.authKey)}async policyDelete(t){return await c.delete(t,this.authKey)}async policyGet(t){return await c.get(t,this.authKey)}async policyGetList(){return await c.getList(this.authKey)}async deliveryCreate(t,e){return await o.create(e,t,this.authKey)}async deliveryDelete(t){return await o.delete(t,this.authKey)}async deliveryGet(t){return await o.get(t,this.authKey)}async deliveryGetList(){return await o.getList(this.authKey)}}var p,d,v,w;!function(t){t.Message="message",t.Info="info",t.Error="error"}(p||(p={}));class g{constructor(t){this.socket=null,this.isConnected=!1,this.messageQueue=[],this.options=t,this.connect()}serverSocket(){var t,e,i,s,n,a,r;const o="undefined"!=typeof require?require("ws"):null;if(!o)throw new Error("ws module is required for Node.js environment. Please install it: npm install ws");const c=(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)?`apiKey=${encodeURIComponent(null===(e=this.options.authKeys)||void 0===e?void 0:e.apiKey)}`:(null===(i=this.options.authKeys)||void 0===i?void 0:i.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new o(`${this.options.baseUrlWs}?${c}`),null===(s=this.socket)||void 0===s||s.addListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(t=>this.send(t)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(n=this.socket)||void 0===n||n.addListener("close",t=>{console.log("Close",JSON.stringify(t)),this.isConnected=!1,this.options.onClose&&this.options.onClose(t)}),null===(a=this.socket)||void 0===a||a.addListener("message",t=>{const e=t?JSON.parse(t.toString()):{};this.options.onMessage({type:p.Message,data:e})}),null===(r=this.socket)||void 0===r||r.addListener("error",t=>{this.options.onError&&this.options.onError({type:p.Error,data:t}),console.error("WebSocket error:",t)})}clientSocket(){var t,e,i,s,n,a,r;const o=(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)?`apiKey=${encodeURIComponent(null===(e=this.options.authKeys)||void 0===e?void 0:e.apiKey)}`:(null===(i=this.options.authKeys)||void 0===i?void 0:i.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new WebSocket(`${this.options.baseUrlWs}?${o}`),null===(s=this.socket)||void 0===s||s.addEventListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(t=>this.send(t)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(n=this.socket)||void 0===n||n.addEventListener("close",t=>{console.log("Close",JSON.stringify(t)),this.isConnected=!1,this.options.onClose&&this.options.onClose(t)}),null===(a=this.socket)||void 0===a||a.addEventListener("message",t=>{const e=t.data?JSON.parse(t.data):{};this.options.onMessage({type:p.Message,data:e})}),null===(r=this.socket)||void 0===r||r.addEventListener("error",t=>{this.options.onError&&this.options.onError({type:p.Error,data:t}),console.error("WebSocket error:",t)})}connect(){"undefined"==typeof window?this.serverSocket():this.clientSocket()}send(t){this.isConnected&&this.socket?t.forEach(t=>{this.socket&&this.socket.send(`addListenerFor=${t}`),console.log("Message sent, deliveryId:",t)}):t.forEach(t=>{!this.messageQueue.includes(t)&&this.messageQueue.push(t)})}close(){if(this.socket){this.isConnected=!1;const t=this.socket.readyState;t!==WebSocket.OPEN&&t!==WebSocket.CONNECTING&&0!==t&&1!==t||this.socket.close(3001),this.messageQueue=[],this.socket=null}}addEventListener(t){var e,i;"undefined"==typeof window?null===(e=this.socket)||void 0===e||e.addListener("message",e=>{const i=e?JSON.parse(e.toString()):{};t({type:p.Message,data:i})}):null===(i=this.socket)||void 0===i||i.addEventListener("message",e=>{const i=e.data?JSON.parse(e.data):{};t({type:p.Message,data:i})})}removeEventListener(t){var e,i;"undefined"==typeof window?null===(e=this.socket)||void 0===e||e.removeListener("message",e=>t):null===(i=this.socket)||void 0===i||i.removeEventListener("message",e=>t)}}class k{constructor(t){if(this.baseUrl="",this._apiKey="",this._token="",this.socket=null,this.reconnectCount=0,this.reconnectTime=5e3,this.defaultReconnectTime=5e3,this.maxReconnectCount=11,this.messages=new Set([]),this.callbacks=[],this.timerId=null,this.baseUrl=`${t.baseUrl}/v1`,t){const{maxReconnectCount:e,reconnectTime:i,token:s,apiKey:n}=t;s&&(this._token=s),n&&(this._apiKey=n),e&&(this.maxReconnectCount=e),i&&(this.reconnectTime=i),i&&(this.defaultReconnectTime=i)}}set apiKey(t){if(!t)throw new Error("ApiKey cannot be empty");this._apiKey=t}set token(t){if(!t)throw new Error("Token cannot be empty");this._token=t}get authKey(){return{apiKey:this._apiKey,token:this._token}}onOpenSocket(t,e){t(e)}retry(t,e){if(this.reconnectCount+=1,this.reconnectCount>this.maxReconnectCount)return e&&e({type:p.Error,data:{error:t}}),console.log("reconnect "+this.reconnectCount),this.timerId&&(clearInterval(this.timerId),this.callbacks=[],this.messages=new Set,this.reconnectTime=this.defaultReconnectTime),void(this.reconnectCount=0);this.unsubscribeStateUpdate(),this.reconnectCount>this.maxReconnectCount||(this.subscribeStateUpdate(Array.from(this.messages),e),this.callbacks.forEach(({callback:t,key:e})=>this.addWsEventListener(t,e)))}openSocket(t,e){const i={baseUrlWs:this.baseUrl,authKeys:this.authKey,onOpen:i=>{this.reconnectCount=0,this.timerId&&(clearInterval(this.timerId),this.reconnectTime=this.defaultReconnectTime),this.onOpenSocket(i,t),e({type:p.Info,data:{message:"webSocket opened"}})},onMessage:t=>{e(t)},onError:t=>{console.error("Error "+JSON.stringify(t.data)),e(t)},onClose:t=>{console.log("webSocket close",t),e({type:p.Error,data:{error:"webSocket close"}}),3001!==t?(!this.reconnectCount&&this.retry("webSocket close",e),this.timerId=setTimeout(()=>{this.reconnectCount&&this.retry("webSocket close",e),this.reconnectTime*=1.5},1===this.reconnectCount?this.defaultReconnectTime:Math.round(this.reconnectTime))):this.unsubscribeStateUpdate()}};this.socket=new g(i)}subscribeStateUpdate(t,e){this.messages=new Set([...this.messages,...t]),this.socket?this.socket.send(t):e&&this.openSocket(t,e)}unsubscribeStateUpdate(){this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.socket&&(this.socket.close(),this.socket=null)}isSocketConnected(){return!!this.socket}addWsEventListener(t,e){var i;null===(i=this.socket)||void 0===i||i.addEventListener(t),!this.callbacks.find(t=>t.key===e)&&this.callbacks.push({key:e,callback:t})}removeWsEventListener(t,e){var i;null===(i=this.socket)||void 0===i||i.removeEventListener(t),this.callbacks=this.callbacks.filter(t=>t.key!==e)}}!function(t){t[t.App=1]="App",t[t.User=2]="User"}(d||(d={})),function(t){t[t.WS=1]="WS",t[t.HTTP=2]="HTTP",t[t.FILE=3]="FILE"}(v||(v={})),function(t){t[t.Private=1]="Private",t[t.Public=2]="Public"}(w||(w={}));export{y as BigStateHttpClient,k as BigStateWsDeliveryClient,v as DeliveryType,p as NotificationType,w as ObjectType,d as PrincipalType};
|
|
1
|
+
const t=t=>t instanceof Response?{error:{code:t.status,message:t.statusText}}:t instanceof Error?{error:{code:500,message:t.message}}:{error:{code:500,message:"Unknown error"}},e=t=>{const e=new URLSearchParams;return Object.entries(t).forEach(([t,i])=>{null!=i&&e.append(t,String(i))}),e.toString()},i=async(t,e,i=null,n={},a={})=>{const r={...a},o=i&&"object"==typeof i&&!(t=>t instanceof Blob||t instanceof File||t instanceof ArrayBuffer||t instanceof Uint8Array)(i)&&!(i instanceof FormData);return o&&(r["Content-Type"]="application/json",r.Accept="application/json"),(null==n?void 0:n.apiKey)&&(r["x-api-key"]=n.apiKey),(null==n?void 0:n.token)&&(r["x-auth"]=n.token),s(t,e,o,i,r)},s=async(e,i,s,n=null,a={})=>{try{const r=await fetch(e,{method:i,headers:a,body:n?s?JSON.stringify(n):n:null,cache:"no-store"});if(!r.ok)return t(r);const o=r.headers.get("content-type")||"";if(o.includes("application/octet-stream")||o.includes("application/pdf")||o.includes("image/")){return{data:await r.arrayBuffer()}}const c=await r.text();if(!c)return{data:null};try{return{data:JSON.parse(c)}}catch{return{data:c}}}catch(e){return t(e)}},n=Symbol("apiUrl"),a={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async set(t,e,s){return await i(`${null==this?void 0:this[n]}/state?object=${t}`,"POST",e,s)},async setRef(t,e,s){return await i(`${null==this?void 0:this[n]}/value?object=${t}`,"POST",e,s)},async get(t,s){return await i(`${null==this?void 0:this[n]}/state?${e({...t})}`,"GET",null,s)},async getRef(t,s){return await i(`${null==this?void 0:this[n]}/value?${e({...t})}`,"GET",null,s)},async getVersionList(t,e){return await i(`${null==this?void 0:this[n]}/version?object=${t}`,"GET",null,e)},async getRefList(t,e){return await i(`${null==this?void 0:this[n]}/value?object=${t}`,"GET",null,e)}},r={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async signUp(t){return await i(`${null==this?void 0:this[n]}/owner`,"POST",null,{},{"x-bs-edge-sign":t,"x-bs-edge-sign-nonce":"1","x-bs-edge-sign-timestamp":"1"})},async signInPrincipal(t,e){return await i(`${null==this?void 0:this[n]}/token?principal=${t}`,"POST",null,e)},async creatKeyPrincipal(t,e){return await i(`${null==this?void 0:this[n]}/keypair?principal=${t}`,"POST",null,e)},async deleteKeyPrincipal(t,e,s){return await i(`${null==this?void 0:this[n]}/keypair?principal=${t}`,"DELETE",e,s)},async getListKeyPrincipal(t,e){return await i(`${null==this?void 0:this[n]}/keypair/match?principal=${t}`,"GET",null,e)}},o={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async getList(t){return await i(`${null==this?void 0:this[n]}/delivery/match`,"GET",null,t)},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${t}`,"POST",e,s)},async get(t,e){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${t}`,"GET",null,e)},async delete(t,e){return await i(`${null==this?void 0:this[n]}/delivery?delivery=${t}`,"DELETE",null,e)}},c={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async getList(t){return await i(`${null==this?void 0:this[n]}/policy/match`,"GET",null,t)},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/policy?policy=${t}`,"POST",e,s)},async get(t,e){return await i(`${null==this?void 0:this[n]}/policy?policy=${t}`,"GET",null,e)},async delete(t,e){return await i(`${null==this?void 0:this[n]}/policy?policy=${t}`,"DELETE",null,e)}},l={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async getList(t){return await i(`${null==this?void 0:this[n]}/principal/match`,"GET",null,t)},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/principal?principal=${t}`,"POST",e,s)},async get(t,e){return await i(`${null==this?void 0:this[n]}/principal?principal=${t}`,"GET",null,e)},async delete(t,e){return await i(`${null==this?void 0:this[n]}/principal?principal=${t}`,"DELETE",null,e)}},h={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/object?object=${t}`,"POST",s,e)},async get(t,e){return await i(`${null==this?void 0:this[n]}/object?object=${t}`,"GET",null,e)},async getList(t,e){return await i(`${null==this?void 0:this[n]}/object/match?path=${t}`,"GET",null,e)}},u={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async create(t,e,s){return await i(`${null==this?void 0:this[n]}/apikey?principal=${t}`,"POST",e,s)},async getList(t,e){return await i(`${null==this?void 0:this[n]}/apikey/match?principal=${t}`,"GET",null,e)},async delete(t,e,s){return await i(`${null==this?void 0:this[n]}/apikey?principal=${t}`,"DELETE",e,s)}};class y{constructor(t){if(this.baseUrl="",this._apiKey="",this._token="",this.baseUrl=`${t.baseUrl}/v1`,t){const{token:e,apiKey:i}=t;e&&(this._token=e),i&&(this._apiKey=i)}h.apiUrl=this.baseUrl,a.apiUrl=this.baseUrl,l.apiUrl=this.baseUrl,c.apiUrl=this.baseUrl,o.apiUrl=this.baseUrl,r.apiUrl=this.baseUrl,u.apiUrl=this.baseUrl}set apiKey(t){if(!t)throw new Error("ApiKey cannot be empty");this._apiKey=t}set token(t){if(!t)throw new Error("Token cannot be empty");this._token=t}get authKey(){return{apiKey:this._apiKey,token:this._token}}async signUp(t){return await r.signUp(t)}async creatKeyPrincipal(t){return await r.creatKeyPrincipal(t,this.authKey)}async deleteKeyPrincipal(t,e){return await r.deleteKeyPrincipal(t,e,this.authKey)}async getListKeyPrincipal(t){return await r.getListKeyPrincipal(t,this.authKey)}async signInPrincipal(t){return await r.signInPrincipal(t,this.authKey)}async createApiKey(t,e){return await u.create(t,e,this.authKey)}async deleteApiKey(t,e){return await u.delete(t,e,this.authKey)}async getListApiKey(t){return await u.getList(t,this.authKey)}async objectCreate(t,e){return await h.create(t,this.authKey,e)}async objectGet(t){return await h.get(t,this.authKey)}async objectGetList(t){return await h.getList(t,this.authKey)}async stateSet(t,e){return await a.set(t,e,this.authKey)}async stateSetValueRef(t,e){return await a.setRef(t,e,this.authKey)}async stateGet(t){return await a.get(t,this.authKey)}async stateGetRef(t){return await a.getRef(t,this.authKey)}async getVersionList(t){return await a.getVersionList(t,this.authKey)}async getRefList(t){return await a.getRefList(t,this.authKey)}async principalCreate(t,e){return await l.create(t,e,this.authKey)}async principalGet(t){return await l.get(t,this.authKey)}async principalGetList(){return await l.getList(this.authKey)}async principalDelete(t){return await l.delete(t,this.authKey)}async policyCreate(t,e){return await c.create(t,e,this.authKey)}async policyDelete(t){return await c.delete(t,this.authKey)}async policyGet(t){return await c.get(t,this.authKey)}async policyGetList(){return await c.getList(this.authKey)}async deliveryCreate(t,e){return await o.create(e,t,this.authKey)}async deliveryDelete(t){return await o.delete(t,this.authKey)}async deliveryGet(t){return await o.get(t,this.authKey)}async deliveryGetList(){return await o.getList(this.authKey)}}var p,d,v,w;!function(t){t.Message="message",t.Info="info",t.Error="error"}(p||(p={}));class g{constructor(t){this.socket=null,this.isConnected=!1,this.messageQueue=[],this.options=t,this.connect()}serverSocket(){var t,e,i,s,n,a,r;const o="undefined"!=typeof require?require("ws"):null;if(!o)throw new Error("ws module is required for Node.js environment. Please install it: npm install ws");const c=(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)?`apiKey=${encodeURIComponent(null===(e=this.options.authKeys)||void 0===e?void 0:e.apiKey)}`:(null===(i=this.options.authKeys)||void 0===i?void 0:i.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new o(`${this.options.baseUrlWs}?${c}`),null===(s=this.socket)||void 0===s||s.addListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(t=>this.send(t)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(n=this.socket)||void 0===n||n.addListener("close",t=>{console.log("Close",JSON.stringify(t)),this.isConnected=!1,this.options.onClose&&this.options.onClose(t)}),null===(a=this.socket)||void 0===a||a.addListener("message",t=>{const e=t?JSON.parse(t.toString()):{};this.options.onMessage({type:p.Message,data:e})}),null===(r=this.socket)||void 0===r||r.addListener("error",t=>{this.options.onError&&this.options.onError({type:p.Error,data:t}),console.error("WebSocket error:",t)})}clientSocket(){var t,e,i,s,n,a,r;const o=(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)?`apiKey=${encodeURIComponent(null===(e=this.options.authKeys)||void 0===e?void 0:e.apiKey)}`:(null===(i=this.options.authKeys)||void 0===i?void 0:i.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new WebSocket(`${this.options.baseUrlWs}?${o}`),null===(s=this.socket)||void 0===s||s.addEventListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(t=>this.send(t)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(n=this.socket)||void 0===n||n.addEventListener("close",t=>{console.log("Close",JSON.stringify(t)),this.isConnected=!1,this.options.onClose&&this.options.onClose(t)}),null===(a=this.socket)||void 0===a||a.addEventListener("message",t=>{const e=t.data?JSON.parse(t.data):{};this.options.onMessage({type:p.Message,data:e})}),null===(r=this.socket)||void 0===r||r.addEventListener("error",t=>{this.options.onError&&this.options.onError({type:p.Error,data:t}),console.error("WebSocket error:",t)})}connect(){"undefined"==typeof window?this.serverSocket():this.clientSocket()}send(t){this.isConnected&&this.socket?t.forEach(t=>{this.socket&&this.socket.send(`delivery.listen=${t}`),console.log("Message sent, deliveryId:",t)}):t.forEach(t=>{!this.messageQueue.includes(t)&&this.messageQueue.push(t)})}close(){if(this.socket){this.isConnected=!1;const t=this.socket.readyState;t!==WebSocket.OPEN&&t!==WebSocket.CONNECTING&&0!==t&&1!==t||this.socket.close(3001),this.messageQueue=[],this.socket=null}}addEventListener(t){var e,i;"undefined"==typeof window?null===(e=this.socket)||void 0===e||e.addListener("message",e=>{const i=e?JSON.parse(e.toString()):{};t({type:p.Message,data:i})}):null===(i=this.socket)||void 0===i||i.addEventListener("message",e=>{const i=e.data?JSON.parse(e.data):{};t({type:p.Message,data:i})})}removeEventListener(t){var e,i;"undefined"==typeof window?null===(e=this.socket)||void 0===e||e.removeListener("message",e=>t):null===(i=this.socket)||void 0===i||i.removeEventListener("message",e=>t)}}class k{constructor(t){if(this.baseUrl="",this._apiKey="",this._token="",this.socket=null,this.reconnectCount=0,this.reconnectTime=5e3,this.defaultReconnectTime=5e3,this.maxReconnectCount=11,this.messages=new Set([]),this.callbacks=[],this.timerId=null,this.baseUrl=`${t.baseUrl}/v1`,t){const{maxReconnectCount:e,reconnectTime:i,token:s,apiKey:n}=t;s&&(this._token=s),n&&(this._apiKey=n),e&&(this.maxReconnectCount=e),i&&(this.reconnectTime=i),i&&(this.defaultReconnectTime=i)}}set apiKey(t){if(!t)throw new Error("ApiKey cannot be empty");this._apiKey=t}set token(t){if(!t)throw new Error("Token cannot be empty");this._token=t}get authKey(){return{apiKey:this._apiKey,token:this._token}}onOpenSocket(t,e){t(e)}retry(t,e){if(this.reconnectCount+=1,this.reconnectCount>this.maxReconnectCount)return e&&e({type:p.Error,data:{error:t}}),console.log("reconnect "+this.reconnectCount),this.timerId&&(clearInterval(this.timerId),this.callbacks=[],this.messages=new Set,this.reconnectTime=this.defaultReconnectTime),void(this.reconnectCount=0);this.unsubscribeStateUpdate(),this.reconnectCount>this.maxReconnectCount||(this.subscribeStateUpdate(Array.from(this.messages),e),this.callbacks.forEach(({callback:t,key:e})=>this.addWsEventListener(t,e)))}openSocket(t,e){const i={baseUrlWs:this.baseUrl,authKeys:this.authKey,onOpen:i=>{this.reconnectCount=0,this.timerId&&(clearInterval(this.timerId),this.reconnectTime=this.defaultReconnectTime),this.onOpenSocket(i,t),e({type:p.Info,data:{message:"webSocket opened"}})},onMessage:t=>{e(t)},onError:t=>{console.error("Error "+JSON.stringify(t.data)),e(t)},onClose:t=>{console.log("webSocket close",t),e({type:p.Error,data:{error:"webSocket close"}}),3001!==t?(!this.reconnectCount&&this.retry("webSocket close",e),this.timerId=setTimeout(()=>{this.reconnectCount&&this.retry("webSocket close",e),this.reconnectTime*=1.5},1===this.reconnectCount?this.defaultReconnectTime:Math.round(this.reconnectTime))):this.unsubscribeStateUpdate()}};this.socket=new g(i)}subscribeStateUpdate(t,e){this.messages=new Set([...this.messages,...t]),this.socket?this.socket.send(t):e&&this.openSocket(t,e)}unsubscribeStateUpdate(){this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.socket&&(this.socket.close(),this.socket=null)}isSocketConnected(){return!!this.socket}addWsEventListener(t,e){var i;null===(i=this.socket)||void 0===i||i.addEventListener(t),!this.callbacks.find(t=>t.key===e)&&this.callbacks.push({key:e,callback:t})}removeWsEventListener(t,e){var i;null===(i=this.socket)||void 0===i||i.removeEventListener(t),this.callbacks=this.callbacks.filter(t=>t.key!==e)}}!function(t){t[t.App=1]="App",t[t.User=2]="User"}(d||(d={})),function(t){t[t.WS=1]="WS",t[t.HTTP=2]="HTTP",t[t.FILE=3]="FILE"}(v||(v={})),function(t){t[t.Private=1]="Private",t[t.Public=2]="Public"}(w||(w={}));export{y as BigStateHttpClient,k as BigStateWsDeliveryClient,v as DeliveryType,p as NotificationType,w as ObjectType,d as PrincipalType};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/handleError.ts","../src/helpers/common.ts","../src/fetchService.ts","../src/constants/index.ts","../src/stateService/stateService.ts","../src/authService/authService.ts","../src/deliveryService/deliveryService.ts","../src/securityPolicyService/securityPolicyService.ts","../src/securityPrincipalService/securityPrincipalService.ts","../src/objectService/objectService.ts","../src/apiKeyService/apiKeyService.ts","../src/bsClientHttpClient.ts","../src/webSocketService/WebSocket.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/objectService/Object.ts","../src/webSocketService/webSocketService.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorResponse } from './types';\r\n\r\nexport const handleError = (error: any): ErrorResponse => {\r\n\tif (error instanceof Response) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: error.status,\r\n\t\t\t\tmessage: error.statusText,\r\n\t\t\t},\r\n\t\t};\r\n\t} else if (error instanceof Error) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t},\r\n\t\t};\r\n\t} else {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: 'Unknown error',\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n};\r\n","export const isBinaryBody = (body: any): boolean =>\r\n\tbody instanceof Blob ||\r\n\tbody instanceof File ||\r\n\tbody instanceof ArrayBuffer ||\r\n\tbody instanceof Uint8Array;\r\n\r\nexport const toSearchParams = (data: Record<string, unknown>): string => {\r\n\tconst params = new URLSearchParams();\r\n\r\n\tObject.entries(data).forEach(([key, value]) => {\r\n\t\tif (value !== undefined && value !== null) {\r\n\t\t\tparams.append(key, String(value));\r\n\t\t}\r\n\t});\r\n\r\n\treturn params.toString();\r\n};\r\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\nimport { isBinaryBody } from './helpers/common';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nexport const fetchData = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tbody: any = null,\r\n\tauthKeys: AuthKeys = {},\r\n\theadersCustom: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\tconst headers: HeadersType = {\r\n\t\t...headersCustom,\r\n\t};\r\n\r\n\tconst isJson =\r\n\t\tbody &&\r\n\t\ttypeof body === 'object' &&\r\n\t\t!isBinaryBody(body) &&\r\n\t\t!(body instanceof FormData);\r\n\r\n\tif (isJson) {\r\n\t\theaders['Content-Type'] = 'application/json';\r\n\t\theaders['Accept'] = 'application/json';\r\n\t}\r\n\r\n\tif (authKeys?.apiKey) {\r\n\t\theaders['x-api-key'] = authKeys.apiKey;\r\n\t}\r\n\r\n\tif (authKeys?.token) {\r\n\t\theaders['x-auth'] = authKeys.token;\r\n\t}\r\n\r\n\treturn fetchDataClient(baseUrl, method, isJson, body, headers);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tisJson: boolean,\r\n\tbody: any = null,\r\n\theaders: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\ttry {\r\n\t\tconst res = await fetch(baseUrl, {\r\n\t\t\tmethod,\r\n\t\t\theaders,\r\n\t\t\tbody: body ? (isJson ? JSON.stringify(body) : body) : null,\r\n\t\t\tcache: 'no-store',\r\n\t\t});\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn handleError(res);\r\n\t\t}\r\n\r\n\t\tconst contentType = res.headers.get('content-type') || '';\r\n\r\n\t\tif (\r\n\t\t\tcontentType.includes('application/octet-stream') ||\r\n\t\t\tcontentType.includes('application/pdf') ||\r\n\t\t\tcontentType.includes('image/')\r\n\t\t) {\r\n\t\t\tconst buffer = await res.arrayBuffer();\r\n\t\t\treturn { data: buffer };\r\n\t\t}\r\n\r\n\t\tconst text = await res.text();\r\n\r\n\t\tif (!text) {\r\n\t\t\treturn { data: null };\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\treturn { data: JSON.parse(text) };\r\n\t\t} catch {\r\n\t\t\treturn { data: text };\r\n\t\t}\r\n\t} catch (error) {\r\n\t\treturn handleError(error);\r\n\t}\r\n};\r\n","export const _apiUrl = Symbol('apiUrl');\r\n","import {\r\n\tIState,\r\n\tSubjectStateResponse,\r\n\tAuthKeys,\r\n\tSetStateResponse,\r\n\tGetStateRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst stateService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync set<T>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync setRef(\r\n\t\tobject: string,\r\n\t\tdata: File,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get<T>(\r\n\t\tdata: GetStateRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getVersionList<T>(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/version?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRefList(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ValueListRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default stateService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tPublicKey,\r\n\tAuthenticateResponse,\r\n\tCreateKeyPairResponse,\r\n\tRegisterResponse,\r\n\tListPublicKeysResponse,\r\n} from '../types';\r\n\r\nconst authService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/owner`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\t{},\r\n\t\t\t{\r\n\t\t\t\t'x-bs-edge-sign': key,\r\n\t\t\t\t'x-bs-edge-sign-nonce': '1',\r\n\t\t\t\t'x-bs-edge-sign-timestamp': '1',\r\n\t\t\t},\r\n\t\t);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<AuthenticateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync creatKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default authService;\r\n","import {\r\n\tAuthKeys,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { CreateDeliveryRequest } from './Delivery';\r\n\r\nconst deliveryService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListDeliveriesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetDeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default deliveryService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tDefinition,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst securityPolicyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPoliciesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(policy: string, authKeys?: AuthKeys): Promise<GetPolicyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tpolicy: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPolicyService;\r\n","import { AuthKeys, ResponseWitOutData } from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { GetPrincipalResponse, ListPrincipalsResponse } from '../types';\r\nimport { CreatePrincipalRequest } from './Principal';\r\n\r\nconst securityPrincipalService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPrincipalsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetPrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPrincipalService;\r\n","import {\r\n\tResponseWitOutData,\r\n\tAuthKeys,\r\n\tGetObjectResponse,\r\n\tCreateObjectRequest,\r\n\tListObjectsResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\n\r\nconst objectService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\r\n\tasync get(object: string, authKeys: AuthKeys): Promise<GetObjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListObjectsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/match?path=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\nexport default objectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst apiKeyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tprincipal: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default apiKeyService;\r\n","import {\r\n\tIState,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n\tCreateObjectRequest,\r\n\tGetObjectResponse,\r\n\tListObjectsResponse,\r\n\tSubjectStateResponse,\r\n\tDelivery,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tAuthenticateResponse,\r\n\tGetStateRequest,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\r\n\tDefinition,\r\n\tCreatePrincipalRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tRegisterResponse,\r\n\tCreateKeyPairResponse,\r\n\tPublicKey,\r\n\tListPublicKeysResponse,\r\n} from './types';\r\nimport stateService from './stateService/stateService';\r\nimport authService from './authService/authService';\r\nimport deliveryService from './deliveryService/deliveryService';\r\nimport securityPolicyService from './securityPolicyService/securityPolicyService';\r\nimport securityPrincipalService from './securityPrincipalService/securityPrincipalService';\r\nimport objectService from './objectService/objectService';\r\nimport apiKeyService from './apiKeyService/apiKeyService';\r\n\r\nclass BigStateHttpClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\r\n\tconstructor(data: BSHttpOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t}\r\n\t\tobjectService.apiUrl = this.baseUrl;\r\n\t\tstateService.apiUrl = this.baseUrl;\r\n\t\tsecurityPrincipalService.apiUrl = this.baseUrl;\r\n\t\tsecurityPolicyService.apiUrl = this.baseUrl;\r\n\t\tdeliveryService.apiUrl = this.baseUrl;\r\n\t\tauthService.apiUrl = this.baseUrl;\r\n\t\tapiKeyService.apiUrl = this.baseUrl;\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await authService.signUp(key);\r\n\t}\r\n\r\n\tasync creatKeyPrincipal(principal: string): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.creatKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.deleteKeyPrincipal(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await authService.getListKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync signInPrincipal(principal: string): Promise<AuthenticateResponse> {\r\n\t\treturn await authService.signInPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await apiKeyService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(principal: string): Promise<ListApiKeysResponse> {\r\n\t\treturn await apiKeyService.getList(principal, this.authKey);\r\n\t}\r\n\r\n\tasync objectCreate(\r\n\t\tobject: string,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await objectService.create(object, this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGet(sid: string): Promise<GetObjectResponse> {\r\n\t\treturn await objectService.get(sid, this.authKey);\r\n\t}\r\n\r\n\tasync objectGetList(object: string): Promise<ListObjectsResponse> {\r\n\t\treturn await objectService.getList(object, this.authKey);\r\n\t}\r\n\r\n\tasync stateSet<T = any>(\r\n\t\tsid: string,\r\n\t\tdata: IState<T>,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await stateService.set<T>(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateSetValueRef(\r\n\t\tsid: string,\r\n\t\tdata: File,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await stateService.setRef(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGet<T = any>(\r\n\t\tdata: GetStateRequest,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.get<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGetRef(data: GetStateRefRequest): Promise<GetValueRefResponse> {\r\n\t\treturn await stateService.getRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync getVersionList<T = any>(\r\n\t\tobject: string,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.getVersionList<T>(object, this.authKey);\r\n\t}\r\n\r\n\tasync getRefList(object: string): Promise<ValueListRefResponse> {\r\n\t\treturn await stateService.getRefList(object, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principal: string): Promise<GetPrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principal, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(): Promise<ListPrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync principalDelete(principal: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.delete(principal, this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(policy, data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policy: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policy: string): Promise<GetPolicyResponse> {\r\n\t\treturn await securityPolicyService.get(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(): Promise<ListPoliciesResponse> {\r\n\t\treturn await securityPolicyService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(\r\n\t\tdata: Delivery,\r\n\t\tdelivery: string,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(delivery, data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(delivery: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(delivery: string): Promise<GetDeliveryResponse> {\r\n\t\treturn await deliveryService.get(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(): Promise<ListDeliveriesResponse> {\r\n\t\treturn await deliveryService.getList(this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import { AuthKeys } from '../types';\r\n\r\nexport enum NotificationType {\r\n\tMessage = 'message',\r\n\tInfo = 'info',\r\n\tError = 'error',\r\n}\r\n\r\nexport interface MessageData {\r\n\tobject: string;\r\n\tversion: number;\r\n\trec: string;\r\n\tvalue?: any;\r\n}\r\n\r\nexport interface InfoData {\r\n\tmessage: string;\r\n}\r\n\r\nexport interface ErrorData {\r\n\terror: string;\r\n\tcode?: string | number;\r\n}\r\n\r\nexport type Notification =\r\n\t| {\r\n\t\t\ttype: NotificationType.Error;\r\n\t\t\tdata: ErrorData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Info;\r\n\t\t\tdata: InfoData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Message;\r\n\t\t\tdata: MessageData;\r\n\t };\r\n\r\nexport type SendHandler = (deliveries: string[]) => void;\r\nexport type MessageHandler = (message: Notification) => void;\r\nexport type ErrorHandler = (error: any) => void;\r\nexport type OpenHandler = (send: SendHandler) => void;\r\nexport type CloseHandler = (e: number | CloseEvent) => void;\r\n\r\nexport interface WebSocketOptions {\r\n\tbaseUrlWs: string;\r\n\tauthKeys: AuthKeys;\r\n\tonMessage: MessageHandler;\r\n\tonOpen?: OpenHandler;\r\n\tonClose?: CloseHandler;\r\n\tonError?: ErrorHandler;\r\n}\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum PrincipalType {\r\n\tApp = 1,\r\n\tUser = 2,\r\n}\r\n\r\nexport interface CreatePrincipalRequest {\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport interface Principal extends CreatePrincipalRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport type ListPrincipalsResponse = FetchDataResponse<Principal[]>;\r\nexport type GetPrincipalResponse = FetchDataResponse<Principal>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum DeliveryType {\r\n\tWS = 1,\r\n\tHTTP = 2,\r\n\tFILE = 3,\r\n}\r\n\r\nexport interface CreateDeliveryRequest {\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface Delivery extends CreateDeliveryRequest {\r\n\tdelivery: string;\r\n}\r\n\r\nexport type ListDeliveriesResponse = FetchDataResponse<Delivery[]>;\r\nexport type GetDeliveryResponse = FetchDataResponse<Delivery>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum ObjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface InfoObject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n}\r\n\r\nexport interface CreateObjectRequest {\r\n\ttype: ObjectType;\r\n\tttl: number;\r\n\tvalidity: number;\r\n\tversionDeep: number;\r\n\tinfo: InfoObject;\r\n}\r\n\r\nexport interface ObjectResponse extends CreateObjectRequest {\r\n\tobject: string;\r\n}\r\n\r\nexport type GetObjectResponse = FetchDataResponse<ObjectResponse>;\r\nexport type ListObjectsResponse = FetchDataResponse<string[]>;\r\n","import { MessageHandler, WebSocketOptions } from '../types';\r\nimport { MessageData, NotificationType } from './WebSocket';\r\n\r\n// Type for Node.js WebSocket (ws library)\r\ntype WebSocketWs = {\r\n\taddListener(event: string, listener: (...args: any[]) => void): void;\r\n\tremoveListener(event: string, listener: (...args: any[]) => void): void;\r\n\tsend(data: string): void;\r\n\tclose(code?: number): void;\r\n};\r\n\r\n// Declare require for TypeScript (only available in Node.js)\r\ndeclare const require: ((id: string) => any) | undefined;\r\n\r\nclass WebSocketService {\r\n\tprivate socket: WebSocketWs | WebSocket | null = null;\r\n\tprivate isConnected: boolean = false;\r\n\tprivate options: WebSocketOptions;\r\n\tmessageQueue: string[] = [];\r\n\r\n\tconstructor(options: WebSocketOptions) {\r\n\t\tthis.options = options;\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate serverSocket() {\r\n\t\t// Dynamic require to avoid bundling ws in browser builds\r\n\t\tconst Ws = typeof require !== 'undefined' ? require('ws') : null;\r\n\t\tif (!Ws) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t'ws module is required for Node.js environment. Please install it: npm install ws',\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\t\tthis.socket = new Ws(`${this.options.baseUrlWs}?${auth}`) as WebSocketWs;\r\n\r\n\t\tthis.socket?.addListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sids => this.send(sids));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('message', event => {\r\n\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('error', (event: any) => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate clientSocket() {\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\r\n\t\tthis.socket = new WebSocket(\r\n\t\t\t`${this.options.baseUrlWs}?${auth}`,\r\n\t\t) as WebSocket;\r\n\r\n\t\tthis.socket?.addEventListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sid => this.send(sid));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event as CloseEvent);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('message', event => {\r\n\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('error', event => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate connect() {\r\n\t\ttypeof window === 'undefined' ? this.serverSocket() : this.clientSocket();\r\n\t}\r\n\r\n\tsend(deliveryIds: string[]) {\r\n\t\tif (this.isConnected && this.socket) {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\tthis.socket && this.socket.send(`addListenerFor=${deliveryId}`);\r\n\t\t\t\tconsole.log('Message sent, deliveryId:', deliveryId);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\t!this.messageQueue.includes(deliveryId) &&\r\n\t\t\t\t\tthis.messageQueue.push(deliveryId);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tif (this.socket) {\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tconst readyState =\r\n\t\t\t\ttypeof window === 'undefined'\r\n\t\t\t\t\t? (this.socket as any).readyState\r\n\t\t\t\t\t: (this.socket as WebSocket).readyState;\r\n\r\n\t\t\tif (\r\n\t\t\t\treadyState === WebSocket.OPEN ||\r\n\t\t\t\treadyState === WebSocket.CONNECTING ||\r\n\t\t\t\treadyState === 0 ||\r\n\t\t\t\treadyState === 1\r\n\t\t\t) {\r\n\t\t\t\tthis.socket.close(3001);\r\n\t\t\t}\r\n\t\t\tthis.messageQueue = [];\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.addListener('message', event => {\r\n\t\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.addEventListener('message', event => {\r\n\t\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.removeListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.removeEventListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default WebSocketService;\r\n","import { BSDeliveryWsOptions, MessageHandler, SendHandler } from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\r\nimport { Notification, NotificationType } from './webSocketService/WebSocket';\r\n\r\nclass BigStateWsDeliveryClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\tprivate socket: WebSocketService | null = null;\r\n\tprivate reconnectCount = 0;\r\n\tprivate reconnectTime = 5000;\r\n\tprivate defaultReconnectTime = 5000;\r\n\tprivate maxReconnectCount = 11;\r\n\tprivate messages: Set<string> = new Set<string>([]);\r\n\tprivate callbacks: { key: string; callback: MessageHandler }[] = [];\r\n\tprivate timerId: ReturnType<typeof setTimeout> | null = null;\r\n\r\n\tconstructor(data: BSDeliveryWsOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { maxReconnectCount, reconnectTime, token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tmaxReconnectCount && (this.maxReconnectCount = maxReconnectCount);\r\n\t\t\treconnectTime && (this.reconnectTime = reconnectTime);\r\n\t\t\treconnectTime && (this.defaultReconnectTime = reconnectTime);\r\n\t\t}\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tonOpenSocket(send: SendHandler, sids: string[]) {\r\n\t\tsend(sids);\r\n\t}\r\n\r\n\tretry(error: any, onMessage: MessageHandler) {\r\n\t\tthis.reconnectCount += 1;\r\n\t\tif (this.reconnectCount > this.maxReconnectCount) {\r\n\t\t\tonMessage && onMessage({ type: NotificationType.Error, data: { error } });\r\n\t\t\tconsole.log('reconnect ' + this.reconnectCount);\r\n\t\t\tif (this.timerId) {\r\n\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\tthis.callbacks = [];\r\n\t\t\t\tthis.messages = new Set<string>();\r\n\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t}\r\n\t\t\tthis.reconnectCount = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.unsubscribeStateUpdate();\r\n\t\tif (!(this.reconnectCount > this.maxReconnectCount)) {\r\n\t\t\tthis.subscribeStateUpdate(Array.from(this.messages), onMessage);\r\n\t\t\tthis.callbacks.forEach(({ callback, key }) =>\r\n\t\t\t\tthis.addWsEventListener(callback, key),\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\topenSocket(deliveries: string[], onMessage: MessageHandler) {\r\n\t\tconst options = {\r\n\t\t\tbaseUrlWs: this.baseUrl,\r\n\t\t\tauthKeys: this.authKey,\r\n\t\t\tonOpen: (send: SendHandler) => {\r\n\t\t\t\tthis.reconnectCount = 0;\r\n\t\t\t\tif (this.timerId) {\r\n\t\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t\t}\r\n\t\t\t\tthis.onOpenSocket(send, deliveries);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Info,\r\n\t\t\t\t\tdata: { message: 'webSocket opened' },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonMessage: (message: Notification) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (message: Notification) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(message.data));\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonClose: (event: number | CloseEvent) => {\r\n\t\t\t\tconsole.log('webSocket close', event);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Error,\r\n\t\t\t\t\tdata: { error: 'webSocket close' },\r\n\t\t\t\t});\r\n\t\t\t\tif (event !== 3001) {\r\n\t\t\t\t\t!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\tthis.timerId = setTimeout(\r\n\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t!!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\t\t\tthis.reconnectTime *= 1.5;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.reconnectCount === 1\r\n\t\t\t\t\t\t\t? this.defaultReconnectTime\r\n\t\t\t\t\t\t\t: Math.round(this.reconnectTime),\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.unsubscribeStateUpdate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tthis.socket = new WebSocketService(options);\r\n\t}\r\n\r\n\tsubscribeStateUpdate(deliveries: string[], onMessage?: MessageHandler) {\r\n\t\tthis.messages = new Set([...this.messages, ...deliveries]);\r\n\t\tif (!this.socket) {\r\n\t\t\tonMessage && this.openSocket(deliveries, onMessage);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.socket.send(deliveries);\r\n\t}\r\n\r\n\tunsubscribeStateUpdate() {\r\n\t\tif (this.timerId) {\r\n\t\t\tclearTimeout(this.timerId);\r\n\t\t\tthis.timerId = null;\r\n\t\t}\r\n\t\tif (this.socket) {\r\n\t\t\tthis.socket.close();\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\tisSocketConnected(): boolean {\r\n\t\treturn !!this.socket;\r\n\t}\r\n\r\n\taddWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.addEventListener(callback);\r\n\t\t!this.callbacks.find(el => el.key === key) &&\r\n\t\t\tthis.callbacks.push({ key, callback });\r\n\t}\r\n\r\n\tremoveWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.removeEventListener(callback);\r\n\t\tthis.callbacks = this.callbacks.filter(data => data.key !== key);\r\n\t}\r\n}\r\n\r\nexport default BigStateWsDeliveryClient;\r\n"],"names":["handleError","error","Response","code","status","message","statusText","Error","toSearchParams","data","params","URLSearchParams","Object","entries","forEach","key","value","append","String","toString","fetchData","async","baseUrl","method","body","authKeys","headersCustom","headers","isJson","Blob","File","ArrayBuffer","Uint8Array","isBinaryBody","FormData","apiKey","token","fetchDataClient","res","fetch","JSON","stringify","cache","ok","contentType","get","includes","arrayBuffer","text","parse","_apiUrl","Symbol","stateService","apiUrl","this","set","object","setRef","getRef","getVersionList","getRefList","authService","signUp","signInPrincipal","principal","creatKeyPrincipal","deleteKeyPrincipal","getListKeyPrincipal","deliveryService","getList","create","delivery","securityPolicyService","policy","securityPrincipalService","objectService","apiKeyService","BigStateHttpClient","constructor","_apiKey","_token","authKey","createApiKey","deleteApiKey","delete","getListApiKey","objectCreate","objectGet","sid","objectGetList","stateSet","stateSetValueRef","stateGet","stateGetRef","principalCreate","principalGet","principalGetList","principalDelete","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","NotificationType","PrincipalType","DeliveryType","ObjectType","WebSocketService","options","socket","isConnected","messageQueue","connect","serverSocket","Ws","require","auth","_a","encodeURIComponent","_b","_c","baseUrlWs","_d","addListener","onOpen","sids","send","console","log","length","_e","event","onClose","_f","newMessage","onMessage","type","Message","_g","onError","clientSocket","WebSocket","addEventListener","window","deliveryIds","deliveryId","push","close","readyState","OPEN","CONNECTING","callback","removeEventListener","removeListener","BigStateWsDeliveryClient","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","addWsEventListener","openSocket","deliveries","Info","setTimeout","Math","round","clearTimeout","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/handleError.ts","../src/helpers/common.ts","../src/fetchService.ts","../src/constants/index.ts","../src/stateService/stateService.ts","../src/authService/authService.ts","../src/deliveryService/deliveryService.ts","../src/securityPolicyService/securityPolicyService.ts","../src/securityPrincipalService/securityPrincipalService.ts","../src/objectService/objectService.ts","../src/apiKeyService/apiKeyService.ts","../src/bsClientHttpClient.ts","../src/webSocketService/WebSocket.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/objectService/Object.ts","../src/webSocketService/webSocketService.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorResponse } from './types';\r\n\r\nexport const handleError = (error: any): ErrorResponse => {\r\n\tif (error instanceof Response) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: error.status,\r\n\t\t\t\tmessage: error.statusText,\r\n\t\t\t},\r\n\t\t};\r\n\t} else if (error instanceof Error) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t},\r\n\t\t};\r\n\t} else {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: 'Unknown error',\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n};\r\n","export const isBinaryBody = (body: any): boolean =>\r\n\tbody instanceof Blob ||\r\n\tbody instanceof File ||\r\n\tbody instanceof ArrayBuffer ||\r\n\tbody instanceof Uint8Array;\r\n\r\nexport const toSearchParams = (data: Record<string, unknown>): string => {\r\n\tconst params = new URLSearchParams();\r\n\r\n\tObject.entries(data).forEach(([key, value]) => {\r\n\t\tif (value !== undefined && value !== null) {\r\n\t\t\tparams.append(key, String(value));\r\n\t\t}\r\n\t});\r\n\r\n\treturn params.toString();\r\n};\r\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\nimport { isBinaryBody } from './helpers/common';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nexport const fetchData = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tbody: any = null,\r\n\tauthKeys: AuthKeys = {},\r\n\theadersCustom: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\tconst headers: HeadersType = {\r\n\t\t...headersCustom,\r\n\t};\r\n\r\n\tconst isJson =\r\n\t\tbody &&\r\n\t\ttypeof body === 'object' &&\r\n\t\t!isBinaryBody(body) &&\r\n\t\t!(body instanceof FormData);\r\n\r\n\tif (isJson) {\r\n\t\theaders['Content-Type'] = 'application/json';\r\n\t\theaders['Accept'] = 'application/json';\r\n\t}\r\n\r\n\tif (authKeys?.apiKey) {\r\n\t\theaders['x-api-key'] = authKeys.apiKey;\r\n\t}\r\n\r\n\tif (authKeys?.token) {\r\n\t\theaders['x-auth'] = authKeys.token;\r\n\t}\r\n\r\n\treturn fetchDataClient(baseUrl, method, isJson, body, headers);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tisJson: boolean,\r\n\tbody: any = null,\r\n\theaders: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\ttry {\r\n\t\tconst res = await fetch(baseUrl, {\r\n\t\t\tmethod,\r\n\t\t\theaders,\r\n\t\t\tbody: body ? (isJson ? JSON.stringify(body) : body) : null,\r\n\t\t\tcache: 'no-store',\r\n\t\t});\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn handleError(res);\r\n\t\t}\r\n\r\n\t\tconst contentType = res.headers.get('content-type') || '';\r\n\r\n\t\tif (\r\n\t\t\tcontentType.includes('application/octet-stream') ||\r\n\t\t\tcontentType.includes('application/pdf') ||\r\n\t\t\tcontentType.includes('image/')\r\n\t\t) {\r\n\t\t\tconst buffer = await res.arrayBuffer();\r\n\t\t\treturn { data: buffer };\r\n\t\t}\r\n\r\n\t\tconst text = await res.text();\r\n\r\n\t\tif (!text) {\r\n\t\t\treturn { data: null };\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\treturn { data: JSON.parse(text) };\r\n\t\t} catch {\r\n\t\t\treturn { data: text };\r\n\t\t}\r\n\t} catch (error) {\r\n\t\treturn handleError(error);\r\n\t}\r\n};\r\n","export const _apiUrl = Symbol('apiUrl');\r\n","import {\r\n\tIState,\r\n\tSubjectStateResponse,\r\n\tAuthKeys,\r\n\tSetStateResponse,\r\n\tGetStateRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst stateService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync set<T>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync setRef(\r\n\t\tobject: string,\r\n\t\tdata: File,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get<T>(\r\n\t\tdata: GetStateRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getVersionList<T>(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/version?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRefList(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ValueListRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default stateService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tPublicKey,\r\n\tAuthenticateResponse,\r\n\tCreateKeyPairResponse,\r\n\tRegisterResponse,\r\n\tListPublicKeysResponse,\r\n} from '../types';\r\n\r\nconst authService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/owner`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\t{},\r\n\t\t\t{\r\n\t\t\t\t'x-bs-edge-sign': key,\r\n\t\t\t\t'x-bs-edge-sign-nonce': '1',\r\n\t\t\t\t'x-bs-edge-sign-timestamp': '1',\r\n\t\t\t},\r\n\t\t);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<AuthenticateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync creatKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default authService;\r\n","import {\r\n\tAuthKeys,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { CreateDeliveryRequest } from './Delivery';\r\n\r\nconst deliveryService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListDeliveriesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetDeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default deliveryService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tDefinition,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst securityPolicyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPoliciesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(policy: string, authKeys?: AuthKeys): Promise<GetPolicyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tpolicy: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPolicyService;\r\n","import { AuthKeys, ResponseWitOutData } from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { GetPrincipalResponse, ListPrincipalsResponse } from '../types';\r\nimport { CreatePrincipalRequest } from './Principal';\r\n\r\nconst securityPrincipalService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPrincipalsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetPrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPrincipalService;\r\n","import {\r\n\tResponseWitOutData,\r\n\tAuthKeys,\r\n\tGetObjectResponse,\r\n\tCreateObjectRequest,\r\n\tListObjectsResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\n\r\nconst objectService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\r\n\tasync get(object: string, authKeys: AuthKeys): Promise<GetObjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListObjectsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/match?path=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\nexport default objectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst apiKeyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tprincipal: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default apiKeyService;\r\n","import {\r\n\tIState,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n\tCreateObjectRequest,\r\n\tGetObjectResponse,\r\n\tListObjectsResponse,\r\n\tSubjectStateResponse,\r\n\tDelivery,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tAuthenticateResponse,\r\n\tGetStateRequest,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\r\n\tDefinition,\r\n\tCreatePrincipalRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tRegisterResponse,\r\n\tCreateKeyPairResponse,\r\n\tPublicKey,\r\n\tListPublicKeysResponse,\r\n} from './types';\r\nimport stateService from './stateService/stateService';\r\nimport authService from './authService/authService';\r\nimport deliveryService from './deliveryService/deliveryService';\r\nimport securityPolicyService from './securityPolicyService/securityPolicyService';\r\nimport securityPrincipalService from './securityPrincipalService/securityPrincipalService';\r\nimport objectService from './objectService/objectService';\r\nimport apiKeyService from './apiKeyService/apiKeyService';\r\n\r\nclass BigStateHttpClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\r\n\tconstructor(data: BSHttpOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t}\r\n\t\tobjectService.apiUrl = this.baseUrl;\r\n\t\tstateService.apiUrl = this.baseUrl;\r\n\t\tsecurityPrincipalService.apiUrl = this.baseUrl;\r\n\t\tsecurityPolicyService.apiUrl = this.baseUrl;\r\n\t\tdeliveryService.apiUrl = this.baseUrl;\r\n\t\tauthService.apiUrl = this.baseUrl;\r\n\t\tapiKeyService.apiUrl = this.baseUrl;\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await authService.signUp(key);\r\n\t}\r\n\r\n\tasync creatKeyPrincipal(principal: string): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.creatKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.deleteKeyPrincipal(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await authService.getListKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync signInPrincipal(principal: string): Promise<AuthenticateResponse> {\r\n\t\treturn await authService.signInPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await apiKeyService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(principal: string): Promise<ListApiKeysResponse> {\r\n\t\treturn await apiKeyService.getList(principal, this.authKey);\r\n\t}\r\n\r\n\tasync objectCreate(\r\n\t\tobject: string,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await objectService.create(object, this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGet(sid: string): Promise<GetObjectResponse> {\r\n\t\treturn await objectService.get(sid, this.authKey);\r\n\t}\r\n\r\n\tasync objectGetList(object: string): Promise<ListObjectsResponse> {\r\n\t\treturn await objectService.getList(object, this.authKey);\r\n\t}\r\n\r\n\tasync stateSet<T = any>(\r\n\t\tsid: string,\r\n\t\tdata: IState<T>,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await stateService.set<T>(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateSetValueRef(\r\n\t\tsid: string,\r\n\t\tdata: File,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await stateService.setRef(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGet<T = any>(\r\n\t\tdata: GetStateRequest,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.get<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGetRef(data: GetStateRefRequest): Promise<GetValueRefResponse> {\r\n\t\treturn await stateService.getRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync getVersionList<T = any>(\r\n\t\tobject: string,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.getVersionList<T>(object, this.authKey);\r\n\t}\r\n\r\n\tasync getRefList(object: string): Promise<ValueListRefResponse> {\r\n\t\treturn await stateService.getRefList(object, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principal: string): Promise<GetPrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principal, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(): Promise<ListPrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync principalDelete(principal: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.delete(principal, this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(policy, data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policy: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policy: string): Promise<GetPolicyResponse> {\r\n\t\treturn await securityPolicyService.get(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(): Promise<ListPoliciesResponse> {\r\n\t\treturn await securityPolicyService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(\r\n\t\tdata: Delivery,\r\n\t\tdelivery: string,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(delivery, data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(delivery: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(delivery: string): Promise<GetDeliveryResponse> {\r\n\t\treturn await deliveryService.get(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(): Promise<ListDeliveriesResponse> {\r\n\t\treturn await deliveryService.getList(this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import { AuthKeys } from '../types';\r\n\r\nexport enum NotificationType {\r\n\tMessage = 'message',\r\n\tInfo = 'info',\r\n\tError = 'error',\r\n}\r\n\r\nexport interface MessageData {\r\n\tobject: string;\r\n\tversion: number;\r\n\trec: string;\r\n\tvalue?: any;\r\n\tvalueRef?: string;\r\n}\r\n\r\nexport interface InfoData {\r\n\tmessage: string;\r\n}\r\n\r\nexport interface ErrorData {\r\n\terror: string;\r\n\tcode?: string | number;\r\n}\r\n\r\nexport type Notification =\r\n\t| {\r\n\t\t\ttype: NotificationType.Error;\r\n\t\t\tdata: ErrorData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Info;\r\n\t\t\tdata: InfoData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Message;\r\n\t\t\tdata: MessageData;\r\n\t };\r\n\r\nexport type SendHandler = (deliveries: string[]) => void;\r\nexport type MessageHandler = (message: Notification) => void;\r\nexport type ErrorHandler = (error: any) => void;\r\nexport type OpenHandler = (send: SendHandler) => void;\r\nexport type CloseHandler = (e: number | CloseEvent) => void;\r\n\r\nexport interface WebSocketOptions {\r\n\tbaseUrlWs: string;\r\n\tauthKeys: AuthKeys;\r\n\tonMessage: MessageHandler;\r\n\tonOpen?: OpenHandler;\r\n\tonClose?: CloseHandler;\r\n\tonError?: ErrorHandler;\r\n}\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum PrincipalType {\r\n\tApp = 1,\r\n\tUser = 2,\r\n}\r\n\r\nexport interface CreatePrincipalRequest {\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport interface Principal extends CreatePrincipalRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport type ListPrincipalsResponse = FetchDataResponse<Principal[]>;\r\nexport type GetPrincipalResponse = FetchDataResponse<Principal>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum DeliveryType {\r\n\tWS = 1,\r\n\tHTTP = 2,\r\n\tFILE = 3,\r\n}\r\n\r\nexport interface CreateDeliveryRequest {\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface Delivery extends CreateDeliveryRequest {\r\n\tdelivery: string;\r\n}\r\n\r\nexport type ListDeliveriesResponse = FetchDataResponse<Delivery[]>;\r\nexport type GetDeliveryResponse = FetchDataResponse<Delivery>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum ObjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface InfoObject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n}\r\n\r\nexport interface CreateObjectRequest {\r\n\ttype: ObjectType;\r\n\tttl: number;\r\n\tvalidity: number;\r\n\tversionDeep: number;\r\n\tinfo: InfoObject;\r\n}\r\n\r\nexport interface ObjectResponse extends CreateObjectRequest {\r\n\tobject: string;\r\n}\r\n\r\nexport type GetObjectResponse = FetchDataResponse<ObjectResponse>;\r\nexport type ListObjectsResponse = FetchDataResponse<string[]>;\r\n","import { MessageHandler, WebSocketOptions } from '../types';\r\nimport { MessageData, NotificationType } from './WebSocket';\r\n\r\n// Type for Node.js WebSocket (ws library)\r\ntype WebSocketWs = {\r\n\taddListener(event: string, listener: (...args: any[]) => void): void;\r\n\tremoveListener(event: string, listener: (...args: any[]) => void): void;\r\n\tsend(data: string): void;\r\n\tclose(code?: number): void;\r\n};\r\n\r\n// Declare require for TypeScript (only available in Node.js)\r\ndeclare const require: ((id: string) => any) | undefined;\r\n\r\nclass WebSocketService {\r\n\tprivate socket: WebSocketWs | WebSocket | null = null;\r\n\tprivate isConnected: boolean = false;\r\n\tprivate options: WebSocketOptions;\r\n\tmessageQueue: string[] = [];\r\n\r\n\tconstructor(options: WebSocketOptions) {\r\n\t\tthis.options = options;\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate serverSocket() {\r\n\t\t// Dynamic require to avoid bundling ws in browser builds\r\n\t\tconst Ws = typeof require !== 'undefined' ? require('ws') : null;\r\n\t\tif (!Ws) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t'ws module is required for Node.js environment. Please install it: npm install ws',\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\t\tthis.socket = new Ws(`${this.options.baseUrlWs}?${auth}`) as WebSocketWs;\r\n\r\n\t\tthis.socket?.addListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sids => this.send(sids));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('message', event => {\r\n\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('error', (event: any) => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate clientSocket() {\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\r\n\t\tthis.socket = new WebSocket(\r\n\t\t\t`${this.options.baseUrlWs}?${auth}`,\r\n\t\t) as WebSocket;\r\n\r\n\t\tthis.socket?.addEventListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sid => this.send(sid));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event as CloseEvent);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('message', event => {\r\n\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('error', event => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate connect() {\r\n\t\ttypeof window === 'undefined' ? this.serverSocket() : this.clientSocket();\r\n\t}\r\n\r\n\tsend(deliveryIds: string[]) {\r\n\t\tif (this.isConnected && this.socket) {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\tthis.socket && this.socket.send(`delivery.listen=${deliveryId}`);\r\n\t\t\t\tconsole.log('Message sent, deliveryId:', deliveryId);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\t!this.messageQueue.includes(deliveryId) &&\r\n\t\t\t\t\tthis.messageQueue.push(deliveryId);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tif (this.socket) {\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tconst readyState =\r\n\t\t\t\ttypeof window === 'undefined'\r\n\t\t\t\t\t? (this.socket as any).readyState\r\n\t\t\t\t\t: (this.socket as WebSocket).readyState;\r\n\r\n\t\t\tif (\r\n\t\t\t\treadyState === WebSocket.OPEN ||\r\n\t\t\t\treadyState === WebSocket.CONNECTING ||\r\n\t\t\t\treadyState === 0 ||\r\n\t\t\t\treadyState === 1\r\n\t\t\t) {\r\n\t\t\t\tthis.socket.close(3001);\r\n\t\t\t}\r\n\t\t\tthis.messageQueue = [];\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.addListener('message', event => {\r\n\t\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.addEventListener('message', event => {\r\n\t\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.removeListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.removeEventListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default WebSocketService;\r\n","import { BSDeliveryWsOptions, MessageHandler, SendHandler } from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\r\nimport { Notification, NotificationType } from './webSocketService/WebSocket';\r\n\r\nclass BigStateWsDeliveryClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\tprivate socket: WebSocketService | null = null;\r\n\tprivate reconnectCount = 0;\r\n\tprivate reconnectTime = 5000;\r\n\tprivate defaultReconnectTime = 5000;\r\n\tprivate maxReconnectCount = 11;\r\n\tprivate messages: Set<string> = new Set<string>([]);\r\n\tprivate callbacks: { key: string; callback: MessageHandler }[] = [];\r\n\tprivate timerId: ReturnType<typeof setTimeout> | null = null;\r\n\r\n\tconstructor(data: BSDeliveryWsOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { maxReconnectCount, reconnectTime, token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tmaxReconnectCount && (this.maxReconnectCount = maxReconnectCount);\r\n\t\t\treconnectTime && (this.reconnectTime = reconnectTime);\r\n\t\t\treconnectTime && (this.defaultReconnectTime = reconnectTime);\r\n\t\t}\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tonOpenSocket(send: SendHandler, sids: string[]) {\r\n\t\tsend(sids);\r\n\t}\r\n\r\n\tretry(error: any, onMessage: MessageHandler) {\r\n\t\tthis.reconnectCount += 1;\r\n\t\tif (this.reconnectCount > this.maxReconnectCount) {\r\n\t\t\tonMessage && onMessage({ type: NotificationType.Error, data: { error } });\r\n\t\t\tconsole.log('reconnect ' + this.reconnectCount);\r\n\t\t\tif (this.timerId) {\r\n\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\tthis.callbacks = [];\r\n\t\t\t\tthis.messages = new Set<string>();\r\n\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t}\r\n\t\t\tthis.reconnectCount = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.unsubscribeStateUpdate();\r\n\t\tif (!(this.reconnectCount > this.maxReconnectCount)) {\r\n\t\t\tthis.subscribeStateUpdate(Array.from(this.messages), onMessage);\r\n\t\t\tthis.callbacks.forEach(({ callback, key }) =>\r\n\t\t\t\tthis.addWsEventListener(callback, key),\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\topenSocket(deliveries: string[], onMessage: MessageHandler) {\r\n\t\tconst options = {\r\n\t\t\tbaseUrlWs: this.baseUrl,\r\n\t\t\tauthKeys: this.authKey,\r\n\t\t\tonOpen: (send: SendHandler) => {\r\n\t\t\t\tthis.reconnectCount = 0;\r\n\t\t\t\tif (this.timerId) {\r\n\t\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t\t}\r\n\t\t\t\tthis.onOpenSocket(send, deliveries);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Info,\r\n\t\t\t\t\tdata: { message: 'webSocket opened' },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonMessage: (message: Notification) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (message: Notification) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(message.data));\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonClose: (event: number | CloseEvent) => {\r\n\t\t\t\tconsole.log('webSocket close', event);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Error,\r\n\t\t\t\t\tdata: { error: 'webSocket close' },\r\n\t\t\t\t});\r\n\t\t\t\tif (event !== 3001) {\r\n\t\t\t\t\t!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\tthis.timerId = setTimeout(\r\n\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t!!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\t\t\tthis.reconnectTime *= 1.5;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.reconnectCount === 1\r\n\t\t\t\t\t\t\t? this.defaultReconnectTime\r\n\t\t\t\t\t\t\t: Math.round(this.reconnectTime),\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.unsubscribeStateUpdate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tthis.socket = new WebSocketService(options);\r\n\t}\r\n\r\n\tsubscribeStateUpdate(deliveries: string[], onMessage?: MessageHandler) {\r\n\t\tthis.messages = new Set([...this.messages, ...deliveries]);\r\n\t\tif (!this.socket) {\r\n\t\t\tonMessage && this.openSocket(deliveries, onMessage);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.socket.send(deliveries);\r\n\t}\r\n\r\n\tunsubscribeStateUpdate() {\r\n\t\tif (this.timerId) {\r\n\t\t\tclearTimeout(this.timerId);\r\n\t\t\tthis.timerId = null;\r\n\t\t}\r\n\t\tif (this.socket) {\r\n\t\t\tthis.socket.close();\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\tisSocketConnected(): boolean {\r\n\t\treturn !!this.socket;\r\n\t}\r\n\r\n\taddWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.addEventListener(callback);\r\n\t\t!this.callbacks.find(el => el.key === key) &&\r\n\t\t\tthis.callbacks.push({ key, callback });\r\n\t}\r\n\r\n\tremoveWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.removeEventListener(callback);\r\n\t\tthis.callbacks = this.callbacks.filter(data => data.key !== key);\r\n\t}\r\n}\r\n\r\nexport default BigStateWsDeliveryClient;\r\n"],"names":["handleError","error","Response","code","status","message","statusText","Error","toSearchParams","data","params","URLSearchParams","Object","entries","forEach","key","value","append","String","toString","fetchData","async","baseUrl","method","body","authKeys","headersCustom","headers","isJson","Blob","File","ArrayBuffer","Uint8Array","isBinaryBody","FormData","apiKey","token","fetchDataClient","res","fetch","JSON","stringify","cache","ok","contentType","get","includes","arrayBuffer","text","parse","_apiUrl","Symbol","stateService","apiUrl","this","set","object","setRef","getRef","getVersionList","getRefList","authService","signUp","signInPrincipal","principal","creatKeyPrincipal","deleteKeyPrincipal","getListKeyPrincipal","deliveryService","getList","create","delivery","securityPolicyService","policy","securityPrincipalService","objectService","apiKeyService","BigStateHttpClient","constructor","_apiKey","_token","authKey","createApiKey","deleteApiKey","delete","getListApiKey","objectCreate","objectGet","sid","objectGetList","stateSet","stateSetValueRef","stateGet","stateGetRef","principalCreate","principalGet","principalGetList","principalDelete","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","NotificationType","PrincipalType","DeliveryType","ObjectType","WebSocketService","options","socket","isConnected","messageQueue","connect","serverSocket","Ws","require","auth","_a","encodeURIComponent","_b","_c","baseUrlWs","_d","addListener","onOpen","sids","send","console","log","length","_e","event","onClose","_f","newMessage","onMessage","type","Message","_g","onError","clientSocket","WebSocket","addEventListener","window","deliveryIds","deliveryId","push","close","readyState","OPEN","CONNECTING","callback","removeEventListener","removeListener","BigStateWsDeliveryClient","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","addWsEventListener","openSocket","deliveries","Info","setTimeout","Math","round","clearTimeout","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"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"}
|
package/dist/index.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).BigState={})}(this,function(e){"use strict";const t=e=>e instanceof Response?{error:{code:e.status,message:e.statusText}}:e instanceof Error?{error:{code:500,message:e.message}}:{error:{code:500,message:"Unknown error"}},i=e=>{const t=new URLSearchParams;return Object.entries(e).forEach(([e,i])=>{null!=i&&t.append(e,String(i))}),t.toString()},s=async(e,t,i=null,s={},a={})=>{const o={...a},r=i&&"object"==typeof i&&!(e=>e instanceof Blob||e instanceof File||e instanceof ArrayBuffer||e instanceof Uint8Array)(i)&&!(i instanceof FormData);return r&&(o["Content-Type"]="application/json",o.Accept="application/json"),(null==s?void 0:s.apiKey)&&(o["x-api-key"]=s.apiKey),(null==s?void 0:s.token)&&(o["x-auth"]=s.token),n(e,t,r,i,o)},n=async(e,i,s,n=null,a={})=>{try{const o=await fetch(e,{method:i,headers:a,body:n?s?JSON.stringify(n):n:null,cache:"no-store"});if(!o.ok)return t(o);const r=o.headers.get("content-type")||"";if(r.includes("application/octet-stream")||r.includes("application/pdf")||r.includes("image/")){return{data:await o.arrayBuffer()}}const c=await o.text();if(!c)return{data:null};try{return{data:JSON.parse(c)}}catch{return{data:c}}}catch(e){return t(e)}},a=Symbol("apiUrl"),o={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async set(e,t,i){return await s(`${null==this?void 0:this[a]}/state?object=${e}`,"POST",t,i)},async setRef(e,t,i){return await s(`${null==this?void 0:this[a]}/value?object=${e}`,"POST",t,i)},async get(e,t){return await s(`${null==this?void 0:this[a]}/state?${i({...e})}`,"GET",null,t)},async getRef(e,t){return await s(`${null==this?void 0:this[a]}/value?${i({...e})}`,"GET",null,t)},async getVersionList(e,t){return await s(`${null==this?void 0:this[a]}/version?object=${e}`,"GET",null,t)},async getRefList(e,t){return await s(`${null==this?void 0:this[a]}/value?object=${e}`,"GET",null,t)}},r={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async signUp(e){return await s(`${null==this?void 0:this[a]}/owner`,"POST",null,{},{"x-bs-edge-sign":e,"x-bs-edge-sign-nonce":"1","x-bs-edge-sign-timestamp":"1"})},async signInPrincipal(e,t){return await s(`${null==this?void 0:this[a]}/token?principal=${e}`,"POST",null,t)},async creatKeyPrincipal(e,t){return await s(`${null==this?void 0:this[a]}/keypair?principal=${e}`,"POST",null,t)},async deleteKeyPrincipal(e,t,i){return await s(`${null==this?void 0:this[a]}/keypair?principal=${e}`,"DELETE",t,i)},async getListKeyPrincipal(e,t){return await s(`${null==this?void 0:this[a]}/keypair/match?principal=${e}`,"GET",null,t)}},c={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async getList(e){return await s(`${null==this?void 0:this[a]}/delivery/match`,"GET",null,e)},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/delivery?delivery=${e}`,"POST",t,i)},async get(e,t){return await s(`${null==this?void 0:this[a]}/delivery?delivery=${e}`,"GET",null,t)},async delete(e,t){return await s(`${null==this?void 0:this[a]}/delivery?delivery=${e}`,"DELETE",null,t)}},l={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async getList(e){return await s(`${null==this?void 0:this[a]}/policy/match`,"GET",null,e)},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/policy?policy=${e}`,"POST",t,i)},async get(e,t){return await s(`${null==this?void 0:this[a]}/policy?policy=${e}`,"GET",null,t)},async delete(e,t){return await s(`${null==this?void 0:this[a]}/policy?policy=${e}`,"DELETE",null,t)}},h={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async getList(e){return await s(`${null==this?void 0:this[a]}/principal/match`,"GET",null,e)},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/principal?principal=${e}`,"POST",t,i)},async get(e,t){return await s(`${null==this?void 0:this[a]}/principal?principal=${e}`,"GET",null,t)},async delete(e,t){return await s(`${null==this?void 0:this[a]}/principal?principal=${e}`,"DELETE",null,t)}},u={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/object?object=${e}`,"POST",i,t)},async get(e,t){return await s(`${null==this?void 0:this[a]}/object?object=${e}`,"GET",null,t)},async getList(e,t){return await s(`${null==this?void 0:this[a]}/object/match?path=${e}`,"GET",null,t)}},p={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/apikey?principal=${e}`,"POST",t,i)},async getList(e,t){return await s(`${null==this?void 0:this[a]}/apikey/match?principal=${e}`,"GET",null,t)},async delete(e,t,i){return await s(`${null==this?void 0:this[a]}/apikey?principal=${e}`,"DELETE",t,i)}};var y,d,v,w;e.NotificationType=void 0,(y=e.NotificationType||(e.NotificationType={})).Message="message",y.Info="info",y.Error="error";class g{constructor(e){this.socket=null,this.isConnected=!1,this.messageQueue=[],this.options=e,this.connect()}serverSocket(){var t,i,s,n,a,o,r;const c="undefined"!=typeof require?require("ws"):null;if(!c)throw new Error("ws module is required for Node.js environment. Please install it: npm install ws");const l=(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)?`apiKey=${encodeURIComponent(null===(i=this.options.authKeys)||void 0===i?void 0:i.apiKey)}`:(null===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new c(`${this.options.baseUrlWs}?${l}`),null===(n=this.socket)||void 0===n||n.addListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(e=>this.send(e)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(a=this.socket)||void 0===a||a.addListener("close",e=>{console.log("Close",JSON.stringify(e)),this.isConnected=!1,this.options.onClose&&this.options.onClose(e)}),null===(o=this.socket)||void 0===o||o.addListener("message",t=>{const i=t?JSON.parse(t.toString()):{};this.options.onMessage({type:e.NotificationType.Message,data:i})}),null===(r=this.socket)||void 0===r||r.addListener("error",t=>{this.options.onError&&this.options.onError({type:e.NotificationType.Error,data:t}),console.error("WebSocket error:",t)})}clientSocket(){var t,i,s,n,a,o,r;const c=(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)?`apiKey=${encodeURIComponent(null===(i=this.options.authKeys)||void 0===i?void 0:i.apiKey)}`:(null===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new WebSocket(`${this.options.baseUrlWs}?${c}`),null===(n=this.socket)||void 0===n||n.addEventListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(e=>this.send(e)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(a=this.socket)||void 0===a||a.addEventListener("close",e=>{console.log("Close",JSON.stringify(e)),this.isConnected=!1,this.options.onClose&&this.options.onClose(e)}),null===(o=this.socket)||void 0===o||o.addEventListener("message",t=>{const i=t.data?JSON.parse(t.data):{};this.options.onMessage({type:e.NotificationType.Message,data:i})}),null===(r=this.socket)||void 0===r||r.addEventListener("error",t=>{this.options.onError&&this.options.onError({type:e.NotificationType.Error,data:t}),console.error("WebSocket error:",t)})}connect(){"undefined"==typeof window?this.serverSocket():this.clientSocket()}send(e){this.isConnected&&this.socket?e.forEach(e=>{this.socket&&this.socket.send(`addListenerFor=${e}`),console.log("Message sent, deliveryId:",e)}):e.forEach(e=>{!this.messageQueue.includes(e)&&this.messageQueue.push(e)})}close(){if(this.socket){this.isConnected=!1;const e=this.socket.readyState;e!==WebSocket.OPEN&&e!==WebSocket.CONNECTING&&0!==e&&1!==e||this.socket.close(3001),this.messageQueue=[],this.socket=null}}addEventListener(t){var i,s;"undefined"==typeof window?null===(i=this.socket)||void 0===i||i.addListener("message",i=>{const s=i?JSON.parse(i.toString()):{};t({type:e.NotificationType.Message,data:s})}):null===(s=this.socket)||void 0===s||s.addEventListener("message",i=>{const s=i.data?JSON.parse(i.data):{};t({type:e.NotificationType.Message,data:s})})}removeEventListener(e){var t,i;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.removeListener("message",t=>e):null===(i=this.socket)||void 0===i||i.removeEventListener("message",t=>e)}}e.PrincipalType=void 0,(d=e.PrincipalType||(e.PrincipalType={}))[d.App=1]="App",d[d.User=2]="User",e.DeliveryType=void 0,(v=e.DeliveryType||(e.DeliveryType={}))[v.WS=1]="WS",v[v.HTTP=2]="HTTP",v[v.FILE=3]="FILE",e.ObjectType=void 0,(w=e.ObjectType||(e.ObjectType={}))[w.Private=1]="Private",w[w.Public=2]="Public",e.BigStateHttpClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.baseUrl=`${e.baseUrl}/v1`,e){const{token:t,apiKey:i}=e;t&&(this._token=t),i&&(this._apiKey=i)}u.apiUrl=this.baseUrl,o.apiUrl=this.baseUrl,h.apiUrl=this.baseUrl,l.apiUrl=this.baseUrl,c.apiUrl=this.baseUrl,r.apiUrl=this.baseUrl,p.apiUrl=this.baseUrl}set apiKey(e){if(!e)throw new Error("ApiKey cannot be empty");this._apiKey=e}set token(e){if(!e)throw new Error("Token cannot be empty");this._token=e}get authKey(){return{apiKey:this._apiKey,token:this._token}}async signUp(e){return await r.signUp(e)}async creatKeyPrincipal(e){return await r.creatKeyPrincipal(e,this.authKey)}async deleteKeyPrincipal(e,t){return await r.deleteKeyPrincipal(e,t,this.authKey)}async getListKeyPrincipal(e){return await r.getListKeyPrincipal(e,this.authKey)}async signInPrincipal(e){return await r.signInPrincipal(e,this.authKey)}async createApiKey(e,t){return await p.create(e,t,this.authKey)}async deleteApiKey(e,t){return await p.delete(e,t,this.authKey)}async getListApiKey(e){return await p.getList(e,this.authKey)}async objectCreate(e,t){return await u.create(e,this.authKey,t)}async objectGet(e){return await u.get(e,this.authKey)}async objectGetList(e){return await u.getList(e,this.authKey)}async stateSet(e,t){return await o.set(e,t,this.authKey)}async stateSetValueRef(e,t){return await o.setRef(e,t,this.authKey)}async stateGet(e){return await o.get(e,this.authKey)}async stateGetRef(e){return await o.getRef(e,this.authKey)}async getVersionList(e){return await o.getVersionList(e,this.authKey)}async getRefList(e){return await o.getRefList(e,this.authKey)}async principalCreate(e,t){return await h.create(e,t,this.authKey)}async principalGet(e){return await h.get(e,this.authKey)}async principalGetList(){return await h.getList(this.authKey)}async principalDelete(e){return await h.delete(e,this.authKey)}async policyCreate(e,t){return await l.create(e,t,this.authKey)}async policyDelete(e){return await l.delete(e,this.authKey)}async policyGet(e){return await l.get(e,this.authKey)}async policyGetList(){return await l.getList(this.authKey)}async deliveryCreate(e,t){return await c.create(t,e,this.authKey)}async deliveryDelete(e){return await c.delete(e,this.authKey)}async deliveryGet(e){return await c.get(e,this.authKey)}async deliveryGetList(){return await c.getList(this.authKey)}},e.BigStateWsDeliveryClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.socket=null,this.reconnectCount=0,this.reconnectTime=5e3,this.defaultReconnectTime=5e3,this.maxReconnectCount=11,this.messages=new Set([]),this.callbacks=[],this.timerId=null,this.baseUrl=`${e.baseUrl}/v1`,e){const{maxReconnectCount:t,reconnectTime:i,token:s,apiKey:n}=e;s&&(this._token=s),n&&(this._apiKey=n),t&&(this.maxReconnectCount=t),i&&(this.reconnectTime=i),i&&(this.defaultReconnectTime=i)}}set apiKey(e){if(!e)throw new Error("ApiKey cannot be empty");this._apiKey=e}set token(e){if(!e)throw new Error("Token cannot be empty");this._token=e}get authKey(){return{apiKey:this._apiKey,token:this._token}}onOpenSocket(e,t){e(t)}retry(t,i){if(this.reconnectCount+=1,this.reconnectCount>this.maxReconnectCount)return i&&i({type:e.NotificationType.Error,data:{error:t}}),console.log("reconnect "+this.reconnectCount),this.timerId&&(clearInterval(this.timerId),this.callbacks=[],this.messages=new Set,this.reconnectTime=this.defaultReconnectTime),void(this.reconnectCount=0);this.unsubscribeStateUpdate(),this.reconnectCount>this.maxReconnectCount||(this.subscribeStateUpdate(Array.from(this.messages),i),this.callbacks.forEach(({callback:e,key:t})=>this.addWsEventListener(e,t)))}openSocket(t,i){const s={baseUrlWs:this.baseUrl,authKeys:this.authKey,onOpen:s=>{this.reconnectCount=0,this.timerId&&(clearInterval(this.timerId),this.reconnectTime=this.defaultReconnectTime),this.onOpenSocket(s,t),i({type:e.NotificationType.Info,data:{message:"webSocket opened"}})},onMessage:e=>{i(e)},onError:e=>{console.error("Error "+JSON.stringify(e.data)),i(e)},onClose:t=>{console.log("webSocket close",t),i({type:e.NotificationType.Error,data:{error:"webSocket close"}}),3001!==t?(!this.reconnectCount&&this.retry("webSocket close",i),this.timerId=setTimeout(()=>{this.reconnectCount&&this.retry("webSocket close",i),this.reconnectTime*=1.5},1===this.reconnectCount?this.defaultReconnectTime:Math.round(this.reconnectTime))):this.unsubscribeStateUpdate()}};this.socket=new g(s)}subscribeStateUpdate(e,t){this.messages=new Set([...this.messages,...e]),this.socket?this.socket.send(e):t&&this.openSocket(e,t)}unsubscribeStateUpdate(){this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.socket&&(this.socket.close(),this.socket=null)}isSocketConnected(){return!!this.socket}addWsEventListener(e,t){var i;null===(i=this.socket)||void 0===i||i.addEventListener(e),!this.callbacks.find(e=>e.key===t)&&this.callbacks.push({key:t,callback:e})}removeWsEventListener(e,t){var i;null===(i=this.socket)||void 0===i||i.removeEventListener(e),this.callbacks=this.callbacks.filter(e=>e.key!==t)}},Object.defineProperty(e,"__esModule",{value:!0})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).BigState={})}(this,function(e){"use strict";const t=e=>e instanceof Response?{error:{code:e.status,message:e.statusText}}:e instanceof Error?{error:{code:500,message:e.message}}:{error:{code:500,message:"Unknown error"}},i=e=>{const t=new URLSearchParams;return Object.entries(e).forEach(([e,i])=>{null!=i&&t.append(e,String(i))}),t.toString()},s=async(e,t,i=null,s={},a={})=>{const o={...a},r=i&&"object"==typeof i&&!(e=>e instanceof Blob||e instanceof File||e instanceof ArrayBuffer||e instanceof Uint8Array)(i)&&!(i instanceof FormData);return r&&(o["Content-Type"]="application/json",o.Accept="application/json"),(null==s?void 0:s.apiKey)&&(o["x-api-key"]=s.apiKey),(null==s?void 0:s.token)&&(o["x-auth"]=s.token),n(e,t,r,i,o)},n=async(e,i,s,n=null,a={})=>{try{const o=await fetch(e,{method:i,headers:a,body:n?s?JSON.stringify(n):n:null,cache:"no-store"});if(!o.ok)return t(o);const r=o.headers.get("content-type")||"";if(r.includes("application/octet-stream")||r.includes("application/pdf")||r.includes("image/")){return{data:await o.arrayBuffer()}}const c=await o.text();if(!c)return{data:null};try{return{data:JSON.parse(c)}}catch{return{data:c}}}catch(e){return t(e)}},a=Symbol("apiUrl"),o={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async set(e,t,i){return await s(`${null==this?void 0:this[a]}/state?object=${e}`,"POST",t,i)},async setRef(e,t,i){return await s(`${null==this?void 0:this[a]}/value?object=${e}`,"POST",t,i)},async get(e,t){return await s(`${null==this?void 0:this[a]}/state?${i({...e})}`,"GET",null,t)},async getRef(e,t){return await s(`${null==this?void 0:this[a]}/value?${i({...e})}`,"GET",null,t)},async getVersionList(e,t){return await s(`${null==this?void 0:this[a]}/version?object=${e}`,"GET",null,t)},async getRefList(e,t){return await s(`${null==this?void 0:this[a]}/value?object=${e}`,"GET",null,t)}},r={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async signUp(e){return await s(`${null==this?void 0:this[a]}/owner`,"POST",null,{},{"x-bs-edge-sign":e,"x-bs-edge-sign-nonce":"1","x-bs-edge-sign-timestamp":"1"})},async signInPrincipal(e,t){return await s(`${null==this?void 0:this[a]}/token?principal=${e}`,"POST",null,t)},async creatKeyPrincipal(e,t){return await s(`${null==this?void 0:this[a]}/keypair?principal=${e}`,"POST",null,t)},async deleteKeyPrincipal(e,t,i){return await s(`${null==this?void 0:this[a]}/keypair?principal=${e}`,"DELETE",t,i)},async getListKeyPrincipal(e,t){return await s(`${null==this?void 0:this[a]}/keypair/match?principal=${e}`,"GET",null,t)}},c={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async getList(e){return await s(`${null==this?void 0:this[a]}/delivery/match`,"GET",null,e)},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/delivery?delivery=${e}`,"POST",t,i)},async get(e,t){return await s(`${null==this?void 0:this[a]}/delivery?delivery=${e}`,"GET",null,t)},async delete(e,t){return await s(`${null==this?void 0:this[a]}/delivery?delivery=${e}`,"DELETE",null,t)}},l={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async getList(e){return await s(`${null==this?void 0:this[a]}/policy/match`,"GET",null,e)},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/policy?policy=${e}`,"POST",t,i)},async get(e,t){return await s(`${null==this?void 0:this[a]}/policy?policy=${e}`,"GET",null,t)},async delete(e,t){return await s(`${null==this?void 0:this[a]}/policy?policy=${e}`,"DELETE",null,t)}},h={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async getList(e){return await s(`${null==this?void 0:this[a]}/principal/match`,"GET",null,e)},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/principal?principal=${e}`,"POST",t,i)},async get(e,t){return await s(`${null==this?void 0:this[a]}/principal?principal=${e}`,"GET",null,t)},async delete(e,t){return await s(`${null==this?void 0:this[a]}/principal?principal=${e}`,"DELETE",null,t)}},u={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/object?object=${e}`,"POST",i,t)},async get(e,t){return await s(`${null==this?void 0:this[a]}/object?object=${e}`,"GET",null,t)},async getList(e,t){return await s(`${null==this?void 0:this[a]}/object/match?path=${e}`,"GET",null,t)}},p={[a]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[a]=e},async create(e,t,i){return await s(`${null==this?void 0:this[a]}/apikey?principal=${e}`,"POST",t,i)},async getList(e,t){return await s(`${null==this?void 0:this[a]}/apikey/match?principal=${e}`,"GET",null,t)},async delete(e,t,i){return await s(`${null==this?void 0:this[a]}/apikey?principal=${e}`,"DELETE",t,i)}};var y,d,v,w;e.NotificationType=void 0,(y=e.NotificationType||(e.NotificationType={})).Message="message",y.Info="info",y.Error="error";class g{constructor(e){this.socket=null,this.isConnected=!1,this.messageQueue=[],this.options=e,this.connect()}serverSocket(){var t,i,s,n,a,o,r;const c="undefined"!=typeof require?require("ws"):null;if(!c)throw new Error("ws module is required for Node.js environment. Please install it: npm install ws");const l=(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)?`apiKey=${encodeURIComponent(null===(i=this.options.authKeys)||void 0===i?void 0:i.apiKey)}`:(null===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new c(`${this.options.baseUrlWs}?${l}`),null===(n=this.socket)||void 0===n||n.addListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(e=>this.send(e)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(a=this.socket)||void 0===a||a.addListener("close",e=>{console.log("Close",JSON.stringify(e)),this.isConnected=!1,this.options.onClose&&this.options.onClose(e)}),null===(o=this.socket)||void 0===o||o.addListener("message",t=>{const i=t?JSON.parse(t.toString()):{};this.options.onMessage({type:e.NotificationType.Message,data:i})}),null===(r=this.socket)||void 0===r||r.addListener("error",t=>{this.options.onError&&this.options.onError({type:e.NotificationType.Error,data:t}),console.error("WebSocket error:",t)})}clientSocket(){var t,i,s,n,a,o,r;const c=(null===(t=this.options.authKeys)||void 0===t?void 0:t.apiKey)?`apiKey=${encodeURIComponent(null===(i=this.options.authKeys)||void 0===i?void 0:i.apiKey)}`:(null===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new WebSocket(`${this.options.baseUrlWs}?${c}`),null===(n=this.socket)||void 0===n||n.addEventListener("open",()=>{this.isConnected=!0,this.options.onOpen&&this.options.onOpen(e=>this.send(e)),console.log("WebSocket connect"),this.messageQueue.length&&(this.send(this.messageQueue),this.messageQueue=[])}),null===(a=this.socket)||void 0===a||a.addEventListener("close",e=>{console.log("Close",JSON.stringify(e)),this.isConnected=!1,this.options.onClose&&this.options.onClose(e)}),null===(o=this.socket)||void 0===o||o.addEventListener("message",t=>{const i=t.data?JSON.parse(t.data):{};this.options.onMessage({type:e.NotificationType.Message,data:i})}),null===(r=this.socket)||void 0===r||r.addEventListener("error",t=>{this.options.onError&&this.options.onError({type:e.NotificationType.Error,data:t}),console.error("WebSocket error:",t)})}connect(){"undefined"==typeof window?this.serverSocket():this.clientSocket()}send(e){this.isConnected&&this.socket?e.forEach(e=>{this.socket&&this.socket.send(`delivery.listen=${e}`),console.log("Message sent, deliveryId:",e)}):e.forEach(e=>{!this.messageQueue.includes(e)&&this.messageQueue.push(e)})}close(){if(this.socket){this.isConnected=!1;const e=this.socket.readyState;e!==WebSocket.OPEN&&e!==WebSocket.CONNECTING&&0!==e&&1!==e||this.socket.close(3001),this.messageQueue=[],this.socket=null}}addEventListener(t){var i,s;"undefined"==typeof window?null===(i=this.socket)||void 0===i||i.addListener("message",i=>{const s=i?JSON.parse(i.toString()):{};t({type:e.NotificationType.Message,data:s})}):null===(s=this.socket)||void 0===s||s.addEventListener("message",i=>{const s=i.data?JSON.parse(i.data):{};t({type:e.NotificationType.Message,data:s})})}removeEventListener(e){var t,i;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.removeListener("message",t=>e):null===(i=this.socket)||void 0===i||i.removeEventListener("message",t=>e)}}e.PrincipalType=void 0,(d=e.PrincipalType||(e.PrincipalType={}))[d.App=1]="App",d[d.User=2]="User",e.DeliveryType=void 0,(v=e.DeliveryType||(e.DeliveryType={}))[v.WS=1]="WS",v[v.HTTP=2]="HTTP",v[v.FILE=3]="FILE",e.ObjectType=void 0,(w=e.ObjectType||(e.ObjectType={}))[w.Private=1]="Private",w[w.Public=2]="Public",e.BigStateHttpClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.baseUrl=`${e.baseUrl}/v1`,e){const{token:t,apiKey:i}=e;t&&(this._token=t),i&&(this._apiKey=i)}u.apiUrl=this.baseUrl,o.apiUrl=this.baseUrl,h.apiUrl=this.baseUrl,l.apiUrl=this.baseUrl,c.apiUrl=this.baseUrl,r.apiUrl=this.baseUrl,p.apiUrl=this.baseUrl}set apiKey(e){if(!e)throw new Error("ApiKey cannot be empty");this._apiKey=e}set token(e){if(!e)throw new Error("Token cannot be empty");this._token=e}get authKey(){return{apiKey:this._apiKey,token:this._token}}async signUp(e){return await r.signUp(e)}async creatKeyPrincipal(e){return await r.creatKeyPrincipal(e,this.authKey)}async deleteKeyPrincipal(e,t){return await r.deleteKeyPrincipal(e,t,this.authKey)}async getListKeyPrincipal(e){return await r.getListKeyPrincipal(e,this.authKey)}async signInPrincipal(e){return await r.signInPrincipal(e,this.authKey)}async createApiKey(e,t){return await p.create(e,t,this.authKey)}async deleteApiKey(e,t){return await p.delete(e,t,this.authKey)}async getListApiKey(e){return await p.getList(e,this.authKey)}async objectCreate(e,t){return await u.create(e,this.authKey,t)}async objectGet(e){return await u.get(e,this.authKey)}async objectGetList(e){return await u.getList(e,this.authKey)}async stateSet(e,t){return await o.set(e,t,this.authKey)}async stateSetValueRef(e,t){return await o.setRef(e,t,this.authKey)}async stateGet(e){return await o.get(e,this.authKey)}async stateGetRef(e){return await o.getRef(e,this.authKey)}async getVersionList(e){return await o.getVersionList(e,this.authKey)}async getRefList(e){return await o.getRefList(e,this.authKey)}async principalCreate(e,t){return await h.create(e,t,this.authKey)}async principalGet(e){return await h.get(e,this.authKey)}async principalGetList(){return await h.getList(this.authKey)}async principalDelete(e){return await h.delete(e,this.authKey)}async policyCreate(e,t){return await l.create(e,t,this.authKey)}async policyDelete(e){return await l.delete(e,this.authKey)}async policyGet(e){return await l.get(e,this.authKey)}async policyGetList(){return await l.getList(this.authKey)}async deliveryCreate(e,t){return await c.create(t,e,this.authKey)}async deliveryDelete(e){return await c.delete(e,this.authKey)}async deliveryGet(e){return await c.get(e,this.authKey)}async deliveryGetList(){return await c.getList(this.authKey)}},e.BigStateWsDeliveryClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.socket=null,this.reconnectCount=0,this.reconnectTime=5e3,this.defaultReconnectTime=5e3,this.maxReconnectCount=11,this.messages=new Set([]),this.callbacks=[],this.timerId=null,this.baseUrl=`${e.baseUrl}/v1`,e){const{maxReconnectCount:t,reconnectTime:i,token:s,apiKey:n}=e;s&&(this._token=s),n&&(this._apiKey=n),t&&(this.maxReconnectCount=t),i&&(this.reconnectTime=i),i&&(this.defaultReconnectTime=i)}}set apiKey(e){if(!e)throw new Error("ApiKey cannot be empty");this._apiKey=e}set token(e){if(!e)throw new Error("Token cannot be empty");this._token=e}get authKey(){return{apiKey:this._apiKey,token:this._token}}onOpenSocket(e,t){e(t)}retry(t,i){if(this.reconnectCount+=1,this.reconnectCount>this.maxReconnectCount)return i&&i({type:e.NotificationType.Error,data:{error:t}}),console.log("reconnect "+this.reconnectCount),this.timerId&&(clearInterval(this.timerId),this.callbacks=[],this.messages=new Set,this.reconnectTime=this.defaultReconnectTime),void(this.reconnectCount=0);this.unsubscribeStateUpdate(),this.reconnectCount>this.maxReconnectCount||(this.subscribeStateUpdate(Array.from(this.messages),i),this.callbacks.forEach(({callback:e,key:t})=>this.addWsEventListener(e,t)))}openSocket(t,i){const s={baseUrlWs:this.baseUrl,authKeys:this.authKey,onOpen:s=>{this.reconnectCount=0,this.timerId&&(clearInterval(this.timerId),this.reconnectTime=this.defaultReconnectTime),this.onOpenSocket(s,t),i({type:e.NotificationType.Info,data:{message:"webSocket opened"}})},onMessage:e=>{i(e)},onError:e=>{console.error("Error "+JSON.stringify(e.data)),i(e)},onClose:t=>{console.log("webSocket close",t),i({type:e.NotificationType.Error,data:{error:"webSocket close"}}),3001!==t?(!this.reconnectCount&&this.retry("webSocket close",i),this.timerId=setTimeout(()=>{this.reconnectCount&&this.retry("webSocket close",i),this.reconnectTime*=1.5},1===this.reconnectCount?this.defaultReconnectTime:Math.round(this.reconnectTime))):this.unsubscribeStateUpdate()}};this.socket=new g(s)}subscribeStateUpdate(e,t){this.messages=new Set([...this.messages,...e]),this.socket?this.socket.send(e):t&&this.openSocket(e,t)}unsubscribeStateUpdate(){this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.socket&&(this.socket.close(),this.socket=null)}isSocketConnected(){return!!this.socket}addWsEventListener(e,t){var i;null===(i=this.socket)||void 0===i||i.addEventListener(e),!this.callbacks.find(e=>e.key===t)&&this.callbacks.push({key:t,callback:e})}removeWsEventListener(e,t){var i;null===(i=this.socket)||void 0===i||i.removeEventListener(e),this.callbacks=this.callbacks.filter(e=>e.key!==t)}},Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|
package/dist/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../src/handleError.ts","../src/helpers/common.ts","../src/fetchService.ts","../src/constants/index.ts","../src/stateService/stateService.ts","../src/authService/authService.ts","../src/deliveryService/deliveryService.ts","../src/securityPolicyService/securityPolicyService.ts","../src/securityPrincipalService/securityPrincipalService.ts","../src/objectService/objectService.ts","../src/apiKeyService/apiKeyService.ts","../src/webSocketService/WebSocket.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/objectService/Object.ts","../src/webSocketService/webSocketService.ts","../src/bsClientHttpClient.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorResponse } from './types';\r\n\r\nexport const handleError = (error: any): ErrorResponse => {\r\n\tif (error instanceof Response) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: error.status,\r\n\t\t\t\tmessage: error.statusText,\r\n\t\t\t},\r\n\t\t};\r\n\t} else if (error instanceof Error) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t},\r\n\t\t};\r\n\t} else {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: 'Unknown error',\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n};\r\n","export const isBinaryBody = (body: any): boolean =>\r\n\tbody instanceof Blob ||\r\n\tbody instanceof File ||\r\n\tbody instanceof ArrayBuffer ||\r\n\tbody instanceof Uint8Array;\r\n\r\nexport const toSearchParams = (data: Record<string, unknown>): string => {\r\n\tconst params = new URLSearchParams();\r\n\r\n\tObject.entries(data).forEach(([key, value]) => {\r\n\t\tif (value !== undefined && value !== null) {\r\n\t\t\tparams.append(key, String(value));\r\n\t\t}\r\n\t});\r\n\r\n\treturn params.toString();\r\n};\r\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\nimport { isBinaryBody } from './helpers/common';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nexport const fetchData = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tbody: any = null,\r\n\tauthKeys: AuthKeys = {},\r\n\theadersCustom: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\tconst headers: HeadersType = {\r\n\t\t...headersCustom,\r\n\t};\r\n\r\n\tconst isJson =\r\n\t\tbody &&\r\n\t\ttypeof body === 'object' &&\r\n\t\t!isBinaryBody(body) &&\r\n\t\t!(body instanceof FormData);\r\n\r\n\tif (isJson) {\r\n\t\theaders['Content-Type'] = 'application/json';\r\n\t\theaders['Accept'] = 'application/json';\r\n\t}\r\n\r\n\tif (authKeys?.apiKey) {\r\n\t\theaders['x-api-key'] = authKeys.apiKey;\r\n\t}\r\n\r\n\tif (authKeys?.token) {\r\n\t\theaders['x-auth'] = authKeys.token;\r\n\t}\r\n\r\n\treturn fetchDataClient(baseUrl, method, isJson, body, headers);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tisJson: boolean,\r\n\tbody: any = null,\r\n\theaders: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\ttry {\r\n\t\tconst res = await fetch(baseUrl, {\r\n\t\t\tmethod,\r\n\t\t\theaders,\r\n\t\t\tbody: body ? (isJson ? JSON.stringify(body) : body) : null,\r\n\t\t\tcache: 'no-store',\r\n\t\t});\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn handleError(res);\r\n\t\t}\r\n\r\n\t\tconst contentType = res.headers.get('content-type') || '';\r\n\r\n\t\tif (\r\n\t\t\tcontentType.includes('application/octet-stream') ||\r\n\t\t\tcontentType.includes('application/pdf') ||\r\n\t\t\tcontentType.includes('image/')\r\n\t\t) {\r\n\t\t\tconst buffer = await res.arrayBuffer();\r\n\t\t\treturn { data: buffer };\r\n\t\t}\r\n\r\n\t\tconst text = await res.text();\r\n\r\n\t\tif (!text) {\r\n\t\t\treturn { data: null };\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\treturn { data: JSON.parse(text) };\r\n\t\t} catch {\r\n\t\t\treturn { data: text };\r\n\t\t}\r\n\t} catch (error) {\r\n\t\treturn handleError(error);\r\n\t}\r\n};\r\n","export const _apiUrl = Symbol('apiUrl');\r\n","import {\r\n\tIState,\r\n\tSubjectStateResponse,\r\n\tAuthKeys,\r\n\tSetStateResponse,\r\n\tGetStateRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst stateService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync set<T>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync setRef(\r\n\t\tobject: string,\r\n\t\tdata: File,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get<T>(\r\n\t\tdata: GetStateRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getVersionList<T>(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/version?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRefList(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ValueListRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default stateService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tPublicKey,\r\n\tAuthenticateResponse,\r\n\tCreateKeyPairResponse,\r\n\tRegisterResponse,\r\n\tListPublicKeysResponse,\r\n} from '../types';\r\n\r\nconst authService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/owner`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\t{},\r\n\t\t\t{\r\n\t\t\t\t'x-bs-edge-sign': key,\r\n\t\t\t\t'x-bs-edge-sign-nonce': '1',\r\n\t\t\t\t'x-bs-edge-sign-timestamp': '1',\r\n\t\t\t},\r\n\t\t);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<AuthenticateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync creatKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default authService;\r\n","import {\r\n\tAuthKeys,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { CreateDeliveryRequest } from './Delivery';\r\n\r\nconst deliveryService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListDeliveriesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetDeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default deliveryService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tDefinition,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst securityPolicyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPoliciesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(policy: string, authKeys?: AuthKeys): Promise<GetPolicyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tpolicy: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPolicyService;\r\n","import { AuthKeys, ResponseWitOutData } from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { GetPrincipalResponse, ListPrincipalsResponse } from '../types';\r\nimport { CreatePrincipalRequest } from './Principal';\r\n\r\nconst securityPrincipalService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPrincipalsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetPrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPrincipalService;\r\n","import {\r\n\tResponseWitOutData,\r\n\tAuthKeys,\r\n\tGetObjectResponse,\r\n\tCreateObjectRequest,\r\n\tListObjectsResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\n\r\nconst objectService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\r\n\tasync get(object: string, authKeys: AuthKeys): Promise<GetObjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListObjectsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/match?path=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\nexport default objectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst apiKeyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tprincipal: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default apiKeyService;\r\n","import { AuthKeys } from '../types';\r\n\r\nexport enum NotificationType {\r\n\tMessage = 'message',\r\n\tInfo = 'info',\r\n\tError = 'error',\r\n}\r\n\r\nexport interface MessageData {\r\n\tobject: string;\r\n\tversion: number;\r\n\trec: string;\r\n\tvalue?: any;\r\n}\r\n\r\nexport interface InfoData {\r\n\tmessage: string;\r\n}\r\n\r\nexport interface ErrorData {\r\n\terror: string;\r\n\tcode?: string | number;\r\n}\r\n\r\nexport type Notification =\r\n\t| {\r\n\t\t\ttype: NotificationType.Error;\r\n\t\t\tdata: ErrorData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Info;\r\n\t\t\tdata: InfoData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Message;\r\n\t\t\tdata: MessageData;\r\n\t };\r\n\r\nexport type SendHandler = (deliveries: string[]) => void;\r\nexport type MessageHandler = (message: Notification) => void;\r\nexport type ErrorHandler = (error: any) => void;\r\nexport type OpenHandler = (send: SendHandler) => void;\r\nexport type CloseHandler = (e: number | CloseEvent) => void;\r\n\r\nexport interface WebSocketOptions {\r\n\tbaseUrlWs: string;\r\n\tauthKeys: AuthKeys;\r\n\tonMessage: MessageHandler;\r\n\tonOpen?: OpenHandler;\r\n\tonClose?: CloseHandler;\r\n\tonError?: ErrorHandler;\r\n}\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum PrincipalType {\r\n\tApp = 1,\r\n\tUser = 2,\r\n}\r\n\r\nexport interface CreatePrincipalRequest {\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport interface Principal extends CreatePrincipalRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport type ListPrincipalsResponse = FetchDataResponse<Principal[]>;\r\nexport type GetPrincipalResponse = FetchDataResponse<Principal>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum DeliveryType {\r\n\tWS = 1,\r\n\tHTTP = 2,\r\n\tFILE = 3,\r\n}\r\n\r\nexport interface CreateDeliveryRequest {\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface Delivery extends CreateDeliveryRequest {\r\n\tdelivery: string;\r\n}\r\n\r\nexport type ListDeliveriesResponse = FetchDataResponse<Delivery[]>;\r\nexport type GetDeliveryResponse = FetchDataResponse<Delivery>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum ObjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface InfoObject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n}\r\n\r\nexport interface CreateObjectRequest {\r\n\ttype: ObjectType;\r\n\tttl: number;\r\n\tvalidity: number;\r\n\tversionDeep: number;\r\n\tinfo: InfoObject;\r\n}\r\n\r\nexport interface ObjectResponse extends CreateObjectRequest {\r\n\tobject: string;\r\n}\r\n\r\nexport type GetObjectResponse = FetchDataResponse<ObjectResponse>;\r\nexport type ListObjectsResponse = FetchDataResponse<string[]>;\r\n","import { MessageHandler, WebSocketOptions } from '../types';\r\nimport { MessageData, NotificationType } from './WebSocket';\r\n\r\n// Type for Node.js WebSocket (ws library)\r\ntype WebSocketWs = {\r\n\taddListener(event: string, listener: (...args: any[]) => void): void;\r\n\tremoveListener(event: string, listener: (...args: any[]) => void): void;\r\n\tsend(data: string): void;\r\n\tclose(code?: number): void;\r\n};\r\n\r\n// Declare require for TypeScript (only available in Node.js)\r\ndeclare const require: ((id: string) => any) | undefined;\r\n\r\nclass WebSocketService {\r\n\tprivate socket: WebSocketWs | WebSocket | null = null;\r\n\tprivate isConnected: boolean = false;\r\n\tprivate options: WebSocketOptions;\r\n\tmessageQueue: string[] = [];\r\n\r\n\tconstructor(options: WebSocketOptions) {\r\n\t\tthis.options = options;\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate serverSocket() {\r\n\t\t// Dynamic require to avoid bundling ws in browser builds\r\n\t\tconst Ws = typeof require !== 'undefined' ? require('ws') : null;\r\n\t\tif (!Ws) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t'ws module is required for Node.js environment. Please install it: npm install ws',\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\t\tthis.socket = new Ws(`${this.options.baseUrlWs}?${auth}`) as WebSocketWs;\r\n\r\n\t\tthis.socket?.addListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sids => this.send(sids));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('message', event => {\r\n\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('error', (event: any) => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate clientSocket() {\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\r\n\t\tthis.socket = new WebSocket(\r\n\t\t\t`${this.options.baseUrlWs}?${auth}`,\r\n\t\t) as WebSocket;\r\n\r\n\t\tthis.socket?.addEventListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sid => this.send(sid));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event as CloseEvent);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('message', event => {\r\n\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('error', event => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate connect() {\r\n\t\ttypeof window === 'undefined' ? this.serverSocket() : this.clientSocket();\r\n\t}\r\n\r\n\tsend(deliveryIds: string[]) {\r\n\t\tif (this.isConnected && this.socket) {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\tthis.socket && this.socket.send(`addListenerFor=${deliveryId}`);\r\n\t\t\t\tconsole.log('Message sent, deliveryId:', deliveryId);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\t!this.messageQueue.includes(deliveryId) &&\r\n\t\t\t\t\tthis.messageQueue.push(deliveryId);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tif (this.socket) {\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tconst readyState =\r\n\t\t\t\ttypeof window === 'undefined'\r\n\t\t\t\t\t? (this.socket as any).readyState\r\n\t\t\t\t\t: (this.socket as WebSocket).readyState;\r\n\r\n\t\t\tif (\r\n\t\t\t\treadyState === WebSocket.OPEN ||\r\n\t\t\t\treadyState === WebSocket.CONNECTING ||\r\n\t\t\t\treadyState === 0 ||\r\n\t\t\t\treadyState === 1\r\n\t\t\t) {\r\n\t\t\t\tthis.socket.close(3001);\r\n\t\t\t}\r\n\t\t\tthis.messageQueue = [];\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.addListener('message', event => {\r\n\t\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.addEventListener('message', event => {\r\n\t\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.removeListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.removeEventListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default WebSocketService;\r\n","import {\r\n\tIState,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n\tCreateObjectRequest,\r\n\tGetObjectResponse,\r\n\tListObjectsResponse,\r\n\tSubjectStateResponse,\r\n\tDelivery,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tAuthenticateResponse,\r\n\tGetStateRequest,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\r\n\tDefinition,\r\n\tCreatePrincipalRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tRegisterResponse,\r\n\tCreateKeyPairResponse,\r\n\tPublicKey,\r\n\tListPublicKeysResponse,\r\n} from './types';\r\nimport stateService from './stateService/stateService';\r\nimport authService from './authService/authService';\r\nimport deliveryService from './deliveryService/deliveryService';\r\nimport securityPolicyService from './securityPolicyService/securityPolicyService';\r\nimport securityPrincipalService from './securityPrincipalService/securityPrincipalService';\r\nimport objectService from './objectService/objectService';\r\nimport apiKeyService from './apiKeyService/apiKeyService';\r\n\r\nclass BigStateHttpClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\r\n\tconstructor(data: BSHttpOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t}\r\n\t\tobjectService.apiUrl = this.baseUrl;\r\n\t\tstateService.apiUrl = this.baseUrl;\r\n\t\tsecurityPrincipalService.apiUrl = this.baseUrl;\r\n\t\tsecurityPolicyService.apiUrl = this.baseUrl;\r\n\t\tdeliveryService.apiUrl = this.baseUrl;\r\n\t\tauthService.apiUrl = this.baseUrl;\r\n\t\tapiKeyService.apiUrl = this.baseUrl;\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await authService.signUp(key);\r\n\t}\r\n\r\n\tasync creatKeyPrincipal(principal: string): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.creatKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.deleteKeyPrincipal(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await authService.getListKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync signInPrincipal(principal: string): Promise<AuthenticateResponse> {\r\n\t\treturn await authService.signInPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await apiKeyService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(principal: string): Promise<ListApiKeysResponse> {\r\n\t\treturn await apiKeyService.getList(principal, this.authKey);\r\n\t}\r\n\r\n\tasync objectCreate(\r\n\t\tobject: string,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await objectService.create(object, this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGet(sid: string): Promise<GetObjectResponse> {\r\n\t\treturn await objectService.get(sid, this.authKey);\r\n\t}\r\n\r\n\tasync objectGetList(object: string): Promise<ListObjectsResponse> {\r\n\t\treturn await objectService.getList(object, this.authKey);\r\n\t}\r\n\r\n\tasync stateSet<T = any>(\r\n\t\tsid: string,\r\n\t\tdata: IState<T>,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await stateService.set<T>(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateSetValueRef(\r\n\t\tsid: string,\r\n\t\tdata: File,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await stateService.setRef(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGet<T = any>(\r\n\t\tdata: GetStateRequest,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.get<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGetRef(data: GetStateRefRequest): Promise<GetValueRefResponse> {\r\n\t\treturn await stateService.getRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync getVersionList<T = any>(\r\n\t\tobject: string,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.getVersionList<T>(object, this.authKey);\r\n\t}\r\n\r\n\tasync getRefList(object: string): Promise<ValueListRefResponse> {\r\n\t\treturn await stateService.getRefList(object, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principal: string): Promise<GetPrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principal, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(): Promise<ListPrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync principalDelete(principal: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.delete(principal, this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(policy, data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policy: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policy: string): Promise<GetPolicyResponse> {\r\n\t\treturn await securityPolicyService.get(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(): Promise<ListPoliciesResponse> {\r\n\t\treturn await securityPolicyService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(\r\n\t\tdata: Delivery,\r\n\t\tdelivery: string,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(delivery, data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(delivery: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(delivery: string): Promise<GetDeliveryResponse> {\r\n\t\treturn await deliveryService.get(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(): Promise<ListDeliveriesResponse> {\r\n\t\treturn await deliveryService.getList(this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import { BSDeliveryWsOptions, MessageHandler, SendHandler } from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\r\nimport { Notification, NotificationType } from './webSocketService/WebSocket';\r\n\r\nclass BigStateWsDeliveryClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\tprivate socket: WebSocketService | null = null;\r\n\tprivate reconnectCount = 0;\r\n\tprivate reconnectTime = 5000;\r\n\tprivate defaultReconnectTime = 5000;\r\n\tprivate maxReconnectCount = 11;\r\n\tprivate messages: Set<string> = new Set<string>([]);\r\n\tprivate callbacks: { key: string; callback: MessageHandler }[] = [];\r\n\tprivate timerId: ReturnType<typeof setTimeout> | null = null;\r\n\r\n\tconstructor(data: BSDeliveryWsOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { maxReconnectCount, reconnectTime, token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tmaxReconnectCount && (this.maxReconnectCount = maxReconnectCount);\r\n\t\t\treconnectTime && (this.reconnectTime = reconnectTime);\r\n\t\t\treconnectTime && (this.defaultReconnectTime = reconnectTime);\r\n\t\t}\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tonOpenSocket(send: SendHandler, sids: string[]) {\r\n\t\tsend(sids);\r\n\t}\r\n\r\n\tretry(error: any, onMessage: MessageHandler) {\r\n\t\tthis.reconnectCount += 1;\r\n\t\tif (this.reconnectCount > this.maxReconnectCount) {\r\n\t\t\tonMessage && onMessage({ type: NotificationType.Error, data: { error } });\r\n\t\t\tconsole.log('reconnect ' + this.reconnectCount);\r\n\t\t\tif (this.timerId) {\r\n\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\tthis.callbacks = [];\r\n\t\t\t\tthis.messages = new Set<string>();\r\n\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t}\r\n\t\t\tthis.reconnectCount = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.unsubscribeStateUpdate();\r\n\t\tif (!(this.reconnectCount > this.maxReconnectCount)) {\r\n\t\t\tthis.subscribeStateUpdate(Array.from(this.messages), onMessage);\r\n\t\t\tthis.callbacks.forEach(({ callback, key }) =>\r\n\t\t\t\tthis.addWsEventListener(callback, key),\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\topenSocket(deliveries: string[], onMessage: MessageHandler) {\r\n\t\tconst options = {\r\n\t\t\tbaseUrlWs: this.baseUrl,\r\n\t\t\tauthKeys: this.authKey,\r\n\t\t\tonOpen: (send: SendHandler) => {\r\n\t\t\t\tthis.reconnectCount = 0;\r\n\t\t\t\tif (this.timerId) {\r\n\t\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t\t}\r\n\t\t\t\tthis.onOpenSocket(send, deliveries);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Info,\r\n\t\t\t\t\tdata: { message: 'webSocket opened' },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonMessage: (message: Notification) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (message: Notification) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(message.data));\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonClose: (event: number | CloseEvent) => {\r\n\t\t\t\tconsole.log('webSocket close', event);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Error,\r\n\t\t\t\t\tdata: { error: 'webSocket close' },\r\n\t\t\t\t});\r\n\t\t\t\tif (event !== 3001) {\r\n\t\t\t\t\t!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\tthis.timerId = setTimeout(\r\n\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t!!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\t\t\tthis.reconnectTime *= 1.5;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.reconnectCount === 1\r\n\t\t\t\t\t\t\t? this.defaultReconnectTime\r\n\t\t\t\t\t\t\t: Math.round(this.reconnectTime),\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.unsubscribeStateUpdate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tthis.socket = new WebSocketService(options);\r\n\t}\r\n\r\n\tsubscribeStateUpdate(deliveries: string[], onMessage?: MessageHandler) {\r\n\t\tthis.messages = new Set([...this.messages, ...deliveries]);\r\n\t\tif (!this.socket) {\r\n\t\t\tonMessage && this.openSocket(deliveries, onMessage);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.socket.send(deliveries);\r\n\t}\r\n\r\n\tunsubscribeStateUpdate() {\r\n\t\tif (this.timerId) {\r\n\t\t\tclearTimeout(this.timerId);\r\n\t\t\tthis.timerId = null;\r\n\t\t}\r\n\t\tif (this.socket) {\r\n\t\t\tthis.socket.close();\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\tisSocketConnected(): boolean {\r\n\t\treturn !!this.socket;\r\n\t}\r\n\r\n\taddWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.addEventListener(callback);\r\n\t\t!this.callbacks.find(el => el.key === key) &&\r\n\t\t\tthis.callbacks.push({ key, callback });\r\n\t}\r\n\r\n\tremoveWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.removeEventListener(callback);\r\n\t\tthis.callbacks = this.callbacks.filter(data => data.key !== key);\r\n\t}\r\n}\r\n\r\nexport default BigStateWsDeliveryClient;\r\n"],"names":["handleError","error","Response","code","status","message","statusText","Error","toSearchParams","data","params","URLSearchParams","Object","entries","forEach","key","value","append","String","toString","fetchData","async","baseUrl","method","body","authKeys","headersCustom","headers","isJson","Blob","File","ArrayBuffer","Uint8Array","isBinaryBody","FormData","apiKey","token","fetchDataClient","res","fetch","JSON","stringify","cache","ok","contentType","get","includes","arrayBuffer","text","parse","_apiUrl","Symbol","stateService","apiUrl","this","set","object","setRef","getRef","getVersionList","getRefList","authService","signUp","signInPrincipal","principal","creatKeyPrincipal","deleteKeyPrincipal","getListKeyPrincipal","deliveryService","getList","create","delivery","securityPolicyService","policy","securityPrincipalService","objectService","apiKeyService","NotificationType","PrincipalType","DeliveryType","ObjectType","exports","WebSocketService","constructor","options","socket","isConnected","messageQueue","connect","serverSocket","Ws","require","auth","_a","encodeURIComponent","_b","_c","baseUrlWs","_d","addListener","onOpen","sids","send","console","log","length","_e","event","onClose","_f","newMessage","onMessage","type","Message","_g","onError","clientSocket","WebSocket","addEventListener","sid","window","deliveryIds","deliveryId","push","close","readyState","OPEN","CONNECTING","callback","removeEventListener","removeListener","_apiKey","_token","authKey","createApiKey","deleteApiKey","delete","getListApiKey","objectCreate","objectGet","objectGetList","stateSet","stateSetValueRef","stateGet","stateGetRef","principalCreate","principalGet","principalGetList","principalDelete","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","addWsEventListener","openSocket","deliveries","Info","setTimeout","Math","round","clearTimeout","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../src/handleError.ts","../src/helpers/common.ts","../src/fetchService.ts","../src/constants/index.ts","../src/stateService/stateService.ts","../src/authService/authService.ts","../src/deliveryService/deliveryService.ts","../src/securityPolicyService/securityPolicyService.ts","../src/securityPrincipalService/securityPrincipalService.ts","../src/objectService/objectService.ts","../src/apiKeyService/apiKeyService.ts","../src/webSocketService/WebSocket.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/objectService/Object.ts","../src/webSocketService/webSocketService.ts","../src/bsClientHttpClient.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorResponse } from './types';\r\n\r\nexport const handleError = (error: any): ErrorResponse => {\r\n\tif (error instanceof Response) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: error.status,\r\n\t\t\t\tmessage: error.statusText,\r\n\t\t\t},\r\n\t\t};\r\n\t} else if (error instanceof Error) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t},\r\n\t\t};\r\n\t} else {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: 'Unknown error',\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n};\r\n","export const isBinaryBody = (body: any): boolean =>\r\n\tbody instanceof Blob ||\r\n\tbody instanceof File ||\r\n\tbody instanceof ArrayBuffer ||\r\n\tbody instanceof Uint8Array;\r\n\r\nexport const toSearchParams = (data: Record<string, unknown>): string => {\r\n\tconst params = new URLSearchParams();\r\n\r\n\tObject.entries(data).forEach(([key, value]) => {\r\n\t\tif (value !== undefined && value !== null) {\r\n\t\t\tparams.append(key, String(value));\r\n\t\t}\r\n\t});\r\n\r\n\treturn params.toString();\r\n};\r\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\nimport { isBinaryBody } from './helpers/common';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nexport const fetchData = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tbody: any = null,\r\n\tauthKeys: AuthKeys = {},\r\n\theadersCustom: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\tconst headers: HeadersType = {\r\n\t\t...headersCustom,\r\n\t};\r\n\r\n\tconst isJson =\r\n\t\tbody &&\r\n\t\ttypeof body === 'object' &&\r\n\t\t!isBinaryBody(body) &&\r\n\t\t!(body instanceof FormData);\r\n\r\n\tif (isJson) {\r\n\t\theaders['Content-Type'] = 'application/json';\r\n\t\theaders['Accept'] = 'application/json';\r\n\t}\r\n\r\n\tif (authKeys?.apiKey) {\r\n\t\theaders['x-api-key'] = authKeys.apiKey;\r\n\t}\r\n\r\n\tif (authKeys?.token) {\r\n\t\theaders['x-auth'] = authKeys.token;\r\n\t}\r\n\r\n\treturn fetchDataClient(baseUrl, method, isJson, body, headers);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tisJson: boolean,\r\n\tbody: any = null,\r\n\theaders: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\ttry {\r\n\t\tconst res = await fetch(baseUrl, {\r\n\t\t\tmethod,\r\n\t\t\theaders,\r\n\t\t\tbody: body ? (isJson ? JSON.stringify(body) : body) : null,\r\n\t\t\tcache: 'no-store',\r\n\t\t});\r\n\r\n\t\tif (!res.ok) {\r\n\t\t\treturn handleError(res);\r\n\t\t}\r\n\r\n\t\tconst contentType = res.headers.get('content-type') || '';\r\n\r\n\t\tif (\r\n\t\t\tcontentType.includes('application/octet-stream') ||\r\n\t\t\tcontentType.includes('application/pdf') ||\r\n\t\t\tcontentType.includes('image/')\r\n\t\t) {\r\n\t\t\tconst buffer = await res.arrayBuffer();\r\n\t\t\treturn { data: buffer };\r\n\t\t}\r\n\r\n\t\tconst text = await res.text();\r\n\r\n\t\tif (!text) {\r\n\t\t\treturn { data: null };\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\treturn { data: JSON.parse(text) };\r\n\t\t} catch {\r\n\t\t\treturn { data: text };\r\n\t\t}\r\n\t} catch (error) {\r\n\t\treturn handleError(error);\r\n\t}\r\n};\r\n","export const _apiUrl = Symbol('apiUrl');\r\n","import {\r\n\tIState,\r\n\tSubjectStateResponse,\r\n\tAuthKeys,\r\n\tSetStateResponse,\r\n\tGetStateRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst stateService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync set<T>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync setRef(\r\n\t\tobject: string,\r\n\t\tdata: File,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get<T>(\r\n\t\tdata: GetStateRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?${toSearchParams({ ...data })}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getVersionList<T>(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/version?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRefList(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ValueListRefResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default stateService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tPublicKey,\r\n\tAuthenticateResponse,\r\n\tCreateKeyPairResponse,\r\n\tRegisterResponse,\r\n\tListPublicKeysResponse,\r\n} from '../types';\r\n\r\nconst authService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/owner`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\t{},\r\n\t\t\t{\r\n\t\t\t\t'x-bs-edge-sign': key,\r\n\t\t\t\t'x-bs-edge-sign-nonce': '1',\r\n\t\t\t\t'x-bs-edge-sign-timestamp': '1',\r\n\t\t\t},\r\n\t\t);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<AuthenticateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync creatKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default authService;\r\n","import {\r\n\tAuthKeys,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { CreateDeliveryRequest } from './Delivery';\r\n\r\nconst deliveryService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListDeliveriesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetDeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default deliveryService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tDefinition,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst securityPolicyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPoliciesResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(policy: string, authKeys?: AuthKeys): Promise<GetPolicyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tpolicy: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPolicyService;\r\n","import { AuthKeys, ResponseWitOutData } from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { GetPrincipalResponse, ListPrincipalsResponse } from '../types';\r\nimport { CreatePrincipalRequest } from './Principal';\r\n\r\nconst securityPrincipalService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync getList(authKeys?: AuthKeys): Promise<ListPrincipalsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/match`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetPrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default securityPrincipalService;\r\n","import {\r\n\tResponseWitOutData,\r\n\tAuthKeys,\r\n\tGetObjectResponse,\r\n\tCreateObjectRequest,\r\n\tListObjectsResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\n\r\nconst objectService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\r\n\tasync get(object: string, authKeys: AuthKeys): Promise<GetObjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListObjectsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/match?path=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\nexport default objectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\n\r\nconst apiKeyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tprincipal: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/match?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default apiKeyService;\r\n","import { AuthKeys } from '../types';\r\n\r\nexport enum NotificationType {\r\n\tMessage = 'message',\r\n\tInfo = 'info',\r\n\tError = 'error',\r\n}\r\n\r\nexport interface MessageData {\r\n\tobject: string;\r\n\tversion: number;\r\n\trec: string;\r\n\tvalue?: any;\r\n\tvalueRef?: string;\r\n}\r\n\r\nexport interface InfoData {\r\n\tmessage: string;\r\n}\r\n\r\nexport interface ErrorData {\r\n\terror: string;\r\n\tcode?: string | number;\r\n}\r\n\r\nexport type Notification =\r\n\t| {\r\n\t\t\ttype: NotificationType.Error;\r\n\t\t\tdata: ErrorData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Info;\r\n\t\t\tdata: InfoData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Message;\r\n\t\t\tdata: MessageData;\r\n\t };\r\n\r\nexport type SendHandler = (deliveries: string[]) => void;\r\nexport type MessageHandler = (message: Notification) => void;\r\nexport type ErrorHandler = (error: any) => void;\r\nexport type OpenHandler = (send: SendHandler) => void;\r\nexport type CloseHandler = (e: number | CloseEvent) => void;\r\n\r\nexport interface WebSocketOptions {\r\n\tbaseUrlWs: string;\r\n\tauthKeys: AuthKeys;\r\n\tonMessage: MessageHandler;\r\n\tonOpen?: OpenHandler;\r\n\tonClose?: CloseHandler;\r\n\tonError?: ErrorHandler;\r\n}\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum PrincipalType {\r\n\tApp = 1,\r\n\tUser = 2,\r\n}\r\n\r\nexport interface CreatePrincipalRequest {\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport interface Principal extends CreatePrincipalRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport type ListPrincipalsResponse = FetchDataResponse<Principal[]>;\r\nexport type GetPrincipalResponse = FetchDataResponse<Principal>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum DeliveryType {\r\n\tWS = 1,\r\n\tHTTP = 2,\r\n\tFILE = 3,\r\n}\r\n\r\nexport interface CreateDeliveryRequest {\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface Delivery extends CreateDeliveryRequest {\r\n\tdelivery: string;\r\n}\r\n\r\nexport type ListDeliveriesResponse = FetchDataResponse<Delivery[]>;\r\nexport type GetDeliveryResponse = FetchDataResponse<Delivery>;\r\n","import { FetchDataResponse } from '../types';\r\n\r\nexport enum ObjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface InfoObject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n}\r\n\r\nexport interface CreateObjectRequest {\r\n\ttype: ObjectType;\r\n\tttl: number;\r\n\tvalidity: number;\r\n\tversionDeep: number;\r\n\tinfo: InfoObject;\r\n}\r\n\r\nexport interface ObjectResponse extends CreateObjectRequest {\r\n\tobject: string;\r\n}\r\n\r\nexport type GetObjectResponse = FetchDataResponse<ObjectResponse>;\r\nexport type ListObjectsResponse = FetchDataResponse<string[]>;\r\n","import { MessageHandler, WebSocketOptions } from '../types';\r\nimport { MessageData, NotificationType } from './WebSocket';\r\n\r\n// Type for Node.js WebSocket (ws library)\r\ntype WebSocketWs = {\r\n\taddListener(event: string, listener: (...args: any[]) => void): void;\r\n\tremoveListener(event: string, listener: (...args: any[]) => void): void;\r\n\tsend(data: string): void;\r\n\tclose(code?: number): void;\r\n};\r\n\r\n// Declare require for TypeScript (only available in Node.js)\r\ndeclare const require: ((id: string) => any) | undefined;\r\n\r\nclass WebSocketService {\r\n\tprivate socket: WebSocketWs | WebSocket | null = null;\r\n\tprivate isConnected: boolean = false;\r\n\tprivate options: WebSocketOptions;\r\n\tmessageQueue: string[] = [];\r\n\r\n\tconstructor(options: WebSocketOptions) {\r\n\t\tthis.options = options;\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate serverSocket() {\r\n\t\t// Dynamic require to avoid bundling ws in browser builds\r\n\t\tconst Ws = typeof require !== 'undefined' ? require('ws') : null;\r\n\t\tif (!Ws) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t'ws module is required for Node.js environment. Please install it: npm install ws',\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\t\tthis.socket = new Ws(`${this.options.baseUrlWs}?${auth}`) as WebSocketWs;\r\n\r\n\t\tthis.socket?.addListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sids => this.send(sids));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('message', event => {\r\n\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('error', (event: any) => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate clientSocket() {\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\r\n\t\tthis.socket = new WebSocket(\r\n\t\t\t`${this.options.baseUrlWs}?${auth}`,\r\n\t\t) as WebSocket;\r\n\r\n\t\tthis.socket?.addEventListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(sid => this.send(sid));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event as CloseEvent);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('message', event => {\r\n\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('error', event => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate connect() {\r\n\t\ttypeof window === 'undefined' ? this.serverSocket() : this.clientSocket();\r\n\t}\r\n\r\n\tsend(deliveryIds: string[]) {\r\n\t\tif (this.isConnected && this.socket) {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\tthis.socket && this.socket.send(`delivery.listen=${deliveryId}`);\r\n\t\t\t\tconsole.log('Message sent, deliveryId:', deliveryId);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\t!this.messageQueue.includes(deliveryId) &&\r\n\t\t\t\t\tthis.messageQueue.push(deliveryId);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tif (this.socket) {\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tconst readyState =\r\n\t\t\t\ttypeof window === 'undefined'\r\n\t\t\t\t\t? (this.socket as any).readyState\r\n\t\t\t\t\t: (this.socket as WebSocket).readyState;\r\n\r\n\t\t\tif (\r\n\t\t\t\treadyState === WebSocket.OPEN ||\r\n\t\t\t\treadyState === WebSocket.CONNECTING ||\r\n\t\t\t\treadyState === 0 ||\r\n\t\t\t\treadyState === 1\r\n\t\t\t) {\r\n\t\t\t\tthis.socket.close(3001);\r\n\t\t\t}\r\n\t\t\tthis.messageQueue = [];\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.addListener('message', event => {\r\n\t\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.addEventListener('message', event => {\r\n\t\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.removeListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.removeEventListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default WebSocketService;\r\n","import {\r\n\tIState,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n\tCreateObjectRequest,\r\n\tGetObjectResponse,\r\n\tListObjectsResponse,\r\n\tSubjectStateResponse,\r\n\tDelivery,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tAuthenticateResponse,\r\n\tGetStateRequest,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\r\n\tDefinition,\r\n\tCreatePrincipalRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tRegisterResponse,\r\n\tCreateKeyPairResponse,\r\n\tPublicKey,\r\n\tListPublicKeysResponse,\r\n} from './types';\r\nimport stateService from './stateService/stateService';\r\nimport authService from './authService/authService';\r\nimport deliveryService from './deliveryService/deliveryService';\r\nimport securityPolicyService from './securityPolicyService/securityPolicyService';\r\nimport securityPrincipalService from './securityPrincipalService/securityPrincipalService';\r\nimport objectService from './objectService/objectService';\r\nimport apiKeyService from './apiKeyService/apiKeyService';\r\n\r\nclass BigStateHttpClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\r\n\tconstructor(data: BSHttpOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t}\r\n\t\tobjectService.apiUrl = this.baseUrl;\r\n\t\tstateService.apiUrl = this.baseUrl;\r\n\t\tsecurityPrincipalService.apiUrl = this.baseUrl;\r\n\t\tsecurityPolicyService.apiUrl = this.baseUrl;\r\n\t\tdeliveryService.apiUrl = this.baseUrl;\r\n\t\tauthService.apiUrl = this.baseUrl;\r\n\t\tapiKeyService.apiUrl = this.baseUrl;\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await authService.signUp(key);\r\n\t}\r\n\r\n\tasync creatKeyPrincipal(principal: string): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.creatKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.deleteKeyPrincipal(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await authService.getListKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync signInPrincipal(principal: string): Promise<AuthenticateResponse> {\r\n\t\treturn await authService.signInPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await apiKeyService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(principal: string): Promise<ListApiKeysResponse> {\r\n\t\treturn await apiKeyService.getList(principal, this.authKey);\r\n\t}\r\n\r\n\tasync objectCreate(\r\n\t\tobject: string,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await objectService.create(object, this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGet(sid: string): Promise<GetObjectResponse> {\r\n\t\treturn await objectService.get(sid, this.authKey);\r\n\t}\r\n\r\n\tasync objectGetList(object: string): Promise<ListObjectsResponse> {\r\n\t\treturn await objectService.getList(object, this.authKey);\r\n\t}\r\n\r\n\tasync stateSet<T = any>(\r\n\t\tsid: string,\r\n\t\tdata: IState<T>,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await stateService.set<T>(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateSetValueRef(\r\n\t\tsid: string,\r\n\t\tdata: File,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await stateService.setRef(sid, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGet<T = any>(\r\n\t\tdata: GetStateRequest,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.get<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGetRef(data: GetStateRefRequest): Promise<GetValueRefResponse> {\r\n\t\treturn await stateService.getRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync getVersionList<T = any>(\r\n\t\tobject: string,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.getVersionList<T>(object, this.authKey);\r\n\t}\r\n\r\n\tasync getRefList(object: string): Promise<ValueListRefResponse> {\r\n\t\treturn await stateService.getRefList(object, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principal: string): Promise<GetPrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principal, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(): Promise<ListPrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync principalDelete(principal: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.delete(principal, this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(policy, data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policy: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policy: string): Promise<GetPolicyResponse> {\r\n\t\treturn await securityPolicyService.get(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(): Promise<ListPoliciesResponse> {\r\n\t\treturn await securityPolicyService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(\r\n\t\tdata: Delivery,\r\n\t\tdelivery: string,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(delivery, data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(delivery: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(delivery: string): Promise<GetDeliveryResponse> {\r\n\t\treturn await deliveryService.get(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(): Promise<ListDeliveriesResponse> {\r\n\t\treturn await deliveryService.getList(this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import { BSDeliveryWsOptions, MessageHandler, SendHandler } from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\r\nimport { Notification, NotificationType } from './webSocketService/WebSocket';\r\n\r\nclass BigStateWsDeliveryClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\tprivate socket: WebSocketService | null = null;\r\n\tprivate reconnectCount = 0;\r\n\tprivate reconnectTime = 5000;\r\n\tprivate defaultReconnectTime = 5000;\r\n\tprivate maxReconnectCount = 11;\r\n\tprivate messages: Set<string> = new Set<string>([]);\r\n\tprivate callbacks: { key: string; callback: MessageHandler }[] = [];\r\n\tprivate timerId: ReturnType<typeof setTimeout> | null = null;\r\n\r\n\tconstructor(data: BSDeliveryWsOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { maxReconnectCount, reconnectTime, token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tmaxReconnectCount && (this.maxReconnectCount = maxReconnectCount);\r\n\t\t\treconnectTime && (this.reconnectTime = reconnectTime);\r\n\t\t\treconnectTime && (this.defaultReconnectTime = reconnectTime);\r\n\t\t}\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tonOpenSocket(send: SendHandler, sids: string[]) {\r\n\t\tsend(sids);\r\n\t}\r\n\r\n\tretry(error: any, onMessage: MessageHandler) {\r\n\t\tthis.reconnectCount += 1;\r\n\t\tif (this.reconnectCount > this.maxReconnectCount) {\r\n\t\t\tonMessage && onMessage({ type: NotificationType.Error, data: { error } });\r\n\t\t\tconsole.log('reconnect ' + this.reconnectCount);\r\n\t\t\tif (this.timerId) {\r\n\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\tthis.callbacks = [];\r\n\t\t\t\tthis.messages = new Set<string>();\r\n\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t}\r\n\t\t\tthis.reconnectCount = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.unsubscribeStateUpdate();\r\n\t\tif (!(this.reconnectCount > this.maxReconnectCount)) {\r\n\t\t\tthis.subscribeStateUpdate(Array.from(this.messages), onMessage);\r\n\t\t\tthis.callbacks.forEach(({ callback, key }) =>\r\n\t\t\t\tthis.addWsEventListener(callback, key),\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\topenSocket(deliveries: string[], onMessage: MessageHandler) {\r\n\t\tconst options = {\r\n\t\t\tbaseUrlWs: this.baseUrl,\r\n\t\t\tauthKeys: this.authKey,\r\n\t\t\tonOpen: (send: SendHandler) => {\r\n\t\t\t\tthis.reconnectCount = 0;\r\n\t\t\t\tif (this.timerId) {\r\n\t\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t\t}\r\n\t\t\t\tthis.onOpenSocket(send, deliveries);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Info,\r\n\t\t\t\t\tdata: { message: 'webSocket opened' },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonMessage: (message: Notification) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (message: Notification) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(message.data));\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonClose: (event: number | CloseEvent) => {\r\n\t\t\t\tconsole.log('webSocket close', event);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Error,\r\n\t\t\t\t\tdata: { error: 'webSocket close' },\r\n\t\t\t\t});\r\n\t\t\t\tif (event !== 3001) {\r\n\t\t\t\t\t!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\tthis.timerId = setTimeout(\r\n\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t!!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\t\t\tthis.reconnectTime *= 1.5;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.reconnectCount === 1\r\n\t\t\t\t\t\t\t? this.defaultReconnectTime\r\n\t\t\t\t\t\t\t: Math.round(this.reconnectTime),\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.unsubscribeStateUpdate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tthis.socket = new WebSocketService(options);\r\n\t}\r\n\r\n\tsubscribeStateUpdate(deliveries: string[], onMessage?: MessageHandler) {\r\n\t\tthis.messages = new Set([...this.messages, ...deliveries]);\r\n\t\tif (!this.socket) {\r\n\t\t\tonMessage && this.openSocket(deliveries, onMessage);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.socket.send(deliveries);\r\n\t}\r\n\r\n\tunsubscribeStateUpdate() {\r\n\t\tif (this.timerId) {\r\n\t\t\tclearTimeout(this.timerId);\r\n\t\t\tthis.timerId = null;\r\n\t\t}\r\n\t\tif (this.socket) {\r\n\t\t\tthis.socket.close();\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\tisSocketConnected(): boolean {\r\n\t\treturn !!this.socket;\r\n\t}\r\n\r\n\taddWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.addEventListener(callback);\r\n\t\t!this.callbacks.find(el => el.key === key) &&\r\n\t\t\tthis.callbacks.push({ key, callback });\r\n\t}\r\n\r\n\tremoveWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.removeEventListener(callback);\r\n\t\tthis.callbacks = this.callbacks.filter(data => data.key !== key);\r\n\t}\r\n}\r\n\r\nexport default BigStateWsDeliveryClient;\r\n"],"names":["handleError","error","Response","code","status","message","statusText","Error","toSearchParams","data","params","URLSearchParams","Object","entries","forEach","key","value","append","String","toString","fetchData","async","baseUrl","method","body","authKeys","headersCustom","headers","isJson","Blob","File","ArrayBuffer","Uint8Array","isBinaryBody","FormData","apiKey","token","fetchDataClient","res","fetch","JSON","stringify","cache","ok","contentType","get","includes","arrayBuffer","text","parse","_apiUrl","Symbol","stateService","apiUrl","this","set","object","setRef","getRef","getVersionList","getRefList","authService","signUp","signInPrincipal","principal","creatKeyPrincipal","deleteKeyPrincipal","getListKeyPrincipal","deliveryService","getList","create","delivery","securityPolicyService","policy","securityPrincipalService","objectService","apiKeyService","NotificationType","PrincipalType","DeliveryType","ObjectType","exports","WebSocketService","constructor","options","socket","isConnected","messageQueue","connect","serverSocket","Ws","require","auth","_a","encodeURIComponent","_b","_c","baseUrlWs","_d","addListener","onOpen","sids","send","console","log","length","_e","event","onClose","_f","newMessage","onMessage","type","Message","_g","onError","clientSocket","WebSocket","addEventListener","sid","window","deliveryIds","deliveryId","push","close","readyState","OPEN","CONNECTING","callback","removeEventListener","removeListener","_apiKey","_token","authKey","createApiKey","deleteApiKey","delete","getListApiKey","objectCreate","objectGet","objectGetList","stateSet","stateSetValueRef","stateGet","stateGetRef","principalCreate","principalGet","principalGetList","principalDelete","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","addWsEventListener","openSocket","deliveries","Info","setTimeout","Math","round","clearTimeout","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"+OAEO,MAAMA,EAAeC,GACvBA,aAAiBC,SACb,CACND,MAAO,CACNE,KAAMF,EAAMG,OACZC,QAASJ,EAAMK,aAGPL,aAAiBM,MACpB,CACNN,MAAO,CACNE,KAAM,IACNE,QAASJ,EAAMI,UAIV,CACNJ,MAAO,CACNE,KAAM,IACNE,QAAS,kBCfAG,EAAkBC,IAC9B,MAAMC,EAAS,IAAIC,gBAQnB,OANAC,OAAOC,QAAQJ,GAAMK,QAAQ,EAAEC,EAAKC,MAC/BA,SACHN,EAAOO,OAAOF,EAAKG,OAAOF,MAIrBN,EAAOS,YCRFC,EAAYC,MACxBC,EACAC,EACAC,EAAY,KACZC,EAAqB,CAAA,EACrBC,EAA6B,MAE7B,MAAMC,EAAuB,IACzBD,GAGEE,EACLJ,GACgB,iBAATA,IDpBmB,CAACA,GAC5BA,aAAgBK,MAChBL,aAAgBM,MAChBN,aAAgBO,aAChBP,aAAgBQ,WCiBdC,CAAaT,MACZA,aAAgBU,UAenB,OAbIN,IACHD,EAAQ,gBAAkB,mBAC1BA,EAAgB,OAAI,qBAGjBF,aAAQ,EAARA,EAAUU,UACbR,EAAQ,aAAeF,EAASU,SAG7BV,aAAQ,EAARA,EAAUW,SACbT,EAAQ,UAAYF,EAASW,OAGvBC,EAAgBf,EAASC,EAAQK,EAAQJ,EAAMG,IAG1CU,EAAkBhB,MAC9BC,EACAC,EACAK,EACAJ,EAAY,KACZG,EAAuB,MAEvB,IACC,MAAMW,QAAYC,MAAMjB,EAAS,CAChCC,SACAI,UACAH,KAAMA,EAAQI,EAASY,KAAKC,UAAUjB,GAAQA,EAAQ,KACtDkB,MAAO,aAGR,IAAKJ,EAAIK,GACR,OAAO3C,EAAYsC,GAGpB,MAAMM,EAAcN,EAAIX,QAAQkB,IAAI,iBAAmB,GAEvD,GACCD,EAAYE,SAAS,6BACrBF,EAAYE,SAAS,oBACrBF,EAAYE,SAAS,UACpB,CAED,MAAO,CAAErC,WADY6B,EAAIS,cAEzB,CAED,MAAMC,QAAaV,EAAIU,OAEvB,IAAKA,EACJ,MAAO,CAAEvC,KAAM,MAGhB,IACC,MAAO,CAAEA,KAAM+B,KAAKS,MAAMD,GAC1B,CAAC,MACD,MAAO,CAAEvC,KAAMuC,EACf,CACD,CAAC,MAAO/C,GACR,OAAOD,EAAYC,EACnB,GCnFWiD,EAAUC,OAAO,UCexBC,EAAe,CACpBF,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,SAAMuC,CACLC,EACA/C,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,mBAAyBM,IACnC,OACA/C,EACAgB,EAED,EACD,YAAMgC,CACLD,EACA/C,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,mBAAyBM,IACnC,OACA/C,EACAgB,EAED,EACD,SAAMoB,CACLpC,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAI,EAAJA,KAAOJ,YAAkB1C,EAAe,IAAKC,MAChD,MACA,KACAgB,EAED,EACD,YAAMiC,CACLjD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAI,EAAJA,KAAOJ,YAAkB1C,EAAe,IAAKC,MAChD,MACA,KACAgB,EAED,EACD,oBAAMkC,CACLH,EACA/B,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,qBAA2BM,IACrC,MACA,KACA/B,EAED,EACD,gBAAMmC,CACLJ,EACA/B,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,mBAAyBM,IACnC,MACA,KACA/B,EAED,GC/EIoC,EAAc,CACnBX,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,YAAM8C,CAAO/C,GACZ,aAAaK,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,WACV,OACA,KACA,GACA,CACC,iBAAkBnC,EAClB,uBAAwB,IACxB,2BAA4B,KAG9B,EACD,qBAAMgD,CACLC,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,sBAA4Bc,IACtC,OACA,KACAvC,EAED,EACD,uBAAMwC,CACLD,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8Bc,IACxC,OACA,KACAvC,EAED,EACD,wBAAMyC,CACLF,EACAvD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8Bc,IACxC,SACAvD,EACAgB,EAED,EACD,yBAAM0C,CACLH,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,8BAAoCc,IAC9C,MACA,KACAvC,EAED,GClEI2C,EAAkB,CACvBlB,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,aAAMqD,CAAQ5C,GACb,aAAaL,EACZ,GAAGkC,kBAAAA,KAAOJ,oBACV,MACA,KACAzB,EAED,EACD,YAAM6C,CACLC,EACA9D,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8BqB,IACxC,OACA9D,EACAgB,EAED,EACD,SAAMoB,CACL0B,EACA9C,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8BqB,IACxC,MACA,KACA9C,EAED,EACD,YAAM,CACL8C,EACA9C,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8BqB,IACxC,SACA,KACA9C,EAED,GCjDI+C,EAAwB,CAC7BtB,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,aAAMqD,CAAQ5C,GACb,aAAaL,EACZ,GAAGkC,kBAAAA,KAAOJ,kBACV,MACA,KACAzB,EAED,EACD,YAAM6C,CACLG,EACAhE,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BuB,IACpC,OACAhE,EACAgB,EAED,EACD,SAAMoB,CAAI4B,EAAgBhD,GACzB,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BuB,IACpC,MACA,KACAhD,EAED,EACD,YAAM,CACLgD,EACAhD,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BuB,IACpC,SACA,KACAhD,EAED,GClDIiD,EAA2B,CAChCxB,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,aAAMqD,CAAQ5C,GACb,aAAaL,EACZ,GAAGkC,kBAAAA,KAAOJ,qBACV,MACA,KACAzB,EAED,EACD,YAAM6C,CACLN,EACAvD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,0BAAgCc,IAC1C,OACAvD,EACAgB,EAED,EACD,SAAMoB,CACLmB,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,0BAAgCc,IAC1C,MACA,KACAvC,EAED,EACD,YAAM,CACLuC,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,0BAAgCc,IAC1C,SACA,KACAvC,EAED,GC7CIkD,EAAgB,CACrBzB,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,YAAMsD,CACLd,EACA/B,EACAhB,GAEA,aAAaW,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BM,IACpC,OACA/C,EACAgB,EAED,EAED,SAAMoB,CAAIW,EAAgB/B,GACzB,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,oBAA0BM,IACpC,MACA,KACA/B,EAED,EACD,aAAM4C,CACLb,EACA/B,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,wBAA8BM,IACxC,MACA,KACA/B,EAED,GCvCImD,EAAgB,CACrB1B,CAACA,GAAU,GACX,UAAIG,CAAOrC,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,2BAEjB+C,KAAKJ,GAAWlC,CAChB,EACD,YAAMsD,CACLN,EACAvD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,uBAA6Bc,IACvC,OACAvD,EACAgB,EAED,EACD,aAAM4C,CACLL,EACAvC,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,6BAAmCc,IAC7C,MACA,KACAvC,EAED,EACD,YAAM,CACLuC,EACAvD,EACAgB,GAEA,aAAaL,EACZ,GAAGkC,gBAAA,EAAAA,KAAOJ,uBAA6Bc,IACvC,SACAvD,EACAgB,EAED,GClDF,IAAYoD,ECAAC,ECAAC,ECAAC,EHIXC,EAAAJ,sBAAA,GAJWA,EAAAA,EAAgBA,mBAAhBA,mBAIX,CAAA,IAHA,QAAA,UACAA,EAAA,KAAA,OACAA,EAAA,MAAA,QISD,MAAMK,EAML,WAAAC,CAAYC,GALJ9B,KAAM+B,OAAmC,KACzC/B,KAAWgC,aAAY,EAE/BhC,KAAYiC,aAAa,GAGxBjC,KAAK8B,QAAUA,EACf9B,KAAKkC,SACL,CAEO,YAAAC,qBAEP,MAAMC,EAAwB,oBAAZC,QAA0BA,QAAQ,MAAQ,KAC5D,IAAKD,EACJ,MAAM,IAAInF,MACT,oFAGF,MAAMqF,GAA4B,QAArBC,EAAAvC,KAAK8B,QAAQ3D,gBAAQ,IAAAoE,OAAA,EAAAA,EAAE1D,QACjC,UAAU2D,mBAA0C,QAAvBC,EAAAzC,KAAK8B,QAAQ3D,gBAAU,IAAAsE,OAAA,EAAAA,EAAA5D,WAC/B,QAArB6D,EAAA1C,KAAK8B,QAAQ3D,gBAAQ,IAAAuE,OAAA,EAAAA,EAAE5D,OACtB,QAAQ0D,mBAAmBxC,KAAK8B,QAAQ3D,SAASW,SACjD,GACJkB,KAAK+B,OAAS,IAAIK,EAAG,GAAGpC,KAAK8B,QAAQa,aAAaL,KAEvC,QAAXM,EAAA5C,KAAK+B,cAAM,IAAAa,GAAAA,EAAEC,YAAY,OAAQ,KAChC7C,KAAKgC,aAAc,EACfhC,KAAK8B,QAAQgB,QAChB9C,KAAK8B,QAAQgB,OAAOC,GAAQ/C,KAAKgD,KAAKD,IAEvCE,QAAQC,IAAI,qBACRlD,KAAKiC,aAAakB,SACrBnD,KAAKgD,KAAKhD,KAAKiC,cACfjC,KAAKiC,aAAe,MAIT,QAAbmB,EAAApD,KAAK+B,cAAQ,IAAAqB,GAAAA,EAAAP,YAAY,QAASQ,IACjCJ,QAAQC,IAAI,QAAShE,KAAKC,UAAUkE,IACpCrD,KAAKgC,aAAc,EACfhC,KAAK8B,QAAQwB,SAChBtD,KAAK8B,QAAQwB,QAAQD,KAIV,QAAbE,EAAAvD,KAAK+B,cAAQ,IAAAwB,GAAAA,EAAAV,YAAY,UAAWQ,IACnC,MAAMG,EAAaH,EAAQnE,KAAKS,MAAM0D,EAAMxF,YAAc,GAC1DmC,KAAK8B,QAAQ2B,UAAU,CACtBC,KAAMnC,EAAgBA,iBAACoC,QACvBxG,KAAMqG,MAIK,QAAbI,EAAA5D,KAAK+B,cAAQ,IAAA6B,GAAAA,EAAAf,YAAY,QAAUQ,IAC9BrD,KAAK8B,QAAQ+B,SAChB7D,KAAK8B,QAAQ+B,QAAQ,CAAEH,KAAMnC,EAAgBA,iBAACtE,MAAOE,KAAMkG,IAE5DJ,QAAQtG,MAAM,mBAAoB0G,IAEnC,CAEO,YAAAS,qBACP,MAAMxB,GAA4B,QAArBC,EAAAvC,KAAK8B,QAAQ3D,gBAAQ,IAAAoE,OAAA,EAAAA,EAAE1D,QACjC,UAAU2D,mBAA0C,QAAvBC,EAAAzC,KAAK8B,QAAQ3D,gBAAU,IAAAsE,OAAA,EAAAA,EAAA5D,WAC/B,QAArB6D,EAAA1C,KAAK8B,QAAQ3D,gBAAQ,IAAAuE,OAAA,EAAAA,EAAE5D,OACtB,QAAQ0D,mBAAmBxC,KAAK8B,QAAQ3D,SAASW,SACjD,GAEJkB,KAAK+B,OAAS,IAAIgC,UACjB,GAAG/D,KAAK8B,QAAQa,aAAaL,KAGnB,QAAXM,EAAA5C,KAAK+B,cAAM,IAAAa,GAAAA,EAAEoB,iBAAiB,OAAQ,KACrChE,KAAKgC,aAAc,EACfhC,KAAK8B,QAAQgB,QAChB9C,KAAK8B,QAAQgB,OAAOmB,GAAOjE,KAAKgD,KAAKiB,IAEtChB,QAAQC,IAAI,qBACRlD,KAAKiC,aAAakB,SACrBnD,KAAKgD,KAAKhD,KAAKiC,cACfjC,KAAKiC,aAAe,MAIT,QAAbmB,EAAApD,KAAK+B,cAAQ,IAAAqB,GAAAA,EAAAY,iBAAiB,QAASX,IACtCJ,QAAQC,IAAI,QAAShE,KAAKC,UAAUkE,IACpCrD,KAAKgC,aAAc,EACfhC,KAAK8B,QAAQwB,SAChBtD,KAAK8B,QAAQwB,QAAQD,KAIV,QAAbE,EAAAvD,KAAK+B,cAAQ,IAAAwB,GAAAA,EAAAS,iBAAiB,UAAWX,IACxC,MAAMG,EAAaH,EAAMlG,KAAO+B,KAAKS,MAAM0D,EAAMlG,MAAQ,GACzD6C,KAAK8B,QAAQ2B,UAAU,CACtBC,KAAMnC,EAAgBA,iBAACoC,QACvBxG,KAAMqG,MAIK,QAAbI,EAAA5D,KAAK+B,cAAQ,IAAA6B,GAAAA,EAAAI,iBAAiB,QAASX,IAClCrD,KAAK8B,QAAQ+B,SAChB7D,KAAK8B,QAAQ+B,QAAQ,CAAEH,KAAMnC,EAAgBA,iBAACtE,MAAOE,KAAMkG,IAE5DJ,QAAQtG,MAAM,mBAAoB0G,IAEnC,CAEO,OAAAnB,GACW,oBAAXgC,OAAyBlE,KAAKmC,eAAiBnC,KAAK8D,cAC3D,CAED,IAAAd,CAAKmB,GACAnE,KAAKgC,aAAehC,KAAK+B,OAC5BoC,EAAY3G,QAAQ4G,IACnBpE,KAAK+B,QAAU/B,KAAK+B,OAAOiB,KAAK,mBAAmBoB,KACnDnB,QAAQC,IAAI,4BAA6BkB,KAG1CD,EAAY3G,QAAQ4G,KAClBpE,KAAKiC,aAAazC,SAAS4E,IAC3BpE,KAAKiC,aAAaoC,KAAKD,IAG1B,CAED,KAAAE,GACC,GAAItE,KAAK+B,OAAQ,CAChB/B,KAAKgC,aAAc,EACnB,MAAMuC,EAEDvE,KAAK+B,OAAewC,WAIxBA,IAAeR,UAAUS,MACzBD,IAAeR,UAAUU,YACV,IAAfF,GACe,IAAfA,GAEAvE,KAAK+B,OAAOuC,MAAM,MAEnBtE,KAAKiC,aAAe,GACpBjC,KAAK+B,OAAS,IACd,CACD,CAED,gBAAAiC,CAAiBU,WACM,oBAAXR,OACoB,QAA7B3B,EAAAvC,KAAK+B,cAAwB,IAAAQ,GAAAA,EAAAM,YAAY,UAAWQ,IACpD,MAAMG,EAAaH,EAAQnE,KAAKS,MAAM0D,EAAMxF,YAAc,GAC1D6G,EAAS,CACRhB,KAAMnC,EAAgBA,iBAACoC,QACvBxG,KAAMqG,MAIoB,QAA3Bf,EAAAzC,KAAK+B,cAAsB,IAAAU,GAAAA,EAAAuB,iBAAiB,UAAWX,IACvD,MAAMG,EAAaH,EAAMlG,KAAO+B,KAAKS,MAAM0D,EAAMlG,MAAQ,GACzDuH,EAAS,CACRhB,KAAMnC,EAAgBA,iBAACoC,QACvBxG,KAAMqG,KAIT,CAED,mBAAAmB,CAAoBD,WACG,oBAAXR,OACkB,QAA5B3B,EAACvC,KAAK+B,cAAsB,IAAAQ,GAAAA,EAAEqC,eAC7B,UACAvB,GAASqB,GAGgB,QAA1BjC,EAACzC,KAAK+B,cAAoB,IAAAU,GAAAA,EAAEkC,oBAC3B,UACAtB,GAASqB,EAGX,EH7LD/C,EAAAH,mBAAA,GAHWA,EAAAA,EAAaA,gBAAbA,gBAGX,CAAA,IAFAA,EAAA,IAAA,GAAA,MACAA,EAAAA,EAAA,KAAA,GAAA,OCEAG,EAAAF,kBAAA,GAJWA,EAAAA,EAAYA,eAAZA,eAIX,CAAA,IAHAA,EAAA,GAAA,GAAA,KACAA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,KAAA,GAAA,OCAAE,EAAAD,gBAAA,GAHWA,EAAAA,EAAUA,aAAVA,aAGX,CAAA,IAFAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,OAAA,GAAA,8BEoCD,MAKC,WAAAG,CAAY1E,GAEX,GANO6C,KAAOhC,QAAW,GAClBgC,KAAO6E,QAAW,GAClB7E,KAAM8E,OAAW,GAGxB9E,KAAKhC,QAAU,GAAGb,EAAKa,aACnBb,EAAM,CACT,MAAM2B,MAAEA,EAAKD,OAAEA,GAAW1B,EAC1B2B,IAAUkB,KAAK8E,OAAShG,GACxBD,IAAWmB,KAAK6E,QAAUhG,EAC1B,CACDwC,EAActB,OAASC,KAAKhC,QAC5B8B,EAAaC,OAASC,KAAKhC,QAC3BoD,EAAyBrB,OAASC,KAAKhC,QACvCkD,EAAsBnB,OAASC,KAAKhC,QACpC8C,EAAgBf,OAASC,KAAKhC,QAC9BuC,EAAYR,OAASC,KAAKhC,QAC1BsD,EAAcvB,OAASC,KAAKhC,OAC5B,CAED,UAAIa,CAAOnB,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,0BAEjB+C,KAAK6E,QAAUnH,CACf,CAED,SAAIoB,CAAMpB,GACT,IAAKA,EACJ,MAAM,IAAIT,MAAM,yBAEjB+C,KAAK8E,OAASpH,CACd,CAED,WAAYqH,GACX,MAAO,CAAElG,OAAQmB,KAAK6E,QAAS/F,MAAOkB,KAAK8E,OAC3C,CAED,YAAMtE,CAAO/C,GACZ,aAAa8C,EAAYC,OAAO/C,EAChC,CAED,uBAAMkD,CAAkBD,GACvB,aAAaH,EAAYI,kBAAkBD,EAAWV,KAAK+E,QAC3D,CAED,wBAAMnE,CACLF,EACAvD,GAEA,aAAaoD,EAAYK,mBAAmBF,EAAWvD,EAAM6C,KAAK+E,QAClE,CAED,yBAAMlE,CACLH,GAEA,aAAaH,EAAYM,oBAAoBH,EAAWV,KAAK+E,QAC7D,CAED,qBAAMtE,CAAgBC,GACrB,aAAaH,EAAYE,gBAAgBC,EAAWV,KAAK+E,QACzD,CAED,kBAAMC,CACLtE,EACAvD,GAEA,aAAamE,EAAcN,OAAON,EAAWvD,EAAM6C,KAAK+E,QACxD,CAED,kBAAME,CACLvE,EACAvD,GAEA,aAAamE,EAAc4D,OAAOxE,EAAWvD,EAAM6C,KAAK+E,QACxD,CAED,mBAAMI,CAAczE,GACnB,aAAaY,EAAcP,QAAQL,EAAWV,KAAK+E,QACnD,CAED,kBAAMK,CACLlF,EACA/C,GAEA,aAAakE,EAAcL,OAAOd,EAAQF,KAAK+E,QAAS5H,EACxD,CAED,eAAMkI,CAAUpB,GACf,aAAa5C,EAAc9B,IAAI0E,EAAKjE,KAAK+E,QACzC,CAED,mBAAMO,CAAcpF,GACnB,aAAamB,EAAcN,QAAQb,EAAQF,KAAK+E,QAChD,CAED,cAAMQ,CACLtB,EACA9G,GAEA,aAAa2C,EAAaG,IAAOgE,EAAK9G,EAAM6C,KAAK+E,QACjD,CAED,sBAAMS,CACLvB,EACA9G,GAEA,aAAa2C,EAAaK,OAAO8D,EAAK9G,EAAM6C,KAAK+E,QACjD,CAED,cAAMU,CACLtI,GAEA,aAAa2C,EAAaP,IAAOpC,EAAM6C,KAAK+E,QAC5C,CAED,iBAAMW,CAAYvI,GACjB,aAAa2C,EAAaM,OAAOjD,EAAM6C,KAAK+E,QAC5C,CAED,oBAAM1E,CACLH,GAEA,aAAaJ,EAAaO,eAAkBH,EAAQF,KAAK+E,QACzD,CAED,gBAAMzE,CAAWJ,GAChB,aAAaJ,EAAaQ,WAAWJ,EAAQF,KAAK+E,QAClD,CAED,qBAAMY,CACLjF,EACAvD,GAEA,aAAaiE,EAAyBJ,OAAON,EAAWvD,EAAM6C,KAAK+E,QACnE,CAED,kBAAMa,CAAalF,GAClB,aAAaU,EAAyB7B,IAAImB,EAAWV,KAAK+E,QAC1D,CAED,sBAAMc,GACL,aAAazE,EAAyBL,QAAQf,KAAK+E,QACnD,CAED,qBAAMe,CAAgBpF,GACrB,aAAaU,EAAyB8D,OAAOxE,EAAWV,KAAK+E,QAC7D,CAED,kBAAMgB,CACL5E,EACAhE,GAEA,aAAa+D,EAAsBF,OAAOG,EAAQhE,EAAM6C,KAAK+E,QAC7D,CAED,kBAAMiB,CAAa7E,GAClB,aAAaD,EAAsBgE,OAAO/D,EAAQnB,KAAK+E,QACvD,CAED,eAAMkB,CAAU9E,GACf,aAAaD,EAAsB3B,IAAI4B,EAAQnB,KAAK+E,QACpD,CAED,mBAAMmB,GACL,aAAahF,EAAsBH,QAAQf,KAAK+E,QAChD,CAED,oBAAMoB,CACLhJ,EACA8D,GAEA,aAAaH,EAAgBE,OAAOC,EAAU9D,EAAM6C,KAAK+E,QACzD,CAED,oBAAMqB,CAAenF,GACpB,aAAaH,EAAgBoE,OAAOjE,EAAUjB,KAAK+E,QACnD,CAED,iBAAMsB,CAAYpF,GACjB,aAAaH,EAAgBvB,IAAI0B,EAAUjB,KAAK+E,QAChD,CAED,qBAAMuB,GACL,aAAaxF,EAAgBC,QAAQf,KAAK+E,QAC1C,8BC9NF,MAaC,WAAAlD,CAAY1E,GAEX,GAdO6C,KAAOhC,QAAW,GAClBgC,KAAO6E,QAAW,GAClB7E,KAAM8E,OAAW,GACjB9E,KAAM+B,OAA4B,KAClC/B,KAAcuG,eAAG,EACjBvG,KAAawG,cAAG,IAChBxG,KAAoByG,qBAAG,IACvBzG,KAAiB0G,kBAAG,GACpB1G,KAAA2G,SAAwB,IAAIC,IAAY,IACxC5G,KAAS6G,UAAgD,GACzD7G,KAAO8G,QAAyC,KAGvD9G,KAAKhC,QAAU,GAAGb,EAAKa,aACnBb,EAAM,CACT,MAAMuJ,kBAAEA,EAAiBF,cAAEA,EAAa1H,MAAEA,EAAKD,OAAEA,GAAW1B,EAC5D2B,IAAUkB,KAAK8E,OAAShG,GACxBD,IAAWmB,KAAK6E,QAAUhG,GAC1B6H,IAAsB1G,KAAK0G,kBAAoBA,GAC/CF,IAAkBxG,KAAKwG,cAAgBA,GACvCA,IAAkBxG,KAAKyG,qBAAuBD,EAC9C,CACD,CAED,UAAI3H,CAAOnB,GACV,IAAKA,EACJ,MAAM,IAAIT,MAAM,0BAEjB+C,KAAK6E,QAAUnH,CACf,CAED,SAAIoB,CAAMpB,GACT,IAAKA,EACJ,MAAM,IAAIT,MAAM,yBAEjB+C,KAAK8E,OAASpH,CACd,CAED,WAAYqH,GACX,MAAO,CAAElG,OAAQmB,KAAK6E,QAAS/F,MAAOkB,KAAK8E,OAC3C,CAED,YAAAiC,CAAa/D,EAAmBD,GAC/BC,EAAKD,EACL,CAED,KAAAiE,CAAMrK,EAAY8G,GAEjB,GADAzD,KAAKuG,gBAAkB,EACnBvG,KAAKuG,eAAiBvG,KAAK0G,kBAU9B,OATAjD,GAAaA,EAAU,CAAEC,KAAMnC,EAAgBA,iBAACtE,MAAOE,KAAM,CAAER,WAC/DsG,QAAQC,IAAI,aAAelD,KAAKuG,gBAC5BvG,KAAK8G,UACRG,cAAcjH,KAAK8G,SACnB9G,KAAK6G,UAAY,GACjB7G,KAAK2G,SAAW,IAAIC,IACpB5G,KAAKwG,cAAgBxG,KAAKyG,2BAE3BzG,KAAKuG,eAAiB,GAGvBvG,KAAKkH,yBACClH,KAAKuG,eAAiBvG,KAAK0G,oBAChC1G,KAAKmH,qBAAqBC,MAAMC,KAAKrH,KAAK2G,UAAWlD,GACrDzD,KAAK6G,UAAUrJ,QAAQ,EAAGkH,WAAUjH,SACnCuC,KAAKsH,mBAAmB5C,EAAUjH,IAGpC,CAED,UAAA8J,CAAWC,EAAsB/D,GAChC,MAAM3B,EAAU,CACfa,UAAW3C,KAAKhC,QAChBG,SAAU6B,KAAK+E,QACfjC,OAASE,IACRhD,KAAKuG,eAAiB,EAClBvG,KAAK8G,UACRG,cAAcjH,KAAK8G,SACnB9G,KAAKwG,cAAgBxG,KAAKyG,sBAE3BzG,KAAK+G,aAAa/D,EAAMwE,GACxB/D,EAAU,CACTC,KAAMnC,EAAgBA,iBAACkG,KACvBtK,KAAM,CAAEJ,QAAS,uBAGnB0G,UAAY1G,IACX0G,EAAU1G,IAEX8G,QAAU9G,IACTkG,QAAQtG,MAAM,SAAWuC,KAAKC,UAAUpC,EAAQI,OAChDsG,EAAU1G,IAEXuG,QAAUD,IACTJ,QAAQC,IAAI,kBAAmBG,GAC/BI,EAAU,CACTC,KAAMnC,EAAgBA,iBAACtE,MACvBE,KAAM,CAAER,MAAO,qBAEF,OAAV0G,IACFrD,KAAKuG,gBAAkBvG,KAAKgH,MAAM,kBAAmBvD,GACtDzD,KAAK8G,QAAUY,WACd,KACG1H,KAAKuG,gBAAkBvG,KAAKgH,MAAM,kBAAmBvD,GACvDzD,KAAKwG,eAAiB,KAEC,IAAxBxG,KAAKuG,eACFvG,KAAKyG,qBACLkB,KAAKC,MAAM5H,KAAKwG,iBAGpBxG,KAAKkH,2BAIRlH,KAAK+B,OAAS,IAAIH,EAAiBE,EACnC,CAED,oBAAAqF,CAAqBK,EAAsB/D,GAC1CzD,KAAK2G,SAAW,IAAIC,IAAI,IAAI5G,KAAK2G,YAAaa,IACzCxH,KAAK+B,OAIV/B,KAAK+B,OAAOiB,KAAKwE,GAHhB/D,GAAazD,KAAKuH,WAAWC,EAAY/D,EAI1C,CAED,sBAAAyD,GACKlH,KAAK8G,UACRe,aAAa7H,KAAK8G,SAClB9G,KAAK8G,QAAU,MAEZ9G,KAAK+B,SACR/B,KAAK+B,OAAOuC,QACZtE,KAAK+B,OAAS,KAEf,CAED,iBAAA+F,GACC,QAAS9H,KAAK+B,MACd,CAED,kBAAAuF,CAAmB5C,EAA0BjH,SACjC,QAAX8E,EAAAvC,KAAK+B,cAAM,IAAAQ,GAAAA,EAAEyB,iBAAiBU,IAC7B1E,KAAK6G,UAAUkB,KAAKC,GAAMA,EAAGvK,MAAQA,IACrCuC,KAAK6G,UAAUxC,KAAK,CAAE5G,MAAKiH,YAC5B,CAED,qBAAAuD,CAAsBvD,EAA0BjH,SACpC,QAAX8E,EAAAvC,KAAK+B,cAAM,IAAAQ,GAAAA,EAAEoC,oBAAoBD,GACjC1E,KAAK6G,UAAY7G,KAAK6G,UAAUqB,OAAO/K,GAAQA,EAAKM,MAAQA,EAC5D"}
|