@athoscommerce/snap-client 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +261 -0
  3. package/dist/cjs/Client/Client.d.ts +29 -0
  4. package/dist/cjs/Client/Client.d.ts.map +1 -0
  5. package/dist/cjs/Client/Client.js +278 -0
  6. package/dist/cjs/Client/NetworkCache/NetworkCache.d.ts +12 -0
  7. package/dist/cjs/Client/NetworkCache/NetworkCache.d.ts.map +1 -0
  8. package/dist/cjs/Client/NetworkCache/NetworkCache.js +198 -0
  9. package/dist/cjs/Client/apis/Abstract.d.ts +60 -0
  10. package/dist/cjs/Client/apis/Abstract.d.ts.map +1 -0
  11. package/dist/cjs/Client/apis/Abstract.js +297 -0
  12. package/dist/cjs/Client/apis/Meta.d.ts +8 -0
  13. package/dist/cjs/Client/apis/Meta.d.ts.map +1 -0
  14. package/dist/cjs/Client/apis/Meta.js +102 -0
  15. package/dist/cjs/Client/apis/Recommend.d.ts +15 -0
  16. package/dist/cjs/Client/apis/Recommend.d.ts.map +1 -0
  17. package/dist/cjs/Client/apis/Recommend.js +276 -0
  18. package/dist/cjs/Client/apis/Search.d.ts +12 -0
  19. package/dist/cjs/Client/apis/Search.d.ts.map +1 -0
  20. package/dist/cjs/Client/apis/Search.js +137 -0
  21. package/dist/cjs/Client/apis/Suggest.d.ts +9 -0
  22. package/dist/cjs/Client/apis/Suggest.d.ts.map +1 -0
  23. package/dist/cjs/Client/apis/Suggest.js +145 -0
  24. package/dist/cjs/Client/apis/index.d.ts +6 -0
  25. package/dist/cjs/Client/apis/index.d.ts.map +1 -0
  26. package/dist/cjs/Client/apis/index.js +21 -0
  27. package/dist/cjs/Client/transforms/index.d.ts +5 -0
  28. package/dist/cjs/Client/transforms/index.d.ts.map +1 -0
  29. package/dist/cjs/Client/transforms/index.js +20 -0
  30. package/dist/cjs/Client/transforms/recommendationFiltersPost.d.ts +3 -0
  31. package/dist/cjs/Client/transforms/recommendationFiltersPost.d.ts.map +1 -0
  32. package/dist/cjs/Client/transforms/recommendationFiltersPost.js +63 -0
  33. package/dist/cjs/Client/transforms/searchRequest.d.ts +49 -0
  34. package/dist/cjs/Client/transforms/searchRequest.d.ts.map +1 -0
  35. package/dist/cjs/Client/transforms/searchRequest.js +169 -0
  36. package/dist/cjs/Client/transforms/searchResponse.d.ts +146 -0
  37. package/dist/cjs/Client/transforms/searchResponse.d.ts.map +1 -0
  38. package/dist/cjs/Client/transforms/searchResponse.js +296 -0
  39. package/dist/cjs/Client/transforms/suggestResponse.d.ts +18 -0
  40. package/dist/cjs/Client/transforms/suggestResponse.d.ts.map +1 -0
  41. package/dist/cjs/Client/transforms/suggestResponse.js +30 -0
  42. package/dist/cjs/Client/utils/fibonacci.d.ts +2 -0
  43. package/dist/cjs/Client/utils/fibonacci.d.ts.map +1 -0
  44. package/dist/cjs/Client/utils/fibonacci.js +14 -0
  45. package/dist/cjs/Client/utils/index.d.ts +2 -0
  46. package/dist/cjs/Client/utils/index.d.ts.map +1 -0
  47. package/dist/cjs/Client/utils/index.js +17 -0
  48. package/dist/cjs/Client/utils/mergeParams.d.ts +2 -0
  49. package/dist/cjs/Client/utils/mergeParams.d.ts.map +1 -0
  50. package/dist/cjs/Client/utils/mergeParams.js +27 -0
  51. package/dist/cjs/index.d.ts +3 -0
  52. package/dist/cjs/index.d.ts.map +1 -0
  53. package/dist/cjs/index.js +17 -0
  54. package/dist/cjs/types.d.ts +212 -0
  55. package/dist/cjs/types.d.ts.map +1 -0
  56. package/dist/cjs/types.js +2 -0
  57. package/dist/esm/Client/Client.d.ts +29 -0
  58. package/dist/esm/Client/Client.d.ts.map +1 -0
  59. package/dist/esm/Client/Client.js +157 -0
  60. package/dist/esm/Client/NetworkCache/NetworkCache.d.ts +12 -0
  61. package/dist/esm/Client/NetworkCache/NetworkCache.d.ts.map +1 -0
  62. package/dist/esm/Client/NetworkCache/NetworkCache.js +168 -0
  63. package/dist/esm/Client/apis/Abstract.d.ts +60 -0
  64. package/dist/esm/Client/apis/Abstract.d.ts.map +1 -0
  65. package/dist/esm/Client/apis/Abstract.js +165 -0
  66. package/dist/esm/Client/apis/Meta.d.ts +8 -0
  67. package/dist/esm/Client/apis/Meta.d.ts.map +1 -0
  68. package/dist/esm/Client/apis/Meta.js +23 -0
  69. package/dist/esm/Client/apis/Recommend.d.ts +15 -0
  70. package/dist/esm/Client/apis/Recommend.d.ts.map +1 -0
  71. package/dist/esm/Client/apis/Recommend.js +172 -0
  72. package/dist/esm/Client/apis/Search.d.ts +12 -0
  73. package/dist/esm/Client/apis/Search.d.ts.map +1 -0
  74. package/dist/esm/Client/apis/Search.js +41 -0
  75. package/dist/esm/Client/apis/Suggest.d.ts +9 -0
  76. package/dist/esm/Client/apis/Suggest.d.ts.map +1 -0
  77. package/dist/esm/Client/apis/Suggest.js +45 -0
  78. package/dist/esm/Client/apis/index.d.ts +6 -0
  79. package/dist/esm/Client/apis/index.d.ts.map +1 -0
  80. package/dist/esm/Client/apis/index.js +5 -0
  81. package/dist/esm/Client/transforms/index.d.ts +5 -0
  82. package/dist/esm/Client/transforms/index.d.ts.map +1 -0
  83. package/dist/esm/Client/transforms/index.js +4 -0
  84. package/dist/esm/Client/transforms/recommendationFiltersPost.d.ts +3 -0
  85. package/dist/esm/Client/transforms/recommendationFiltersPost.d.ts.map +1 -0
  86. package/dist/esm/Client/transforms/recommendationFiltersPost.js +59 -0
  87. package/dist/esm/Client/transforms/searchRequest.d.ts +49 -0
  88. package/dist/esm/Client/transforms/searchRequest.d.ts.map +1 -0
  89. package/dist/esm/Client/transforms/searchRequest.js +152 -0
  90. package/dist/esm/Client/transforms/searchResponse.d.ts +146 -0
  91. package/dist/esm/Client/transforms/searchResponse.d.ts.map +1 -0
  92. package/dist/esm/Client/transforms/searchResponse.js +284 -0
  93. package/dist/esm/Client/transforms/suggestResponse.d.ts +18 -0
  94. package/dist/esm/Client/transforms/suggestResponse.d.ts.map +1 -0
  95. package/dist/esm/Client/transforms/suggestResponse.js +26 -0
  96. package/dist/esm/Client/utils/fibonacci.d.ts +2 -0
  97. package/dist/esm/Client/utils/fibonacci.d.ts.map +1 -0
  98. package/dist/esm/Client/utils/fibonacci.js +10 -0
  99. package/dist/esm/Client/utils/index.d.ts +2 -0
  100. package/dist/esm/Client/utils/index.d.ts.map +1 -0
  101. package/dist/esm/Client/utils/index.js +1 -0
  102. package/dist/esm/Client/utils/mergeParams.d.ts +2 -0
  103. package/dist/esm/Client/utils/mergeParams.d.ts.map +1 -0
  104. package/dist/esm/Client/utils/mergeParams.js +20 -0
  105. package/dist/esm/index.d.ts +3 -0
  106. package/dist/esm/index.d.ts.map +1 -0
  107. package/dist/esm/index.js +1 -0
  108. package/dist/esm/types.d.ts +212 -0
  109. package/dist/esm/types.d.ts.map +1 -0
  110. package/dist/esm/types.js +1 -0
  111. package/package.json +31 -0
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
28
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.SuggestAPI = void 0;
55
+ var Abstract_1 = require("./Abstract");
56
+ var SuggestAPI = /** @class */ (function (_super) {
57
+ __extends(SuggestAPI, _super);
58
+ function SuggestAPI() {
59
+ return _super !== null && _super.apply(this, arguments) || this;
60
+ }
61
+ SuggestAPI.prototype.getSuggest = function (queryParameters) {
62
+ return __awaiter(this, void 0, void 0, function () {
63
+ var headerParameters, response;
64
+ return __generator(this, function (_a) {
65
+ switch (_a.label) {
66
+ case 0:
67
+ headerParameters = {};
68
+ return [4 /*yield*/, this.request({
69
+ path: this.configuration.paths.suggest || '/v1/suggest',
70
+ method: 'GET',
71
+ headers: headerParameters,
72
+ query: queryParameters,
73
+ }, JSON.stringify(queryParameters))];
74
+ case 1:
75
+ response = _a.sent();
76
+ return [2 /*return*/, response];
77
+ }
78
+ });
79
+ });
80
+ };
81
+ SuggestAPI.prototype.postSuggest = function (requestParameters) {
82
+ return __awaiter(this, void 0, void 0, function () {
83
+ var headerParameters, response;
84
+ return __generator(this, function (_a) {
85
+ switch (_a.label) {
86
+ case 0:
87
+ headerParameters = {};
88
+ headerParameters['Content-Type'] = 'application/json';
89
+ return [4 /*yield*/, this.request({
90
+ path: this.configuration.paths.suggest || '/v1/suggest',
91
+ method: 'POST',
92
+ headers: headerParameters,
93
+ body: requestParameters,
94
+ }, JSON.stringify(requestParameters))];
95
+ case 1:
96
+ response = _a.sent();
97
+ return [2 /*return*/, response];
98
+ }
99
+ });
100
+ });
101
+ };
102
+ SuggestAPI.prototype.getTrending = function (queryParameters) {
103
+ return __awaiter(this, void 0, void 0, function () {
104
+ var headerParameters, response;
105
+ return __generator(this, function (_a) {
106
+ switch (_a.label) {
107
+ case 0:
108
+ headerParameters = {};
109
+ return [4 /*yield*/, this.request({
110
+ path: this.configuration.paths.trending || '/v1/trending',
111
+ method: 'GET',
112
+ headers: headerParameters,
113
+ query: queryParameters,
114
+ }, JSON.stringify(queryParameters))];
115
+ case 1:
116
+ response = _a.sent();
117
+ return [2 /*return*/, response];
118
+ }
119
+ });
120
+ });
121
+ };
122
+ SuggestAPI.prototype.postTrending = function (requestParameters) {
123
+ return __awaiter(this, void 0, void 0, function () {
124
+ var headerParameters, response;
125
+ return __generator(this, function (_a) {
126
+ switch (_a.label) {
127
+ case 0:
128
+ headerParameters = {};
129
+ headerParameters['Content-Type'] = 'application/json';
130
+ return [4 /*yield*/, this.request({
131
+ path: this.configuration.paths.trending || '/v1/trending',
132
+ method: 'POST',
133
+ headers: headerParameters,
134
+ body: requestParameters,
135
+ }, JSON.stringify(requestParameters))];
136
+ case 1:
137
+ response = _a.sent();
138
+ return [2 /*return*/, response];
139
+ }
140
+ });
141
+ });
142
+ };
143
+ return SuggestAPI;
144
+ }(Abstract_1.API));
145
+ exports.SuggestAPI = SuggestAPI;
@@ -0,0 +1,6 @@
1
+ export * from './Abstract';
2
+ export * from './Search';
3
+ export * from './Recommend';
4
+ export * from './Suggest';
5
+ export * from './Meta';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Abstract"), exports);
18
+ __exportStar(require("./Search"), exports);
19
+ __exportStar(require("./Recommend"), exports);
20
+ __exportStar(require("./Suggest"), exports);
21
+ __exportStar(require("./Meta"), exports);
@@ -0,0 +1,5 @@
1
+ export * from './searchRequest';
2
+ export * from './searchResponse';
3
+ export * from './suggestResponse';
4
+ export * from './recommendationFiltersPost';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Client/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./searchRequest"), exports);
18
+ __exportStar(require("./searchResponse"), exports);
19
+ __exportStar(require("./suggestResponse"), exports);
20
+ __exportStar(require("./recommendationFiltersPost"), exports);
@@ -0,0 +1,3 @@
1
+ import { RecommendationRequestFilterModel, RecommendPostRequestFiltersModel } from '../../types';
2
+ export declare const transformRecommendationFiltersPost: (filters?: RecommendationRequestFilterModel[]) => RecommendPostRequestFiltersModel[] | undefined;
3
+ //# sourceMappingURL=recommendationFiltersPost.d.ts.map
@@ -0,0 +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,aAAc,gCAAgC,EAAE,mDA0D9F,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformRecommendationFiltersPost = void 0;
4
+ var transformRecommendationFiltersPost = function (filters) {
5
+ if (!filters)
6
+ return;
7
+ var filterArray = [];
8
+ filters.map(function (filter) {
9
+ if (filter.type == 'value') {
10
+ //check if filterArray contains a filter for this value already
11
+ var i = filterArray.findIndex(function (_filter) { return _filter.field == filter.field; });
12
+ if (i > -1) {
13
+ //if so just push another value to the already existing obj
14
+ filterArray[i].values.push(filter.value);
15
+ }
16
+ else {
17
+ //else create a new one
18
+ var val = {
19
+ field: filter.field,
20
+ type: '=',
21
+ values: [filter.value],
22
+ };
23
+ filterArray.push(val);
24
+ }
25
+ }
26
+ else if (filter.type == 'range') {
27
+ //low
28
+ if (typeof filter.value.low == 'number') {
29
+ var low = {
30
+ field: filter.field,
31
+ type: '>=',
32
+ values: [filter.value.low],
33
+ };
34
+ //dedupe
35
+ var i = filterArray.findIndex(function (_filter) { return _filter.field == filter.field && _filter.type == '>='; });
36
+ if (i > -1) {
37
+ filterArray[i] = low;
38
+ }
39
+ else {
40
+ filterArray.push(low);
41
+ }
42
+ }
43
+ //high
44
+ if (typeof filter.value.high == 'number') {
45
+ var high = {
46
+ field: filter.field,
47
+ type: '<=',
48
+ values: [filter.value.high],
49
+ };
50
+ //dedupe
51
+ var i = filterArray.findIndex(function (_filter) { return _filter.field == filter.field && _filter.type == '<='; });
52
+ if (i > -1) {
53
+ filterArray[i] = high;
54
+ }
55
+ else {
56
+ filterArray.push(high);
57
+ }
58
+ }
59
+ }
60
+ });
61
+ return filterArray;
62
+ };
63
+ exports.transformRecommendationFiltersPost = transformRecommendationFiltersPost;
@@ -0,0 +1,49 @@
1
+ import { SearchRequestModel, SearchRequestModelSortsDirectionEnum, SearchRequestModelFilterRangeAllOfValue, AutocompleteRequestModel } from '@athoscommerce/snapi-types';
2
+ export declare function transformSearchRequest(request: SearchRequestModel | AutocompleteRequestModel): any;
3
+ export declare namespace transformSearchRequest {
4
+ var sorts: (request?: SearchRequestModel | AutocompleteRequestModel) => Record<string, SearchRequestModelSortsDirectionEnum[]>;
5
+ var search: (request?: SearchRequestModel | AutocompleteRequestModel) => {
6
+ q?: string;
7
+ rq?: string;
8
+ originalQuery?: string;
9
+ fallbackQuery?: string;
10
+ redirectResponse?: string;
11
+ source?: string;
12
+ input?: string;
13
+ };
14
+ var filters: (request?: SearchRequestModel | AutocompleteRequestModel) => Record<string, (string | number | SearchRequestModelFilterRangeAllOfValue | undefined)[]>;
15
+ var merchandising: (request?: SearchRequestModel | AutocompleteRequestModel) => {
16
+ disableMerchandising?: boolean;
17
+ tag?: string[];
18
+ 'landing-page'?: string;
19
+ intellisuggest?: boolean;
20
+ disableInlineBanners?: boolean;
21
+ };
22
+ var pagination: (request?: SearchRequestModel | AutocompleteRequestModel) => {
23
+ page?: number;
24
+ resultsPerPage?: number;
25
+ };
26
+ var siteId: (request?: SearchRequestModel | AutocompleteRequestModel) => {
27
+ siteId: string;
28
+ } | {
29
+ siteId?: undefined;
30
+ };
31
+ var facets: (request?: SearchRequestModel | AutocompleteRequestModel) => {
32
+ includedFacets?: string[];
33
+ excludedFacets?: string[];
34
+ disableFacetDrillDown?: boolean;
35
+ };
36
+ var tracking: (request?: SearchRequestModel | AutocompleteRequestModel) => {
37
+ userId?: string;
38
+ domain?: string;
39
+ sessionId?: string;
40
+ pageLoadId?: string;
41
+ };
42
+ var personalization: (request?: SearchRequestModel | AutocompleteRequestModel) => {
43
+ skipPersonalization?: boolean;
44
+ cart?: string;
45
+ shopper?: string;
46
+ lastViewed?: string;
47
+ };
48
+ }
49
+ //# sourceMappingURL=searchRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchRequest.d.ts","sourceRoot":"","sources":["../../../../src/Client/transforms/searchRequest.ts"],"names":[],"mappings":"AACA,OAAO,EACN,kBAAkB,EAIlB,oCAAoC,EACpC,uCAAuC,EACvC,wBAAwB,EAExB,MAAM,4BAA4B,CAAC;AAEpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,wBAAwB,GAAG,GAAG,CAclG;yBAde,sBAAsB;0BAgBG,kBAAkB,GAAG,wBAAwB;2BAa5C,kBAAkB,GAAG,wBAAwB;YAGjF,MAAM;aACL,MAAM;wBACK,MAAM;wBACN,MAAM;2BACH,MAAM;iBAChB,MAAM;gBACP,MAAM;;4BAoC2B,kBAAkB,GAAG,wBAAwB;kCAmCvC,kBAAkB,GAAG,wBAAwB;+BAIrE,OAAO;cACxB,MAAM,EAAE;yBACG,MAAM;yBACN,OAAO;+BACD,OAAO;;+BAoBc,kBAAkB,GAAG,wBAAwB;eAGlF,MAAM;yBACI,MAAM;;2BAciB,kBAAkB,GAAG,wBAAwB;;;;;2BAQ7C,kBAAkB,GAAG,wBAAwB;yBAGpE,MAAM,EAAE;yBACR,MAAM,EAAE;gCACD,OAAO;;6BAsBW,kBAAkB,GAAG,wBAAwB;iBAG9E,MAAM;iBACN,MAAM;oBACH,MAAM;qBACL,MAAM;;oCAmB8B,kBAAkB,GAAG,wBAAwB;8BAGxE,OAAO;eACtB,MAAM;kBACH,MAAM;qBACH,MAAM"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.transformSearchRequest = transformSearchRequest;
15
+ var utils_1 = require("../utils");
16
+ function transformSearchRequest(request) {
17
+ var data = (0, utils_1.mergeParams)(transformSearchRequest.sorts(request), transformSearchRequest.search(request), transformSearchRequest.filters(request), transformSearchRequest.merchandising(request), transformSearchRequest.pagination(request), transformSearchRequest.siteId(request), transformSearchRequest.facets(request), transformSearchRequest.tracking(request), transformSearchRequest.personalization(request));
18
+ return data;
19
+ }
20
+ transformSearchRequest.sorts = function (request) {
21
+ if (request === void 0) { request = {}; }
22
+ return (request.sorts || []).reduce(function (acc, sort) {
23
+ var _a;
24
+ if (!sort.field || !sort.direction || (sort.direction != 'asc' && sort.direction != 'desc')) {
25
+ return acc;
26
+ }
27
+ return __assign(__assign({}, acc), (_a = {}, _a['sort.' + sort.field] = (acc[sort.field] || []).concat([sort.direction]), _a));
28
+ }, {});
29
+ };
30
+ transformSearchRequest.search = function (request) {
31
+ if (request === void 0) { request = {}; }
32
+ var reqSearch = request.search || {};
33
+ var search = {};
34
+ if (reqSearch.query && reqSearch.query.string) {
35
+ search.q = reqSearch.query.string;
36
+ }
37
+ if (reqSearch.subQuery) {
38
+ search.rq = reqSearch.subQuery.trim();
39
+ }
40
+ if (reqSearch.originalQuery) {
41
+ search.originalQuery = reqSearch.originalQuery.trim();
42
+ }
43
+ if (reqSearch.fallbackQuery) {
44
+ search.fallbackQuery = reqSearch.fallbackQuery.trim();
45
+ }
46
+ if (reqSearch.redirectResponse) {
47
+ search.redirectResponse = reqSearch.redirectResponse;
48
+ }
49
+ // for autocomplete only
50
+ if (reqSearch.source) {
51
+ search.source = reqSearch.source;
52
+ }
53
+ // for autocomplete only
54
+ if (reqSearch.input) {
55
+ search.input = reqSearch.input;
56
+ }
57
+ return search;
58
+ };
59
+ transformSearchRequest.filters = function (request) {
60
+ if (request === void 0) { request = {}; }
61
+ return (request.filters || []).reduce(function (acc, filter) {
62
+ var _a, _b;
63
+ var _c, _d, _e, _f;
64
+ var baseKey = filter.background ? 'bgfilter' : 'filter';
65
+ if (filter.type == 'value') {
66
+ var key = baseKey + '.' + filter.field;
67
+ return __assign(__assign({}, acc), (_a = {}, _a[key] = (acc[key] || []).concat([filter.value]), _a));
68
+ }
69
+ else if (filter.type == 'range') {
70
+ var keyLow = baseKey + '.' + filter.field + '.low';
71
+ var keyHigh = baseKey + '.' + filter.field + '.high';
72
+ var low = (_d = (_c = filter === null || filter === void 0 ? void 0 : filter.value) === null || _c === void 0 ? void 0 : _c.low) !== null && _d !== void 0 ? _d : '*';
73
+ var high = (_f = (_e = filter === null || filter === void 0 ? void 0 : filter.value) === null || _e === void 0 ? void 0 : _e.high) !== null && _f !== void 0 ? _f : '*';
74
+ return __assign(__assign({}, acc), (_b = {}, _b[keyLow] = (acc[keyLow] || []).concat([low]), _b[keyHigh] = (acc[keyHigh] || []).concat([high]), _b));
75
+ }
76
+ return acc;
77
+ }, {});
78
+ };
79
+ transformSearchRequest.merchandising = function (request) {
80
+ if (request === void 0) { request = {}; }
81
+ var reqMerch = request.merchandising || {};
82
+ var merch = reqMerch.disabled ? { disableMerchandising: true } : {};
83
+ if (reqMerch.landingPage) {
84
+ merch['landing-page'] = reqMerch.landingPage;
85
+ }
86
+ if (reqMerch.segments instanceof Array && reqMerch.segments.length) {
87
+ merch['tag'] = reqMerch.segments.map(function (segment) {
88
+ return "merch.segment/".concat(segment);
89
+ });
90
+ }
91
+ if (reqMerch.disableInlineBanners) {
92
+ merch['disableInlineBanners'] = reqMerch.disableInlineBanners;
93
+ }
94
+ return merch;
95
+ };
96
+ transformSearchRequest.pagination = function (request) {
97
+ if (request === void 0) { request = {}; }
98
+ var pagination = request.pagination || {};
99
+ var params = {};
100
+ if (pagination.page) {
101
+ params.page = pagination.page;
102
+ }
103
+ if (pagination.pageSize || pagination.pageSize === 0) {
104
+ params.resultsPerPage = pagination.pageSize;
105
+ }
106
+ return params;
107
+ };
108
+ transformSearchRequest.siteId = function (request) {
109
+ if (request === void 0) { request = {}; }
110
+ if (request.siteId) {
111
+ return { siteId: request.siteId };
112
+ }
113
+ return {};
114
+ };
115
+ transformSearchRequest.facets = function (request) {
116
+ var _a, _b;
117
+ if (request === void 0) { request = {}; }
118
+ var facets = request.facets || {};
119
+ var params = {};
120
+ if (facets.include && facets.include.length && facets.exclude && facets.exclude.length) {
121
+ throw 'cannot use facet include and exclude at the same time';
122
+ }
123
+ if ((_a = facets.include) === null || _a === void 0 ? void 0 : _a.length) {
124
+ params.includedFacets = facets.include;
125
+ }
126
+ if ((_b = facets.exclude) === null || _b === void 0 ? void 0 : _b.length) {
127
+ params.excludedFacets = facets.exclude;
128
+ }
129
+ if (facets.autoDrillDown === false) {
130
+ params.disableFacetDrillDown = true;
131
+ }
132
+ return params;
133
+ };
134
+ transformSearchRequest.tracking = function (request) {
135
+ if (request === void 0) { request = {}; }
136
+ var reqTracking = request.tracking || {};
137
+ var params = {};
138
+ if (reqTracking.userId) {
139
+ params.userId = reqTracking.userId;
140
+ }
141
+ if (reqTracking.domain) {
142
+ params.domain = reqTracking.domain;
143
+ }
144
+ if (reqTracking.sessionId) {
145
+ params.sessionId = reqTracking.sessionId;
146
+ }
147
+ if (reqTracking.pageLoadId) {
148
+ params.pageLoadId = reqTracking.pageLoadId;
149
+ }
150
+ return params;
151
+ };
152
+ transformSearchRequest.personalization = function (request) {
153
+ if (request === void 0) { request = {}; }
154
+ var personalization = request.personalization || {};
155
+ var params = {};
156
+ if (personalization.disabled) {
157
+ params.skipPersonalization = personalization.disabled;
158
+ }
159
+ if (personalization.cart) {
160
+ params.cart = personalization.cart;
161
+ }
162
+ if (personalization.lastViewed) {
163
+ params.lastViewed = personalization.lastViewed;
164
+ }
165
+ if (personalization.shopper) {
166
+ params.shopper = personalization.shopper;
167
+ }
168
+ return params;
169
+ };
@@ -0,0 +1,146 @@
1
+ import { SearchRequestModel, SearchResponseModelResult, SearchResponseModelPagination, SearchResponseModelSearchMatchTypeEnum, SearchResponseModelMerchandising, SearchResponseModelResultBadges, SearchResponseModelResultVariants, AutocompleteRequestModel, SearchResponseModel, SearchResponseModelFilter, SearchResponseModelFacet, SearchResponseModelSorting, SearchResponseModelSearch, SearchResponseModelTracking } from '@athoscommerce/snapi-types';
2
+ type SortingOption = {
3
+ field: string;
4
+ direction: string;
5
+ label: string;
6
+ active?: number;
7
+ };
8
+ type RawResult = {
9
+ available: string;
10
+ badges?: SearchResponseModelResultBadges[];
11
+ variants?: SearchResponseModelResultVariants;
12
+ brand?: string;
13
+ collection_handle?: string[];
14
+ collection_id?: string[];
15
+ handle?: string;
16
+ id: string;
17
+ imageUrl: string;
18
+ intellisuggestData?: string;
19
+ intellisuggestSignature?: string;
20
+ msrp?: string;
21
+ name: string;
22
+ parentId: string;
23
+ parentImageUrl: string;
24
+ price: string;
25
+ product_type?: string[];
26
+ product_type_unigram?: string;
27
+ sku: string;
28
+ ss_available?: string;
29
+ ss_best_selling?: string;
30
+ ss_days_since_published?: string;
31
+ ss_id?: string;
32
+ ss_image_hover?: string;
33
+ ss_images?: string[];
34
+ ss_inventory_count?: string;
35
+ ss_tags?: string[];
36
+ thumbnailImageUrl?: string;
37
+ uid?: string;
38
+ url?: string;
39
+ children?: [];
40
+ };
41
+ type FacetValue = {
42
+ active: boolean;
43
+ type: string;
44
+ value: string;
45
+ label: string;
46
+ count: number;
47
+ low?: string | number;
48
+ high?: string | number;
49
+ };
50
+ type Facet = {
51
+ hierarchyDelimiter?: string;
52
+ multiple?: string;
53
+ active?: any;
54
+ count?: number;
55
+ high?: string;
56
+ low?: string;
57
+ field: string;
58
+ label: string;
59
+ type: null | string;
60
+ collapse: number;
61
+ facet_active: number;
62
+ values: FacetValue[];
63
+ step?: number;
64
+ filtered?: boolean;
65
+ range?: string[];
66
+ };
67
+ type Breadcrumb = {
68
+ field: string;
69
+ label: string;
70
+ filterLabel: string;
71
+ filterValue: string;
72
+ removeFilters: [];
73
+ removeRefineQuery: [];
74
+ };
75
+ export type SearchResponseType = {
76
+ responseId: string;
77
+ pagination: {
78
+ totalResults: number;
79
+ begin: number;
80
+ end: number;
81
+ currentPage: number;
82
+ totalPages: number;
83
+ previousPage: number;
84
+ nextPage: number;
85
+ perPage: number;
86
+ defaultPerPage: number;
87
+ };
88
+ sorting: {
89
+ options: SortingOption[];
90
+ };
91
+ resultLayout?: string;
92
+ results: RawResult[];
93
+ facets: Facet[];
94
+ breadcrumbs?: Breadcrumb[];
95
+ filterSummary: {
96
+ field: string;
97
+ filterLabel: string;
98
+ filterValue: string;
99
+ label: string;
100
+ value: {
101
+ rangeHigh?: string | number;
102
+ rangeLow?: string | number;
103
+ low?: string | number;
104
+ high?: string | number;
105
+ } | string;
106
+ }[];
107
+ merchandising: {
108
+ redirect: string;
109
+ is_elevated: string[];
110
+ elevated: any[];
111
+ removed: string[];
112
+ content: object;
113
+ facets: any[];
114
+ facetsHide: any[];
115
+ experiments?: any[];
116
+ variants?: [];
117
+ personalized?: boolean;
118
+ triggeredCampaigns?: {
119
+ id: string;
120
+ title: string;
121
+ type: string;
122
+ }[];
123
+ };
124
+ didYouMean?: {
125
+ query: string;
126
+ };
127
+ query?: {
128
+ matchType?: SearchResponseModelSearchMatchTypeEnum;
129
+ corrected?: string;
130
+ original?: string;
131
+ };
132
+ };
133
+ export declare function transformSearchResponse(response: SearchResponseType, request: SearchRequestModel | AutocompleteRequestModel): SearchResponseModel;
134
+ export declare namespace transformSearchResponse {
135
+ var pagination: (response: SearchResponseType) => SearchResponseModelPagination;
136
+ var results: (response: SearchResponseType) => SearchResponseModelResult[];
137
+ var result: (rawResult: RawResult, response: SearchResponseType) => SearchResponseModelResult;
138
+ var filters: (response: SearchResponseType) => SearchResponseModelFilter[];
139
+ var facets: (response: SearchResponseType, request?: SearchRequestModel | AutocompleteRequestModel) => SearchResponseModelFacet[];
140
+ var sorting: (response: SearchResponseType) => SearchResponseModelSorting[];
141
+ var merchandising: (response: SearchResponseType) => SearchResponseModelMerchandising;
142
+ var search: (response: SearchResponseType, request: SearchRequestModel | AutocompleteRequestModel) => SearchResponseModelSearch;
143
+ var tracking: (response: SearchResponseType) => SearchResponseModelTracking;
144
+ }
145
+ export {};
146
+ //# sourceMappingURL=searchResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchResponse.d.ts","sourceRoot":"","sources":["../../../../src/Client/transforms/searchResponse.ts"],"names":[],"mappings":"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"}