@simpleapps-com/augur-hooks 0.3.0 → 0.3.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.
@@ -1,5 +1,5 @@
1
1
  import * as _simpleapps_com_augur_utils from '@simpleapps-com/augur-utils';
2
- import { TPriceData, TItemDetails, TInvMastDoc, TCategory, TAttribute, TItemsFilters, TProductItem, TJoomlaContent, TJoomlaContentFilters, TProductCategory } from '@simpleapps-com/augur-utils';
2
+ import { TPriceData, TItemDetails, TInvMastDoc, TCategory, TAttribute, TItemsFilters, TProductItem, TJoomlaContent, TJoomlaContentFilters, TMenuFilters, MenuItem, TProductCategory } from '@simpleapps-com/augur-utils';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ReactNode } from 'react';
5
5
 
@@ -207,6 +207,10 @@ interface AugurCallbacks {
207
207
  getJoomlaContent?: (articleId: number | string) => Promise<TJoomlaContent>;
208
208
  /** Override Joomla content list fetching. */
209
209
  getJoomlaContentList?: (categoryId: number | string, filters?: Partial<TJoomlaContentFilters>) => Promise<TJoomlaContent[]>;
210
+ /** Override Joomla menu list fetching. */
211
+ getJoomlaMenu?: (filters?: Partial<TMenuFilters>) => Promise<MenuItem[]>;
212
+ /** Override Joomla menu document fetching. */
213
+ getJoomlaMenuDoc?: (menuId: number | string) => Promise<MenuItem>;
210
214
  }
211
215
 
