@faststore/api 4.8.1-dev.2 → 4.9.0-dev.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.
@@ -19,6 +19,8 @@ export interface GraphqlContext {
19
19
  channel: Required<Channel>;
20
20
  locale: string;
21
21
  flags: FeatureFlags;
22
+ /** Project-supplied extension of the sort map. See `Options.customSortMap`. */
23
+ customSortMap: Record<string, string>;
22
24
  searchArgs?: Omit<SearchArgs, 'type'>;
23
25
  cookies: Map<string, Record<string, string>>;
24
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platforms/vtex/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,SAAS,CAAA;AAKtD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;SAKK;IACL,OAAO,EAAE;QACP,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC1B,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,YAAY,CAAA;QACnB,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QACrC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QAC5C;;;;;WAKG;QACH,wBAAwB,CAAC,EAAE,GAAG,CAC5B,MAAM,EACN,OAAO,CAAC,OAAO,mBAAmB,EAAE,qBAAqB,GAAG,IAAI,CAAC,CAClE,CAAA;KACF,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED,eAAO,MAAM,yBAAyB,GAAU,SAAS,OAAO,mBACjD,GAAG,KAAG,cAAc,CAkBlC,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,CAC/D,cAAc,EACd,CAAC,EACD,CAAC,EACD,CAAC,CACF,CAAA;AAED,wBAAgB,YAAY;;;;;;gJAkCguB,6CAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAAq7hB,CAAC;mBAAsB,CAAC;kBAAqB,CAAC;yBAA8B,CAAC;uBAA0B,CAAC;yBAA4B,CAAC;uBAA0B,CAAC;iBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAA4ub,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAlBjm/B;AAED,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,aAAa,iBAe5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platforms/vtex/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,SAAS,CAAA;AAKtD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;SAKK;IACL,OAAO,EAAE;QACP,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC1B,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,YAAY,CAAA;QACnB,+EAA+E;QAC/E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACrC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QACrC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QAC5C;;;;;WAKG;QACH,wBAAwB,CAAC,EAAE,GAAG,CAC5B,MAAM,EACN,OAAO,CAAC,OAAO,mBAAmB,EAAE,qBAAqB,GAAG,IAAI,CAAC,CAClE,CAAA;KACF,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED,eAAO,MAAM,yBAAyB,GAAU,SAAS,OAAO,mBACjD,GAAG,KAAG,cAAc,CAmBlC,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,CAC/D,cAAc,EACd,CAAC,EACD,CAAC,EACD,CAAC,CACF,CAAA;AAED,wBAAgB,YAAY;;;;;;gJAkCgjB,6CAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA+7hB,CAAC;mBAAsB,CAAC;kBAAqB,CAAC;yBAA8B,CAAC;uBAA0B,CAAC;yBAA4B,CAAC;uBAA0B,CAAC;iBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAAkub,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAlBj7+B;AAED,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,aAAa,iBAe5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/resolvers/index.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,YAAY;;;;;;oJAConG,mCAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAAq7hB,CAAC;mBAAsB,CAAC;kBAAqB,CAAC;yBAA8B,CAAC;uBAA0B,CAAC;yBAA4B,CAAC;uBAA0B,CAAC;iBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAA4ub,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADp8jC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/resolvers/index.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,YAAY;;;;;;oJAConG,mCAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA+7hB,CAAC;mBAAsB,CAAC;kBAAqB,CAAC;yBAA8B,CAAC;uBAA0B,CAAC;yBAA4B,CAAC;uBAA0B,CAAC;iBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAAkub,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADp8jC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/resolvers/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAElB,aAAa,EAEd,MAAM,+BAA+B,CAAA;AAUtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,uBAAuB,CAAA;AAW9B,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAoIlE,eAAO,MAAM,KAAK;iBAEX,OAAO,eACG,gBAAgB,OACxB,cAAc;oBAyChB,OAAO,YACA,mBAAmB,OACxB,cAAc;gBAgBhB,OAAO,6EAQP,eAAe,OACb,cAAc;;;;qBA4EhB,OAAO,gCACoB,oBAAoB,OAC7C,cAAc;;;;;;;;;;;;;kBAkChB,OAAO,kBACM,iBAAiB,OAC5B,cAAc;wBAwBhB,OAAO,gCACoB,uBAAuB,OAChD,cAAc;;;;;;;;;;;;;kBA8EhB,OAAO,kCACsB,iBAAiB,OAC5C,cAAc;;;;;;;;;;;;;;;;;kBAkBhB,OAAO,4BACgB,iBAAiB,OACtC,cAAc;;;iBAqBhB,OAAO,yDAC6C,gBAAgB,OAClE,cAAc;;;;iBAqBhB,OAAO,UACF,gBAAgB,OACnB,cAAc;;;sBAyBhB,OAAO,YACA,qBAAqB,OAC1B,cAAc;mBAahB,OAAO,eACG,kBAAkB,OAC1B,cAAc;;;;;;;;;;;;;;;;;;;;;;;wBAqGhB,OAAO,WACD,uBAAuB,OAC3B,cAAc;;;;;;;;;;;;;;;yBAwBM,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;;;;;;;;;4BAqBtC,OAAO,MAAM,OAAO,OAAO,cAAc;wBA0BlE,OAAO,WACD;QACP,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,OACI,cAAc;;;;;;;;;;;;;;;;sBAoDG,OAAO,MAAM,OAAO,QAAQ,cAAc;;;8BAQ7D,OAAO,MACN,OAAO,OACN,cAAc;qBAWE,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;;;;wBAqCtC,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;4BA2E9D,OAAO,iBACK,2BAA2B,OACrC,cAAc,KAClB,OAAO,CAAC,aAAa,EAAE,CAAC;sBA4DtB,OAAO,sBACU,qBAAqB,OACpC,cAAc;;;;;;;oBAgBmkN,CAAC;;;;;;;;;;;;;;;;;;;;CAD1lN,CAAA"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/resolvers/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAElB,aAAa,EAEd,MAAM,+BAA+B,CAAA;AAUtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,uBAAuB,CAAA;AAW9B,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAoIlE,eAAO,MAAM,KAAK;iBAEX,OAAO,eACG,gBAAgB,OACxB,cAAc;oBAyChB,OAAO,YACA,mBAAmB,OACxB,cAAc;gBAgBhB,OAAO,6EAQP,eAAe,OACb,cAAc;;;;qBA4EhB,OAAO,gCACoB,oBAAoB,OAC7C,cAAc;;;;;;;;;;;;;kBAkChB,OAAO,kBACM,iBAAiB,OAC5B,cAAc;wBAwBhB,OAAO,gCACoB,uBAAuB,OAChD,cAAc;;;;;;;;;;;;;kBA8EhB,OAAO,kCACsB,iBAAiB,OAC5C,cAAc;;;;;;;;;;;;;;;;;kBAkBhB,OAAO,4BACgB,iBAAiB,OACtC,cAAc;;;iBAqBhB,OAAO,yDAC6C,gBAAgB,OAClE,cAAc;;;;iBAqBhB,OAAO,UACF,gBAAgB,OACnB,cAAc;;;sBAyBhB,OAAO,YACA,qBAAqB,OAC1B,cAAc;mBAahB,OAAO,eACG,kBAAkB,OAC1B,cAAc;;;;;;;;;;;;;;;;;;;;;;;wBAqGhB,OAAO,WACD,uBAAuB,OAC3B,cAAc;;;;;;;;;;;;;;;yBAwBM,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;;;;;;;;;4BAqBtC,OAAO,MAAM,OAAO,OAAO,cAAc;wBA0BlE,OAAO,WACD;QACP,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,OACI,cAAc;;;;;;;;;;;;;;;;sBAoDG,OAAO,MAAM,OAAO,QAAQ,cAAc;;;8BAQ7D,OAAO,MACN,OAAO,OACN,cAAc;qBAWE,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;;;;wBAqCtC,OAAO,MAAM,OAAO,OAAO,cAAc;;;;;4BA2E9D,OAAO,iBACK,2BAA2B,OACrC,cAAc,KAClB,OAAO,CAAC,aAAa,EAAE,CAAC;sBA4DtB,OAAO,sBACU,qBAAqB,OACpC,cAAc;;;;;;;oBAgByjN,CAAC;;;;;;;;;;;;;;;;;;;;CADhlN,CAAA"}
@@ -2,7 +2,7 @@ export interface IntelligentSearchFacet {
2
2
  key: string;
3
3
  value: string;
4
4
  }
