@react-pakistan/util-functions 1.24.99 → 1.25.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.
Files changed (73) hide show
  1. package/api/stellar-solutions/app-user/index.d.ts +9 -9
  2. package/api/stellar-solutions/app-user/index.js +4 -4
  3. package/api/stellar-solutions/bank/cache.d.ts +99 -0
  4. package/api/stellar-solutions/bank/cache.js +256 -0
  5. package/api/stellar-solutions/bank/index.d.ts +10 -10
  6. package/api/stellar-solutions/bank/index.js +19 -4
  7. package/api/stellar-solutions/branch/cache.d.ts +97 -0
  8. package/api/stellar-solutions/branch/cache.js +256 -0
  9. package/api/stellar-solutions/branch/index.d.ts +10 -10
  10. package/api/stellar-solutions/branch/index.js +19 -4
  11. package/api/stellar-solutions/company/cache.d.ts +106 -0
  12. package/api/stellar-solutions/company/cache.js +307 -0
  13. package/api/stellar-solutions/company/index.d.ts +10 -10
  14. package/api/stellar-solutions/company/index.js +19 -4
  15. package/api/stellar-solutions/company-report/index.d.ts +3 -3
  16. package/api/stellar-solutions/company-report/index.js +1 -1
  17. package/api/stellar-solutions/constants.d.ts +12 -0
  18. package/api/stellar-solutions/constants.js +13 -1
  19. package/api/stellar-solutions/contact/cache.d.ts +108 -0
  20. package/api/stellar-solutions/contact/cache.js +307 -0
  21. package/api/stellar-solutions/contact/index.d.ts +10 -10
  22. package/api/stellar-solutions/contact/index.js +19 -4
  23. package/api/stellar-solutions/currency/cache.d.ts +99 -0
  24. package/api/stellar-solutions/currency/cache.js +256 -0
  25. package/api/stellar-solutions/currency/index.d.ts +10 -10
  26. package/api/stellar-solutions/currency/index.js +19 -4
  27. package/api/stellar-solutions/customer/cache.d.ts +108 -0
  28. package/api/stellar-solutions/customer/cache.js +307 -0
  29. package/api/stellar-solutions/customer/index.d.ts +12 -12
  30. package/api/stellar-solutions/customer/index.js +20 -5
  31. package/api/stellar-solutions/expense/cache.d.ts +106 -0
  32. package/api/stellar-solutions/expense/cache.js +307 -0
  33. package/api/stellar-solutions/expense/index.d.ts +10 -10
  34. package/api/stellar-solutions/expense/index.js +19 -4
  35. package/api/stellar-solutions/expense-category/cache.d.ts +94 -0
  36. package/api/stellar-solutions/expense-category/cache.js +280 -0
  37. package/api/stellar-solutions/expense-category/index.d.ts +10 -10
  38. package/api/stellar-solutions/expense-category/index.js +19 -4
  39. package/api/stellar-solutions/lead/index.d.ts +9 -9
  40. package/api/stellar-solutions/lead/index.js +4 -4
  41. package/api/stellar-solutions/menu-order/index.d.ts +9 -9
  42. package/api/stellar-solutions/menu-order/index.js +4 -4
  43. package/api/stellar-solutions/payment/index.d.ts +9 -9
  44. package/api/stellar-solutions/payment/index.js +4 -4
  45. package/api/stellar-solutions/payment-mode/cache.d.ts +97 -0
  46. package/api/stellar-solutions/payment-mode/cache.js +256 -0
  47. package/api/stellar-solutions/payment-mode/index.d.ts +10 -10
  48. package/api/stellar-solutions/payment-mode/index.js +19 -4
  49. package/api/stellar-solutions/preference/cache.d.ts +85 -0
  50. package/api/stellar-solutions/preference/cache.js +229 -0
  51. package/api/stellar-solutions/preference/index.d.ts +6 -6
  52. package/api/stellar-solutions/preference/index.js +17 -2
  53. package/api/stellar-solutions/product/cache.d.ts +9 -9
  54. package/api/stellar-solutions/product/cache.js +4 -4
  55. package/api/stellar-solutions/product/index.d.ts +10 -10
  56. package/api/stellar-solutions/product/index.js +6 -6
  57. package/api/stellar-solutions/product-category/cache.d.ts +9 -9
  58. package/api/stellar-solutions/product-category/cache.js +4 -4
  59. package/api/stellar-solutions/product-category/index.d.ts +9 -9
  60. package/api/stellar-solutions/product-category/index.js +4 -4
  61. package/api/stellar-solutions/profile/index.d.ts +13 -13
  62. package/api/stellar-solutions/profile/index.js +6 -6
  63. package/api/stellar-solutions/quote-invoice/index.d.ts +9 -9
  64. package/api/stellar-solutions/quote-invoice/index.js +4 -4
  65. package/api/stellar-solutions/quote-invoice-report/index.d.ts +3 -3
  66. package/api/stellar-solutions/quote-invoice-report/index.js +1 -1
  67. package/api/stellar-solutions/tax/cache.d.ts +97 -0
  68. package/api/stellar-solutions/tax/cache.js +256 -0
  69. package/api/stellar-solutions/tax/index.d.ts +10 -10
  70. package/api/stellar-solutions/tax/index.js +19 -4
  71. package/api/stellar-solutions/type.d.ts +57 -46
  72. package/api/stellar-solutions/type.js +11 -0
  73. package/package.json +1 -1
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ };
58
+ Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.isContactsCacheStale = exports.preloadContacts = exports.invalidateContactsCache = exports.getCachedContactByEmail = exports.getCachedContactById = exports.getCachedContacts = exports.getCachedContactsSync = void 0;
60
+ var constants_1 = require("../constants");
61
+ var type_1 = require("../type");
62
+ var api_methods_1 = require("../../../constants/api-methods");
63
+ var fetch_data_1 = require("../../../general/fetch-data");
64
+ var get_storage_value_1 = require("../../../local-storage/get-storage-value");
65
+ var set_storage_value_1 = require("../../../local-storage/set-storage-value");
66
+ /**
67
+ * Synchronous utility function to get contacts from cache only
68
+ * Returns cached data immediately if available and fresh, otherwise returns empty array
69
+ * Does not trigger any API calls
70
+ *
71
+ * @returns ContactBE[] - Array of cached contacts or empty array wrapper ({count, items})
72
+ *
73
+ * @example
74
+ * const contacts = getCachedContactsSync();
75
+ * if (contacts.items.length > 0) {
76
+ * console.log(contacts.items[0].firstName);
77
+ * }
78
+ */
79
+ var getCachedContactsSync = function () {
80
+ try {
81
+ var cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.CONTACTS);
82
+ if (!cachedData) {
83
+ return { count: 0, items: [] };
84
+ }
85
+ var currentTime = new Date().getTime();
86
+ var cachedTime = new Date(cachedData.cachedAt).getTime();
87
+ var ageInMs = currentTime - cachedTime;
88
+ // If cached data is less than 1 day old, return it
89
+ if (ageInMs < constants_1.ONE_DAY_IN_MS) {
90
+ return {
91
+ count: cachedData.contacts.length,
92
+ items: cachedData.contacts,
93
+ };
94
+ }
95
+ return { count: 0, items: [] };
96
+ }
97
+ catch (error) {
98
+ console.error('Error getting cached contacts:', error);
99
+ return { count: 0, items: [] };
100
+ }
101
+ };
102
+ exports.getCachedContactsSync = getCachedContactsSync;
103
+ /**
104
+ * Utility function to get contacts from cache or fetch from API
105
+ *
106
+ * This function manages a localStorage cache of contacts with the following logic:
107
+ * - If contacts exist in cache and are less than 1 day old, return cached version
108
+ * - If contacts exist but are older than 1 day, fetch fresh data and update cache
109
+ * - If contacts don't exist in cache, fetch from API and cache them
110
+ *
111
+ * @param searchQuery - Optional search query to filter contacts
112
+ * @param filters - Optional filters object to apply additional filtering (bypasses cache)
113
+ * @param pageLimit - Number of contacts to fetch (default: 100)
114
+ * @returns Promise<{count:number, items: ContactBE[]}> - Paged contacts
115
+ *
116
+ * @example
117
+ * const contacts = await getCachedContacts();
118
+ * console.log(contacts.items[0].firstName);
119
+ *
120
+ * // With search
121
+ * const filtered = await getCachedContacts('John');
122
+ *
123
+ * // With filters
124
+ * const filteredByCompany = await getCachedContacts(undefined, { companyId: 'company-123' });
125
+ */
126
+ var getCachedContacts = function (searchQuery_1, filters_1) {
127
+ var args_1 = [];
128
+ for (var _i = 2; _i < arguments.length; _i++) {
129
+ args_1[_i - 2] = arguments[_i];
130
+ }
131
+ return __awaiter(void 0, __spreadArray([searchQuery_1, filters_1], args_1, true), void 0, function (searchQuery, filters, pageLimit) {
132
+ var response_1, cachedData, currentTime, cachedTime, ageInMs, response, updatedCache, error_1;
133
+ var _a;
134
+ if (pageLimit === void 0) { pageLimit = 100; }
135
+ return __generator(this, function (_b) {
136
+ switch (_b.label) {
137
+ case 0:
138
+ _b.trys.push([0, 4, , 5]);
139
+ if (!((searchQuery && searchQuery.trim()) ||
140
+ (filters && Object.keys(filters).length > 0))) return [3 /*break*/, 2];
141
+ return [4 /*yield*/, (0, fetch_data_1.fetchData)({
142
+ url: constants_1.API_ROUTES.CONTACTS,
143
+ body: JSON.stringify(__assign(__assign({ searchQuery: searchQuery }, filters), { pageLimit: pageLimit, currentPage: 1 })),
144
+ method: api_methods_1.API_METHODS.POST,
145
+ })];
146
+ case 1:
147
+ response_1 = _b.sent();
148
+ return [2 /*return*/, (response_1 === null || response_1 === void 0 ? void 0 : response_1.data) || { count: 0, items: [] }];
149
+ case 2:
150
+ cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.CONTACTS);
151
+ currentTime = new Date().getTime();
152
+ // Check if cached data exists and is still fresh
153
+ if (cachedData) {
154
+ cachedTime = new Date(cachedData.cachedAt).getTime();
155
+ ageInMs = currentTime - cachedTime;
156
+ // If cached data is less than 1 day old, return it
157
+ if (ageInMs < constants_1.ONE_DAY_IN_MS) {
158
+ return [2 /*return*/, {
159
+ count: cachedData.contacts.length,
160
+ items: cachedData.contacts,
161
+ }];
162
+ }
163
+ }
164
+ return [4 /*yield*/, (0, fetch_data_1.fetchData)({
165
+ url: constants_1.API_ROUTES.CONTACTS,
166
+ body: JSON.stringify({
167
+ pageLimit: pageLimit,
168
+ currentPage: 1,
169
+ }),
170
+ method: api_methods_1.API_METHODS.POST,
171
+ })];
172
+ case 3:
173
+ response = _b.sent();
174
+ if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.items) {
175
+ updatedCache = {
176
+ contacts: response.data.items,
177
+ cachedAt: new Date().toISOString(),
178
+ };
179
+ (0, set_storage_value_1.setStorageValue)(type_1.LS_KEYS.CONTACTS, updatedCache);
180
+ return [2 /*return*/, response.data];
181
+ }
182
+ return [2 /*return*/, { count: 0, items: [] }];
183
+ case 4:
184
+ error_1 = _b.sent();
185
+ console.error('Error fetching contacts:', error_1);
186
+ return [2 /*return*/, { count: 0, items: [] }];
187
+ case 5: return [2 /*return*/];
188
+ }
189
+ });
190
+ });
191
+ };
192
+ exports.getCachedContacts = getCachedContacts;
193
+ /**
194
+ * Utility function to get a specific contact by ID from cache
195
+ * If not found in cache, returns null (does not trigger API call)
196
+ *
197
+ * @param contactId - The ID of the contact to retrieve
198
+ * @returns ContactBE | null - The contact or null if not found
199
+ *
200
+ * @example
201
+ * const contact = getCachedContactById('contact-123');
202
+ * if (contact) {
203
+ * console.log(contact.firstName);
204
+ * }
205
+ */
206
+ var getCachedContactById = function (contactId) {
207
+ if (!contactId) {
208
+ return null;
209
+ }
210
+ try {
211
+ var contacts = (0, exports.getCachedContactsSync)().items;
212
+ return contacts.find(function (contact) { return contact.id === contactId; }) || null;
213
+ }
214
+ catch (error) {
215
+ console.error('Error getting cached contact by ID:', error);
216
+ return null;
217
+ }
218
+ };
219
+ exports.getCachedContactById = getCachedContactById;
220
+ /**
221
+ * Utility function to get contacts by email from cache
222
+ * If not found in cache, returns null (does not trigger API call)
223
+ *
224
+ * @param email - The email of the contact to search for
225
+ * @returns ContactBE | null - The contact or null if not found
226
+ *
227
+ * @example
228
+ * const contact = getCachedContactByEmail('john@example.com');
229
+ * if (contact) {
230
+ * console.log(contact.firstName);
231
+ * }
232
+ */
233
+ var getCachedContactByEmail = function (email) {
234
+ if (!email) {
235
+ return null;
236
+ }
237
+ try {
238
+ var contacts = (0, exports.getCachedContactsSync)().items;
239
+ return contacts.find(function (contact) { return contact.email === email; }) || null;
240
+ }
241
+ catch (error) {
242
+ console.error('Error getting cached contact by email:', error);
243
+ return null;
244
+ }
245
+ };
246
+ exports.getCachedContactByEmail = getCachedContactByEmail;
247
+ /**
248
+ * Utility function to invalidate (remove) contacts from cache
249
+ * Useful when contacts have been updated and you want to force a refresh
250
+ *
251
+ * @example
252
+ * invalidateContactsCache();
253
+ * const freshContacts = await getCachedContacts();
254
+ */
255
+ var invalidateContactsCache = function () {
256
+ try {
257
+ localStorage.removeItem(type_1.LS_KEYS.CONTACTS);
258
+ }
259
+ catch (error) {
260
+ console.error('Error invalidating contacts cache:', error);
261
+ }
262
+ };
263
+ exports.invalidateContactsCache = invalidateContactsCache;
264
+ /**
265
+ * Utility function to preload contacts into cache
266
+ * Useful to call on app initialization or login
267
+ *
268
+ * @returns Promise<{count:number, items: ContactBE[]}> - Array of preloaded contacts
269
+ *
270
+ * @example
271
+ * // On app initialization
272
+ * await preloadContacts();
273
+ */
274
+ var preloadContacts = function () { return __awaiter(void 0, void 0, void 0, function () {
275
+ return __generator(this, function (_a) {
276
+ return [2 /*return*/, (0, exports.getCachedContacts)()];
277
+ });
278
+ }); };
279
+ exports.preloadContacts = preloadContacts;
280
+ /**
281
+ * Utility function to check if contacts cache is stale
282
+ * Returns true if cache is older than 1 day or doesn't exist
283
+ *
284
+ * @returns boolean - True if cache is stale or doesn't exist
285
+ *
286
+ * @example
287
+ * if (isContactsCacheStale()) {
288
+ * await getCachedContacts(); // This will fetch fresh data
289
+ * }
290
+ */
291
+ var isContactsCacheStale = function () {
292
+ try {
293
+ var cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.CONTACTS);
294
+ if (!cachedData) {
295
+ return true;
296
+ }
297
+ var currentTime = new Date().getTime();
298
+ var cachedTime = new Date(cachedData.cachedAt).getTime();
299
+ var ageInMs = currentTime - cachedTime;
300
+ return ageInMs >= constants_1.ONE_DAY_IN_MS;
301
+ }
302
+ catch (error) {
303
+ console.error('Error checking contacts cache staleness:', error);
304
+ return true;
305
+ }
306
+ };
307
+ exports.isContactsCacheStale = isContactsCacheStale;
@@ -1,4 +1,5 @@
1
- import { ContactTypeBE } from '../type';
1
+ export * from './cache';
2
+ import { ContactBE } from '../type';
2
3
  type PrismaClient = any;
