@searchspring/snap-client 0.59.0 → 0.60.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 (39) hide show
  1. package/dist/cjs/Client/Client.d.ts +2 -2
  2. package/dist/cjs/Client/Client.d.ts.map +1 -1
  3. package/dist/cjs/Client/Client.js +1 -1
  4. package/dist/cjs/Client/apis/Abstract.d.ts +1 -1
  5. package/dist/cjs/Client/apis/Abstract.d.ts.map +1 -1
  6. package/dist/cjs/Client/apis/Abstract.js +2 -2
  7. package/dist/cjs/Client/apis/Legacy.js +3 -3
  8. package/dist/cjs/Client/apis/Recommend.d.ts +7 -4
  9. package/dist/cjs/Client/apis/Recommend.d.ts.map +1 -1
  10. package/dist/cjs/Client/apis/Recommend.js +76 -107
  11. package/dist/cjs/Client/apis/Snap.js +3 -3
  12. package/dist/cjs/Client/apis/Suggest.js +4 -4
  13. package/dist/cjs/Client/transforms/recommendationFiltersPost.d.ts +2 -2
  14. package/dist/cjs/Client/transforms/recommendationFiltersPost.d.ts.map +1 -1
  15. package/dist/cjs/Client/transforms/recommendationFiltersPost.js +2 -0
  16. package/dist/cjs/index.d.ts +1 -1
  17. package/dist/cjs/index.d.ts.map +1 -1
  18. package/dist/cjs/types.d.ts +41 -28
  19. package/dist/cjs/types.d.ts.map +1 -1
  20. package/dist/esm/Client/Client.d.ts +2 -2
  21. package/dist/esm/Client/Client.d.ts.map +1 -1
  22. package/dist/esm/Client/Client.js +1 -1
  23. package/dist/esm/Client/apis/Abstract.d.ts +1 -1
  24. package/dist/esm/Client/apis/Abstract.d.ts.map +1 -1
  25. package/dist/esm/Client/apis/Abstract.js +2 -2
  26. package/dist/esm/Client/apis/Legacy.js +3 -3
  27. package/dist/esm/Client/apis/Recommend.d.ts +7 -4
  28. package/dist/esm/Client/apis/Recommend.d.ts.map +1 -1
  29. package/dist/esm/Client/apis/Recommend.js +76 -78
  30. package/dist/esm/Client/apis/Snap.js +3 -3
  31. package/dist/esm/Client/apis/Suggest.js +4 -4
  32. package/dist/esm/Client/transforms/recommendationFiltersPost.d.ts +2 -2
  33. package/dist/esm/Client/transforms/recommendationFiltersPost.d.ts.map +1 -1
  34. package/dist/esm/Client/transforms/recommendationFiltersPost.js +2 -0
  35. package/dist/esm/index.d.ts +1 -1
  36. package/dist/esm/index.d.ts.map +1 -1
  37. package/dist/esm/types.d.ts +41 -28
  38. package/dist/esm/types.d.ts.map +1 -1
  39. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import type { ClientGlobals, ClientConfig, TrendingRequestModel, TrendingResponseModel, RecommendCombinedRequestModel, RecommendCombinedResponseModel } from '../types';
1
+ import type { ClientGlobals, ClientConfig, TrendingRequestModel, TrendingResponseModel, RecommendCombinedResponseModel, RecommendRequestModel } from '../types';
2
2
  import type { MetaRequestModel, MetaResponseModel, SearchRequestModel, SearchResponseModel, AutocompleteRequestModel, AutocompleteResponseModel } from '@searchspring/snapi-types';
