@react-pakistan/util-functions 1.25.48 → 1.25.50

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 (62) hide show
  1. package/api/stellar-solutions/app-user/index.d.ts +1 -1
  2. package/api/stellar-solutions/bank/index.d.ts +1 -1
  3. package/api/stellar-solutions/branch/index.d.ts +1 -1
  4. package/api/stellar-solutions/company/index.d.ts +1 -1
  5. package/api/stellar-solutions/company-report/index.d.ts +1 -1
  6. package/api/stellar-solutions/contact/index.d.ts +1 -1
  7. package/api/stellar-solutions/currency/index.d.ts +1 -1
  8. package/api/stellar-solutions/customer/index.d.ts +1 -1
  9. package/api/stellar-solutions/expense/index.d.ts +1 -1
  10. package/api/stellar-solutions/expense-category/index.d.ts +1 -1
  11. package/api/stellar-solutions/lead/index.d.ts +1 -1
  12. package/api/stellar-solutions/menu-order/index.d.ts +1 -1
  13. package/api/stellar-solutions/payment/index.d.ts +1 -1
  14. package/api/stellar-solutions/payment/index.js +2 -2
  15. package/api/stellar-solutions/payment-mode/index.d.ts +1 -1
  16. package/api/stellar-solutions/preference/index.d.ts +1 -1
  17. package/api/stellar-solutions/product/index.d.ts +1 -1
  18. package/api/stellar-solutions/product-category/index.d.ts +1 -1
  19. package/api/stellar-solutions/profile/index.d.ts +1 -1
  20. package/api/stellar-solutions/quote-invoice/index.d.ts +1 -1
  21. package/api/stellar-solutions/quote-invoice-report/index.d.ts +1 -1
  22. package/api/stellar-solutions/tax/index.d.ts +1 -1
  23. package/api/stellar-solutions/types/common.d.ts +24 -0
  24. package/api/stellar-solutions/types/common.js +22 -0
  25. package/api/stellar-solutions/{type.d.ts → types/erp.d.ts} +1 -199
  26. package/api/stellar-solutions/types/erp.js +68 -0
  27. package/api/stellar-solutions/types/index.d.ts +3 -0
  28. package/api/stellar-solutions/types/index.js +19 -0
  29. package/api/stellar-solutions/types/pos.d.ts +176 -0
  30. package/api/stellar-solutions/types/pos.js +61 -0
  31. package/general/index.d.ts +0 -1
  32. package/general/index.js +0 -1
  33. package/index.d.ts +1 -1
  34. package/index.js +1 -1
  35. package/package.json +1 -1
  36. package/api/stellar-solutions/bank/cache.d.ts +0 -0
  37. package/api/stellar-solutions/bank/cache.js +0 -237
  38. package/api/stellar-solutions/branch/cache.d.ts +0 -0
  39. package/api/stellar-solutions/branch/cache.js +0 -241
  40. package/api/stellar-solutions/company/cache.d.ts +0 -0
  41. package/api/stellar-solutions/company/cache.js +0 -247
  42. package/api/stellar-solutions/contact/cache.d.ts +0 -0
  43. package/api/stellar-solutions/contact/cache.js +0 -247
  44. package/api/stellar-solutions/currency/cache.d.ts +0 -0
  45. package/api/stellar-solutions/currency/cache.js +0 -243
  46. package/api/stellar-solutions/customer/cache.d.ts +0 -0
  47. package/api/stellar-solutions/customer/cache.js +0 -249
  48. package/api/stellar-solutions/expense/cache.d.ts +0 -0
  49. package/api/stellar-solutions/expense/cache.js +0 -247
  50. package/api/stellar-solutions/expense-category/cache.d.ts +0 -0
  51. package/api/stellar-solutions/expense-category/cache.js +0 -224
  52. package/api/stellar-solutions/payment-mode/cache.d.ts +0 -0
  53. package/api/stellar-solutions/payment-mode/cache.js +0 -245
  54. package/api/stellar-solutions/preference/cache.d.ts +0 -0
  55. package/api/stellar-solutions/preference/cache.js +0 -218
  56. package/api/stellar-solutions/product/cache.d.ts +0 -0
  57. package/api/stellar-solutions/product/cache.js +0 -222
  58. package/api/stellar-solutions/product-category/cache.d.ts +0 -0
  59. package/api/stellar-solutions/product-category/cache.js +0 -224
  60. package/api/stellar-solutions/tax/cache.d.ts +0 -0
  61. package/api/stellar-solutions/tax/cache.js +0 -235
  62. package/api/stellar-solutions/type.js +0 -142
