akeyless-client-commons 1.0.1

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.
@@ -0,0 +1,1494 @@
1
+ // src/helpers/firebase.ts
2
+ function _array_like_to_array(arr, len) {
3
+ if (len == null || len > arr.length) len = arr.length;
4
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5
+ return arr2;
6
+ }
7
+ function _array_with_holes(arr) {
8
+ if (Array.isArray(arr)) return arr;
9
+ }
10
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
11
+ try {
12
+ var info = gen[key](arg);
13
+ var value = info.value;
14
+ } catch (error) {
15
+ reject(error);
16
+ return;
17
+ }
18
+ if (info.done) {
19
+ resolve(value);
20
+ } else {
21
+ Promise.resolve(value).then(_next, _throw);
22
+ }
23
+ }
24
+ function _async_to_generator(fn) {
25
+ return function() {
26
+ var self = this, args = arguments;
27
+ return new Promise(function(resolve, reject) {
28
+ var gen = fn.apply(self, args);
29
+ function _next(value) {
30
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
31
+ }
32
+ function _throw(err) {
33
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
34
+ }
35
+ _next(undefined);
36
+ });
37
+ };
38
+ }
39
+ function _define_property(obj, key, value) {
40
+ if (key in obj) {
41
+ Object.defineProperty(obj, key, {
42
+ value: value,
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true
46
+ });
47
+ } else {
48
+ obj[key] = value;
49
+ }
50
+ return obj;
51
+ }
52
+ function _instanceof(left, right) {
53
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
54
+ return !!right[Symbol.hasInstance](left);
55
+ } else {
56
+ return left instanceof right;
57
+ }
58
+ }
59
+ function _iterable_to_array_limit(arr, i) {
60
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
61
+ if (_i == null) return;
62
+ var _arr = [];
63
+ var _n = true;
64
+ var _d = false;
65
+ var _s, _e;
66
+ try {
67
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
68
+ _arr.push(_s.value);
69
+ if (i && _arr.length === i) break;
70
+ }
71
+ } catch (err) {
72
+ _d = true;
73
+ _e = err;
74
+ } finally{
75
+ try {
76
+ if (!_n && _i["return"] != null) _i["return"]();
77
+ } finally{
78
+ if (_d) throw _e;
79
+ }
80
+ }
81
+ return _arr;
82
+ }
83
+ function _non_iterable_rest() {
84
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
85
+ }
86
+ function _object_spread(target) {
87
+ for(var i = 1; i < arguments.length; i++){
88
+ var source = arguments[i] != null ? arguments[i] : {};
89
+ var ownKeys = Object.keys(source);
90
+ if (typeof Object.getOwnPropertySymbols === "function") {
91
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
92
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
93
+ }));
94
+ }
95
+ ownKeys.forEach(function(key) {
96
+ _define_property(target, key, source[key]);
97
+ });
98
+ }
99
+ return target;
100
+ }
101
+ function ownKeys(object, enumerableOnly) {
102
+ var keys = Object.keys(object);
103
+ if (Object.getOwnPropertySymbols) {
104
+ var symbols = Object.getOwnPropertySymbols(object);
105
+ if (enumerableOnly) {
106
+ symbols = symbols.filter(function(sym) {
107
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
108
+ });
109
+ }
110
+ keys.push.apply(keys, symbols);
111
+ }
112
+ return keys;
113
+ }
114
+ function _object_spread_props(target, source) {
115
+ source = source != null ? source : {};
116
+ if (Object.getOwnPropertyDescriptors) {
117
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
118
+ } else {
119
+ ownKeys(Object(source)).forEach(function(key) {
120
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
121
+ });
122
+ }
123
+ return target;
124
+ }
125
+ function _sliced_to_array(arr, i) {
126
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
127
+ }
128
+ function _unsupported_iterable_to_array(o, minLen) {
129
+ if (!o) return;
130
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
131
+ var n = Object.prototype.toString.call(o).slice(8, -1);
132
+ if (n === "Object" && o.constructor) n = o.constructor.name;
133
+ if (n === "Map" || n === "Set") return Array.from(n);
134
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
135
+ }
136
+ function _ts_generator(thisArg, body) {
137
+ var f, y, t, g, _ = {
138
+ label: 0,
139
+ sent: function() {
140
+ if (t[0] & 1) throw t[1];
141
+ return t[1];
142
+ },
143
+ trys: [],
144
+ ops: []
145
+ };
146
+ return g = {
147
+ next: verb(0),
148
+ "throw": verb(1),
149
+ "return": verb(2)
150
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
151
+ return this;
152
+ }), g;
153
+ function verb(n) {
154
+ return function(v) {
155
+ return step([
156
+ n,
157
+ v
158
+ ]);
159
+ };
160
+ }
161
+ function step(op) {
162
+ if (f) throw new TypeError("Generator is already executing.");
163
+ while(_)try {
164
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
165
+ if (y = 0, t) op = [
166
+ op[0] & 2,
167
+ t.value
168
+ ];
169
+ switch(op[0]){
170
+ case 0:
171
+ case 1:
172
+ t = op;
173
+ break;
174
+ case 4:
175
+ _.label++;
176
+ return {
177
+ value: op[1],
178
+ done: false
179
+ };
180
+ case 5:
181
+ _.label++;
182
+ y = op[1];
183
+ op = [
184
+ 0
185
+ ];
186
+ continue;
187
+ case 7:
188
+ op = _.ops.pop();
189
+ _.trys.pop();
190
+ continue;
191
+ default:
192
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
193
+ _ = 0;
194
+ continue;
195
+ }
196
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
197
+ _.label = op[1];
198
+ break;
199
+ }
200
+ if (op[0] === 6 && _.label < t[1]) {
201
+ _.label = t[1];
202
+ t = op;
203
+ break;
204
+ }
205
+ if (t && _.label < t[2]) {
206
+ _.label = t[2];
207
+ _.ops.push(op);
208
+ break;
209
+ }
210
+ if (t[2]) _.ops.pop();
211
+ _.trys.pop();
212
+ continue;
213
+ }
214
+ op = body.call(thisArg, _);
215
+ } catch (e) {
216
+ op = [
217
+ 6,
218
+ e
219
+ ];
220
+ y = 0;
221
+ } finally{
222
+ f = t = 0;
223
+ }
224
+ if (op[0] & 5) throw op[1];
225
+ return {
226
+ value: op[0] ? op[1] : void 0,
227
+ done: true
228
+ };
229
+ }
230
+ }
231
+ import moment from "moment";
232
+ import { initializeApp } from "firebase/app";
233
+ import { getStorage } from "firebase/storage";
234
+ import { getAuth } from "firebase/auth";
235
+ import { addDoc, collection, deleteDoc, doc, getDoc, getDocs, query, setDoc, Timestamp, where, getFirestore, onSnapshot, orderBy } from "firebase/firestore";
236
+ // src/helpers/cars.ts
237
+ var formatCarNumber = function(car_number) {
238
+ var cn2 = car_number;
239
+ if ((cn2 === null || cn2 === void 0 ? void 0 : cn2.length) == 8) return "".concat(cn2[0]).concat(cn2[1]).concat(cn2[2], "-").concat(cn2[3]).concat(cn2[4], "-").concat(cn2[5]).concat(cn2[6]).concat(cn2[7]);
240
+ if ((cn2 === null || cn2 === void 0 ? void 0 : cn2.length) == 7) return "".concat(cn2[0]).concat(cn2[1], "-").concat(cn2[2]).concat(cn2[3]).concat(cn2[4], "-").concat(cn2[5]).concat(cn2[6]);
241
+ if ((cn2 === null || cn2 === void 0 ? void 0 : cn2.length) == 6) return "".concat(cn2[0]).concat(cn2[1], "-").concat(cn2[2]).concat(cn2[3], "-").concat(cn2[4]).concat(cn2[5]);
242
+ if ((cn2 === null || cn2 === void 0 ? void 0 : cn2.length) == 5) return "".concat(cn2[0], "-").concat(cn2[1]).concat(cn2[2], "-").concat(cn2[3]).concat(cn2[4]);
243
+ return cn2;
244
+ };
245
+ // src/helpers/firebase.ts
246
+ var initApp = function() {
247
+ var isNodeEnv2 = typeof process !== "undefined" && process.env;
248
+ var firebaseConfig = {
249
+ apiKey: isNodeEnv2 ? process.env.NEXT_PUBLIC_API_KEY : import.meta.env.VITE_API_KEY,
250
+ authDomain: isNodeEnv2 ? process.env.NEXT_PUBLIC_AUTH_DOMAIN : import.meta.env.VITE_AUTH_DOMAIN,
251
+ projectId: isNodeEnv2 ? process.env.NEXT_PUBLIC_PROJECT_ID : import.meta.env.VITE_PROJECT_ID,
252
+ storageBucket: isNodeEnv2 ? process.env.NEXT_PUBLIC_STORAGE_BUCKET : import.meta.env.VITE_STORAGE_BUCKET,
253
+ messagingSenderId: isNodeEnv2 ? process.env.NEXT_PUBLIC_MESSAGING_SENDER_ID : import.meta.env.VITE_MESSAGING_SENDER_ID,
254
+ appId: isNodeEnv2 ? process.env.NEXT_PUBLIC_APP_ID : import.meta.env.VITE_APP_ID
255
+ };
256
+ try {
257
+ var app = initializeApp(firebaseConfig);
258
+ var auth2 = getAuth(app);
259
+ var db2 = getFirestore(app);
260
+ var storage2 = getStorage(app);
261
+ return {
262
+ db: db2,
263
+ auth: auth2,
264
+ storage: storage2
265
+ };
266
+ } catch (error) {
267
+ console.error("Failed to initialize Firebase app:", error);
268
+ return {};
269
+ }
270
+ };
271
+ var _initApp = initApp(), db = _initApp.db, auth = _initApp.auth, storage = _initApp.storage;
272
+ var collections = {
273
+ clients: collection(db, "nx-clients"),
274
+ sites: collection(db, "nx-sites"),
275
+ cars: collection(db, "units"),
276
+ users: collection(db, "nx-users"),
277
+ lastLocations: collection(db, "last_locations"),
278
+ ermEvents: collection(db, "erm_events_general"),
279
+ erm2Events: collection(db, "erm2_events_general"),
280
+ ruptelaEvents: collection(db, "ruptela_events_general"),
281
+ polygons: collection(db, "nx-polygons"),
282
+ polygonEvents: collection(db, "polygon_events"),
283
+ polygonCars: collection(db, "polygon_cars"),
284
+ canbus: collection(db, "erm_canbus_parameters"),
285
+ states: collection(db, "erm_states"),
286
+ app_pro_commands_queue: collection(db, "app_pro_commands_queue"),
287
+ trips: collection(db, "erm2_trip"),
288
+ tripsDetails: collection(db, "erm2_trip_details"),
289
+ audit: collection(db, "nx-audit"),
290
+ nx_settings: collection(db, "nx-settings"),
291
+ settings: collection(db, "settings"),
292
+ translations: collection(db, "nx-translations"),
293
+ nx_cars: collection(db, "nx-cars"),
294
+ boards: collection(db, "boards"),
295
+ protection_types: collection(db, "protectionTypes"),
296
+ board_types: collection(db, "boardTypes"),
297
+ charge_capacities: collection(db, "nx-charge-capacities")
298
+ };
299
+ var fire_base_TIME_TEMP = Timestamp.now;
300
+ var extractAlertsData = function(doc2) {
301
+ var data = doc2.data();
302
+ var car_number = data.car_number, timestamp = data.timestamp;
303
+ return _object_spread_props(_object_spread({}, data), {
304
+ timestamp_seconds: timestamp.seconds,
305
+ timestamp_ui: moment.unix(timestamp.seconds).format("DD/MM/YY HH:mm"),
306
+ car_number: formatCarNumber(car_number)
307
+ });
308
+ };
309
+ var simpleExtractData = function(doc2) {
310
+ var docData = doc2.data();
311
+ return _object_spread_props(_object_spread({}, docData), {
312
+ id: doc2.id
313
+ });
314
+ };
315
+ var extractSiteData = function(doc2) {
316
+ var _data_updated, _data_created;
317
+ var data = doc2.data();
318
+ var dateUpdated = new Date(((_data_updated = data.updated) === null || _data_updated === void 0 ? void 0 : _data_updated.seconds) * 1e3 + data.updated.nanoseconds / 1e6);
319
+ var dateCreated = new Date(((_data_created = data.created) === null || _data_created === void 0 ? void 0 : _data_created.seconds) * 1e3 + data.created.nanoseconds / 1e6);
320
+ return _object_spread_props(_object_spread({}, data), {
321
+ id: doc2.id,
322
+ created: moment(dateCreated).format("DD.MM.YYYY - HH:mm"),
323
+ updated: moment(dateUpdated).format("DD.MM.YYYY - HH:mm")
324
+ });
325
+ };
326
+ var extractClientData = function(doc2) {
327
+ var _data_updated, _data_created;
328
+ var data = doc2.data();
329
+ var dateUpdated = new Date(((_data_updated = data.updated) === null || _data_updated === void 0 ? void 0 : _data_updated.seconds) * 1e3 + data.updated.nanoseconds / 1e6);
330
+ var dateCreated = new Date(((_data_created = data.created) === null || _data_created === void 0 ? void 0 : _data_created.seconds) * 1e3 + data.created.nanoseconds / 1e6);
331
+ return _object_spread_props(_object_spread({}, data), {
332
+ id: doc2.id,
333
+ created: moment(dateCreated).format("HH:mm DD/MM/YY"),
334
+ updated: moment(dateUpdated).format("HH:mm DD/MM/YY")
335
+ });
336
+ };
337
+ var extractBoardsData = function(doc2) {
338
+ var _data_uploaded;
339
+ var data = doc2.data();
340
+ var dateUploaded = typeof data.uploaded === "string" ? data.uploaded : moment.unix((_data_uploaded = data.uploaded) === null || _data_uploaded === void 0 ? void 0 : _data_uploaded.seconds).format("DD/MM/YY HH:mm");
341
+ return _object_spread_props(_object_spread({}, data), {
342
+ id: doc2.id,
343
+ uploaded: dateUploaded
344
+ });
345
+ };
346
+ var extractCarsData = function(doc2) {
347
+ var carData = doc2.data();
348
+ var icon;
349
+ var gov_info = carData.gov_info;
350
+ if (gov_info) {
351
+ if (carData.icon) {
352
+ icon = carData.icon;
353
+ } else if (gov_info.vehicle_type === "atv") {
354
+ icon = "truck";
355
+ } else if (gov_info.vehicle_type === "motorcycle") {
356
+ icon = "motorcycle";
357
+ } else {
358
+ icon = "car";
359
+ }
360
+ } else {
361
+ icon = "car";
362
+ }
363
+ return _object_spread_props(_object_spread({}, carData), {
364
+ id: doc2.id,
365
+ brand: carData.brand || carData.manufacturer,
366
+ car_number: carData.carId,
367
+ icon: icon
368
+ });
369
+ };
370
+ var extractCanbusData = function(doc2) {
371
+ var data = doc2.data();
372
+ var newDate = null;
373
+ if (data.timestamp && typeof data.timestamp.seconds === "number" && data.timestamp.seconds > 0) {
374
+ newDate = new Date(data.timestamp.seconds * 1e3);
375
+ }
376
+ return _object_spread_props(_object_spread({}, data), {
377
+ date_ui: newDate ? moment(newDate).format("DD/MM/YYYY - HH:mm") : "N/A"
378
+ });
379
+ };
380
+ var extractLocationData = function(doc2) {
381
+ var locationData = doc2.data();
382
+ var latitude = locationData.latitude, longitude = locationData.longitude, spd = locationData.spd, timestamp = locationData.timestamp, prev_latitude = locationData.prev_latitude, prev_longitude = locationData.prev_longitude;
383
+ return _object_spread_props(_object_spread({}, locationData), {
384
+ id: doc2.id,
385
+ lat: latitude,
386
+ lng: longitude,
387
+ prev_lat: prev_latitude,
388
+ prev_lng: prev_longitude,
389
+ timestamp: timestamp === null || timestamp === void 0 ? void 0 : timestamp.seconds,
390
+ spd: Number(spd).toFixed(0)
391
+ });
392
+ };
393
+ var get_all_documents = /*#__PURE__*/ function() {
394
+ var _ref = _async_to_generator(function(collection_path) {
395
+ var snapshot2, documents, error;
396
+ return _ts_generator(this, function(_state) {
397
+ switch(_state.label){
398
+ case 0:
399
+ _state.trys.push([
400
+ 0,
401
+ 2,
402
+ ,
403
+ 3
404
+ ]);
405
+ return [
406
+ 4,
407
+ getDocs(collection(db, collection_path))
408
+ ];
409
+ case 1:
410
+ snapshot2 = _state.sent();
411
+ documents = snapshot2.docs.map(function(doc2) {
412
+ return simpleExtractData(doc2);
413
+ });
414
+ return [
415
+ 2,
416
+ documents
417
+ ];
418
+ case 2:
419
+ error = _state.sent();
420
+ return [
421
+ 2,
422
+ []
423
+ ];
424
+ case 3:
425
+ return [
426
+ 2
427
+ ];
428
+ }
429
+ });
430
+ });
431
+ return function get_all_documents(collection_path) {
432
+ return _ref.apply(this, arguments);
433
+ };
434
+ }();
435
+ var get_document_by_id = /*#__PURE__*/ function() {
436
+ var _ref = _async_to_generator(function(collection_path, doc_id) {
437
+ var doc_ref, doc_snap, error;
438
+ return _ts_generator(this, function(_state) {
439
+ switch(_state.label){
440
+ case 0:
441
+ _state.trys.push([
442
+ 0,
443
+ 2,
444
+ ,
445
+ 3
446
+ ]);
447
+ doc_ref = doc(db, collection_path, doc_id);
448
+ return [
449
+ 4,
450
+ getDoc(doc_ref)
451
+ ];
452
+ case 1:
453
+ doc_snap = _state.sent();
454
+ if (!doc_snap.exists()) {
455
+ throw new Error("Document not found, document id: " + doc_id);
456
+ }
457
+ return [
458
+ 2,
459
+ simpleExtractData(doc_snap)
460
+ ];
461
+ case 2:
462
+ error = _state.sent();
463
+ console.error("Error from get_document_by_id", error);
464
+ return [
465
+ 2,
466
+ null
467
+ ];
468
+ case 3:
469
+ return [
470
+ 2
471
+ ];
472
+ }
473
+ });
474
+ });
475
+ return function get_document_by_id(collection_path, doc_id) {
476
+ return _ref.apply(this, arguments);
477
+ };
478
+ }();
479
+ var set_document = /*#__PURE__*/ function() {
480
+ var _ref = _async_to_generator(function(collection_path, doc_id, data) {
481
+ var doc_ref, error;
482
+ return _ts_generator(this, function(_state) {
483
+ switch(_state.label){
484
+ case 0:
485
+ _state.trys.push([
486
+ 0,
487
+ 2,
488
+ ,
489
+ 3
490
+ ]);
491
+ doc_ref = doc(db, collection_path, doc_id);
492
+ return [
493
+ 4,
494
+ setDoc(doc_ref, data, {
495
+ merge: true
496
+ })
497
+ ];
498
+ case 1:
499
+ _state.sent();
500
+ return [
501
+ 2,
502
+ true
503
+ ];
504
+ case 2:
505
+ error = _state.sent();
506
+ console.error("Failed to create document by id: ".concat(doc_id, " in collection: ").concat(collection_path), {
507
+ error: error,
508
+ data: data
509
+ });
510
+ return [
511
+ 2,
512
+ false
513
+ ];
514
+ case 3:
515
+ return [
516
+ 2
517
+ ];
518
+ }
519
+ });
520
+ });
521
+ return function set_document(collection_path, doc_id, data) {
522
+ return _ref.apply(this, arguments);
523
+ };
524
+ }();
525
+ var add_document = /*#__PURE__*/ function() {
526
+ var _ref = _async_to_generator(function(collection_path, data) {
527
+ var include_id, col_ref, doc_ref, error;
528
+ var _arguments = arguments;
529
+ return _ts_generator(this, function(_state) {
530
+ switch(_state.label){
531
+ case 0:
532
+ include_id = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : false;
533
+ _state.label = 1;
534
+ case 1:
535
+ _state.trys.push([
536
+ 1,
537
+ 5,
538
+ ,
539
+ 6
540
+ ]);
541
+ col_ref = collection(db, collection_path);
542
+ return [
543
+ 4,
544
+ addDoc(col_ref, data)
545
+ ];
546
+ case 2:
547
+ doc_ref = _state.sent();
548
+ if (!include_id) return [
549
+ 3,
550
+ 4
551
+ ];
552
+ return [
553
+ 4,
554
+ setDoc(doc_ref, _object_spread_props(_object_spread({}, data), {
555
+ id: doc_ref.id
556
+ }), {
557
+ merge: true
558
+ })
559
+ ];
560
+ case 3:
561
+ _state.sent();
562
+ _state.label = 4;
563
+ case 4:
564
+ return [
565
+ 2,
566
+ true
567
+ ];
568
+ case 5:
569
+ error = _state.sent();
570
+ console.error("Failed to create document in collection: ".concat(collection_path), error);
571
+ return [
572
+ 2,
573
+ false
574
+ ];
575
+ case 6:
576
+ return [
577
+ 2
578
+ ];
579
+ }
580
+ });
581
+ });
582
+ return function add_document(collection_path, data) {
583
+ return _ref.apply(this, arguments);
584
+ };
585
+ }();
586
+ var delete_document = /*#__PURE__*/ function() {
587
+ var _ref = _async_to_generator(function(collection_path, doc_id) {
588
+ var doc_ref, error;
589
+ return _ts_generator(this, function(_state) {
590
+ switch(_state.label){
591
+ case 0:
592
+ _state.trys.push([
593
+ 0,
594
+ 2,
595
+ ,
596
+ 3
597
+ ]);
598
+ doc_ref = doc(db, collection_path, doc_id);
599
+ return [
600
+ 4,
601
+ deleteDoc(doc_ref)
602
+ ];
603
+ case 1:
604
+ _state.sent();
605
+ return [
606
+ 2,
607
+ true
608
+ ];
609
+ case 2:
610
+ error = _state.sent();
611
+ console.error("Failed to delete document with id ".concat(doc_id, " from collection ").concat(collection_path), error);
612
+ return [
613
+ 2,
614
+ false
615
+ ];
616
+ case 3:
617
+ return [
618
+ 2
619
+ ];
620
+ }
621
+ });
622
+ });
623
+ return function delete_document(collection_path, doc_id) {
624
+ return _ref.apply(this, arguments);
625
+ };
626
+ }();
627
+ var query_document = /*#__PURE__*/ function() {
628
+ var _ref = _async_to_generator(function(collection_path, field_name, operator, value) {
629
+ var ignore_log, q, query_snapshot, documents, error;
630
+ var _arguments = arguments;
631
+ return _ts_generator(this, function(_state) {
632
+ switch(_state.label){
633
+ case 0:
634
+ ignore_log = _arguments.length > 4 && _arguments[4] !== void 0 ? _arguments[4] : false;
635
+ _state.label = 1;
636
+ case 1:
637
+ _state.trys.push([
638
+ 1,
639
+ 3,
640
+ ,
641
+ 4
642
+ ]);
643
+ q = query(collection(db, collection_path), where(field_name, operator, value));
644
+ return [
645
+ 4,
646
+ getDocs(q)
647
+ ];
648
+ case 2:
649
+ query_snapshot = _state.sent();
650
+ documents = query_snapshot.docs.map(function(doc2) {
651
+ return simpleExtractData(doc2);
652
+ });
653
+ if (documents.length < 1) {
654
+ throw new Error("No data to return from: \ncollection: ".concat(collection_path, ", \nfield_name: ").concat(field_name, ", \noperator: ").concat(operator, ", \nvalue: ").concat(value));
655
+ }
656
+ return [
657
+ 2,
658
+ documents[0]
659
+ ];
660
+ case 3:
661
+ error = _state.sent();
662
+ if (!ignore_log) {
663
+ console.error("Error querying document:", error);
664
+ }
665
+ return [
666
+ 2,
667
+ null
668
+ ];
669
+ case 4:
670
+ return [
671
+ 2
672
+ ];
673
+ }
674
+ });
675
+ });
676
+ return function query_document(collection_path, field_name, operator, value) {
677
+ return _ref.apply(this, arguments);
678
+ };
679
+ }();
680
+ var query_documents = /*#__PURE__*/ function() {
681
+ var _ref = _async_to_generator(function(collection_path, field_name, operator, value) {
682
+ var q, query_snapshot, documents, error;
683
+ return _ts_generator(this, function(_state) {
684
+ switch(_state.label){
685
+ case 0:
686
+ _state.trys.push([
687
+ 0,
688
+ 2,
689
+ ,
690
+ 3
691
+ ]);
692
+ q = query(collection(db, collection_path), where(field_name, operator, value));
693
+ return [
694
+ 4,
695
+ getDocs(q)
696
+ ];
697
+ case 1:
698
+ query_snapshot = _state.sent();
699
+ documents = query_snapshot.docs.map(function(doc2) {
700
+ return simpleExtractData(doc2);
701
+ });
702
+ return [
703
+ 2,
704
+ documents
705
+ ];
706
+ case 2:
707
+ error = _state.sent();
708
+ console.error("Error querying documents: ".concat(collection_path, " - ").concat(field_name, " - ").concat(operator, " - ").concat(value, " "), error);
709
+ return [
710
+ 2,
711
+ []
712
+ ];
713
+ case 3:
714
+ return [
715
+ 2
716
+ ];
717
+ }
718
+ });
719
+ });
720
+ return function query_documents(collection_path, field_name, operator, value) {
721
+ return _ref.apply(this, arguments);
722
+ };
723
+ }();
724
+ var query_documents_by_conditions = /*#__PURE__*/ function() {
725
+ var _ref = _async_to_generator(function(collection_path, where_conditions) {
726
+ var db_query, query_snapshot, documents, error;
727
+ return _ts_generator(this, function(_state) {
728
+ switch(_state.label){
729
+ case 0:
730
+ _state.trys.push([
731
+ 0,
732
+ 2,
733
+ ,
734
+ 3
735
+ ]);
736
+ db_query = collection(db, collection_path);
737
+ where_conditions.forEach(function(condition) {
738
+ db_query = query(db_query, where(condition.field_name, condition.operator, condition.value));
739
+ });
740
+ return [
741
+ 4,
742
+ getDocs(db_query)
743
+ ];
744
+ case 1:
745
+ query_snapshot = _state.sent();
746
+ documents = query_snapshot.docs.map(function(doc2) {
747
+ return simpleExtractData(doc2);
748
+ });
749
+ return [
750
+ 2,
751
+ documents
752
+ ];
753
+ case 2:
754
+ error = _state.sent();
755
+ console.error("Error querying documents: ".concat(collection_path, " - ").concat(JSON.stringify(where_conditions), " "), error);
756
+ return [
757
+ 2,
758
+ []
759
+ ];
760
+ case 3:
761
+ return [
762
+ 2
763
+ ];
764
+ }
765
+ });
766
+ });
767
+ return function query_documents_by_conditions(collection_path, where_conditions) {
768
+ return _ref.apply(this, arguments);
769
+ };
770
+ }();
771
+ var query_document_by_conditions = /*#__PURE__*/ function() {
772
+ var _ref = _async_to_generator(function(collection_path, where_conditions) {
773
+ var db_query, query_snapshot, documents, error;
774
+ return _ts_generator(this, function(_state) {
775
+ switch(_state.label){
776
+ case 0:
777
+ _state.trys.push([
778
+ 0,
779
+ 2,
780
+ ,
781
+ 3
782
+ ]);
783
+ db_query = collection(db, collection_path);
784
+ where_conditions.forEach(function(condition) {
785
+ db_query = query(db_query, where(condition.field_name, condition.operator, condition.value));
786
+ });
787
+ return [
788
+ 4,
789
+ getDocs(db_query)
790
+ ];
791
+ case 1:
792
+ query_snapshot = _state.sent();
793
+ documents = query_snapshot.docs.map(function(doc2) {
794
+ return simpleExtractData(doc2);
795
+ });
796
+ if (!documents[0]) {
797
+ throw new Error("No data returned from DB");
798
+ }
799
+ return [
800
+ 2,
801
+ documents[0]
802
+ ];
803
+ case 2:
804
+ error = _state.sent();
805
+ console.error("Error querying documents: ".concat(collection_path, " - ").concat(JSON.stringify(where_conditions), " "), error);
806
+ return [
807
+ 2,
808
+ null
809
+ ];
810
+ case 3:
811
+ return [
812
+ 2
813
+ ];
814
+ }
815
+ });
816
+ });
817
+ return function query_document_by_conditions(collection_path, where_conditions) {
818
+ return _ref.apply(this, arguments);
819
+ };
820
+ }();
821
+ var snapshot = function(config, snapshotsFirstTime) {
822
+ var resolvePromise;
823
+ var isResolved = false;
824
+ var promise = new Promise(function(resolve) {
825
+ console.log("==> ".concat(config.collectionName, " subscribed."));
826
+ resolvePromise = function() {
827
+ if (!isResolved) {
828
+ isResolved = true;
829
+ resolve();
830
+ }
831
+ };
832
+ });
833
+ var collectionRef = collection(db, config.collectionName);
834
+ if (config.conditions) {
835
+ config.conditions.forEach(function(condition) {
836
+ collectionRef = query(collectionRef, where(condition.field_name, condition.operator, condition.value));
837
+ });
838
+ }
839
+ if (config.orderBy) {
840
+ config.orderBy.forEach(function(order) {
841
+ collectionRef = query(collectionRef, orderBy(order.fieldName, order.direction));
842
+ });
843
+ }
844
+ var unsubscribe = onSnapshot(collectionRef, function(snapshot2) {
845
+ if (!snapshotsFirstTime.includes(config.collectionName)) {
846
+ var _config_onFirstTime, _config_extraParsers;
847
+ snapshotsFirstTime.push(config.collectionName);
848
+ var documents = snapshot2.docs.map(function(doc2) {
849
+ return simpleExtractData(doc2);
850
+ });
851
+ (_config_onFirstTime = config.onFirstTime) === null || _config_onFirstTime === void 0 ? void 0 : _config_onFirstTime.call(config, documents, config);
852
+ (_config_extraParsers = config.extraParsers) === null || _config_extraParsers === void 0 ? void 0 : _config_extraParsers.forEach(function(extraParser) {
853
+ var _extraParser_onFirstTime;
854
+ (_extraParser_onFirstTime = extraParser.onFirstTime) === null || _extraParser_onFirstTime === void 0 ? void 0 : _extraParser_onFirstTime.call(extraParser, documents, config);
855
+ });
856
+ resolvePromise();
857
+ } else {
858
+ var _config_onAdd, _config_onModify, _config_onRemove, _config_extraParsers1;
859
+ var addedDocs = [];
860
+ var modifiedDocs = [];
861
+ var removedDocs = [];
862
+ snapshot2.docChanges().forEach(function(change) {
863
+ if (change.type === "added") {
864
+ addedDocs.push(simpleExtractData(change.doc));
865
+ } else if (change.type === "modified") {
866
+ modifiedDocs.push(simpleExtractData(change.doc));
867
+ } else if (change.type === "removed") {
868
+ removedDocs.push(simpleExtractData(change.doc));
869
+ }
870
+ });
871
+ addedDocs.length && ((_config_onAdd = config.onAdd) === null || _config_onAdd === void 0 ? void 0 : _config_onAdd.call(config, addedDocs, config));
872
+ modifiedDocs.length && ((_config_onModify = config.onModify) === null || _config_onModify === void 0 ? void 0 : _config_onModify.call(config, modifiedDocs, config));
873
+ removedDocs.length && ((_config_onRemove = config.onRemove) === null || _config_onRemove === void 0 ? void 0 : _config_onRemove.call(config, removedDocs, config));
874
+ (_config_extraParsers1 = config.extraParsers) === null || _config_extraParsers1 === void 0 ? void 0 : _config_extraParsers1.forEach(function(extraParser) {
875
+ var _extraParser_onAdd, _extraParser_onModify, _extraParser_onRemove;
876
+ addedDocs.length && ((_extraParser_onAdd = extraParser.onAdd) === null || _extraParser_onAdd === void 0 ? void 0 : _extraParser_onAdd.call(extraParser, addedDocs, config));
877
+ modifiedDocs.length && ((_extraParser_onModify = extraParser.onModify) === null || _extraParser_onModify === void 0 ? void 0 : _extraParser_onModify.call(extraParser, modifiedDocs, config));
878
+ removedDocs.length && ((_extraParser_onRemove = extraParser.onRemove) === null || _extraParser_onRemove === void 0 ? void 0 : _extraParser_onRemove.call(extraParser, removedDocs, config));
879
+ });
880
+ }
881
+ }, function(error) {
882
+ console.error("Error listening to collection: ".concat(config.collectionName), error);
883
+ resolvePromise();
884
+ });
885
+ return {
886
+ promise: promise,
887
+ unsubscribe: unsubscribe
888
+ };
889
+ };
890
+ var snapshotDocument = function(config, snapshotsFirstTime) {
891
+ var resolvePromise;
892
+ var isResolved = false;
893
+ var promise = new Promise(function(resolve) {
894
+ console.log("==> Document in ".concat(config.collectionName, " subscribed."));
895
+ resolvePromise = function() {
896
+ if (!isResolved) {
897
+ isResolved = true;
898
+ resolve();
899
+ }
900
+ };
901
+ });
902
+ var documentRef = doc(db, config.collectionName, config.documentId);
903
+ var unsubscribe = onSnapshot(documentRef, function(docSnapshot) {
904
+ if (!snapshotsFirstTime.includes(config.collectionName)) {
905
+ snapshotsFirstTime.push(config.collectionName);
906
+ if (docSnapshot.exists()) {
907
+ var document2 = simpleExtractData(docSnapshot);
908
+ if (checkConditions(document2, config.conditions)) {
909
+ var _config_onFirstTime, _config_extraParsers;
910
+ (_config_onFirstTime = config.onFirstTime) === null || _config_onFirstTime === void 0 ? void 0 : _config_onFirstTime.call(config, [
911
+ document2
912
+ ], config);
913
+ (_config_extraParsers = config.extraParsers) === null || _config_extraParsers === void 0 ? void 0 : _config_extraParsers.forEach(function(extraParser) {
914
+ var _extraParser_onFirstTime;
915
+ (_extraParser_onFirstTime = extraParser.onFirstTime) === null || _extraParser_onFirstTime === void 0 ? void 0 : _extraParser_onFirstTime.call(extraParser, [
916
+ document2
917
+ ], config);
918
+ });
919
+ } else {
920
+ console.warn("Document in ".concat(config.collectionName, " does not meet conditions."));
921
+ }
922
+ } else {
923
+ console.warn("Document not found in ".concat(config.collectionName, "."));
924
+ }
925
+ resolvePromise();
926
+ } else {
927
+ if (docSnapshot.exists()) {
928
+ var document21 = simpleExtractData(docSnapshot);
929
+ if (checkConditions(document21, config.conditions)) {
930
+ var _config_onModify, _config_extraParsers1;
931
+ (_config_onModify = config.onModify) === null || _config_onModify === void 0 ? void 0 : _config_onModify.call(config, [
932
+ document21
933
+ ], config);
934
+ (_config_extraParsers1 = config.extraParsers) === null || _config_extraParsers1 === void 0 ? void 0 : _config_extraParsers1.forEach(function(extraParser) {
935
+ var _extraParser_onModify;
936
+ (_extraParser_onModify = extraParser.onModify) === null || _extraParser_onModify === void 0 ? void 0 : _extraParser_onModify.call(extraParser, [
937
+ document21
938
+ ], config);
939
+ });
940
+ }
941
+ } else {
942
+ var _config_onRemove, _config_extraParsers2;
943
+ (_config_onRemove = config.onRemove) === null || _config_onRemove === void 0 ? void 0 : _config_onRemove.call(config, [], config);
944
+ (_config_extraParsers2 = config.extraParsers) === null || _config_extraParsers2 === void 0 ? void 0 : _config_extraParsers2.forEach(function(extraParser) {
945
+ var _extraParser_onRemove;
946
+ (_extraParser_onRemove = extraParser.onRemove) === null || _extraParser_onRemove === void 0 ? void 0 : _extraParser_onRemove.call(extraParser, [], config);
947
+ });
948
+ }
949
+ }
950
+ }, function(error) {
951
+ console.error("Error listening to document in ".concat(config.collectionName, ":"), error);
952
+ resolvePromise();
953
+ });
954
+ return {
955
+ promise: promise,
956
+ unsubscribe: unsubscribe
957
+ };
958
+ };
959
+ var checkConditions = function(document2, conditions) {
960
+ if (!conditions || conditions.length === 0) return true;
961
+ return conditions.every(function(condition) {
962
+ var fieldValue = document2[condition.field_name];
963
+ switch(condition.operator){
964
+ case "==":
965
+ return fieldValue === condition.value;
966
+ case "!=":
967
+ return fieldValue !== condition.value;
968
+ case "<":
969
+ return fieldValue < condition.value;
970
+ case "<=":
971
+ return fieldValue <= condition.value;
972
+ case ">":
973
+ return fieldValue > condition.value;
974
+ case ">=":
975
+ return fieldValue >= condition.value;
976
+ case "array-contains":
977
+ return Array.isArray(fieldValue) && fieldValue.includes(condition.value);
978
+ default:
979
+ return false;
980
+ }
981
+ });
982
+ };
983
+ var cleanNxSites = /*#__PURE__*/ function() {
984
+ var _ref = _async_to_generator(function() {
985
+ var clients, sites, allSitesToDelete;
986
+ return _ts_generator(this, function(_state) {
987
+ switch(_state.label){
988
+ case 0:
989
+ return [
990
+ 4,
991
+ get_all_documents("nx-clients")
992
+ ];
993
+ case 1:
994
+ clients = _state.sent().map(function(v) {
995
+ return v.id;
996
+ });
997
+ return [
998
+ 4,
999
+ get_all_documents("nx-sites")
1000
+ ];
1001
+ case 2:
1002
+ sites = _state.sent();
1003
+ allSitesToDelete = sites.filter(function(v) {
1004
+ return !clients.includes(v.client);
1005
+ });
1006
+ console.log("allSitesToDelete", allSitesToDelete);
1007
+ allSitesToDelete.forEach(/*#__PURE__*/ function() {
1008
+ var _ref = _async_to_generator(function(v) {
1009
+ return _ts_generator(this, function(_state) {
1010
+ switch(_state.label){
1011
+ case 0:
1012
+ return [
1013
+ 4,
1014
+ delete_document("nx-sites", v.id)
1015
+ ];
1016
+ case 1:
1017
+ _state.sent();
1018
+ console.log("Site ".concat(v.id, " deleted."));
1019
+ return [
1020
+ 2
1021
+ ];
1022
+ }
1023
+ });
1024
+ });
1025
+ return function(v) {
1026
+ return _ref.apply(this, arguments);
1027
+ };
1028
+ }());
1029
+ return [
1030
+ 2
1031
+ ];
1032
+ }
1033
+ });
1034
+ });
1035
+ return function cleanNxSites() {
1036
+ return _ref.apply(this, arguments);
1037
+ };
1038
+ }();
1039
+ // src/helpers/global.ts
1040
+ import { CountryOptions } from "akeyless-types-commons";
1041
+ import axios from "axios";
1042
+ // src/helpers/phoneNumber.ts
1043
+ import { parsePhoneNumberFromString } from "libphonenumber-js";
1044
+ var isInternational = function(phone_number) {
1045
+ return phone_number.startsWith("+");
1046
+ };
1047
+ var isInternationalIsraelPhone = function(phone_number) {
1048
+ return phone_number.startsWith("+9725");
1049
+ };
1050
+ var local_israel_phone_format = function(international_number) {
1051
+ return international_number.replace("+972", "0");
1052
+ };
1053
+ var international_israel_phone_format = function(phone) {
1054
+ var validNumber = phone.slice(1, phone.length);
1055
+ return "+972".concat(validNumber);
1056
+ };
1057
+ var displayFormatPhoneNumber = function(phoneNumber) {
1058
+ if (isInternational(phoneNumber)) {
1059
+ var phoneNumberObject = parsePhoneNumberFromString(phoneNumber);
1060
+ if (!phoneNumberObject) {
1061
+ return phoneNumber;
1062
+ }
1063
+ return phoneNumberObject.formatInternational().replace(/\s/g, "");
1064
+ }
1065
+ return phoneNumber.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");
1066
+ };
1067
+ var is_iccid = function(number) {
1068
+ if (number.length < 19 || number.length > 22) return false;
1069
+ if (!/^\d+$/.test(number)) return false;
1070
+ if (!number.startsWith("89")) return false;
1071
+ return true;
1072
+ };
1073
+ // src/helpers/global.ts
1074
+ import { isEqual } from "lodash";
1075
+ var calculateBearing = function(startLat, startLng, endLat, endLng) {
1076
+ if (startLat === endLat || startLng === endLng) {
1077
+ return 0;
1078
+ }
1079
+ if (startLat === void 0 || startLng === void 0 || endLat === void 0 || endLng === void 0) {
1080
+ return 0;
1081
+ }
1082
+ var startLatRad = startLat * Math.PI / 180;
1083
+ var startLngRad = startLng * Math.PI / 180;
1084
+ var endLatRad = endLat * Math.PI / 180;
1085
+ var endLngRad = endLng * Math.PI / 180;
1086
+ var dLon = endLngRad - startLngRad;
1087
+ var y = Math.sin(dLon) * Math.cos(endLatRad);
1088
+ var x = Math.cos(startLatRad) * Math.sin(endLatRad) - Math.sin(startLatRad) * Math.cos(endLatRad) * Math.cos(dLon);
1089
+ var bearing = Math.atan2(y, x) * 180 / Math.PI;
1090
+ return (bearing + 360) % 360;
1091
+ };
1092
+ var renderOnce = function() {
1093
+ return true;
1094
+ };
1095
+ var propsAreEqual = function(prevProps, nextProps) {
1096
+ return isEqual(prevProps, nextProps);
1097
+ };
1098
+ var getUserCountryByIp = /*#__PURE__*/ function() {
1099
+ var _ref = _async_to_generator(function() {
1100
+ var response, error;
1101
+ return _ts_generator(this, function(_state) {
1102
+ switch(_state.label){
1103
+ case 0:
1104
+ _state.trys.push([
1105
+ 0,
1106
+ 2,
1107
+ ,
1108
+ 3
1109
+ ]);
1110
+ return [
1111
+ 4,
1112
+ axios.get("https://ipapi.co/json/")
1113
+ ];
1114
+ case 1:
1115
+ response = _state.sent();
1116
+ return [
1117
+ 2,
1118
+ (response.data.country_code || CountryOptions.IL).toLowerCase()
1119
+ ];
1120
+ case 2:
1121
+ error = _state.sent();
1122
+ console.error("Error fetching Country:", error);
1123
+ return [
1124
+ 2,
1125
+ CountryOptions.IL
1126
+ ];
1127
+ case 3:
1128
+ return [
1129
+ 2
1130
+ ];
1131
+ }
1132
+ });
1133
+ });
1134
+ return function getUserCountryByIp() {
1135
+ return _ref.apply(this, arguments);
1136
+ };
1137
+ }();
1138
+ var parsePermissions = function(object) {
1139
+ if (!(object === null || object === void 0 ? void 0 : object.features)) {
1140
+ return {};
1141
+ }
1142
+ var features = object.features;
1143
+ var result = {};
1144
+ features.forEach(function(feature) {
1145
+ if (!feature.includes("__")) {
1146
+ return;
1147
+ }
1148
+ var _feature_split = _sliced_to_array(feature.split("__"), 2), featureType = _feature_split[0], featureName = _feature_split[1];
1149
+ if (!featureType || !featureName) {
1150
+ return;
1151
+ }
1152
+ if (!result[featureType]) {
1153
+ result[featureType] = {};
1154
+ }
1155
+ result[featureType][featureName] = true;
1156
+ });
1157
+ return result;
1158
+ };
1159
+ var initializeUserPermissions = /*#__PURE__*/ function() {
1160
+ var _ref = _async_to_generator(function(param) {
1161
+ var phoneNumber, firstTimeArray, getUpdatePermissions, unsubscribe, permissions, _snapshot, promise, unsubscribeSnapshot, error;
1162
+ return _ts_generator(this, function(_state) {
1163
+ switch(_state.label){
1164
+ case 0:
1165
+ phoneNumber = param.phoneNumber, firstTimeArray = param.firstTimeArray, getUpdatePermissions = param.getUpdatePermissions;
1166
+ unsubscribe = null;
1167
+ permissions = {};
1168
+ _state.label = 1;
1169
+ case 1:
1170
+ _state.trys.push([
1171
+ 1,
1172
+ 3,
1173
+ ,
1174
+ 4
1175
+ ]);
1176
+ _snapshot = snapshot({
1177
+ collectionName: "nx-users",
1178
+ conditions: [
1179
+ {
1180
+ field_name: "phone_number",
1181
+ operator: "in",
1182
+ value: [
1183
+ phoneNumber,
1184
+ local_israel_phone_format(phoneNumber)
1185
+ ]
1186
+ }
1187
+ ],
1188
+ onFirstTime: function(docs) {
1189
+ if (!docs.length) {
1190
+ throw new Error("User not found");
1191
+ }
1192
+ permissions = parsePermissions(docs[0]);
1193
+ getUpdatePermissions(parsePermissions(docs[0]));
1194
+ },
1195
+ onModify: function(docs) {
1196
+ getUpdatePermissions(parsePermissions(docs[0]));
1197
+ }
1198
+ }, firstTimeArray), promise = _snapshot.promise, unsubscribeSnapshot = _snapshot.unsubscribe;
1199
+ unsubscribe = unsubscribeSnapshot;
1200
+ return [
1201
+ 4,
1202
+ promise
1203
+ ];
1204
+ case 2:
1205
+ _state.sent();
1206
+ return [
1207
+ 2,
1208
+ {
1209
+ unsubscribe: unsubscribe,
1210
+ permissions: permissions
1211
+ }
1212
+ ];
1213
+ case 3:
1214
+ error = _state.sent();
1215
+ if (unsubscribe) {
1216
+ unsubscribe();
1217
+ }
1218
+ console.error("Error initializing user permissions:", error.message);
1219
+ throw error;
1220
+ case 4:
1221
+ return [
1222
+ 2
1223
+ ];
1224
+ }
1225
+ });
1226
+ });
1227
+ return function initializeUserPermissions(_) {
1228
+ return _ref.apply(this, arguments);
1229
+ };
1230
+ }();
1231
+ var userNameFormat = function(user) {
1232
+ return "".concat((user === null || user === void 0 ? void 0 : user.first_name) || "", " ").concat((user === null || user === void 0 ? void 0 : user.last_name) || "").trim();
1233
+ };
1234
+ var multiStringFormat = function(str1, str2, str3) {
1235
+ return "".concat(str1, " ").concat(str2 || "", " ").concat(str3 || "").trim();
1236
+ };
1237
+ var getLocationUrl = function(lang, lat) {
1238
+ return "https://www.google.com/maps?q=".concat(lang, ",").concat(lat);
1239
+ };
1240
+ var isNodeEnv = typeof process !== "undefined" && process.env;
1241
+ var _ref = {
1242
+ mode: isNodeEnv ? process.env.NEXT_PUBLIC_MODE : import.meta.env.VITE_MODE,
1243
+ isLocal: (isNodeEnv ? process.env.NEXT_PUBLIC_IS_LOCAL : import.meta.env.VITE_is_local) === "true"
1244
+ }, mode = _ref.mode, isLocal = _ref.isLocal;
1245
+ // src/helpers/forms.ts
1246
+ import XRegExp from "xregexp";
1247
+ var textRegex = XRegExp("[^\\p{L}\\s-]", "gu");
1248
+ var numbersRegex = XRegExp("[^0-9\\s-+]", "g");
1249
+ var numbersOnlyRegex = XRegExp("[^0-9]", "g");
1250
+ var priceRegex = XRegExp("[^0-9.]", "g");
1251
+ var emailRegex = XRegExp("[^\\p{L}0-9.@\\s-]", "gu");
1252
+ var colorRegex = XRegExp("[^#0-9A-Fa-f]", "g");
1253
+ var carsRegex = XRegExp("[^\\p{L}0-9,_]", "gu");
1254
+ var textNumbersRegex = XRegExp("[^\\p{L}0-9\\s+\\-]", "gu");
1255
+ var addressRegex = XRegExp("[^\\p{L}0-9\\s.,+-\\-]", "gu");
1256
+ var chartsRegex = XRegExp("[^\\p{L}0-9\\s.,_@!+-\\-]", "gu");
1257
+ var handleChange = function(e) {
1258
+ e.target.setCustomValidity("");
1259
+ var validation = e.target.getAttribute("data-validation");
1260
+ if (validation === "text") {
1261
+ e.target.value = XRegExp.replace(e.target.value, textRegex, "");
1262
+ } else if (validation === "numbers") {
1263
+ e.target.value = XRegExp.replace(e.target.value, numbersRegex, "");
1264
+ } else if (validation === "numbersOnly") {
1265
+ e.target.value = XRegExp.replace(e.target.value, numbersOnlyRegex, "");
1266
+ } else if (validation === "price") {
1267
+ e.target.value = XRegExp.replace(e.target.value, priceRegex, "");
1268
+ } else if (validation === "textNumbers") {
1269
+ e.target.value = XRegExp.replace(e.target.value, textNumbersRegex, "");
1270
+ } else if (validation === "email") {
1271
+ e.target.value = XRegExp.replace(e.target.value, emailRegex, "");
1272
+ } else if (validation === "color") {
1273
+ e.target.value = XRegExp.replace(e.target.value, colorRegex, "");
1274
+ } else if (validation === "address") {
1275
+ e.target.value = XRegExp.replace(e.target.value, addressRegex, "");
1276
+ } else if (validation === "cars") {
1277
+ e.target.value = XRegExp.replace(e.target.value, carsRegex, "");
1278
+ } else if (validation === "charts") {
1279
+ e.target.value = XRegExp.replace(e.target.value, chartsRegex, "");
1280
+ }
1281
+ };
1282
+ var handlePaste = function(e) {
1283
+ var validation = e.currentTarget.getAttribute("data-validation");
1284
+ var pasteData = e.clipboardData.getData("text");
1285
+ if (validation === "text") {
1286
+ pasteData = XRegExp.replace(pasteData, textRegex, "");
1287
+ } else if (validation === "numbers") {
1288
+ pasteData = XRegExp.replace(pasteData, numbersRegex, "");
1289
+ } else if (validation === "numbersOnly") {
1290
+ pasteData = XRegExp.replace(pasteData, numbersOnlyRegex, "");
1291
+ } else if (validation === "price") {
1292
+ pasteData = XRegExp.replace(pasteData, priceRegex, "");
1293
+ } else if (validation === "textNumbers") {
1294
+ pasteData = XRegExp.replace(pasteData, textNumbersRegex, "");
1295
+ } else if (validation === "email") {
1296
+ pasteData = XRegExp.replace(pasteData, emailRegex, "");
1297
+ } else if (validation === "color") {
1298
+ pasteData = XRegExp.replace(pasteData, colorRegex, "");
1299
+ } else if (validation === "address") {
1300
+ pasteData = XRegExp.replace(pasteData, addressRegex, "");
1301
+ } else if (validation === "cars") {
1302
+ pasteData = XRegExp.replace(pasteData, carsRegex, "");
1303
+ } else if (validation === "charts") {
1304
+ pasteData = XRegExp.replace(pasteData, chartsRegex, "");
1305
+ }
1306
+ e.preventDefault();
1307
+ document.execCommand("insertText", false, pasteData);
1308
+ };
1309
+ var handleInvalid = function(e, requireError) {
1310
+ e.target.setCustomValidity(requireError || "This filed is required !");
1311
+ };
1312
+ var useValidation = function(validationType, requireError) {
1313
+ return {
1314
+ onChange: handleChange,
1315
+ onPaste: handlePaste,
1316
+ onInvalid: function(e) {
1317
+ return handleInvalid(e, requireError);
1318
+ },
1319
+ "data-validation": validationType
1320
+ };
1321
+ };
1322
+ var getFormElementValue = function(form, name) {
1323
+ var _form_elements_namedItem;
1324
+ return ((_form_elements_namedItem = form.elements.namedItem(name)) === null || _form_elements_namedItem === void 0 ? void 0 : _form_elements_namedItem.value) || "";
1325
+ };
1326
+ var parseMultiSelectInput = function(input) {
1327
+ var value = JSON.parse(input) || [];
1328
+ return value.map(function(v) {
1329
+ return v.value;
1330
+ });
1331
+ };
1332
+ // src/helpers/store.ts
1333
+ var setState = function(updater, set, stateName) {
1334
+ return set(function(state) {
1335
+ return _define_property({}, stateName, typeof updater === "function" ? updater(state[stateName]) : updater);
1336
+ });
1337
+ };
1338
+ var createSelectors = function(store) {
1339
+ var selectors = {};
1340
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1341
+ try {
1342
+ var _loop = function() {
1343
+ var k = _step.value;
1344
+ selectors[k] = function() {
1345
+ return store(function(s) {
1346
+ return s[k];
1347
+ });
1348
+ };
1349
+ };
1350
+ for(var _iterator = Object.keys(store.getState())[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
1351
+ } catch (err) {
1352
+ _didIteratorError = true;
1353
+ _iteratorError = err;
1354
+ } finally{
1355
+ try {
1356
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1357
+ _iterator.return();
1358
+ }
1359
+ } finally{
1360
+ if (_didIteratorError) {
1361
+ throw _iteratorError;
1362
+ }
1363
+ }
1364
+ }
1365
+ return selectors;
1366
+ };
1367
+ var useStoreValues = function(store, keys) {
1368
+ var result = {};
1369
+ keys.forEach(function(key) {
1370
+ result[key] = store.use[key]();
1371
+ });
1372
+ return result;
1373
+ };
1374
+ // src/lib/utils.ts
1375
+ import { clsx } from "clsx";
1376
+ import { twMerge } from "tailwind-merge";
1377
+ function cn() {
1378
+ for(var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++){
1379
+ inputs[_key] = arguments[_key];
1380
+ }
1381
+ return twMerge(clsx(inputs));
1382
+ }
1383
+ // src/helpers/time_helpers.ts
1384
+ import { Timestamp as Timestamp2 } from "firebase/firestore";
1385
+ import moment2 from "moment-timezone";
1386
+ function timestamp_to_string(firebaseTimestamp, options) {
1387
+ var date;
1388
+ if (_instanceof(firebaseTimestamp, Timestamp2)) {
1389
+ date = firebaseTimestamp.toDate();
1390
+ } else if (_instanceof(firebaseTimestamp, Date)) {
1391
+ date = firebaseTimestamp;
1392
+ } else if (typeof firebaseTimestamp === "string") {
1393
+ date = moment2.utc(firebaseTimestamp, (options === null || options === void 0 ? void 0 : options.fromFormat) || "DD/MM/YYYY HH:mm:ss").toDate();
1394
+ if (isNaN(date.getTime())) {
1395
+ throw new Error("Invalid date string format");
1396
+ }
1397
+ } else {
1398
+ throw new Error("Invalid input: firebaseTimestamp must be a Timestamp, Date, or valid date string.");
1399
+ }
1400
+ if (options === null || options === void 0 ? void 0 : options.tz) {
1401
+ var result = moment2(date).tz(options === null || options === void 0 ? void 0 : options.tz).format((options === null || options === void 0 ? void 0 : options.format) || "DD/MM/YYYY HH:mm:ss");
1402
+ return result;
1403
+ }
1404
+ return moment2.utc(date).format((options === null || options === void 0 ? void 0 : options.format) || "DD/MM/YYYY HH:mm:ss");
1405
+ }
1406
+ function timestamp_to_millis(firebaseTimestamp) {
1407
+ var timestamp = new Timestamp2(firebaseTimestamp === null || firebaseTimestamp === void 0 ? void 0 : firebaseTimestamp.seconds, firebaseTimestamp === null || firebaseTimestamp === void 0 ? void 0 : firebaseTimestamp.nanoseconds);
1408
+ return timestamp.toMillis();
1409
+ }
1410
+ function sort_by_timestamp(a, b) {
1411
+ var reverse = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
1412
+ return reverse ? timestamp_to_millis(b) - timestamp_to_millis(a) : timestamp_to_millis(a) - timestamp_to_millis(b);
1413
+ }
1414
+ // src/helpers/api.ts
1415
+ import axios2 from "axios";
1416
+ var baseDomain = mode === "qa" ? "https://nx-api.xyz/api" : "https://nx-api.info/api";
1417
+ var devicesDomain = isLocal ? "http://localhost:9001/api/devices" : baseDomain + "/devices";
1418
+ var biDomain = isLocal ? "http://localhost:9002/api/bi" : baseDomain + "/bi";
1419
+ var callCenterDomain = isLocal ? "http://localhost:9003/api/call-center" : baseDomain + "/call-center";
1420
+ var akeylessOnlineDomain = mode === "qa" ? "https://akeyless-online.xyz" : "https://akeyless-online.info";
1421
+ var nx_api_call = /*#__PURE__*/ function() {
1422
+ var _ref = _async_to_generator(function(serverName, method, url, data) {
1423
+ var urlResult, headers, _tmp, _, response, error, _error_response;
1424
+ return _ts_generator(this, function(_state) {
1425
+ switch(_state.label){
1426
+ case 0:
1427
+ _state.trys.push([
1428
+ 0,
1429
+ 3,
1430
+ ,
1431
+ 4
1432
+ ]);
1433
+ urlResult = "".concat(devicesDomain, "/").concat(url);
1434
+ switch(serverName){
1435
+ case "bi":
1436
+ urlResult = "".concat(biDomain, "/").concat(url);
1437
+ break;
1438
+ case "devices":
1439
+ urlResult = "".concat(devicesDomain, "/").concat(url);
1440
+ break;
1441
+ case "call-center":
1442
+ urlResult = "".concat(callCenterDomain, "/").concat(url);
1443
+ break;
1444
+ default:
1445
+ break;
1446
+ }
1447
+ _tmp = {};
1448
+ _ = "bearer ";
1449
+ return [
1450
+ 4,
1451
+ auth.currentUser.getIdToken()
1452
+ ];
1453
+ case 1:
1454
+ headers = (_tmp.authorization = _ + _state.sent(), _tmp);
1455
+ return [
1456
+ 4,
1457
+ axios2({
1458
+ method: method,
1459
+ url: urlResult,
1460
+ headers: headers,
1461
+ data: data
1462
+ })
1463
+ ];
1464
+ case 2:
1465
+ response = _state.sent();
1466
+ return [
1467
+ 2,
1468
+ response.data || null
1469
+ ];
1470
+ case 3:
1471
+ error = _state.sent();
1472
+ console.error("Error from nx_api_call: ".concat(JSON.stringify({
1473
+ serverName: serverName,
1474
+ method: method,
1475
+ url: url,
1476
+ data: data
1477
+ })), (error === null || error === void 0 ? void 0 : (_error_response = error.response) === null || _error_response === void 0 ? void 0 : _error_response.data) || error);
1478
+ return [
1479
+ 2,
1480
+ null
1481
+ ];
1482
+ case 4:
1483
+ return [
1484
+ 2
1485
+ ];
1486
+ }
1487
+ });
1488
+ });
1489
+ return function nx_api_call(serverName, method, url, data) {
1490
+ return _ref.apply(this, arguments);
1491
+ };
1492
+ }();
1493
+ export { add_document, addressRegex, akeylessOnlineDomain, auth, baseDomain, biDomain, calculateBearing, callCenterDomain, carsRegex, chartsRegex, cleanNxSites, cn, collections, colorRegex, createSelectors, db, delete_document, devicesDomain, displayFormatPhoneNumber, emailRegex, extractAlertsData, extractBoardsData, extractCanbusData, extractCarsData, extractClientData, extractLocationData, extractSiteData, fire_base_TIME_TEMP, formatCarNumber, getFormElementValue, getLocationUrl, getUserCountryByIp, get_all_documents, get_document_by_id, handleChange, handleInvalid, handlePaste, initializeUserPermissions, international_israel_phone_format, isInternational, isInternationalIsraelPhone, isLocal, isNodeEnv, is_iccid, local_israel_phone_format, mode, multiStringFormat, numbersOnlyRegex, numbersRegex, nx_api_call, parseMultiSelectInput, parsePermissions, priceRegex, propsAreEqual, query_document, query_document_by_conditions, query_documents, query_documents_by_conditions, renderOnce, setState, set_document, simpleExtractData, snapshot, snapshotDocument, sort_by_timestamp, storage, textNumbersRegex, textRegex, timestamp_to_millis, timestamp_to_string, useStoreValues, useValidation, userNameFormat };
1494
+ //# sourceMappingURL=index.mjs.map