@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.isCompaniesCacheStale = exports.preloadCompanies = exports.invalidateCompaniesCache = exports.getCachedCompaniesByName = exports.getCachedCompanyById = exports.getCachedCompanies = exports.getCachedCompaniesSync = 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 companies 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 CompanyBE[] - Array of cached companies or empty array wrapper ({count, items})
72
+ *
73
+ * @example
74
+ * const companies = getCachedCompaniesSync();
75
+ * if (companies.items.length > 0) {
76
+ * console.log(companies.items[0].name);
77
+ * }
78
+ */
79
+ var getCachedCompaniesSync = function () {
80
+ try {
81
+ var cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.COMPANIES);
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.companies.length,
92
+ items: cachedData.companies,
93
+ };
94
+ }
95
+ return { count: 0, items: [] };
96
+ }
97
+ catch (error) {
98
+ console.error('Error getting cached companies:', error);
99
+ return { count: 0, items: [] };
100
+ }
101
+ };
102
+ exports.getCachedCompaniesSync = getCachedCompaniesSync;
103
+ /**
104
+ * Utility function to get companies from cache or fetch from API
105
+ *
106
+ * This function manages a localStorage cache of companies with the following logic:
107
+ * - If companies exist in cache and are less than 1 day old, return cached version
108
+ * - If companies exist but are older than 1 day, fetch fresh data and update cache
109
+ * - If companies don't exist in cache, fetch from API and cache them
110
+ *
111
+ * @param searchQuery - Optional search query to filter companies
112
+ * @param filters - Optional filters object to apply additional filtering (bypasses cache)
113
+ * @param pageLimit - Number of companies to fetch (default: 100)
114
+ * @returns Promise<{count:number, items: CompanyBE[]}> - Paged companies
115
+ *
116
+ * @example
117
+ * const companies = await getCachedCompanies();
118
+ * console.log(companies.items[0].name);
119
+ *
120
+ * // With search
121
+ * const filtered = await getCachedCompanies('Tech Corp');
122
+ *
123
+ * // With filters
124
+ * const filteredByCountry = await getCachedCompanies(undefined, { country: 'USA' });
125
+ */
126
+ var getCachedCompanies = 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.COMPANIES,
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.COMPANIES);
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.companies.length,
160
+ items: cachedData.companies,
161
+ }];
162
+ }
163
+ }
164
+ return [4 /*yield*/, (0, fetch_data_1.fetchData)({
165
+ url: constants_1.API_ROUTES.COMPANIES,
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
+ companies: response.data.items,
177
+ cachedAt: new Date().toISOString(),
178
+ };
179
+ (0, set_storage_value_1.setStorageValue)(type_1.LS_KEYS.COMPANIES, 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 companies:', error_1);
186
+ return [2 /*return*/, { count: 0, items: [] }];
187
+ case 5: return [2 /*return*/];
188
+ }
189
+ });
190
+ });
191
+ };
192
+ exports.getCachedCompanies = getCachedCompanies;
193
+ /**
194
+ * Utility function to get a specific company by ID from cache
195
+ * If not found in cache, returns null (does not trigger API call)
196
+ *
197
+ * @param companyId - The ID of the company to retrieve
198
+ * @returns CompanyBE | null - The company or null if not found
199
+ *
200
+ * @example
201
+ * const company = getCachedCompanyById('company-123');
202
+ * if (company) {
203
+ * console.log(company.name);
204
+ * }
205
+ */
206
+ var getCachedCompanyById = function (companyId) {
207
+ if (!companyId) {
208
+ return null;
209
+ }
210
+ try {
211
+ var companies = (0, exports.getCachedCompaniesSync)().items;
212
+ return companies.find(function (company) { return company.id === companyId; }) || null;
213
+ }
214
+ catch (error) {
215
+ console.error('Error getting cached company by ID:', error);
216
+ return null;
217
+ }
218
+ };
219
+ exports.getCachedCompanyById = getCachedCompanyById;
220
+ /**
221
+ * Utility function to get companies by name from cache
222
+ * If not found in cache, returns empty array (does not trigger API call)
223
+ *
224
+ * @param name - The name of the company to search for
225
+ * @returns CompanyBE[] - Array of matching companies or empty array
226
+ *
227
+ * @example
228
+ * const companies = getCachedCompaniesByName('Tech');
229
+ * console.log(companies.length);
230
+ */
231
+ var getCachedCompaniesByName = function (name) {
232
+ if (!name) {
233
+ return [];
234
+ }
235
+ try {
236
+ var companies = (0, exports.getCachedCompaniesSync)().items;
237
+ return companies.filter(function (company) {
238
+ return company.name.toLowerCase().includes(name.toLowerCase());
239
+ });
240
+ }
241
+ catch (error) {
242
+ console.error('Error getting cached companies by name:', error);
243
+ return [];
244
+ }
245
+ };
246
+ exports.getCachedCompaniesByName = getCachedCompaniesByName;
247
+ /**
248
+ * Utility function to invalidate (remove) companies from cache
249
+ * Useful when companies have been updated and you want to force a refresh
250
+ *
251
+ * @example
252
+ * invalidateCompaniesCache();
253
+ * const freshCompanies = await getCachedCompanies();
254
+ */
255
+ var invalidateCompaniesCache = function () {
256
+ try {
257
+ localStorage.removeItem(type_1.LS_KEYS.COMPANIES);
258
+ }
259
+ catch (error) {
260
+ console.error('Error invalidating companies cache:', error);
261
+ }
262
+ };
263
+ exports.invalidateCompaniesCache = invalidateCompaniesCache;
264
+ /**
265
+ * Utility function to preload companies into cache
266
+ * Useful to call on app initialization or login
267
+ *
268
+ * @returns Promise<{count:number, items: CompanyBE[]}> - Array of preloaded companies
269
+ *
270
+ * @example
271
+ * // On app initialization
272
+ * await preloadCompanies();
273
+ */
274
+ var preloadCompanies = function () { return __awaiter(void 0, void 0, void 0, function () {
275
+ return __generator(this, function (_a) {
276
+ return [2 /*return*/, (0, exports.getCachedCompanies)()];
277
+ });
278
+ }); };
279
+ exports.preloadCompanies = preloadCompanies;
280
+ /**
281
+ * Utility function to check if companies 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 (isCompaniesCacheStale()) {
288
+ * await getCachedCompanies(); // This will fetch fresh data
289
+ * }
290
+ */
291
+ var isCompaniesCacheStale = function () {
292
+ try {
293
+ var cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.COMPANIES);
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 companies cache staleness:', error);
304
+ return true;
305
+ }
306
+ };
307
+ exports.isCompaniesCacheStale = isCompaniesCacheStale;
@@ -1,4 +1,5 @@
1
- import { CompanyTypeBE } from '../type';
1
+ export * from './cache';
2
+ import { CompanyBE } from '../type';
2
3
  type PrismaClient = any;