212
216
  /**
@@ -477,4 +481,20 @@ declare const getJoomlaContentListOptions: (api: AugurApiClient, categoryId: num
477
481
  gcTime: number | undefined;
478
482
  };
479
483
 
480
- export { type AugurCallbacks as A, getJoomlaContentKey as B, type CacheConfig as C, getJoomlaContentListKey as D, getJoomlaContentListOptions as E, getJoomlaContentOptions as F, type GetItemCategoryApiOptions as G, getProductCategoryKey as H, type InfiniteScrollPage as I, getProductCategoryOptions as J, getProductSearchKey as K, getProductSearchOptions as L, getSearchSuggestionsKey as M, getSearchSuggestionsOptions as N, useAugurApi as O, type PageData as P, useAugurApiOptional as Q, useAugurAuth as R, type SearchSuggestionsResponse as S, useAugurCache as T, type SearchSuggestion as a, type AugurApiClient as b, type AugurAuthContext as c, type PersistenceConfig as d, AugurHooksProvider as e, type CacheProvider as f, type CacheTierConfig as g, getCartPricingQueryOptions as h, getCategoryItemsInfiniteKey as i, getCategoryItemsInfiniteOptions as j, getInvMastDocKey as k, getInvMastDocOptions as l, getInvMastKey as m, getInvMastOptions as n, getInvMastStockKey as o, getInvMastStockOptions as p, getItemAttributesKey as q, getItemAttributesOptions as r, getItemCategoryKey as s, getItemCategoryOptions as t, getItemDetailsKey as u, getItemDetailsOptions as v, getItemPriceKey as w, getItemPriceOptions as x, getItemSearchInfiniteKey as y, getItemSearchInfiniteOptions as z };
484
+ declare const getJoomlaMenuKey: (filters?: Partial<TMenuFilters>) => readonly ["joomlaMenu", Partial<TMenuFilters> | undefined];
485
+ declare const getJoomlaMenuOptions: (api: AugurApiClient, filters?: Partial<TMenuFilters>, cache?: CacheConfig) => {
486
+ queryKey: readonly ["joomlaMenu", Partial<TMenuFilters> | undefined];
487
+ queryFn: () => Promise<MenuItem[]>;
488
+ staleTime: number | undefined;
489
+ gcTime: number | undefined;
490
+ };
491
+
492
+ declare const getJoomlaMenuDocKey: (menuId: number | string) => readonly ["joomlaMenuDoc", string | number];
493
+ declare const getJoomlaMenuDocOptions: (api: AugurApiClient, menuId: number | string, cache?: CacheConfig) => {
494
+ queryKey: readonly ["joomlaMenuDoc", string | number];
495
+ queryFn: () => Promise<MenuItem>;
496
+ staleTime: number | undefined;
497
+ gcTime: number | undefined;
498
+ };
499
+
500
+ export { type AugurCallbacks as A, getJoomlaContentKey as B, type CacheConfig as C, getJoomlaContentListKey as D, getJoomlaContentListOptions as E, getJoomlaContentOptions as F, type GetItemCategoryApiOptions as G, getJoomlaMenuDocKey as H, type InfiniteScrollPage as I, getJoomlaMenuDocOptions as J, getJoomlaMenuKey as K, getJoomlaMenuOptions as L, getProductCategoryKey as M, getProductCategoryOptions as N, getProductSearchKey as O, type PageData as P, getProductSearchOptions as Q, getSearchSuggestionsKey as R, type SearchSuggestionsResponse as S, getSearchSuggestionsOptions as T, useAugurApi as U, useAugurApiOptional as V, useAugurAuth as W, useAugurCache as X, type SearchSuggestion as a, type AugurApiClient as b, type AugurAuthContext as c, type PersistenceConfig as d, AugurHooksProvider as e, type CacheProvider as f, type CacheTierConfig as g, getCartPricingQueryOptions as h, getCategoryItemsInfiniteKey as i, getCategoryItemsInfiniteOptions as j, getInvMastDocKey as k, getInvMastDocOptions as l, getInvMastKey as m, getInvMastOptions as n, getInvMastStockKey as o, getInvMastStockOptions as p, getItemAttributesKey as q, getItemAttributesOptions as r, getItemCategoryKey as s, getItemCategoryOptions as t, getItemDetailsKey as u, getItemDetailsOptions as v, getItemPriceKey as w, getItemPriceOptions as x, getItemSearchInfiniteKey as y, getItemSearchInfiniteOptions as z };
package/dist/server.cjs CHANGED
@@ -29,11 +29,11 @@
29
29
 
30
30
 
31
31
 
32
- var _chunkIYEN7NGCcjs = require('./chunk-IYEN7NGC.cjs');
33
32
 
34
33
 
35
34
 
36
35
 
36
+ var _chunkQXDTBGFOcjs = require('./chunk-QXDTBGFO.cjs');
37
37
 
38
38
 
39
39
 
@@ -61,5 +61,13 @@ var _chunkIYEN7NGCcjs = require('./chunk-IYEN7NGC.cjs');
61
61
 
62
62
 
63
63
 
64
- exports.getCartPricingQueryOptions = _chunkIYEN7NGCcjs.getCartPricingQueryOptions; exports.getCategoryItemsInfiniteKey = _chunkIYEN7NGCcjs.getCategoryItemsInfiniteKey; exports.getCategoryItemsInfiniteOptions = _chunkIYEN7NGCcjs.getCategoryItemsInfiniteOptions; exports.getInvMastDocKey = _chunkIYEN7NGCcjs.getInvMastDocKey; exports.getInvMastDocOptions = _chunkIYEN7NGCcjs.getInvMastDocOptions; exports.getInvMastKey = _chunkIYEN7NGCcjs.getInvMastKey; exports.getInvMastOptions = _chunkIYEN7NGCcjs.getInvMastOptions; exports.getInvMastStockKey = _chunkIYEN7NGCcjs.getInvMastStockKey; exports.getInvMastStockOptions = _chunkIYEN7NGCcjs.getInvMastStockOptions; exports.getItemAttributesKey = _chunkIYEN7NGCcjs.getItemAttributesKey; exports.getItemAttributesOptions = _chunkIYEN7NGCcjs.getItemAttributesOptions; exports.getItemCategoryKey = _chunkIYEN7NGCcjs.getItemCategoryKey; exports.getItemCategoryOptions = _chunkIYEN7NGCcjs.getItemCategoryOptions; exports.getItemDetailsKey = _chunkIYEN7NGCcjs.getItemDetailsKey; exports.getItemDetailsOptions = _chunkIYEN7NGCcjs.getItemDetailsOptions; exports.getItemPriceKey = _chunkIYEN7NGCcjs.getItemPriceKey; exports.getItemPriceOptions = _chunkIYEN7NGCcjs.getItemPriceOptions; exports.getItemSearchInfiniteKey = _chunkIYEN7NGCcjs.getItemSearchInfiniteKey; exports.getItemSearchInfiniteOptions = _chunkIYEN7NGCcjs.getItemSearchInfiniteOptions; exports.getJoomlaContentKey = _chunkIYEN7NGCcjs.getJoomlaContentKey; exports.getJoomlaContentListKey = _chunkIYEN7NGCcjs.getJoomlaContentListKey; exports.getJoomlaContentListOptions = _chunkIYEN7NGCcjs.getJoomlaContentListOptions; exports.getJoomlaContentOptions = _chunkIYEN7NGCcjs.getJoomlaContentOptions; exports.getProductCategoryKey = _chunkIYEN7NGCcjs.getProductCategoryKey; exports.getProductCategoryOptions = _chunkIYEN7NGCcjs.getProductCategoryOptions; exports.getProductSearchKey = _chunkIYEN7NGCcjs.getProductSearchKey; exports.getProductSearchOptions = _chunkIYEN7NGCcjs.getProductSearchOptions; exports.getSearchSuggestionsKey = _chunkIYEN7NGCcjs.getSearchSuggestionsKey; exports.getSearchSuggestionsOptions = _chunkIYEN7NGCcjs.getSearchSuggestionsOptions; exports.stableStringify = _chunkIYEN7NGCcjs.stableStringify;
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+ exports.getCartPricingQueryOptions = _chunkQXDTBGFOcjs.getCartPricingQueryOptions; exports.getCategoryItemsInfiniteKey = _chunkQXDTBGFOcjs.getCategoryItemsInfiniteKey; exports.getCategoryItemsInfiniteOptions = _chunkQXDTBGFOcjs.getCategoryItemsInfiniteOptions; exports.getInvMastDocKey = _chunkQXDTBGFOcjs.getInvMastDocKey; exports.getInvMastDocOptions = _chunkQXDTBGFOcjs.getInvMastDocOptions; exports.getInvMastKey = _chunkQXDTBGFOcjs.getInvMastKey; exports.getInvMastOptions = _chunkQXDTBGFOcjs.getInvMastOptions; exports.getInvMastStockKey = _chunkQXDTBGFOcjs.getInvMastStockKey; exports.getInvMastStockOptions = _chunkQXDTBGFOcjs.getInvMastStockOptions; exports.getItemAttributesKey = _chunkQXDTBGFOcjs.getItemAttributesKey; exports.getItemAttributesOptions = _chunkQXDTBGFOcjs.getItemAttributesOptions; exports.getItemCategoryKey = _chunkQXDTBGFOcjs.getItemCategoryKey; exports.getItemCategoryOptions = _chunkQXDTBGFOcjs.getItemCategoryOptions; exports.getItemDetailsKey = _chunkQXDTBGFOcjs.getItemDetailsKey; exports.getItemDetailsOptions = _chunkQXDTBGFOcjs.getItemDetailsOptions; exports.getItemPriceKey = _chunkQXDTBGFOcjs.getItemPriceKey; exports.getItemPriceOptions = _chunkQXDTBGFOcjs.getItemPriceOptions; exports.getItemSearchInfiniteKey = _chunkQXDTBGFOcjs.getItemSearchInfiniteKey; exports.getItemSearchInfiniteOptions = _chunkQXDTBGFOcjs.getItemSearchInfiniteOptions; exports.getJoomlaContentKey = _chunkQXDTBGFOcjs.getJoomlaContentKey; exports.getJoomlaContentListKey = _chunkQXDTBGFOcjs.getJoomlaContentListKey; exports.getJoomlaContentListOptions = _chunkQXDTBGFOcjs.getJoomlaContentListOptions; exports.getJoomlaContentOptions = _chunkQXDTBGFOcjs.getJoomlaContentOptions; exports.getJoomlaMenuDocKey = _chunkQXDTBGFOcjs.getJoomlaMenuDocKey; exports.getJoomlaMenuDocOptions = _chunkQXDTBGFOcjs.getJoomlaMenuDocOptions; exports.getJoomlaMenuKey = _chunkQXDTBGFOcjs.getJoomlaMenuKey; exports.getJoomlaMenuOptions = _chunkQXDTBGFOcjs.getJoomlaMenuOptions; exports.getProductCategoryKey = _chunkQXDTBGFOcjs.getProductCategoryKey; exports.getProductCategoryOptions = _chunkQXDTBGFOcjs.getProductCategoryOptions; exports.getProductSearchKey = _chunkQXDTBGFOcjs.getProductSearchKey; exports.getProductSearchOptions = _chunkQXDTBGFOcjs.getProductSearchOptions; exports.getSearchSuggestionsKey = _chunkQXDTBGFOcjs.getSearchSuggestionsKey; exports.getSearchSuggestionsOptions = _chunkQXDTBGFOcjs.getSearchSuggestionsOptions; exports.stableStringify = _chunkQXDTBGFOcjs.stableStringify;
65
73
  //# sourceMappingURL=server.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-hooks/dist/server.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uqEAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-hooks/dist/server.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-hooks/dist/server.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,+7EAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-hooks/dist/server.cjs"}
package/dist/server.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { b as AugurApiClient, c as AugurAuthContext, A as AugurCallbacks, C as CacheConfig, I as InfiniteScrollPage, P as PageData, h as getCartPricingQueryOptions, i as getCategoryItemsInfiniteKey, j as getCategoryItemsInfiniteOptions, k as getInvMastDocKey, l as getInvMastDocOptions, m as getInvMastKey, n as getInvMastOptions, o as getInvMastStockKey, p as getInvMastStockOptions, q as getItemAttributesKey, r as getItemAttributesOptions, s as getItemCategoryKey, t as getItemCategoryOptions, u as getItemDetailsKey, v as getItemDetailsOptions, w as getItemPriceKey, x as getItemPriceOptions, y as getItemSearchInfiniteKey, z as getItemSearchInfiniteOptions, B as getJoomlaContentKey, D as getJoomlaContentListKey, E as getJoomlaContentListOptions, F as getJoomlaContentOptions, H as getProductCategoryKey, J as getProductCategoryOptions, K as getProductSearchKey, L as getProductSearchOptions, M as getSearchSuggestionsKey, N as getSearchSuggestionsOptions } from './joomla-content-list-D-DV69o0.cjs';
1
+ export { b as AugurApiClient, c as AugurAuthContext, A as AugurCallbacks, C as CacheConfig, I as InfiniteScrollPage, P as PageData, h as getCartPricingQueryOptions, i as getCategoryItemsInfiniteKey, j as getCategoryItemsInfiniteOptions, k as getInvMastDocKey, l as getInvMastDocOptions, m as getInvMastKey, n as getInvMastOptions, o as getInvMastStockKey, p as getInvMastStockOptions, q as getItemAttributesKey, r as getItemAttributesOptions, s as getItemCategoryKey, t as getItemCategoryOptions, u as getItemDetailsKey, v as getItemDetailsOptions, w as getItemPriceKey, x as getItemPriceOptions, y as getItemSearchInfiniteKey, z as getItemSearchInfiniteOptions, B as getJoomlaContentKey, D as getJoomlaContentListKey, E as getJoomlaContentListOptions, F as getJoomlaContentOptions, H as getJoomlaMenuDocKey, J as getJoomlaMenuDocOptions, K as getJoomlaMenuKey, L as getJoomlaMenuOptions, M as getProductCategoryKey, N as getProductCategoryOptions, O as getProductSearchKey, Q as getProductSearchOptions, R as getSearchSuggestionsKey, T as getSearchSuggestionsOptions } from './joomla-menu-doc-C0Dcq1eO.cjs';
2
2
  import '@simpleapps-com/augur-utils';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
package/dist/server.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { b as AugurApiClient, c as AugurAuthContext, A as AugurCallbacks, C as CacheConfig, I as InfiniteScrollPage, P as PageData, h as getCartPricingQueryOptions, i as getCategoryItemsInfiniteKey, j as getCategoryItemsInfiniteOptions, k as getInvMastDocKey, l as getInvMastDocOptions, m as getInvMastKey, n as getInvMastOptions, o as getInvMastStockKey, p as getInvMastStockOptions, q as getItemAttributesKey, r as getItemAttributesOptions, s as getItemCategoryKey, t as getItemCategoryOptions, u as getItemDetailsKey, v as getItemDetailsOptions, w as getItemPriceKey, x as getItemPriceOptions, y as getItemSearchInfiniteKey, z as getItemSearchInfiniteOptions, B as getJoomlaContentKey, D as getJoomlaContentListKey, E as getJoomlaContentListOptions, F as getJoomlaContentOptions, H as getProductCategoryKey, J as getProductCategoryOptions, K as getProductSearchKey, L as getProductSearchOptions, M as getSearchSuggestionsKey, N as getSearchSuggestionsOptions } from './joomla-content-list-D-DV69o0.js';
1
+ export { b as AugurApiClient, c as AugurAuthContext, A as AugurCallbacks, C as CacheConfig, I as InfiniteScrollPage, P as PageData, h as getCartPricingQueryOptions, i as getCategoryItemsInfiniteKey, j as getCategoryItemsInfiniteOptions, k as getInvMastDocKey, l as getInvMastDocOptions, m as getInvMastKey, n as getInvMastOptions, o as getInvMastStockKey, p as getInvMastStockOptions, q as getItemAttributesKey, r as getItemAttributesOptions, s as getItemCategoryKey, t as getItemCategoryOptions, u as getItemDetailsKey, v as getItemDetailsOptions, w as getItemPriceKey, x as getItemPriceOptions, y as getItemSearchInfiniteKey, z as getItemSearchInfiniteOptions, B as getJoomlaContentKey, D as getJoomlaContentListKey, E as getJoomlaContentListOptions, F as getJoomlaContentOptions, H as getJoomlaMenuDocKey, J as getJoomlaMenuDocOptions, K as getJoomlaMenuKey, L as getJoomlaMenuOptions, M as getProductCategoryKey, N as getProductCategoryOptions, O as getProductSearchKey, Q as getProductSearchOptions, R as getSearchSuggestionsKey, T as getSearchSuggestionsOptions } from './joomla-menu-doc-C0Dcq1eO.js';
2
2
  import '@simpleapps-com/augur-utils';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
package/dist/server.js CHANGED
@@ -22,6 +22,10 @@ import {
22
22
  getJoomlaContentListKey,
23
23
  getJoomlaContentListOptions,
24
24
  getJoomlaContentOptions,
25
+ getJoomlaMenuDocKey,
26
+ getJoomlaMenuDocOptions,
27
+ getJoomlaMenuKey,
28
+ getJoomlaMenuOptions,
25
29
  getProductCategoryKey,
26
30
  getProductCategoryOptions,
27
31
  getProductSearchKey,
@@ -29,7 +33,7 @@ import {
29
33
  getSearchSuggestionsKey,
30
34
  getSearchSuggestionsOptions,
31
35
  stableStringify
32
- } from "./chunk-XPZVNYPR.js";
36
+ } from "./chunk-LCWJOWAC.js";
33
37
  export {
34
38
  getCartPricingQueryOptions,
35
39
  getCategoryItemsInfiniteKey,
@@ -54,6 +58,10 @@ export {
54
58
  getJoomlaContentListKey,
55
59
  getJoomlaContentListOptions,
56
60
  getJoomlaContentOptions,
61
+ getJoomlaMenuDocKey,
62
+ getJoomlaMenuDocOptions,
63
+ getJoomlaMenuKey,
64
+ getJoomlaMenuOptions,
57
65
  getProductCategoryKey,
58
66
  getProductCategoryOptions,
59
67
  getProductSearchKey,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simpleapps-com/augur-hooks",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Cross-platform React Query hooks and Zustand stores for Augur ecommerce sites",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -31,7 +31,7 @@
31
31
  "dist"
32
32
  ],
33
33
  "dependencies": {
34
- "@simpleapps-com/augur-utils": "0.3.0"
34
+ "@simpleapps-com/augur-utils": "0.3.1"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@simpleapps-com/augur-api": "^0.9.6",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-hooks/dist/chunk-IYEN7NGC.cjs","../src/queries/stable-stringify.ts","../src/queries/cache-helper.ts","../src/queries/item-price.ts","../src/queries/inv-mast-doc.ts","../src/queries/item-category.ts","../src/queries/inv-mast.ts","../src/queries/inv-mast-stock.ts","../src/queries/product-category.ts","../src/queries/item-details.ts","../src/queries/item-attributes.ts","../src/queries/product-search.ts","../src/queries/search-suggestions.ts","../src/queries/cart-pricing.ts","../src/queries/category-items-infinite.ts","../src/queries/item-search-infinite.ts","../src/queries/joomla-content.ts","../src/queries/joomla-content-list.ts"],"names":[],"mappings":"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AAAc,QAAA;AAAiB,QAAA;AACjC,MAAA;AACF,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACQ,IAAA;AACA,IAAA;AACV,EAAA;AACF;AfsZc;AACA;AgB7dD;AACH,EAAA;AACV;AAEa;AAKL,EAAA;AACC,EAAA;AACK,IAAA;AACD,IAAA;AACD,MAAA;AACC,MAAA;AACL,wBAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACE,UAAA;AACE,YAAA;AACD,UAAA;AACG,UAAA;AACJ,UAAA;AACF,QAAA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA;AACQ,IAAA;AACV,EAAA;AACF;AhB0dc;AACA;AiBvfD;AAIH,EAAA;AACV;AAEa;AAML,EAAA;AACC,EAAA;AACK,IAAA;AACD,IAAA;AACD,MAAA;AACC,MAAA;AACL,wBAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACE,UAAA;AACE,YAAA;AACA,YAAA;AACA,YAAA;AACD,UAAA;AACD,UAAA;AACF,QAAA;AACA,QAAA;AAAY,QAAA;AACd,MAAA;AACF,IAAA;AACA,IAAA;AACQ,IAAA;AACV,EAAA;AACF;AjBifc;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-hooks/dist/chunk-IYEN7NGC.cjs","sourcesContent":[null,"/**\n * JSON.stringify with sorted object keys for deterministic cache keys.\n * Ensures { a: 1, b: 2 } and { b: 2, a: 1 } produce the same string.\n */\nexport function stableStringify(value: unknown): string {\n if (value === null || value === undefined) return JSON.stringify(value);\n if (typeof value !== \"object\") return JSON.stringify(value);\n if (Array.isArray(value)) {\n return `[${value.map(stableStringify).join(\",\")}]`;\n }\n const obj = value as Record<string, unknown>;\n const keys = Object.keys(obj).sort();\n const entries = keys.map(\n (key) => `${JSON.stringify(key)}:${stableStringify(obj[key])}`,\n );\n return `{${entries.join(\",\")}}`;\n}\n","import type { CacheProvider, CacheTierConfig } from \"../types\";\nimport { stableStringify } from \"./stable-stringify\";\n\n/**\n * FNV-1a 32-bit hash. Fast, cross-platform (no Node crypto needed).\n */\nfunction fnv1a(str: string): string {\n let h = 0x811c9dc5;\n for (let i = 0; i < str.length; i++) {\n h ^= str.charCodeAt(i);\n h = Math.imul(h, 0x01000193);\n }\n return (h >>> 0).toString(16).padStart(8, \"0\");\n}\n\n/**\n * Wraps an async function with optional Redis caching.\n *\n * - When `provider` and `tier.redis` are both set, checks Redis before\n * calling `fn`, then caches the result on miss.\n * - When either is missing, calls `fn` directly (no-op passthrough).\n *\n * @param provider Redis-compatible get/set + prefix. Undefined = skip Redis.\n * @param tier Cache tier config. Undefined or missing `redis` = skip Redis.\n * @param methodPath Dot-separated SDK method path (used as cache key segment).\n * @param fn The async function to cache (typically the SDK call).\n * @param keyArgs Values to hash for the cache key (e.g. query params).\n */\nexport async function withCache<T>(\n provider: CacheProvider | undefined,\n tier: CacheTierConfig | undefined,\n methodPath: string,\n fn: () => Promise<T>,\n ...keyArgs: unknown[]\n): Promise<T> {\n const redisTtl = tier?.redis;\n if (!provider || !redisTtl) return fn();\n\n const key = `${provider.prefix}sdk:${methodPath}:${fnv1a(stableStringify(keyArgs))}`;\n\n try {\n const cached = await provider.get(key);\n if (cached != null) return JSON.parse(cached) as T;\n } catch {\n /* Redis read error — fall through to SDK call */\n }\n\n const result = await fn();\n\n try {\n provider.set(key, JSON.stringify(result), redisTtl).catch(() => {});\n } catch {\n /* Non-serializable or write error — skip caching */\n }\n\n return result;\n}\n","import type { TPriceData } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\n/**\n * Generates a consistent query key for item price queries.\n * Usable in both client hooks and server-side prefetch.\n */\nexport const getItemPriceKey = (\n itemId: string | undefined,\n customerId: string | number | undefined,\n quantity: number = 1,\n) => {\n return [\"price\", itemId?.toUpperCase() || \"\", customerId, quantity] as const;\n};\n\n/**\n * Query options for item price. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getItemPriceOptions = (\n api: AugurApiClient,\n itemId: string | undefined,\n customerId: string | number | undefined,\n quantity: number = 1,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getItemPriceKey(itemId, customerId, quantity),\n queryFn: async (): Promise<TPriceData> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"pricing.priceEngine.get\",\n async () => {\n const response = await api.pricing.priceEngine.get({\n itemId: itemId?.toUpperCase() || \"\",\n customerId: Number(customerId),\n quantity,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n itemId, customerId, quantity,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n refetchOnReconnect: true,\n refetchOnWindowFocus: false,\n meta: { persist: true },\n };\n};\n","import type { TInvMastDoc } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\n/**\n * Generates a consistent query key for inv mast doc queries.\n * Usable in both client hooks and server-side prefetch.\n */\nexport const getInvMastDocKey = (\n invMastUid: number,\n itemId: string,\n includePricing: \"Y\" | \"N\",\n) => {\n return [\n \"invMastDoc\",\n invMastUid,\n itemId.toUpperCase(),\n includePricing,\n ] as const;\n};\n\n/**\n * Query options for inv mast doc. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getInvMastDocOptions = (\n api: AugurApiClient,\n invMastUid: number,\n itemId: string,\n includePricing: \"Y\" | \"N\",\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getInvMastDocKey(invMastUid, itemId, includePricing),\n queryFn: async (): Promise<TInvMastDoc> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.invMast.doc.list\",\n async () => {\n const response = await api.items.invMast.doc.list(invMastUid, {\n itemId: itemId.toUpperCase(),\n includePricing,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n if (!response.data) throw new Error(\"Item not found\");\n return response.data;\n },\n invMastUid,\n itemId,\n includePricing,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TCategory } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig, GetItemCategoryApiOptions } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\ntype ItemCategoryQueryKey = readonly [\n \"itemCategory\",\n number,\n GetItemCategoryApiOptions | undefined,\n];\n\n/**\n * Generates a consistent query key for item category queries.\n * Usable in both client hooks and server-side prefetch.\n */\nexport const getItemCategoryKey = (\n itemCategoryUid: number,\n apiOptions?: GetItemCategoryApiOptions,\n): ItemCategoryQueryKey => {\n return [\"itemCategory\", itemCategoryUid, apiOptions] as const;\n};\n\n/**\n * Query options for item category. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getItemCategoryOptions = (\n api: AugurApiClient,\n itemCategoryUid: number,\n apiOptions?: GetItemCategoryApiOptions,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getItemCategoryKey(itemCategoryUid, apiOptions),\n queryFn: async (): Promise<TCategory> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.categories.get\",\n async () => {\n const response = await api.items.categories.get(\n itemCategoryUid,\n { ...apiOptions, ...(edgeCache != null ? { edgeCache } : {}) },\n );\n if (!response.data) throw new Error(\"Item category not found\");\n return response.data;\n },\n itemCategoryUid,\n apiOptions,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TItemDetails } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getInvMastKey = (invMastUid: number, itemId: string) => {\n return [\"invMast\", invMastUid, itemId.toUpperCase()] as const;\n};\n\nexport const getInvMastOptions = (\n api: AugurApiClient,\n invMastUid: number,\n itemId: string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getInvMastKey(invMastUid, itemId),\n queryFn: async (): Promise<TItemDetails> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.invMast.get\",\n async () => {\n const response = await api.items.invMast.get(invMastUid, {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n if (!response.data) throw new Error(\"Item not found\");\n return response.data;\n },\n invMastUid,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TStockData } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getInvMastStockKey = (invMastUid: number | string) => {\n return [\"invMastStock\", invMastUid] as const;\n};\n\nexport const getInvMastStockOptions = (\n api: AugurApiClient,\n invMastUid: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getInvMastStockKey(invMastUid),\n queryFn: async (): Promise<number> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.invMast.stock.list\",\n async () => {\n const response = await api.items.invMast.stock.list(Number(invMastUid), {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n const stockData: TStockData[] = response.data?.stockData ?? [];\n return stockData.reduce(\n (qty: number, stock: TStockData) => qty + stock.qtyOnHand,\n 0,\n );\n },\n invMastUid,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TProductCategory } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\ntype ProductCategoryResponse = {\n itemCategoryDesc: string;\n childrenTotal: number;\n children: TProductCategory[];\n categoryImage: string | null;\n};\n\nexport const getProductCategoryKey = (\n itemCategoryUid: number | string | null,\n) => {\n return [\"productCategory\", itemCategoryUid] as const;\n};\n\nexport const getProductCategoryOptions = (\n api: AugurApiClient,\n itemCategoryUid: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getProductCategoryKey(itemCategoryUid),\n queryFn: async (): Promise<ProductCategoryResponse> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.categories.get\",\n async () => {\n const response = await api.items.categories.get(Number(itemCategoryUid), {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n itemCategoryUid,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TItemDetails } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getItemDetailsKey = (itemId: number | string) => {\n const normalizedId = typeof itemId === \"string\" ? itemId.toUpperCase() : itemId;\n return [\"itemDetails\", normalizedId] as const;\n};\n\nexport const getItemDetailsOptions = (\n api: AugurApiClient,\n itemId: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getItemDetailsKey(itemId),\n queryFn: async (): Promise<TItemDetails> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.invMast.doc.list\",\n async () => {\n const response = await api.items.invMast.doc.list(Number(itemId), {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n if (!response.data) throw new Error(\"Item not found\");\n return response.data;\n },\n itemId,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getItemAttributesKey = (\n itemCategoryUid: number | string | null,\n) => {\n return [\"itemAttributes\", itemCategoryUid] as const;\n};\n\nexport const getItemAttributesOptions = (\n api: AugurApiClient,\n itemCategoryUid: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getItemAttributesKey(itemCategoryUid),\n queryFn: async () => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.itemSearch.attributes.list\",\n async () => {\n const response = await api.openSearch.itemSearch.attributes.list({\n q: \"\",\n searchType: \"query\",\n classId5List: String(itemCategoryUid),\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n itemCategoryUid,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TProductItem } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig, PageData } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\ntype ProductSearchResponse = {\n items: TProductItem[];\n totalResults: number;\n};\n\n/**\n * Generates a consistent query key for product search queries.\n */\nexport const getProductSearchKey = (pageData: PageData) => {\n return [\n \"productSearch\",\n pageData.q,\n pageData.limit,\n pageData.offset,\n pageData.sortBy,\n pageData.itemCategoryUid,\n ] as const;\n};\n\n/**\n * Query options for product search. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getProductSearchOptions = (\n api: AugurApiClient,\n pageData: PageData,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getProductSearchKey(pageData),\n queryFn: async (): Promise<ProductSearchResponse> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.itemSearch.list\",\n async () => {\n const response = await api.openSearch.itemSearch.list({\n q: pageData.q,\n searchType: \"query\",\n size: pageData.limit,\n from: pageData.offset,\n classId5List: pageData.itemCategoryUid\n ? String(pageData.itemCategoryUid)\n : undefined,\n filters: pageData.filters\n ? JSON.stringify(pageData.filters)\n : undefined,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n pageData,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig, SearchSuggestionsResponse } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\n/**\n * Generates a consistent query key for search suggestion queries.\n */\nexport const getSearchSuggestionsKey = (\n query: string,\n limit: number,\n offset: number,\n) => {\n return [\"searchSuggestions\", query, limit, offset] as const;\n};\n\n/**\n * Query options for search suggestions. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getSearchSuggestionsOptions = (\n api: AugurApiClient,\n query: string,\n limit: number = 10,\n offset: number = 0,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getSearchSuggestionsKey(query, limit, offset),\n queryFn: async (): Promise<SearchSuggestionsResponse> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.suggestions.suggest.list\",\n async () => {\n const response = await api.openSearch.suggestions.suggest.list({\n q: query,\n size: limit,\n from: offset,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n query,\n limit,\n offset,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { getItemPriceOptions } from \"./item-price\";\n\n/**\n * Get cart pricing query options for prefetching or parent components.\n */\nexport function getCartPricingQueryOptions(\n api: AugurApiClient,\n cartLines: Array<{ itemId: string; quantity: number }>,\n customerId: string | number | undefined,\n cache?: CacheConfig,\n) {\n return cartLines.map((line) => ({\n ...getItemPriceOptions(api, line.itemId, customerId, line.quantity, cache),\n enabled: !!customerId && !!line.itemId,\n }));\n}\n","import {\n type TItemsFilters,\n type TProductItem,\n} from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { InfiniteScrollPage } from \"../callbacks\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nimport { stableStringify } from \"./stable-stringify\";\n\nexport const getCategoryItemsInfiniteKey = (\n itemCategoryUid: number,\n itemsFilters: TItemsFilters,\n) => {\n return [\n \"categoryItemsInfinite\",\n itemCategoryUid,\n stableStringify(itemsFilters),\n ] as const;\n};\n\n/**\n * Full infinite query options for category items.\n * Usable for server-side prefetch with `queryClient.prefetchInfiniteQuery()`.\n */\nexport const getCategoryItemsInfiniteOptions = (\n api: AugurApiClient,\n itemCategoryUid: number,\n itemsFilters: TItemsFilters,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getCategoryItemsInfiniteKey(itemCategoryUid, itemsFilters),\n queryFn: async ({\n pageParam = 0,\n }: {\n pageParam?: unknown;\n }): Promise<InfiniteScrollPage> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.itemSearch.list\",\n async () => {\n const response = await api.openSearch.itemSearch.list({\n q: itemsFilters.q || \"\",\n searchType: \"query\",\n size: itemsFilters.limit,\n from: pageParam as number,\n classId5List: String(itemCategoryUid),\n filters: itemsFilters.filters?.length\n ? JSON.stringify(itemsFilters.filters)\n : undefined,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n const items: TProductItem[] = response.data?.items ?? [];\n const total: number = response.data?.totalResults ?? 0;\n const nextOffset = (pageParam as number) + itemsFilters.limit;\n return {\n data: items,\n total,\n nextCursor: nextOffset < total ? nextOffset : undefined,\n };\n },\n itemCategoryUid, itemsFilters, pageParam,\n );\n },\n initialPageParam: 0,\n getNextPageParam: (lastPage: InfiniteScrollPage) => lastPage.nextCursor,\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import {\n type TItemsFilters,\n type TProductItem,\n} from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { InfiniteScrollPage } from \"../callbacks\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nimport { stableStringify } from \"./stable-stringify\";\n\nexport const getItemSearchInfiniteKey = (\n itemsFilters: TItemsFilters,\n itemCategoryUid?: number | string,\n) => {\n return [\n \"itemSearchInfinite\",\n stableStringify(itemsFilters),\n itemCategoryUid,\n ] as const;\n};\n\n/**\n * Full infinite query options for item search.\n * Usable for server-side prefetch with `queryClient.prefetchInfiniteQuery()`.\n */\nexport const getItemSearchInfiniteOptions = (\n api: AugurApiClient,\n itemsFilters: TItemsFilters,\n itemCategoryUid?: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getItemSearchInfiniteKey(itemsFilters, itemCategoryUid),\n queryFn: async ({\n pageParam = 0,\n }: {\n pageParam?: unknown;\n }): Promise<InfiniteScrollPage> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.itemSearch.list\",\n async () => {\n const response = await api.openSearch.itemSearch.list({\n q: itemsFilters.q,\n searchType: \"query\",\n size: itemsFilters.limit,\n from: pageParam as number,\n classId5List: itemCategoryUid ? String(itemCategoryUid) : undefined,\n filters: itemsFilters.filters?.length\n ? JSON.stringify(itemsFilters.filters)\n : undefined,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n const items: TProductItem[] = response.data?.items ?? [];\n const total: number = response.data?.totalResults ?? 0;\n const nextOffset = (pageParam as number) + itemsFilters.limit;\n return {\n data: items,\n total,\n nextCursor: nextOffset < total ? nextOffset : undefined,\n };\n },\n itemsFilters, itemCategoryUid, pageParam,\n );\n },\n initialPageParam: 0,\n getNextPageParam: (lastPage: InfiniteScrollPage) => lastPage.nextCursor,\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n meta: { persist: true },\n };\n};\n","import type { TJoomlaContent } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getJoomlaContentKey = (articleId: number | string) => {\n return [\"joomlaContent\", articleId] as const;\n};\n\nexport const getJoomlaContentOptions = (\n api: AugurApiClient,\n articleId: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getJoomlaContentKey(articleId),\n queryFn: async (): Promise<TJoomlaContent> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"joomla.content.doc.get\",\n async () => {\n const response = await api.joomla.content.doc.get(articleId, {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n if (!response.data) throw new Error(\"Article not found\");\n return response.data;\n },\n articleId,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import {\n type TJoomlaContent,\n type TJoomlaContentFilters,\n} from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getJoomlaContentListKey = (\n categoryId: number | string,\n filters?: Partial<TJoomlaContentFilters>,\n) => {\n return [\"joomlaContentList\", categoryId, filters] as const;\n};\n\nexport const getJoomlaContentListOptions = (\n api: AugurApiClient,\n categoryId: number | string,\n filters?: Partial<TJoomlaContentFilters>,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getJoomlaContentListKey(categoryId, filters),\n queryFn: async (): Promise<TJoomlaContent[]> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"joomla.content.list\",\n async () => {\n const response = await api.joomla.content.list({\n catid: categoryId,\n ...filters,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data ?? [];\n },\n categoryId, filters,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/queries/stable-stringify.ts","../src/queries/cache-helper.ts","../src/queries/item-price.ts","../src/queries/inv-mast-doc.ts","../src/queries/item-category.ts","../src/queries/inv-mast.ts","../src/queries/inv-mast-stock.ts","../src/queries/product-category.ts","../src/queries/item-details.ts","../src/queries/item-attributes.ts","../src/queries/product-search.ts","../src/queries/search-suggestions.ts","../src/queries/cart-pricing.ts","../src/queries/category-items-infinite.ts","../src/queries/item-search-infinite.ts","../src/queries/joomla-content.ts","../src/queries/joomla-content-list.ts"],"sourcesContent":["/**\n * JSON.stringify with sorted object keys for deterministic cache keys.\n * Ensures { a: 1, b: 2 } and { b: 2, a: 1 } produce the same string.\n */\nexport function stableStringify(value: unknown): string {\n if (value === null || value === undefined) return JSON.stringify(value);\n if (typeof value !== \"object\") return JSON.stringify(value);\n if (Array.isArray(value)) {\n return `[${value.map(stableStringify).join(\",\")}]`;\n }\n const obj = value as Record<string, unknown>;\n const keys = Object.keys(obj).sort();\n const entries = keys.map(\n (key) => `${JSON.stringify(key)}:${stableStringify(obj[key])}`,\n );\n return `{${entries.join(\",\")}}`;\n}\n","import type { CacheProvider, CacheTierConfig } from \"../types\";\nimport { stableStringify } from \"./stable-stringify\";\n\n/**\n * FNV-1a 32-bit hash. Fast, cross-platform (no Node crypto needed).\n */\nfunction fnv1a(str: string): string {\n let h = 0x811c9dc5;\n for (let i = 0; i < str.length; i++) {\n h ^= str.charCodeAt(i);\n h = Math.imul(h, 0x01000193);\n }\n return (h >>> 0).toString(16).padStart(8, \"0\");\n}\n\n/**\n * Wraps an async function with optional Redis caching.\n *\n * - When `provider` and `tier.redis` are both set, checks Redis before\n * calling `fn`, then caches the result on miss.\n * - When either is missing, calls `fn` directly (no-op passthrough).\n *\n * @param provider Redis-compatible get/set + prefix. Undefined = skip Redis.\n * @param tier Cache tier config. Undefined or missing `redis` = skip Redis.\n * @param methodPath Dot-separated SDK method path (used as cache key segment).\n * @param fn The async function to cache (typically the SDK call).\n * @param keyArgs Values to hash for the cache key (e.g. query params).\n */\nexport async function withCache<T>(\n provider: CacheProvider | undefined,\n tier: CacheTierConfig | undefined,\n methodPath: string,\n fn: () => Promise<T>,\n ...keyArgs: unknown[]\n): Promise<T> {\n const redisTtl = tier?.redis;\n if (!provider || !redisTtl) return fn();\n\n const key = `${provider.prefix}sdk:${methodPath}:${fnv1a(stableStringify(keyArgs))}`;\n\n try {\n const cached = await provider.get(key);\n if (cached != null) return JSON.parse(cached) as T;\n } catch {\n /* Redis read error — fall through to SDK call */\n }\n\n const result = await fn();\n\n try {\n provider.set(key, JSON.stringify(result), redisTtl).catch(() => {});\n } catch {\n /* Non-serializable or write error — skip caching */\n }\n\n return result;\n}\n","import type { TPriceData } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\n/**\n * Generates a consistent query key for item price queries.\n * Usable in both client hooks and server-side prefetch.\n */\nexport const getItemPriceKey = (\n itemId: string | undefined,\n customerId: string | number | undefined,\n quantity: number = 1,\n) => {\n return [\"price\", itemId?.toUpperCase() || \"\", customerId, quantity] as const;\n};\n\n/**\n * Query options for item price. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getItemPriceOptions = (\n api: AugurApiClient,\n itemId: string | undefined,\n customerId: string | number | undefined,\n quantity: number = 1,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getItemPriceKey(itemId, customerId, quantity),\n queryFn: async (): Promise<TPriceData> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"pricing.priceEngine.get\",\n async () => {\n const response = await api.pricing.priceEngine.get({\n itemId: itemId?.toUpperCase() || \"\",\n customerId: Number(customerId),\n quantity,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n itemId, customerId, quantity,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n refetchOnReconnect: true,\n refetchOnWindowFocus: false,\n meta: { persist: true },\n };\n};\n","import type { TInvMastDoc } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\n/**\n * Generates a consistent query key for inv mast doc queries.\n * Usable in both client hooks and server-side prefetch.\n */\nexport const getInvMastDocKey = (\n invMastUid: number,\n itemId: string,\n includePricing: \"Y\" | \"N\",\n) => {\n return [\n \"invMastDoc\",\n invMastUid,\n itemId.toUpperCase(),\n includePricing,\n ] as const;\n};\n\n/**\n * Query options for inv mast doc. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getInvMastDocOptions = (\n api: AugurApiClient,\n invMastUid: number,\n itemId: string,\n includePricing: \"Y\" | \"N\",\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getInvMastDocKey(invMastUid, itemId, includePricing),\n queryFn: async (): Promise<TInvMastDoc> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.invMast.doc.list\",\n async () => {\n const response = await api.items.invMast.doc.list(invMastUid, {\n itemId: itemId.toUpperCase(),\n includePricing,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n if (!response.data) throw new Error(\"Item not found\");\n return response.data;\n },\n invMastUid,\n itemId,\n includePricing,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TCategory } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig, GetItemCategoryApiOptions } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\ntype ItemCategoryQueryKey = readonly [\n \"itemCategory\",\n number,\n GetItemCategoryApiOptions | undefined,\n];\n\n/**\n * Generates a consistent query key for item category queries.\n * Usable in both client hooks and server-side prefetch.\n */\nexport const getItemCategoryKey = (\n itemCategoryUid: number,\n apiOptions?: GetItemCategoryApiOptions,\n): ItemCategoryQueryKey => {\n return [\"itemCategory\", itemCategoryUid, apiOptions] as const;\n};\n\n/**\n * Query options for item category. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getItemCategoryOptions = (\n api: AugurApiClient,\n itemCategoryUid: number,\n apiOptions?: GetItemCategoryApiOptions,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getItemCategoryKey(itemCategoryUid, apiOptions),\n queryFn: async (): Promise<TCategory> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.categories.get\",\n async () => {\n const response = await api.items.categories.get(\n itemCategoryUid,\n { ...apiOptions, ...(edgeCache != null ? { edgeCache } : {}) },\n );\n if (!response.data) throw new Error(\"Item category not found\");\n return response.data;\n },\n itemCategoryUid,\n apiOptions,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TItemDetails } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getInvMastKey = (invMastUid: number, itemId: string) => {\n return [\"invMast\", invMastUid, itemId.toUpperCase()] as const;\n};\n\nexport const getInvMastOptions = (\n api: AugurApiClient,\n invMastUid: number,\n itemId: string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getInvMastKey(invMastUid, itemId),\n queryFn: async (): Promise<TItemDetails> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.invMast.get\",\n async () => {\n const response = await api.items.invMast.get(invMastUid, {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n if (!response.data) throw new Error(\"Item not found\");\n return response.data;\n },\n invMastUid,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TStockData } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getInvMastStockKey = (invMastUid: number | string) => {\n return [\"invMastStock\", invMastUid] as const;\n};\n\nexport const getInvMastStockOptions = (\n api: AugurApiClient,\n invMastUid: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getInvMastStockKey(invMastUid),\n queryFn: async (): Promise<number> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.invMast.stock.list\",\n async () => {\n const response = await api.items.invMast.stock.list(Number(invMastUid), {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n const stockData: TStockData[] = response.data?.stockData ?? [];\n return stockData.reduce(\n (qty: number, stock: TStockData) => qty + stock.qtyOnHand,\n 0,\n );\n },\n invMastUid,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TProductCategory } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\ntype ProductCategoryResponse = {\n itemCategoryDesc: string;\n childrenTotal: number;\n children: TProductCategory[];\n categoryImage: string | null;\n};\n\nexport const getProductCategoryKey = (\n itemCategoryUid: number | string | null,\n) => {\n return [\"productCategory\", itemCategoryUid] as const;\n};\n\nexport const getProductCategoryOptions = (\n api: AugurApiClient,\n itemCategoryUid: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getProductCategoryKey(itemCategoryUid),\n queryFn: async (): Promise<ProductCategoryResponse> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.categories.get\",\n async () => {\n const response = await api.items.categories.get(Number(itemCategoryUid), {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n itemCategoryUid,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TItemDetails } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getItemDetailsKey = (itemId: number | string) => {\n const normalizedId = typeof itemId === \"string\" ? itemId.toUpperCase() : itemId;\n return [\"itemDetails\", normalizedId] as const;\n};\n\nexport const getItemDetailsOptions = (\n api: AugurApiClient,\n itemId: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getItemDetailsKey(itemId),\n queryFn: async (): Promise<TItemDetails> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"items.invMast.doc.list\",\n async () => {\n const response = await api.items.invMast.doc.list(Number(itemId), {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n if (!response.data) throw new Error(\"Item not found\");\n return response.data;\n },\n itemId,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getItemAttributesKey = (\n itemCategoryUid: number | string | null,\n) => {\n return [\"itemAttributes\", itemCategoryUid] as const;\n};\n\nexport const getItemAttributesOptions = (\n api: AugurApiClient,\n itemCategoryUid: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getItemAttributesKey(itemCategoryUid),\n queryFn: async () => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.itemSearch.attributes.list\",\n async () => {\n const response = await api.openSearch.itemSearch.attributes.list({\n q: \"\",\n searchType: \"query\",\n classId5List: String(itemCategoryUid),\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n itemCategoryUid,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { TProductItem } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig, PageData } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\ntype ProductSearchResponse = {\n items: TProductItem[];\n totalResults: number;\n};\n\n/**\n * Generates a consistent query key for product search queries.\n */\nexport const getProductSearchKey = (pageData: PageData) => {\n return [\n \"productSearch\",\n pageData.q,\n pageData.limit,\n pageData.offset,\n pageData.sortBy,\n pageData.itemCategoryUid,\n ] as const;\n};\n\n/**\n * Query options for product search. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getProductSearchOptions = (\n api: AugurApiClient,\n pageData: PageData,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getProductSearchKey(pageData),\n queryFn: async (): Promise<ProductSearchResponse> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.itemSearch.list\",\n async () => {\n const response = await api.openSearch.itemSearch.list({\n q: pageData.q,\n searchType: \"query\",\n size: pageData.limit,\n from: pageData.offset,\n classId5List: pageData.itemCategoryUid\n ? String(pageData.itemCategoryUid)\n : undefined,\n filters: pageData.filters\n ? JSON.stringify(pageData.filters)\n : undefined,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n pageData,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig, SearchSuggestionsResponse } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\n/**\n * Generates a consistent query key for search suggestion queries.\n */\nexport const getSearchSuggestionsKey = (\n query: string,\n limit: number,\n offset: number,\n) => {\n return [\"searchSuggestions\", query, limit, offset] as const;\n};\n\n/**\n * Query options for search suggestions. Accepts the SDK instance so it works\n * in both client (via provider) and server (via direct construction).\n */\nexport const getSearchSuggestionsOptions = (\n api: AugurApiClient,\n query: string,\n limit: number = 10,\n offset: number = 0,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getSearchSuggestionsKey(query, limit, offset),\n queryFn: async (): Promise<SearchSuggestionsResponse> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.suggestions.suggest.list\",\n async () => {\n const response = await api.openSearch.suggestions.suggest.list({\n q: query,\n size: limit,\n from: offset,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data;\n },\n query,\n limit,\n offset,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { getItemPriceOptions } from \"./item-price\";\n\n/**\n * Get cart pricing query options for prefetching or parent components.\n */\nexport function getCartPricingQueryOptions(\n api: AugurApiClient,\n cartLines: Array<{ itemId: string; quantity: number }>,\n customerId: string | number | undefined,\n cache?: CacheConfig,\n) {\n return cartLines.map((line) => ({\n ...getItemPriceOptions(api, line.itemId, customerId, line.quantity, cache),\n enabled: !!customerId && !!line.itemId,\n }));\n}\n","import {\n type TItemsFilters,\n type TProductItem,\n} from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { InfiniteScrollPage } from \"../callbacks\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nimport { stableStringify } from \"./stable-stringify\";\n\nexport const getCategoryItemsInfiniteKey = (\n itemCategoryUid: number,\n itemsFilters: TItemsFilters,\n) => {\n return [\n \"categoryItemsInfinite\",\n itemCategoryUid,\n stableStringify(itemsFilters),\n ] as const;\n};\n\n/**\n * Full infinite query options for category items.\n * Usable for server-side prefetch with `queryClient.prefetchInfiniteQuery()`.\n */\nexport const getCategoryItemsInfiniteOptions = (\n api: AugurApiClient,\n itemCategoryUid: number,\n itemsFilters: TItemsFilters,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getCategoryItemsInfiniteKey(itemCategoryUid, itemsFilters),\n queryFn: async ({\n pageParam = 0,\n }: {\n pageParam?: unknown;\n }): Promise<InfiniteScrollPage> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.itemSearch.list\",\n async () => {\n const response = await api.openSearch.itemSearch.list({\n q: itemsFilters.q || \"\",\n searchType: \"query\",\n size: itemsFilters.limit,\n from: pageParam as number,\n classId5List: String(itemCategoryUid),\n filters: itemsFilters.filters?.length\n ? JSON.stringify(itemsFilters.filters)\n : undefined,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n const items: TProductItem[] = response.data?.items ?? [];\n const total: number = response.data?.totalResults ?? 0;\n const nextOffset = (pageParam as number) + itemsFilters.limit;\n return {\n data: items,\n total,\n nextCursor: nextOffset < total ? nextOffset : undefined,\n };\n },\n itemCategoryUid, itemsFilters, pageParam,\n );\n },\n initialPageParam: 0,\n getNextPageParam: (lastPage: InfiniteScrollPage) => lastPage.nextCursor,\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import {\n type TItemsFilters,\n type TProductItem,\n} from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { InfiniteScrollPage } from \"../callbacks\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nimport { stableStringify } from \"./stable-stringify\";\n\nexport const getItemSearchInfiniteKey = (\n itemsFilters: TItemsFilters,\n itemCategoryUid?: number | string,\n) => {\n return [\n \"itemSearchInfinite\",\n stableStringify(itemsFilters),\n itemCategoryUid,\n ] as const;\n};\n\n/**\n * Full infinite query options for item search.\n * Usable for server-side prefetch with `queryClient.prefetchInfiniteQuery()`.\n */\nexport const getItemSearchInfiniteOptions = (\n api: AugurApiClient,\n itemsFilters: TItemsFilters,\n itemCategoryUid?: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getItemSearchInfiniteKey(itemsFilters, itemCategoryUid),\n queryFn: async ({\n pageParam = 0,\n }: {\n pageParam?: unknown;\n }): Promise<InfiniteScrollPage> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"openSearch.itemSearch.list\",\n async () => {\n const response = await api.openSearch.itemSearch.list({\n q: itemsFilters.q,\n searchType: \"query\",\n size: itemsFilters.limit,\n from: pageParam as number,\n classId5List: itemCategoryUid ? String(itemCategoryUid) : undefined,\n filters: itemsFilters.filters?.length\n ? JSON.stringify(itemsFilters.filters)\n : undefined,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n const items: TProductItem[] = response.data?.items ?? [];\n const total: number = response.data?.totalResults ?? 0;\n const nextOffset = (pageParam as number) + itemsFilters.limit;\n return {\n data: items,\n total,\n nextCursor: nextOffset < total ? nextOffset : undefined,\n };\n },\n itemsFilters, itemCategoryUid, pageParam,\n );\n },\n initialPageParam: 0,\n getNextPageParam: (lastPage: InfiniteScrollPage) => lastPage.nextCursor,\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n meta: { persist: true },\n };\n};\n","import type { TJoomlaContent } from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getJoomlaContentKey = (articleId: number | string) => {\n return [\"joomlaContent\", articleId] as const;\n};\n\nexport const getJoomlaContentOptions = (\n api: AugurApiClient,\n articleId: number | string,\n cache?: CacheConfig,\n) => {\n const tier = cache?.static;\n return {\n queryKey: getJoomlaContentKey(articleId),\n queryFn: async (): Promise<TJoomlaContent> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"joomla.content.doc.get\",\n async () => {\n const response = await api.joomla.content.doc.get(articleId, {\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n if (!response.data) throw new Error(\"Article not found\");\n return response.data;\n },\n articleId,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n","import {\n type TJoomlaContent,\n type TJoomlaContentFilters,\n} from \"@simpleapps-com/augur-utils\";\nimport type { AugurApiClient } from \"../provider\";\nimport type { CacheConfig } from \"../types\";\nimport { withCache } from \"./cache-helper\";\n\nexport const getJoomlaContentListKey = (\n categoryId: number | string,\n filters?: Partial<TJoomlaContentFilters>,\n) => {\n return [\"joomlaContentList\", categoryId, filters] as const;\n};\n\nexport const getJoomlaContentListOptions = (\n api: AugurApiClient,\n categoryId: number | string,\n filters?: Partial<TJoomlaContentFilters>,\n cache?: CacheConfig,\n) => {\n const tier = cache?.semiStatic;\n return {\n queryKey: getJoomlaContentListKey(categoryId, filters),\n queryFn: async (): Promise<TJoomlaContent[]> => {\n const edgeCache = tier?.edgeCache;\n return withCache(\n cache?.provider,\n tier,\n \"joomla.content.list\",\n async () => {\n const response = await api.joomla.content.list({\n catid: categoryId,\n ...filters,\n ...(edgeCache != null ? { edgeCache } : {}),\n });\n return response.data ?? [];\n },\n categoryId, filters,\n );\n },\n staleTime: tier?.staleTime,\n gcTime: tier?.gcTime,\n };\n};\n"],"mappings":"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","names":[]}