5
- export type Sort = 'price:desc' | 'price:asc' | 'orders:desc' | 'name:desc' | 'name:asc' | 'release:desc' | 'discount:desc' | '';
5
+ export type Sort = 'price:desc' | 'price:asc' | 'orders:desc' | 'name:desc' | 'name:asc' | 'release:desc' | 'discount:desc' | '' | `${string}:${'asc' | 'desc'}`;
6
6
  export type ProductIdentifierField = 'id' | 'slug' | 'ean' | 'reference' | 'sku';
7
7
  export type IntelligentSearchEndpoint = 'product-search' | 'facets' | 'catalog-count' | 'products' | 'search-suggestions' | 'top-searches';
8
8
  export interface IntelligentSearchDefaults {
@@ -1 +1 @@
1
- {"version":3,"file":"intelligentSearchRequest.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/utils/intelligentSearchRequest.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AA6BD,MAAM,MAAM,IAAI,GACZ,YAAY,GACZ,WAAW,GACX,aAAa,GACb,WAAW,GACX,UAAU,GACV,cAAc,GACd,eAAe,GACf,EAAE,CAAA;AAEN,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,KAAK,CAAA;AAEhF,MAAM,MAAM,yBAAyB,GACjC,gBAAgB,GAChB,QAAQ,GACR,eAAe,GACf,UAAU,GACV,oBAAoB,GACpB,cAAc,CAAA;AAElB,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,kBAAkB,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAA;IAClD,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,cAAc,CAAC,EAAE,sBAAsB,EAAE,CAAA;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,sBAAsB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,yBAAyB,CAAA;IACnC,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,yBAAyB,CAAA;IACpC,IAAI,CAAC,EAAE,4BAA4B,CAAA;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,IAAI,MAAM,CAAA;CACnB;AAwCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAgaD;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,6BAA6B,GACnC,wBAAwB,CAyD1B"}
1
+ {"version":3,"file":"intelligentSearchRequest.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/utils/intelligentSearchRequest.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AA6BD,MAAM,MAAM,IAAI,GACZ,YAAY,GACZ,WAAW,GACX,aAAa,GACb,WAAW,GACX,UAAU,GACV,cAAc,GACd,eAAe,GACf,EAAE,GAIF,GAAG,MAAM,IAAI,KAAK,GAAG,MAAM,EAAE,CAAA;AAEjC,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,KAAK,CAAA;AAEhF,MAAM,MAAM,yBAAyB,GACjC,gBAAgB,GAChB,QAAQ,GACR,eAAe,GACf,UAAU,GACV,oBAAoB,GACpB,cAAc,CAAA;AAElB,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,kBAAkB,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAA;IAClD,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,cAAc,CAAC,EAAE,sBAAsB,EAAE,CAAA;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,sBAAsB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,yBAAyB,CAAA;IACnC,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,yBAAyB,CAAA;IACpC,IAAI,CAAC,EAAE,4BAA4B,CAAA;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,IAAI,MAAM,CAAA;CACnB;AAwCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAgaD;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,6BAA6B,GACnC,wBAAwB,CAyD1B"}
@@ -1,3 +1,4 @@
1
+ import { Sort } from './intelligentSearchRequest';
1
2
  export declare const SORT_MAP: {
2
3
  readonly price_desc: "price:desc";
3
4
  readonly price_asc: "price:asc";
@@ -8,4 +9,17 @@ export declare const SORT_MAP: {
8
9
  readonly discount_desc: "discount:desc";
9
10
  readonly score_desc: "";
10
11
  };
12
+ /**
13
+ * Resolves a `StoreSort` value to the Intelligent Search `sort=` query
14
+ * string. `customSortMap` (from `Options.customSortMap`) is checked first, so
15
+ * a project extending the `StoreSort` enum (`extend enum StoreSort { ... }`)
16
+ * can register the corresponding Intelligent Search sort string without
17
+ * forking this resolver.
18
+ *
19
+ * Throws instead of silently falling back to the default sort: unlike the
20
+ * built-in enum values, a value coming from a project's schema extension
21
+ * isn't guaranteed to have an entry here, and a silent fallback would look
22
+ * like the custom sort worked when it was actually ignored.
23
+ */
24
+ export declare function resolveSort(sort: string, customSortMap: Record<string, string>): Sort;
11
25
  //# sourceMappingURL=sort.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/utils/sort.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;;;;CASX,CAAA"}
1
+ {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../../../../src/platforms/vtex/utils/sort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAEtD,eAAO,MAAM,QAAQ;;;;;;;;;CASX,CAAA;AAEV;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,IAAI,CAqBN"}
@@ -22,6 +22,13 @@ export interface Options {
22
22
  showSponsored: boolean;
23
23
  incrementAddress: boolean;
24
24
  flags?: FeatureFlags;
25
+ /**
26
+ * Maps additional `StoreSort` enum values (added to the schema via a
27
+ * project-level `extend enum StoreSort { ... }`) to the Intelligent Search
28
+ * `sort=` query string, e.g. `{ rating_desc: 'Rating:desc' }`. Merged ahead
29
+ * of the built-in sort map, so a key here can also override a default sort.
30
+ */
31
+ customSortMap?: Record<string, string>;
25
32
  version?: string;
26
33
  discoveryConfig?: Record<string, unknown>;
27
34
  /** Emit OpenTelemetry spans from resolvers. Defaults to disabled. */
@@ -1 +1 @@
1
- {"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../../src/typings/globals.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE/D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAElE,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,oBAAoB,GAAG,kBAAkB,CAAA;IAEtD,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAA;IAClD,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,4BAA4B,CAAC,EAAE,OAAO,CAAA;CACvC;AAED,MAAM,MAAM,QAAQ,CAClB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,OAAO,GAAG,GAAG,EACb,KAAK,GAAG,GAAG,EACX,OAAO,GAAG,GAAG,IACX,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAA"}
1
+ {"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../../src/typings/globals.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE/D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAElE,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,oBAAoB,GAAG,kBAAkB,CAAA;IAEtD,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAA;IAClD,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,4BAA4B,CAAC,EAAE,OAAO,CAAA;CACvC;AAED,MAAM,MAAM,QAAQ,CAClB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,OAAO,GAAG,GAAG,EACb,KAAK,GAAG,GAAG,EACX,OAAO,GAAG,GAAG,IACX,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/api",
3
- "version": "4.8.1-dev.2",
3
+ "version": "4.9.0-dev.0",
4
4
  "license": "MIT",
5
5
  "main": "dist/cjs/index.js",
6
6
  "typings": "dist/src/index.d.ts",
@@ -58,11 +58,11 @@
58
58
  "vite": "7.1.5",
59
59
  "vite-plugin-dts": "4.5.4",
60
60
  "vitest": "4.0.18",
61
- "@faststore/diagnostics": "^4.8.1-dev.2"
61
+ "@faststore/diagnostics": "^4.9.0-dev.0"
62
62
  },
63
63
  "peerDependencies": {
64
64
  "graphql": "16.11.0",
65
- "@faststore/diagnostics": "4.8.1-dev.2"
65
+ "@faststore/diagnostics": "4.9.0-dev.0"
66
66
  },
67
67
  "publishConfig": {
68
68
  "access": "public"
@@ -30,6 +30,8 @@ export interface GraphqlContext {
30
30
  channel: Required<Channel>
31
31
  locale: string
32
32
  flags: FeatureFlags
33
+ /** Project-supplied extension of the sort map. See `Options.customSortMap`. */
34
+ customSortMap: Record<string, string>
33
35
  searchArgs?: Omit<SearchArgs, 'type'>
34
36
  cookies: Map<string, Record<string, string>>
35
37
  /**
@@ -56,6 +58,7 @@ export const GraphqlVtexContextFactory = async (options: Options) => {
56
58
  channel: ChannelMarshal.parse(options.channel),
57
59
  flags: options.flags ?? {},
58
60
  locale: options.locale,
61
+ customSortMap: options.customSortMap ?? {},
59
62
  cookies: new Map<string, Record<string, string>>(),
60
63
  }
61
64
  ctx.account = options.account
@@ -58,7 +58,7 @@ import {
58
58
  import { getCatalogLocale, isLocalizationEnabled } from '../utils/localization'
59
59
  import { isValidSkuId, pickBestSku } from '../utils/sku'
60
60
  import { slugify } from '../utils/slugify'
61
- import { SORT_MAP } from '../utils/sort'
61
+ import { resolveSort } from '../utils/sort'
62
62
  import { FACET_CROSS_SELLING_MAP } from './../utils/facets'
63
63
  import { StoreCollection } from './collection'
64
64
  import { getOrderEntryOperation } from './getOrderEntryOperation'
@@ -270,7 +270,7 @@ export const Query = {
270
270
  page: Math.ceil(after / first) || 0,
271
271
  count: first,
272
272
  query: term ?? undefined,
273
- sort: SORT_MAP[sort ?? 'score_desc'] ?? SORT_MAP.score_desc,
273
+ sort: resolveSort(sort ?? 'score_desc', ctx.storage.customSortMap),
274
274
  selectedFacets: selectedFacets?.flatMap(transformSelectedFacet) ?? [],
275
275
  sponsoredCount: sponsoredCount ?? undefined,
276
276
  }
@@ -41,6 +41,10 @@ export type Sort =
41
41
  | 'release:desc'
42
42
  | 'discount:desc'
43
43
  | ''
44
+ // Also accepts an Intelligent Search sort string resolved from a
45
+ // project-registered `customSortMap` entry (see `resolveSort`), e.g.
46
+ // 'Rating:desc' for sorting by a product specification.
47
+ | `${string}:${'asc' | 'desc'}`
44
48
 
45
49
  export type ProductIdentifierField = 'id' | 'slug' | 'ean' | 'reference' | 'sku'
46
50
 
@@ -1,3 +1,6 @@
1
+ import { BadRequestError } from '../../errors'
2
+ import type { Sort } from './intelligentSearchRequest'
3
+
1
4
  export const SORT_MAP = {
2
5
  price_desc: 'price:desc',
3
6
  price_asc: 'price:asc',
@@ -8,3 +11,41 @@ export const SORT_MAP = {
8
11
  discount_desc: 'discount:desc',
9
12
  score_desc: '',
10
13
  } as const
14
+
15
+ /**
16
+ * Resolves a `StoreSort` value to the Intelligent Search `sort=` query
17
+ * string. `customSortMap` (from `Options.customSortMap`) is checked first, so
18
+ * a project extending the `StoreSort` enum (`extend enum StoreSort { ... }`)
19
+ * can register the corresponding Intelligent Search sort string without
20
+ * forking this resolver.
21
+ *
22
+ * Throws instead of silently falling back to the default sort: unlike the
23
+ * built-in enum values, a value coming from a project's schema extension
24
+ * isn't guaranteed to have an entry here, and a silent fallback would look
25
+ * like the custom sort worked when it was actually ignored.
26
+ */
27
+ export function resolveSort(
28
+ sort: string,
29
+ customSortMap: Record<string, string>
30
+ ): Sort {
31
+ // Own-property checks, not plain bracket access: `customSortMap[sort]` for
32
+ // a `sort` like 'constructor' or 'toString' resolves the inherited
33
+ // Object.prototype member instead of `undefined`, silently defeating the
34
+ // BadRequestError guard below.
35
+ let resolved: string | undefined
36
+
37
+ if (Object.hasOwn(customSortMap, sort)) {
38
+ resolved = customSortMap[sort]
39
+ } else if (Object.hasOwn(SORT_MAP, sort)) {
40
+ resolved = (SORT_MAP as Record<string, string>)[sort]
41
+ }
42
+
43
+ if (resolved === undefined) {
44
+ throw new BadRequestError(`Unknown sort value: ${sort}`)
45
+ }
46
+
47
+ // `customSortMap` is caller-supplied config (arbitrary strings at the type
48
+ // level), so it can't be statically narrowed to `Sort` — validity of the
49
+ // Intelligent Search sort string itself is enforced by Intelligent Search.
50
+ return resolved as Sort
51
+ }
@@ -27,6 +27,13 @@ export interface Options {
27
27
  showSponsored: boolean
28
28
  incrementAddress: boolean
29
29
  flags?: FeatureFlags
30
+ /**
31
+ * Maps additional `StoreSort` enum values (added to the schema via a
32
+ * project-level `extend enum StoreSort { ... }`) to the Intelligent Search
33
+ * `sort=` query string, e.g. `{ rating_desc: 'Rating:desc' }`. Merged ahead
34
+ * of the built-in sort map, so a key here can also override a default sort.
35
+ */
36
+ customSortMap?: Record<string, string>
30
37
  version?: string
31
38
  discoveryConfig?: Record<string, unknown>
32
39
  /** Emit OpenTelemetry spans from resolvers. Defaults to disabled. */