bigstate.client.javascript 0.0.5-alpha.37 → 0.0.5-alpha.38

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/handleError.ts","../src/helpers/common.ts","../src/fetchService.ts","../src/constants/index.ts","../src/stateService/stateService.ts","../src/authService/authService.ts","../src/deliveryService/deliveryService.ts","../src/securityPolicyService/securityPolicyService.ts","../src/securityPrincipalService/securityPrincipalService.ts","../src/objectService/objectService.ts","../src/apiKeyService/apiKeyService.ts","../src/webSocketService/WebSocket.ts","../src/types/common.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/objectService/Object.ts","../src/webSocketService/webSocketService.ts","../src/bsClientHttpClient.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorHandlerFn, ErrorResponse } from './types';\r\n\r\nlet customHandleError: ErrorHandlerFn | null = null;\r\n\r\nexport const setErrorHandler = (handler?: ErrorHandlerFn) => {\r\n\tcustomHandleError = handler ?? null;\r\n};\r\n\r\nconst normalizeError = (error: any): ErrorResponse => {\r\n\tif (error instanceof Response) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: error.status,\r\n\t\t\t\tmessage: error.statusText,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\tif (error instanceof Error) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\treturn {\r\n\t\terror: {\r\n\t\t\tcode: 500,\r\n\t\t\tmessage: 'Unknown error',\r\n\t\t},\r\n\t};\r\n};\r\n\r\nexport const handleError = (error: any): ErrorResponse => {\r\n\tconst normalized = normalizeError(error);\r\n\tif (customHandleError) {\r\n\t\treturn customHandleError(normalized);\r\n\t}\r\n\treturn normalized;\r\n};\r\n","export const isBinaryBody = (body: any): boolean =>\r\n\tbody instanceof Blob ||\r\n\tbody instanceof File ||\r\n\tbody instanceof ArrayBuffer ||\r\n\tbody instanceof Uint8Array;\r\n\r\nexport const toSearchParams = (data: Record<string, unknown>): string => {\r\n\tconst params = new URLSearchParams();\r\n\r\n\tObject.entries(data).forEach(([key, value]) => {\r\n\t\tif (value !== undefined && value !== null) {\r\n\t\t\tparams.append(key, String(value));\r\n\t\t}\r\n\t});\r\n\r\n\treturn params.toString();\r\n};\r\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\nimport { isBinaryBody } from './helpers/common';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nexport const fetchData = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tbody: any = null,\r\n\tauthKeys: AuthKeys = {},\r\n\theadersCustom: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\tconst headers: HeadersType = {\r\n\t\t...headersCustom,\r\n\t};\r\n\r\n\tconst isJson =\r\n\t\tbody &&\r\n\t\ttypeof body === 'object' &&\r\n\t\t!isBinaryBody(body) &&\r\n\t\t!(body instanceof FormData);\r\n\r\n\tif (isJson) {\r\n\t\theaders['Content-Type'] = 'application/json';\r\n\t\theaders['Accept'] = 'application/json';\r\n\t}\r\n\r\n\tif (isBinaryBody(body)) {\r\n\t\theaders['Content-Type'] = 'application/octet-stream';\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-token'] = authKeys.token;\r\n\t}\r\n\r\n\tconst isStream = headers['x-bs-stream'] === '1';\r\n\r\n\treturn fetchDataClient(baseUrl, method, isJson, body, headers, isStream);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tisJson: boolean,\r\n\tbody: any = null,\r\n\theaders: HeadersType = {},\r\n\tisStream: boolean = false,\r\n): Promise<FetchDataResponse> => {\r\n\tconst res = await fetch(baseUrl, {\r\n\t\tmethod,\r\n\t\theaders,\r\n\t\tbody: body ? (isJson ? JSON.stringify(body) : body) : null,\r\n\t\tcache: 'no-store',\r\n\t});\r\n\r\n\tif (!res.ok) {\r\n\t\treturn handleError(res);\r\n\t}\r\n\r\n\tif (isStream) {\r\n\t\treturn { data: res.body as any };\r\n\t}\r\n\r\n\tconst contentType = res.headers.get('content-type') || '';\r\n\r\n\tif (contentType.includes('application/json')) {\r\n\t\tconst text = await res.text();\r\n\r\n\t\tif (!text) {\r\n\t\t\treturn { data: null };\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\treturn { data: JSON.parse(text) };\r\n\t\t} catch {\r\n\t\t\treturn { data: text };\r\n\t\t}\r\n\t}\r\n\r\n\tconst blob = await res.blob();\r\n\treturn { data: blob };\r\n};\r\n","export const _apiUrl = Symbol('apiUrl');\r\n","import {\r\n\tIState,\r\n\tSubjectStateResponse,\r\n\tAuthKeys,\r\n\tSetStateResponse,\r\n\tGetStateRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tVersionListResponse,\r\n\tResponseWitOutData,\r\n\tSetValueRefRequest,\r\n\tGetValueListRequest,\r\n\tFileType,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst stateService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync set<T>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync setValueRef(\r\n\t\tdata: SetValueRefRequest,\r\n\t\tfile: FileType,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value${query ? `?${query}` : ''}`,\r\n\t\t\t'POST',\r\n\t\t\tfile,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get<T>(\r\n\t\tdata: GetStateRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state${query ? `?${query}` : ''}`,\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 getValueRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value${query ? `?${query}` : ''}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t\t{ 'x-bs-stream': '1' },\r\n\t\t);\r\n\t},\r\n\tasync deleteValueRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value${query ? `?${query}` : ''}`,\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 getVersionList(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<VersionListResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/version?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRefList(\r\n\t\tdata: GetValueListRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ValueListRefResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value/match${query ? `?${query}` : ''}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default stateService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tPublicKey,\r\n\tAuthenticateResponse,\r\n\tCreateKeyPairResponse,\r\n\tRegisterResponse,\r\n\tListPublicKeysResponse,\r\n\tGetApiKeyInfoResponse,\r\n\tGetListByPrincipalRequest,\r\n\tSingOutRequest,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst authService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/owner`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\t{},\r\n\t\t\t{\r\n\t\t\t\t'x-bs-edge-sign': key,\r\n\t\t\t\t'x-bs-edge-sign-nonce': '1',\r\n\t\t\t\t'x-bs-edge-sign-timestamp': '1',\r\n\t\t\t},\r\n\t\t);\r\n\t},\r\n\tasync authInfo(authKeys?: AuthKeys): Promise<GetApiKeyInfoResponse> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/context`, 'GET', null, authKeys);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<AuthenticateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync signOutPrincipal(\r\n\t\tdata: SingOutRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token${query ? `?${query}` : ''}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync creatKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getListKeyPrincipal(\r\n\t\tdata: GetListByPrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair/match${query ? `?${query}` : ''}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default authService;\r\n","import {\r\n\tAuthKeys,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tResponseWitOutData,\r\n\tCreateDeliveryRequest,\r\n\tGetListRequest,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\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 create(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetDeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tdata?: GetListRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListDeliveriesResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/match${query ? `?${query}` : ''}`,\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 deliveryService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tDefinition,\r\n\tGetListRequest,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { toSearchParams } from '../helpers/common';\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 create(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(policy: string, authKeys?: AuthKeys): Promise<GetPolicyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tpolicy: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tdata?: GetListRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPoliciesResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/match${query ? `?${query}` : ''}`,\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 securityPolicyService;\r\n","import {\r\n\tAuthKeys,\r\n\tGetListRequest,\r\n\tResponseWitOutData,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tCreatePrincipalRequest,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\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 create(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetPrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tdata?: GetListRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPrincipalsResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/match${query ? `?${query}` : ''}`,\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\tAuthKeys,\r\n\tGetObjectResponse,\r\n\tCreateObjectRequest,\r\n\tListObjectsResponse,\r\n\tResponseAction,\r\n\tGetListRequest,\r\n\tGetListSegmentRequest,\r\n\tListSegmentsResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst objectService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseAction> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(object: string, authKeys: AuthKeys): Promise<GetObjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(object: string, authKeys: AuthKeys): Promise<ResponseAction> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\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\tasync getList(\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: GetListRequest,\r\n\t): Promise<ListObjectsResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/match${query ? `?${query}` : ''}`,\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 getSegmentList(\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: GetListSegmentRequest,\r\n\t): Promise<ListSegmentsResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/segment${query ? `?${query}` : ''}`,\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 objectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tResponseWitOutData,\r\n\tGetListByPrincipalRequest,\r\n} from '../types';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst apiKeyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tdata: GetListByPrincipalRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/match${query ? `?${query}` : ''}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default apiKeyService;\r\n","import { ActionsEnum, AuthKeys } from '../types';\r\n\r\nexport enum NotificationType {\r\n\tMessage = 'message',\r\n\tInfo = 'info',\r\n\tError = 'error',\r\n}\r\n\r\nexport interface MessageData {\r\n\taction: ActionsEnum;\r\n\towner: string;\r\n\tobject: string;\r\n\tttl?: number;\r\n\tvalidity?: number;\r\n\tstate: {\r\n\t\trec: string;\r\n\t\tat: string;\r\n\t\tversion: number;\r\n\t\tvalue?: any;\r\n\t\tvalueRef?: string;\r\n\t};\r\n}\r\n\r\nexport interface InfoData {\r\n\tmessage: string;\r\n}\r\n\r\nexport interface ErrorData {\r\n\terror: string;\r\n\tcode?: string | number;\r\n}\r\n\r\nexport type Notification =\r\n\t| {\r\n\t\t\ttype: NotificationType.Error;\r\n\t\t\tdata: ErrorData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Info;\r\n\t\t\tdata: InfoData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Message;\r\n\t\t\tdata: MessageData;\r\n\t };\r\n\r\nexport type SendHandler = (deliveries: string[]) => void;\r\nexport type MessageHandler = (message: Notification) => void;\r\nexport type ErrorHandler = (error: any) => void;\r\nexport type OpenHandler = (send: SendHandler) => void;\r\nexport type CloseHandler = (e: number | CloseEvent) => void;\r\n\r\nexport interface WebSocketOptions {\r\n\tbaseUrlWs: string;\r\n\tauthKeys: AuthKeys;\r\n\tonMessage: MessageHandler;\r\n\tonOpen?: OpenHandler;\r\n\tonClose?: CloseHandler;\r\n\tonError?: ErrorHandler;\r\n}\r\n","export enum ActionsEnum {\r\n\tCreate = 1,\r\n\tUpdate = 2,\r\n\tDelete = 3,\r\n}\r\n\r\nexport interface Action {\r\n\taction: ActionsEnum;\r\n}\r\n\r\nexport interface IError {\r\n\tcode: number;\r\n\tmessage: string;\r\n}\r\n\r\nexport type FetchDataResponse<T = any> = {\r\n\tdata?: T;\r\n\terror?: IError;\r\n};\r\n\r\nexport type ErrorResponse = {\r\n\terror: IError;\r\n};\r\n\r\nexport type ErrorHandlerFn = (error: ErrorResponse) => ErrorResponse;\r\n\r\nexport type ResponseWitOutData = FetchDataResponse<null>;\r\nexport type ResponseAction = FetchDataResponse<Action>;\r\n\r\nexport interface AuthKeys {\r\n\tapiKey?: string;\r\n\ttoken?: string;\r\n}\r\n\r\nexport interface BSHttpOptions extends AuthKeys {\r\n\tbaseUrl: string;\r\n\terrorHandler?: ErrorHandlerFn;\r\n}\r\n\r\nexport interface BSDeliveryWsOptions extends AuthKeys {\r\n\tbaseUrl: string;\r\n\tmaxReconnectCount?: number;\r\n\treconnectTime?: number;\r\n}\r\n\r\nexport interface GetListRequest {\r\n\tpattern?: string;\r\n\tnext?: number;\r\n}\r\n\r\nexport type NextType = {\r\n\tnext: number;\r\n};\r\n","import { FetchDataResponse, GetListRequest, NextType } from '../types';\r\n\r\nexport enum PrincipalType {\r\n\tApp = 1,\r\n\tUser = 2,\r\n}\r\n\r\nexport interface CreatePrincipalRequest {\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport interface Principal extends CreatePrincipalRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport interface GetListByPrincipalRequest extends GetListRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport interface GetListPrincipalResponse extends NextType {\r\n\tprincipals: Principal[];\r\n}\r\n\r\nexport type ListPrincipalsResponse =\r\n\tFetchDataResponse<GetListPrincipalResponse>;\r\nexport type GetPrincipalResponse = FetchDataResponse<Principal>;\r\n","import { FetchDataResponse, NextType } from '../types';\r\n\r\nexport enum DeliveryType {\r\n\tWS = 1,\r\n\tHTTP = 2,\r\n\tFILE = 3,\r\n}\r\n\r\nexport interface CreateDeliveryRequest {\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface Delivery extends CreateDeliveryRequest {\r\n\tdelivery: string;\r\n}\r\n\r\nexport interface GetListDeliveriesResponse extends NextType {\r\n\tdeliveries: Delivery[];\r\n}\r\n\r\nexport type ListDeliveriesResponse =\r\n\tFetchDataResponse<GetListDeliveriesResponse>;\r\nexport type GetDeliveryResponse = FetchDataResponse<Delivery>;\r\n","import { FetchDataResponse, GetListRequest, NextType } from '../types';\r\n\r\nexport enum ObjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface InfoObject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n}\r\n\r\nexport interface CreateObjectRequest {\r\n\ttype: ObjectType;\r\n\tttl: number | null;\r\n\tvalidity: number | null;\r\n\tversionDeep: number | null;\r\n\tinfo: InfoObject;\r\n}\r\n\r\nexport interface ObjectResponse extends CreateObjectRequest {\r\n\tobject: string;\r\n}\r\n\r\nexport interface GetListSegmentRequest extends GetListRequest {\r\n\tpath?: number;\r\n}\r\n\r\nexport interface GetListObjectResponse extends NextType {\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface GetListSegmentResponse extends NextType {\r\n\tsegments: string[];\r\n}\r\n\r\nexport type GetObjectResponse = FetchDataResponse<ObjectResponse>;\r\nexport type ListObjectsResponse = FetchDataResponse<GetListObjectResponse>;\r\nexport type ListSegmentsResponse = FetchDataResponse<GetListSegmentResponse>;\r\n","import { MessageHandler, WebSocketOptions } from '../types';\r\nimport { NotificationType } from './WebSocket';\r\n\r\n// Type for Node.js WebSocket (ws library)\r\ntype WebSocketWs = {\r\n\taddListener(event: string, listener: (...args: any[]) => void): void;\r\n\tremoveListener(event: string, listener: (...args: any[]) => void): void;\r\n\tsend(data: string): void;\r\n\tclose(code?: number): void;\r\n};\r\n\r\n// Declare require for TypeScript (only available in Node.js)\r\ndeclare const require: ((id: string) => any) | undefined;\r\n\r\nclass WebSocketService {\r\n\tprivate socket: WebSocketWs | WebSocket | null = null;\r\n\tprivate isConnected: boolean = false;\r\n\tprivate options: WebSocketOptions;\r\n\tmessageQueue: string[] = [];\r\n\r\n\tconstructor(options: WebSocketOptions) {\r\n\t\tthis.options = options;\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate serverSocket() {\r\n\t\t// Dynamic require to avoid bundling ws in browser builds\r\n\t\tconst Ws = typeof require !== 'undefined' ? require('ws') : null;\r\n\t\tif (!Ws) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t'ws module is required for Node.js environment. Please install it: npm install ws',\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\t\tthis.socket = new Ws(`${this.options.baseUrlWs}?${auth}`) as WebSocketWs;\r\n\r\n\t\tthis.socket?.addListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(deliveries => this.send(deliveries));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('message', event => {\r\n\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('error', (event: any) => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate clientSocket() {\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\r\n\t\tthis.socket = new WebSocket(\r\n\t\t\t`${this.options.baseUrlWs}?${auth}`,\r\n\t\t) as WebSocket;\r\n\r\n\t\tthis.socket?.addEventListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(deliveries => this.send(deliveries));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event as CloseEvent);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('message', event => {\r\n\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('error', event => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate connect() {\r\n\t\ttypeof window === 'undefined' ? this.serverSocket() : this.clientSocket();\r\n\t}\r\n\r\n\tsend(deliveryIds: string[]) {\r\n\t\tif (this.isConnected && this.socket) {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\tthis.socket && this.socket.send(`delivery.listen=${deliveryId}`);\r\n\t\t\t\tconsole.log('Message sent, deliveryId:', deliveryId);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\t!this.messageQueue.includes(deliveryId) &&\r\n\t\t\t\t\tthis.messageQueue.push(deliveryId);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tif (this.socket) {\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tconst readyState =\r\n\t\t\t\ttypeof window === 'undefined'\r\n\t\t\t\t\t? (this.socket as any).readyState\r\n\t\t\t\t\t: (this.socket as WebSocket).readyState;\r\n\r\n\t\t\tif (\r\n\t\t\t\treadyState === WebSocket.OPEN ||\r\n\t\t\t\treadyState === WebSocket.CONNECTING ||\r\n\t\t\t\treadyState === 0 ||\r\n\t\t\t\treadyState === 1\r\n\t\t\t) {\r\n\t\t\t\tthis.socket.close(3001);\r\n\t\t\t}\r\n\t\t\tthis.messageQueue = [];\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.addListener('message', event => {\r\n\t\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.addEventListener('message', event => {\r\n\t\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.removeListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.removeEventListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default WebSocketService;\r\n","import {\r\n\tIState,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n\tCreateObjectRequest,\r\n\tGetObjectResponse,\r\n\tListObjectsResponse,\r\n\tSubjectStateResponse,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tAuthenticateResponse,\r\n\tGetStateRequest,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\r\n\tDefinition,\r\n\tCreatePrincipalRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tRegisterResponse,\r\n\tCreateKeyPairResponse,\r\n\tPublicKey,\r\n\tListPublicKeysResponse,\r\n\tCreateDeliveryRequest,\r\n\tGetApiKeyInfoResponse,\r\n\tVersionListResponse,\r\n\tResponseAction,\r\n\tGetListRequest,\r\n\tGetListSegmentRequest,\r\n\tListSegmentsResponse,\r\n\tGetListByPrincipalRequest,\r\n\tSingOutRequest,\r\n\tGetValueListRequest,\r\n\tSetValueRefRequest,\r\n\tFileType,\r\n} from './types';\r\nimport { setErrorHandler } from './handleError';\r\nimport stateService from './stateService/stateService';\r\nimport authService from './authService/authService';\r\nimport deliveryService from './deliveryService/deliveryService';\r\nimport securityPolicyService from './securityPolicyService/securityPolicyService';\r\nimport securityPrincipalService from './securityPrincipalService/securityPrincipalService';\r\nimport objectService from './objectService/objectService';\r\nimport apiKeyService from './apiKeyService/apiKeyService';\r\n\r\nclass BigStateHttpClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\r\n\tconstructor(data: BSHttpOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { token, apiKey, errorHandler } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tsetErrorHandler(errorHandler);\r\n\t\t}\r\n\t\tobjectService.apiUrl = this.baseUrl;\r\n\t\tstateService.apiUrl = this.baseUrl;\r\n\t\tsecurityPrincipalService.apiUrl = this.baseUrl;\r\n\t\tsecurityPolicyService.apiUrl = this.baseUrl;\r\n\t\tdeliveryService.apiUrl = this.baseUrl;\r\n\t\tauthService.apiUrl = this.baseUrl;\r\n\t\tapiKeyService.apiUrl = this.baseUrl;\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tasync signUp(key: string): Promise<RegisterResponse> {\r\n\t\treturn await authService.signUp(key);\r\n\t}\r\n\r\n\tasync creatKeyPrincipal(principal: string): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.creatKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.deleteKeyPrincipal(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListKeyPrincipal(\r\n\t\tdata: GetListByPrincipalRequest,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await authService.getListKeyPrincipal(data, this.authKey);\r\n\t}\r\n\r\n\tasync signInPrincipal(principal: string): Promise<AuthenticateResponse> {\r\n\t\treturn await authService.signInPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync signOutPrincipal(data: SingOutRequest): Promise<ResponseWitOutData> {\r\n\t\treturn await authService.signOutPrincipal(data, this.authKey);\r\n\t}\r\n\r\n\tasync getAuthInfo(): Promise<GetApiKeyInfoResponse> {\r\n\t\treturn await authService.authInfo(this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await apiKeyService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(\r\n\t\tdata: GetListByPrincipalRequest,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\treturn await apiKeyService.getList(data, this.authKey);\r\n\t}\r\n\r\n\tasync objectCreate(\r\n\t\tobject: string,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseAction> {\r\n\t\treturn await objectService.create(object, this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGet(object: string): Promise<GetObjectResponse> {\r\n\t\treturn await objectService.get(object, this.authKey);\r\n\t}\r\n\r\n\tasync objectDelete(object: string): Promise<ResponseAction> {\r\n\t\treturn await objectService.delete(object, this.authKey);\r\n\t}\r\n\r\n\tasync objectGetList(data?: GetListRequest): Promise<ListObjectsResponse> {\r\n\t\treturn await objectService.getList(this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGetSegmentList(\r\n\t\tdata?: GetListSegmentRequest,\r\n\t): Promise<ListSegmentsResponse> {\r\n\t\treturn await objectService.getSegmentList(this.authKey, data);\r\n\t}\r\n\r\n\tasync stateSet<T = any>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await stateService.set<T>(object, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateSetValueRef(\r\n\t\tdata: SetValueRefRequest,\r\n\t\tfile: FileType,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await stateService.setValueRef(data, file, this.authKey);\r\n\t}\r\n\r\n\tasync stateGet<T = any>(\r\n\t\tdata: GetStateRequest,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.get<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGetValueRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\treturn await stateService.getValueRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateDeleteValueRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await stateService.deleteValueRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync getVersionList(object: string): Promise<VersionListResponse> {\r\n\t\treturn await stateService.getVersionList(object, this.authKey);\r\n\t}\r\n\r\n\tasync getRefList(data: GetValueListRequest): Promise<ValueListRefResponse> {\r\n\t\treturn await stateService.getRefList(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principal: string): Promise<GetPrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principal, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(\r\n\t\tdata?: GetListRequest,\r\n\t): Promise<ListPrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalDelete(principal: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.delete(principal, this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(policy, data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policy: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policy: string): Promise<GetPolicyResponse> {\r\n\t\treturn await securityPolicyService.get(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(data?: GetListRequest): Promise<ListPoliciesResponse> {\r\n\t\treturn await securityPolicyService.getList(data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(delivery, data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(delivery: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(delivery: string): Promise<GetDeliveryResponse> {\r\n\t\treturn await deliveryService.get(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(\r\n\t\tdata?: GetListRequest,\r\n\t): Promise<ListDeliveriesResponse> {\r\n\t\treturn await deliveryService.getList(data, this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import { BSDeliveryWsOptions, MessageHandler, SendHandler } from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\r\nimport { Notification, NotificationType } from './webSocketService/WebSocket';\r\n\r\nclass BigStateWsDeliveryClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\tprivate socket: WebSocketService | null = null;\r\n\tprivate reconnectCount = 0;\r\n\tprivate reconnectTime = 5000;\r\n\tprivate defaultReconnectTime = 5000;\r\n\tprivate maxReconnectCount = 11;\r\n\tprivate messages: Set<string> = new Set<string>([]);\r\n\tprivate callbacks: { key: string; callback: MessageHandler }[] = [];\r\n\tprivate timerId: ReturnType<typeof setTimeout> | null = null;\r\n\r\n\tconstructor(data: BSDeliveryWsOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { maxReconnectCount, reconnectTime, token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tmaxReconnectCount && (this.maxReconnectCount = maxReconnectCount);\r\n\t\t\treconnectTime && (this.reconnectTime = reconnectTime);\r\n\t\t\treconnectTime && (this.defaultReconnectTime = reconnectTime);\r\n\t\t}\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tonOpenSocket(send: SendHandler, objects: string[]) {\r\n\t\tsend(objects);\r\n\t}\r\n\r\n\tretry(error: any, onMessage: MessageHandler) {\r\n\t\tthis.reconnectCount += 1;\r\n\t\tif (this.reconnectCount > this.maxReconnectCount) {\r\n\t\t\tonMessage && onMessage({ type: NotificationType.Error, data: { error } });\r\n\t\t\tconsole.log('reconnect ' + this.reconnectCount);\r\n\t\t\tif (this.timerId) {\r\n\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\tthis.callbacks = [];\r\n\t\t\t\tthis.messages = new Set<string>();\r\n\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t}\r\n\t\t\tthis.reconnectCount = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.unsubscribeStateUpdate();\r\n\t\tif (!(this.reconnectCount > this.maxReconnectCount)) {\r\n\t\t\tthis.subscribeStateUpdate(Array.from(this.messages), onMessage);\r\n\t\t\tthis.callbacks.forEach(({ callback, key }) =>\r\n\t\t\t\tthis.addWsEventListener(callback, key),\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\topenSocket(deliveries: string[], onMessage: MessageHandler) {\r\n\t\tconst options = {\r\n\t\t\tbaseUrlWs: this.baseUrl,\r\n\t\t\tauthKeys: this.authKey,\r\n\t\t\tonOpen: (send: SendHandler) => {\r\n\t\t\t\tthis.reconnectCount = 0;\r\n\t\t\t\tif (this.timerId) {\r\n\t\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t\t}\r\n\t\t\t\tthis.onOpenSocket(send, deliveries);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Info,\r\n\t\t\t\t\tdata: { message: 'webSocket opened' },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonMessage: (message: Notification) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (message: Notification) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(message.data));\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonClose: (event: number | CloseEvent) => {\r\n\t\t\t\tconsole.log('webSocket close', event);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Error,\r\n\t\t\t\t\tdata: { error: 'webSocket close' },\r\n\t\t\t\t});\r\n\t\t\t\tif (event !== 3001) {\r\n\t\t\t\t\t!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\tthis.timerId = setTimeout(\r\n\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t!!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\t\t\tthis.reconnectTime *= 1.5;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.reconnectCount === 1\r\n\t\t\t\t\t\t\t? this.defaultReconnectTime\r\n\t\t\t\t\t\t\t: Math.round(this.reconnectTime),\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.unsubscribeStateUpdate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tthis.socket = new WebSocketService(options);\r\n\t}\r\n\r\n\tsubscribeStateUpdate(deliveries: string[], onMessage?: MessageHandler) {\r\n\t\tthis.messages = new Set([...this.messages, ...deliveries]);\r\n\t\tif (!this.socket) {\r\n\t\t\tonMessage && this.openSocket(deliveries, onMessage);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.socket.send(deliveries);\r\n\t}\r\n\r\n\tunsubscribeStateUpdate() {\r\n\t\tif (this.timerId) {\r\n\t\t\tclearTimeout(this.timerId);\r\n\t\t\tthis.timerId = null;\r\n\t\t}\r\n\t\tif (this.socket) {\r\n\t\t\tthis.socket.close();\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\tisSocketConnected(): boolean {\r\n\t\treturn !!this.socket;\r\n\t}\r\n\r\n\taddWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.addEventListener(callback);\r\n\t\t!this.callbacks.find(el => el.key === key) &&\r\n\t\t\tthis.callbacks.push({ key, callback });\r\n\t}\r\n\r\n\tremoveWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.removeEventListener(callback);\r\n\t\tthis.callbacks = this.callbacks.filter(data => data.key !== key);\r\n\t}\r\n}\r\n\r\nexport default BigStateWsDeliveryClient;\r\n"],"names":["customHandleError","handleError","error","normalized","Response","code","status","message","statusText","Error","normalizeError","isBinaryBody","body","Blob","File","ArrayBuffer","Uint8Array","toSearchParams","data","params","URLSearchParams","Object","entries","forEach","key","value","append","String","toString","fetchData","async","baseUrl","method","authKeys","headersCustom","headers","isJson","FormData","apiKey","token","isStream","fetchDataClient","res","fetch","JSON","stringify","cache","ok","get","includes","text","parse","blob","_apiUrl","Symbol","stateService","apiUrl","this","set","object","setValueRef","file","query","getValueRef","deleteValueRef","getVersionList","getRefList","authService","signUp","authInfo","signInPrincipal","principal","signOutPrincipal","creatKeyPrincipal","deleteKeyPrincipal","getListKeyPrincipal","deliveryService","create","delivery","getList","securityPolicyService","policy","securityPrincipalService","objectService","getSegmentList","apiKeyService","NotificationType","ActionsEnum","PrincipalType","DeliveryType","ObjectType","exports","WebSocketService","constructor","options","socket","isConnected","messageQueue","connect","serverSocket","Ws","require","auth","_a","encodeURIComponent","_b","_c","baseUrlWs","_d","addListener","onOpen","deliveries","send","console","log","length","_e","event","onClose","_f","newMessage","onMessage","type","Message","_g","onError","clientSocket","WebSocket","addEventListener","window","deliveryIds","deliveryId","push","close","readyState","OPEN","CONNECTING","callback","removeEventListener","removeListener","_apiKey","_token","errorHandler","handler","authKey","getAuthInfo","createApiKey","deleteApiKey","delete","getListApiKey","objectCreate","objectGet","objectDelete","objectGetList","objectGetSegmentList","stateSet","stateSetValueRef","stateGet","stateGetValueRef","stateDeleteValueRef","principalCreate","principalGet","principalGetList","principalDelete","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","objects","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","addWsEventListener","openSocket","Info","setTimeout","Math","round","clearTimeout","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/handleError.ts","../src/helpers/common.ts","../src/fetchService.ts","../src/constants/index.ts","../src/stateService/stateService.ts","../src/authService/authService.ts","../src/deliveryService/deliveryService.ts","../src/securityPolicyService/securityPolicyService.ts","../src/securityPrincipalService/securityPrincipalService.ts","../src/objectService/objectService.ts","../src/apiKeyService/apiKeyService.ts","../src/webSocketService/WebSocket.ts","../src/types/common.ts","../src/securityPrincipalService/Principal.ts","../src/deliveryService/Delivery.ts","../src/objectService/Object.ts","../src/webSocketService/webSocketService.ts","../src/bsClientHttpClient.ts","../src/bsWsDeliveryClient.ts"],"sourcesContent":["import { ErrorHandlerFn, ErrorResponse } from './types';\r\n\r\nlet customHandleError: ErrorHandlerFn | null = null;\r\n\r\nexport const setErrorHandler = (handler?: ErrorHandlerFn) => {\r\n\tcustomHandleError = handler ?? null;\r\n};\r\n\r\nconst normalizeError = (error: any): ErrorResponse => {\r\n\tif (error instanceof Response) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: error.status,\r\n\t\t\t\tmessage: error.statusText,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\tif (error instanceof Error) {\r\n\t\treturn {\r\n\t\t\terror: {\r\n\t\t\t\tcode: 500,\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\treturn {\r\n\t\terror: {\r\n\t\t\tcode: 500,\r\n\t\t\tmessage: 'Unknown error',\r\n\t\t},\r\n\t};\r\n};\r\n\r\nexport const handleError = (error: any): ErrorResponse => {\r\n\tconst normalized = normalizeError(error);\r\n\tif (customHandleError) {\r\n\t\treturn customHandleError(normalized);\r\n\t}\r\n\treturn normalized;\r\n};\r\n","export const isBinaryBody = (body: any): boolean =>\r\n\tbody instanceof Blob ||\r\n\tbody instanceof File ||\r\n\tbody instanceof ArrayBuffer ||\r\n\tbody instanceof Uint8Array;\r\n\r\nexport const toSearchParams = (data: Record<string, unknown>): string => {\r\n\tconst params = new URLSearchParams();\r\n\r\n\tObject.entries(data).forEach(([key, value]) => {\r\n\t\tif (value !== undefined && value !== null) {\r\n\t\t\tparams.append(key, String(value));\r\n\t\t}\r\n\t});\r\n\r\n\treturn params.toString();\r\n};\r\n","import { handleError } from './handleError';\r\nimport { AuthKeys, FetchDataResponse } from './types';\r\nimport { isBinaryBody } from './helpers/common';\r\n\r\ntype MethodType = 'GET' | 'POST' | 'DELETE';\r\ntype HeadersType = Record<string, string>;\r\n\r\nexport const fetchData = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tbody: any = null,\r\n\tauthKeys: AuthKeys = {},\r\n\theadersCustom: HeadersType = {},\r\n): Promise<FetchDataResponse> => {\r\n\tconst headers: HeadersType = {\r\n\t\t...headersCustom,\r\n\t};\r\n\r\n\tconst isJson =\r\n\t\tbody &&\r\n\t\ttypeof body === 'object' &&\r\n\t\t!isBinaryBody(body) &&\r\n\t\t!(body instanceof FormData);\r\n\r\n\tif (isJson) {\r\n\t\theaders['Content-Type'] = 'application/json';\r\n\t\theaders['Accept'] = 'application/json';\r\n\t}\r\n\r\n\tif (isBinaryBody(body)) {\r\n\t\theaders['Content-Type'] = 'application/octet-stream';\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-token'] = authKeys.token;\r\n\t}\r\n\r\n\tconst isStream = headers['x-bs-stream'] === '1';\r\n\r\n\treturn fetchDataClient(baseUrl, method, isJson, body, headers, isStream);\r\n};\r\n\r\nexport const fetchDataClient = async (\r\n\tbaseUrl: string,\r\n\tmethod: MethodType,\r\n\tisJson: boolean,\r\n\tbody: any = null,\r\n\theaders: HeadersType = {},\r\n\tisStream: boolean = false,\r\n): Promise<FetchDataResponse> => {\r\n\tconst res = await fetch(baseUrl, {\r\n\t\tmethod,\r\n\t\theaders,\r\n\t\tbody: body ? (isJson ? JSON.stringify(body) : body) : null,\r\n\t\tcache: 'no-store',\r\n\t});\r\n\r\n\tif (!res.ok) {\r\n\t\treturn handleError(res);\r\n\t}\r\n\r\n\tif (isStream) {\r\n\t\treturn { data: res.body as any };\r\n\t}\r\n\r\n\tconst contentType = res.headers.get('content-type') || '';\r\n\r\n\tif (contentType.includes('application/json')) {\r\n\t\tconst text = await res.text();\r\n\r\n\t\tif (!text) {\r\n\t\t\treturn { data: null };\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\treturn { data: JSON.parse(text) };\r\n\t\t} catch {\r\n\t\t\treturn { data: text };\r\n\t\t}\r\n\t}\r\n\r\n\tconst blob = await res.blob();\r\n\treturn { data: blob };\r\n};\r\n","export const _apiUrl = Symbol('apiUrl');\r\n","import {\r\n\tIState,\r\n\tSubjectStateResponse,\r\n\tAuthKeys,\r\n\tSetStateResponse,\r\n\tGetStateRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tVersionListResponse,\r\n\tResponseWitOutData,\r\n\tSetValueRefRequest,\r\n\tGetValueListRequest,\r\n\tFileType,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst stateService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync set<T>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync setValueRef(\r\n\t\tdata: SetValueRefRequest,\r\n\t\tfile: FileType,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value${query ? `?${query}` : ''}`,\r\n\t\t\t'POST',\r\n\t\t\tfile,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get<T>(\r\n\t\tdata: GetStateRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/state${query ? `?${query}` : ''}`,\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 getValueRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value${query ? `?${query}` : ''}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t\t{ 'x-bs-stream': '1' },\r\n\t\t);\r\n\t},\r\n\tasync deleteValueRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value${query ? `?${query}` : ''}`,\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 getVersionList(\r\n\t\tobject: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<VersionListResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/version?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getRefList(\r\n\t\tdata: GetValueListRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ValueListRefResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/value/match${query ? `?${query}` : ''}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default stateService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tPublicKey,\r\n\tAuthenticateResponse,\r\n\tCreateKeyPairResponse,\r\n\tRegisterResponse,\r\n\tListPublicKeysResponse,\r\n\tGetApiKeyInfoResponse,\r\n\tGetListByPrincipalRequest,\r\n\tSingOutRequest,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { toSearchParams } from '../helpers/common';\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(): Promise<RegisterResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/owner`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\t{},\r\n\t\t\t{\r\n\t\t\t\t'x-bs-edge-sign':\r\n\t\t\t\t\t'8BC0D2DE9A537CCA1598491DD82C9020F06BCDB1D7C0080B136344F4CBFA7F727FEC8351CE724E34ADD9CDB4D9F753DE58015E2C9FA02AB280CDAAEA4C57D60E',\r\n\t\t\t\t'x-bs-edge-sign-nonce': '1',\r\n\t\t\t\t'x-bs-edge-sign-timestamp': '1',\r\n\t\t\t},\r\n\t\t);\r\n\t},\r\n\tasync authInfo(authKeys?: AuthKeys): Promise<GetApiKeyInfoResponse> {\r\n\t\treturn await fetchData(`${this?.[_apiUrl]}/context`, 'GET', null, authKeys);\r\n\t},\r\n\tasync signInPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<AuthenticateResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync signOutPrincipal(\r\n\t\tdata: SingOutRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/token${query ? `?${query}` : ''}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync creatKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getListKeyPrincipal(\r\n\t\tdata: GetListByPrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/keypair/match${query ? `?${query}` : ''}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default authService;\r\n","import {\r\n\tAuthKeys,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tResponseWitOutData,\r\n\tCreateDeliveryRequest,\r\n\tGetListRequest,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\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 create(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetDeliveryResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tdelivery: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery?delivery=${delivery}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tdata?: GetListRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListDeliveriesResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/delivery/match${query ? `?${query}` : ''}`,\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 deliveryService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tDefinition,\r\n\tGetListRequest,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n} from '../types';\r\nimport { toSearchParams } from '../helpers/common';\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 create(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(policy: string, authKeys?: AuthKeys): Promise<GetPolicyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tpolicy: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy?policy=${policy}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tdata?: GetListRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPoliciesResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/policy/match${query ? `?${query}` : ''}`,\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 securityPolicyService;\r\n","import {\r\n\tAuthKeys,\r\n\tGetListRequest,\r\n\tResponseWitOutData,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tCreatePrincipalRequest,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\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 create(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<GetPrincipalResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tdata?: GetListRequest,\r\n\t\tauthKeys?: AuthKeys,\r\n\t): Promise<ListPrincipalsResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/principal/match${query ? `?${query}` : ''}`,\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\tAuthKeys,\r\n\tGetObjectResponse,\r\n\tCreateObjectRequest,\r\n\tListObjectsResponse,\r\n\tResponseAction,\r\n\tGetListRequest,\r\n\tGetListSegmentRequest,\r\n\tListSegmentsResponse,\r\n} from '../types';\r\nimport { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst objectService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tobject: string,\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseAction> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync get(object: string, authKeys: AuthKeys): Promise<GetObjectResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(object: string, authKeys: AuthKeys): Promise<ResponseAction> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object?object=${object}`,\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\tasync getList(\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: GetListRequest,\r\n\t): Promise<ListObjectsResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/match${query ? `?${query}` : ''}`,\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 getSegmentList(\r\n\t\tauthKeys: AuthKeys,\r\n\t\tdata?: GetListSegmentRequest,\r\n\t): Promise<ListSegmentsResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/object/segment${query ? `?${query}` : ''}`,\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 objectService;\r\n","import { fetchData } from '../fetchService';\r\nimport { _apiUrl } from '../constants';\r\nimport {\r\n\tAuthKeys,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tResponseWitOutData,\r\n\tGetListByPrincipalRequest,\r\n} from '../types';\r\nimport { toSearchParams } from '../helpers/common';\r\n\r\nconst apiKeyService = {\r\n\t[_apiUrl]: '',\r\n\tset apiUrl(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('API URL cannot be empty');\r\n\t\t}\r\n\t\tthis[_apiUrl] = value;\r\n\t},\r\n\tasync create(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'POST',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync getList(\r\n\t\tdata: GetListByPrincipalRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\tconst query = toSearchParams({ ...data });\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey/match${query ? `?${query}` : ''}`,\r\n\t\t\t'GET',\r\n\t\t\tnull,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n\tasync delete(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t\tauthKeys: AuthKeys,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await fetchData(\r\n\t\t\t`${this?.[_apiUrl]}/apikey?principal=${principal}`,\r\n\t\t\t'DELETE',\r\n\t\t\tdata,\r\n\t\t\tauthKeys,\r\n\t\t);\r\n\t},\r\n};\r\n\r\nexport default apiKeyService;\r\n","import { ActionsEnum, AuthKeys } from '../types';\r\n\r\nexport enum NotificationType {\r\n\tMessage = 'message',\r\n\tInfo = 'info',\r\n\tError = 'error',\r\n}\r\n\r\nexport interface MessageData {\r\n\taction: ActionsEnum;\r\n\towner: string;\r\n\tobject: string;\r\n\tttl?: number;\r\n\tvalidity?: number;\r\n\tstate: {\r\n\t\trec: string;\r\n\t\tat: string;\r\n\t\tversion: number;\r\n\t\tvalue?: any;\r\n\t\tvalueRef?: string;\r\n\t};\r\n}\r\n\r\nexport interface InfoData {\r\n\tmessage: string;\r\n}\r\n\r\nexport interface ErrorData {\r\n\terror: string;\r\n\tcode?: string | number;\r\n}\r\n\r\nexport type Notification =\r\n\t| {\r\n\t\t\ttype: NotificationType.Error;\r\n\t\t\tdata: ErrorData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Info;\r\n\t\t\tdata: InfoData;\r\n\t }\r\n\t| {\r\n\t\t\ttype: NotificationType.Message;\r\n\t\t\tdata: MessageData;\r\n\t };\r\n\r\nexport type SendHandler = (deliveries: string[]) => void;\r\nexport type MessageHandler = (message: Notification) => void;\r\nexport type ErrorHandler = (error: any) => void;\r\nexport type OpenHandler = (send: SendHandler) => void;\r\nexport type CloseHandler = (e: number | CloseEvent) => void;\r\n\r\nexport interface WebSocketOptions {\r\n\tbaseUrlWs: string;\r\n\tauthKeys: AuthKeys;\r\n\tonMessage: MessageHandler;\r\n\tonOpen?: OpenHandler;\r\n\tonClose?: CloseHandler;\r\n\tonError?: ErrorHandler;\r\n}\r\n","export enum ActionsEnum {\r\n\tCreate = 1,\r\n\tUpdate = 2,\r\n\tDelete = 3,\r\n}\r\n\r\nexport interface Action {\r\n\taction: ActionsEnum;\r\n}\r\n\r\nexport interface IError {\r\n\tcode: number;\r\n\tmessage: string;\r\n}\r\n\r\nexport type FetchDataResponse<T = any> = {\r\n\tdata?: T;\r\n\terror?: IError;\r\n};\r\n\r\nexport type ErrorResponse = {\r\n\terror: IError;\r\n};\r\n\r\nexport type ErrorHandlerFn = (error: ErrorResponse) => ErrorResponse;\r\n\r\nexport type ResponseWitOutData = FetchDataResponse<null>;\r\nexport type ResponseAction = FetchDataResponse<Action>;\r\n\r\nexport interface AuthKeys {\r\n\tapiKey?: string;\r\n\ttoken?: string;\r\n}\r\n\r\nexport interface BSHttpOptions extends AuthKeys {\r\n\tbaseUrl: string;\r\n\terrorHandler?: ErrorHandlerFn;\r\n}\r\n\r\nexport interface BSDeliveryWsOptions extends AuthKeys {\r\n\tbaseUrl: string;\r\n\tmaxReconnectCount?: number;\r\n\treconnectTime?: number;\r\n}\r\n\r\nexport interface GetListRequest {\r\n\tpattern?: string;\r\n\tnext?: number;\r\n}\r\n\r\nexport type NextType = {\r\n\tnext: number;\r\n};\r\n","import { FetchDataResponse, GetListRequest, NextType } from '../types';\r\n\r\nexport enum PrincipalType {\r\n\tApp = 1,\r\n\tUser = 2,\r\n}\r\n\r\nexport interface CreatePrincipalRequest {\r\n\ttype: PrincipalType;\r\n\tname: string;\r\n}\r\n\r\nexport interface Principal extends CreatePrincipalRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport interface GetListByPrincipalRequest extends GetListRequest {\r\n\tprincipal: string;\r\n}\r\n\r\nexport interface GetListPrincipalResponse extends NextType {\r\n\tprincipals: Principal[];\r\n}\r\n\r\nexport type ListPrincipalsResponse =\r\n\tFetchDataResponse<GetListPrincipalResponse>;\r\nexport type GetPrincipalResponse = FetchDataResponse<Principal>;\r\n","import { FetchDataResponse, NextType } from '../types';\r\n\r\nexport enum DeliveryType {\r\n\tWS = 1,\r\n\tHTTP = 2,\r\n\tFILE = 3,\r\n}\r\n\r\nexport interface CreateDeliveryRequest {\r\n\tname: string;\r\n\ttype: DeliveryType;\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface Delivery extends CreateDeliveryRequest {\r\n\tdelivery: string;\r\n}\r\n\r\nexport interface GetListDeliveriesResponse extends NextType {\r\n\tdeliveries: Delivery[];\r\n}\r\n\r\nexport type ListDeliveriesResponse =\r\n\tFetchDataResponse<GetListDeliveriesResponse>;\r\nexport type GetDeliveryResponse = FetchDataResponse<Delivery>;\r\n","import { FetchDataResponse, GetListRequest, NextType } from '../types';\r\n\r\nexport enum ObjectType {\r\n\tPrivate = 1,\r\n\tPublic = 2,\r\n}\r\n\r\nexport interface InfoObject {\r\n\tname: string;\r\n\tdesc: string;\r\n\texample: any;\r\n}\r\n\r\nexport interface CreateObjectRequest {\r\n\ttype: ObjectType;\r\n\tttl: number | null;\r\n\tvalidity: number | null;\r\n\tversionDeep: number | null;\r\n\tinfo: InfoObject;\r\n}\r\n\r\nexport interface ObjectResponse extends CreateObjectRequest {\r\n\tobject: string;\r\n}\r\n\r\nexport interface GetListSegmentRequest extends GetListRequest {\r\n\tpath?: number;\r\n}\r\n\r\nexport interface GetListObjectResponse extends NextType {\r\n\tobjects: string[];\r\n}\r\n\r\nexport interface GetListSegmentResponse extends NextType {\r\n\tsegments: string[];\r\n}\r\n\r\nexport type GetObjectResponse = FetchDataResponse<ObjectResponse>;\r\nexport type ListObjectsResponse = FetchDataResponse<GetListObjectResponse>;\r\nexport type ListSegmentsResponse = FetchDataResponse<GetListSegmentResponse>;\r\n","import { MessageHandler, WebSocketOptions } from '../types';\r\nimport { NotificationType } from './WebSocket';\r\n\r\n// Type for Node.js WebSocket (ws library)\r\ntype WebSocketWs = {\r\n\taddListener(event: string, listener: (...args: any[]) => void): void;\r\n\tremoveListener(event: string, listener: (...args: any[]) => void): void;\r\n\tsend(data: string): void;\r\n\tclose(code?: number): void;\r\n};\r\n\r\n// Declare require for TypeScript (only available in Node.js)\r\ndeclare const require: ((id: string) => any) | undefined;\r\n\r\nclass WebSocketService {\r\n\tprivate socket: WebSocketWs | WebSocket | null = null;\r\n\tprivate isConnected: boolean = false;\r\n\tprivate options: WebSocketOptions;\r\n\tmessageQueue: string[] = [];\r\n\r\n\tconstructor(options: WebSocketOptions) {\r\n\t\tthis.options = options;\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate serverSocket() {\r\n\t\t// Dynamic require to avoid bundling ws in browser builds\r\n\t\tconst Ws = typeof require !== 'undefined' ? require('ws') : null;\r\n\t\tif (!Ws) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t'ws module is required for Node.js environment. Please install it: npm install ws',\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\t\tthis.socket = new Ws(`${this.options.baseUrlWs}?${auth}`) as WebSocketWs;\r\n\r\n\t\tthis.socket?.addListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(deliveries => this.send(deliveries));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('message', event => {\r\n\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addListener('error', (event: any) => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate clientSocket() {\r\n\t\tconst auth = this.options.authKeys?.apiKey\r\n\t\t\t? `apiKey=${encodeURIComponent(this.options.authKeys?.apiKey)}`\r\n\t\t\t: this.options.authKeys?.token\r\n\t\t\t\t? `auth=${encodeURIComponent(this.options.authKeys.token)}`\r\n\t\t\t\t: '';\r\n\r\n\t\tthis.socket = new WebSocket(\r\n\t\t\t`${this.options.baseUrlWs}?${auth}`,\r\n\t\t) as WebSocket;\r\n\r\n\t\tthis.socket?.addEventListener('open', () => {\r\n\t\t\tthis.isConnected = true;\r\n\t\t\tif (this.options.onOpen) {\r\n\t\t\t\tthis.options.onOpen(deliveries => this.send(deliveries));\r\n\t\t\t}\r\n\t\t\tconsole.log('WebSocket connect');\r\n\t\t\tif (this.messageQueue.length) {\r\n\t\t\t\tthis.send(this.messageQueue);\r\n\t\t\t\tthis.messageQueue = [];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('close', event => {\r\n\t\t\tconsole.log('Close', JSON.stringify(event));\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tif (this.options.onClose) {\r\n\t\t\t\tthis.options.onClose(event as CloseEvent);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('message', event => {\r\n\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\tthis.options.onMessage({\r\n\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\tdata: newMessage,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.socket?.addEventListener('error', event => {\r\n\t\t\tif (this.options.onError) {\r\n\t\t\t\tthis.options.onError({ type: NotificationType.Error, data: event });\r\n\t\t\t}\r\n\t\t\tconsole.error('WebSocket error:', event);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate connect() {\r\n\t\ttypeof window === 'undefined' ? this.serverSocket() : this.clientSocket();\r\n\t}\r\n\r\n\tsend(deliveryIds: string[]) {\r\n\t\tif (this.isConnected && this.socket) {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\tthis.socket && this.socket.send(`delivery.listen=${deliveryId}`);\r\n\t\t\t\tconsole.log('Message sent, deliveryId:', deliveryId);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeliveryIds.forEach(deliveryId => {\r\n\t\t\t\t!this.messageQueue.includes(deliveryId) &&\r\n\t\t\t\t\tthis.messageQueue.push(deliveryId);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tclose() {\r\n\t\tif (this.socket) {\r\n\t\t\tthis.isConnected = false;\r\n\t\t\tconst readyState =\r\n\t\t\t\ttypeof window === 'undefined'\r\n\t\t\t\t\t? (this.socket as any).readyState\r\n\t\t\t\t\t: (this.socket as WebSocket).readyState;\r\n\r\n\t\t\tif (\r\n\t\t\t\treadyState === WebSocket.OPEN ||\r\n\t\t\t\treadyState === WebSocket.CONNECTING ||\r\n\t\t\t\treadyState === 0 ||\r\n\t\t\t\treadyState === 1\r\n\t\t\t) {\r\n\t\t\t\tthis.socket.close(3001);\r\n\t\t\t}\r\n\t\t\tthis.messageQueue = [];\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.addListener('message', event => {\r\n\t\t\t\tconst newMessage = event ? JSON.parse(event.toString()) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.addEventListener('message', event => {\r\n\t\t\t\tconst newMessage = event.data ? JSON.parse(event.data) : {};\r\n\t\t\t\tcallback({\r\n\t\t\t\t\ttype: NotificationType.Message,\r\n\t\t\t\t\tdata: newMessage,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(callback: MessageHandler) {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\t(this.socket as WebSocketWs)?.removeListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t(this.socket as WebSocket)?.removeEventListener(\r\n\t\t\t\t'message',\r\n\t\t\t\tevent => callback,\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default WebSocketService;\r\n","import {\r\n\tIState,\r\n\tGetPrincipalResponse,\r\n\tListPrincipalsResponse,\r\n\tGetPolicyResponse,\r\n\tListPoliciesResponse,\r\n\tResponseWitOutData,\r\n\tCreateObjectRequest,\r\n\tGetObjectResponse,\r\n\tListObjectsResponse,\r\n\tSubjectStateResponse,\r\n\tListDeliveriesResponse,\r\n\tGetDeliveryResponse,\r\n\tAuthenticateResponse,\r\n\tGetStateRequest,\r\n\tApiKeyRequest,\r\n\tCreateApiKeyResponse,\r\n\tListApiKeysResponse,\r\n\tSetStateResponse,\r\n\tBSHttpOptions,\r\n\tDefinition,\r\n\tCreatePrincipalRequest,\r\n\tSetValueRefResponse,\r\n\tGetStateRefRequest,\r\n\tGetValueRefResponse,\r\n\tValueListRefResponse,\r\n\tRegisterResponse,\r\n\tCreateKeyPairResponse,\r\n\tPublicKey,\r\n\tListPublicKeysResponse,\r\n\tCreateDeliveryRequest,\r\n\tGetApiKeyInfoResponse,\r\n\tVersionListResponse,\r\n\tResponseAction,\r\n\tGetListRequest,\r\n\tGetListSegmentRequest,\r\n\tListSegmentsResponse,\r\n\tGetListByPrincipalRequest,\r\n\tSingOutRequest,\r\n\tGetValueListRequest,\r\n\tSetValueRefRequest,\r\n\tFileType,\r\n} from './types';\r\nimport { setErrorHandler } from './handleError';\r\nimport stateService from './stateService/stateService';\r\nimport authService from './authService/authService';\r\nimport deliveryService from './deliveryService/deliveryService';\r\nimport securityPolicyService from './securityPolicyService/securityPolicyService';\r\nimport securityPrincipalService from './securityPrincipalService/securityPrincipalService';\r\nimport objectService from './objectService/objectService';\r\nimport apiKeyService from './apiKeyService/apiKeyService';\r\n\r\nclass BigStateHttpClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\r\n\tconstructor(data: BSHttpOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { token, apiKey, errorHandler } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tsetErrorHandler(errorHandler);\r\n\t\t}\r\n\t\tobjectService.apiUrl = this.baseUrl;\r\n\t\tstateService.apiUrl = this.baseUrl;\r\n\t\tsecurityPrincipalService.apiUrl = this.baseUrl;\r\n\t\tsecurityPolicyService.apiUrl = this.baseUrl;\r\n\t\tdeliveryService.apiUrl = this.baseUrl;\r\n\t\tauthService.apiUrl = this.baseUrl;\r\n\t\tapiKeyService.apiUrl = this.baseUrl;\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\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(): Promise<RegisterResponse> {\r\n\t\treturn await authService.signUp();\r\n\t}\r\n\r\n\tasync creatKeyPrincipal(principal: string): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.creatKeyPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync deleteKeyPrincipal(\r\n\t\tprincipal: string,\r\n\t\tdata: PublicKey,\r\n\t): Promise<CreateKeyPairResponse> {\r\n\t\treturn await authService.deleteKeyPrincipal(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListKeyPrincipal(\r\n\t\tdata: GetListByPrincipalRequest,\r\n\t): Promise<ListPublicKeysResponse> {\r\n\t\treturn await authService.getListKeyPrincipal(data, this.authKey);\r\n\t}\r\n\r\n\tasync signInPrincipal(principal: string): Promise<AuthenticateResponse> {\r\n\t\treturn await authService.signInPrincipal(principal, this.authKey);\r\n\t}\r\n\r\n\tasync signOutPrincipal(data: SingOutRequest): Promise<ResponseWitOutData> {\r\n\t\treturn await authService.signOutPrincipal(data, this.authKey);\r\n\t}\r\n\r\n\tasync getAuthInfo(): Promise<GetApiKeyInfoResponse> {\r\n\t\treturn await authService.authInfo(this.authKey);\r\n\t}\r\n\r\n\tasync createApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<CreateApiKeyResponse> {\r\n\t\treturn await apiKeyService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync deleteApiKey(\r\n\t\tprincipal: string,\r\n\t\tdata: ApiKeyRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await apiKeyService.delete(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync getListApiKey(\r\n\t\tdata: GetListByPrincipalRequest,\r\n\t): Promise<ListApiKeysResponse> {\r\n\t\treturn await apiKeyService.getList(data, this.authKey);\r\n\t}\r\n\r\n\tasync objectCreate(\r\n\t\tobject: string,\r\n\t\tdata?: CreateObjectRequest,\r\n\t): Promise<ResponseAction> {\r\n\t\treturn await objectService.create(object, this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGet(object: string): Promise<GetObjectResponse> {\r\n\t\treturn await objectService.get(object, this.authKey);\r\n\t}\r\n\r\n\tasync objectDelete(object: string): Promise<ResponseAction> {\r\n\t\treturn await objectService.delete(object, this.authKey);\r\n\t}\r\n\r\n\tasync objectGetList(data?: GetListRequest): Promise<ListObjectsResponse> {\r\n\t\treturn await objectService.getList(this.authKey, data);\r\n\t}\r\n\r\n\tasync objectGetSegmentList(\r\n\t\tdata?: GetListSegmentRequest,\r\n\t): Promise<ListSegmentsResponse> {\r\n\t\treturn await objectService.getSegmentList(this.authKey, data);\r\n\t}\r\n\r\n\tasync stateSet<T = any>(\r\n\t\tobject: string,\r\n\t\tdata: IState<T>,\r\n\t): Promise<SetStateResponse> {\r\n\t\treturn await stateService.set<T>(object, data, this.authKey);\r\n\t}\r\n\r\n\tasync stateSetValueRef(\r\n\t\tdata: SetValueRefRequest,\r\n\t\tfile: FileType,\r\n\t): Promise<SetValueRefResponse> {\r\n\t\treturn await stateService.setValueRef(data, file, this.authKey);\r\n\t}\r\n\r\n\tasync stateGet<T = any>(\r\n\t\tdata: GetStateRequest,\r\n\t): Promise<SubjectStateResponse<T>> {\r\n\t\treturn await stateService.get<T>(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateGetValueRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t): Promise<GetValueRefResponse> {\r\n\t\treturn await stateService.getValueRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync stateDeleteValueRef(\r\n\t\tdata: GetStateRefRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await stateService.deleteValueRef(data, this.authKey);\r\n\t}\r\n\r\n\tasync getVersionList(object: string): Promise<VersionListResponse> {\r\n\t\treturn await stateService.getVersionList(object, this.authKey);\r\n\t}\r\n\r\n\tasync getRefList(data: GetValueListRequest): Promise<ValueListRefResponse> {\r\n\t\treturn await stateService.getRefList(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalCreate(\r\n\t\tprincipal: string,\r\n\t\tdata: CreatePrincipalRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.create(principal, data, this.authKey);\r\n\t}\r\n\r\n\tasync principalGet(principal: string): Promise<GetPrincipalResponse> {\r\n\t\treturn await securityPrincipalService.get(principal, this.authKey);\r\n\t}\r\n\r\n\tasync principalGetList(\r\n\t\tdata?: GetListRequest,\r\n\t): Promise<ListPrincipalsResponse> {\r\n\t\treturn await securityPrincipalService.getList(data, this.authKey);\r\n\t}\r\n\r\n\tasync principalDelete(principal: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPrincipalService.delete(principal, this.authKey);\r\n\t}\r\n\r\n\tasync policyCreate(\r\n\t\tpolicy: string,\r\n\t\tdata: Definition,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.create(policy, data, this.authKey);\r\n\t}\r\n\r\n\tasync policyDelete(policy: string): Promise<ResponseWitOutData> {\r\n\t\treturn await securityPolicyService.delete(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGet(policy: string): Promise<GetPolicyResponse> {\r\n\t\treturn await securityPolicyService.get(policy, this.authKey);\r\n\t}\r\n\r\n\tasync policyGetList(data?: GetListRequest): Promise<ListPoliciesResponse> {\r\n\t\treturn await securityPolicyService.getList(data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryCreate(\r\n\t\tdelivery: string,\r\n\t\tdata: CreateDeliveryRequest,\r\n\t): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.create(delivery, data, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryDelete(delivery: string): Promise<ResponseWitOutData> {\r\n\t\treturn await deliveryService.delete(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGet(delivery: string): Promise<GetDeliveryResponse> {\r\n\t\treturn await deliveryService.get(delivery, this.authKey);\r\n\t}\r\n\r\n\tasync deliveryGetList(\r\n\t\tdata?: GetListRequest,\r\n\t): Promise<ListDeliveriesResponse> {\r\n\t\treturn await deliveryService.getList(data, this.authKey);\r\n\t}\r\n}\r\n\r\nexport default BigStateHttpClient;\r\n","import { BSDeliveryWsOptions, MessageHandler, SendHandler } from './types';\r\nimport WebSocketService from './webSocketService/webSocketService';\r\nimport { Notification, NotificationType } from './webSocketService/WebSocket';\r\n\r\nclass BigStateWsDeliveryClient {\r\n\tprivate baseUrl: string = '';\r\n\tprivate _apiKey: string = '';\r\n\tprivate _token: string = '';\r\n\tprivate socket: WebSocketService | null = null;\r\n\tprivate reconnectCount = 0;\r\n\tprivate reconnectTime = 5000;\r\n\tprivate defaultReconnectTime = 5000;\r\n\tprivate maxReconnectCount = 11;\r\n\tprivate messages: Set<string> = new Set<string>([]);\r\n\tprivate callbacks: { key: string; callback: MessageHandler }[] = [];\r\n\tprivate timerId: ReturnType<typeof setTimeout> | null = null;\r\n\r\n\tconstructor(data: BSDeliveryWsOptions) {\r\n\t\tthis.baseUrl = `${data.baseUrl}/v1`;\r\n\t\tif (data) {\r\n\t\t\tconst { maxReconnectCount, reconnectTime, token, apiKey } = data;\r\n\t\t\ttoken && (this._token = token);\r\n\t\t\tapiKey && (this._apiKey = apiKey);\r\n\t\t\tmaxReconnectCount && (this.maxReconnectCount = maxReconnectCount);\r\n\t\t\treconnectTime && (this.reconnectTime = reconnectTime);\r\n\t\t\treconnectTime && (this.defaultReconnectTime = reconnectTime);\r\n\t\t}\r\n\t}\r\n\r\n\tset apiKey(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('ApiKey cannot be empty');\r\n\t\t}\r\n\t\tthis._apiKey = value;\r\n\t}\r\n\r\n\tset token(value: string) {\r\n\t\tif (!value) {\r\n\t\t\tthrow new Error('Token cannot be empty');\r\n\t\t}\r\n\t\tthis._token = value;\r\n\t}\r\n\r\n\tprivate get authKey() {\r\n\t\treturn { apiKey: this._apiKey, token: this._token };\r\n\t}\r\n\r\n\tonOpenSocket(send: SendHandler, objects: string[]) {\r\n\t\tsend(objects);\r\n\t}\r\n\r\n\tretry(error: any, onMessage: MessageHandler) {\r\n\t\tthis.reconnectCount += 1;\r\n\t\tif (this.reconnectCount > this.maxReconnectCount) {\r\n\t\t\tonMessage && onMessage({ type: NotificationType.Error, data: { error } });\r\n\t\t\tconsole.log('reconnect ' + this.reconnectCount);\r\n\t\t\tif (this.timerId) {\r\n\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\tthis.callbacks = [];\r\n\t\t\t\tthis.messages = new Set<string>();\r\n\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t}\r\n\t\t\tthis.reconnectCount = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.unsubscribeStateUpdate();\r\n\t\tif (!(this.reconnectCount > this.maxReconnectCount)) {\r\n\t\t\tthis.subscribeStateUpdate(Array.from(this.messages), onMessage);\r\n\t\t\tthis.callbacks.forEach(({ callback, key }) =>\r\n\t\t\t\tthis.addWsEventListener(callback, key),\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\topenSocket(deliveries: string[], onMessage: MessageHandler) {\r\n\t\tconst options = {\r\n\t\t\tbaseUrlWs: this.baseUrl,\r\n\t\t\tauthKeys: this.authKey,\r\n\t\t\tonOpen: (send: SendHandler) => {\r\n\t\t\t\tthis.reconnectCount = 0;\r\n\t\t\t\tif (this.timerId) {\r\n\t\t\t\t\tclearInterval(this.timerId);\r\n\t\t\t\t\tthis.reconnectTime = this.defaultReconnectTime;\r\n\t\t\t\t}\r\n\t\t\t\tthis.onOpenSocket(send, deliveries);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Info,\r\n\t\t\t\t\tdata: { message: 'webSocket opened' },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonMessage: (message: Notification) => {\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonError: (message: Notification) => {\r\n\t\t\t\tconsole.error('Error ' + JSON.stringify(message.data));\r\n\t\t\t\tonMessage(message);\r\n\t\t\t},\r\n\t\t\tonClose: (event: number | CloseEvent) => {\r\n\t\t\t\tconsole.log('webSocket close', event);\r\n\t\t\t\tonMessage({\r\n\t\t\t\t\ttype: NotificationType.Error,\r\n\t\t\t\t\tdata: { error: 'webSocket close' },\r\n\t\t\t\t});\r\n\t\t\t\tif (event !== 3001) {\r\n\t\t\t\t\t!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\tthis.timerId = setTimeout(\r\n\t\t\t\t\t\t() => {\r\n\t\t\t\t\t\t\t!!this.reconnectCount && this.retry('webSocket close', onMessage);\r\n\t\t\t\t\t\t\tthis.reconnectTime *= 1.5;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.reconnectCount === 1\r\n\t\t\t\t\t\t\t? this.defaultReconnectTime\r\n\t\t\t\t\t\t\t: Math.round(this.reconnectTime),\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.unsubscribeStateUpdate();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tthis.socket = new WebSocketService(options);\r\n\t}\r\n\r\n\tsubscribeStateUpdate(deliveries: string[], onMessage?: MessageHandler) {\r\n\t\tthis.messages = new Set([...this.messages, ...deliveries]);\r\n\t\tif (!this.socket) {\r\n\t\t\tonMessage && this.openSocket(deliveries, onMessage);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.socket.send(deliveries);\r\n\t}\r\n\r\n\tunsubscribeStateUpdate() {\r\n\t\tif (this.timerId) {\r\n\t\t\tclearTimeout(this.timerId);\r\n\t\t\tthis.timerId = null;\r\n\t\t}\r\n\t\tif (this.socket) {\r\n\t\t\tthis.socket.close();\r\n\t\t\tthis.socket = null;\r\n\t\t}\r\n\t}\r\n\r\n\tisSocketConnected(): boolean {\r\n\t\treturn !!this.socket;\r\n\t}\r\n\r\n\taddWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.addEventListener(callback);\r\n\t\t!this.callbacks.find(el => el.key === key) &&\r\n\t\t\tthis.callbacks.push({ key, callback });\r\n\t}\r\n\r\n\tremoveWsEventListener(callback: MessageHandler, key: string) {\r\n\t\tthis.socket?.removeEventListener(callback);\r\n\t\tthis.callbacks = this.callbacks.filter(data => data.key !== key);\r\n\t}\r\n}\r\n\r\nexport default BigStateWsDeliveryClient;\r\n"],"names":["customHandleError","handleError","error","normalized","Response","code","status","message","statusText","Error","normalizeError","isBinaryBody","body","Blob","File","ArrayBuffer","Uint8Array","toSearchParams","data","params","URLSearchParams","Object","entries","forEach","key","value","append","String","toString","fetchData","async","baseUrl","method","authKeys","headersCustom","headers","isJson","FormData","apiKey","token","isStream","fetchDataClient","res","fetch","JSON","stringify","cache","ok","get","includes","text","parse","blob","_apiUrl","Symbol","stateService","apiUrl","this","set","object","setValueRef","file","query","getValueRef","deleteValueRef","getVersionList","getRefList","authService","signUp","authInfo","signInPrincipal","principal","signOutPrincipal","creatKeyPrincipal","deleteKeyPrincipal","getListKeyPrincipal","deliveryService","create","delivery","getList","securityPolicyService","policy","securityPrincipalService","objectService","getSegmentList","apiKeyService","NotificationType","ActionsEnum","PrincipalType","DeliveryType","ObjectType","exports","WebSocketService","constructor","options","socket","isConnected","messageQueue","connect","serverSocket","Ws","require","auth","_a","encodeURIComponent","_b","_c","baseUrlWs","_d","addListener","onOpen","deliveries","send","console","log","length","_e","event","onClose","_f","newMessage","onMessage","type","Message","_g","onError","clientSocket","WebSocket","addEventListener","window","deliveryIds","deliveryId","push","close","readyState","OPEN","CONNECTING","callback","removeEventListener","removeListener","_apiKey","_token","errorHandler","handler","authKey","getAuthInfo","createApiKey","deleteApiKey","delete","getListApiKey","objectCreate","objectGet","objectDelete","objectGetList","objectGetSegmentList","stateSet","stateSetValueRef","stateGet","stateGetValueRef","stateDeleteValueRef","principalCreate","principalGet","principalGetList","principalDelete","policyCreate","policyDelete","policyGet","policyGetList","deliveryCreate","deliveryDelete","deliveryGet","deliveryGetList","reconnectCount","reconnectTime","defaultReconnectTime","maxReconnectCount","messages","Set","callbacks","timerId","onOpenSocket","objects","retry","clearInterval","unsubscribeStateUpdate","subscribeStateUpdate","Array","from","addWsEventListener","openSocket","Info","setTimeout","Math","round","clearTimeout","isSocketConnected","find","el","removeWsEventListener","filter"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigstate.client.javascript",
3
- "version": "0.0.5-alpha.37",
3
+ "version": "0.0.5-alpha.38",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",