akeyless-client-commons 1.1.21 → 1.1.23

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.
@@ -968,6 +968,315 @@ var biDomain = isLocal ? "http://localhost:9002/api/bi" : baseDomain + "/bi";
968
968
  var notificationsDomain = isLocal ? "http://localhost:9006/api/notifications" : baseDomain + "/notifications";
969
969
  var callCenterGeoDomain = isLocal ? "http://localhost:9007/api/call-center/geo" : baseDomain + "/call-center/geo";
970
970
  var callCenterEventsDomain = isLocal ? "http://localhost:9008/api/call-center/events" : baseDomain + "/call-center/events";
971
+ var dataSocketDomain = isLocal ? "http://localhost:9009/api/data-socket" : baseDomain + "/data-socket";
972
+ var dataSyncDomain = isLocal ? "http://localhost:9010/api/data-sync" : baseDomain + "/data-sync";
973
+ // src/helpers/emails.ts
974
+ import axios3 from "axios";
975
+ // src/helpers/socket.ts
976
+ import { io } from "socket.io-client";
977
+ var SESSION_STORAGE_KEY = "sessionId";
978
+ var SocketService = /*#__PURE__*/ function() {
979
+ "use strict";
980
+ function _SocketService() {
981
+ _class_call_check(this, _SocketService);
982
+ this.socket = null;
983
+ this.connectCallbacks = [];
984
+ this.disconnectCallbacks = [];
985
+ this.authToken = null;
986
+ }
987
+ _create_class(_SocketService, [
988
+ {
989
+ /// Initialize the socket connection
990
+ key: "initSocket",
991
+ value: function initSocket() {
992
+ var _this = this;
993
+ if (!this.socket) {
994
+ var socketUrl = isLocal ? "http://localhost:9009" : mode === "qa" ? "https://nx-api.xyz" : "https://nx-api.info";
995
+ this.socket = io(socketUrl, {
996
+ path: "/api/data-socket/connect",
997
+ auth: function(cb) {
998
+ var sessionId = localStorage.getItem(SESSION_STORAGE_KEY) || void 0;
999
+ var token = _this.authToken;
1000
+ var authPayload = {};
1001
+ if (token) authPayload.token = token;
1002
+ if (sessionId) authPayload.sessionId = sessionId;
1003
+ cb(authPayload);
1004
+ },
1005
+ transports: [
1006
+ "websocket"
1007
+ ],
1008
+ reconnection: true,
1009
+ reconnectionAttempts: 30,
1010
+ reconnectionDelay: 2 * 1e3
1011
+ });
1012
+ this.socket.on("connect", function() {
1013
+ var _this_socket, _this_socket1;
1014
+ console.log("\uD83D\uDFE2 Socket connected: ".concat((_this_socket = _this.socket) === null || _this_socket === void 0 ? void 0 : _this_socket.id, " (recovered - ").concat((_this_socket1 = _this.socket) === null || _this_socket1 === void 0 ? void 0 : _this_socket1.recovered, ")"));
1015
+ _this.connectCallbacks.forEach(function(cb) {
1016
+ return cb();
1017
+ });
1018
+ });
1019
+ this.socket.on("disconnect", function(reason) {
1020
+ console.log("Socket disconnected:", reason);
1021
+ _this.disconnectCallbacks.forEach(function(cb) {
1022
+ return cb();
1023
+ });
1024
+ });
1025
+ this.socket.on("session", function(param) {
1026
+ var session_id = param.session_id;
1027
+ if (session_id) {
1028
+ localStorage.setItem(SESSION_STORAGE_KEY, session_id);
1029
+ }
1030
+ });
1031
+ this.socket.on("connect_error", function(error) {
1032
+ console.error("Socket connection error:", error);
1033
+ });
1034
+ }
1035
+ }
1036
+ },
1037
+ {
1038
+ /// get socket instance
1039
+ key: "getSocketInstance",
1040
+ value: function getSocketInstance() {
1041
+ if (!this.socket) {
1042
+ this.initSocket();
1043
+ }
1044
+ if (!this.socket) {
1045
+ throw new Error("Socket not initialized");
1046
+ }
1047
+ if (!this.socket.connected) {
1048
+ this.socket.connect();
1049
+ }
1050
+ return this.socket;
1051
+ }
1052
+ },
1053
+ {
1054
+ /// connection management methods
1055
+ key: "startSession",
1056
+ value: function startSession(token) {
1057
+ this.setAuthToken(token);
1058
+ this.initSocket();
1059
+ }
1060
+ },
1061
+ {
1062
+ key: "onConnect",
1063
+ value: function onConnect(callback) {
1064
+ var _this = this;
1065
+ var _this_socket;
1066
+ if (!this.connectCallbacks.includes(callback)) {
1067
+ this.connectCallbacks.push(callback);
1068
+ }
1069
+ if ((_this_socket = this.socket) === null || _this_socket === void 0 ? void 0 : _this_socket.connected) {
1070
+ callback();
1071
+ }
1072
+ return function() {
1073
+ return _this.offConnect(callback);
1074
+ };
1075
+ }
1076
+ },
1077
+ {
1078
+ key: "offConnect",
1079
+ value: function offConnect(callback) {
1080
+ this.connectCallbacks = this.connectCallbacks.filter(function(cb) {
1081
+ return cb !== callback;
1082
+ });
1083
+ }
1084
+ },
1085
+ {
1086
+ key: "onDisconnect",
1087
+ value: function onDisconnect(callback) {
1088
+ var _this = this;
1089
+ if (!this.disconnectCallbacks.includes(callback)) {
1090
+ this.disconnectCallbacks.push(callback);
1091
+ }
1092
+ if (this.socket && !this.socket.connected) {
1093
+ callback();
1094
+ }
1095
+ return function() {
1096
+ return _this.offDisconnect(callback);
1097
+ };
1098
+ }
1099
+ },
1100
+ {
1101
+ key: "offDisconnect",
1102
+ value: function offDisconnect(callback) {
1103
+ this.disconnectCallbacks = this.disconnectCallbacks.filter(function(cb) {
1104
+ return cb !== callback;
1105
+ });
1106
+ }
1107
+ },
1108
+ {
1109
+ key: "isConnected",
1110
+ value: function isConnected() {
1111
+ var _this_socket;
1112
+ return ((_this_socket = this.socket) === null || _this_socket === void 0 ? void 0 : _this_socket.connected) || false;
1113
+ }
1114
+ },
1115
+ {
1116
+ key: "setAuthToken",
1117
+ value: function setAuthToken(token) {
1118
+ this.authToken = token;
1119
+ if (this.socket) {
1120
+ this.socket.connect();
1121
+ }
1122
+ }
1123
+ },
1124
+ {
1125
+ key: "disconnectSocket",
1126
+ value: function disconnectSocket() {
1127
+ if (this.socket) {
1128
+ this.socket.io.engine.close();
1129
+ }
1130
+ }
1131
+ },
1132
+ {
1133
+ /// subscribe to collections
1134
+ key: "subscribeToCollections",
1135
+ value: function subscribeToCollections(config) {
1136
+ var _this = this;
1137
+ if (config.length === 0) {
1138
+ return function() {};
1139
+ }
1140
+ var s = this.getSocketInstance();
1141
+ var collectionsNames = config.map(function(c) {
1142
+ return c.collectionName;
1143
+ });
1144
+ var eventHandlers = [];
1145
+ config.forEach(function(configuration) {
1146
+ var collectionName = configuration.collectionName, onAdd = configuration.onAdd, onFirstTime = configuration.onFirstTime, onModify = configuration.onModify, onRemove = configuration.onRemove, extraParsers = configuration.extraParsers, conditions = configuration.conditions, orderBy2 = configuration.orderBy;
1147
+ var attach = function(eventName, handler) {
1148
+ _this.socket.off(eventName, handler);
1149
+ _this.socket.on(eventName, handler);
1150
+ eventHandlers.push({
1151
+ eventName: eventName,
1152
+ handler: handler
1153
+ });
1154
+ };
1155
+ attach("initial:".concat(collectionName), onFirstTime);
1156
+ attach("add:".concat(collectionName), onAdd);
1157
+ attach("update:".concat(collectionName), onModify);
1158
+ attach("delete:".concat(collectionName), onRemove);
1159
+ extraParsers === null || extraParsers === void 0 ? void 0 : extraParsers.forEach(function(parsers) {
1160
+ var extraOnAdd = parsers.onAdd, extraOnFirstTime = parsers.onFirstTime, extraOnModify = parsers.onModify, extraOnRemove = parsers.onRemove;
1161
+ attach("initial:".concat(collectionName), extraOnFirstTime);
1162
+ attach("add:".concat(collectionName), extraOnAdd);
1163
+ attach("update:".concat(collectionName), extraOnModify);
1164
+ attach("delete:".concat(collectionName), extraOnRemove);
1165
+ });
1166
+ });
1167
+ s.emit("subscribe_collections", collectionsNames, function(callback) {
1168
+ if (callback.success) {
1169
+ console.log("Successfully subscribed to: ".concat(collectionsNames.join(", ")));
1170
+ } else {
1171
+ console.error("Failed to subscribe to ".concat(config.join(", "), ": ").concat(callback.message));
1172
+ }
1173
+ });
1174
+ return function() {
1175
+ console.log("Cleaning up subscriptions for: ".concat(collectionsNames.join(", ")));
1176
+ s.emit("unsubscribe_collections", collectionsNames);
1177
+ eventHandlers.forEach(function(eh) {
1178
+ s.off(eh.eventName, eh.handler);
1179
+ });
1180
+ };
1181
+ }
1182
+ },
1183
+ {
1184
+ /// set data
1185
+ key: "setData",
1186
+ value: function setData(payload) {
1187
+ var s = this.getSocketInstance();
1188
+ return new Promise(function(resolve, reject) {
1189
+ s.emit("set_data", payload, function(callback) {
1190
+ if (callback.success) {
1191
+ console.log("Data saved successfully:", payload);
1192
+ console.log("ack", callback);
1193
+ resolve(callback);
1194
+ } else {
1195
+ reject(new Error(callback.message || "Save operation failed"));
1196
+ }
1197
+ });
1198
+ });
1199
+ }
1200
+ },
1201
+ {
1202
+ /// get data
1203
+ key: "getCollectionData",
1204
+ value: function getCollectionData(payload) {
1205
+ var s = this.getSocketInstance();
1206
+ s.emit("get_data", {
1207
+ collection_name: payload.collection_name
1208
+ }, function(socketCallback) {
1209
+ if (socketCallback.success && socketCallback.data) {
1210
+ payload.callback(socketCallback.data);
1211
+ } else {
1212
+ payload.callback(payload.defaultValue);
1213
+ }
1214
+ });
1215
+ }
1216
+ },
1217
+ {
1218
+ key: "getDocumentData",
1219
+ value: function getDocumentData(payload) {
1220
+ var s = this.getSocketInstance();
1221
+ s.emit("get_data", {
1222
+ collection_name: payload.collection_name,
1223
+ key: payload.key
1224
+ }, function(socketCallback) {
1225
+ if (socketCallback.success && socketCallback.data) {
1226
+ payload.callback(socketCallback.data);
1227
+ } else {
1228
+ payload.callback(payload.defaultValue);
1229
+ }
1230
+ });
1231
+ }
1232
+ },
1233
+ {
1234
+ /// delete data
1235
+ key: "deleteData",
1236
+ value: function deleteData(payload) {
1237
+ var s = this.getSocketInstance();
1238
+ return new Promise(function(resolve, reject) {
1239
+ s.emit("delete_data", payload, function(callback) {
1240
+ if (callback.success) {
1241
+ console.log("Data deleted successfully:", payload);
1242
+ console.log("delete ack", callback);
1243
+ resolve(callback);
1244
+ } else {
1245
+ reject(new Error(callback.message || "Delete operation failed"));
1246
+ }
1247
+ });
1248
+ });
1249
+ }
1250
+ },
1251
+ {
1252
+ key: "clearAllRedisData",
1253
+ value: function clearAllRedisData() {
1254
+ var s = this.getSocketInstance();
1255
+ return new Promise(function(resolve, reject) {
1256
+ s.emit("clear_all_redis_data", function(ack) {
1257
+ if (ack.success) {
1258
+ resolve(ack);
1259
+ } else {
1260
+ reject(new Error(ack.message || "Clear all Redis data operation failed"));
1261
+ }
1262
+ });
1263
+ });
1264
+ }
1265
+ }
1266
+ ], [
1267
+ {
1268
+ key: "getInstance",
1269
+ value: function getInstance() {
1270
+ if (!_SocketService.instance) {
1271
+ _SocketService.instance = new _SocketService();
1272
+ }
1273
+ return _SocketService.instance;
1274
+ }
1275
+ }
1276
+ ]);
1277
+ return _SocketService;
1278
+ }();
1279
+ var socketServiceInstance = SocketService.getInstance();
971
1280
  // src/components/utils/Checkboxes.tsx
