@pvh-afl/graphql 1.1.20 → 1.1.22

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.
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CartContentModule
3
+ *
4
+ * Exposes the `cartContent` query, which reads the cart-drawer and
5
+ * search-drawer sections from `sections/header-group.json` and resolves the
6
+ * configured collections/products. Depends on CollectionService and
7
+ * ProductService (via their modules) plus ShopifyThemeService for the theme
8
+ * fetch. CacheService/ConfigService are provided globally.
9
+ */
10
+ export declare class CartContentModule {
11
+ }
12
+ //# sourceMappingURL=cart-content.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-content.module.d.ts","sourceRoot":"","sources":["../../src/cart-content/cart-content.module.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,qBAKa,iBAAiB;CAAG"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CartContentModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const core_1 = require("@pvh-afl/core");
7
+ const cart_content_resolver_1 = require("./cart-content.resolver");
8
+ const cart_content_service_1 = require("./cart-content.service");
9
+ const collection_module_1 = require("../collection/collection.module");
10
+ const product_module_1 = require("../product/product.module");
11
+ /**
12
+ * CartContentModule
13
+ *
14
+ * Exposes the `cartContent` query, which reads the cart-drawer and
15
+ * search-drawer sections from `sections/header-group.json` and resolves the
16
+ * configured collections/products. Depends on CollectionService and
17
+ * ProductService (via their modules) plus ShopifyThemeService for the theme
18
+ * fetch. CacheService/ConfigService are provided globally.
19
+ */
20
+ let CartContentModule = class CartContentModule {
21
+ };
22
+ exports.CartContentModule = CartContentModule;
23
+ exports.CartContentModule = CartContentModule = tslib_1.__decorate([
24
+ (0, common_1.Module)({
25
+ imports: [core_1.ShopifyThemeModule, collection_module_1.CollectionModule, product_module_1.ProductModule],
26
+ providers: [cart_content_resolver_1.CartContentResolver, cart_content_service_1.CartContentService],
27
+ exports: [cart_content_service_1.CartContentService],
28
+ })
29
+ ], CartContentModule);
30
+ //# sourceMappingURL=cart-content.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-content.module.js","sourceRoot":"","sources":["../../src/cart-content/cart-content.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,wCAAmD;AACnD,mEAA8D;AAC9D,iEAA4D;AAC5D,uEAAmE;AACnE,8DAA0D;AAE1D;;;;;;;;GAQG;AAMI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IAL7B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,yBAAkB,EAAE,oCAAgB,EAAE,8BAAa,CAAC;QAC9D,SAAS,EAAE,CAAC,2CAAmB,EAAE,yCAAkB,CAAC;QACpD,OAAO,EAAE,CAAC,yCAAkB,CAAC;KAC9B,CAAC;GACW,iBAAiB,CAAG"}
@@ -0,0 +1,21 @@
1
+ import { CartContentService } from './cart-content.service';
2
+ import { CartContent } from './cart-content.types';
3
+ interface GqlContext {
4
+ req: {
5
+ brand: string;
6
+ };
7
+ }
8
+ export declare class CartContentResolver {
9
+ private readonly cartContentService;
10
+ constructor(cartContentService: CartContentService);
11
+ /**
12
+ * Cart & search drawer CMS content, resolved from the cart-drawer and
13
+ * search-drawer sections in `sections/header-group.json`.
14
+ *
15
+ * @param cartDrawerProductsLimit - Optional cap on cart-drawer products
16
+ * (the section itself has no product count). Defaults to 10.
17
+ */
18
+ cartContent(ctx: GqlContext, cartDrawerProductsLimit?: number): Promise<CartContent>;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=cart-content.resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-content.resolver.d.ts","sourceRoot":"","sources":["../../src/cart-content/cart-content.resolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,UAAU,UAAU;IAClB,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxB;AAED,qBAEa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,kBAAkB;IAEnE;;;;;;OAMG;IAMG,WAAW,CACJ,GAAG,EAAE,UAAU,EAM1B,uBAAuB,CAAC,EAAE,MAAM,GAC/B,OAAO,CAAC,WAAW,CAAC;CAMxB"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CartContentResolver = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_1 = require("@nestjs/graphql");
6
+ const common_1 = require("@nestjs/common");
7
+ const core_1 = require("@pvh-afl/core");
8
+ const cart_content_service_1 = require("./cart-content.service");
9
+ const cart_content_types_1 = require("./cart-content.types");
10
+ let CartContentResolver = class CartContentResolver {
11
+ cartContentService;
12
+ constructor(cartContentService) {
13
+ this.cartContentService = cartContentService;
14
+ }
15
+ /**
16
+ * Cart & search drawer CMS content, resolved from the cart-drawer and
17
+ * search-drawer sections in `sections/header-group.json`.
18
+ *
19
+ * @param cartDrawerProductsLimit - Optional cap on cart-drawer products
20
+ * (the section itself has no product count). Defaults to 10.
21
+ */
22
+ async cartContent(ctx, cartDrawerProductsLimit) {
23
+ return this.cartContentService.getCartContent(ctx.req.brand, cartDrawerProductsLimit);
24
+ }
25
+ };
26
+ exports.CartContentResolver = CartContentResolver;
27
+ tslib_1.__decorate([
28
+ (0, graphql_1.Query)(() => cart_content_types_1.CartContent, {
29
+ description: 'Cart & search drawer CMS content resolved from header-group.json',
30
+ nullable: true,
31
+ }),
32
+ tslib_1.__param(0, (0, graphql_1.Context)()),
33
+ tslib_1.__param(1, (0, graphql_1.Args)('cartDrawerProductsLimit', {
34
+ type: () => graphql_1.Int,
35
+ nullable: true,
36
+ description: 'Max products to return for the cart drawer (default 10)',
37
+ })),
38
+ tslib_1.__metadata("design:type", Function),
39
+ tslib_1.__metadata("design:paramtypes", [Object, Number]),
40
+ tslib_1.__metadata("design:returntype", Promise)
41
+ ], CartContentResolver.prototype, "cartContent", null);
42
+ exports.CartContentResolver = CartContentResolver = tslib_1.__decorate([
43
+ (0, graphql_1.Resolver)(),
44
+ (0, common_1.UseGuards)(core_1.TenantGuard),
45
+ tslib_1.__metadata("design:paramtypes", [cart_content_service_1.CartContentService])
46
+ ], CartContentResolver);
47
+ //# sourceMappingURL=cart-content.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-content.resolver.js","sourceRoot":"","sources":["../../src/cart-content/cart-content.resolver.ts"],"names":[],"mappings":";;;;AAAA,6CAAsE;AACtE,2CAA2C;AAC3C,wCAA4C;AAC5C,iEAA4D;AAC5D,6DAAmD;AAQ5C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACD;IAA7B,YAA6B,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAEvE;;;;;;OAMG;IAMG,AAAN,KAAK,CAAC,WAAW,CACJ,GAAe,EAM1B,uBAAgC;QAEhC,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAC3C,GAAG,CAAC,GAAG,CAAC,KAAK,EACb,uBAAuB,CACxB,CAAC;IACJ,CAAC;CACF,CAAA;AA7BY,kDAAmB;AAexB;IALL,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,gCAAW,EAAE;QACxB,WAAW,EACT,kEAAkE;QACpE,QAAQ,EAAE,IAAI;KACf,CAAC;IAEC,mBAAA,IAAA,iBAAO,GAAE,CAAA;IACT,mBAAA,IAAA,cAAI,EAAC,yBAAyB,EAAE;QAC/B,IAAI,EAAE,GAAG,EAAE,CAAC,aAAG;QACf,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,yDAAyD;KACvE,CAAC,CAAA;;;;sDAOH;8BA5BU,mBAAmB;IAF/B,IAAA,kBAAQ,GAAE;IACV,IAAA,kBAAS,EAAC,kBAAW,CAAC;6CAE4B,yCAAkB;GADxD,mBAAmB,CA6B/B"}
@@ -0,0 +1,51 @@
1
+ import { CacheService, ConfigService, ShopifyThemeService } from '@pvh-afl/core';
2
+ import { CollectionService } from '../collection/collection.service';
3
+ import { ProductService } from '../product/product.service';
4
+ import { CartContent } from './cart-content.types';
5
+ export declare class CartContentService {
6
+ private readonly cache;
7
+ private readonly configService;
8
+ private readonly shopifyThemeService;
9
+ private readonly collectionService;
10
+ private readonly productService;
11
+ private refreshInProgress;
12
+ constructor(cache: CacheService, configService: ConfigService, shopifyThemeService: ShopifyThemeService, collectionService: CollectionService, productService: ProductService);
13
+ private buildCacheKey;
14
+ /**
15
+ * Get resolved cart & search drawer content.
16
+ *
17
+ * The header-group.json parse is cached (stale-while-revalidate); collections
18
+ * and products are resolved on every call through their own cached services.
19
+ */
20
+ getCartContent(brand: string, cartDrawerProductsLimit?: number): Promise<CartContent>;
21
+ /**
22
+ * Load the parsed drawer sections with stale-while-revalidate semantics.
23
+ */
24
+ private getCartSections;
25
+ /**
26
+ * Fetch header-group.json from Shopify and extract the drawer sections.
27
+ */
28
+ private fetchAndParseSections;
29
+ /**
30
+ * Locate the cart-drawer and search-drawer sections by their `type` (robust
31
+ * to the section key naming) and pull out the configured settings.
32
+ */
33
+ private parseSections;
34
+ private asString;
35
+ private asPositiveInt;
36
+ private refreshSectionsInBackground;
37
+ private resolveSearchDrawer;
38
+ /**
39
+ * Resolve a collection and its products (full Product objects with live
40
+ * inventory), capped at `limit`. Shared by the cart drawer and best sellers
41
+ * so both expose the same { collection, products } shape.
42
+ */
43
+ private resolveCollectionWithProducts;
44
+ /**
45
+ * Resolve collection metadata (title/image) for the trending chips. Products
46
+ * are not needed here, so only a single product is requested per collection.
47
+ * Handles that fail to resolve are omitted.
48
+ */
49
+ private resolveCollections;
50
+ }
51
+ //# sourceMappingURL=cart-content.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-content.service.d.ts","sourceRoot":"","sources":["../../src/cart-content/cart-content.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACL,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAqD9B,qBACa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPjC,OAAO,CAAC,iBAAiB,CAAqB;gBAG3B,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc;IAGjD,OAAO,CAAC,aAAa;IAIrB;;;;;OAKG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,uBAAuB,SAAqC,GAC3D,OAAO,CAAC,WAAW,CAAC;IA6BvB;;OAEG;YACW,eAAe;IA2B7B;;OAEG;YACW,qBAAqB;IAkBnC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,2BAA2B;YAyBrB,mBAAmB;IAuBjC;;;;OAIG;YACW,6BAA6B;IAyB3C;;;;OAIG;YACW,kBAAkB;CAyBjC"}
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CartContentService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const core_1 = require("@pvh-afl/core");
7
+ const collection_service_1 = require("../collection/collection.service");
8
+ const product_service_1 = require("../product/product.service");
9
+ /**
10
+ * Number of cart-drawer collection products fetched when the caller does not
11
+ * pass an explicit limit. The cart-drawer section carries no product count of
12
+ * its own (unlike the search drawer's bestsellers_limit).
13
+ */
14
+ const DEFAULT_CART_DRAWER_PRODUCTS_LIMIT = 10;
15
+ /** Fallback bestsellers count when the section omits bestsellers_limit. */
16
+ const DEFAULT_BESTSELLERS_LIMIT = 6;
17
+ /**
18
+ * Product count requested when resolving a collection for its metadata only
19
+ * (title/image for the trending chips). Kept small since the products are
20
+ * discarded here.
21
+ */
22
+ const METADATA_ONLY_PRODUCTS_FIRST = 1;
23
+ const HEADER_GROUP_PATH = 'sections/header-group.json';
24
+ let CartContentService = class CartContentService {
25
+ cache;
26
+ configService;
27
+ shopifyThemeService;
28
+ collectionService;
29
+ productService;
30
+ refreshInProgress = new Set();
31
+ constructor(cache, configService, shopifyThemeService, collectionService, productService) {
32
+ this.cache = cache;
33
+ this.configService = configService;
34
+ this.shopifyThemeService = shopifyThemeService;
35
+ this.collectionService = collectionService;
36
+ this.productService = productService;
37
+ }
38
+ buildCacheKey(brand) {
39
+ return `${brand}:cart-content:sections`;
40
+ }
41
+ /**
42
+ * Get resolved cart & search drawer content.
43
+ *
44
+ * The header-group.json parse is cached (stale-while-revalidate); collections
45
+ * and products are resolved on every call through their own cached services.
46
+ */
47
+ async getCartContent(brand, cartDrawerProductsLimit = DEFAULT_CART_DRAWER_PRODUCTS_LIMIT) {
48
+ const { config, isStale, triggeredRefresh } = await this.getCartSections(brand);
49
+ if (!config) {
50
+ return {
51
+ cartDrawer: null,
52
+ searchDrawer: null,
53
+ isStale,
54
+ triggeredRefresh,
55
+ };
56
+ }
57
+ const [cartDrawer, searchDrawer] = await Promise.all([
58
+ config.cartDrawer
59
+ ? this.resolveCollectionWithProducts(brand, config.cartDrawer.collectionHandle, cartDrawerProductsLimit)
60
+ : Promise.resolve(null),
61
+ config.searchDrawer
62
+ ? this.resolveSearchDrawer(brand, config.searchDrawer)
63
+ : Promise.resolve(null),
64
+ ]);
65
+ return { cartDrawer, searchDrawer, isStale, triggeredRefresh };
66
+ }
67
+ /**
68
+ * Load the parsed drawer sections with stale-while-revalidate semantics.
69
+ */
70
+ async getCartSections(brand) {
71
+ const cacheKey = this.buildCacheKey(brand);
72
+ const cached = await this.cache.get(cacheKey);
73
+ if (cached) {
74
+ if (cached.isStale) {
75
+ this.refreshSectionsInBackground(brand, cacheKey);
76
+ }
77
+ return {
78
+ config: cached.data,
79
+ isStale: cached.isStale,
80
+ triggeredRefresh: cached.isStale,
81
+ };
82
+ }
83
+ const config = await this.fetchAndParseSections(brand);
84
+ if (!config) {
85
+ return { config: null, isStale: false, triggeredRefresh: false };
86
+ }
87
+ const { defaultTTL, staleTTL } = this.configService.getCacheTTL(brand);
88
+ await this.cache.set(cacheKey, config, defaultTTL, staleTTL);
89
+ return { config, isStale: false, triggeredRefresh: false };
90
+ }
91
+ /**
92
+ * Fetch header-group.json from Shopify and extract the drawer sections.
93
+ */
94
+ async fetchAndParseSections(brand) {
95
+ const raw = await this.shopifyThemeService.fetchThemeFile(brand, HEADER_GROUP_PATH);
96
+ if (!raw) {
97
+ core_1.logger.error('Failed to fetch header-group.json for cart content', {
98
+ brand,
99
+ });
100
+ return null;
101
+ }
102
+ return this.parseSections(raw);
103
+ }
104
+ /**
105
+ * Locate the cart-drawer and search-drawer sections by their `type` (robust
106
+ * to the section key naming) and pull out the configured settings.
107
+ */
108
+ parseSections(raw) {
109
+ let cartDrawer = null;
110
+ let searchDrawer = null;
111
+ for (const section of Object.values(raw.sections ?? {})) {
112
+ const settings = section?.settings ?? {};
113
+ if (section?.type === 'cart-drawer') {
114
+ const collectionHandle = settings.collection;
115
+ if (collectionHandle) {
116
+ cartDrawer = { collectionHandle };
117
+ }
118
+ }
119
+ else if (section?.type === 'search-drawer') {
120
+ searchDrawer = {
121
+ trendingHeading: this.asString(settings.trending_heading),
122
+ trendingCollectionHandles: Array.isArray(settings.trending_collections)
123
+ ? settings.trending_collections.filter((h) => typeof h === 'string')
124
+ : [],
125
+ bestsellersHeading: this.asString(settings.bestsellers_heading),
126
+ bestsellersCollectionHandle: this.asString(settings.bestsellers_collection),
127
+ bestsellersLimit: this.asPositiveInt(settings.bestsellers_limit, DEFAULT_BESTSELLERS_LIMIT),
128
+ };
129
+ }
130
+ }
131
+ return { cartDrawer, searchDrawer };
132
+ }
133
+ asString(value) {
134
+ return typeof value === 'string' && value.length > 0 ? value : null;
135
+ }
136
+ asPositiveInt(value, fallback) {
137
+ const parsed = typeof value === 'number' ? value : Number.parseInt(String(value), 10);
138
+ return Number.isFinite(parsed) && parsed > 0 ? Math.floor(parsed) : fallback;
139
+ }
140
+ refreshSectionsInBackground(brand, cacheKey) {
141
+ if (this.refreshInProgress.has(cacheKey)) {
142
+ return;
143
+ }
144
+ this.refreshInProgress.add(cacheKey);
145
+ this.fetchAndParseSections(brand)
146
+ .then(async (config) => {
147
+ if (config) {
148
+ const { defaultTTL, staleTTL } = this.configService.getCacheTTL(brand);
149
+ await this.cache.set(cacheKey, config, defaultTTL, staleTTL);
150
+ core_1.logger.info('Cart content sections cache refreshed', { cacheKey });
151
+ }
152
+ })
153
+ .catch((error) => {
154
+ core_1.logger.error('Cart content background refresh failed', {
155
+ cacheKey,
156
+ error: error instanceof Error ? error.message : 'Unknown',
157
+ });
158
+ })
159
+ .finally(() => {
160
+ this.refreshInProgress.delete(cacheKey);
161
+ });
162
+ }
163
+ async resolveSearchDrawer(brand, config) {
164
+ const [trendingCollections, bestsellers] = await Promise.all([
165
+ this.resolveCollections(brand, config.trendingCollectionHandles),
166
+ config.bestsellersCollectionHandle
167
+ ? this.resolveCollectionWithProducts(brand, config.bestsellersCollectionHandle, config.bestsellersLimit)
168
+ : Promise.resolve(null),
169
+ ]);
170
+ return {
171
+ trendingHeading: config.trendingHeading,
172
+ trendingCollections,
173
+ bestsellersHeading: config.bestsellersHeading,
174
+ bestsellers,
175
+ };
176
+ }
177
+ /**
178
+ * Resolve a collection and its products (full Product objects with live
179
+ * inventory), capped at `limit`. Shared by the cart drawer and best sellers
180
+ * so both expose the same { collection, products } shape.
181
+ */
182
+ async resolveCollectionWithProducts(brand, handle, limit) {
183
+ const collection = await this.collectionService.getCollectionByHandle(brand, handle, limit);
184
+ if (!collection) {
185
+ core_1.logger.warn('Cart content collection not found', { brand, handle });
186
+ return { collection: null, products: [] };
187
+ }
188
+ const handles = (collection.productHandles ?? []).slice(0, limit);
189
+ const products = await this.productService.getProductsByHandles(brand, handles);
190
+ return { collection, products };
191
+ }
192
+ /**
193
+ * Resolve collection metadata (title/image) for the trending chips. Products
194
+ * are not needed here, so only a single product is requested per collection.
195
+ * Handles that fail to resolve are omitted.
196
+ */
197
+ async resolveCollections(brand, handles) {
198
+ if (handles.length === 0) {
199
+ return [];
200
+ }
201
+ const results = await Promise.all(handles.map((handle) => this.collectionService
202
+ .getCollectionByHandle(brand, handle, METADATA_ONLY_PRODUCTS_FIRST)
203
+ .catch((error) => {
204
+ core_1.logger.error('Failed to resolve trending collection', {
205
+ brand,
206
+ handle,
207
+ error: error instanceof Error ? error.message : 'Unknown',
208
+ });
209
+ return null;
210
+ })));
211
+ return results.filter((c) => c !== null);
212
+ }
213
+ };
214
+ exports.CartContentService = CartContentService;
215
+ exports.CartContentService = CartContentService = tslib_1.__decorate([
216
+ (0, common_1.Injectable)(),
217
+ tslib_1.__metadata("design:paramtypes", [core_1.CacheService,
218
+ core_1.ConfigService,
219
+ core_1.ShopifyThemeService,
220
+ collection_service_1.CollectionService,
221
+ product_service_1.ProductService])
222
+ ], CartContentService);
223
+ //# sourceMappingURL=cart-content.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-content.service.js","sourceRoot":"","sources":["../../src/cart-content/cart-content.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { Product } from '../product/product.types';
2
+ import { Collection } from '../collection/collection.types';
3
+ /**
4
+ * A collection paired with its resolved products.
5
+ *
6
+ * Used for BOTH the cart drawer and the best sellers block so the frontend
7
+ * reads the same `collection` + `products` keys everywhere.
8
+ */
9
+ export declare class DrawerCollection {
10
+ collection: Collection | null;
11
+ products: Product[];
12
+ }
13
+ /**
14
+ * Resolved content for the search drawer, driven by the `search-drawer` section
15
+ * in `sections/header-group.json`.
16
+ */
17
+ export declare class SearchDrawerContent {
18
+ trendingHeading: string | null;
19
+ trendingCollections: Collection[];
20
+ bestsellersHeading: string | null;
21
+ bestsellers: DrawerCollection | null;
22
+ }
23
+ /**
24
+ * Aggregated cart & search drawer CMS content.
25
+ */
26
+ export declare class CartContent {
27
+ cartDrawer: DrawerCollection | null;
28
+ searchDrawer: SearchDrawerContent | null;
29
+ isStale?: boolean;
30
+ triggeredRefresh?: boolean;
31
+ }
32
+ //# sourceMappingURL=cart-content.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-content.types.d.ts","sourceRoot":"","sources":["../../src/cart-content/cart-content.types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D;;;;;GAKG;AACH,qBACa,gBAAgB;IAK3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAK9B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,qBACa,mBAAmB;IAK9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAM/B,mBAAmB,EAAE,UAAU,EAAE,CAAC;IAMlC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAOlC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,qBACa,WAAW;IAKtB,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAGpC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAKzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CartContent = exports.SearchDrawerContent = exports.DrawerCollection = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_1 = require("@nestjs/graphql");
6
+ const product_types_1 = require("../product/product.types");
7
+ const collection_types_1 = require("../collection/collection.types");
8
+ /**
9
+ * A collection paired with its resolved products.
10
+ *
11
+ * Used for BOTH the cart drawer and the best sellers block so the frontend
12
+ * reads the same `collection` + `products` keys everywhere.
13
+ */
14
+ let DrawerCollection = class DrawerCollection {
15
+ collection;
16
+ products;
17
+ };
18
+ exports.DrawerCollection = DrawerCollection;
19
+ tslib_1.__decorate([
20
+ (0, graphql_1.Field)(() => collection_types_1.Collection, {
21
+ nullable: true,
22
+ description: 'The configured collection',
23
+ }),
24
+ tslib_1.__metadata("design:type", Object)
25
+ ], DrawerCollection.prototype, "collection", void 0);
26
+ tslib_1.__decorate([
27
+ (0, graphql_1.Field)(() => [product_types_1.Product], {
28
+ description: 'Resolved products for the collection',
29
+ }),
30
+ tslib_1.__metadata("design:type", Array)
31
+ ], DrawerCollection.prototype, "products", void 0);
32
+ exports.DrawerCollection = DrawerCollection = tslib_1.__decorate([
33
+ (0, graphql_1.ObjectType)()
34
+ ], DrawerCollection);
35
+ /**
36
+ * Resolved content for the search drawer, driven by the `search-drawer` section
37
+ * in `sections/header-group.json`.
38
+ */
39
+ let SearchDrawerContent = class SearchDrawerContent {
40
+ trendingHeading;
41
+ trendingCollections;
42
+ bestsellersHeading;
43
+ bestsellers;
44
+ };
45
+ exports.SearchDrawerContent = SearchDrawerContent;
46
+ tslib_1.__decorate([
47
+ (0, graphql_1.Field)(() => String, {
48
+ nullable: true,
49
+ description: 'Heading for the trending / popular categories block',
50
+ }),
51
+ tslib_1.__metadata("design:type", Object)
52
+ ], SearchDrawerContent.prototype, "trendingHeading", void 0);
53
+ tslib_1.__decorate([
54
+ (0, graphql_1.Field)(() => [collection_types_1.Collection], {
55
+ description: 'Collections resolved from the configured trending collection handles (metadata only, no products)',
56
+ }),
57
+ tslib_1.__metadata("design:type", Array)
58
+ ], SearchDrawerContent.prototype, "trendingCollections", void 0);
59
+ tslib_1.__decorate([
60
+ (0, graphql_1.Field)(() => String, {
61
+ nullable: true,
62
+ description: 'Heading for the best sellers block',
63
+ }),
64
+ tslib_1.__metadata("design:type", Object)
65
+ ], SearchDrawerContent.prototype, "bestsellersHeading", void 0);
66
+ tslib_1.__decorate([
67
+ (0, graphql_1.Field)(() => DrawerCollection, {
68
+ nullable: true,
69
+ description: 'Best sellers collection with its products (capped by bestsellers_limit)',
70
+ }),
71
+ tslib_1.__metadata("design:type", Object)
72
+ ], SearchDrawerContent.prototype, "bestsellers", void 0);
73
+ exports.SearchDrawerContent = SearchDrawerContent = tslib_1.__decorate([
74
+ (0, graphql_1.ObjectType)()
75
+ ], SearchDrawerContent);
76
+ /**
77
+ * Aggregated cart & search drawer CMS content.
78
+ */
79
+ let CartContent = class CartContent {
80
+ cartDrawer;
81
+ searchDrawer;
82
+ // Cache diagnostics for the parsed header-group.json sections, mirroring
83
+ // the shape used by the header query.
84
+ isStale;
85
+ triggeredRefresh;
86
+ };
87
+ exports.CartContent = CartContent;
88
+ tslib_1.__decorate([
89
+ (0, graphql_1.Field)(() => DrawerCollection, {
90
+ nullable: true,
91
+ description: 'Cart drawer collection with its products',
92
+ }),
93
+ tslib_1.__metadata("design:type", Object)
94
+ ], CartContent.prototype, "cartDrawer", void 0);
95
+ tslib_1.__decorate([
96
+ (0, graphql_1.Field)(() => SearchDrawerContent, { nullable: true }),
97
+ tslib_1.__metadata("design:type", Object)
98
+ ], CartContent.prototype, "searchDrawer", void 0);
99
+ tslib_1.__decorate([
100
+ (0, graphql_1.Field)({ nullable: true }),
101
+ tslib_1.__metadata("design:type", Boolean)
102
+ ], CartContent.prototype, "isStale", void 0);
103
+ tslib_1.__decorate([
104
+ (0, graphql_1.Field)({ nullable: true }),
105
+ tslib_1.__metadata("design:type", Boolean)
106
+ ], CartContent.prototype, "triggeredRefresh", void 0);
107
+ exports.CartContent = CartContent = tslib_1.__decorate([
108
+ (0, graphql_1.ObjectType)()
109
+ ], CartContent);
110
+ //# sourceMappingURL=cart-content.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-content.types.js","sourceRoot":"","sources":["../../src/cart-content/cart-content.types.ts"],"names":[],"mappings":";;;;AAAA,6CAAoD;AACpD,4DAAmD;AACnD,qEAA4D;AAE5D;;;;;GAKG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAK3B,UAAU,CAAoB;IAK9B,QAAQ,CAAY;CACrB,CAAA;AAXY,4CAAgB;AAK3B;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,6BAAU,EAAE;QACvB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,2BAA2B;KACzC,CAAC;;oDAC4B;AAK9B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,uBAAO,CAAC,EAAE;QACtB,WAAW,EAAE,sCAAsC;KACpD,CAAC;;kDACkB;2BAVT,gBAAgB;IAD5B,IAAA,oBAAU,GAAE;GACA,gBAAgB,CAW5B;AAED;;;GAGG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAK9B,eAAe,CAAgB;IAM/B,mBAAmB,CAAe;IAMlC,kBAAkB,CAAgB;IAOlC,WAAW,CAA0B;CACtC,CAAA;AAzBY,kDAAmB;AAK9B;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,qDAAqD;KACnE,CAAC;;4DAC6B;AAM/B;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,6BAAU,CAAC,EAAE;QACzB,WAAW,EACT,mGAAmG;KACtG,CAAC;;gEACgC;AAMlC;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,oCAAoC;KAClD,CAAC;;+DACgC;AAOlC;IALC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE;QAC7B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,yEAAyE;KAC5E,CAAC;;wDACmC;8BAxB1B,mBAAmB;IAD/B,IAAA,oBAAU,GAAE;GACA,mBAAmB,CAyB/B;AAED;;GAEG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAW;IAKtB,UAAU,CAA0B;IAGpC,YAAY,CAA6B;IAEzC,yEAAyE;IACzE,sCAAsC;IAEtC,OAAO,CAAW;IAGlB,gBAAgB,CAAW;CAC5B,CAAA;AAjBY,kCAAW;AAKtB;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE;QAC7B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,0CAA0C;KACxD,CAAC;;+CACkC;AAGpC;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACZ;AAKzC;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACR;AAGlB;IADC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACC;sBAhBhB,WAAW;IADvB,IAAA,oBAAU,GAAE;GACA,WAAW,CAiBvB"}
@@ -0,0 +1,5 @@
1
+ export * from './cart-content.module';
2
+ export * from './cart-content.resolver';
3
+ export * from './cart-content.service';
4
+ export * from './cart-content.types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cart-content/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./cart-content.module"), exports);
5
+ tslib_1.__exportStar(require("./cart-content.resolver"), exports);
6
+ tslib_1.__exportStar(require("./cart-content.service"), exports);
7
+ tslib_1.__exportStar(require("./cart-content.types"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cart-content/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,kEAAwC;AACxC,iEAAuC;AACvC,+DAAqC"}
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ export * from './loyalty';
15
15
  export * from './page-content';
16
16
  export * from './product-content';
17
17
  export * from './header';
18
+ export * from './cart-content';
18
19
  export * from './cms';
19
20
  export * from './static-pages';
20
21
  export * from './common';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,kBAAkB,CAAC;AAGjC,cAAc,WAAW,CAAC;AAG1B,cAAc,QAAQ,CAAC;AAGvB,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,UAAU,CAAC;AAGzB,cAAc,OAAO,CAAC;AAGtB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,kBAAkB,CAAC;AAGjC,cAAc,WAAW,CAAC;AAG1B,cAAc,QAAQ,CAAC;AAGvB,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,OAAO,CAAC;AAGtB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -30,6 +30,8 @@ tslib_1.__exportStar(require("./page-content"), exports);
30
30
  tslib_1.__exportStar(require("./product-content"), exports);
31
31
  // Header
32
32
  tslib_1.__exportStar(require("./header"), exports);
33
+ // Cart Content (cart & search drawer CMS)
34
+ tslib_1.__exportStar(require("./cart-content"), exports);
33
35
  // CMS
34
36
  tslib_1.__exportStar(require("./cms"), exports);
35
37
  // Static Pages
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,mDAAmD;AACnD,2DAAiC;AAEjC,UAAU;AACV,oDAA0B;AAE1B,OAAO;AACP,iDAAuB;AAEvB,0BAA0B;AAC1B,qDAA2B;AAE3B,aAAa;AACb,uDAA6B;AAE7B,iBAAiB;AACjB,2DAAiC;AAEjC,gBAAgB;AAChB,0DAAgC;AAEhC,iBAAiB;AACjB,2DAAiC;AAEjC,UAAU;AACV,oDAA0B;AAE1B,eAAe;AACf,yDAA+B;AAE/B,kBAAkB;AAClB,4DAAkC;AAElC,SAAS;AACT,mDAAyB;AAEzB,MAAM;AACN,gDAAsB;AAEtB,eAAe;AACf,yDAA+B;AAE/B,2BAA2B;AAC3B,mDAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,mDAAmD;AACnD,2DAAiC;AAEjC,UAAU;AACV,oDAA0B;AAE1B,OAAO;AACP,iDAAuB;AAEvB,0BAA0B;AAC1B,qDAA2B;AAE3B,aAAa;AACb,uDAA6B;AAE7B,iBAAiB;AACjB,2DAAiC;AAEjC,gBAAgB;AAChB,0DAAgC;AAEhC,iBAAiB;AACjB,2DAAiC;AAEjC,UAAU;AACV,oDAA0B;AAE1B,eAAe;AACf,yDAA+B;AAE/B,kBAAkB;AAClB,4DAAkC;AAElC,SAAS;AACT,mDAAyB;AAEzB,0CAA0C;AAC1C,yDAA+B;AAE/B,MAAM;AACN,gDAAsB;AAEtB,eAAe;AACf,yDAA+B;AAE/B,2BAA2B;AAC3B,mDAAyB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pvh-afl/graphql",
3
- "version": "1.1.20",
3
+ "version": "1.1.22",
4
4
  "description": "AFL GraphQL - Shared GraphQL modules for multi-brand commerce platform",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,7 +22,7 @@
22
22
  "@nestjs/common": "^10.0.0",
23
23
  "@nestjs/core": "^10.0.0",
24
24
  "@nestjs/graphql": "^12.0.0",
25
- "@pvh-afl/core": "^1.1.16",
25
+ "@pvh-afl/core": "^1.1.17",
26
26
  "graphql": "^16.0.0"
27
27
  },
28
28
  "devDependencies": {
@@ -32,7 +32,7 @@
32
32
  "@nestjs/core": "^10.4.0",
33
33
  "@nestjs/graphql": "^12.2.0",
34
34
  "@nestjs/testing": "^10.4.0",
35
- "@pvh-afl/core": "^1.1.16",
35
+ "@pvh-afl/core": "^1.1.17",
36
36
  "@types/jest": "^29.5.0",
37
37
  "graphql": "^16.9.0",
38
38
  "graphql-type-json": "^0.3.2",