@gfed-medusa/sf-lib-common 3.7.4 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/components/breadcrumbs/index.d.ts +2 -2
  2. package/dist/components/delete-button/index.d.ts +2 -2
  3. package/dist/components/device-id-setter/index.d.ts +5 -0
  4. package/dist/components/device-id-setter/index.d.ts.map +1 -0
  5. package/dist/components/device-id-setter/index.js +16 -0
  6. package/dist/components/device-id-setter/index.js.map +1 -0
  7. package/dist/components/free-shipping-price-nudge/index.d.ts +2 -2
  8. package/dist/components/interactive-link/index.d.ts +2 -2
  9. package/dist/components/interactive-link/index.d.ts.map +1 -1
  10. package/dist/components/line-item-options/index.d.ts +2 -2
  11. package/dist/components/line-item-price/index.d.ts +2 -2
  12. package/dist/components/localized-client-link/index.d.ts +2 -2
  13. package/dist/components/modal/index.d.ts +2 -2
  14. package/dist/components/modal/index.d.ts.map +1 -1
  15. package/dist/components/personalized-content/components/hero-banner.d.ts +31 -0
  16. package/dist/components/personalized-content/components/hero-banner.d.ts.map +1 -0
  17. package/dist/components/personalized-content/components/hero-banner.js +85 -0
  18. package/dist/components/personalized-content/components/hero-banner.js.map +1 -0
  19. package/dist/components/personalized-content/components/index.d.ts +2 -0
  20. package/dist/components/personalized-content/components/index.js +3 -0
  21. package/dist/components/preview-price/index.d.ts +2 -2
  22. package/dist/components/product-card/index.d.ts +2 -2
  23. package/dist/components/product-preview/index.d.ts +2 -4
  24. package/dist/components/product-preview/index.d.ts.map +1 -1
  25. package/dist/components/product-preview/index.js +1 -2
  26. package/dist/components/product-preview/index.js.map +1 -1
  27. package/dist/components/submit-button/index.d.ts +2 -2
  28. package/dist/components/thumbnail/index.d.ts +0 -1
  29. package/dist/components/thumbnail/index.d.ts.map +1 -1
  30. package/dist/components/thumbnail/index.js +9 -11
  31. package/dist/components/thumbnail/index.js.map +1 -1
  32. package/dist/lib/context/modal-context.d.ts +2 -2
  33. package/dist/lib/data/context.d.ts +2 -2
  34. package/dist/lib/data/personalization.d.ts +51 -0
  35. package/dist/lib/data/personalization.d.ts.map +1 -0
  36. package/dist/lib/data/personalization.js +77 -0
  37. package/dist/lib/data/personalization.js.map +1 -0
  38. package/dist/lib/gql/apollo-client.d.ts.map +1 -1
  39. package/dist/lib/gql/apollo-client.js +6 -2
  40. package/dist/lib/gql/apollo-client.js.map +1 -1
  41. package/dist/lib/gql/fragments/cart.d.ts +9 -9
  42. package/dist/lib/gql/fragments/customer.d.ts +3 -3
  43. package/dist/lib/gql/fragments/customer.d.ts.map +1 -1
  44. package/dist/lib/gql/fragments/product.d.ts +8 -8
  45. package/dist/lib/gql/mutations/cart.d.ts +6 -6
  46. package/dist/lib/gql/queries/cart-summary.d.ts +2 -2
  47. package/dist/lib/gql/queries/cart-summary.js +1 -1
  48. package/dist/lib/gql/queries/cart-summary.js.map +1 -1
  49. package/dist/lib/gql/queries/cart-total.d.ts +7 -0
  50. package/dist/lib/gql/queries/cart-total.d.ts.map +1 -0
  51. package/dist/lib/gql/queries/cart-total.js +14 -0
  52. package/dist/lib/gql/queries/cart-total.js.map +1 -0
  53. package/dist/lib/gql/queries/cart.d.ts +2 -2
  54. package/dist/lib/gql/queries/cart.js +1 -1
  55. package/dist/lib/gql/queries/cart.js.map +1 -1
  56. package/dist/lib/gql/queries/collections.d.ts +3 -3
  57. package/dist/lib/gql/queries/customer.d.ts +2 -2
  58. package/dist/lib/gql/queries/footer.d.ts +3 -3
  59. package/dist/lib/gql/queries/home-banner.d.ts +2 -2
  60. package/dist/lib/gql/queries/order.d.ts +4 -4
  61. package/dist/lib/gql/queries/order.d.ts.map +1 -1
  62. package/dist/lib/gql/queries/order.js +5 -0
  63. package/dist/lib/gql/queries/order.js.map +1 -1
  64. package/dist/lib/gql/queries/product-personalization.d.ts +7 -0
  65. package/dist/lib/gql/queries/product-personalization.d.ts.map +1 -0
  66. package/dist/lib/gql/queries/product-personalization.js +22 -0
  67. package/dist/lib/gql/queries/product-personalization.js.map +1 -0
  68. package/dist/lib/gql/queries/product.d.ts +2 -2
  69. package/dist/lib/gql/queries/regions.d.ts +3 -3
  70. package/dist/lib/hooks/use-apollo.d.ts +2 -2
  71. package/dist/lib/hooks/use-apollo.d.ts.map +1 -1
  72. package/dist/lib/hooks/use-time-on-page.d.ts +13 -0
  73. package/dist/lib/hooks/use-time-on-page.d.ts.map +1 -0
  74. package/dist/lib/hooks/use-time-on-page.js +46 -0
  75. package/dist/lib/hooks/use-time-on-page.js.map +1 -0
  76. package/dist/lib/personalization/behavior-tracker.d.ts +1 -5
  77. package/dist/lib/personalization/behavior-tracker.d.ts.map +1 -1
  78. package/dist/lib/personalization/behavior-tracker.js +1 -18
  79. package/dist/lib/personalization/behavior-tracker.js.map +1 -1
  80. package/dist/lib/personalization/client-signal.d.ts +26 -0
  81. package/dist/lib/personalization/client-signal.d.ts.map +1 -0
  82. package/dist/lib/personalization/client-signal.js +105 -0
  83. package/dist/lib/personalization/client-signal.js.map +1 -0
  84. package/dist/lib/personalization/config.d.ts +2 -6
  85. package/dist/lib/personalization/config.d.ts.map +1 -1
  86. package/dist/lib/personalization/config.js +2 -16
  87. package/dist/lib/personalization/config.js.map +1 -1
  88. package/dist/lib/personalization/device-id.d.ts +5 -0
  89. package/dist/lib/personalization/device-id.d.ts.map +1 -0
  90. package/dist/lib/personalization/device-id.js +23 -0
  91. package/dist/lib/personalization/device-id.js.map +1 -0
  92. package/dist/lib/personalization/personalization-gql.d.ts +9 -0
  93. package/dist/lib/personalization/personalization-gql.d.ts.map +1 -0
  94. package/dist/lib/personalization/personalization-gql.js +42 -0
  95. package/dist/lib/personalization/personalization-gql.js.map +1 -0
  96. package/dist/lib/utils/imagekit.d.ts +2 -2
  97. package/dist/lib/utils/imagekit.js +1 -1
  98. package/dist/lib/utils/imagekit.js.map +1 -1
  99. package/dist/types/graphql.d.ts +247 -5
  100. package/dist/types/graphql.d.ts.map +1 -1
  101. package/dist/types/graphql.js +410 -3
  102. package/dist/types/graphql.js.map +1 -1
  103. package/package.json +1 -1
  104. package/dist/lib/data/contextual-banner.d.ts +0 -15
  105. package/dist/lib/data/contextual-banner.d.ts.map +0 -1
  106. package/dist/lib/data/contextual-banner.js +0 -19
  107. package/dist/lib/data/contextual-banner.js.map +0 -1
  108. package/dist/lib/gql/queries/contextual-banner.d.ts +0 -7
  109. package/dist/lib/gql/queries/contextual-banner.d.ts.map +0 -1
  110. package/dist/lib/gql/queries/contextual-banner.js +0 -21
  111. package/dist/lib/gql/queries/contextual-banner.js.map +0 -1
  112. package/dist/lib/personalization/user-profile.d.ts +0 -15
  113. package/dist/lib/personalization/user-profile.d.ts.map +0 -1
  114. package/dist/lib/personalization/user-profile.js +0 -47
  115. package/dist/lib/personalization/user-profile.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gfed-medusa/sf-lib-common",