3
4
  export interface ListContactArgs {
4
5
  currentPage?: number;
@@ -31,26 +32,25 @@ export interface DeleteContactArgs {
31
32
  /**
32
33
  * Retrieves contacts with pagination and filtering
33
34
  * @param {ListContactArgs} args - Object containing prisma client, pagination, and query options
34
- * @returns {Promise<[number, Array<ContactTypeBE>]>} Tuple containing total count and array of contacts
35
+ * @returns {Promise<[number, Array<ContactBE>]>} Tuple containing total count and array of contacts
35
36
  */
36
- export declare const listContact: ({ currentPage, includeCompany, orderByColumn, orderByDirection, pageLimit, prisma, searchQuery, }: ListContactArgs) => Promise<[number, Array<ContactTypeBE>]>;
37
+ export declare const listContact: ({ currentPage, includeCompany, orderByColumn, orderByDirection, pageLimit, prisma, searchQuery, }: ListContactArgs) => Promise<[number, Array<ContactBE>]>;
37
38
  /**
38
39
  * Retrieves a single contact by ID
39
40
  * @param {UnitContactByIdArgs} args - Object containing prisma client and query where conditions
40
- * @returns {Promise<ContactTypeBE | null>} Contact if found, null otherwise
41
+ * @returns {Promise<ContactBE | null>} Contact if found, null otherwise
41
42
  */
42
- export declare const unitContactById: ({ id, includeCompany, prisma, }: UnitContactByIdArgs) => Promise<ContactTypeBE | null>;
43
+ export declare const unitContactById: ({ id, includeCompany, prisma, }: UnitContactByIdArgs) => Promise<ContactBE | null>;
43
44
  /**
44
45
  * Creates or updates a contact
45
46
  * @param {UpdateContactArgs} args - Object containing prisma client and contact data
46
- * @returns {Promise<ContactTypeBE>} Created or updated contact
47
+ * @returns {Promise<ContactBE>} Created or updated contact
47
48
  */
48
- export declare const updateContact: ({ prisma, id, companyId, country, email, firstName, lastName, phone, }: UpdateContactArgs) => Promise<ContactTypeBE>;
49
+ export declare const updateContact: ({ prisma, id, companyId, country, email, firstName, lastName, phone, }: UpdateContactArgs) => Promise<ContactBE>;
49
50
  /**
50
51
  * Deletes a contact by ID
51
52
  * @param {DeleteContactArgs} args - Object containing prisma client and query where conditions
52
- * @returns {Promise<ContactTypeBE>} Deleted contact
53
+ * @returns {Promise<ContactBE>} Deleted contact
53
54
  * @throws {Error} If contact ID is not provided or contact not found
54
55
  */
55
- export declare const deleteContact: ({ id, prisma, }: DeleteContactArgs) => Promise<ContactTypeBE>;
56
- export {};
56
+ export declare const deleteContact: ({ id, prisma, }: DeleteContactArgs) => Promise<ContactBE>;
@@ -10,6 +10,20 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
25
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
26
+ };
13
27
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
28
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
29
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -57,11 +71,12 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
57
71
  };