3
3
  export declare class Client {
4
4
  private mode;
@@ -11,6 +11,6 @@ export declare class Client {
11
11
  search(params?: SearchRequestModel): Promise<[MetaResponseModel, SearchResponseModel]>;
12
12
  finder(params?: SearchRequestModel): Promise<[MetaResponseModel, SearchResponseModel]>;
13
13
  trending(params: Partial<TrendingRequestModel>): Promise<TrendingResponseModel>;
14
- recommend(params: RecommendCombinedRequestModel): Promise<RecommendCombinedResponseModel>;
14
+ recommend(params: RecommendRequestModel): Promise<RecommendCombinedResponseModel>;
15
15
  }
16
16
  //# sourceMappingURL=Client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EAGrB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC;AA4BnC,qBAAa,MAAM;IAClB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAOhB;gBAEU,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,YAAiB;IA6EvD,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO3D,YAAY,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;IAU5G,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAM1F,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAM1F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAM/E,SAAS,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC;CAkC/F"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/Client/Client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EAErB,8BAA8B,EAC9B,qBAAqB,EACrB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC;AA4BnC,qBAAa,MAAM;IAClB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAOhB;gBAEU,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,YAAiB;IA6EvD,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO3D,YAAY,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;IAU5G,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAM1F,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAM1F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAM/E,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,8BAA8B,CAAC;CAkCvF"}
@@ -219,7 +219,7 @@ var Client = /** @class */ (function () {
219
219
  profileParams.branch = otherParams.branch;
220
220
  delete otherParams.branch;
221
221
  }
222
- recommendParams = __assign(__assign({ tags: [tag] }, otherParams), { siteId: params.siteId || this.globals.siteId });
222
+ recommendParams = __assign(__assign({ tag: tag }, otherParams), { siteId: params.siteId || this.globals.siteId });
223
223
  return [4 /*yield*/, Promise.all([
224
224
  this.meta(params.siteId ? { siteId: params.siteId } : undefined),
225
225
  this.requesters.recommend.getProfile(profileParams),
@@ -21,7 +21,7 @@ export declare class API {
21
21
  cache: NetworkCache;
22
22
  constructor(configuration: ApiConfiguration);
23
23
  protected get mode(): AppMode;
24
- protected request(context: RequestOpts, cacheKey?: any): Promise<Response>;
24
+ protected request(context: RequestOpts, cacheKey?: string): Promise<Response>;
25
25
  private createFetchParams;
26
26
  private fetchApi;
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIvE,MAAM,MAAM,IAAI,GAAG,GAAG,CAAC;AACvB,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMI,aAAa,EAAE,gBAAgB;IALlD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAER,aAAa,EAAE,gBAAgB;IAIlD,SAAS,KAAK,IAAI,IAAI,OAAO,CAE5B;cAEe,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmDhF,OAAO,CAAC,iBAAiB;YAoCX,QAAQ;CAKtB;AAED,MAAM,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,qBAAa,gBAAgB;IAChB,OAAO,CAAC,MAAM;gBAAN,MAAM,GAAE,0BAA+B;IAa3D,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,oBAAoB,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAExD;IAED,IAAI,OAAO,IAAI,WAAW,CAEzB;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,WAAW,EAElC;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,cAAc,EAErC;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
1
+ {"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIvE,MAAM,MAAM,IAAI,GAAG,GAAG,CAAC;AACvB,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMI,aAAa,EAAE,gBAAgB;IALlD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAER,aAAa,EAAE,gBAAgB;IAIlD,SAAS,KAAK,IAAI,IAAI,OAAO,CAE5B;cAEe,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmDnF,OAAO,CAAC,iBAAiB;YAoCX,QAAQ;CAKtB;AAED,MAAM,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,qBAAa,gBAAgB;IAChB,OAAO,CAAC,MAAM;gBAAN,MAAM,GAAE,0BAA+B;IAa3D,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,oBAAoB,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAExD;IAED,IAAI,OAAO,IAAI,WAAW,CAEzB;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,WAAW,EAElC;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,cAAc,EAErC;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
@@ -80,7 +80,7 @@ var API = /** @class */ (function () {
80
80
  case 0:
81
81
  _b = this.createFetchParams(context), url = _b.url, init = _b.init;
82
82
  if (cacheKey) {
83
- cachedResponse = this.cache.get(cacheKey);
83
+ cachedResponse = this.cache.get("".concat(context.path, "/").concat(cacheKey)) || this.cache.get("".concat(context.path, "/*"));
84
84
  if (cachedResponse) {
85
85
  this.retryCount = 0; // reset count and delay incase rate limit occurs again before a page refresh
86
86
  this.retryDelay = 1000;
@@ -101,7 +101,7 @@ var API = /** @class */ (function () {
101
101
  this.retryDelay = 1000;
102
102
  if (cacheKey) {
103
103
  // save in the cache before returning
104
- this.cache.set(cacheKey, responseJSON);
104
+ this.cache.set("".concat(context.path, "/").concat(cacheKey), responseJSON);
105
105
  }
106
106
  return [2 /*return*/, responseJSON];
107
107
  case 4:
@@ -86,7 +86,7 @@ var LegacyAPI = /** @class */ (function (_super) {
86
86
  method: 'GET',
87
87
  headers: headerParameters,
88
88
  query: queryParameters,
89
- }, path + JSON.stringify(cacheParameters))];
89
+ }, JSON.stringify(cacheParameters))];
90
90
  case 1:
91
91
  legacyResponse = _a.sent();
92
92
  return [2 /*return*/, legacyResponse];
@@ -107,7 +107,7 @@ var LegacyAPI = /** @class */ (function (_super) {
107
107
  method: 'POST',
108
108
  headers: headerParameters,
109
109
  body: requestParameters,
110
- }, '/api/meta/meta.json' + JSON.stringify(requestParameters))];
110
+ }, JSON.stringify(requestParameters))];
111
111
  case 1:
112
112
  response = _a.sent();
113
113
  return [2 /*return*/, response];
@@ -127,7 +127,7 @@ var LegacyAPI = /** @class */ (function (_super) {
127
127
  method: 'GET',
128
128
  headers: headerParameters,
129
129
  query: queryParameters,
130
- }, '/api/meta/meta.json' + JSON.stringify(queryParameters))];
130
+ }, JSON.stringify(queryParameters))];
131
131
  case 1:
132
132
  response = _a.sent();
133
133
  return [2 /*return*/, response];
@@ -1,12 +1,15 @@
1
1
  import { API, ApiConfiguration } from './Abstract';
2
- import { PostRecommendRequestModel, GetRecommendRequestModel } from '../../types';
3
- import { ProfileRequestModel, ProfileResponseModel, RecommendRequestModel, RecommendResponseModel } from '../../types';
2
+ import { ProfileRequestModel, ProfileResponseModel, RecommendResponseModel, RecommendRequestModel, RecommendPostRequestModel } from '../../types';
4
3
  export declare class RecommendAPI extends API {
5
4
  private batches;
6
5
  constructor(config: ApiConfiguration);
7
6
  getProfile(queryParameters: ProfileRequestModel): Promise<ProfileResponseModel>;
8
7
  batchRecommendations(parameters: RecommendRequestModel): Promise<RecommendResponseModel>;
9
- getRecommendations(queryParameters: GetRecommendRequestModel): Promise<RecommendResponseModel>;
10
- postRecommendations(requestParameters: PostRecommendRequestModel): Promise<RecommendResponseModel>;
8
+ postRecommendations(requestParameters: RecommendPostRequestModel): Promise<RecommendResponseModel>;
11
9
  }
10
+ type DefinedProps = {
11
+ [key: string]: any;
12
+ };
13
+ export declare function defined(properties: Record<string, any>): DefinedProps;
14
+ export {};
12
15
  //# sourceMappingURL=Recommend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAiD,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAGjI,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAqBvH,qBAAa,YAAa,SAAQ,GAAG;IACpC,OAAO,CAAC,OAAO,CAMb;gBAEU,MAAM,EAAE,gBAAgB;IAK9B,UAAU,CAAC,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB/E,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA+GxF,kBAAkB,CAAC,eAAe,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmB9F,mBAAmB,CAAC,iBAAiB,EAAE,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAmBxG"}
1
+ {"version":3,"file":"Recommend.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Recommend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAqBlJ,qBAAa,YAAa,SAAQ,GAAG;IACpC,OAAO,CAAC,OAAO,CAMb;gBAEU,MAAM,EAAE,gBAAgB;IAK9B,UAAU,CAAC,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB/E,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA4GxF,mBAAmB,CAAC,iBAAiB,EAAE,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAmBxG;AAyBD,KAAK,YAAY,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC;AAEF,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,CAUrE"}
@@ -61,19 +61,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
61
61
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
62
  }