3
- "version": "3.7.4",
3
+ "version": "3.8.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,15 +0,0 @@
1
- //#region src/lib/data/contextual-banner.d.ts
2
- interface ContextualBannerContent {
3
- title: string;
4
- description: string;
5
- ctaLabel: string;
6
- ctaHref: string;
7
- trigger: string;
8
- minPrice?: number;
9
- isActive: boolean;
10
- priority: number;
11
- }
12
- declare function getAllContextualBanners(): Promise<ContextualBannerContent[]>;
13
- //#endregion
14
- export { ContextualBannerContent, getAllContextualBanners };
15
- //# sourceMappingURL=contextual-banner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contextual-banner.d.ts","names":[],"sources":["../../../src/lib/data/contextual-banner.ts"],"sourcesContent":[],"mappings":";UAGiB,uBAAA;EAAA,KAAA,EAAA,MAAA;EAeK,WAAA,EAAA,MAAA;;;;;;;;iBAAA,uBAAA,CAAA,GAA2B,QAAQ"}
@@ -1,19 +0,0 @@
1
- import { graphqlFetch } from "../gql/apollo-client.js";
2
- import { GET_CONTEXTUAL_BANNERS_QUERY } from "../gql/queries/contextual-banner.js";
3
-
4
- //#region src/lib/data/contextual-banner.ts
5
- async function getAllContextualBanners() {
6
- try {
7
- return ((await graphqlFetch({
8
- query: GET_CONTEXTUAL_BANNERS_QUERY,
9
- variables: {}
10
- }))?.contextualBanners ?? []).filter((b) => b.isActive);
11
- } catch (error) {
12
- console.error("Error fetching contextual banners:", error);
13
- return [];
14
- }
15
- }
16
-
17
- //#endregion
18
- export { getAllContextualBanners };
19
- //# sourceMappingURL=contextual-banner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contextual-banner.js","names":[],"sources":["../../../src/lib/data/contextual-banner.ts"],"sourcesContent":["import { graphqlFetch } from '@/lib/gql/apollo-client';\nimport { GET_CONTEXTUAL_BANNERS_QUERY } from '@/lib/gql/queries/contextual-banner';\n\nexport interface ContextualBannerContent {\n title: string;\n description: string;\n ctaLabel: string;\n ctaHref: string;\n trigger: string;\n minPrice?: number;\n isActive: boolean;\n priority: number;\n}\n\ntype ContextualBannersQueryResult = {\n contextualBanners: ContextualBannerContent[];\n};\n\nexport async function getAllContextualBanners(): Promise<ContextualBannerContent[]> {\n try {\n const data = await graphqlFetch<\n ContextualBannersQueryResult,\n Record<string, never>\n >({\n query: GET_CONTEXTUAL_BANNERS_QUERY,\n variables: {},\n });\n\n const banners = data?.contextualBanners ?? [];\n return banners.filter((b) => b.isActive);\n } catch (error) {\n console.error('Error fetching contextual banners:', error);\n return [];\n }\n}"],"mappings":";;;;AAkBA,eAAsB,0BAA8D;AAClF,KAAI;AAUF,WATa,MAAM,aAGjB;GACA,OAAO;GACP,WAAW,EAAE;GACd,CAAC,GAEoB,qBAAqB,EAAE,EAC9B,QAAQ,MAAM,EAAE,SAAS;UACjC,OAAO;AACd,UAAQ,MAAM,sCAAsC,MAAM;AAC1D,SAAO,EAAE"}
@@ -1,7 +0,0 @@
1
- import * as _apollo_client38 from "@apollo/client";
2
-
3
- //#region src/lib/gql/queries/contextual-banner.d.ts
4
- declare const GET_CONTEXTUAL_BANNERS_QUERY: _apollo_client38.DocumentNode;
5
- //#endregion
6
- export { GET_CONTEXTUAL_BANNERS_QUERY };
7
- //# sourceMappingURL=contextual-banner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contextual-banner.d.ts","names":[],"sources":["../../../../src/lib/gql/queries/contextual-banner.ts"],"sourcesContent":[],"mappings":";;;cAEa,8BAaZ,gBAAA,CAbwC"}
@@ -1,21 +0,0 @@
1
- import { gql } from "@apollo/client";
2
-
3
- //#region src/lib/gql/queries/contextual-banner.ts
4
- const GET_CONTEXTUAL_BANNERS_QUERY = gql`
5
- query GetContextualBanners {
6
- contextualBanners {
7
- title
8
- description
9
- ctaLabel
10
- ctaHref
11
- trigger
12
- minPrice
13
- isActive
14
- priority
15
- }
16
- }
17
- `;
18
-
19
- //#endregion
20
- export { GET_CONTEXTUAL_BANNERS_QUERY };
21
- //# sourceMappingURL=contextual-banner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contextual-banner.js","names":[],"sources":["../../../../src/lib/gql/queries/contextual-banner.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const GET_CONTEXTUAL_BANNERS_QUERY = gql`\n query GetContextualBanners {\n contextualBanners {\n title\n description\n ctaLabel\n ctaHref\n trigger\n minPrice\n isActive\n priority\n }\n }\n`;"],"mappings":";;;AAEA,MAAa,+BAA+B,GAAG"}
@@ -1,15 +0,0 @@
1
- //#region src/lib/personalization/user-profile.d.ts
2
- interface UserProfile {
3
- interest: string;
4
- primaryInterest: string;
5
- confidence: number;
6
- history: string[];
7
- signals: Record<string, unknown>;
8
- lastUpdated: number;
9
- }
10
- declare function getUserProfile(): UserProfile;
11
- declare function updateUserProfile(updates: Partial<UserProfile>): void;
12
- declare function addToHistory(category: string): void;
13
- //#endregion
14
- export { UserProfile, addToHistory, getUserProfile, updateUserProfile };
15
- //# sourceMappingURL=user-profile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-profile.d.ts","names":[],"sources":["../../../src/lib/personalization/user-profile.ts"],"sourcesContent":[],"mappings":";UAEiB,WAAA;EAAA,QAAA,EAAA,MAAW;EAkCZ,eAAA,EAAc,MAAA;EAad,UAAA,EAAA,MAAA;EAQA,OAAA,EAAA,MAAY,EAAA;WAlDjB;;;iBA6BK,cAAA,CAAA,GAAkB;iBAalB,iBAAA,UAA2B,QAAQ;iBAQnC,YAAA"}
@@ -1,47 +0,0 @@
1
- //#region src/lib/personalization/user-profile.ts
2
- const PROFILE_KEY = "jg_user_profile";
3
- function defaultProfile() {
4
- return {
5
- interest: "",
6
- primaryInterest: "",
7
- confidence: 0,
8
- history: [],
9
- signals: {},
10
- lastUpdated: Date.now()
11
- };
12
- }
13
- function isValidUserProfile(value) {
14
- if (typeof value !== "object" || value === null) return false;
15
- const obj = value;
16
- return typeof obj.interest === "string" && typeof obj.primaryInterest === "string" && typeof obj.confidence === "number" && Array.isArray(obj.history) && obj.history.every((h) => typeof h === "string") && typeof obj.signals === "object" && typeof obj.lastUpdated === "number";
17
- }
18
- function getUserProfile() {
19
- if (typeof window === "undefined") return defaultProfile();
20
- try {
21
- const stored = localStorage.getItem(PROFILE_KEY);
22
- if (!stored) return defaultProfile();
23
- const parsed = JSON.parse(stored);
24
- return isValidUserProfile(parsed) ? parsed : defaultProfile();
25
- } catch {
26
- return defaultProfile();
27
- }
28
- }
29
- function updateUserProfile(updates) {
30
- if (typeof window === "undefined") return;
31
- const updated = {
32
- ...getUserProfile(),
33
- ...updates,
34
- lastUpdated: Date.now()
35
- };
36
- localStorage.setItem(PROFILE_KEY, JSON.stringify(updated));
37
- }
38
- function addToHistory(category) {
39
- const profile = getUserProfile();
40
- const normalizedCategory = String(category).trim();
41
- if (!normalizedCategory) return;
42
- updateUserProfile({ history: [...profile.history || [], normalizedCategory].slice(-20) });
43
- }
44
-
45
- //#endregion
46
- export { addToHistory, getUserProfile, updateUserProfile };
47
- //# sourceMappingURL=user-profile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-profile.js","names":[],"sources":["../../../src/lib/personalization/user-profile.ts"],"sourcesContent":["const PROFILE_KEY = 'jg_user_profile';\n\nexport interface UserProfile {\n interest: string;\n primaryInterest: string;\n confidence: number;\n history: string[];\n signals: Record<string, unknown>;\n lastUpdated: number;\n}\n\nfunction defaultProfile(): UserProfile {\n return {\n interest: '',\n primaryInterest: '',\n confidence: 0,\n history: [],\n signals: {},\n lastUpdated: Date.now(),\n };\n}\n\nfunction isValidUserProfile(value: unknown): value is UserProfile {\n if (typeof value !== 'object' || value === null) return false;\n const obj = value as Record<string, unknown>;\n return (\n typeof obj.interest === 'string' &&\n typeof obj.primaryInterest === 'string' &&\n typeof obj.confidence === 'number' &&\n Array.isArray(obj.history) &&\n obj.history.every((h) => typeof h === 'string') &&\n typeof obj.signals === 'object' &&\n typeof obj.lastUpdated === 'number'\n );\n}\n\nexport function getUserProfile(): UserProfile {\n if (typeof window === 'undefined') return defaultProfile();\n\n try {\n const stored = localStorage.getItem(PROFILE_KEY);\n if (!stored) return defaultProfile();\n const parsed = JSON.parse(stored);\n return isValidUserProfile(parsed) ? parsed : defaultProfile();\n } catch {\n return defaultProfile();\n }\n}\n\nexport function updateUserProfile(updates: Partial<UserProfile>): void {\n if (typeof window === 'undefined') return;\n\n const profile = getUserProfile();\n const updated = { ...profile, ...updates, lastUpdated: Date.now() };\n localStorage.setItem(PROFILE_KEY, JSON.stringify(updated));\n}\n\nexport function addToHistory(category: string): void {\n const profile = getUserProfile();\n const normalizedCategory = String(category).trim();\n if (!normalizedCategory) return;\n const history = [...(profile.history || []), normalizedCategory].slice(-20);\n updateUserProfile({ history });\n}\n"],"mappings":";AAAA,MAAM,cAAc;AAWpB,SAAS,iBAA8B;AACrC,QAAO;EACL,UAAU;EACV,iBAAiB;EACjB,YAAY;EACZ,SAAS,EAAE;EACX,SAAS,EAAE;EACX,aAAa,KAAK,KAAK;EACxB;;AAGH,SAAS,mBAAmB,OAAsC;AAChE,KAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;CACxD,MAAM,MAAM;AACZ,QACE,OAAO,IAAI,aAAa,YACxB,OAAO,IAAI,oBAAoB,YAC/B,OAAO,IAAI,eAAe,YAC1B,MAAM,QAAQ,IAAI,QAAQ,IAC1B,IAAI,QAAQ,OAAO,MAAM,OAAO,MAAM,SAAS,IAC/C,OAAO,IAAI,YAAY,YACvB,OAAO,IAAI,gBAAgB;;AAI/B,SAAgB,iBAA8B;AAC5C,KAAI,OAAO,WAAW,YAAa,QAAO,gBAAgB;AAE1D,KAAI;EACF,MAAM,SAAS,aAAa,QAAQ,YAAY;AAChD,MAAI,CAAC,OAAQ,QAAO,gBAAgB;EACpC,MAAM,SAAS,KAAK,MAAM,OAAO;AACjC,SAAO,mBAAmB,OAAO,GAAG,SAAS,gBAAgB;SACvD;AACN,SAAO,gBAAgB;;;AAI3B,SAAgB,kBAAkB,SAAqC;AACrE,KAAI,OAAO,WAAW,YAAa;CAGnC,MAAM,UAAU;EAAE,GADF,gBAAgB;EACF,GAAG;EAAS,aAAa,KAAK,KAAK;EAAE;AACnE,cAAa,QAAQ,aAAa,KAAK,UAAU,QAAQ,CAAC;;AAG5D,SAAgB,aAAa,UAAwB;CACnD,MAAM,UAAU,gBAAgB;CAChC,MAAM,qBAAqB,OAAO,SAAS,CAAC,MAAM;AAClD,KAAI,CAAC,mBAAoB;AAEzB,mBAAkB,EAAE,SADJ,CAAC,GAAI,QAAQ,WAAW,EAAE,EAAG,mBAAmB,CAAC,MAAM,IAAI,EAC9C,CAAC"}