akeyless-client-commons 1.0.62 → 1.0.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers/index.d.mts +13 -2
- package/dist/helpers/index.d.ts +13 -2
- package/dist/helpers/index.js +95 -0
- package/dist/helpers/index.mjs +88 -1
- package/package.json +2 -1
package/dist/helpers/index.d.mts
CHANGED
|
@@ -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, Timestamp, DocumentSnapshot, DocumentData, CollectionReference } from 'firebase/firestore';
|
|
6
|
-
import { TObject,
|
|
6
|
+
import { TObject, NxUser, CountryOptions, Client } from 'akeyless-types-commons';
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { ClassValue } from 'clsx';
|
|
9
9
|
|
|
@@ -131,6 +131,17 @@ declare const cleanNxSites: () => Promise<void>;
|
|
|
131
131
|
declare const getUserByPhone: (phone: string) => Promise<TObject<any>>;
|
|
132
132
|
declare const getUserByEmail: (email: string) => Promise<TObject<any>>;
|
|
133
133
|
declare const getUserByIdentifier: (identifier: string) => Promise<TObject<any>>;
|
|
134
|
+
declare const addLoginAudit: (user: any, app: "installer" | "toolbox" | "dashboard", loginBy: "email" | "phone") => Promise<void>;
|
|
135
|
+
declare const addAuditRecord: (action: string, entity: string, details: TObject<any>, user?: NxUser | null) => Promise<{
|
|
136
|
+
action: string;
|
|
137
|
+
entity: string;
|
|
138
|
+
details: TObject<any>;
|
|
139
|
+
user: {
|
|
140
|
+
id: string;
|
|
141
|
+
name: string;
|
|
142
|
+
clients: string[];
|
|
143
|
+
};
|
|
144
|
+
}>;
|
|
134
145
|
|
|
135
146
|
declare const calculateBearing: (startLat: any, startLng: any, endLat: any, endLng: any) => number;
|
|
136
147
|
declare const renderOnce: () => boolean;
|
|
@@ -214,4 +225,4 @@ type Method = "GET" | "POST" | "PUT" | "DELETE";
|
|
|
214
225
|
type ServerName = "devices" | "bi" | "call-center";
|
|
215
226
|
declare const nx_api_call: (serverName: ServerName, method: Method, url: string, data?: TObject<any>) => Promise<any>;
|
|
216
227
|
|
|
217
|
-
export { type ValidationType, add_document, addressRegex, akeylessOnlineDomain, app, appCheck, 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, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, googleLoginProvider, 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, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat };
|
|
228
|
+
export { type ValidationType, addAuditRecord, addLoginAudit, add_document, addressRegex, akeylessOnlineDomain, app, appCheck, 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, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, googleLoginProvider, 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, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat };
|
package/dist/helpers/index.d.ts
CHANGED
|
@@ -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, Timestamp, DocumentSnapshot, DocumentData, CollectionReference } from 'firebase/firestore';
|
|
6
|
-
import { TObject,
|
|
6
|
+
import { TObject, NxUser, CountryOptions, Client } from 'akeyless-types-commons';
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { ClassValue } from 'clsx';
|
|
9
9
|
|
|
@@ -131,6 +131,17 @@ declare const cleanNxSites: () => Promise<void>;
|
|
|
131
131
|
declare const getUserByPhone: (phone: string) => Promise<TObject<any>>;
|
|
132
132
|
declare const getUserByEmail: (email: string) => Promise<TObject<any>>;
|
|
133
133
|
declare const getUserByIdentifier: (identifier: string) => Promise<TObject<any>>;
|
|
134
|
+
declare const addLoginAudit: (user: any, app: "installer" | "toolbox" | "dashboard", loginBy: "email" | "phone") => Promise<void>;
|
|
135
|
+
declare const addAuditRecord: (action: string, entity: string, details: TObject<any>, user?: NxUser | null) => Promise<{
|
|
136
|
+
action: string;
|
|
137
|
+
entity: string;
|
|
138
|
+
details: TObject<any>;
|
|
139
|
+
user: {
|
|
140
|
+
id: string;
|
|
141
|
+
name: string;
|
|
142
|
+
clients: string[];
|
|
143
|
+
};
|
|
144
|
+
}>;
|
|
134
145
|
|
|
135
146
|
declare const calculateBearing: (startLat: any, startLng: any, endLat: any, endLng: any) => number;
|
|
136
147
|
declare const renderOnce: () => boolean;
|
|
@@ -214,4 +225,4 @@ type Method = "GET" | "POST" | "PUT" | "DELETE";
|
|
|
214
225
|
type ServerName = "devices" | "bi" | "call-center";
|
|
215
226
|
declare const nx_api_call: (serverName: ServerName, method: Method, url: string, data?: TObject<any>) => Promise<any>;
|
|
216
227
|
|
|
217
|
-
export { type ValidationType, add_document, addressRegex, akeylessOnlineDomain, app, appCheck, 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, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, googleLoginProvider, 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, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat };
|
|
228
|
+
export { type ValidationType, addAuditRecord, addLoginAudit, add_document, addressRegex, akeylessOnlineDomain, app, appCheck, 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, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, googleLoginProvider, 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, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat };
|
package/dist/helpers/index.js
CHANGED
|
@@ -293,6 +293,12 @@ var __toCommonJS = function(mod) {
|
|
|
293
293
|
// src/helpers/index.ts
|
|
294
294
|
var helpers_exports = {};
|
|
295
295
|
__export(helpers_exports, {
|
|
296
|
+
addAuditRecord: function() {
|
|
297
|
+
return addAuditRecord;
|
|
298
|
+
},
|
|
299
|
+
addLoginAudit: function() {
|
|
300
|
+
return addLoginAudit;
|
|
301
|
+
},
|
|
296
302
|
add_document: function() {
|
|
297
303
|
return add_document;
|
|
298
304
|
},
|
|
@@ -1498,6 +1504,93 @@ var getUserByIdentifier = /*#__PURE__*/ function() {
|
|
|
1498
1504
|
return _ref.apply(this, arguments);
|
|
1499
1505
|
};
|
|
1500
1506
|
}();
|
|
1507
|
+
var addLoginAudit = /*#__PURE__*/ function() {
|
|
1508
|
+
var _ref = _async_to_generator(function(user, app2, loginBy) {
|
|
1509
|
+
var details;
|
|
1510
|
+
return _ts_generator(this, function(_state) {
|
|
1511
|
+
switch(_state.label){
|
|
1512
|
+
case 0:
|
|
1513
|
+
details = {
|
|
1514
|
+
app: app2,
|
|
1515
|
+
login_by: loginBy
|
|
1516
|
+
};
|
|
1517
|
+
return [
|
|
1518
|
+
4,
|
|
1519
|
+
set_document("nx-users", user.id, {
|
|
1520
|
+
last_login: fire_base_TIME_TEMP()
|
|
1521
|
+
})
|
|
1522
|
+
];
|
|
1523
|
+
case 1:
|
|
1524
|
+
_state.sent();
|
|
1525
|
+
return [
|
|
1526
|
+
4,
|
|
1527
|
+
addAuditRecord("login", app2, details, user)
|
|
1528
|
+
];
|
|
1529
|
+
case 2:
|
|
1530
|
+
_state.sent();
|
|
1531
|
+
return [
|
|
1532
|
+
2
|
|
1533
|
+
];
|
|
1534
|
+
}
|
|
1535
|
+
});
|
|
1536
|
+
});
|
|
1537
|
+
return function addLoginAudit(user, app2, loginBy) {
|
|
1538
|
+
return _ref.apply(this, arguments);
|
|
1539
|
+
};
|
|
1540
|
+
}();
|
|
1541
|
+
var addAuditRecord = /*#__PURE__*/ function() {
|
|
1542
|
+
var _ref = _async_to_generator(function(action, entity, details, user) {
|
|
1543
|
+
var ref, data, error;
|
|
1544
|
+
return _ts_generator(this, function(_state) {
|
|
1545
|
+
switch(_state.label){
|
|
1546
|
+
case 0:
|
|
1547
|
+
_state.trys.push([
|
|
1548
|
+
0,
|
|
1549
|
+
2,
|
|
1550
|
+
,
|
|
1551
|
+
3
|
|
1552
|
+
]);
|
|
1553
|
+
ref = (0, import_firestore.doc)(collections.audit);
|
|
1554
|
+
data = {
|
|
1555
|
+
action: action,
|
|
1556
|
+
entity: entity,
|
|
1557
|
+
details: details,
|
|
1558
|
+
user: user ? {
|
|
1559
|
+
id: user.id,
|
|
1560
|
+
name: "".concat(user.first_name || "", " ").concat(user.last_name || "").trim(),
|
|
1561
|
+
clients: user.clients
|
|
1562
|
+
} : null
|
|
1563
|
+
};
|
|
1564
|
+
return [
|
|
1565
|
+
4,
|
|
1566
|
+
(0, import_firestore.setDoc)(ref, _object_spread_props(_object_spread({}, data), {
|
|
1567
|
+
datetime: fire_base_TIME_TEMP()
|
|
1568
|
+
}))
|
|
1569
|
+
];
|
|
1570
|
+
case 1:
|
|
1571
|
+
_state.sent();
|
|
1572
|
+
return [
|
|
1573
|
+
2,
|
|
1574
|
+
data
|
|
1575
|
+
];
|
|
1576
|
+
case 2:
|
|
1577
|
+
error = _state.sent();
|
|
1578
|
+
console.log(error);
|
|
1579
|
+
return [
|
|
1580
|
+
3,
|
|
1581
|
+
3
|
|
1582
|
+
];
|
|
1583
|
+
case 3:
|
|
1584
|
+
return [
|
|
1585
|
+
2
|
|
1586
|
+
];
|
|
1587
|
+
}
|
|
1588
|
+
});
|
|
1589
|
+
});
|
|
1590
|
+
return function addAuditRecord(action, entity, details, user) {
|
|
1591
|
+
return _ref.apply(this, arguments);
|
|
1592
|
+
};
|
|
1593
|
+
}();
|
|
1501
1594
|
// src/helpers/global.ts
|
|
1502
1595
|
var import_akeyless_types_commons = require("akeyless-types-commons");
|
|
1503
1596
|
var import_axios = __toESM(require("axios"));
|
|
@@ -1929,6 +2022,8 @@ var nx_api_call = /*#__PURE__*/ function() {
|
|
|
1929
2022
|
}();
|
|
1930
2023
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1931
2024
|
0 && (module.exports = {
|
|
2025
|
+
addAuditRecord: addAuditRecord,
|
|
2026
|
+
addLoginAudit: addLoginAudit,
|
|
1932
2027
|
add_document: add_document,
|
|
1933
2028
|
addressRegex: addressRegex,
|
|
1934
2029
|
akeylessOnlineDomain: akeylessOnlineDomain,
|
package/dist/helpers/index.mjs
CHANGED
|
@@ -1189,6 +1189,93 @@ var getUserByIdentifier = /*#__PURE__*/ function() {
|
|
|
1189
1189
|
return _ref.apply(this, arguments);
|
|
1190
1190
|
};
|
|
1191
1191
|
}();
|
|
1192
|
+
var addLoginAudit = /*#__PURE__*/ function() {
|
|
1193
|
+
var _ref = _async_to_generator(function(user, app2, loginBy) {
|
|
1194
|
+
var details;
|
|
1195
|
+
return _ts_generator(this, function(_state) {
|
|
1196
|
+
switch(_state.label){
|
|
1197
|
+
case 0:
|
|
1198
|
+
details = {
|
|
1199
|
+
app: app2,
|
|
1200
|
+
login_by: loginBy
|
|
1201
|
+
};
|
|
1202
|
+
return [
|
|
1203
|
+
4,
|
|
1204
|
+
set_document("nx-users", user.id, {
|
|
1205
|
+
last_login: fire_base_TIME_TEMP()
|
|
1206
|
+
})
|
|
1207
|
+
];
|
|
1208
|
+
case 1:
|
|
1209
|
+
_state.sent();
|
|
1210
|
+
return [
|
|
1211
|
+
4,
|
|
1212
|
+
addAuditRecord("login", app2, details, user)
|
|
1213
|
+
];
|
|
1214
|
+
case 2:
|
|
1215
|
+
_state.sent();
|
|
1216
|
+
return [
|
|
1217
|
+
2
|
|
1218
|
+
];
|
|
1219
|
+
}
|
|
1220
|
+
});
|
|
1221
|
+
});
|
|
1222
|
+
return function addLoginAudit(user, app2, loginBy) {
|
|
1223
|
+
return _ref.apply(this, arguments);
|
|
1224
|
+
};
|
|
1225
|
+
}();
|
|
1226
|
+
var addAuditRecord = /*#__PURE__*/ function() {
|
|
1227
|
+
var _ref = _async_to_generator(function(action, entity, details, user) {
|
|
1228
|
+
var ref, data, error;
|
|
1229
|
+
return _ts_generator(this, function(_state) {
|
|
1230
|
+
switch(_state.label){
|
|
1231
|
+
case 0:
|
|
1232
|
+
_state.trys.push([
|
|
1233
|
+
0,
|
|
1234
|
+
2,
|
|
1235
|
+
,
|
|
1236
|
+
3
|
|
1237
|
+
]);
|
|
1238
|
+
ref = doc(collections.audit);
|
|
1239
|
+
data = {
|
|
1240
|
+
action: action,
|
|
1241
|
+
entity: entity,
|
|
1242
|
+
details: details,
|
|
1243
|
+
user: user ? {
|
|
1244
|
+
id: user.id,
|
|
1245
|
+
name: "".concat(user.first_name || "", " ").concat(user.last_name || "").trim(),
|
|
1246
|
+
clients: user.clients
|
|
1247
|
+
} : null
|
|
1248
|
+
};
|
|
1249
|
+
return [
|
|
1250
|
+
4,
|
|
1251
|
+
setDoc(ref, _object_spread_props(_object_spread({}, data), {
|
|
1252
|
+
datetime: fire_base_TIME_TEMP()
|
|
1253
|
+
}))
|
|
1254
|
+
];
|
|
1255
|
+
case 1:
|
|
1256
|
+
_state.sent();
|
|
1257
|
+
return [
|
|
1258
|
+
2,
|
|
1259
|
+
data
|
|
1260
|
+
];
|
|
1261
|
+
case 2:
|
|
1262
|
+
error = _state.sent();
|
|
1263
|
+
console.log(error);
|
|
1264
|
+
return [
|
|
1265
|
+
3,
|
|
1266
|
+
3
|
|
1267
|
+
];
|
|
1268
|
+
case 3:
|
|
1269
|
+
return [
|
|
1270
|
+
2
|
|
1271
|
+
];
|
|
1272
|
+
}
|
|
1273
|
+
});
|
|
1274
|
+
});
|
|
1275
|
+
return function addAuditRecord(action, entity, details, user) {
|
|
1276
|
+
return _ref.apply(this, arguments);
|
|
1277
|
+
};
|
|
1278
|
+
}();
|
|
1192
1279
|
// src/helpers/global.ts
|
|
1193
1280
|
import { CountryOptions } from "akeyless-types-commons";
|
|
1194
1281
|
import axios from "axios";
|
|
@@ -1617,5 +1704,5 @@ var nx_api_call = /*#__PURE__*/ function() {
|
|
|
1617
1704
|
return _ref.apply(this, arguments);
|
|
1618
1705
|
};
|
|
1619
1706
|
}();
|
|
1620
|
-
export { add_document, addressRegex, akeylessOnlineDomain, app, appCheck, 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, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, googleLoginProvider, 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, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat };
|
|
1707
|
+
export { addAuditRecord, addLoginAudit, add_document, addressRegex, akeylessOnlineDomain, app, appCheck, 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, getUserByEmail, getUserByIdentifier, getUserByPhone, getUserCountryByIp, get_all_documents, get_document_by_id, googleLoginProvider, 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, useLoginWithGoogle, useStoreValues, useValidation, userNameFormat };
|
|
1621
1708
|
//# sourceMappingURL=index.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "akeyless-client-commons",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.64",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "tsup",
|
|
6
6
|
"deploy": "npm run build && npm version patch --no-git-tag-version && npm publish",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"assets": "^3.0.1",
|
|
21
21
|
"axios": "^1.7.9",
|
|
22
22
|
"class-variance-authority": "^0.7.0",
|
|
23
|
+
"client": "^0.0.1",
|
|
23
24
|
"clsx": "^2.1.1",
|
|
24
25
|
"cmdk": "^1.0.0",
|
|
25
26
|
"exceljs": "^4.4.0",
|