3
4
  export interface ListCompanyArgs {
4
5
  currentPage?: number;
@@ -32,26 +33,25 @@ export interface DeleteCompanyArgs {
32
33
  /**
33
34
  * Retrieves all companies from the database with pagination
34
35
  * @param {ListCompanyArgs} args - Object containing prisma client, pagination, and filter options
35
- * @returns {Promise<[number, Array<CompanyTypeBE>]>} Tuple of [total count, array of companies]
36
+ * @returns {Promise<[number, Array<CompanyBE>]>} Tuple of [total count, array of companies]
36
37
  */
37
- export declare const listCompany: ({ currentPage, includeContacts, includeQuotesInvoices, orderByColumn, orderByDirection, pageLimit, prisma, searchQuery, }: ListCompanyArgs) => Promise<[number, Array<CompanyTypeBE>]>;
38
+ export declare const listCompany: ({ currentPage, includeContacts, includeQuotesInvoices, orderByColumn, orderByDirection, pageLimit, prisma, searchQuery, }: ListCompanyArgs) => Promise<[number, Array<CompanyBE>]>;
38
39
  /**
39
40
  * Retrieves a single company by ID
40
41
  * @param {UnitCompanyByIdArgs} args - Object containing prisma client and company id
41
- * @returns {Promise<CompanyTypeBE | null>} Company if found, null otherwise
42
+ * @returns {Promise<CompanyBE | null>} Company if found, null otherwise
42
43
  */
43
- export declare const unitCompanyById: ({ id, includeContacts, includeQuotesInvoices, prisma, }: UnitCompanyByIdArgs) => Promise<CompanyTypeBE | null>;
44
+ export declare const unitCompanyById: ({ id, includeContacts, includeQuotesInvoices, prisma, }: UnitCompanyByIdArgs) => Promise<CompanyBE | null>;
44
45
  /**
45
46
  * Creates a new company or updates an existing one
46
47
  * @param {UpdateCompanyArgs} args - Object containing prisma client and company data
47
- * @returns {Promise<CompanyTypeBE>} Created or updated company
48
+ * @returns {Promise<CompanyBE>} Created or updated company
48
49
  */
49
- export declare const updateCompany: ({ country, email, id, name, phone, prisma, website, }: UpdateCompanyArgs) => Promise<CompanyTypeBE>;
50
+ export declare const updateCompany: ({ country, email, id, name, phone, prisma, website, }: UpdateCompanyArgs) => Promise<CompanyBE>;
50
51
  /**
51
52
  * Deletes a company by ID
52
53
  * @param {DeleteCompanyArgs} args - Object containing prisma client and company id
53
- * @returns {Promise<CompanyTypeBE>} Deleted company
54
+ * @returns {Promise<CompanyBE>} Deleted company
54
55
  * @throws {Error} If company ID is not provided or company not found
55
56
  */
56
- export declare const deleteCompany: ({ id, prisma, }: DeleteCompanyArgs) => Promise<CompanyTypeBE>;
57
- export {};
57
+ export declare const deleteCompany: ({ id, prisma, }: DeleteCompanyArgs) => Promise<CompanyBE>;
@@ -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.deleteCompany = exports.updateCompany = exports.unitCompanyById = exports.listCompany = void 0;
74
+ __exportStar(require("./cache"), exports);
60
75
  var multi_part_search_1 = require("../../../general/multi-part-search");
61
76
  /**
62
77
  * Retrieves all companies from the database with pagination
63
78
  * @param {ListCompanyArgs} args - Object containing prisma client, pagination, and filter options
64
- * @returns {Promise<[number, Array<CompanyTypeBE>]>} Tuple of [total count, array of companies]
79
+ * @returns {Promise<[number, Array<CompanyBE>]>} Tuple of [total count, array of companies]
65
80
  */
66
81
  var listCompany = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
67
82
  var include, orderBy, idSearchQuery, nameSearchQuery, emailSearchQuery, where, _c, count, items;
@@ -120,7 +135,7 @@ exports.listCompany = listCompany;
120
135
  /**
121
136
  * Retrieves a single company by ID
122
137
  * @param {UnitCompanyByIdArgs} args - Object containing prisma client and company id
123
- * @returns {Promise<CompanyTypeBE | null>} Company if found, null otherwise
138
+ * @returns {Promise<CompanyBE | null>} Company if found, null otherwise
124
139
  */
125
140
  var unitCompanyById = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
126
141
  var include, where, company;
@@ -152,7 +167,7 @@ exports.unitCompanyById = unitCompanyById;
152
167
  /**
153
168
  * Creates a new company or updates an existing one
154
169
  * @param {UpdateCompanyArgs} args - Object containing prisma client and company data
155
- * @returns {Promise<CompanyTypeBE>} Created or updated company
170
+ * @returns {Promise<CompanyBE>} Created or updated company
156
171
  */
157
172
  var updateCompany = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
158
173
  var companyData, where, company;
@@ -191,7 +206,7 @@ exports.updateCompany = updateCompany;
191
206
  /**
192
207
  * Deletes a company by ID
193
208
  * @param {DeleteCompanyArgs} args - Object containing prisma client and company id
194
- * @returns {Promise<CompanyTypeBE>} Deleted company
209
+ * @returns {Promise<CompanyBE>} Deleted company
195
210
  * @throws {Error} If company ID is not provided or company not found
196
211
  */
197
212
  var deleteCompany = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
@@ -1,4 +1,4 @@
1
- import { CompanyTypeBE } from '../type';
1
+ import { CompanyBE } from '../type';
2
2
  type PrismaClient = any;
3
3
  export interface PostCompaniesReportArgs {
4
4
  orderByColumn?: string;
@@ -9,7 +9,7 @@ export interface PostCompaniesReportArgs {
9
9
  * Retrieves companies report data with count and full list
10
10
  * This is typically used for generating reports without pagination
11
11
  * @param {PostCompaniesReportArgs} args - Object containing prisma client and ordering options
12
- * @returns {Promise<[number, Array<CompanyTypeBE>]>} Tuple containing total count and array of all companies
12
+ * @returns {Promise<[number, Array<CompanyBE>]>} Tuple containing total count and array of all companies
13
13
  */
14
- export declare const postCompaniesReport: ({ orderByColumn, orderByDirection, prisma, }: PostCompaniesReportArgs) => Promise<[number, Array<CompanyTypeBE>]>;
14
+ export declare const postCompaniesReport: ({ orderByColumn, orderByDirection, prisma, }: PostCompaniesReportArgs) => Promise<[number, Array<CompanyBE>]>;
15
15
  export {};
@@ -41,7 +41,7 @@ exports.postCompaniesReport = void 0;
41
41
  * Retrieves companies report data with count and full list
42
42
  * This is typically used for generating reports without pagination
43
43
  * @param {PostCompaniesReportArgs} args - Object containing prisma client and ordering options
44
- * @returns {Promise<[number, Array<CompanyTypeBE>]>} Tuple containing total count and array of all companies
44
+ * @returns {Promise<[number, Array<CompanyBE>]>} Tuple containing total count and array of all companies
45
45
  */
46
46
  var postCompaniesReport = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
47
47
  var include, orderBy, where, _c, count, items;
@@ -1,9 +1,21 @@
1
1
  export declare const ONE_DAY_IN_MS: number;
2
+ export declare const ONE_WEEK_IN_MS: number;
2
3
  export declare const API_ROUTES: {
4
+ BANKS: string;
5
+ BRANCHES: string;
6
+ COMPANIES: string;
7
+ CONTACTS: string;
8
+ CURRENCIES: string;
9
+ CUSTOMERS: string;
10
+ EXPENSE_CATEGORIES: string;
11
+ EXPENSES: string;
12
+ PAYMENT_MODES: string;
13
+ PREFERENCES: string;
3
14
  PRODUCT_BY_ID: string;
4
15
  PRODUCT_CATEGORIES: string;
5
16
  PRODUCT_CATEGORY_BY_ID: string;
6
17
  PRODUCT_CATEGORY: string;
7
18
  PRODUCT: string;
8
19
  PRODUCTS: string;
20
+ TAXES: string;
9
21
  };
@@ -1,12 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.API_ROUTES = exports.ONE_DAY_IN_MS = void 0;
3
+ exports.API_ROUTES = exports.ONE_WEEK_IN_MS = exports.ONE_DAY_IN_MS = void 0;
4
4
  exports.ONE_DAY_IN_MS = 1 * 24 * 60 * 60 * 1000; // 1 day in milliseconds
5
+ exports.ONE_WEEK_IN_MS = 7 * 24 * 60 * 60 * 1000; // 1 week in milliseconds
5
6
  exports.API_ROUTES = {
7
+ BANKS: '/api/banks',
8
+ BRANCHES: '/api/branches',
9
+ COMPANIES: '/api/companies',
10
+ CONTACTS: '/api/contacts',
11
+ CURRENCIES: '/api/currencies',
12
+ CUSTOMERS: '/api/customers',
13
+ EXPENSE_CATEGORIES: '/api/expense-categories',
14
+ EXPENSES: '/api/expenses',
15
+ PAYMENT_MODES: '/api/payment-modes',
16
+ PREFERENCES: '/api/preferences',
6
17
  PRODUCT_BY_ID: '/api/product/product-by-id',
7
18
  PRODUCT_CATEGORIES: '/api/product-categories',
8
19
  PRODUCT_CATEGORY_BY_ID: '/api/product-category/product-category-by-id',
9
20
  PRODUCT_CATEGORY: '/api/product-category',
10
21
  PRODUCT: '/api/product',
11
22
  PRODUCTS: '/api/products',
23
+ TAXES: '/api/taxes',
12
24
  };
@@ -0,0 +1,108 @@
1
+ import { ContactBE } from '../type';
2
+ /**
3
+ * Synchronous utility function to get contacts 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 ContactBE[] - Array of cached contacts or empty array wrapper ({count, items})
8
+ *
9
+ * @example
10
+ * const contacts = getCachedContactsSync();
11
+ * if (contacts.items.length > 0) {
12
+ * console.log(contacts.items[0].firstName);
13
+ * }
14
+ */
15
+ export declare const getCachedContactsSync: () => {
16
+ count: number;
17
+ items: ContactBE[];
18
+ };
19
+ /**
20
+ * Utility function to get contacts from cache or fetch from API
21
+ *
22
+ * This function manages a localStorage cache of contacts with the following logic:
23
+ * - If contacts exist in cache and are less than 1 day old, return cached version
24
+ * - If contacts exist but are older than 1 day, fetch fresh data and update cache
25
+ * - If contacts don't exist in cache, fetch from API and cache them
26
+ *
27
+ * @param searchQuery - Optional search query to filter contacts
28
+ * @param filters - Optional filters object to apply additional filtering (bypasses cache)
29
+ * @param pageLimit - Number of contacts to fetch (default: 100)
30
+ * @returns Promise<{count:number, items: ContactBE[]}> - Paged contacts
31
+ *
32
+ * @example
33
+ * const contacts = await getCachedContacts();
34
+ * console.log(contacts.items[0].firstName);
35
+ *
36
+ * // With search
37
+ * const filtered = await getCachedContacts('John');
38
+ *
39
+ * // With filters
40
+ * const filteredByCompany = await getCachedContacts(undefined, { companyId: 'company-123' });
41
+ */
42
+ export declare const getCachedContacts: (searchQuery?: string, filters?: Record<string, unknown>, pageLimit?: number) => Promise<{
43
+ count: number;
44
+ items: ContactBE[];
45
+ }>;
46
+ /**
47
+ * Utility function to get a specific contact by ID from cache
48
+ * If not found in cache, returns null (does not trigger API call)
49
+ *
50
+ * @param contactId - The ID of the contact to retrieve
51
+ * @returns ContactBE | null - The contact or null if not found
52
+ *
53
+ * @example
54
+ * const contact = getCachedContactById('contact-123');
55
+ * if (contact) {
56
+ * console.log(contact.firstName);
57
+ * }
58
+ */
59
+ export declare const getCachedContactById: (contactId: string) => ContactBE | null;
60
+ /**
61
+ * Utility function to get contacts by email from cache
62
+ * If not found in cache, returns null (does not trigger API call)
63
+ *
64
+ * @param email - The email of the contact to search for
65
+ * @returns ContactBE | null - The contact or null if not found
66
+ *
67
+ * @example
68
+ * const contact = getCachedContactByEmail('john@example.com');
69
+ * if (contact) {
70
+ * console.log(contact.firstName);
71
+ * }
72
+ */
73
+ export declare const getCachedContactByEmail: (email: string) => ContactBE | null;
74
+ /**
75
+ * Utility function to invalidate (remove) contacts from cache
76
+ * Useful when contacts have been updated and you want to force a refresh
77
+ *
78
+ * @example
79
+ * invalidateContactsCache();
80
+ * const freshContacts = await getCachedContacts();
81
+ */
82
+ export declare const invalidateContactsCache: () => void;
83
+ /**
84
+ * Utility function to preload contacts into cache
85
+ * Useful to call on app initialization or login
86
+ *
87
+ * @returns Promise<{count:number, items: ContactBE[]}> - Array of preloaded contacts
88
+ *
89
+ * @example
90
+ * // On app initialization
91
+ * await preloadContacts();
92
+ */
93
+ export declare const preloadContacts: () => Promise<{
94
+ count: number;
95
+ items: ContactBE[];
96
+ }>;
97
+ /**
98
+ * Utility function to check if contacts cache is stale
99
+ * Returns true if cache is older than 1 day or doesn't exist
100
+ *
101
+ * @returns boolean - True if cache is stale or doesn't exist
102
+ *
103
+ * @example
104
+ * if (isContactsCacheStale()) {
105
+ * await getCachedContacts(); // This will fetch fresh data
106
+ * }
107
+ */
108
+ export declare const isContactsCacheStale: () => boolean;