bigstate.client.javascript 0.0.2 → 0.0.4
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/apiKeyService/ApiKey.d.ts +12 -0
- package/dist/apiKeyService/apiKeyService.d.ts +10 -0
- package/dist/authService/Auth.d.ts +17 -0
- package/dist/authService/authService.d.ts +12 -0
- package/dist/bsClientHttpClient.d.ts +33 -0
- package/dist/bsWsDeliveryClient.d.ts +27 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/deliveryService/Delivery.d.ts +14 -0
- package/dist/deliveryService/deliveryService.d.ts +11 -0
- package/dist/fetchService.d.ts +6 -0
- package/dist/handleError.d.ts +2 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.umd.js +2 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/securityPolicyService/Policy.d.ts +12 -0
- package/dist/securityPolicyService/securityPolicyService.d.ts +11 -0
- package/dist/securityPrincipalService/Principal.d.ts +12 -0
- package/dist/securityPrincipalService/securityPrincipalService.d.ts +11 -0
- package/dist/stateService/State.d.ts +19 -0
- package/dist/stateService/stateService.d.ts +10 -0
- package/dist/subjectService/Subject.d.ts +15 -0
- package/dist/subjectService/subjectService.d.ts +9 -0
- package/dist/types/common.d.ts +24 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/webSocketService/WebSocket.d.ts +21 -0
- package/dist/webSocketService/webSocketService.d.ts +16 -0
- package/package.json +6 -4
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FetchDataResponse } from '../types';
|
|
2
|
+
export interface CreateApiKeyRequest {
|
|
3
|
+
name: string;
|
|
4
|
+
}
|
|
5
|
+
export interface KeyId {
|
|
6
|
+
keyId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface IApiKey extends KeyId {
|
|
9
|
+
apiKey: string;
|
|
10
|
+
}
|
|
11
|
+
export type ResponseCreateApiKey = FetchDataResponse<IApiKey>;
|
|
12
|
+
export type ResponseListApiKey = FetchDataResponse<KeyId[]>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { _apiUrl } from '../constants';
|
|
2
|
+
import { AuthKeys, CreateApiKeyRequest, KeyId, ResponseCreateApiKey, ResponseListApiKey, ResponseWitOutData } from '../types';
|
|
3
|
+
declare const apiKeyService: {
|
|
4
|
+
[_apiUrl]: string;
|
|
5
|
+
apiUrl: string;
|
|
6
|
+
create(pid: string, data: CreateApiKeyRequest, authKeys: AuthKeys): Promise<ResponseCreateApiKey>;
|
|
7
|
+
delete(pid: string, data: KeyId, authKeys: AuthKeys): Promise<ResponseWitOutData>;
|
|
8
|
+
getList(pid: string, authKeys: AuthKeys): Promise<ResponseListApiKey>;
|
|
9
|
+
};
|
|
10
|
+
export default apiKeyService;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FetchDataResponse } from '../types';
|
|
2
|
+
export interface IAuthInfo {
|
|
3
|
+
did: string;
|
|
4
|
+
email: string;
|
|
5
|
+
}
|
|
6
|
+
export interface AuthRequest {
|
|
7
|
+
email: string;
|
|
8
|
+
password: string;
|
|
9
|
+
}
|
|
10
|
+
export interface AuthData {
|
|
11
|
+
token: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AuthPrincipalRequest {
|
|
14
|
+
pid: string;
|
|
15
|
+
}
|
|
16
|
+
export type ResponseAuthInfo = FetchDataResponse<IAuthInfo>;
|
|
17
|
+
export type ResponseAuth = FetchDataResponse<AuthData>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { _apiUrl } from '../constants';
|
|
2
|
+
import { AuthPrincipalRequest, AuthRequest, ResponseAuth, ResponseAuthInfo } from './Auth';
|
|
3
|
+
import { AuthKeys, ResponseWitOutData } from '../types';
|
|
4
|
+
declare const authService: {
|
|
5
|
+
[_apiUrl]: string;
|
|
6
|
+
apiUrl: string;
|
|
7
|
+
signUp(data: AuthRequest): Promise<ResponseWitOutData>;
|
|
8
|
+
signIn(data: AuthRequest): Promise<ResponseAuth>;
|
|
9
|
+
signInPrincipal(data: AuthPrincipalRequest, authKeys?: AuthKeys): Promise<ResponseAuth>;
|
|
10
|
+
getAuthInfo(authKeys?: AuthKeys): Promise<ResponseAuthInfo>;
|
|
11
|
+
};
|
|
12
|
+
export default authService;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IState, ISubject, Policy, Principal, PrincipalResponse, PrincipalsResponse, ResponseAuthInfo, ResponsePolicy, ResponsePolicyList, ResponseWitOutData, SubjectResponse, SubjectStateResponse, Delivery, DeliveryListResponse, DeliveryResponse, AuthRequest, ResponseAuth, AuthPrincipalRequest, GetStateRequest, CreateApiKeyRequest, ResponseCreateApiKey, KeyId, ResponseListApiKey, SetStateResponse, BSHttpOptions } from './types';
|
|
2
|
+
declare class BigStateHttpClient {
|
|
3
|
+
private baseUrl;
|
|
4
|
+
private _apiKey;
|
|
5
|
+
private _token;
|
|
6
|
+
constructor(data: BSHttpOptions);
|
|
7
|
+
set apiKey(value: string);
|
|
8
|
+
set token(value: string);
|
|
9
|
+
private get authKey();
|
|
10
|
+
signUp(data: AuthRequest): Promise<ResponseWitOutData>;
|
|
11
|
+
signIn(data: AuthRequest): Promise<ResponseAuth>;
|
|
12
|
+
signInPrincipal(data: AuthPrincipalRequest): Promise<ResponseAuth>;
|
|
13
|
+
createApiKey(pid: string, data: CreateApiKeyRequest): Promise<ResponseCreateApiKey>;
|
|
14
|
+
deleteApiKey(pid: string, data: KeyId): Promise<ResponseWitOutData>;
|
|
15
|
+
getListApiKey(pid: string): Promise<ResponseListApiKey>;
|
|
16
|
+
authInfoGet(): Promise<ResponseAuthInfo>;
|
|
17
|
+
subjectCreate(data: ISubject, sid: string): Promise<ResponseWitOutData>;
|
|
18
|
+
subjectGet(sid: string): Promise<SubjectResponse>;
|
|
19
|
+
stateSet<T = any>(sid: string, data: IState<T>): Promise<SetStateResponse>;
|
|
20
|
+
stateGet<T = any>(data: GetStateRequest): Promise<SubjectStateResponse<T>>;
|
|
21
|
+
principalCreate(data: Principal): Promise<ResponseWitOutData>;
|
|
22
|
+
principalGet(principalId: string): Promise<PrincipalResponse>;
|
|
23
|
+
principalGetList(): Promise<PrincipalsResponse>;
|
|
24
|
+
policyCreate(data: Policy): Promise<ResponseWitOutData>;
|
|
25
|
+
policyDelete(policyId: string): Promise<ResponseWitOutData>;
|
|
26
|
+
policyGet(policyId: string): Promise<ResponsePolicy>;
|
|
27
|
+
policyGetList(): Promise<ResponsePolicyList>;
|
|
28
|
+
deliveryCreate(data: Delivery): Promise<ResponseWitOutData>;
|
|
29
|
+
deliveryDelete(deliveryId: string): Promise<ResponseWitOutData>;
|
|
30
|
+
deliveryGet(deliveryId: string): Promise<DeliveryResponse>;
|
|
31
|
+
deliveryGetList(): Promise<DeliveryListResponse>;
|
|
32
|
+
}
|
|
33
|
+
export default BigStateHttpClient;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { MessageHandler, SendHandler, BSDeliveryWsOptions } from './types';
|
|
2
|
+
declare class BigStateWsDeliveryClient {
|
|
3
|
+
private baseUrl;
|
|
4
|
+
private _apiKey;
|
|
5
|
+
private _token;
|
|
6
|
+
private socket;
|
|
7
|
+
private reconnectCount;
|
|
8
|
+
private reconnectTime;
|
|
9
|
+
private defaultReconnectTime;
|
|
10
|
+
private maxReconnectCount;
|
|
11
|
+
private messages;
|
|
12
|
+
private callbacks;
|
|
13
|
+
private timerId;
|
|
14
|
+
constructor(data: BSDeliveryWsOptions);
|
|
15
|
+
set apiKey(value: string);
|
|
16
|
+
set token(value: string);
|
|
17
|
+
private get authKey();
|
|
18
|
+
onOpenSocket(send: SendHandler, sids: string[]): void;
|
|
19
|
+
retry(error: any, onMessage: MessageHandler): void;
|
|
20
|
+
openSocket(deliveries: string[], onMessage: MessageHandler): void;
|
|
21
|
+
subscribeStateUpdate(deliveries: string[], onMessage?: MessageHandler): void;
|
|
22
|
+
unsubscribeStateUpdate(): void;
|
|
23
|
+
isSocketConnected(): boolean;
|
|
24
|
+
addWsEventListener(callback: MessageHandler, key: string): void;
|
|
25
|
+
removeWsEventListener(callback: MessageHandler, key: string): void;
|
|
26
|
+
}
|
|
27
|
+
export default BigStateWsDeliveryClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const _apiUrl: unique symbol;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FetchDataResponse } from '../types';
|
|
2
|
+
export declare enum DeliveryType {
|
|
3
|
+
WS = 1,
|
|
4
|
+
HTTP = 2,
|
|
5
|
+
FILE = 3
|
|
6
|
+
}
|
|
7
|
+
export interface Delivery {
|
|
8
|
+
deliveryId: string;
|
|
9
|
+
name: string;
|
|
10
|
+
type: DeliveryType;
|
|
11
|
+
sids: string[];
|
|
12
|
+
}
|
|
13
|
+
export type DeliveryListResponse = FetchDataResponse<Delivery[]>;
|
|
14
|
+
export type DeliveryResponse = FetchDataResponse<Delivery>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AuthKeys, Delivery, DeliveryListResponse, DeliveryResponse, ResponseWitOutData } from '../types';
|
|
2
|
+
import { _apiUrl } from '../constants';
|
|
3
|
+
declare const deliveryService: {
|
|
4
|
+
[_apiUrl]: string;
|
|
5
|
+
apiUrl: string;
|
|
6
|
+
getList(authKeys?: AuthKeys): Promise<DeliveryListResponse>;
|
|
7
|
+
create(data: Delivery, authKeys?: AuthKeys): Promise<ResponseWitOutData>;
|
|
8
|
+
get(deliveryId: string, authKeys?: AuthKeys): Promise<DeliveryResponse>;
|
|
9
|
+
delete(deliveryId: string, authKeys?: AuthKeys): Promise<ResponseWitOutData>;
|
|
10
|
+
};
|
|
11
|
+
export default deliveryService;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AuthKeys, FetchDataResponse } from './types';
|
|
2
|
+
type MethodType = 'GET' | 'POST' | 'DELETE';
|
|
3
|
+
type HeadersType = Record<string, string>;
|
|
4
|
+
export declare const fetchData: (baseUrl: string, method: MethodType, body?: any, authKeys?: AuthKeys, headersCustom?: HeadersType) => Promise<FetchDataResponse>;
|
|
5
|
+
export declare const fetchDataClient: (baseUrl: string, method: MethodType, body: any | undefined, headers: HeadersType) => Promise<FetchDataResponse>;
|
|
6
|
+
export {};
|
|
@@ -0,0 +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={"Content-Type":"application/json",Accept:"application/json"},s=async(e,s,n=null,o={},r={})=>{const a={...t,...r};return(null==o?void 0:o.apiKey)&&(a["x-api-key"]=o.apiKey),(null==o?void 0:o.token)&&(a["x-auth"]=o.token),await i(e,s,n,a)},i=async(t,s,i=null,n)=>{try{const o=await fetch(t,{method:s,headers:n,body:i?JSON.stringify(i):null,cache:"no-store"});if(!o.ok)return e(o);const r=await o.text();if(""===r.trim())return{data:null};try{return{data:JSON.parse(r)}}catch(e){return{data:null}}}catch(t){return e(t)}},n=Symbol("apiUrl"),o={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async setSubjectState(e,t,i){return await s(`${null==this?void 0:this[n]}/state?sid=${e}`,"POST",t,i)},async getSubjectState(e,t){return await s(`${null==this?void 0:this[n]}/state?${new URLSearchParams({...e}).toString()}`,"GET",null,t)}},r={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async signUp(e){return await s(`${null==this?void 0:this[n]}/auth/signup`,"POST",e)},async signIn(e){return await s(`${null==this?void 0:this[n]}/auth/signin`,"POST",e)},async signInPrincipal(e,t){return await s(`${null==this?void 0:this[n]}/auth/signin/principal`,"POST",e,t)},async getAuthInfo(e){return await s(`${null==this?void 0:this[n]}/auth/info`,"GET",null,e)}},a={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async getList(e){return await s(`${null==this?void 0:this[n]}/delivery/list`,"GET",null,e)},async create(e,t){return await s(`${null==this?void 0:this[n]}/delivery`,"POST",e,t)},async get(e,t){return await s(`${null==this?void 0:this[n]}/delivery?deliveryId=${e}`,"GET",null,t)},async delete(e,t){return await s(`${null==this?void 0:this[n]}/delivery?deliveryId=${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 s(`${null==this?void 0:this[n]}/policy/list`,"GET",null,e)},async create(e,t){return await s(`${null==this?void 0:this[n]}/policy`,"POST",e,t)},async get(e,t){return await s(`${null==this?void 0:this[n]}/policy?policyId=${e}`,"GET",null,t)},async delete(e,t){return await s(`${null==this?void 0:this[n]}/policy?policyId=${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 s(`${null==this?void 0:this[n]}/principal/list`,"GET",null,e)},async create(e,t){return await s(`${null==this?void 0:this[n]}/principal`,"POST",e,t)},async get(e,t){return await s(`${null==this?void 0:this[n]}/principal?principalId=${e}`,"GET",null,t)}},h={[n]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[n]=e},async createSubject(e,t,i){return await s(`${null==this?void 0:this[n]}/subject?sid=${t}`,"POST",e,i)},async getSubject(e,t){return await s(`${null==this?void 0:this[n]}/subject?sid=${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,i){return await s(`${null==this?void 0:this[n]}/apikey?pid=${e}`,"POST",t,i)},async delete(e,t,i){return await s(`${null==this?void 0:this[n]}/apikey?pid=${e}`,"DELETE",t,i)},async getList(e,t){return await s(`${null==this?void 0:this[n]}/apikey/list?pid=${e}`,"GET",null,t)}};class p{constructor(e){this.socket=null,this.isConnected=!1,this.messageQueue=[],this.options=e,this.connect()}serverSocket(){var e,t,s,i,n,o,r;const a="undefined"!=typeof require?require("ws"):null;if(!a)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===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new a(`${this.options.baseUrlWs}?${c}`),null===(i=this.socket)||void 0===i||i.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===(o=this.socket)||void 0===o||o.addListener("message",e=>{const t=e?JSON.parse(e.toString()):{};this.options.onMessage(t)}),null===(r=this.socket)||void 0===r||r.addListener("error",e=>{this.options.onError&&this.options.onError(e),console.error("WebSocket error:",e)})}clientSocket(){var e,t,s,i,n,o,r;const a=(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===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new WebSocket(`${this.options.baseUrlWs}?${a}`),null===(i=this.socket)||void 0===i||i.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===(o=this.socket)||void 0===o||o.addEventListener("message",e=>{const t=e.data?JSON.parse(e.data):{};this.options.onMessage(t)}),null===(r=this.socket)||void 0===r||r.addEventListener("error",e=>{this.options.onError&&this.options.onError(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(){this.socket&&(this.socket.close(3001),this.socket=null)}addEventListener(e){var t,s;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.addListener("message",t=>{const s=t?JSON.parse(t.toString()):{};e(s)}):null===(s=this.socket)||void 0===s||s.addEventListener("message",t=>{const s=t.data?JSON.parse(t.data):{};e(s)})}removeEventListener(e){var t,s;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.removeListener("message",t=>e):null===(s=this.socket)||void 0===s||s.removeEventListener("message",t=>e)}}var d,y,v;exports.SubjectType=void 0,(d=exports.SubjectType||(exports.SubjectType={}))[d.Private=1]="Private",d[d.Public=2]="Public",exports.PrincipalType=void 0,(y=exports.PrincipalType||(exports.PrincipalType={}))[y.App=1]="App",y[y.User=2]="User",exports.DeliveryType=void 0,(v=exports.DeliveryType||(exports.DeliveryType={}))[v.WS=1]="WS",v[v.HTTP=2]="HTTP",v[v.FILE=3]="FILE",exports.BigStateHttpClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.baseUrl=`${e.baseUrl}/v1`,e){const{token:t,apiKey:s}=e;t&&(this._token=t),s&&(this._apiKey=s)}h.apiUrl=this.baseUrl,o.apiUrl=this.baseUrl,l.apiUrl=this.baseUrl,c.apiUrl=this.baseUrl,a.apiUrl=this.baseUrl,r.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 r.signUp(e)}async signIn(e){return await r.signIn(e)}async signInPrincipal(e){return await r.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 authInfoGet(){return await r.getAuthInfo(this.authKey)}async subjectCreate(e,t){return await h.createSubject(e,t,this.authKey)}async subjectGet(e){return await h.getSubject(e,this.authKey)}async stateSet(e,t){return await o.setSubjectState(e,t,this.authKey)}async stateGet(e){return await o.getSubjectState(e,this.authKey)}async principalCreate(e){return await l.create(e,this.authKey)}async principalGet(e){return await l.get(e,this.authKey)}async principalGetList(){return await l.getList(this.authKey)}async policyCreate(e){return await c.create(e,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){return await a.create(e,this.authKey)}async deliveryDelete(e){return await a.delete(e,this.authKey)}async deliveryGet(e){return await a.get(e,this.authKey)}async deliveryGetList(){return await a.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:s,token:i,apiKey:n}=e;i&&(this._token=i),n&&(this._apiKey=n),t&&(this.maxReconnectCount=t),s&&(this.reconnectTime=s),s&&(this.defaultReconnectTime=s)}}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({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 s={baseUrlWs:this.baseUrl,authKeys:this.authKey,onOpen:t=>{this.reconnectCount=0,this.timerId&&(clearInterval(this.timerId),this.reconnectTime=this.defaultReconnectTime),this.onOpenSocket(t,e)},onMessage:e=>{t(e)},onError:e=>{console.error("Error "+JSON.stringify(e)),t({error:e})},onClose:e=>{console.log("webSocket close",e),t({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 p(s)}subscribeStateUpdate(e,t){this.messages=new Set([...this.messages,...e]),this.socket?this.socket.send(e):t&&this.openSocket(e,t)}unsubscribeStateUpdate(){this.socket&&(this.socket.close(),this.socket=null)}isSocketConnected(){return!!this.socket}addWsEventListener(e,t){var s;null===(s=this.socket)||void 0===s||s.addEventListener(e),!this.callbacks.find(e=>e.key===t)&&this.callbacks.push({key:t,callback:e})}removeWsEventListener(e,t){var s;null===(s=this.socket)||void 0===s||s.removeEventListener(e),this.callbacks=this.callbacks.filter(e=>e.key!==t)}};
|
|
2
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/handleError.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/subjectService/subjectService.ts","../src/apiKeyService/apiKeyService.ts","../src/webSocketService/webSocketService.ts","../src/subjectService/Subject.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/bsClientHttpClient.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorResponse } from './types';\n\nexport const handleError = (error: any): ErrorResponse => {\n\tif (error instanceof Response) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: error.status,\n\t\t\t\tmessage: error.statusText,\n\t\t\t},\n\t\t};\n\t} else if (error instanceof Error) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 500,\n\t\t\t\tmessage: error.message,\n\t\t\t},\n\t\t};\n\t} else {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 500,\n\t\t\t\tmessage: 'Unknown error',\n\t\t\t},\n\t\t};\n\t}\n};\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nconst defaultHeaders = {\r\n\t'Content-Type': 'application/json',\r\n\tAccept: 'application/json',\r\n};\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...defaultHeaders,\r\n\t\t...headersCustom,\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 await fetchDataClient(baseUrl, method, body, headers);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\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: method,\r\n\t\t\theaders,\r\n\t\t\tbody: body ? JSON.stringify(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 data = await res.text();\r\n\t\tif (data.trim() !== '') {\r\n\t\t\ttry {\r\n\t\t\t\treturn { data: JSON.parse(data) };\r\n\t\t\t} catch (error: any) {\r\n\t\t\t\treturn { data: null };\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn { data: null };\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} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { GetStateRequest } from './State';\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 setSubjectState<T>(\r\n\t\tsid: 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?sid=${sid}`,\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 getSubjectState<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?${new URLSearchParams({ ...data }).toString()}`,\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\tAuthPrincipalRequest,\r\n\tAuthRequest,\r\n\tResponseAuth,\r\n\tResponseAuthInfo,\r\n} from './Auth';\r\nimport { AuthKeys, ResponseWitOutData } 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(data: AuthRequest): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/auth/signup`, 'POST', data);\r\n\t},\r\n\tasync signIn(data: AuthRequest): Promise<ResponseAuth> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/auth/signin`, 'POST', data);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tdata: AuthPrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseAuth> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/auth/signin/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 getAuthInfo(authKeys?: AuthKeys): Promise<ResponseAuthInfo> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/auth/info`,\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\tDelivery,\r\n\tDeliveryListResponse,\r\n\tDeliveryResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\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<DeliveryListResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/list`,\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\tdata: Delivery,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/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\tdeliveryId: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<DeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?deliveryId=${deliveryId}`,\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\tdeliveryId: 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?deliveryId=${deliveryId}`,\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\tPolicy,\r\n\tResponsePolicy,\r\n\tResponsePolicyList,\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<ResponsePolicyList> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/list`,\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(data: Policy, authKeys?: AuthKeys): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/policy`, 'POST', data, authKeys);\r\n\t},\r\n\tasync get(policyId: string, authKeys?: AuthKeys): Promise<ResponsePolicy> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policyId=${policyId}`,\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\tpolicyId: 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?policyId=${policyId}`,\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 { Principal, PrincipalResponse, PrincipalsResponse } from '../types';\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<PrincipalsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/list`,\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\tdata: Principal,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/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\tprincipalId: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<PrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principalId=${principalId}`,\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 securityPrincipalService;\r\n","import {\r\n\tISubject,\r\n\tSubjectResponse,\r\n\tResponseWitOutData,\r\n\tAuthKeys,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\n\r\nconst subjectService = {\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 createSubject(\r\n\t\tdata: ISubject,\r\n\t\tsid: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/subject?sid=${sid}`,\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 getSubject(sid: string, authKeys: AuthKeys): Promise<SubjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/subject?sid=${sid}`,\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 subjectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tCreateApiKeyRequest,\r\n\tKeyId,\r\n\tResponseCreateApiKey,\r\n\tResponseListApiKey,\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\tpid: string,\r\n\t\tdata: CreateApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseCreateApiKey> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?pid=${pid}`,\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 delete(\r\n\t\tpid: string,\r\n\t\tdata: KeyId,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?pid=${pid}`,\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 getList(pid: string, authKeys: AuthKeys): Promise<ResponseListApiKey> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/list?pid=${pid}`,\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 apiKeyService;\r\n","import { Message, MessageHandler, WebSocketOptions } from '../types';\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(newMessage as Message);\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(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(newMessage as Message);\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(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.socket.close(3001);\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(newMessage as Message);\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(newMessage as Message);\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 { FetchDataResponse } from '../types';\r\n\r\nexport enum SubjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface ISubject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n\ttype: SubjectType;\r\n}\r\n\r\nexport interface ISubjectResponse extends ISubject {\r\n\tsid: string;\r\n}\r\n\r\nexport type SubjectResponse = FetchDataResponse<ISubjectResponse>;\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 Principal {\r\n\tprincipalId: string;\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport type PrincipalsResponse = FetchDataResponse<Principal[]>;\r\n\r\nexport type PrincipalResponse = 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 Delivery {\r\n\tdeliveryId: string;\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tsids: string[];\r\n}\r\n\r\nexport type DeliveryListResponse = FetchDataResponse<Delivery[]>;\r\n\r\nexport type DeliveryResponse = FetchDataResponse<Delivery>;\r\n","import {\r\n\tIState,\r\n\tISubject,\r\n\tPolicy,\r\n\tPrincipal,\r\n\tPrincipalResponse,\r\n\tPrincipalsResponse,\r\n\tResponseAuthInfo,\r\n\tResponsePolicy,\r\n\tResponsePolicyList,\r\n\tResponseWitOutData,\r\n\tSubjectResponse,\r\n\tSubjectStateResponse,\r\n\tDelivery,\r\n\tDeliveryListResponse,\r\n\tDeliveryResponse,\r\n\tAuthRequest,\r\n\tResponseAuth,\r\n\tAuthPrincipalRequest,\r\n\tGetStateRequest,\r\n\tCreateApiKeyRequest,\r\n\tResponseCreateApiKey,\r\n\tKeyId,\r\n\tResponseListApiKey,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\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 subjectService from './subjectService/subjectService';\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\tsubjectService.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(data: AuthRequest): Promise<ResponseWitOutData> {\r\n\t\treturn await authService.signUp(data);\r\n\t}\r\n\r\n\tasync signIn(data: AuthRequest): Promise<ResponseAuth> {\r\n\t\treturn await authService.signIn(data);\r\n\t}\r\n\r\n\tasync signInPrincipal(data: AuthPrincipalRequest): Promise<ResponseAuth> {\r\n\t\treturn await authService.signInPrincipal(data, this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tpid: string,\r\n\t\tdata: CreateApiKeyRequest,\r\n\t): Promise<ResponseCreateApiKey> {\r\n\t\treturn await apiKeyService.create(pid, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(pid: string, data: KeyId): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(pid, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(pid: string): Promise<ResponseListApiKey> {\r\n\t\treturn await apiKeyService.getList(pid, this.authKey);\r\n\t}\r\n\r\n\tasync authInfoGet(): Promise<ResponseAuthInfo> {\r\n\t\treturn await authService.getAuthInfo(this.authKey);\r\n\t}\r\n\r\n\tasync subjectCreate(\r\n\t\tdata: ISubject,\r\n\t\tsid: string,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await subjectService.createSubject(data, sid, this.authKey);\r\n\t}\r\n\r\n\tasync subjectGet(sid: string): Promise<SubjectResponse> {\r\n\t\treturn await subjectService.getSubject(sid, 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.setSubjectState<T>(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.getSubjectState<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(data: Principal): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principalId: string): Promise<PrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principalId, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(): Promise<PrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(data: Policy): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policyId: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policyId, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policyId: string): Promise<ResponsePolicy> {\r\n\t\treturn await securityPolicyService.get(policyId, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(): Promise<ResponsePolicyList> {\r\n\t\treturn await securityPolicyService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(data: Delivery): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(deliveryId: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(deliveryId, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(deliveryId: string): Promise<DeliveryResponse> {\r\n\t\treturn await deliveryService.get(deliveryId, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(): Promise<DeliveryListResponse> {\r\n\t\treturn await deliveryService.getList(this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import {\r\n\tMessageHandler,\r\n\tSendHandler,\r\n\tMessage,\r\n\tBSDeliveryWsOptions,\r\n} from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\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({ 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},\r\n\t\t\tonMessage: (message: Message) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (error: any) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(error));\r\n\t\t\t\tonMessage({ error });\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({ error: 'webSocket close' });\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.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","defaultHeaders","Accept","fetchData","async","baseUrl","method","body","authKeys","headersCustom","headers","apiKey","token","fetchDataClient","res","fetch","JSON","stringify","cache","ok","data","text","trim","parse","_apiUrl","Symbol","stateService","apiUrl","value","this","setSubjectState","sid","getSubjectState","URLSearchParams","toString","authService","signUp","signIn","signInPrincipal","getAuthInfo","deliveryService","getList","create","get","deliveryId","securityPolicyService","policyId","securityPrincipalService","principalId","subjectService","createSubject","getSubject","apiKeyService","pid","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","_g","onError","clientSocket","WebSocket","addEventListener","window","deliveryIds","forEach","includes","push","close","callback","removeEventListener","removeListener","SubjectType","PrincipalType","DeliveryType","_apiKey","_token","authKey","createApiKey","deleteApiKey","delete","getListApiKey","authInfoGet","subjectCreate","subjectGet","stateSet","stateGet","principalCreate","principalGet","principalGetList","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","key","addWsEventListener","openSocket","deliveries","setTimeout","Math","round","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +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={"Content-Type":"application/json",Accept:"application/json"},s=async(t,s,n=null,o={},a={})=>{const r={...e,...a};return(null==o?void 0:o.apiKey)&&(r["x-api-key"]=o.apiKey),(null==o?void 0:o.token)&&(r["x-auth"]=o.token),await i(t,s,n,r)},i=async(e,s,i=null,n)=>{try{const o=await fetch(e,{method:s,headers:n,body:i?JSON.stringify(i):null,cache:"no-store"});if(!o.ok)return t(o);const a=await o.text();if(""===a.trim())return{data:null};try{return{data:JSON.parse(a)}}catch(t){return{data:null}}}catch(e){return t(e)}},n=Symbol("apiUrl"),o={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async setSubjectState(t,e,i){return await s(`${null==this?void 0:this[n]}/state?sid=${t}`,"POST",e,i)},async getSubjectState(t,e){return await s(`${null==this?void 0:this[n]}/state?${new URLSearchParams({...t}).toString()}`,"GET",null,e)}},a={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async signUp(t){return await s(`${null==this?void 0:this[n]}/auth/signup`,"POST",t)},async signIn(t){return await s(`${null==this?void 0:this[n]}/auth/signin`,"POST",t)},async signInPrincipal(t,e){return await s(`${null==this?void 0:this[n]}/auth/signin/principal`,"POST",t,e)},async getAuthInfo(t){return await s(`${null==this?void 0:this[n]}/auth/info`,"GET",null,t)}},r={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async getList(t){return await s(`${null==this?void 0:this[n]}/delivery/list`,"GET",null,t)},async create(t,e){return await s(`${null==this?void 0:this[n]}/delivery`,"POST",t,e)},async get(t,e){return await s(`${null==this?void 0:this[n]}/delivery?deliveryId=${t}`,"GET",null,e)},async delete(t,e){return await s(`${null==this?void 0:this[n]}/delivery?deliveryId=${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 s(`${null==this?void 0:this[n]}/policy/list`,"GET",null,t)},async create(t,e){return await s(`${null==this?void 0:this[n]}/policy`,"POST",t,e)},async get(t,e){return await s(`${null==this?void 0:this[n]}/policy?policyId=${t}`,"GET",null,e)},async delete(t,e){return await s(`${null==this?void 0:this[n]}/policy?policyId=${t}`,"DELETE",null,e)}},h={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async getList(t){return await s(`${null==this?void 0:this[n]}/principal/list`,"GET",null,t)},async create(t,e){return await s(`${null==this?void 0:this[n]}/principal`,"POST",t,e)},async get(t,e){return await s(`${null==this?void 0:this[n]}/principal?principalId=${t}`,"GET",null,e)}},l={[n]:"",set apiUrl(t){if(!t)throw new Error("API URL cannot be empty");this[n]=t},async createSubject(t,e,i){return await s(`${null==this?void 0:this[n]}/subject?sid=${e}`,"POST",t,i)},async getSubject(t,e){return await s(`${null==this?void 0:this[n]}/subject?sid=${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,i){return await s(`${null==this?void 0:this[n]}/apikey?pid=${t}`,"POST",e,i)},async delete(t,e,i){return await s(`${null==this?void 0:this[n]}/apikey?pid=${t}`,"DELETE",e,i)},async getList(t,e){return await s(`${null==this?void 0:this[n]}/apikey/list?pid=${t}`,"GET",null,e)}};class d{constructor(t){if(this.baseUrl="",this._apiKey="",this._token="",this.baseUrl=`${t.baseUrl}/v1`,t){const{token:e,apiKey:s}=t;e&&(this._token=e),s&&(this._apiKey=s)}l.apiUrl=this.baseUrl,o.apiUrl=this.baseUrl,h.apiUrl=this.baseUrl,c.apiUrl=this.baseUrl,r.apiUrl=this.baseUrl,a.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 a.signUp(t)}async signIn(t){return await a.signIn(t)}async signInPrincipal(t){return await a.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 authInfoGet(){return await a.getAuthInfo(this.authKey)}async subjectCreate(t,e){return await l.createSubject(t,e,this.authKey)}async subjectGet(t){return await l.getSubject(t,this.authKey)}async stateSet(t,e){return await o.setSubjectState(t,e,this.authKey)}async stateGet(t){return await o.getSubjectState(t,this.authKey)}async principalCreate(t){return await h.create(t,this.authKey)}async principalGet(t){return await h.get(t,this.authKey)}async principalGetList(){return await h.getList(this.authKey)}async policyCreate(t){return await c.create(t,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){return await r.create(t,this.authKey)}async deliveryDelete(t){return await r.delete(t,this.authKey)}async deliveryGet(t){return await r.get(t,this.authKey)}async deliveryGetList(){return await r.getList(this.authKey)}}class p{constructor(t){this.socket=null,this.isConnected=!1,this.messageQueue=[],this.options=t,this.connect()}serverSocket(){var t,e,s,i,n,o,a;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===(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===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new r(`${this.options.baseUrlWs}?${c}`),null===(i=this.socket)||void 0===i||i.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===(o=this.socket)||void 0===o||o.addListener("message",t=>{const e=t?JSON.parse(t.toString()):{};this.options.onMessage(e)}),null===(a=this.socket)||void 0===a||a.addListener("error",t=>{this.options.onError&&this.options.onError(t),console.error("WebSocket error:",t)})}clientSocket(){var t,e,s,i,n,o,a;const r=(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===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new WebSocket(`${this.options.baseUrlWs}?${r}`),null===(i=this.socket)||void 0===i||i.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===(o=this.socket)||void 0===o||o.addEventListener("message",t=>{const e=t.data?JSON.parse(t.data):{};this.options.onMessage(e)}),null===(a=this.socket)||void 0===a||a.addEventListener("error",t=>{this.options.onError&&this.options.onError(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(){this.socket&&(this.socket.close(3001),this.socket=null)}addEventListener(t){var e,s;"undefined"==typeof window?null===(e=this.socket)||void 0===e||e.addListener("message",e=>{const s=e?JSON.parse(e.toString()):{};t(s)}):null===(s=this.socket)||void 0===s||s.addEventListener("message",e=>{const s=e.data?JSON.parse(e.data):{};t(s)})}removeEventListener(t){var e,s;"undefined"==typeof window?null===(e=this.socket)||void 0===e||e.removeListener("message",e=>t):null===(s=this.socket)||void 0===s||s.removeEventListener("message",e=>t)}}class y{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:s,token:i,apiKey:n}=t;i&&(this._token=i),n&&(this._apiKey=n),e&&(this.maxReconnectCount=e),s&&(this.reconnectTime=s),s&&(this.defaultReconnectTime=s)}}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({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 s={baseUrlWs:this.baseUrl,authKeys:this.authKey,onOpen:e=>{this.reconnectCount=0,this.timerId&&(clearInterval(this.timerId),this.reconnectTime=this.defaultReconnectTime),this.onOpenSocket(e,t)},onMessage:t=>{e(t)},onError:t=>{console.error("Error "+JSON.stringify(t)),e({error:t})},onClose:t=>{console.log("webSocket close",t),e({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 p(s)}subscribeStateUpdate(t,e){this.messages=new Set([...this.messages,...t]),this.socket?this.socket.send(t):e&&this.openSocket(t,e)}unsubscribeStateUpdate(){this.socket&&(this.socket.close(),this.socket=null)}isSocketConnected(){return!!this.socket}addWsEventListener(t,e){var s;null===(s=this.socket)||void 0===s||s.addEventListener(t),!this.callbacks.find(t=>t.key===e)&&this.callbacks.push({key:e,callback:t})}removeWsEventListener(t,e){var s;null===(s=this.socket)||void 0===s||s.removeEventListener(t),this.callbacks=this.callbacks.filter(t=>t.key!==e)}}var v,w,k;!function(t){t[t.Private=1]="Private",t[t.Public=2]="Public"}(v||(v={})),function(t){t[t.App=1]="App",t[t.User=2]="User"}(w||(w={})),function(t){t[t.WS=1]="WS",t[t.HTTP=2]="HTTP",t[t.FILE=3]="FILE"}(k||(k={}));export{d as BigStateHttpClient,y as BigStateWsDeliveryClient,k as DeliveryType,w as PrincipalType,v as SubjectType};
|
|
2
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/handleError.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/subjectService/subjectService.ts","../src/apiKeyService/apiKeyService.ts","../src/bsClientHttpClient.ts","../src/webSocketService/webSocketService.ts","../src/bsWsDeliveryClient.ts","../src/subjectService/Subject.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts"],"sourcesContent":["import { ErrorResponse } from './types';\n\nexport const handleError = (error: any): ErrorResponse => {\n\tif (error instanceof Response) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: error.status,\n\t\t\t\tmessage: error.statusText,\n\t\t\t},\n\t\t};\n\t} else if (error instanceof Error) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 500,\n\t\t\t\tmessage: error.message,\n\t\t\t},\n\t\t};\n\t} else {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 500,\n\t\t\t\tmessage: 'Unknown error',\n\t\t\t},\n\t\t};\n\t}\n};\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nconst defaultHeaders = {\r\n\t'Content-Type': 'application/json',\r\n\tAccept: 'application/json',\r\n};\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...defaultHeaders,\r\n\t\t...headersCustom,\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 await fetchDataClient(baseUrl, method, body, headers);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\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: method,\r\n\t\t\theaders,\r\n\t\t\tbody: body ? JSON.stringify(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 data = await res.text();\r\n\t\tif (data.trim() !== '') {\r\n\t\t\ttry {\r\n\t\t\t\treturn { data: JSON.parse(data) };\r\n\t\t\t} catch (error: any) {\r\n\t\t\t\treturn { data: null };\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn { data: null };\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} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { GetStateRequest } from './State';\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 setSubjectState<T>(\r\n\t\tsid: 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?sid=${sid}`,\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 getSubjectState<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?${new URLSearchParams({ ...data }).toString()}`,\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\tAuthPrincipalRequest,\r\n\tAuthRequest,\r\n\tResponseAuth,\r\n\tResponseAuthInfo,\r\n} from './Auth';\r\nimport { AuthKeys, ResponseWitOutData } 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(data: AuthRequest): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/auth/signup`, 'POST', data);\r\n\t},\r\n\tasync signIn(data: AuthRequest): Promise<ResponseAuth> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/auth/signin`, 'POST', data);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tdata: AuthPrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseAuth> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/auth/signin/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 getAuthInfo(authKeys?: AuthKeys): Promise<ResponseAuthInfo> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/auth/info`,\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\tDelivery,\r\n\tDeliveryListResponse,\r\n\tDeliveryResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\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<DeliveryListResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/list`,\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\tdata: Delivery,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/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\tdeliveryId: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<DeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?deliveryId=${deliveryId}`,\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\tdeliveryId: 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?deliveryId=${deliveryId}`,\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\tPolicy,\r\n\tResponsePolicy,\r\n\tResponsePolicyList,\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<ResponsePolicyList> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/list`,\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(data: Policy, authKeys?: AuthKeys): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/policy`, 'POST', data, authKeys);\r\n\t},\r\n\tasync get(policyId: string, authKeys?: AuthKeys): Promise<ResponsePolicy> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policyId=${policyId}`,\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\tpolicyId: 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?policyId=${policyId}`,\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 { Principal, PrincipalResponse, PrincipalsResponse } from '../types';\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<PrincipalsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/list`,\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\tdata: Principal,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/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\tprincipalId: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<PrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principalId=${principalId}`,\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 securityPrincipalService;\r\n","import {\r\n\tISubject,\r\n\tSubjectResponse,\r\n\tResponseWitOutData,\r\n\tAuthKeys,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\n\r\nconst subjectService = {\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 createSubject(\r\n\t\tdata: ISubject,\r\n\t\tsid: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/subject?sid=${sid}`,\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 getSubject(sid: string, authKeys: AuthKeys): Promise<SubjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/subject?sid=${sid}`,\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 subjectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tCreateApiKeyRequest,\r\n\tKeyId,\r\n\tResponseCreateApiKey,\r\n\tResponseListApiKey,\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\tpid: string,\r\n\t\tdata: CreateApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseCreateApiKey> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?pid=${pid}`,\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 delete(\r\n\t\tpid: string,\r\n\t\tdata: KeyId,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?pid=${pid}`,\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 getList(pid: string, authKeys: AuthKeys): Promise<ResponseListApiKey> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/list?pid=${pid}`,\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 apiKeyService;\r\n","import {\r\n\tIState,\r\n\tISubject,\r\n\tPolicy,\r\n\tPrincipal,\r\n\tPrincipalResponse,\r\n\tPrincipalsResponse,\r\n\tResponseAuthInfo,\r\n\tResponsePolicy,\r\n\tResponsePolicyList,\r\n\tResponseWitOutData,\r\n\tSubjectResponse,\r\n\tSubjectStateResponse,\r\n\tDelivery,\r\n\tDeliveryListResponse,\r\n\tDeliveryResponse,\r\n\tAuthRequest,\r\n\tResponseAuth,\r\n\tAuthPrincipalRequest,\r\n\tGetStateRequest,\r\n\tCreateApiKeyRequest,\r\n\tResponseCreateApiKey,\r\n\tKeyId,\r\n\tResponseListApiKey,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\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 subjectService from './subjectService/subjectService';\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\tsubjectService.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(data: AuthRequest): Promise<ResponseWitOutData> {\r\n\t\treturn await authService.signUp(data);\r\n\t}\r\n\r\n\tasync signIn(data: AuthRequest): Promise<ResponseAuth> {\r\n\t\treturn await authService.signIn(data);\r\n\t}\r\n\r\n\tasync signInPrincipal(data: AuthPrincipalRequest): Promise<ResponseAuth> {\r\n\t\treturn await authService.signInPrincipal(data, this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tpid: string,\r\n\t\tdata: CreateApiKeyRequest,\r\n\t): Promise<ResponseCreateApiKey> {\r\n\t\treturn await apiKeyService.create(pid, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(pid: string, data: KeyId): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(pid, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(pid: string): Promise<ResponseListApiKey> {\r\n\t\treturn await apiKeyService.getList(pid, this.authKey);\r\n\t}\r\n\r\n\tasync authInfoGet(): Promise<ResponseAuthInfo> {\r\n\t\treturn await authService.getAuthInfo(this.authKey);\r\n\t}\r\n\r\n\tasync subjectCreate(\r\n\t\tdata: ISubject,\r\n\t\tsid: string,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await subjectService.createSubject(data, sid, this.authKey);\r\n\t}\r\n\r\n\tasync subjectGet(sid: string): Promise<SubjectResponse> {\r\n\t\treturn await subjectService.getSubject(sid, 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.setSubjectState<T>(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.getSubjectState<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(data: Principal): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principalId: string): Promise<PrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principalId, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(): Promise<PrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(data: Policy): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policyId: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policyId, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policyId: string): Promise<ResponsePolicy> {\r\n\t\treturn await securityPolicyService.get(policyId, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(): Promise<ResponsePolicyList> {\r\n\t\treturn await securityPolicyService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(data: Delivery): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(deliveryId: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(deliveryId, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(deliveryId: string): Promise<DeliveryResponse> {\r\n\t\treturn await deliveryService.get(deliveryId, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(): Promise<DeliveryListResponse> {\r\n\t\treturn await deliveryService.getList(this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import { Message, MessageHandler, WebSocketOptions } from '../types';\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(newMessage as Message);\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(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(newMessage as Message);\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(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.socket.close(3001);\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(newMessage as Message);\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(newMessage as Message);\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\tMessageHandler,\r\n\tSendHandler,\r\n\tMessage,\r\n\tBSDeliveryWsOptions,\r\n} from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\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({ 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},\r\n\t\t\tonMessage: (message: Message) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (error: any) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(error));\r\n\t\t\t\tonMessage({ error });\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({ error: 'webSocket close' });\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.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","import { FetchDataResponse } from '../types';\r\n\r\nexport enum SubjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface ISubject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n\ttype: SubjectType;\r\n}\r\n\r\nexport interface ISubjectResponse extends ISubject {\r\n\tsid: string;\r\n}\r\n\r\nexport type SubjectResponse = FetchDataResponse<ISubjectResponse>;\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 Principal {\r\n\tprincipalId: string;\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport type PrincipalsResponse = FetchDataResponse<Principal[]>;\r\n\r\nexport type PrincipalResponse = 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 Delivery {\r\n\tdeliveryId: string;\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tsids: string[];\r\n}\r\n\r\nexport type DeliveryListResponse = FetchDataResponse<Delivery[]>;\r\n\r\nexport type DeliveryResponse = FetchDataResponse<Delivery>;\r\n"],"names":["handleError","error","Response","code","status","message","statusText","Error","defaultHeaders","Accept","fetchData","async","baseUrl","method","body","authKeys","headersCustom","headers","apiKey","token","fetchDataClient","res","fetch","JSON","stringify","cache","ok","data","text","trim","parse","_apiUrl","Symbol","stateService","apiUrl","value","this","setSubjectState","sid","getSubjectState","URLSearchParams","toString","authService","signUp","signIn","signInPrincipal","getAuthInfo","deliveryService","getList","create","get","deliveryId","securityPolicyService","policyId","securityPrincipalService","principalId","subjectService","createSubject","getSubject","apiKeyService","pid","BigStateHttpClient","constructor","_apiKey","_token","authKey","createApiKey","deleteApiKey","delete","getListApiKey","authInfoGet","subjectCreate","subjectGet","stateSet","stateGet","principalCreate","principalGet","principalGetList","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","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","_g","onError","clientSocket","WebSocket","addEventListener","window","deliveryIds","forEach","includes","push","close","callback","removeEventListener","removeListener","BigStateWsDeliveryClient","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","key","addWsEventListener","openSocket","deliveries","setTimeout","Math","round","isSocketConnected","find","el","removeWsEventListener","filter","SubjectType","PrincipalType","DeliveryType"],"mappings":"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"}
|
|
@@ -0,0 +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).Bs={})}(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"}},s={"Content-Type":"application/json",Accept:"application/json"},i=async(e,t,i=null,o={},a={})=>{const r={...s,...a};return(null==o?void 0:o.apiKey)&&(r["x-api-key"]=o.apiKey),(null==o?void 0:o.token)&&(r["x-auth"]=o.token),await n(e,t,i,r)},n=async(e,s,i=null,n)=>{try{const o=await fetch(e,{method:s,headers:n,body:i?JSON.stringify(i):null,cache:"no-store"});if(!o.ok)return t(o);const a=await o.text();if(""===a.trim())return{data:null};try{return{data:JSON.parse(a)}}catch(e){return{data:null}}}catch(e){return t(e)}},o=Symbol("apiUrl"),a={[o]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[o]=e},async setSubjectState(e,t,s){return await i(`${null==this?void 0:this[o]}/state?sid=${e}`,"POST",t,s)},async getSubjectState(e,t){return await i(`${null==this?void 0:this[o]}/state?${new URLSearchParams({...e}).toString()}`,"GET",null,t)}},r={[o]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[o]=e},async signUp(e){return await i(`${null==this?void 0:this[o]}/auth/signup`,"POST",e)},async signIn(e){return await i(`${null==this?void 0:this[o]}/auth/signin`,"POST",e)},async signInPrincipal(e,t){return await i(`${null==this?void 0:this[o]}/auth/signin/principal`,"POST",e,t)},async getAuthInfo(e){return await i(`${null==this?void 0:this[o]}/auth/info`,"GET",null,e)}},c={[o]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[o]=e},async getList(e){return await i(`${null==this?void 0:this[o]}/delivery/list`,"GET",null,e)},async create(e,t){return await i(`${null==this?void 0:this[o]}/delivery`,"POST",e,t)},async get(e,t){return await i(`${null==this?void 0:this[o]}/delivery?deliveryId=${e}`,"GET",null,t)},async delete(e,t){return await i(`${null==this?void 0:this[o]}/delivery?deliveryId=${e}`,"DELETE",null,t)}},l={[o]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[o]=e},async getList(e){return await i(`${null==this?void 0:this[o]}/policy/list`,"GET",null,e)},async create(e,t){return await i(`${null==this?void 0:this[o]}/policy`,"POST",e,t)},async get(e,t){return await i(`${null==this?void 0:this[o]}/policy?policyId=${e}`,"GET",null,t)},async delete(e,t){return await i(`${null==this?void 0:this[o]}/policy?policyId=${e}`,"DELETE",null,t)}},h={[o]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[o]=e},async getList(e){return await i(`${null==this?void 0:this[o]}/principal/list`,"GET",null,e)},async create(e,t){return await i(`${null==this?void 0:this[o]}/principal`,"POST",e,t)},async get(e,t){return await i(`${null==this?void 0:this[o]}/principal?principalId=${e}`,"GET",null,t)}},u={[o]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[o]=e},async createSubject(e,t,s){return await i(`${null==this?void 0:this[o]}/subject?sid=${t}`,"POST",e,s)},async getSubject(e,t){return await i(`${null==this?void 0:this[o]}/subject?sid=${e}`,"GET",null,t)}},d={[o]:"",set apiUrl(e){if(!e)throw new Error("API URL cannot be empty");this[o]=e},async create(e,t,s){return await i(`${null==this?void 0:this[o]}/apikey?pid=${e}`,"POST",t,s)},async delete(e,t,s){return await i(`${null==this?void 0:this[o]}/apikey?pid=${e}`,"DELETE",t,s)},async getList(e,t){return await i(`${null==this?void 0:this[o]}/apikey/list?pid=${e}`,"GET",null,t)}};class p{constructor(e){this.socket=null,this.isConnected=!1,this.messageQueue=[],this.options=e,this.connect()}serverSocket(){var e,t,s,i,n,o,a;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===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new r(`${this.options.baseUrlWs}?${c}`),null===(i=this.socket)||void 0===i||i.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===(o=this.socket)||void 0===o||o.addListener("message",e=>{const t=e?JSON.parse(e.toString()):{};this.options.onMessage(t)}),null===(a=this.socket)||void 0===a||a.addListener("error",e=>{this.options.onError&&this.options.onError(e),console.error("WebSocket error:",e)})}clientSocket(){var e,t,s,i,n,o,a;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===(s=this.options.authKeys)||void 0===s?void 0:s.token)?`auth=${encodeURIComponent(this.options.authKeys.token)}`:"";this.socket=new WebSocket(`${this.options.baseUrlWs}?${r}`),null===(i=this.socket)||void 0===i||i.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===(o=this.socket)||void 0===o||o.addEventListener("message",e=>{const t=e.data?JSON.parse(e.data):{};this.options.onMessage(t)}),null===(a=this.socket)||void 0===a||a.addEventListener("error",e=>{this.options.onError&&this.options.onError(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(){this.socket&&(this.socket.close(3001),this.socket=null)}addEventListener(e){var t,s;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.addListener("message",t=>{const s=t?JSON.parse(t.toString()):{};e(s)}):null===(s=this.socket)||void 0===s||s.addEventListener("message",t=>{const s=t.data?JSON.parse(t.data):{};e(s)})}removeEventListener(e){var t,s;"undefined"==typeof window?null===(t=this.socket)||void 0===t||t.removeListener("message",t=>e):null===(s=this.socket)||void 0===s||s.removeEventListener("message",t=>e)}}var y,v,w;e.SubjectType=void 0,(y=e.SubjectType||(e.SubjectType={}))[y.Private=1]="Private",y[y.Public=2]="Public",e.PrincipalType=void 0,(v=e.PrincipalType||(e.PrincipalType={}))[v.App=1]="App",v[v.User=2]="User",e.DeliveryType=void 0,(w=e.DeliveryType||(e.DeliveryType={}))[w.WS=1]="WS",w[w.HTTP=2]="HTTP",w[w.FILE=3]="FILE",e.BigStateHttpClient=class{constructor(e){if(this.baseUrl="",this._apiKey="",this._token="",this.baseUrl=`${e.baseUrl}/v1`,e){const{token:t,apiKey:s}=e;t&&(this._token=t),s&&(this._apiKey=s)}u.apiUrl=this.baseUrl,a.apiUrl=this.baseUrl,h.apiUrl=this.baseUrl,l.apiUrl=this.baseUrl,c.apiUrl=this.baseUrl,r.apiUrl=this.baseUrl,d.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 signIn(e){return await r.signIn(e)}async signInPrincipal(e){return await r.signInPrincipal(e,this.authKey)}async createApiKey(e,t){return await d.create(e,t,this.authKey)}async deleteApiKey(e,t){return await d.delete(e,t,this.authKey)}async getListApiKey(e){return await d.getList(e,this.authKey)}async authInfoGet(){return await r.getAuthInfo(this.authKey)}async subjectCreate(e,t){return await u.createSubject(e,t,this.authKey)}async subjectGet(e){return await u.getSubject(e,this.authKey)}async stateSet(e,t){return await a.setSubjectState(e,t,this.authKey)}async stateGet(e){return await a.getSubjectState(e,this.authKey)}async principalCreate(e){return await h.create(e,this.authKey)}async principalGet(e){return await h.get(e,this.authKey)}async principalGetList(){return await h.getList(this.authKey)}async policyCreate(e){return await l.create(e,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){return await c.create(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:s,token:i,apiKey:n}=e;i&&(this._token=i),n&&(this._apiKey=n),t&&(this.maxReconnectCount=t),s&&(this.reconnectTime=s),s&&(this.defaultReconnectTime=s)}}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({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 s={baseUrlWs:this.baseUrl,authKeys:this.authKey,onOpen:t=>{this.reconnectCount=0,this.timerId&&(clearInterval(this.timerId),this.reconnectTime=this.defaultReconnectTime),this.onOpenSocket(t,e)},onMessage:e=>{t(e)},onError:e=>{console.error("Error "+JSON.stringify(e)),t({error:e})},onClose:e=>{console.log("webSocket close",e),t({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 p(s)}subscribeStateUpdate(e,t){this.messages=new Set([...this.messages,...e]),this.socket?this.socket.send(e):t&&this.openSocket(e,t)}unsubscribeStateUpdate(){this.socket&&(this.socket.close(),this.socket=null)}isSocketConnected(){return!!this.socket}addWsEventListener(e,t){var s;null===(s=this.socket)||void 0===s||s.addEventListener(e),!this.callbacks.find(e=>e.key===t)&&this.callbacks.push({key:t,callback:e})}removeWsEventListener(e,t){var s;null===(s=this.socket)||void 0===s||s.removeEventListener(e),this.callbacks=this.callbacks.filter(e=>e.key!==t)}},Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
|
+
//# sourceMappingURL=index.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../src/handleError.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/subjectService/subjectService.ts","../src/apiKeyService/apiKeyService.ts","../src/webSocketService/webSocketService.ts","../src/subjectService/Subject.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/bsClientHttpClient.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorResponse } from './types';\n\nexport const handleError = (error: any): ErrorResponse => {\n\tif (error instanceof Response) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: error.status,\n\t\t\t\tmessage: error.statusText,\n\t\t\t},\n\t\t};\n\t} else if (error instanceof Error) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 500,\n\t\t\t\tmessage: error.message,\n\t\t\t},\n\t\t};\n\t} else {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: 500,\n\t\t\t\tmessage: 'Unknown error',\n\t\t\t},\n\t\t};\n\t}\n};\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nconst defaultHeaders = {\r\n\t'Content-Type': 'application/json',\r\n\tAccept: 'application/json',\r\n};\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...defaultHeaders,\r\n\t\t...headersCustom,\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 await fetchDataClient(baseUrl, method, body, headers);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\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: method,\r\n\t\t\theaders,\r\n\t\t\tbody: body ? JSON.stringify(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 data = await res.text();\r\n\t\tif (data.trim() !== '') {\r\n\t\t\ttry {\r\n\t\t\t\treturn { data: JSON.parse(data) };\r\n\t\t\t} catch (error: any) {\r\n\t\t\t\treturn { data: null };\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn { data: null };\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} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { GetStateRequest } from './State';\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 setSubjectState<T>(\r\n\t\tsid: 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?sid=${sid}`,\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 getSubjectState<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?${new URLSearchParams({ ...data }).toString()}`,\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\tAuthPrincipalRequest,\r\n\tAuthRequest,\r\n\tResponseAuth,\r\n\tResponseAuthInfo,\r\n} from './Auth';\r\nimport { AuthKeys, ResponseWitOutData } 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(data: AuthRequest): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/auth/signup`, 'POST', data);\r\n\t},\r\n\tasync signIn(data: AuthRequest): Promise<ResponseAuth> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/auth/signin`, 'POST', data);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tdata: AuthPrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseAuth> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/auth/signin/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 getAuthInfo(authKeys?: AuthKeys): Promise<ResponseAuthInfo> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/auth/info`,\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\tDelivery,\r\n\tDeliveryListResponse,\r\n\tDeliveryResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\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<DeliveryListResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/list`,\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\tdata: Delivery,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/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\tdeliveryId: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<DeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?deliveryId=${deliveryId}`,\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\tdeliveryId: 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?deliveryId=${deliveryId}`,\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\tPolicy,\r\n\tResponsePolicy,\r\n\tResponsePolicyList,\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<ResponsePolicyList> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/list`,\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(data: Policy, authKeys?: AuthKeys): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/policy`, 'POST', data, authKeys);\r\n\t},\r\n\tasync get(policyId: string, authKeys?: AuthKeys): Promise<ResponsePolicy> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policyId=${policyId}`,\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\tpolicyId: 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?policyId=${policyId}`,\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 { Principal, PrincipalResponse, PrincipalsResponse } from '../types';\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<PrincipalsResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/list`,\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\tdata: Principal,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/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\tprincipalId: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<PrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principalId=${principalId}`,\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 securityPrincipalService;\r\n","import {\r\n\tISubject,\r\n\tSubjectResponse,\r\n\tResponseWitOutData,\r\n\tAuthKeys,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\n\r\nconst subjectService = {\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 createSubject(\r\n\t\tdata: ISubject,\r\n\t\tsid: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/subject?sid=${sid}`,\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 getSubject(sid: string, authKeys: AuthKeys): Promise<SubjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/subject?sid=${sid}`,\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 subjectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tCreateApiKeyRequest,\r\n\tKeyId,\r\n\tResponseCreateApiKey,\r\n\tResponseListApiKey,\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\tpid: string,\r\n\t\tdata: CreateApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseCreateApiKey> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?pid=${pid}`,\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 delete(\r\n\t\tpid: string,\r\n\t\tdata: KeyId,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?pid=${pid}`,\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 getList(pid: string, authKeys: AuthKeys): Promise<ResponseListApiKey> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/list?pid=${pid}`,\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 apiKeyService;\r\n","import { Message, MessageHandler, WebSocketOptions } from '../types';\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(newMessage as Message);\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(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(newMessage as Message);\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(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.socket.close(3001);\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(newMessage as Message);\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(newMessage as Message);\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 { FetchDataResponse } from '../types';\r\n\r\nexport enum SubjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface ISubject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n\ttype: SubjectType;\r\n}\r\n\r\nexport interface ISubjectResponse extends ISubject {\r\n\tsid: string;\r\n}\r\n\r\nexport type SubjectResponse = FetchDataResponse<ISubjectResponse>;\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 Principal {\r\n\tprincipalId: string;\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport type PrincipalsResponse = FetchDataResponse<Principal[]>;\r\n\r\nexport type PrincipalResponse = 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 Delivery {\r\n\tdeliveryId: string;\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tsids: string[];\r\n}\r\n\r\nexport type DeliveryListResponse = FetchDataResponse<Delivery[]>;\r\n\r\nexport type DeliveryResponse = FetchDataResponse<Delivery>;\r\n","import {\r\n\tIState,\r\n\tISubject,\r\n\tPolicy,\r\n\tPrincipal,\r\n\tPrincipalResponse,\r\n\tPrincipalsResponse,\r\n\tResponseAuthInfo,\r\n\tResponsePolicy,\r\n\tResponsePolicyList,\r\n\tResponseWitOutData,\r\n\tSubjectResponse,\r\n\tSubjectStateResponse,\r\n\tDelivery,\r\n\tDeliveryListResponse,\r\n\tDeliveryResponse,\r\n\tAuthRequest,\r\n\tResponseAuth,\r\n\tAuthPrincipalRequest,\r\n\tGetStateRequest,\r\n\tCreateApiKeyRequest,\r\n\tResponseCreateApiKey,\r\n\tKeyId,\r\n\tResponseListApiKey,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\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 subjectService from './subjectService/subjectService';\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\tsubjectService.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(data: AuthRequest): Promise<ResponseWitOutData> {\r\n\t\treturn await authService.signUp(data);\r\n\t}\r\n\r\n\tasync signIn(data: AuthRequest): Promise<ResponseAuth> {\r\n\t\treturn await authService.signIn(data);\r\n\t}\r\n\r\n\tasync signInPrincipal(data: AuthPrincipalRequest): Promise<ResponseAuth> {\r\n\t\treturn await authService.signInPrincipal(data, this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tpid: string,\r\n\t\tdata: CreateApiKeyRequest,\r\n\t): Promise<ResponseCreateApiKey> {\r\n\t\treturn await apiKeyService.create(pid, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(pid: string, data: KeyId): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(pid, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(pid: string): Promise<ResponseListApiKey> {\r\n\t\treturn await apiKeyService.getList(pid, this.authKey);\r\n\t}\r\n\r\n\tasync authInfoGet(): Promise<ResponseAuthInfo> {\r\n\t\treturn await authService.getAuthInfo(this.authKey);\r\n\t}\r\n\r\n\tasync subjectCreate(\r\n\t\tdata: ISubject,\r\n\t\tsid: string,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await subjectService.createSubject(data, sid, this.authKey);\r\n\t}\r\n\r\n\tasync subjectGet(sid: string): Promise<SubjectResponse> {\r\n\t\treturn await subjectService.getSubject(sid, 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.setSubjectState<T>(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.getSubjectState<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(data: Principal): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principalId: string): Promise<PrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principalId, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(): Promise<PrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(data: Policy): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policyId: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policyId, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policyId: string): Promise<ResponsePolicy> {\r\n\t\treturn await securityPolicyService.get(policyId, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(): Promise<ResponsePolicyList> {\r\n\t\treturn await securityPolicyService.getList(this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(data: Delivery): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(deliveryId: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(deliveryId, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(deliveryId: string): Promise<DeliveryResponse> {\r\n\t\treturn await deliveryService.get(deliveryId, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(): Promise<DeliveryListResponse> {\r\n\t\treturn await deliveryService.getList(this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import {\r\n\tMessageHandler,\r\n\tSendHandler,\r\n\tMessage,\r\n\tBSDeliveryWsOptions,\r\n} from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\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({ 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},\r\n\t\t\tonMessage: (message: Message) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (error: any) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(error));\r\n\t\t\t\tonMessage({ error });\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({ error: 'webSocket close' });\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.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","defaultHeaders","Accept","fetchData","async","baseUrl","method","body","authKeys","headersCustom","headers","apiKey","token","fetchDataClient","res","fetch","JSON","stringify","cache","ok","data","text","trim","parse","_apiUrl","Symbol","stateService","apiUrl","value","this","setSubjectState","sid","getSubjectState","URLSearchParams","toString","authService","signUp","signIn","signInPrincipal","getAuthInfo","deliveryService","getList","create","get","deliveryId","securityPolicyService","policyId","securityPrincipalService","principalId","subjectService","createSubject","getSubject","apiKeyService","pid","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","_g","onError","clientSocket","WebSocket","addEventListener","window","deliveryIds","forEach","includes","push","close","callback","removeEventListener","removeListener","SubjectType","PrincipalType","DeliveryType","exports","_apiKey","_token","authKey","createApiKey","deleteApiKey","delete","getListApiKey","authInfoGet","subjectCreate","subjectGet","stateSet","stateGet","principalCreate","principalGet","principalGetList","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","key","addWsEventListener","openSocket","deliveries","setTimeout","Math","round","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FetchDataResponse } from '../types';
|
|
2
|
+
export interface Definition {
|
|
3
|
+
principals: string[];
|
|
4
|
+
actions: string[];
|
|
5
|
+
resources: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface Policy {
|
|
8
|
+
policyId: string;
|
|
9
|
+
definition: Definition;
|
|
10
|
+
}
|
|
11
|
+
export type ResponsePolicyList = FetchDataResponse<Policy[]>;
|
|
12
|
+
export type ResponsePolicy = FetchDataResponse<Policy>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { _apiUrl } from '../constants';
|
|
2
|
+
import { AuthKeys, Policy, ResponsePolicy, ResponsePolicyList, ResponseWitOutData } from '../types';
|
|
3
|
+
declare const securityPolicyService: {
|
|
4
|
+
[_apiUrl]: string;
|
|
5
|
+
apiUrl: string;
|
|
6
|
+
getList(authKeys?: AuthKeys): Promise<ResponsePolicyList>;
|
|
7
|
+
create(data: Policy, authKeys?: AuthKeys): Promise<ResponseWitOutData>;
|
|
8
|
+
get(policyId: string, authKeys?: AuthKeys): Promise<ResponsePolicy>;
|
|
9
|
+
delete(policyId: string, authKeys?: AuthKeys): Promise<ResponseWitOutData>;
|
|
10
|
+
};
|
|
11
|
+
export default securityPolicyService;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FetchDataResponse } from '../types';
|
|
2
|
+
export declare enum PrincipalType {
|
|
3
|
+
App = 1,
|
|
4
|
+
User = 2
|
|
5
|
+
}
|
|
6
|
+
export interface Principal {
|
|
7
|
+
principalId: string;
|
|
8
|
+
type: PrincipalType;
|
|
9
|
+
name: string;
|
|
10
|
+
}
|
|
11
|
+
export type PrincipalsResponse = FetchDataResponse<Principal[]>;
|
|
12
|
+
export type PrincipalResponse = FetchDataResponse<Principal>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AuthKeys, ResponseWitOutData } from '../types';
|
|
2
|
+
import { _apiUrl } from '../constants';
|
|
3
|
+
import { Principal, PrincipalResponse, PrincipalsResponse } from '../types';
|
|
4
|
+
declare const securityPrincipalService: {
|
|
5
|
+
[_apiUrl]: string;
|
|
6
|
+
apiUrl: string;
|
|
7
|
+
getList(authKeys?: AuthKeys): Promise<PrincipalsResponse>;
|
|
8
|
+
create(data: Principal, authKeys?: AuthKeys): Promise<ResponseWitOutData>;
|
|
9
|
+
get(principalId: string, authKeys?: AuthKeys): Promise<PrincipalResponse>;
|
|
10
|
+
};
|
|
11
|
+
export default securityPrincipalService;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { FetchDataResponse } from '../types';
|
|
2
|
+
export interface Version {
|
|
3
|
+
version: string;
|
|
4
|
+
}
|
|
5
|
+
export interface IStateResponse<T = any> extends Version {
|
|
6
|
+
at: string;
|
|
7
|
+
rec: string;
|
|
8
|
+
value: T;
|
|
9
|
+
}
|
|
10
|
+
export interface IState<T = any> {
|
|
11
|
+
at: string;
|
|
12
|
+
value: T;
|
|
13
|
+
}
|
|
14
|
+
export interface GetStateRequest {
|
|
15
|
+
sid: string;
|
|
16
|
+
version?: string;
|
|
17
|
+
}
|
|
18
|
+
export type SubjectStateResponse<T> = FetchDataResponse<IStateResponse<T>>;
|
|
19
|
+
export type SetStateResponse = FetchDataResponse<Version>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IState, SubjectStateResponse, AuthKeys, SetStateResponse } from '../types';
|
|
2
|
+
import { _apiUrl } from '../constants';
|
|
3
|
+
import { GetStateRequest } from './State';
|
|
4
|
+
declare const stateService: {
|
|
5
|
+
[_apiUrl]: string;
|
|
6
|
+
apiUrl: string;
|
|
7
|
+
setSubjectState<T>(sid: string, data: IState<T>, authKeys?: AuthKeys): Promise<SetStateResponse>;
|
|
8
|
+
getSubjectState<T>(data: GetStateRequest, authKeys?: AuthKeys): Promise<SubjectStateResponse<T>>;
|
|
9
|
+
};
|
|
10
|
+
export default stateService;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FetchDataResponse } from '../types';
|
|
2
|
+
export declare enum SubjectType {
|
|
3
|
+
Private = 1,
|
|
4
|
+
Public = 2
|
|
5
|
+
}
|
|
6
|
+
export interface ISubject {
|
|
7
|
+
name: string;
|
|
8
|
+
desc: string;
|
|
9
|
+
example: any;
|
|
10
|
+
type: SubjectType;
|
|
11
|
+
}
|
|
12
|
+
export interface ISubjectResponse extends ISubject {
|
|
13
|
+
sid: string;
|
|
14
|
+
}
|
|
15
|
+
export type SubjectResponse = FetchDataResponse<ISubjectResponse>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ISubject, SubjectResponse, ResponseWitOutData, AuthKeys } from '../types';
|
|
2
|
+
import { _apiUrl } from '../constants';
|
|
3
|
+
declare const subjectService: {
|
|
4
|
+
[_apiUrl]: string;
|
|
5
|
+
apiUrl: string;
|
|
6
|
+
createSubject(data: ISubject, sid: string, authKeys: AuthKeys): Promise<ResponseWitOutData>;
|
|
7
|
+
getSubject(sid: string, authKeys: AuthKeys): Promise<SubjectResponse>;
|
|
8
|
+
};
|
|
9
|
+
export default subjectService;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface IError {
|
|
2
|
+
code: number;
|
|
3
|
+
message: string;
|
|
4
|
+
}
|
|
5
|
+
export type FetchDataResponse<T = any> = {
|
|
6
|
+
data?: T;
|
|
7
|
+
error?: IError;
|
|
8
|
+
};
|
|
9
|
+
export type ErrorResponse = {
|
|
10
|
+
error: IError;
|
|
11
|
+
};
|
|
12
|
+
export type ResponseWitOutData = FetchDataResponse<null>;
|
|
13
|
+
export interface AuthKeys {
|
|
14
|
+
apiKey?: string;
|
|
15
|
+
token?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface BSHttpOptions extends AuthKeys {
|
|
18
|
+
baseUrl: string;
|
|
19
|
+
}
|
|
20
|
+
export interface BSDeliveryWsOptions extends AuthKeys {
|
|
21
|
+
baseUrl: string;
|
|
22
|
+
maxReconnectCount?: number;
|
|
23
|
+
reconnectTime?: number;
|
|
24
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ResponseWitOutData, FetchDataResponse, ErrorResponse, IError, AuthKeys, BSHttpOptions, BSDeliveryWsOptions } from './common';
|
|
2
|
+
import { SubjectResponse, ISubject, SubjectType, ISubjectResponse } from '../subjectService/Subject';
|
|
3
|
+
import { IState, SubjectStateResponse, GetStateRequest, SetStateResponse, IStateResponse } from '../stateService/State';
|
|
4
|
+
import { PrincipalResponse, PrincipalsResponse, Principal, PrincipalType } from '../securityPrincipalService/Principal';
|
|
5
|
+
import { Definition, Policy, ResponsePolicy, ResponsePolicyList } from '../securityPolicyService/Policy';
|
|
6
|
+
import { Delivery, DeliveryListResponse, DeliveryResponse, DeliveryType } from '../deliveryService/Delivery';
|
|
7
|
+
import { AuthPrincipalRequest, AuthRequest, AuthData, IAuthInfo, ResponseAuth, ResponseAuthInfo } from '../authService/Auth';
|
|
8
|
+
import { Message, MessageHandler, WebSocketOptions, SendHandler, ErrorHandler, OpenHandler, CloseHandler } from '../webSocketService/WebSocket';
|
|
9
|
+
import { CreateApiKeyRequest, IApiKey, KeyId, ResponseCreateApiKey, ResponseListApiKey } from '../apiKeyService/ApiKey';
|
|
10
|
+
export { ResponseWitOutData, FetchDataResponse, ErrorResponse, IError, AuthKeys, SubjectResponse, ISubject, SubjectType, ISubjectResponse, IState, SetStateResponse, GetStateRequest, IStateResponse, SubjectStateResponse, PrincipalResponse, PrincipalsResponse, Principal, PrincipalType, Definition, Policy, ResponsePolicyList, ResponsePolicy, Delivery, DeliveryListResponse, DeliveryResponse, DeliveryType, ResponseAuthInfo, AuthPrincipalRequest, AuthRequest, IAuthInfo, ResponseAuth, AuthData, Message, MessageHandler, WebSocketOptions, SendHandler, ErrorHandler, OpenHandler, CloseHandler, ResponseCreateApiKey, IApiKey, KeyId, CreateApiKeyRequest, ResponseListApiKey, BSHttpOptions, BSDeliveryWsOptions, };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AuthKeys } from '../types';
|
|
2
|
+
export interface Message {
|
|
3
|
+
sid?: string;
|
|
4
|
+
rec?: string;
|
|
5
|
+
value?: any;
|
|
6
|
+
error?: any;
|
|
7
|
+
version?: string;
|
|
8
|
+
}
|
|
9
|
+
export type SendHandler = (deliveries: string[]) => void;
|
|
10
|
+
export type MessageHandler = (message: Message) => void;
|
|
11
|
+
export type ErrorHandler = (error: any) => void;
|
|
12
|
+
export type OpenHandler = (send: SendHandler) => void;
|
|
13
|
+
export type CloseHandler = (e: number | CloseEvent) => void;
|
|
14
|
+
export interface WebSocketOptions {
|
|
15
|
+
baseUrlWs: string;
|
|
16
|
+
authKeys: AuthKeys;
|
|
17
|
+
onMessage: MessageHandler;
|
|
18
|
+
onOpen?: OpenHandler;
|
|
19
|
+
onClose?: CloseHandler;
|
|
20
|
+
onError?: ErrorHandler;
|
|
21
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MessageHandler, WebSocketOptions } from '../types';
|
|
2
|
+
declare class WebSocketService {
|
|
3
|
+
private socket;
|
|
4
|
+
private isConnected;
|
|
5
|
+
private options;
|
|
6
|
+
messageQueue: string[];
|
|
7
|
+
constructor(options: WebSocketOptions);
|
|
8
|
+
private serverSocket;
|
|
9
|
+
private clientSocket;
|
|
10
|
+
private connect;
|
|
11
|
+
send(deliveryIds: string[]): void;
|
|
12
|
+
close(): void;
|
|
13
|
+
addEventListener(callback: MessageHandler): void;
|
|
14
|
+
removeEventListener(callback: MessageHandler): void;
|
|
15
|
+
}
|
|
16
|
+
export default WebSocketService;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bigstate.client.javascript",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -22,12 +22,13 @@
|
|
|
22
22
|
"build": "npm run format && rollup -c",
|
|
23
23
|
"pack": "npm run build && npm pack",
|
|
24
24
|
"publish:package": "npm publish --access public",
|
|
25
|
+
"pack:publish": "npm run build && npm pack && npm publish --access public",
|
|
25
26
|
"versionPatch": "npm version patch",
|
|
26
27
|
"versionMinor": "npm version minor",
|
|
27
28
|
"versionMajor": "npm version major"
|
|
28
29
|
},
|
|
29
30
|
"keywords": [],
|
|
30
|
-
"author": "
|
|
31
|
+
"author": "bigstate",
|
|
31
32
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"@rollup/plugin-commonjs": "^28.0.2",
|
|
@@ -38,12 +39,13 @@
|
|
|
38
39
|
"prettier": "^3.3.2",
|
|
39
40
|
"rollup": "^2.79.2",
|
|
40
41
|
"rollup-plugin-terser": "^7.0.2",
|
|
42
|
+
"tslib": "^2.8.1",
|
|
41
43
|
"typescript": "^5.7.3"
|
|
42
44
|
},
|
|
43
45
|
"private": false,
|
|
44
|
-
"dependencies": {
|
|
46
|
+
"dependencies": {},
|
|
47
|
+
"optionalDependencies": {
|
|
45
48
|
"bufferutil": "^4.0.8",
|
|
46
|
-
"tslib": "^2.8.1",
|
|
47
49
|
"utf-8-validate": "^6.0.4",
|
|
48
50
|
"ws": "^8.17.1"
|
|
49
51
|
}
|