@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.
- package/dist/cjs/Client/Client.d.ts +2 -2
- package/dist/cjs/Client/Client.d.ts.map +1 -1
- package/dist/cjs/Client/Client.js +1 -1
- package/dist/cjs/Client/apis/Abstract.d.ts +1 -1
- package/dist/cjs/Client/apis/Abstract.d.ts.map +1 -1
- package/dist/cjs/Client/apis/Abstract.js +2 -2
- package/dist/cjs/Client/apis/Legacy.js +3 -3
- package/dist/cjs/Client/apis/Recommend.d.ts +7 -4
- package/dist/cjs/Client/apis/Recommend.d.ts.map +1 -1
- package/dist/cjs/Client/apis/Recommend.js +76 -107
- package/dist/cjs/Client/apis/Snap.js +3 -3
- package/dist/cjs/Client/apis/Suggest.js +4 -4
- package/dist/cjs/Client/transforms/recommendationFiltersPost.d.ts +2 -2
- package/dist/cjs/Client/transforms/recommendationFiltersPost.d.ts.map +1 -1
- package/dist/cjs/Client/transforms/recommendationFiltersPost.js +2 -0
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/types.d.ts +41 -28
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/Client/Client.d.ts +2 -2
- package/dist/esm/Client/Client.d.ts.map +1 -1
- package/dist/esm/Client/Client.js +1 -1
- package/dist/esm/Client/apis/Abstract.d.ts +1 -1
- package/dist/esm/Client/apis/Abstract.d.ts.map +1 -1
- package/dist/esm/Client/apis/Abstract.js +2 -2
- package/dist/esm/Client/apis/Legacy.js +3 -3
- package/dist/esm/Client/apis/Recommend.d.ts +7 -4
- package/dist/esm/Client/apis/Recommend.d.ts.map +1 -1
- package/dist/esm/Client/apis/Recommend.js +76 -78
- package/dist/esm/Client/apis/Snap.js +3 -3
- package/dist/esm/Client/apis/Suggest.js +4 -4
- package/dist/esm/Client/transforms/recommendationFiltersPost.d.ts +2 -2
- package/dist/esm/Client/transforms/recommendationFiltersPost.d.ts.map +1 -1
- package/dist/esm/Client/transforms/recommendationFiltersPost.js +2 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/types.d.ts +41 -28
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ClientGlobals, ClientConfig, TrendingRequestModel, TrendingResponseModel,
|
|
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:
|
|
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,
|
|
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({
|
|
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?:
|
|
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,
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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 {
|
|
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
|
-
|
|
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;
|
|
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
|
-
},
|
|
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 (
|
|
123
|
-
|
|
124
|
-
|
|
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,
|
|
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
|
-
//
|
|
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
|
|
145
|
-
|
|
146
|
-
if (
|
|
147
|
-
|
|
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
|
-
|
|
141
|
+
entry.request.products = [entry.request.product];
|
|
160
142
|
}
|
|
161
143
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
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,
|
|
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*/,
|
|
216
|
-
case
|
|
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*/,
|
|
222
|
-
case
|
|
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'] = '
|
|
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
|
-
},
|
|
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 (
|
|
239
|
+
if (one.order == undefined && two.order == undefined) {
|
|
281
240
|
return 0;
|
|
282
241
|
}
|
|
283
|
-
if (
|
|
242
|
+
if (one.order == undefined && two.order != undefined) {
|
|
284
243
|
return 1;
|
|
285
244
|
}
|
|
286
|
-
if (
|
|
245
|
+
if (two.order == undefined && one.order != undefined) {
|
|
287
246
|
return -1;
|
|
288
247
|
}
|
|
289
|
-
if (
|
|
248
|
+
if (one.order < two.order) {
|
|
290
249
|
return -1;
|
|
291
250
|
}
|
|
292
|
-
if (
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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,
|
|
2
|
-
export declare const transformRecommendationFiltersPost: (filters
|
|
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,
|
|
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') {
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './Client/Client';
|
|
2
|
-
export { ClientGlobals, ClientConfig, TrendingResponseModel,
|
|
2
|
+
export { ClientGlobals, ClientConfig, TrendingResponseModel, RecommendRequestModel, RecommendationRequestFilterModel, RecommendCombinedResponseModel, } from './types';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,
|
|
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"}
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -87,30 +87,58 @@ export type TrendingResponseModel = {
|
|
|
87
87
|
}[];
|
|
88
88
|
};
|
|
89
89
|
};
|
|
90
|
-
export type RecommendRequestModel = {
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
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
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
|
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';
|