972
1281
  import { useEffect, useState } from "react";
973
1282
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -3520,14 +3829,14 @@ function rectsAreEqual(a, b) {
3520
3829
  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
3521
3830
  }
3522
3831
  function observeMove(element, onMove) {
3523
- var io = null;
3832
+ var io2 = null;
3524
3833
  var timeoutId;
3525
3834
  var root = getDocumentElement(element);
3526
3835
  function cleanup() {
3527
3836
  var _io;
3528
3837
  clearTimeout(timeoutId);
3529
- (_io = io) == null || _io.disconnect();
3530
- io = null;
3838
+ (_io = io2) == null || _io.disconnect();
3839
+ io2 = null;
3531
3840
  }
3532
3841
  function refresh(skip, threshold) {
3533
3842
  if (skip === void 0) {
@@ -3575,14 +3884,14 @@ function observeMove(element, onMove) {
3575
3884
  isFirstUpdate = false;
3576
3885
  }
3577
3886
  try {
3578
- io = new IntersectionObserver(handleObserve, _object_spread_props(_object_spread({}, options), {
3887
+ io2 = new IntersectionObserver(handleObserve, _object_spread_props(_object_spread({}, options), {
3579
3888
  // Handle <iframe>s
3580
3889
  root: root.ownerDocument
3581
3890
  }));
3582
3891
  } catch (e) {
3583
- io = new IntersectionObserver(handleObserve, options);
3892
+ io2 = new IntersectionObserver(handleObserve, options);
3584
3893
  }
3585
- io.observe(element);
3894
+ io2.observe(element);
3586
3895
  }
3587
3896
  refresh(true);
3588
3897
  return cleanup;
@@ -3,7 +3,7 @@ import { FirebaseStorage } from 'firebase/storage';
3
3
  import { Auth, GoogleAuthProvider, User } from 'firebase/auth';
4
4
  import { AppCheck } from 'firebase/app-check';
5
5
  import { WhereFilterOp, Unsubscribe, Firestore, CollectionReference, DocumentData, Timestamp, DocumentSnapshot } from 'firebase/firestore';
6
- import { TObject, NxUser, CountryOptions, LanguageOptions, UserPermissionsObject, userPermissionsObjectValue, Client } from 'akeyless-types-commons';
6
+ import { TObject, NxUser, CountryOptions, LanguageOptions, UserPermissionsObject, userPermissionsObjectValue, Client, RedisUpdateType, RedisUpdatePayload, SocketCallbackResponse } from 'akeyless-types-commons';
7
7
  import React, { Dispatch, SetStateAction } from 'react';
8
8
  import { ClassValue } from 'clsx';
9
9
 
@@ -31,6 +31,8 @@ interface OnSnapshotConfig extends OnSnapshotParsers {
31
31
  fieldName: string;
32
32
  direction: "asc" | "desc";
33
33
  }[];
34
+ parseAs?: "object" | "array";
35
+ subscribeTo?: "cache" | "db";
34
36
  }
35
37
  interface OnSnapshotConfigDocument extends Omit<OnSnapshotParsers, "onAdd"> {
36
38
  collectionName: string;
@@ -159,7 +161,7 @@ declare const addAuditRecord: (action: string, entity: string, details: TObject<
159
161
  };
160
162
  }>;
161
163
  declare const validateUserStatusAndPermissions: (user: NxUser, app: AppName) => TObject<TObject<boolean>>;
162
- declare const getFileFromStorage: (filePath: string) => Promise<string>;
164
+ declare const getFileUrlFromStorage: (filePath: string) => Promise<string>;
163
165
  declare const uploadFileToStorage: (file: File, filePath: string) => Promise<string>;
164
166
 
165
167
  declare const calculateBearing: (startLat: any, startLng: any, endLat: any, endLng: any) => number;
@@ -242,9 +244,11 @@ declare const biDomain: string;
242
244
  declare const notificationsDomain: string;
243
245
  declare const callCenterGeoDomain: string;
244
246
  declare const callCenterEventsDomain: string;
247
+ declare const dataSocketDomain: string;
248
+ declare const dataSyncDomain: string;
245
249
  declare const akeylessOnlineDomain: string;
246
250
  type Method = "GET" | "POST" | "PUT" | "DELETE";
247
- type ServerName = "devices" | "bi" | "call-center-geo" | "call-center-events" | "notifications";
251
+ type ServerName = "devices" | "bi" | "call-center-geo" | "call-center-events" | "notifications" | "data-socket" | "data-sync";
248
252
  declare const nxApiCall: (serverName: ServerName, method: Method, url: string, data?: TObject<any>) => Promise<any>;
249
253
 
250
254
  declare const checkUserPermissions: <T extends keyof UserPermissionsObject>(userPermissions: UserPermissionsObject, entity: T, permissions?: userPermissionsObjectValue<T>[], mode?: "some" | "every") => boolean;
@@ -260,4 +264,49 @@ declare const initializeUserPermissions: ({ phoneNumber, email, firstTimeArray,
260
264
  permissions: TObject<TObject<boolean>>;
261
265
  }>;
262
266
 
263
- export { type ValidationType, addAuditRecord, addLoginAudit, add_document, addressRegex, akeylessOnlineDomain, app, appCheck, auth, baseDomain, biDomain, calculateBearing, callCenterEventsDomain, callCenterGeoDomain, carsRegex, chartsRegex, checkUserPermissions, cleanNxSites, cn, collections, colorRegex, createSelectors, db, delete_document, devicesDomain, displayFormatPhoneNumber, durationToSeconds, emailRegex, extractAlertsData, extractBoardsData, extractCanbusData, extractCarsData, extractClientData, extractLocationData, extractSiteData, fire_base_TIME_TEMP, formatCarNumber, getAddressByGeo, getFileFromStorage, getFixedNumber, getFormCheckboxValue, getFormElementValue, getLocationUrl, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, get_international_phone_number, googleLoginProvider, handleChange, handleInvalid, handlePaste, initializeUserPermissions, international_israel_phone_format, isInternational, isInternationalIsraelPhone, isLocal, isNodeEnv, is_iccid, local_israel_phone_format, mode, multiStringFormat, notificationsDomain, numbersOnlyRegex, numbersRegex, nxApiCall, parseMultiSelectInput, parsePermissions, parseSnapshotAsArray, priceRegex, propsAreEqual, query_document, query_document_by_conditions, query_documents, query_documents_by_conditions, renderOnce, secondsToDuration, setFormElementValue, setState, set_document, simpleExtractData, snapshot, snapshotDocument, sort_by_timestamp, storage, textNumbersRegex, textRegex, timestamp_to_millis, timestamp_to_string, uploadFileToStorage, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat, validateAndCast, validateUserStatusAndPermissions };
267
+ interface EmailAttachment {
268
+ content: string;
269
+ filename: string;
270
+ type: string;
271
+ disposition: "attachment" | "inline";
272
+ }
273
+ declare const createAttachmentFromBlob: (blob: Blob, filename: string, mimeType?: string, disposition?: "attachment" | "inline") => Promise<EmailAttachment>;
274
+ declare const createAttachmentFromUrl: (url: string, filename?: string) => Promise<EmailAttachment>;
275
+
276
+ interface GetDataPayload<T = any> {
277
+ key: string;
278
+ collection_name: string;
279
+ callback: (value: T) => void;
280
+ defaultValue: T;
281
+ }
282
+ declare class SocketService {
283
+ private static instance;
284
+ private socket;
285
+ private connectCallbacks;
286
+ private disconnectCallbacks;
287
+ private authToken;
288
+ private initSocket;
289
+ private constructor();
290
+ static getInstance(): SocketService;
291
+ private getSocketInstance;
292
+ startSession(token: string): void;
293
+ onConnect(callback: () => void): () => void;
294
+ offConnect(callback: () => void): void;
295
+ onDisconnect(callback: () => void): () => void;
296
+ offDisconnect(callback: () => void): void;
297
+ isConnected(): boolean;
298
+ setAuthToken(token: string): void;
299
+ disconnectSocket(): void;
300
+ subscribeToCollections(config: OnSnapshotConfig[]): () => void;
301
+ setData<UpdateType extends RedisUpdateType, DataType = any>(payload: RedisUpdatePayload<UpdateType, DataType>): Promise<SocketCallbackResponse>;
302
+ getCollectionData<T>(payload: Omit<GetDataPayload<T>, "key">): void;
303
+ getDocumentData<T>(payload: GetDataPayload<T>): void;
304
+ deleteData(payload: {
305
+ key: string;
306
+ collection_name: string;
307
+ }): Promise<SocketCallbackResponse>;
308
+ clearAllRedisData(): Promise<SocketCallbackResponse>;
309
+ }
310
+ declare const socketServiceInstance: SocketService;
311
+
312
+ export { type EmailAttachment, type ValidationType, addAuditRecord, addLoginAudit, add_document, addressRegex, akeylessOnlineDomain, app, appCheck, auth, baseDomain, biDomain, calculateBearing, callCenterEventsDomain, callCenterGeoDomain, carsRegex, chartsRegex, checkUserPermissions, cleanNxSites, cn, collections, colorRegex, createAttachmentFromBlob, createAttachmentFromUrl, createSelectors, dataSocketDomain, dataSyncDomain, db, delete_document, devicesDomain, displayFormatPhoneNumber, durationToSeconds, emailRegex, extractAlertsData, extractBoardsData, extractCanbusData, extractCarsData, extractClientData, extractLocationData, extractSiteData, fire_base_TIME_TEMP, formatCarNumber, getAddressByGeo, getFileUrlFromStorage, getFixedNumber, getFormCheckboxValue, getFormElementValue, getLocationUrl, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, get_international_phone_number, googleLoginProvider, handleChange, handleInvalid, handlePaste, initializeUserPermissions, international_israel_phone_format, isInternational, isInternationalIsraelPhone, isLocal, isNodeEnv, is_iccid, local_israel_phone_format, mode, multiStringFormat, notificationsDomain, numbersOnlyRegex, numbersRegex, nxApiCall, parseMultiSelectInput, parsePermissions, parseSnapshotAsArray, priceRegex, propsAreEqual, query_document, query_document_by_conditions, query_documents, query_documents_by_conditions, renderOnce, secondsToDuration, setFormElementValue, setState, set_document, simpleExtractData, snapshot, snapshotDocument, socketServiceInstance, sort_by_timestamp, storage, textNumbersRegex, textRegex, timestamp_to_millis, timestamp_to_string, uploadFileToStorage, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat, validateAndCast, validateUserStatusAndPermissions };
@@ -3,7 +3,7 @@ import { FirebaseStorage } from 'firebase/storage';
3
3
  import { Auth, GoogleAuthProvider, User } from 'firebase/auth';
4
4
  import { AppCheck } from 'firebase/app-check';
5
5
  import { WhereFilterOp, Unsubscribe, Firestore, CollectionReference, DocumentData, Timestamp, DocumentSnapshot } from 'firebase/firestore';
6
- import { TObject, NxUser, CountryOptions, LanguageOptions, UserPermissionsObject, userPermissionsObjectValue, Client } from 'akeyless-types-commons';
6
+ import { TObject, NxUser, CountryOptions, LanguageOptions, UserPermissionsObject, userPermissionsObjectValue, Client, RedisUpdateType, RedisUpdatePayload, SocketCallbackResponse } from 'akeyless-types-commons';
7
7
  import React, { Dispatch, SetStateAction } from 'react';
8
8
  import { ClassValue } from 'clsx';
9
9
 
@@ -31,6 +31,8 @@ interface OnSnapshotConfig extends OnSnapshotParsers {
31
31
  fieldName: string;
32
32
  direction: "asc" | "desc";
33
33
  }[];
34
+ parseAs?: "object" | "array";
35
+ subscribeTo?: "cache" | "db";
34
36
  }
35
37
  interface OnSnapshotConfigDocument extends Omit<OnSnapshotParsers, "onAdd"> {
36
38
  collectionName: string;
@@ -159,7 +161,7 @@ declare const addAuditRecord: (action: string, entity: string, details: TObject<
159
161
  };
160
162
  }>;
161
163
  declare const validateUserStatusAndPermissions: (user: NxUser, app: AppName) => TObject<TObject<boolean>>;
162
- declare const getFileFromStorage: (filePath: string) => Promise<string>;
164
+ declare const getFileUrlFromStorage: (filePath: string) => Promise<string>;
163
165
  declare const uploadFileToStorage: (file: File, filePath: string) => Promise<string>;
164
166
 
165
167
  declare const calculateBearing: (startLat: any, startLng: any, endLat: any, endLng: any) => number;
@@ -242,9 +244,11 @@ declare const biDomain: string;
242
244
  declare const notificationsDomain: string;
243
245
  declare const callCenterGeoDomain: string;
244
246
  declare const callCenterEventsDomain: string;
247
+ declare const dataSocketDomain: string;
248
+ declare const dataSyncDomain: string;
245
249
  declare const akeylessOnlineDomain: string;
246
250
  type Method = "GET" | "POST" | "PUT" | "DELETE";
247
- type ServerName = "devices" | "bi" | "call-center-geo" | "call-center-events" | "notifications";
251
+ type ServerName = "devices" | "bi" | "call-center-geo" | "call-center-events" | "notifications" | "data-socket" | "data-sync";
248
252
  declare const nxApiCall: (serverName: ServerName, method: Method, url: string, data?: TObject<any>) => Promise<any>;
249
253
 
250
254
  declare const checkUserPermissions: <T extends keyof UserPermissionsObject>(userPermissions: UserPermissionsObject, entity: T, permissions?: userPermissionsObjectValue<T>[], mode?: "some" | "every") => boolean;
@@ -260,4 +264,49 @@ declare const initializeUserPermissions: ({ phoneNumber, email, firstTimeArray,
260
264
  permissions: TObject<TObject<boolean>>;
261
265
  }>;
262
266
 
263
- export { type ValidationType, addAuditRecord, addLoginAudit, add_document, addressRegex, akeylessOnlineDomain, app, appCheck, auth, baseDomain, biDomain, calculateBearing, callCenterEventsDomain, callCenterGeoDomain, carsRegex, chartsRegex, checkUserPermissions, cleanNxSites, cn, collections, colorRegex, createSelectors, db, delete_document, devicesDomain, displayFormatPhoneNumber, durationToSeconds, emailRegex, extractAlertsData, extractBoardsData, extractCanbusData, extractCarsData, extractClientData, extractLocationData, extractSiteData, fire_base_TIME_TEMP, formatCarNumber, getAddressByGeo, getFileFromStorage, getFixedNumber, getFormCheckboxValue, getFormElementValue, getLocationUrl, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, get_international_phone_number, googleLoginProvider, handleChange, handleInvalid, handlePaste, initializeUserPermissions, international_israel_phone_format, isInternational, isInternationalIsraelPhone, isLocal, isNodeEnv, is_iccid, local_israel_phone_format, mode, multiStringFormat, notificationsDomain, numbersOnlyRegex, numbersRegex, nxApiCall, parseMultiSelectInput, parsePermissions, parseSnapshotAsArray, priceRegex, propsAreEqual, query_document, query_document_by_conditions, query_documents, query_documents_by_conditions, renderOnce, secondsToDuration, setFormElementValue, setState, set_document, simpleExtractData, snapshot, snapshotDocument, sort_by_timestamp, storage, textNumbersRegex, textRegex, timestamp_to_millis, timestamp_to_string, uploadFileToStorage, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat, validateAndCast, validateUserStatusAndPermissions };
267
+ interface EmailAttachment {
268
+ content: string;
269
+ filename: string;
270
+ type: string;
271
+ disposition: "attachment" | "inline";
272
+ }
273
+ declare const createAttachmentFromBlob: (blob: Blob, filename: string, mimeType?: string, disposition?: "attachment" | "inline") => Promise<EmailAttachment>;
274
+ declare const createAttachmentFromUrl: (url: string, filename?: string) => Promise<EmailAttachment>;
275
+
276
+ interface GetDataPayload<T = any> {
277
+ key: string;
278
+ collection_name: string;
279
+ callback: (value: T) => void;
280
+ defaultValue: T;
281
+ }
282
+ declare class SocketService {
283
+ private static instance;
284
+ private socket;
285
+ private connectCallbacks;
286
+ private disconnectCallbacks;
287
+ private authToken;
288
+ private initSocket;
289
+ private constructor();
290
+ static getInstance(): SocketService;
291
+ private getSocketInstance;
292
+ startSession(token: string): void;
293
+ onConnect(callback: () => void): () => void;
294
+ offConnect(callback: () => void): void;
295
+ onDisconnect(callback: () => void): () => void;
296
+ offDisconnect(callback: () => void): void;
297
+ isConnected(): boolean;
298
+ setAuthToken(token: string): void;
299
+ disconnectSocket(): void;
300
+ subscribeToCollections(config: OnSnapshotConfig[]): () => void;
301
+ setData<UpdateType extends RedisUpdateType, DataType = any>(payload: RedisUpdatePayload<UpdateType, DataType>): Promise<SocketCallbackResponse>;
302
+ getCollectionData<T>(payload: Omit<GetDataPayload<T>, "key">): void;
303
+ getDocumentData<T>(payload: GetDataPayload<T>): void;
304
+ deleteData(payload: {
305
+ key: string;
306
+ collection_name: string;
307
+ }): Promise<SocketCallbackResponse>;
308
+ clearAllRedisData(): Promise<SocketCallbackResponse>;
309
+ }
310
+ declare const socketServiceInstance: SocketService;
311
+
312
+ export { type EmailAttachment, type ValidationType, addAuditRecord, addLoginAudit, add_document, addressRegex, akeylessOnlineDomain, app, appCheck, auth, baseDomain, biDomain, calculateBearing, callCenterEventsDomain, callCenterGeoDomain, carsRegex, chartsRegex, checkUserPermissions, cleanNxSites, cn, collections, colorRegex, createAttachmentFromBlob, createAttachmentFromUrl, createSelectors, dataSocketDomain, dataSyncDomain, db, delete_document, devicesDomain, displayFormatPhoneNumber, durationToSeconds, emailRegex, extractAlertsData, extractBoardsData, extractCanbusData, extractCarsData, extractClientData, extractLocationData, extractSiteData, fire_base_TIME_TEMP, formatCarNumber, getAddressByGeo, getFileUrlFromStorage, getFixedNumber, getFormCheckboxValue, getFormElementValue, getLocationUrl, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, get_international_phone_number, googleLoginProvider, handleChange, handleInvalid, handlePaste, initializeUserPermissions, international_israel_phone_format, isInternational, isInternationalIsraelPhone, isLocal, isNodeEnv, is_iccid, local_israel_phone_format, mode, multiStringFormat, notificationsDomain, numbersOnlyRegex, numbersRegex, nxApiCall, parseMultiSelectInput, parsePermissions, parseSnapshotAsArray, priceRegex, propsAreEqual, query_document, query_document_by_conditions, query_documents, query_documents_by_conditions, renderOnce, secondsToDuration, setFormElementValue, setState, set_document, simpleExtractData, snapshot, snapshotDocument, socketServiceInstance, sort_by_timestamp, storage, textNumbersRegex, textRegex, timestamp_to_millis, timestamp_to_string, uploadFileToStorage, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat, validateAndCast, validateUserStatusAndPermissions };