63
63
  };
64
- var __rest = (this && this.__rest) || function (s, e) {
65
- var t = {};
66
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
67
- t[p] = s[p];
68
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
69
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
70
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
71
- t[p[i]] = s[p[i]];
72
- }
73
- return t;
74
- };
75
64
  Object.defineProperty(exports, "__esModule", { value: true });
76
- exports.RecommendAPI = void 0;
65
+ exports.defined = exports.RecommendAPI = void 0;
77
66
  var Abstract_1 = require("./Abstract");
78
67
  var snap_toolbox_1 = require("@searchspring/snap-toolbox");
79
68
  var transforms_1 = require("../transforms");
@@ -107,7 +96,7 @@ var RecommendAPI = /** @class */ (function (_super) {
107
96
  method: 'GET',
108
97
  headers: headerParameters,
109
98
  query: queryParameters,
110
- }, '/api/personalized-recommendations/profile.json' + JSON.stringify(queryParameters))];
99
+ }, JSON.stringify(queryParameters))];
111
100
  case 1:
112
101
  response = _a.sent();
113
102
  return [2 /*return*/, response];
@@ -116,12 +105,14 @@ var RecommendAPI = /** @class */ (function (_super) {
116
105
  });
117
106
  };
118
107
  RecommendAPI.prototype.batchRecommendations = function (parameters) {
108
+ var _a;
119
109
  return __awaiter(this, void 0, void 0, function () {
120
- var key, batch, deferred, timeoutClear, timeoutSet;
110
+ var batchId, key, batch, deferred, timeoutClear, timeoutSet;
121
111
  var _this = this;
122
- return __generator(this, function (_a) {
123
- key = parameters.batched ? parameters.siteId : "".concat(Math.random());
124
- batch = (this.batches[key] = this.batches[key] || { timeout: null, request: { tags: [], limits: [] }, entries: [] });
112
+ return __generator(this, function (_b) {
113
+ batchId = parameters.batchId || 1;
114
+ key = parameters.batched ? "".concat(((_a = parameters.profile) === null || _a === void 0 ? void 0 : _a.siteId) || parameters.siteId, ":").concat(batchId) : "".concat(Math.random(), ":").concat(batchId);
115
+ batch = (this.batches[key] = this.batches[key] || { timeout: null, request: { profiles: [] }, entries: [] });
125
116
  deferred = new Deferred();
126
117
  // add each request to the list
127
118
  batch.entries.push({ request: parameters, deferred: deferred });
@@ -129,97 +120,85 @@ var RecommendAPI = /** @class */ (function (_super) {
129
120
  timeoutSet = typeof window !== 'undefined' ? window.setTimeout : setTimeout;
130
121
  timeoutClear && timeoutClear(batch.timeout);
131
122
  batch.timeout = timeoutSet(function () { return __awaiter(_this, void 0, void 0, function () {
132
- var response_1, filters_1, err_1;
123
+ var response_1, err_1;
133
124
  var _a, _b;
134
125
  return __generator(this, function (_c) {
135
126
  switch (_c.label) {
136
127
  case 0:
137
128
  // delete the batch so a new one can take its place
138
129
  delete this.batches[key];
139
- // reorder the requests by order value in context.
130
+ // resort batch entries based on order
140
131
  batch.entries.sort(sortBatchEntries);
141
- // now that the requests are in proper order, map through them
142
- // and build out the batches
132
+ // now that the requests are in proper order, map through them and build out the batches
143
133
  batch.entries.map(function (entry) {
144
- var _a = entry.request, tags = _a.tags, categories = _a.categories, brands = _a.brands, otherParams = __rest(_a, ["tags", "categories", "brands"]);
145
- var limits = entry.request.limits;
146
- if (!limits) {
147
- limits = 20;
148
- }
149
- var tag = (tags || [])[0];
150
- delete otherParams.batched; // remove from request parameters
151
- delete otherParams.order; // remove from request parameters
152
- delete otherParams.limits;
153
- batch.request.tags.push(tag);
154
- if (categories) {
155
- if (!batch.request.categories) {
156
- batch.request.categories = Array.isArray(categories) ? categories : [categories];
134
+ var _a, _b, _c;
135
+ // use products request only and combine when needed
136
+ if (entry.request.product) {
137
+ if (Array.isArray(entry.request.products) && entry.request.products.indexOf(entry.request.product) == -1) {
138
+ entry.request.products = entry.request.products.concat(entry.request.product);
157
139
  }
158
140
  else {
159
- batch.request.categories = batch.request.categories.concat(categories);
141
+ entry.request.products = [entry.request.product];
160
142
  }
161
143
  }
162
- if (brands) {
163
- if (!batch.request.brands) {
164
- batch.request.brands = Array.isArray(brands) ? brands : [brands];
165
- }
166
- else {
167
- batch.request.brands = batch.request.brands.concat(brands);
168
- }
144
+ // build profile specific parameters
145
+ if (entry.request.profile) {
146
+ var _d = entry.request, tag = _d.tag, _e = _d.profile, categories = _e.categories, brands = _e.brands, blockedItems_1 = _e.blockedItems, limit = _e.limit, query = _e.query, filters_1 = _e.filters, dedupe = _e.dedupe;
147
+ var profile = __assign({ tag: tag }, defined({
148
+ categories: categories,
149
+ brands: brands,
150
+ blockedItems: blockedItems_1,
151
+ limit: limit,
152
+ searchTerm: query,
153
+ filters: (0, transforms_1.transformRecommendationFiltersPost)(filters_1),
154
+ dedupe: dedupe,
155
+ }));
156
+ (_a = batch.request.profiles) === null || _a === void 0 ? void 0 : _a.push(profile);
169
157
  }
170
- batch.request.limits = batch.request.limits.concat(limits);
171
- batch.request = __assign(__assign({}, batch.request), otherParams);
172
- // combine product data if both 'product' and 'products' are used
173
- if (batch.request.product && Array.isArray(batch.request.products)) {
174
- batch.request.products = batch.request.products.concat(batch.request.product);
175
- delete batch.request.product;
158
+ else {
159
+ var _f = entry.request, tag = _f.tag, categories = _f.categories, brands = _f.brands, limit = _f.limit, query = _f.query, dedupe = _f.dedupe;
160
+ var profile = __assign({ tag: tag }, defined({
161
+ categories: categories,
162
+ brands: brands,
163
+ limit: limit,
164
+ searchTerm: query,
165
+ dedupe: dedupe,
166
+ }));
167
+ (_b = batch.request.profiles) === null || _b === void 0 ? void 0 : _b.push(profile);
176
168
  }
169
+ // parameters used globally
170
+ var _g = entry.request, products = _g.products, blockedItems = _g.blockedItems, filters = _g.filters, test = _g.test, cart = _g.cart, lastViewed = _g.lastViewed, shopper = _g.shopper;
171
+ batch.request = __assign(__assign({}, batch.request), defined({
172
+ siteId: ((_c = entry.request.profile) === null || _c === void 0 ? void 0 : _c.siteId) || entry.request.siteId,
173
+ products: products,
174
+ blockedItems: blockedItems,
175
+ filters: (0, transforms_1.transformRecommendationFiltersPost)(filters),
176
+ test: test,
177
+ cart: cart,
178
+ lastViewed: lastViewed,
179
+ shopper: shopper,
180
+ }));
177
181
  });
178
182
  _c.label = 1;
179
183
  case 1:
180
- _c.trys.push([1, 6, , 7]);
184
+ _c.trys.push([1, 3, , 4]);
181
185
  if (this.configuration.mode == snap_toolbox_1.AppMode.development) {
182
186
  batch.request.test = true;
183
187
  }
184
- if (!((0, snap_toolbox_1.charsParams)(batch.request) > 1024)) return [3 /*break*/, 3];
185
- if (batch.request['product']) {
186
- batch.request['product'] = batch.request['product'].toString();
187
- }
188
- //transform filters here
189
- if (batch.request.filters) {
190
- batch.request['filters'] = (0, transforms_1.transformRecommendationFiltersPost)(batch.request.filters);
191
- }
192
188
  return [4 /*yield*/, this.postRecommendations(batch.request)];
193
189
  case 2:
194
190
  response_1 = _c.sent();
195
- return [3 /*break*/, 5];
196
- case 3:
197
- if (batch.request.filters) {
198
- filters_1 = (0, transforms_1.transformRecommendationFiltersGet)(batch.request.filters);
199
- if (filters_1) {
200
- Object.keys(filters_1).map(function (filter) {
201
- var _filter = filter;
202
- batch.request[_filter] = filters_1[_filter];
203
- });
204
- }
205
- }
206
- delete batch.request.filters;
207
- return [4 /*yield*/, this.getRecommendations(batch.request)];
208
- case 4:
209
- response_1 = _c.sent();
210
- _c.label = 5;
211
- case 5:
212
191
  (_a = batch.entries) === null || _a === void 0 ? void 0 : _a.forEach(function (entry, index) {
213
192
  entry.deferred.resolve([response_1[index]]);
214
193
  });
215
- return [3 /*break*/, 7];
216
- case 6:
194
+ return [3 /*break*/, 4];
195
+ case 3:
217
196
  err_1 = _c.sent();
218
197
  (_b = batch.entries) === null || _b === void 0 ? void 0 : _b.forEach(function (entry) {
219
198
  entry.deferred.reject(err_1);
220
199
  });
221
- return [3 /*break*/, 7];
222
- case 7: return [2 /*return*/];
200
+ return [3 /*break*/, 4];
201
+ case 4: return [2 /*return*/];
223
202
  }
224
203
  });
225
204
  }); }, BATCH_TIMEOUT);
@@ -227,28 +206,6 @@ var RecommendAPI = /** @class */ (function (_super) {
227
206
  });
228
207
  });
229
208
  };
230
- RecommendAPI.prototype.getRecommendations = function (queryParameters) {
231
- return __awaiter(this, void 0, void 0, function () {
232
- var headerParameters, siteId, path, response;
233
- return __generator(this, function (_a) {
234
- switch (_a.label) {
235
- case 0:
236
- headerParameters = {};
237
- siteId = queryParameters.siteId;
238
- path = "/boost/".concat(siteId, "/recommend");
239
- return [4 /*yield*/, this.request({
240
- path: path,
241
- method: 'GET',
242
- headers: headerParameters,
243
- query: queryParameters,
244
- }, path + JSON.stringify(queryParameters))];
245
- case 1:
246
- response = _a.sent();
247
- return [2 /*return*/, response];
248
- }
249
- });
250
- });
251
- };
252
209
  RecommendAPI.prototype.postRecommendations = function (requestParameters) {
253
210
  return __awaiter(this, void 0, void 0, function () {
254
211
  var headerParameters, siteId, path, response;
@@ -256,7 +213,7 @@ var RecommendAPI = /** @class */ (function (_super) {
256
213
  switch (_a.label) {
257
214
  case 0:
258
215
  headerParameters = {};
259
- headerParameters['Content-Type'] = 'application/json';
216
+ headerParameters['Content-Type'] = 'text/plain';
260
217
  siteId = requestParameters.siteId;
261
218
  path = "/boost/".concat(siteId, "/recommend");
262
219
  return [4 /*yield*/, this.request({
@@ -264,7 +221,7 @@ var RecommendAPI = /** @class */ (function (_super) {
264
221
  method: 'POST',
265
222
  headers: headerParameters,
266
223
  body: requestParameters,
267
- }, path + JSON.stringify(requestParameters))];
224
+ }, JSON.stringify(requestParameters))];
268
225
  case 1:
269
226
  response = _a.sent();
270
227
  return [2 /*return*/, response];
@@ -276,21 +233,33 @@ var RecommendAPI = /** @class */ (function (_super) {
276
233
  }(Abstract_1.API));
277
234
  exports.RecommendAPI = RecommendAPI;
278
235
  function sortBatchEntries(a, b) {
236
+ var one = a.request;
237
+ var two = b.request;
279
238
  // undefined order goes last
280
- if (a.request.order == undefined && b.request.order == undefined) {
239
+ if (one.order == undefined && two.order == undefined) {
281
240
  return 0;
282
241
  }
283
- if (a.request.order == undefined && b.request.order != undefined) {
242
+ if (one.order == undefined && two.order != undefined) {
284
243
  return 1;
285
244
  }
286
- if (b.request.order == undefined && a.request.order != undefined) {
245
+ if (two.order == undefined && one.order != undefined) {
287
246
  return -1;
288
247
  }
289
- if (a.request.order < b.request.order) {
248
+ if (one.order < two.order) {
290
249
  return -1;
291
250
  }
292
- if (a.request.order > b.request.order) {
251
+ if (one.order > two.order) {
293
252
  return 1;
294
253
  }
295
254
  return 0;
296
255
  }
256
+ function defined(properties) {
257
+ var definedProps = {};
258
+ Object.keys(properties).map(function (key) {
259
+ if (properties[key] !== undefined) {
260
+ definedProps[key] = properties[key];
261
+ }
262
+ });
263
+ return definedProps;
264
+ }
265
+ exports.defined = defined;
@@ -71,7 +71,7 @@ var SnapAPI = /** @class */ (function (_super) {
71
71
  method: 'POST',
72
72
  headers: headerParameters,
73
73
  body: requestParameters,
74
- }, '/api/v1/meta' + JSON.stringify(requestParameters))];
74
+ }, JSON.stringify(requestParameters))];
75
75
  case 1:
76
76
  response = _a.sent();
77
77
  return [2 /*return*/, response];
@@ -92,7 +92,7 @@ var SnapAPI = /** @class */ (function (_super) {
92
92
  method: 'POST',
93
93
  headers: headerParameters,
94
94
  body: requestParameters,
95
- }, '/api/v1/search' + JSON.stringify(requestParameters))];
95
+ }, JSON.stringify(requestParameters))];
96
96
  case 1:
97
97
  response = _a.sent();
98
98
  return [2 /*return*/, response];
@@ -113,7 +113,7 @@ var SnapAPI = /** @class */ (function (_super) {
113
113
  method: 'POST',
114
114
  headers: headerParameters,
115
115
  body: requestParameters,
116
- }, '/api/v1/autocomplete' + JSON.stringify(requestParameters))];
116
+ }, JSON.stringify(requestParameters))];
117
117
  case 1:
118
118
  response = _a.sent();
119
119
  return [2 /*return*/, response];
@@ -70,7 +70,7 @@ var SuggestAPI = /** @class */ (function (_super) {
70
70
  method: 'GET',
71
71
  headers: headerParameters,
72
72
  query: queryParameters,
73
- }, '/api/suggest/query' + JSON.stringify(queryParameters))];
73
+ }, JSON.stringify(queryParameters))];
74
74
  case 1:
75
75
  response = _a.sent();
76
76
  return [2 /*return*/, response];
@@ -91,7 +91,7 @@ var SuggestAPI = /** @class */ (function (_super) {
91
91
  method: 'POST',
92
92
  headers: headerParameters,
93
93
  body: requestParameters,
94
- }, '/api/suggest/query' + JSON.stringify(requestParameters))];
94
+ }, JSON.stringify(requestParameters))];
95
95
  case 1:
96
96
  response = _a.sent();
97
97
  return [2 /*return*/, response];
@@ -111,7 +111,7 @@ var SuggestAPI = /** @class */ (function (_super) {
111
111
  method: 'GET',
112
112
  headers: headerParameters,
113
113
  query: queryParameters,
114
- }, '/api/suggest/trending' + JSON.stringify(queryParameters))];
114
+ }, JSON.stringify(queryParameters))];
115
115
  case 1:
116
116
  response = _a.sent();
117
117
  return [2 /*return*/, response];
@@ -132,7 +132,7 @@ var SuggestAPI = /** @class */ (function (_super) {
132
132
  method: 'POST',
133
133
  headers: headerParameters,
134
134
  body: requestParameters,
135
- }, '/api/suggest/trending' + JSON.stringify(requestParameters))];
135
+ }, JSON.stringify(requestParameters))];
136
136
  case 1:
137
137
  response = _a.sent();
138
138
  return [2 /*return*/, response];
@@ -1,3 +1,3 @@
1
- import { RecommendationRequestFilterModel, PostRecommendRequestFiltersModel } from '../../types';
2
- export declare const transformRecommendationFiltersPost: (filters: RecommendationRequestFilterModel[]) => PostRecommendRequestFiltersModel[];
1
+ import { RecommendationRequestFilterModel, RecommendPostRequestFiltersModel } from '../../types';
2
+ export declare const transformRecommendationFiltersPost: (filters?: RecommendationRequestFilterModel[]) => RecommendPostRequestFiltersModel[] | undefined;
3
3
  //# sourceMappingURL=recommendationFiltersPost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recommendationFiltersPost.d.ts","sourceRoot":"","sources":["../../../../src/Client/transforms/recommendationFiltersPost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAEjG,eAAO,MAAM,kCAAkC,YAAa,gCAAgC,EAAE,uCAwD7F,CAAC"}
