@react-pakistan/util-functions 1.24.98 → 1.25.0

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 (59) hide show
  1. package/api/stellar-solutions/bank/cache.d.ts +99 -0
  2. package/api/stellar-solutions/bank/cache.js +256 -0
  3. package/api/stellar-solutions/bank/index.d.ts +1 -1
  4. package/api/stellar-solutions/bank/index.js +15 -0
  5. package/api/stellar-solutions/branch/cache.d.ts +97 -0
  6. package/api/stellar-solutions/branch/cache.js +256 -0
  7. package/api/stellar-solutions/branch/index.d.ts +1 -1
  8. package/api/stellar-solutions/branch/index.js +15 -0
  9. package/api/stellar-solutions/company/cache.d.ts +106 -0
  10. package/api/stellar-solutions/company/cache.js +307 -0
  11. package/api/stellar-solutions/company/index.d.ts +1 -1
  12. package/api/stellar-solutions/company/index.js +15 -0
  13. package/api/stellar-solutions/constants.d.ts +21 -0
  14. package/api/stellar-solutions/constants.js +24 -0
  15. package/api/stellar-solutions/contact/cache.d.ts +108 -0
  16. package/api/stellar-solutions/contact/cache.js +307 -0
  17. package/api/stellar-solutions/contact/index.d.ts +1 -1
  18. package/api/stellar-solutions/contact/index.js +15 -0
  19. package/api/stellar-solutions/currency/cache.d.ts +99 -0
  20. package/api/stellar-solutions/currency/cache.js +256 -0
  21. package/api/stellar-solutions/currency/index.d.ts +1 -1
  22. package/api/stellar-solutions/currency/index.js +15 -0
  23. package/api/stellar-solutions/customer/cache.d.ts +108 -0
  24. package/api/stellar-solutions/customer/cache.js +307 -0
  25. package/api/stellar-solutions/customer/index.d.ts +1 -1
  26. package/api/stellar-solutions/customer/index.js +15 -0
  27. package/api/stellar-solutions/expense/cache.d.ts +106 -0
  28. package/api/stellar-solutions/expense/cache.js +307 -0
  29. package/api/stellar-solutions/expense/index.d.ts +1 -1
  30. package/api/stellar-solutions/expense/index.js +15 -0
  31. package/api/stellar-solutions/expense-category/cache.d.ts +94 -0
  32. package/api/stellar-solutions/expense-category/cache.js +280 -0
  33. package/api/stellar-solutions/expense-category/index.d.ts +1 -1
  34. package/api/stellar-solutions/expense-category/index.js +15 -0
  35. package/api/stellar-solutions/payment-mode/cache.d.ts +97 -0
  36. package/api/stellar-solutions/payment-mode/cache.js +256 -0
  37. package/api/stellar-solutions/payment-mode/index.d.ts +1 -1
  38. package/api/stellar-solutions/payment-mode/index.js +15 -0
  39. package/api/stellar-solutions/preference/cache.d.ts +85 -0
  40. package/api/stellar-solutions/preference/cache.js +229 -0
  41. package/api/stellar-solutions/preference/index.d.ts +1 -1
  42. package/api/stellar-solutions/preference/index.js +15 -0
  43. package/api/stellar-solutions/product/cache.d.ts +94 -0
  44. package/api/stellar-solutions/product/cache.js +280 -0
  45. package/api/stellar-solutions/product/index.d.ts +4 -6
  46. package/api/stellar-solutions/product/index.js +24 -8
  47. package/api/stellar-solutions/product-category/cache.d.ts +94 -0
  48. package/api/stellar-solutions/product-category/cache.js +280 -0
  49. package/api/stellar-solutions/product-category/index.d.ts +1 -1
  50. package/api/stellar-solutions/product-category/index.js +15 -0
  51. package/api/stellar-solutions/tax/cache.d.ts +97 -0
  52. package/api/stellar-solutions/tax/cache.js +256 -0
  53. package/api/stellar-solutions/tax/index.d.ts +1 -1
  54. package/api/stellar-solutions/tax/index.js +15 -0
  55. package/api/stellar-solutions/type.d.ts +15 -0
  56. package/api/stellar-solutions/type.js +17 -1
  57. package/index.d.ts +6 -5
  58. package/index.js +6 -6
  59. package/package.json +1 -1
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
17
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
18
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -46,6 +60,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
46
60
  };