58
72
  Object.defineProperty(exports, "__esModule", { value: true });
59
73
  exports.deleteContact = exports.updateContact = exports.unitContactById = exports.listContact = void 0;
74
+ __exportStar(require("./cache"), exports);
60
75
  var multi_part_search_1 = require("../../../general/multi-part-search");
61
76
  /**
62
77
  * Retrieves contacts with pagination and filtering
63
78
  * @param {ListContactArgs} args - Object containing prisma client, pagination, and query options
64
- * @returns {Promise<[number, Array<ContactTypeBE>]>} Tuple containing total count and array of contacts
79
+ * @returns {Promise<[number, Array<ContactBE>]>} Tuple containing total count and array of contacts
65
80
  */
66
81
  var listContact = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
67
82
  var include, orderBy, idSearchQuery, firstNameSearchQuery, lastNameSearchQuery, emailSearchQuery, where, _c, count, items;
@@ -123,7 +138,7 @@ exports.listContact = listContact;
123
138
  /**
124
139
  * Retrieves a single contact by ID
125
140
  * @param {UnitContactByIdArgs} args - Object containing prisma client and query where conditions
126
- * @returns {Promise<ContactTypeBE | null>} Contact if found, null otherwise
141
+ * @returns {Promise<ContactBE | null>} Contact if found, null otherwise
127
142
  */
