@pvh-afl/core 1.0.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 (154) hide show
  1. package/README.md +97 -0
  2. package/dist/cache/cache.module.d.ts +3 -0
  3. package/dist/cache/cache.module.d.ts.map +1 -0
  4. package/dist/cache/cache.module.js +17 -0
  5. package/dist/cache/cache.module.js.map +1 -0
  6. package/dist/cache/cache.service.d.ts +38 -0
  7. package/dist/cache/cache.service.d.ts.map +1 -0
  8. package/dist/cache/cache.service.js +173 -0
  9. package/dist/cache/cache.service.js.map +1 -0
  10. package/dist/cache/index.d.ts +3 -0
  11. package/dist/cache/index.d.ts.map +1 -0
  12. package/dist/cache/index.js +6 -0
  13. package/dist/cache/index.js.map +1 -0
  14. package/dist/common/guards/tenant.guard.d.ts +8 -0
  15. package/dist/common/guards/tenant.guard.d.ts.map +1 -0
  16. package/dist/common/guards/tenant.guard.js +44 -0
  17. package/dist/common/guards/tenant.guard.js.map +1 -0
  18. package/dist/common/index.d.ts +3 -0
  19. package/dist/common/index.d.ts.map +1 -0
  20. package/dist/common/index.js +6 -0
  21. package/dist/common/index.js.map +1 -0
  22. package/dist/common/logger.d.ts +7 -0
  23. package/dist/common/logger.d.ts.map +1 -0
  24. package/dist/common/logger.js +28 -0
  25. package/dist/common/logger.js.map +1 -0
  26. package/dist/config/config.module.d.ts +3 -0
  27. package/dist/config/config.module.d.ts.map +1 -0
  28. package/dist/config/config.module.js +17 -0
  29. package/dist/config/config.module.js.map +1 -0
  30. package/dist/config/config.service.d.ts +55 -0
  31. package/dist/config/config.service.d.ts.map +1 -0
  32. package/dist/config/config.service.js +212 -0
  33. package/dist/config/config.service.js.map +1 -0
  34. package/dist/config/index.d.ts +3 -0
  35. package/dist/config/index.d.ts.map +1 -0
  36. package/dist/config/index.js +6 -0
  37. package/dist/config/index.js.map +1 -0
  38. package/dist/index.d.ts +12 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +21 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/integrations/base-integration.service.d.ts +59 -0
  43. package/dist/integrations/base-integration.service.d.ts.map +1 -0
  44. package/dist/integrations/base-integration.service.js +227 -0
  45. package/dist/integrations/base-integration.service.js.map +1 -0
  46. package/dist/integrations/commerce/commerce.types.d.ts +301 -0
  47. package/dist/integrations/commerce/commerce.types.d.ts.map +1 -0
  48. package/dist/integrations/commerce/commerce.types.js +9 -0
  49. package/dist/integrations/commerce/commerce.types.js.map +1 -0
  50. package/dist/integrations/commerce/index.d.ts +4 -0
  51. package/dist/integrations/commerce/index.d.ts.map +1 -0
  52. package/dist/integrations/commerce/index.js +7 -0
  53. package/dist/integrations/commerce/index.js.map +1 -0
  54. package/dist/integrations/commerce/shopify-admin.service.d.ts +35 -0
  55. package/dist/integrations/commerce/shopify-admin.service.d.ts.map +1 -0
  56. package/dist/integrations/commerce/shopify-admin.service.js +269 -0
  57. package/dist/integrations/commerce/shopify-admin.service.js.map +1 -0
  58. package/dist/integrations/commerce/shopify.service.d.ts +43 -0
  59. package/dist/integrations/commerce/shopify.service.d.ts.map +1 -0
  60. package/dist/integrations/commerce/shopify.service.js +735 -0
  61. package/dist/integrations/commerce/shopify.service.js.map +1 -0
  62. package/dist/integrations/index.d.ts +9 -0
  63. package/dist/integrations/index.d.ts.map +1 -0
  64. package/dist/integrations/index.js +18 -0
  65. package/dist/integrations/index.js.map +1 -0
  66. package/dist/integrations/integration.factory.d.ts +23 -0
  67. package/dist/integrations/integration.factory.d.ts.map +1 -0
  68. package/dist/integrations/integration.factory.js +119 -0
  69. package/dist/integrations/integration.factory.js.map +1 -0
  70. package/dist/integrations/integration.types.d.ts +80 -0
  71. package/dist/integrations/integration.types.d.ts.map +1 -0
  72. package/dist/integrations/integration.types.js +9 -0
  73. package/dist/integrations/integration.types.js.map +1 -0
  74. package/dist/integrations/integrations.module.d.ts +3 -0
  75. package/dist/integrations/integrations.module.d.ts.map +1 -0
  76. package/dist/integrations/integrations.module.js +46 -0
  77. package/dist/integrations/integrations.module.js.map +1 -0
  78. package/dist/integrations/loyalty/capillary-auth.service.d.ts +30 -0
  79. package/dist/integrations/loyalty/capillary-auth.service.d.ts.map +1 -0
  80. package/dist/integrations/loyalty/capillary-auth.service.js +112 -0
  81. package/dist/integrations/loyalty/capillary-auth.service.js.map +1 -0
  82. package/dist/integrations/loyalty/capillary-coupon.service.d.ts +24 -0
  83. package/dist/integrations/loyalty/capillary-coupon.service.d.ts.map +1 -0
  84. package/dist/integrations/loyalty/capillary-coupon.service.js +383 -0
  85. package/dist/integrations/loyalty/capillary-coupon.service.js.map +1 -0
  86. package/dist/integrations/loyalty/capillary.types.d.ts +218 -0
  87. package/dist/integrations/loyalty/capillary.types.d.ts.map +1 -0
  88. package/dist/integrations/loyalty/capillary.types.js +21 -0
  89. package/dist/integrations/loyalty/capillary.types.js.map +1 -0
  90. package/dist/integrations/loyalty/index.d.ts +4 -0
  91. package/dist/integrations/loyalty/index.d.ts.map +1 -0
  92. package/dist/integrations/loyalty/index.js +7 -0
  93. package/dist/integrations/loyalty/index.js.map +1 -0
  94. package/dist/integrations/oms/index.d.ts +4 -0
  95. package/dist/integrations/oms/index.d.ts.map +1 -0
  96. package/dist/integrations/oms/index.js +7 -0
  97. package/dist/integrations/oms/index.js.map +1 -0
  98. package/dist/integrations/oms/omuni-auth.service.d.ts +29 -0
  99. package/dist/integrations/oms/omuni-auth.service.d.ts.map +1 -0
  100. package/dist/integrations/oms/omuni-auth.service.js +164 -0
  101. package/dist/integrations/oms/omuni-auth.service.js.map +1 -0
  102. package/dist/integrations/oms/omuni.service.d.ts +17 -0
  103. package/dist/integrations/oms/omuni.service.d.ts.map +1 -0
  104. package/dist/integrations/oms/omuni.service.js +128 -0
  105. package/dist/integrations/oms/omuni.service.js.map +1 -0
  106. package/dist/integrations/oms/omuni.types.d.ts +65 -0
  107. package/dist/integrations/oms/omuni.types.d.ts.map +1 -0
  108. package/dist/integrations/oms/omuni.types.js +3 -0
  109. package/dist/integrations/oms/omuni.types.js.map +1 -0
  110. package/dist/integrations/shopify-theme/index.d.ts +3 -0
  111. package/dist/integrations/shopify-theme/index.d.ts.map +1 -0
  112. package/dist/integrations/shopify-theme/index.js +6 -0
  113. package/dist/integrations/shopify-theme/index.js.map +1 -0
  114. package/dist/integrations/shopify-theme/shopify-theme.module.d.ts +3 -0
  115. package/dist/integrations/shopify-theme/shopify-theme.module.d.ts.map +1 -0
  116. package/dist/integrations/shopify-theme/shopify-theme.module.js +16 -0
  117. package/dist/integrations/shopify-theme/shopify-theme.module.js.map +1 -0
  118. package/dist/integrations/shopify-theme/shopify-theme.service.d.ts +35 -0
  119. package/dist/integrations/shopify-theme/shopify-theme.service.d.ts.map +1 -0
  120. package/dist/integrations/shopify-theme/shopify-theme.service.js +155 -0
  121. package/dist/integrations/shopify-theme/shopify-theme.service.js.map +1 -0
  122. package/dist/queue/index.d.ts +3 -0
  123. package/dist/queue/index.d.ts.map +1 -0
  124. package/dist/queue/index.js +8 -0
  125. package/dist/queue/index.js.map +1 -0
  126. package/dist/queue/queue.module.d.ts +3 -0
  127. package/dist/queue/queue.module.d.ts.map +1 -0
  128. package/dist/queue/queue.module.js +17 -0
  129. package/dist/queue/queue.module.js.map +1 -0
  130. package/dist/queue/queue.service.d.ts +20 -0
  131. package/dist/queue/queue.service.d.ts.map +1 -0
  132. package/dist/queue/queue.service.js +119 -0
  133. package/dist/queue/queue.service.js.map +1 -0
  134. package/dist/theme/header-content.service.d.ts +142 -0
  135. package/dist/theme/header-content.service.d.ts.map +1 -0
  136. package/dist/theme/header-content.service.js +626 -0
  137. package/dist/theme/header-content.service.js.map +1 -0
  138. package/dist/theme/index.d.ts +5 -0
  139. package/dist/theme/index.d.ts.map +1 -0
  140. package/dist/theme/index.js +17 -0
  141. package/dist/theme/index.js.map +1 -0
  142. package/dist/theme/theme-content.interfaces.d.ts +79 -0
  143. package/dist/theme/theme-content.interfaces.d.ts.map +1 -0
  144. package/dist/theme/theme-content.interfaces.js +14 -0
  145. package/dist/theme/theme-content.interfaces.js.map +1 -0
  146. package/dist/theme/theme-content.service.d.ts +125 -0
  147. package/dist/theme/theme-content.service.d.ts.map +1 -0
  148. package/dist/theme/theme-content.service.js +738 -0
  149. package/dist/theme/theme-content.service.js.map +1 -0
  150. package/dist/theme/theme.module.d.ts +46 -0
  151. package/dist/theme/theme.module.d.ts.map +1 -0
  152. package/dist/theme/theme.module.js +76 -0
  153. package/dist/theme/theme.module.js.map +1 -0
  154. package/package.json +62 -0