47
61
  Object.defineProperty(exports, "__esModule", { value: true });
48
62
  exports.deletePaymentMode = exports.updatePaymentMode = exports.unitPaymentModeById = exports.listPaymentMode = void 0;
63
+ __exportStar(require("./cache"), exports);
49
64
  var multi_part_search_1 = require("../../../general/multi-part-search");
50
65
  /**
51
66
  * Retrieves a paginated list of payment modes
@@ -0,0 +1,85 @@
1
+ import { PreferenceBE } from '../type';
2
+ /**
3
+ * Synchronous utility function to get preferences 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 PreferenceBE[] - Array of cached preferences or empty array wrapper ({count, items})
8
+ *
9
+ * @example
10
+ * const preferences = getCachedPreferencesSync();
11
+ * if (preferences.items.length > 0) {
12
+ * console.log(preferences.items[0].onboarding);
13
+ * }
14
+ */
15
+ export declare const getCachedPreferencesSync: () => {
16
+ count: number;
17
+ items: PreferenceBE[];
18
+ };
19
+ /**
20
+ * Utility function to get preferences from cache or fetch from API
21
+ *
22
+ * This function manages a localStorage cache of preferences with the following logic:
23
+ * - If preferences exist in cache and are less than 1 day old, return cached version
24
+ * - If preferences exist but are older than 1 day, fetch fresh data and update cache
25
+ * - If preferences don't exist in cache, fetch from API and cache them
26
+ *
27
+ * @returns Promise<{count:number, items: PreferenceBE[]}> - Paged preferences
28
+ *
29
+ * @example
30
+ * const preferences = await getCachedPreferences();
31
+ * console.log(preferences.items[0].onboarding);
32
+ */
33
+ export declare const getCachedPreferences: () => Promise<{
34
+ count: number;
35
+ items: PreferenceBE[];
36
+ }>;
37
+ /**
38
+ * Utility function to get a specific preference by ID from cache
39
+ * If not found in cache, returns null (does not trigger API call)
40
+ *
41
+ * @param preferenceId - The ID of the preference to retrieve
42
+ * @returns PreferenceBE | null - The preference or null if not found
43
+ *
44
+ * @example
45
+ * const preference = getCachedPreferenceById('pref-123');
46
+ * if (preference) {
47
+ * console.log(preference.onboarding);
48
+ * }
49
+ */
50
+ export declare const getCachedPreferenceById: (preferenceId: string) => PreferenceBE | null;
51
+ /**
52
+ * Utility function to invalidate (remove) preferences from cache
53
+ * Useful when preferences have been updated and you want to force a refresh
54
+ *
55
+ * @example
56
+ * invalidatePreferencesCache();
57
+ * const freshPreferences = await getCachedPreferences();
58
+ */
59
+ export declare const invalidatePreferencesCache: () => void;
60
+ /**
61
+ * Utility function to preload preferences into cache
62
+ * Useful to call on app initialization or login
63
+ *
64
+ * @returns Promise<{count:number, items: PreferenceBE[]}> - Array of preloaded preferences
65
+ *
66
+ * @example
67
+ * // On app initialization
68
+ * await preloadPreferences();
69
+ */
70
+ export declare const preloadPreferences: () => Promise<{
71
+ count: number;
72
+ items: PreferenceBE[];
73
+ }>;
74
+ /**
75
+ * Utility function to check if preferences cache is stale
76
+ * Returns true if cache is older than 1 day or doesn't exist
77
+ *
78
+ * @returns boolean - True if cache is stale or doesn't exist
79
+ *
80
+ * @example
81
+ * if (isPreferencesCacheStale()) {
82
+ * await getCachedPreferences(); // This will fetch fresh data
83
+ * }
84
+ */
85
+ export declare const isPreferencesCacheStale: () => boolean;
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ 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);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.isPreferencesCacheStale = exports.preloadPreferences = exports.invalidatePreferencesCache = exports.getCachedPreferenceById = exports.getCachedPreferences = exports.getCachedPreferencesSync = void 0;
40
+ var constants_1 = require("../constants");
41
+ var type_1 = require("../type");
42
+ var api_methods_1 = require("../../../constants/api-methods");
43
+ var fetch_data_1 = require("../../../general/fetch-data");
44
+ var get_storage_value_1 = require("../../../local-storage/get-storage-value");
45
+ var set_storage_value_1 = require("../../../local-storage/set-storage-value");
46
+ /**
47
+ * Synchronous utility function to get preferences from cache only
48
+ * Returns cached data immediately if available and fresh, otherwise returns empty array
49
+ * Does not trigger any API calls
50
+ *
51
+ * @returns PreferenceBE[] - Array of cached preferences or empty array wrapper ({count, items})
52
+ *
53
+ * @example
54
+ * const preferences = getCachedPreferencesSync();
55
+ * if (preferences.items.length > 0) {
56
+ * console.log(preferences.items[0].onboarding);
57
+ * }
58
+ */
59
+ var getCachedPreferencesSync = function () {
60
+ try {
61
+ var cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.PREFERENCES);
62
+ if (!cachedData) {
63
+ return { count: 0, items: [] };
64
+ }
65
+ var currentTime = new Date().getTime();
66
+ var cachedTime = new Date(cachedData.cachedAt).getTime();
67
+ var ageInMs = currentTime - cachedTime;
68
+ // If cached data is less than 1 day old, return it
69
+ if (ageInMs < constants_1.ONE_WEEK_IN_MS) {
70
+ return {
71
+ count: cachedData.preferences.length,
72
+ items: cachedData.preferences,
73
+ };
74
+ }
75
+ return { count: 0, items: [] };
76
+ }
77
+ catch (error) {
78
+ console.error('Error getting cached preferences:', error);
79
+ return { count: 0, items: [] };
80
+ }
81
+ };
82
+ exports.getCachedPreferencesSync = getCachedPreferencesSync;
83
+ /**
84
+ * Utility function to get preferences from cache or fetch from API
85
+ *
86
+ * This function manages a localStorage cache of preferences with the following logic:
87
+ * - If preferences exist in cache and are less than 1 day old, return cached version
88
+ * - If preferences exist but are older than 1 day, fetch fresh data and update cache
89
+ * - If preferences don't exist in cache, fetch from API and cache them
90
+ *
91
+ * @returns Promise<{count:number, items: PreferenceBE[]}> - Paged preferences
92
+ *
93
+ * @example
94
+ * const preferences = await getCachedPreferences();
95
+ * console.log(preferences.items[0].onboarding);
96
+ */
97
+ var getCachedPreferences = function () { return __awaiter(void 0, void 0, void 0, function () {
98
+ var cachedData, currentTime, cachedTime, ageInMs, response, updatedCache, error_1;
99
+ var _a;
100
+ return __generator(this, function (_b) {
101
+ switch (_b.label) {
102
+ case 0:
103
+ _b.trys.push([0, 2, , 3]);
104
+ cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.PREFERENCES);
105
+ currentTime = new Date().getTime();
106
+ // Check if cached data exists and is still fresh
107
+ if (cachedData) {
108
+ cachedTime = new Date(cachedData.cachedAt).getTime();
109
+ ageInMs = currentTime - cachedTime;
110
+ // If cached data is less than 1 day old, return it
111
+ if (ageInMs < constants_1.ONE_WEEK_IN_MS) {
112
+ return [2 /*return*/, {
113
+ count: cachedData.preferences.length,
114
+ items: cachedData.preferences,
115
+ }];
116
+ }
117
+ }
118
+ return [4 /*yield*/, (0, fetch_data_1.fetchData)({
119
+ url: constants_1.API_ROUTES.PREFERENCES,
120
+ method: api_methods_1.API_METHODS.GET,
121
+ })];
122
+ case 1:
123
+ response = _b.sent();
124
+ if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.items) {
125
+ updatedCache = {
126
+ preferences: response.data.items,
127
+ cachedAt: new Date().toISOString(),
128
+ };
129
+ (0, set_storage_value_1.setStorageValue)(type_1.LS_KEYS.PREFERENCES, updatedCache);
130
+ return [2 /*return*/, response.data];
131
+ }
132
+ return [2 /*return*/, { count: 0, items: [] }];
133
+ case 2:
134
+ error_1 = _b.sent();
135
+ console.error('Error fetching preferences:', error_1);
136
+ return [2 /*return*/, { count: 0, items: [] }];
137
+ case 3: return [2 /*return*/];
138
+ }
139
+ });
140
+ }); };
141
+ exports.getCachedPreferences = getCachedPreferences;
142
+ /**
143
+ * Utility function to get a specific preference by ID from cache
144
+ * If not found in cache, returns null (does not trigger API call)
145
+ *
146
+ * @param preferenceId - The ID of the preference to retrieve
147
+ * @returns PreferenceBE | null - The preference or null if not found
148
+ *
149
+ * @example
150
+ * const preference = getCachedPreferenceById('pref-123');
151
+ * if (preference) {
152
+ * console.log(preference.onboarding);
153
+ * }
154
+ */
155
+ var getCachedPreferenceById = function (preferenceId) {
156
+ if (!preferenceId) {
157
+ return null;
158
+ }
159
+ try {
160
+ var preferences = (0, exports.getCachedPreferencesSync)().items;
161
+ return preferences.find(function (pref) { return pref.id === preferenceId; }) || null;
162
+ }
163
+ catch (error) {
164
+ console.error('Error getting cached preference by ID:', error);
165
+ return null;
166
+ }
167
+ };
168
+ exports.getCachedPreferenceById = getCachedPreferenceById;
169
+ /**
170
+ * Utility function to invalidate (remove) preferences from cache
171
+ * Useful when preferences have been updated and you want to force a refresh
172
+ *
173
+ * @example
174
+ * invalidatePreferencesCache();
175
+ * const freshPreferences = await getCachedPreferences();
176
+ */
177
+ var invalidatePreferencesCache = function () {
178
+ try {
179
+ localStorage.removeItem(type_1.LS_KEYS.PREFERENCES);
180
+ }
181
+ catch (error) {
182
+ console.error('Error invalidating preferences cache:', error);
183
+ }
184
+ };
185
+ exports.invalidatePreferencesCache = invalidatePreferencesCache;
186
+ /**
187
+ * Utility function to preload preferences into cache
188
+ * Useful to call on app initialization or login
189
+ *
190
+ * @returns Promise<{count:number, items: PreferenceBE[]}> - Array of preloaded preferences
191
+ *
192
+ * @example
193
+ * // On app initialization
194
+ * await preloadPreferences();
195
+ */
196
+ var preloadPreferences = function () { return __awaiter(void 0, void 0, void 0, function () {
197
+ return __generator(this, function (_a) {
198
+ return [2 /*return*/, (0, exports.getCachedPreferences)()];
199
+ });
200
+ }); };
201
+ exports.preloadPreferences = preloadPreferences;
202
+ /**
203
+ * Utility function to check if preferences cache is stale
204
+ * Returns true if cache is older than 1 day or doesn't exist
205
+ *
206
+ * @returns boolean - True if cache is stale or doesn't exist
207
+ *
208
+ * @example
209
+ * if (isPreferencesCacheStale()) {
210
+ * await getCachedPreferences(); // This will fetch fresh data
211
+ * }
212
+ */
213
+ var isPreferencesCacheStale = function () {
214
+ try {
215
+ var cachedData = (0, get_storage_value_1.getStorageValue)(type_1.LS_KEYS.PREFERENCES);
216
+ if (!cachedData) {
217
+ return true;
218
+ }
219
+ var currentTime = new Date().getTime();
220
+ var cachedTime = new Date(cachedData.cachedAt).getTime();
221
+ var ageInMs = currentTime - cachedTime;
222
+ return ageInMs >= constants_1.ONE_WEEK_IN_MS;
223
+ }
224
+ catch (error) {
225
+ console.error('Error checking preferences cache staleness:', error);
226
+ return true;
227
+ }
228
+ };
229
+ exports.isPreferencesCacheStale = isPreferencesCacheStale;
@@ -1,3 +1,4 @@
1
+ export * from './cache';
1
2
  import { PreferenceBE } from '../type';