128
143
  var unitContactById = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
129
144
  var include, where, contact;
@@ -154,7 +169,7 @@ exports.unitContactById = unitContactById;
154
169
  /**
155
170
  * Creates or updates a contact
156
171
  * @param {UpdateContactArgs} args - Object containing prisma client and contact data
157
- * @returns {Promise<ContactTypeBE>} Created or updated contact
172
+ * @returns {Promise<ContactBE>} Created or updated contact
158
173
  */
159
174
  var updateContact = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
160
175
  var contactData, where, contact;
@@ -192,7 +207,7 @@ exports.updateContact = updateContact;
192
207
  /**
193
208
  * Deletes a contact by ID
194
209
  * @param {DeleteContactArgs} args - Object containing prisma client and query where conditions
195
- * @returns {Promise<ContactTypeBE>} Deleted contact
210
+ * @returns {Promise<ContactBE>} Deleted contact
196
211
  * @throws {Error} If contact ID is not provided or contact not found
197
212
  */
198
213
  var deleteContact = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
@@ -0,0 +1,99 @@
1
+ import { CurrencyBE } from '../type';
2
+ /**
3
+ * Synchronous utility function to get currencies from cache only
4
+ * Returns cached data immediately if available and fresh, otherwise returns empty array
5
+ * Does not trigger any API calls
6
+ *
7
+ * @returns CurrencyBE[] - Array of cached currencies or empty array wrapper ({count, items})
8
+ *
9
+ * @example
10
+ * const currencies = getCachedCurrenciesSync();
11
+ * if (currencies.items.length > 0) {
12
+ * console.log(currencies.items[0].label);
13
+ * }
14
+ */
15
+ export declare const getCachedCurrenciesSync: () => {
16
+ count: number;
17
+ items: CurrencyBE[];
18
+ };
19
+ /**
20
+ * Utility function to get currencies from cache or fetch from API
21
+ *
22
+ * This function manages a localStorage cache of currencies with the following logic:
23
+ * - If currencies exist in cache and are less than 1 week old, return cached version
24
+ * - If currencies exist but are older than 1 week, fetch fresh data and update cache
25
+ * - If currencies don't exist in cache, fetch from API and cache them
26
+ *
27
+ * @returns Promise<{count:number, items: CurrencyBE[]}> - Paged currencies
28
+ *
29
+ * @example
30
+ * const currencies = await getCachedCurrencies();
31
+ * console.log(currencies.items[0].label);
32
+ */
33
+ export declare const getCachedCurrencies: () => Promise<{
34
+ count: number;
35
+ items: CurrencyBE[];
36
+ }>;
37
+ /**
38
+ * Utility function to get a specific currency by ID from cache
39
+ * If not found in cache, returns null (does not trigger API call)
40
+ *
41
+ * @param currencyId - The ID of the currency to retrieve
42
+ * @returns CurrencyBE | null - The currency or null if not found
43
+ *
44
+ * @example
45
+ * const currency = getCachedCurrencyById('curr-123');
46
+ * if (currency) {
47
+ * console.log(currency.label);
48
+ * }
49
+ */
50
+ export declare const getCachedCurrencyById: (currencyId: string) => CurrencyBE | null;
51
+ /**
52
+ * Utility function to get a specific currency by code from cache
53
+ * If not found in cache, returns null (does not trigger API call)
54
+ *
55
+ * @param code - The code of the currency to retrieve (e.g., 'USD', 'EUR')
56
+ * @returns CurrencyBE | null - The currency or null if not found
57
+ *
58
+ * @example
59
+ * const currency = getCachedCurrencyByCode('USD');
60
+ * if (currency) {
61
+ * console.log(currency.label);
62
+ * }
63
+ */
64
+ export declare const getCachedCurrencyByCode: (code: string) => CurrencyBE | null;
65
+ /**
66
+ * Utility function to invalidate (remove) currencies from cache
67
+ * Useful when currencies have been updated and you want to force a refresh
68
+ *
69
+ * @example
70
+ * invalidateCurrenciesCache();
71
+ * const freshCurrencies = await getCachedCurrencies();
72
+ */
73
+ export declare const invalidateCurrenciesCache: () => void;
74
+ /**
75
+ * Utility function to preload currencies into cache
76
+ * Useful to call on app initialization or login
77
+ *
78
+ * @returns Promise<{count:number, items: CurrencyBE[]}> - Array of preloaded currencies
79
+ *
80
+ * @example
81
+ * // On app initialization
82
+ * await preloadCurrencies();
83
+ */
84
+ export declare const preloadCurrencies: () => Promise<{
85
+ count: number;
86
+ items: CurrencyBE[];
87
+ }>;
88
+ /**
89
+ * Utility function to check if currencies cache is stale
90
+ * Returns true if cache is older than 1 week or doesn't exist
91
+ *
92
+ * @returns boolean - True if cache is stale or doesn't exist
93
+ *
94
+ * @example
95
+ * if (isCurrenciesCacheStale()) {
96
+ * await getCachedCurrencies(); // This will fetch fresh data
97
+ * }
98
+ */
99
+ export declare const isCurrenciesCacheStale: () => boolean;