@@ -0,0 +1,626 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeaderContentService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const cache_service_1 = require("../cache/cache.service");
7
+ const config_service_1 = require("../config/config.service");
8
+ const shopify_theme_1 = require("../integrations/shopify-theme");
9
+ const logger_1 = require("../common/logger");
10
+ // GraphQL Queries
11
+ const MENU_QUERY = `
12
+ query Menu($handle: String!) {
13
+ menu(handle: $handle) {
14
+ items {
15
+ title
16
+ url
17
+ type
18
+ resourceId
19
+ items {
20
+ title
21
+ url
22
+ type
23
+ resourceId
24
+ items {
25
+ title
26
+ url
27
+ type
28
+ resourceId
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ `;
35
+ const METAOBJECT_QUERY = `
36
+ query Metaobject($handle: String!, $type: String!) {
37
+ metaobject(handle: { handle: $handle, type: $type }) {
38
+ fields {
39
+ key
40
+ value
41
+ }
42
+ }
43
+ }
44
+ `;
45
+ const PROMO_METAOBJECT_QUERY = `
46
+ query PromoMetaobject($handle: String!) {
47
+ metaobject(handle: { type: "megamenu_promo", handle: $handle }) {
48
+ handle
49
+ fields {
50
+ key
51
+ value
52
+ references(first: 50) {
53
+ edges {
54
+ node {
55
+ ... on Metaobject {
56
+ fields {
57
+ key
58
+ value
59
+ reference {
60
+ ... on MediaImage {
61
+ image {
62
+ url
63
+ altText
64
+ width
65
+ height
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ `;
78
+ let HeaderContentService = class HeaderContentService {
79
+ cacheService;
80
+ configService;
81
+ shopifyThemeService;
82
+ refreshInProgress = new Set();
83
+ constructor(cacheService, configService, shopifyThemeService) {
84
+ this.cacheService = cacheService;
85
+ this.configService = configService;
86
+ this.shopifyThemeService = shopifyThemeService;
87
+ }
88
+ /**
89
+ * Build cache key for header content.
90
+ * Pattern: ${brand}:header:${menuHandle}
91
+ */
92
+ buildCacheKey(brand, menuHandle) {
93
+ return `${brand}:header:${menuHandle}`;
94
+ }
95
+ /**
96
+ * Get header content with stale-while-revalidate semantics.
97
+ * Returns cached data immediately, triggers background refresh if stale.
98
+ * On cache miss, fetches on-demand (synchronously).
99
+ */
100
+ async getHeaderContent(brand, menuHandle) {
101
+ const handle = menuHandle || 'main-menu';
102
+ const cacheKey = this.buildCacheKey(brand, handle);
103
+ const cached = await this.cacheService.get(cacheKey);
104
+ // Cache HIT
105
+ if (cached) {
106
+ if (cached.isStale) {
107
+ logger_1.logger.info('Header content is stale, triggering background refresh', {
108
+ brand,
109
+ cacheKey,
110
+ });
111
+ // Background refresh - fire and forget
112
+ this.refreshHeaderInBackground(brand, cacheKey);
113
+ }
114
+ return {
115
+ success: true,
116
+ data: cached.data,
117
+ isStale: cached.isStale,
118
+ triggeredRefresh: cached.isStale,
119
+ };
120
+ }
121
+ // Cache MISS - fetch on-demand (sync)
122
+ logger_1.logger.info('Header content cache miss, fetching fresh data', {
123
+ brand,
124
+ cacheKey,
125
+ });
126
+ const content = await this.fetchHeaderContentFresh(brand);
127
+ if (!content) {
128
+ return {
129
+ success: false,
130
+ error: {
131
+ code: 'HEADER_FETCH_FAILED',
132
+ message: 'Failed to fetch header content',
133
+ },
134
+ isStale: false,
135
+ triggeredRefresh: false,
136
+ };
137
+ }
138
+ return {
139
+ success: true,
140
+ data: content,
141
+ isStale: false,
142
+ triggeredRefresh: false,
143
+ };
144
+ }
145
+ /**
146
+ * Fetch header-group.json from Shopify and process header content.
147
+ * Used for both cache miss and background refresh.
148
+ */
149
+ async fetchHeaderContentFresh(brand) {
150
+ const rawHeaderGroup = await this.shopifyThemeService.fetchThemeFile(brand, 'sections/header-group.json');
151
+ if (!rawHeaderGroup) {
152
+ logger_1.logger.error('Failed to fetch header-group.json', { brand });
153
+ return null;
154
+ }
155
+ return this.fetchAndCacheHeaderContent(brand, rawHeaderGroup);
156
+ }
157
+ /**
158
+ * Background refresh with deduplication.
159
+ * Prevents concurrent refreshes for the same cache key.
160
+ */
161
+ async refreshHeaderInBackground(brand, cacheKey) {
162
+ if (this.refreshInProgress.has(cacheKey)) {
163
+ logger_1.logger.info('Header refresh already in progress, skipping', { cacheKey });
164
+ return;
165
+ }
166
+ this.refreshInProgress.add(cacheKey);
167
+ try {
168
+ await this.fetchHeaderContentFresh(brand);
169
+ }
170
+ finally {
171
+ this.refreshInProgress.delete(cacheKey);
172
+ }
173
+ }
174
+ /**
175
+ * Fetch menu items and metaobject, process, and cache the header content.
176
+ * Fails entirely if any API call fails - no partial caching.
177
+ */
178
+ async fetchAndCacheHeaderContent(brand, rawHeaderGroup) {
179
+ // Extract menu handle from header settings
180
+ const headerSection = rawHeaderGroup.sections?.header;
181
+ const menuHandle = headerSection?.settings?.menu;
182
+ if (!menuHandle) {
183
+ logger_1.logger.warn('No menu handle found in header-group.json', { brand });
184
+ return null;
185
+ }
186
+ const cacheKey = this.buildCacheKey(brand, menuHandle);
187
+ logger_1.logger.info('Fetching header content', {
188
+ brand,
189
+ menuHandle,
190
+ cacheKey,
191
+ });
192
+ try {
193
+ // Extract mega menu config from header-group.json blocks
194
+ const megaMenuConfig = this.extractMegaMenuConfig(rawHeaderGroup);
195
+ const allPromoHandles = [...new Set([...megaMenuConfig.values()].flat())];
196
+ // Fetch menu, metaobject, and promo data in parallel
197
+ const [menuData, metaobjectData, promoDataMap] = await Promise.all([
198
+ this.fetchMenu(brand, menuHandle),
199
+ this.fetchMenuMetaobject(brand, menuHandle),
200
+ this.fetchAllPromos(brand, allPromoHandles),
201
+ ]);
202
+ if (!menuData) {
203
+ logger_1.logger.error('Failed to fetch menu data', { brand, menuHandle });
204
+ return null;
205
+ }
206
+ // Metaobject is optional - menu can work without section mappings
207
+ const sectionMappings = metaobjectData
208
+ ? this.parseSectionMappings(metaobjectData)
209
+ : new Map();
210
+ // Process and merge the data
211
+ const curatedContent = this.processHeaderContent(rawHeaderGroup, menuHandle, menuData, sectionMappings, megaMenuConfig, promoDataMap);
212
+ // Cache the processed content
213
+ const { defaultTTL, staleTTL } = this.configService.getCacheTTL(brand);
214
+ await this.cacheService.set(cacheKey, curatedContent, defaultTTL, staleTTL);
215
+ logger_1.logger.info('Header content cached', {
216
+ brand,
217
+ menuHandle,
218
+ cacheKey,
219
+ itemCount: curatedContent.menu.items.length,
220
+ });
221
+ return curatedContent;
222
+ }
223
+ catch (error) {
224
+ logger_1.logger.error('Failed to fetch and cache header content', {
225
+ brand,
226
+ menuHandle,
227
+ error: error instanceof Error ? error.message : 'Unknown',
228
+ });
229
+ return null;
230
+ }
231
+ }
232
+ /**
233
+ * Fetch menu items from Storefront API
234
+ */
235
+ async fetchMenu(brand, handle) {
236
+ const storefrontToken = this.configService.getShopifyStorefrontToken(brand);
237
+ const graphqlUrl = this.configService.getShopifyGraphqlUrl(brand);
238
+ if (!storefrontToken || !graphqlUrl) {
239
+ logger_1.logger.error('Missing Storefront API configuration', {
240
+ brand,
241
+ hasToken: !!storefrontToken,
242
+ hasUrl: !!graphqlUrl,
243
+ });
244
+ return null;
245
+ }
246
+ try {
247
+ const response = await fetch(graphqlUrl, {
248
+ method: 'POST',
249
+ headers: {
250
+ 'Content-Type': 'application/json',
251
+ 'X-Shopify-Storefront-Access-Token': storefrontToken,
252
+ },
253
+ body: JSON.stringify({
254
+ query: MENU_QUERY,
255
+ variables: { handle },
256
+ }),
257
+ });
258
+ const result = (await response.json());
259
+ if (result.errors?.length) {
260
+ logger_1.logger.error('Storefront API errors fetching menu', {
261
+ brand,
262
+ handle,
263
+ errors: result.errors.map((e) => e.message),
264
+ });
265
+ return null;
266
+ }
267
+ const items = result.data?.menu?.items;
268
+ if (!items) {
269
+ logger_1.logger.warn('No menu items found', { brand, handle });
270
+ return null;
271
+ }
272
+ logger_1.logger.info('Menu fetched from Storefront API', {
273
+ brand,
274
+ handle,
275
+ itemCount: items.length,
276
+ });
277
+ return items;
278
+ }
279
+ catch (error) {
280
+ logger_1.logger.error('Failed to fetch menu from Storefront API', {
281
+ brand,
282
+ handle,
283
+ error: error instanceof Error ? error.message : 'Unknown',
284
+ });
285
+ return null;
286
+ }
287
+ }
288
+ /**
289
+ * Fetch menu metaobject from Storefront API
290
+ */
291
+ async fetchMenuMetaobject(brand, handle) {
292
+ const storefrontToken = this.configService.getShopifyStorefrontToken(brand);
293
+ const graphqlUrl = this.configService.getShopifyGraphqlUrl(brand);
294
+ if (!storefrontToken || !graphqlUrl) {
295
+ logger_1.logger.error('Missing Storefront API configuration for metaobject', {
296
+ brand,
297
+ hasToken: !!storefrontToken,
298
+ hasUrl: !!graphqlUrl,
299
+ });
300
+ return null;
301
+ }
302
+ try {
303
+ const response = await fetch(graphqlUrl, {
304
+ method: 'POST',
305
+ headers: {
306
+ 'Content-Type': 'application/json',
307
+ 'X-Shopify-Storefront-Access-Token': storefrontToken,
308
+ },
309
+ body: JSON.stringify({
310
+ query: METAOBJECT_QUERY,
311
+ variables: { handle, type: 'menu' },
312
+ }),
313
+ });
314
+ const result = (await response.json());
315
+ if (result.errors?.length) {
316
+ logger_1.logger.error('Storefront API errors fetching metaobject', {
317
+ brand,
318
+ handle,
319
+ errors: result.errors.map((e) => e.message),
320
+ });
321
+ return null;
322
+ }
323
+ const fields = result.data?.metaobject?.fields;
324
+ if (!fields) {
325
+ logger_1.logger.warn('No metaobject fields found', { brand, handle });
326
+ return null;
327
+ }
328
+ logger_1.logger.info('Menu metaobject fetched from Storefront API', {
329
+ brand,
330
+ handle,
331
+ fieldCount: fields.length,
332
+ });
333
+ return fields;
334
+ }
335
+ catch (error) {
336
+ logger_1.logger.error('Failed to fetch menu metaobject from Storefront API', {
337
+ brand,
338
+ handle,
339
+ error: error instanceof Error ? error.message : 'Unknown',
340
+ });
341
+ return null;
342
+ }
343
+ }
344
+ /**
345
+ * Parse section mappings from metaobject JSON field
346
+ */
347
+ parseSectionMappings(fields) {
348
+ const mappings = new Map();
349
+ const jsonField = fields.find((f) => f.key === 'json');
350
+ if (!jsonField?.value) {
351
+ return mappings;
352
+ }
353
+ try {
354
+ const parsed = JSON.parse(jsonField.value);
355
+ for (const [, mapping] of Object.entries(parsed)) {
356
+ if (mapping.handle && Array.isArray(mapping.sections)) {
357
+ mappings.set(mapping.handle, mapping.sections);
358
+ }
359
+ }
360
+ logger_1.logger.info('Parsed section mappings', {
361
+ count: mappings.size,
362
+ handles: Array.from(mappings.keys()),
363
+ });
364
+ }
365
+ catch (error) {
366
+ logger_1.logger.error('Failed to parse metaobject JSON field', {
367
+ error: error instanceof Error ? error.message : 'Unknown',
368
+ });
369
+ }
370
+ return mappings;
371
+ }
372
+ /**
373
+ * Process and merge header content
374
+ */
375
+ processHeaderContent(rawHeaderGroup, menuHandle, menuItems, sectionMappings, megaMenuConfig, promoDataMap) {
376
+ // Extract header settings (excluding the menu handle since we have the full menu)
377
+ const headerSection = rawHeaderGroup.sections?.header;
378
+ const headerSettings = headerSection?.settings
379
+ ? { ...headerSection.settings }
380
+ : {};
381
+ // Curate menu items with section mappings and mega menu data
382
+ const curatedItems = this.curateMenuItems(menuItems, sectionMappings, megaMenuConfig, promoDataMap);
383
+ return {
384
+ headerSettings,
385
+ menu: {
386
+ handle: menuHandle,
387
+ items: curatedItems,
388
+ },
389
+ };
390
+ }
391
+ /**
392
+ * Recursively curate menu items and attach section mappings and mega menus
393
+ */
394
+ curateMenuItems(items, sectionMappings, megaMenuConfig, promoDataMap) {
395
+ return items.map((item) => {
396
+ const curated = {
397
+ title: item.title,
398
+ url: item.url,
399
+ type: item.type,
400
+ resourceId: item.resourceId,
401
+ };
402
+ // Extract handle from URL to match section mappings
403
+ const urlHandle = this.extractHandleFromUrl(item.url);
404
+ if (urlHandle && sectionMappings.has(urlHandle)) {
405
+ curated.sections = sectionMappings.get(urlHandle);
406
+ }
407
+ // Get promos for this parent item
408
+ const promoHandles = megaMenuConfig.get(item.title);
409
+ const parentPromos = promoHandles
410
+ ?.map((h) => promoDataMap.get(h))
411
+ .filter((p) => p !== undefined) ?? [];
412
+ // Build categoryTitle -> promo map for child matching
413
+ const promoByCategoryTitle = new Map();
414
+ for (const promo of parentPromos) {
415
+ if (promo.categoryTitle) {
416
+ promoByCategoryTitle.set(promo.categoryTitle, promo);
417
+ }
418
+ }
419
+ // Process children and attach matching promos by categoryTitle
420
+ if (item.items && item.items.length > 0) {
421
+ curated.items = item.items.map((child) => {
422
+ const curatedChild = this.curateMenuItem(child, sectionMappings);
423
+ // Match child title to promo categoryTitle
424
+ const matchingPromo = promoByCategoryTitle.get(child.title);
425
+ if (matchingPromo) {
426
+ curatedChild.megaMenu = { promos: [matchingPromo] };
427
+ }
428
+ return curatedChild;
429
+ });
430
+ }
431
+ return curated;
432
+ });
433
+ }
434
+ /**
435
+ * Curate a single menu item (without mega menu logic)
436
+ */
437
+ curateMenuItem(item, sectionMappings) {
438
+ const curated = {
439
+ title: item.title,
440
+ url: item.url,
441
+ type: item.type,
442
+ resourceId: item.resourceId,
443
+ };
444
+ const urlHandle = this.extractHandleFromUrl(item.url);
445
+ if (urlHandle && sectionMappings.has(urlHandle)) {
446
+ curated.sections = sectionMappings.get(urlHandle);
447
+ }
448
+ // Process nested items (third level doesn't get mega menus)
449
+ if (item.items && item.items.length > 0) {
450
+ curated.items = item.items.map((child) => this.curateMenuItem(child, sectionMappings));
451
+ }
452
+ return curated;
453
+ }
454
+ /**
455
+ * Extract handle from URL path
456
+ */
457
+ extractHandleFromUrl(url) {
458
+ if (!url)
459
+ return null;
460
+ try {
461
+ const path = url.startsWith('http') ? new URL(url).pathname : url;
462
+ const segments = path.split('/').filter(Boolean);
463
+ return segments[segments.length - 1] || null;
464
+ }
465
+ catch {
466
+ return null;
467
+ }
468
+ }
469
+ /**
470
+ * Extract mega menu configuration from header-group.json blocks.
471
+ */
472
+ extractMegaMenuConfig(rawHeaderGroup) {
473
+ const config = new Map();
474
+ for (const section of Object.values(rawHeaderGroup.sections || {})) {
475
+ if (!section.blocks)
476
+ continue;
477
+ for (const block of Object.values(section.blocks)) {
478
+ if (block.type === 'mega_menu' && block.settings) {
479
+ const menuItem = block.settings.menu_item;
480
+ const promos = block.settings.promos;
481
+ if (menuItem && promos?.length) {
482
+ config.set(menuItem, promos);
483
+ }
484
+ }
485
+ }
486
+ }
487
+ if (config.size > 0) {
488
+ logger_1.logger.info('Extracted mega menu config', {
489
+ menuItems: Array.from(config.keys()),
490
+ totalPromos: Array.from(config.values()).flat().length,
491
+ });
492
+ }
493
+ return config;
494
+ }
495
+ /**
496
+ * Fetch a single promo metaobject from Storefront API
497
+ */
498
+ async fetchPromoMetaobject(brand, handle) {
499
+ const storefrontToken = this.configService.getShopifyStorefrontToken(brand);
500
+ const graphqlUrl = this.configService.getShopifyGraphqlUrl(brand);
501
+ if (!storefrontToken || !graphqlUrl) {
502
+ logger_1.logger.error('Missing Storefront API configuration for promo metaobject', {
503
+ brand,
504
+ handle,
505
+ });
506
+ return null;
507
+ }
508
+ try {
509
+ const response = await fetch(graphqlUrl, {
510
+ method: 'POST',
511
+ headers: {
512
+ 'Content-Type': 'application/json',
513
+ 'X-Shopify-Storefront-Access-Token': storefrontToken,
514
+ },
515
+ body: JSON.stringify({
516
+ query: PROMO_METAOBJECT_QUERY,
517
+ variables: { handle },
518
+ }),
519
+ });
520
+ const result = (await response.json());
521
+ if (result.errors?.length) {
522
+ logger_1.logger.error('Storefront API errors fetching promo metaobject', {
523
+ brand,
524
+ handle,
525
+ errors: result.errors.map((e) => e.message),
526
+ });
527
+ return null;
528
+ }
529
+ const metaobject = result.data?.metaobject;
530
+ if (!metaobject) {
531
+ logger_1.logger.warn('No promo metaobject found', { brand, handle });
532
+ return null;
533
+ }
534
+ return this.parsePromoMetaobject(metaobject);
535
+ }
536
+ catch (error) {
537
+ logger_1.logger.error('Failed to fetch promo metaobject from Storefront API', {
538
+ brand,
539
+ handle,
540
+ error: error instanceof Error ? error.message : 'Unknown',
541
+ });
542
+ return null;
543
+ }
544
+ }
545
+ /**
546
+ * Parse promo metaobject response into MegaMenuPromoData
547
+ */
548
+ parsePromoMetaobject(metaobject) {
549
+ if (!metaobject)
550
+ return null;
551
+ const categoryTitleField = metaobject.fields.find((f) => f.key === 'category_title');
552
+ const cardsField = metaobject.fields.find((f) => f.key === 'cards');
553
+ const cards = [];
554
+ if (cardsField?.references?.edges) {
555
+ for (const edge of cardsField.references.edges) {
556
+ const card = this.parsePromoCard(edge.node.fields);
557
+ if (card) {
558
+ cards.push(card);
559
+ }
560
+ }
561
+ }
562
+ return {
563
+ categoryTitle: categoryTitleField?.value || undefined,
564
+ cards,
565
+ };
566
+ }
567
+ /**
568
+ * Parse a promo card from metaobject fields
569
+ */
570
+ parsePromoCard(fields) {
571
+ const titleField = fields.find((f) => f.key === 'title');
572
+ const linkField = fields.find((f) => f.key === 'link');
573
+ const imageField = fields.find((f) => f.key === 'image');
574
+ if (!titleField?.value || !linkField?.value) {
575
+ return null;
576
+ }
577
+ const card = {
578
+ title: titleField.value,
579
+ link: linkField.value,
580
+ };
581
+ if (imageField?.reference?.image) {
582
+ card.image = {
583
+ url: imageField.reference.image.url,
584
+ altText: imageField.reference.image.altText,
585
+ width: imageField.reference.image.width,
586
+ height: imageField.reference.image.height,
587
+ };
588
+ }
589
+ return card;
590
+ }
591
+ /**
592
+ * Fetch all promo metaobjects in parallel
593
+ */
594
+ async fetchAllPromos(brand, handles) {
595
+ const promoMap = new Map();
596
+ if (handles.length === 0) {
597
+ return promoMap;
598
+ }
599
+ logger_1.logger.info('Fetching promo metaobjects', {
600
+ brand,
601
+ count: handles.length,
602
+ handles,
603
+ });
604
+ const results = await Promise.all(handles.map((handle) => this.fetchPromoMetaobject(brand, handle)));
605
+ for (let i = 0; i < handles.length; i++) {
606
+ const promo = results[i];
607
+ if (promo) {
608
+ promoMap.set(handles[i], promo);
609
+ }
610
+ }
611
+ logger_1.logger.info('Fetched promo metaobjects', {
612
+ brand,
613
+ requested: handles.length,
614
+ found: promoMap.size,
615
+ });
616
+ return promoMap;
617
+ }
618
+ };
619
+ exports.HeaderContentService = HeaderContentService;
620
+ exports.HeaderContentService = HeaderContentService = tslib_1.__decorate([
621
+ (0, common_1.Injectable)(),
622
+ tslib_1.__metadata("design:paramtypes", [cache_service_1.CacheService,
623
+ config_service_1.ConfigService,
624
+ shopify_theme_1.ShopifyThemeService])
625
+ ], HeaderContentService);
626
+ //# sourceMappingURL=header-content.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-content.service.js","sourceRoot":"","sources":["../../src/theme/header-content.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { ThemeModule, ThemeModuleOptions } from './theme.module';
2
+ export { ThemeContentService, CuratedThemeContent, ThemeContentResult, } from './theme-content.service';
3
+ export { HeaderContentService, CuratedMenuItem, CuratedHeaderContent, HeaderContentResult, HeaderError, } from './header-content.service';
4
+ export { IThemeCollectionService, IThemeProductService, ThemeProduct, ThemeCollection, ThemeMoney, ThemeImage, THEME_COLLECTION_SERVICE, THEME_PRODUCT_SERVICE, } from './theme-content.interfaces';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,UAAU,EACV,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.THEME_PRODUCT_SERVICE = exports.THEME_COLLECTION_SERVICE = exports.HeaderContentService = exports.ThemeContentService = exports.ThemeModule = void 0;
4
+ // Theme module
5
+ var theme_module_1 = require("./theme.module");
6
+ Object.defineProperty(exports, "ThemeModule", { enumerable: true, get: function () { return theme_module_1.ThemeModule; } });
7
+ // Theme content service
8
+ var theme_content_service_1 = require("./theme-content.service");
9
+ Object.defineProperty(exports, "ThemeContentService", { enumerable: true, get: function () { return theme_content_service_1.ThemeContentService; } });
10
+ // Header content service
11
+ var header_content_service_1 = require("./header-content.service");
12
+ Object.defineProperty(exports, "HeaderContentService", { enumerable: true, get: function () { return header_content_service_1.HeaderContentService; } });
13
+ // Interfaces for dependency injection
14
+ var theme_content_interfaces_1 = require("./theme-content.interfaces");
15
+ Object.defineProperty(exports, "THEME_COLLECTION_SERVICE", { enumerable: true, get: function () { return theme_content_interfaces_1.THEME_COLLECTION_SERVICE; } });
16
+ Object.defineProperty(exports, "THEME_PRODUCT_SERVICE", { enumerable: true, get: function () { return theme_content_interfaces_1.THEME_PRODUCT_SERVICE; } });
17
+ //# sourceMappingURL=index.js.map