2
3
  type PrismaClient = any;
3
4
  export interface ListPreferencesArgs {
@@ -22,4 +23,3 @@ export declare const listPreference: ({ orderByColumn, orderByDirection, prisma,
22
23
  * @returns {Promise<PreferenceBE>} Updated preference
23
24
  */
24
25
  export declare const updatePreference: ({ id, onboarding, prisma, }: PostPreferenceArgs) => Promise<PreferenceBE>;
25
- export {};
@@ -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) {
@@ -48,6 +62,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
48
62
  };
49
63
  Object.defineProperty(exports, "__esModule", { value: true });
50
64
  exports.updatePreference = exports.listPreference = void 0;
65
+ __exportStar(require("./cache"), exports);
51
66
  /**
52
67
  * Retrieves all preferences
53
68
  * @param {ListPreferencesArgs} args - Object containing prisma client and ordering options
@@ -0,0 +1,94 @@
1
+ import { ProductBE } from '../type';
2
+ /**
3
+ * Synchronous utility function to get products 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 ProductBE[] - Array of cached products or empty array wrapper ({count, items})
8
+ *
9
+ * @example
10
+ * const products = getCachedProductsSync();
11
+ * if (products.items.length > 0) {
12
+ * console.log(products.items[0].name);
13
+ * }
14
+ */
15
+ export declare const getCachedProductsSync: () => {
16
+ count: number;
17
+ items: ProductBE[];
18
+ };
19
+ /**
20
+ * Utility function to get products from cache or fetch from API
21
+ *
22
+ * This function manages a localStorage cache of products with the following logic:
23
+ * - If products exist in cache and are less than 1 day old, return cached version
24
+ * - If products exist but are older than 1 day, fetch fresh data and update cache
25
+ * - If products don't exist in cache, fetch from API and cache them
26
+ *
27
+ * @param searchQuery - Optional search query to filter products
28
+ * @param filters - Optional filters object to apply additional filtering (bypasses cache)
29
+ * @param pageLimit - Number of products to fetch (default: 100)
30
+ * @returns Promise<{count:number, items: ProductBE[]}> - Paged products
31
+ *
32
+ * @example
33
+ * const products = await getCachedProducts();
34
+ * console.log(products.items[0].name);
35
+ *
36
+ * // With search
37
+ * const filtered = await getCachedProducts('Samsung');
38
+ *
39
+ * // With filters
40
+ * const filteredByCategory = await getCachedProducts(undefined, { productCategoryId: 'cat-123' });
41
+ */
42
+ export declare const getCachedProducts: (searchQuery?: string, filters?: Record<string, unknown>, pageLimit?: number) => Promise<{
43
+ count: number;
44
+ items: ProductBE[];
45
+ }>;
46
+ /**
47
+ * Utility function to get a specific product by ID from cache
48
+ * If not found in cache, returns null (does not trigger API call)
49
+ *
50
+ * @param productId - The ID of the product to retrieve
51
+ * @returns ProductBE | null - The product or null if not found
52
+ *
53
+ * @example
54
+ * const product = getCachedProductById('prod-123');
55
+ * if (product) {
56
+ * console.log(product.name);
57
+ * }
58
+ */
59
+ export declare const getCachedProductById: (categoryId: string) => ProductBE | null;
60
+ /**
61
+ * Utility function to invalidate (remove) products from cache
62
+ * Useful when products have been updated and you want to force a refresh
63
+ *
64
+ * @example
65
+ * invalidateProductsCache();
66
+ * const freshProducts = await getCachedProducts();
67
+ */
68
+ export declare const invalidateProductsCache: () => void;
69
+ /**
70
+ * Utility function to preload products into cache
71
+ * Useful to call on app initialization or login
72
+ *
73
+ * @returns Promise<{count:number, items: ProductBE[]}> - Array of preloaded products
74
+ *
75
+ * @example
76
+ * // On app initialization
77
+ * await preloadProducts();
78
+ */
79
+ export declare const preloadProducts: () => Promise<{
80
+ count: number;
81
+ items: ProductBE[];
82
+ }>;
83
+ /**
84
+ * Utility function to check if products cache is stale
85
+ * Returns true if cache is older than 1 day or doesn't exist
86
+ *
87
+ * @returns boolean - True if cache is stale or doesn't exist
88
+ *
89
+ * @example
90
+ * if (isProductsCacheStale()) {
91
+ * await getCachedProducts(); // This will fetch fresh data
92
+ * }
93
+ */
94
+ export declare const isProductsCacheStale: () => boolean;