@@ -1,224 +0,0 @@
1
- // import { API_ROUTES } from '../constants';
2
- // import { ExpenseCategoryBE, LS_KEYS } from '../type';
3
- // import { API_METHODS } from '../../../constants/api-methods';
4
- // import { fetchData } from '../../../general/fetch-data';
5
- // import { getStorageValue } from '../../../local-storage/get-storage-value';
6
- // import { setStorageValue } from '../../../local-storage/set-storage-value';
7
- // import { ONE_DAY_IN_MS } from '../../../constants';
8
- // interface CachedExpenseCategories {
9
- // expenseCategories: ExpenseCategoryBE[];
10
- // cachedAt: string;
11
- // }
12
- // /**
13
- // * Synchronous utility function to get expense categories from cache only
14
- // * Returns cached data immediately if available and fresh, otherwise returns empty array
15
- // * Does not trigger any API calls
16
- // *
17
- // * @returns ExpenseCategoryBE[] - Array of cached expense categories or empty array wrapper ({count, items})
18
- // *
19
- // * @example
20
- // * const expenseCategories = getCachedExpenseCategoriesSync();
21
- // * if (expenseCategories.items.length > 0) {
22
- // * console.log(expenseCategories.items[0].name);
23
- // * }
24
- // */
25
- // export const getCachedExpenseCategoriesSync = (): {
26
- // count: number;
27
- // items: ExpenseCategoryBE[];
28
- // } => {
29
- // try {
30
- // const cachedData = getStorageValue(
31
- // LS_KEYS.EXPENSE_CATEGORIES
32
- // ) as CachedExpenseCategories | null;
33
- // if (!cachedData) {
34
- // return { count: 0, items: [] };
35
- // }
36
- // const currentTime = new Date().getTime();
37
- // const cachedTime = new Date(cachedData.cachedAt).getTime();
38
- // const ageInMs = currentTime - cachedTime;
39
- // // If cached data is less than 1 day old, return it
40
- // if (ageInMs < ONE_DAY_IN_MS) {
41
- // return {
42
- // count: cachedData.expenseCategories.length,
43
- // items: cachedData.expenseCategories,
44
- // };
45
- // }
46
- // return { count: 0, items: [] };
47
- // } catch (error) {
48
- // console.error('Error getting cached expense categories:', error);
49
- // return { count: 0, items: [] };
50
- // }
51
- // };
52
- // /**
53
- // * Utility function to get expense categories from cache or fetch from API
54
- // *
55
- // * This function manages a localStorage cache of expense categories with the following logic:
56
- // * - If expense categories exist in cache and are less than 1 day old, return cached version
57
- // * - If expense categories exist but are older than 1 day, fetch fresh data and update cache
58
- // * - If expense categories don't exist in cache, fetch from API and cache them
59
- // *
60
- // * @param searchQuery - Optional search query to filter expense categories
61
- // * @param filters - Optional filters object to apply additional filtering (bypasses cache)
62
- // * @param pageLimit - Number of expense categories to fetch (default: 100)
63
- // * @returns Promise<{count:number, items: ExpenseCategoryBE[]}> - Paged expense categories
64
- // *
65
- // * @example
66
- // * const expenseCategories = await getCachedExpenseCategories();
67
- // * console.log(expenseCategories.items[0].name);
68
- // *
69
- // * // With search
70
- // * const filtered = await getCachedExpenseCategories('Travel');
71
- // *
72
- // * // With filters
73
- // * const filteredByColor = await getCachedExpenseCategories(undefined, { color: '#FF0000' });
74
- // */
75
- // export const getCachedExpenseCategories = async (
76
- // searchQuery?: string,
77
- // filters?: Record<string, unknown>,
78
- // pageLimit: number = 100
79
- // ): Promise<{ count: number; items: ExpenseCategoryBE[] }> => {
80
- // try {
81
- // // If there's a search query or filters, always fetch fresh data (don't use cache)
82
- // if (
83
- // (searchQuery && searchQuery.trim()) ||
84
- // (filters && Object.keys(filters).length > 0)
85
- // ) {
86
- // const response = await fetchData({
87
- // url: API_ROUTES.EXPENSE_CATEGORIES,
88
- // body: JSON.stringify({
89
- // searchQuery,
90
- // ...filters,
91
- // pageLimit,
92
- // currentPage: 1,
93
- // }),
94
- // method: API_METHODS.POST,
95
- // });
96
- // return response?.data || { count: 0, items: [] };
97
- // }
98
- // // Get the cached data from localStorage
99
- // const cachedData = getStorageValue(
100
- // LS_KEYS.EXPENSE_CATEGORIES
101
- // ) as CachedExpenseCategories | null;
102
- // const currentTime = new Date().getTime();
103
- // // Check if cached data exists and is still fresh
104
- // if (cachedData) {
105
- // const cachedTime = new Date(cachedData.cachedAt).getTime();
106
- // const ageInMs = currentTime - cachedTime;
107
- // // If cached data is less than 1 day old, return it
108
- // if (ageInMs < ONE_DAY_IN_MS) {
109
- // return {
110
- // count: cachedData.expenseCategories.length,
111
- // items: cachedData.expenseCategories,
112
- // };
113
- // }
114
- // }
115
- // // If no cached data or data is older than 1 day, fetch fresh data
116
- // const response = await fetchData({
117
- // url: API_ROUTES.EXPENSE_CATEGORIES,
118
- // body: JSON.stringify({
119
- // pageLimit,
120
- // currentPage: 1,
121
- // }),
122
- // method: API_METHODS.POST,
123
- // });
124
- // if (response?.data?.items) {
125
- // // Update the cache with fresh data
126
- // const updatedCache: CachedExpenseCategories = {
127
- // expenseCategories: response.data.items,
128
- // cachedAt: new Date().toISOString(),
129
- // };
130
- // setStorageValue(LS_KEYS.EXPENSE_CATEGORIES, updatedCache);
131
- // return response.data;
132
- // }
133
- // return { count: 0, items: [] };
134
- // } catch (error) {
135
- // console.error('Error fetching expense categories:', error);
136
- // return { count: 0, items: [] };
137
- // }
138
- // };
139
- // /**
140
- // * Utility function to get a specific expense category by ID from cache
141
- // * If not found in cache, returns null (does not trigger API call)
142
- // *
143
- // * @param categoryId - The ID of the expense category to retrieve
144
- // * @returns ExpenseCategoryBE | null - The expense category or null if not found
145
- // *
146
- // * @example
147
- // * const category = getCachedExpenseCategoryById('cat-123');
148
- // * if (category) {
149
- // * console.log(category.name);
150
- // * }
151
- // */
152
- // export const getCachedExpenseCategoryById = (
153
- // categoryId: string
154
- // ): ExpenseCategoryBE | null => {
155
- // if (!categoryId) {
156
- // return null;
157
- // }
158
- // try {
159
- // const categories = getCachedExpenseCategoriesSync().items;
160
- // return categories.find((cat) => cat.id === categoryId) || null;
161
- // } catch (error) {
162
- // console.error('Error getting cached expense category by ID:', error);
163
- // return null;
164
- // }
165
- // };
166
- // /**
167
- // * Utility function to invalidate (remove) expense categories from cache
168
- // * Useful when expense categories have been updated and you want to force a refresh
169
- // *
170
- // * @example
171
- // * invalidateExpenseCategoriesCache();
172
- // * const freshCategories = await getCachedExpenseCategories();
173
- // */
174
- // export const invalidateExpenseCategoriesCache = (): void => {
175
- // try {
176
- // localStorage.removeItem(LS_KEYS.EXPENSE_CATEGORIES);
177
- // } catch (error) {
178
- // console.error('Error invalidating expense categories cache:', error);
179
- // }
180
- // };
181
- // /**
182
- // * Utility function to preload expense categories into cache
183
- // * Useful to call on app initialization or login
184
- // *
185
- // * @returns Promise<{count:number, items: ExpenseCategoryBE[]}> - Array of preloaded expense categories
186
- // *
187
- // * @example
188
- // * // On app initialization
189
- // * await preloadExpenseCategories();
190
- // */
191
- // export const preloadExpenseCategories = async (): Promise<{
192
- // count: number;
193
- // items: ExpenseCategoryBE[];
194
- // }> => {
195
- // return getCachedExpenseCategories();
196
- // };
197
- // /**
198
- // * Utility function to check if expense categories cache is stale
199
- // * Returns true if cache is older than 1 day or doesn't exist
200
- // *
201
- // * @returns boolean - True if cache is stale or doesn't exist
202
- // *
203
- // * @example
204
- // * if (isExpenseCategoriesCacheStale()) {
205
- // * await getCachedExpenseCategories(); // This will fetch fresh data
206
- // * }
207
- // */
208
- // export const isExpenseCategoriesCacheStale = (): boolean => {
209
- // try {
210
- // const cachedData = getStorageValue(
211
- // LS_KEYS.EXPENSE_CATEGORIES
212
- // ) as CachedExpenseCategories | null;
213
- // if (!cachedData) {
214
- // return true;
215
- // }
216
- // const currentTime = new Date().getTime();
217
- // const cachedTime = new Date(cachedData.cachedAt).getTime();
218
- // const ageInMs = currentTime - cachedTime;
219
- // return ageInMs >= ONE_DAY_IN_MS;
220
- // } catch (error) {
221
- // console.error('Error checking expense categories cache staleness:', error);
222
- // return true;
223
- // }
224
- // };
File without changes
@@ -1,245 +0,0 @@
1
- // import { API_ROUTES } from '../constants';
2
- // import { PaymentModeBE, LS_KEYS } from '../type';
3
- // import { API_METHODS } from '../../../constants/api-methods';
4
- // import { fetchData } from '../../../general/fetch-data';
5
- // import { getStorageValue } from '../../../local-storage/get-storage-value';
6
- // import { setStorageValue } from '../../../local-storage/set-storage-value';
7
- // import { ONE_WEEK_IN_MS } from '../../../constants';
8
- // interface CachedPaymentModes {
9
- // paymentModes: PaymentModeBE[];
10
- // cachedAt: string;
11
- // }
12
- // /**
13
- // * Synchronous utility function to get payment modes from cache only
14
- // * Returns cached data immediately if available and fresh, otherwise returns empty array
15
- // * Does not trigger any API calls
16
- // *
17
- // * @returns PaymentModeBE[] - Array of cached payment modes or empty array wrapper ({count, items})
18
- // *
19
- // * @example
20
- // * const paymentModes = getCachedPaymentModesSync();
21
- // * if (paymentModes.items.length > 0) {
22
- // * console.log(paymentModes.items[0].label);
23
- // * }
24
- // */
25
- // export const getCachedPaymentModesSync = (): {
26
- // count: number;
27
- // items: PaymentModeBE[];
28
- // } => {
29
- // try {
30
- // const cachedData = getStorageValue(
31
- // LS_KEYS.PAYMENT_MODES
32
- // ) as CachedPaymentModes | null;
33
- // if (!cachedData) {
34
- // return { count: 0, items: [] };
35
- // }
36
- // const currentTime = new Date().getTime();
37
- // const cachedTime = new Date(cachedData.cachedAt).getTime();
38
- // const ageInMs = currentTime - cachedTime;
39
- // // If cached data is less than 1 week old, return it
40
- // if (ageInMs < ONE_WEEK_IN_MS) {
41
- // return {
42
- // count: cachedData.paymentModes.length,
43
- // items: cachedData.paymentModes,
44
- // };
45
- // }
46
- // return { count: 0, items: [] };
47
- // } catch (error) {
48
- // console.error('Error getting cached payment modes:', error);
49
- // return { count: 0, items: [] };
50
- // }
51
- // };
52
- // /**
53
- // * Utility function to get payment modes from cache or fetch from API
54
- // *
55
- // * This function manages a localStorage cache of payment modes with the following logic:
56
- // * - If payment modes exist in cache and are less than 1 week old, return cached version
57
- // * - If payment modes exist but are older than 1 week, fetch fresh data and update cache
58
- // * - If payment modes don't exist in cache, fetch from API and cache them
59
- // *
60
- // * @param searchQuery - Optional search query to filter payment modes
61
- // * @param pageLimit - Number of payment modes to fetch (default: 100)
62
- // * @returns Promise<{count:number, items: PaymentModeBE[]}> - Paged payment modes
63
- // *
64
- // * @example
65
- // * const paymentModes = await getCachedPaymentModes();
66
- // * console.log(paymentModes.items[0].label);
67
- // *
68
- // * // With search
69
- // * const filtered = await getCachedPaymentModes('Cash');
70
- // */
71
- // export const getCachedPaymentModes = async (
72
- // searchQuery?: string,
73
- // pageLimit: number = 100
74
- // ): Promise<{
75
- // count: number;
76
- // items: PaymentModeBE[];
77
- // }> => {
78
- // try {
79
- // // If there's a search query, always fetch fresh data (don't use cache)
80
- // if (searchQuery && searchQuery.trim()) {
81
- // const response = await fetchData({
82
- // url: API_ROUTES.PAYMENT_MODES,
83
- // body: JSON.stringify({
84
- // searchQuery,
85
- // pageLimit,
86
- // currentPage: 1,
87
- // }),
88
- // method: API_METHODS.POST,
89
- // });
90
- // return response?.data || { count: 0, items: [] };
91
- // }
92
- // // Get the cached data from localStorage
93
- // const cachedData = getStorageValue(
94
- // LS_KEYS.PAYMENT_MODES
95
- // ) as CachedPaymentModes | null;
96
- // const currentTime = new Date().getTime();
97
- // // Check if cached data exists and is still fresh
98
- // if (cachedData) {
99
- // const cachedTime = new Date(cachedData.cachedAt).getTime();
100
- // const ageInMs = currentTime - cachedTime;
101
- // // If cached data is less than 1 week old, return it
102
- // if (ageInMs < ONE_WEEK_IN_MS) {
103
- // return {
104
- // count: cachedData.paymentModes.length,
105
- // items: cachedData.paymentModes,
106
- // };
107
- // }
108
- // }
109
- // // If no cached data or data is older than 1 week, fetch fresh data
110
- // const response = await fetchData({
111
- // url: API_ROUTES.PAYMENT_MODES,
112
- // body: JSON.stringify({
113
- // pageLimit,
114
- // currentPage: 1,
115
- // }),
116
- // method: API_METHODS.POST,
117
- // });
118
- // if (response?.data?.items) {
119
- // // Update the cache with fresh data
120
- // const updatedCache: CachedPaymentModes = {
121
- // paymentModes: response.data.items,
122
- // cachedAt: new Date().toISOString(),
123
- // };
124
- // setStorageValue(LS_KEYS.PAYMENT_MODES, updatedCache);
125
- // return response.data;
126
- // }
127
- // return { count: 0, items: [] };
128
- // } catch (error) {
129
- // console.error('Error fetching payment modes:', error);
130
- // return { count: 0, items: [] };
131
- // }
132
- // };
133
- // /**
134
- // * Utility function to get a specific payment mode by ID from cache
135
- // * If not found in cache, returns null (does not trigger API call)
136
- // *
137
- // * @param paymentModeId - The ID of the payment mode to retrieve
138
- // * @returns PaymentModeBE | null - The payment mode or null if not found
139
- // *
140
- // * @example
141
- // * const paymentMode = getCachedPaymentModeById('pm-123');
142
- // * if (paymentMode) {
143
- // * console.log(paymentMode.label);
144
- // * }
145
- // */
146
- // export const getCachedPaymentModeById = (
147
- // paymentModeId: string
148
- // ): PaymentModeBE | null => {
149
- // if (!paymentModeId) {
150
- // return null;
151
- // }
152
- // try {
153
- // const paymentModes = getCachedPaymentModesSync().items;
154
- // return paymentModes.find((pm) => pm.id === paymentModeId) || null;
155
- // } catch (error) {
156
- // console.error('Error getting cached payment mode by ID:', error);
157
- // return null;
158
- // }
159
- // };
160
- // /**
161
- // * Utility function to get payment modes by label from cache
162
- // * If not found in cache, returns empty array (does not trigger API call)
163
- // *
164
- // * @param label - The label of the payment mode to search for
165
- // * @returns PaymentModeBE[] - Array of matching payment modes or empty array
166
- // *
167
- // * @example
168
- // * const paymentModes = getCachedPaymentModesByLabel('Cash');
169
- // * console.log(paymentModes.length);
170
- // */
171
- // export const getCachedPaymentModesByLabel = (
172
- // label: string
173
- // ): PaymentModeBE[] => {
174
- // if (!label) {
175
- // return [];
176
- // }
177
- // try {
178
- // const paymentModes = getCachedPaymentModesSync().items;
179
- // return paymentModes.filter((pm) =>
180
- // pm.label.toLowerCase().includes(label.toLowerCase())
181
- // );
182
- // } catch (error) {
183
- // console.error('Error getting cached payment modes by label:', error);
184
- // return [];
185
- // }
186
- // };
187
- // /**
188
- // * Utility function to invalidate (remove) payment modes from cache
189
- // * Useful when payment modes have been updated and you want to force a refresh
190
- // *
191
- // * @example
192
- // * invalidatePaymentModesCache();
193
- // * const freshPaymentModes = await getCachedPaymentModes();
194
- // */
195
- // export const invalidatePaymentModesCache = (): void => {
196
- // try {
197
- // localStorage.removeItem(LS_KEYS.PAYMENT_MODES);
198
- // } catch (error) {
199
- // console.error('Error invalidating payment modes cache:', error);
200
- // }
201
- // };
202
- // /**
203
- // * Utility function to preload payment modes into cache
204
- // * Useful to call on app initialization or login
205
- // *
206
- // * @returns Promise<{count:number, items: PaymentModeBE[]}> - Array of preloaded payment modes
207
- // *
208
- // * @example
209
- // * // On app initialization
210
- // * await preloadPaymentModes();
211
- // */
212
- // export const preloadPaymentModes = async (): Promise<{
213
- // count: number;
214
- // items: PaymentModeBE[];
215
- // }> => {
216
- // return getCachedPaymentModes();
217
- // };
218
- // /**
219
- // * Utility function to check if payment modes cache is stale
220
- // * Returns true if cache is older than 1 week or doesn't exist
221
- // *
222
- // * @returns boolean - True if cache is stale or doesn't exist
223
- // *
224
- // * @example
225
- // * if (isPaymentModesCacheStale()) {
226
- // * await getCachedPaymentModes(); // This will fetch fresh data
227
- // * }
228
- // */
229
- // export const isPaymentModesCacheStale = (): boolean => {
230
- // try {
231
- // const cachedData = getStorageValue(
232
- // LS_KEYS.PAYMENT_MODES
233
- // ) as CachedPaymentModes | null;
234
- // if (!cachedData) {
235
- // return true;
236
- // }
237
- // const currentTime = new Date().getTime();
238
- // const cachedTime = new Date(cachedData.cachedAt).getTime();
239
- // const ageInMs = currentTime - cachedTime;
240
- // return ageInMs >= ONE_WEEK_IN_MS;
241
- // } catch (error) {
242
- // console.error('Error checking payment modes cache staleness:', error);
243
- // return true;
244
- // }
245
- // };
File without changes