1
+ {"version":3,"file":"recommendationFiltersPost.d.ts","sourceRoot":"","sources":["../../../../src/Client/transforms/recommendationFiltersPost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAEjG,eAAO,MAAM,kCAAkC,aAAc,gCAAgC,EAAE,mDA0D9F,CAAC"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.transformRecommendationFiltersPost = void 0;
4
4
  var transformRecommendationFiltersPost = function (filters) {
5
+ if (!filters)
6
+ return;
5
7
  var filterArray = [];
6
8
  filters.map(function (filter) {
7
9
  if (filter.type == 'value') {
@@ -1,3 +1,3 @@
1
1
  export * from './Client/Client';
2
- export { ClientGlobals, ClientConfig, TrendingResponseModel, RecommendCombinedRequestModel, RecommendCombinedResponseModel } from './types';
2
+ export { ClientGlobals, ClientConfig, TrendingResponseModel, RecommendRequestModel, RecommendationRequestFilterModel, RecommendCombinedResponseModel, } from './types';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EACN,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,gCAAgC,EAChC,8BAA8B,GAC9B,MAAM,SAAS,CAAC"}
@@ -87,30 +87,58 @@ export type TrendingResponseModel = {
87
87
  }[];
88
88
  };
89
89
  };
90
- export type RecommendRequestModel = {
91
- tags: string[];
92
- siteId: string;
90
+ export type RecommendRequestModel = RecommendRequestGlobalsModel & RecommendRequestOptionsModel & {
91
+ tag: string;
92
+ profile?: RecommendRequestOptionsModel;
93
+ };
94
+ export type RecommendRequestGlobalsModel = {
93
95
  product?: string;
94
96
  products?: string[];
97
+ cart?: string[];
98
+ lastViewed?: string[];
95
99
  shopper?: string;
100
+ filters?: RecommendationRequestFilterModel[];
101
+ blockedItems?: string[];
102
+ batchId?: number;
103
+ test?: boolean;
104
+ };
105
+ export type RecommendRequestOptionsModel = {
106
+ siteId?: string;
96
107
  categories?: string[];
97
108
  brands?: string[];
109
+ branch?: string;
110
+ filters?: RecommendationRequestFilterModel[];
111
+ blockedItems?: string[];
112
+ batched?: boolean;
113
+ limit?: number;
114
+ order?: number;
115
+ query?: string;
116
+ dedupe?: boolean;
117
+ };
118
+ export type RecommendPostRequestModel = {
119
+ siteId: string;
120
+ profiles: RecommendPostRequestProfileModel[];
121
+ product?: string;
122
+ products?: string[];
123
+ shopper?: string;
98
124
  cart?: string[];
99
125
  lastViewed?: string[];
100
126
  test?: boolean;
101
- batched?: boolean;
102
- limits?: number | number[];
103
- order?: number;
104
- filters?: RecommendationRequestFilterModel[];
127
+ withRecInfo?: boolean;
105
128
  blockedItems?: string[];
129
+ filters?: RecommendPostRequestFiltersModel[];
106
130
  };
107
- export type GetRecommendRequestModel = Omit<RecommendRequestModel, 'filters'> & {
108
- [filter: `filter.${string}`]: (string | number)[];
109
- };
110
- export type PostRecommendRequestModel = Omit<RecommendRequestModel, 'filters'> & {
111
- filters?: PostRecommendRequestFiltersModel[];
131
+ export type RecommendPostRequestProfileModel = {
132
+ tag: string;
133
+ categories?: string[];
134
+ brands?: string[];
135
+ blockedItems?: string[];
136
+ limit?: number;
137
+ dedupe?: boolean;
138
+ searchTerm?: string;
139
+ filters?: RecommendPostRequestFiltersModel[];
112
140
  };
113
- export type PostRecommendRequestFiltersModel = {
141
+ export type RecommendPostRequestFiltersModel = {
114
142
  field: string;
115
143
  type: '=' | '==' | '===' | '!=' | '!==' | '>' | '<' | '>=' | '<=';
116
144
  values: (string | number)[];
@@ -148,21 +176,6 @@ export type ProfileResponseModel = {
148
176
  };
149
177
  };
150
178
  };
151
- export type RecommendCombinedRequestModel = {
152
- tag: string;
153
- siteId: string;
154
- product?: string;
155
- products?: string[];
156
- shopper?: string;
157
- categories?: string[];
158
- brands?: string[];
159
- cart?: string[];
160
- lastViewed?: string[];
161
- test?: boolean;
162
- branch?: string;
163
- filters?: RecommendationRequestFilterModel[];
164
- blockedItems?: string[];
165
- };
166
179
  export type RecommendationRequestFilterModel = RecommendationRequestRangeFilterModel | RecommendationRequestValueFilterModel;
167
180
  type RecommendationRequestRangeFilterModel = {
168
181
  type: 'range';