@searchspring/snap-client 0.20.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 (129) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +174 -0
  3. package/dist/cjs/Client/Client.d.ts +15 -0
  4. package/dist/cjs/Client/Client.d.ts.map +1 -0
  5. package/dist/cjs/Client/Client.js +198 -0
  6. package/dist/cjs/Client/NetworkCache/NetworkCache.d.ts +10 -0
  7. package/dist/cjs/Client/NetworkCache/NetworkCache.d.ts.map +1 -0
  8. package/dist/cjs/Client/NetworkCache/NetworkCache.js +104 -0
  9. package/dist/cjs/Client/apis/Abstract.d.ts +49 -0
  10. package/dist/cjs/Client/apis/Abstract.d.ts.map +1 -0
  11. package/dist/cjs/Client/apis/Abstract.js +209 -0
  12. package/dist/cjs/Client/apis/Hybrid.d.ts +10 -0
  13. package/dist/cjs/Client/apis/Hybrid.d.ts.map +1 -0
  14. package/dist/cjs/Client/apis/Hybrid.js +137 -0
  15. package/dist/cjs/Client/apis/Legacy.d.ts +11 -0
  16. package/dist/cjs/Client/apis/Legacy.d.ts.map +1 -0
  17. package/dist/cjs/Client/apis/Legacy.js +147 -0
  18. package/dist/cjs/Client/apis/Recommend.d.ts +81 -0
  19. package/dist/cjs/Client/apis/Recommend.d.ts.map +1 -0
  20. package/dist/cjs/Client/apis/Recommend.js +222 -0
  21. package/dist/cjs/Client/apis/Snap.d.ts +8 -0
  22. package/dist/cjs/Client/apis/Snap.d.ts.map +1 -0
  23. package/dist/cjs/Client/apis/Snap.js +126 -0
  24. package/dist/cjs/Client/apis/Suggest.d.ts +45 -0
  25. package/dist/cjs/Client/apis/Suggest.d.ts.map +1 -0
  26. package/dist/cjs/Client/apis/Suggest.js +145 -0
  27. package/dist/cjs/Client/apis/index.d.ts +7 -0
  28. package/dist/cjs/Client/apis/index.d.ts.map +1 -0
  29. package/dist/cjs/Client/apis/index.js +18 -0
  30. package/dist/cjs/Client/transforms/index.d.ts +4 -0
  31. package/dist/cjs/Client/transforms/index.d.ts.map +1 -0
  32. package/dist/cjs/Client/transforms/index.js +15 -0
  33. package/dist/cjs/Client/transforms/searchRequest.d.ts +47 -0
  34. package/dist/cjs/Client/transforms/searchRequest.d.ts.map +1 -0
  35. package/dist/cjs/Client/transforms/searchRequest.js +151 -0
  36. package/dist/cjs/Client/transforms/searchResponse.d.ts +31 -0
  37. package/dist/cjs/Client/transforms/searchResponse.d.ts.map +1 -0
  38. package/dist/cjs/Client/transforms/searchResponse.js +246 -0
  39. package/dist/cjs/Client/transforms/suggestResponse.d.ts +29 -0
  40. package/dist/cjs/Client/transforms/suggestResponse.d.ts.map +1 -0
  41. package/dist/cjs/Client/transforms/suggestResponse.js +53 -0
  42. package/dist/cjs/Client/utils/charsParams.d.ts +3 -0
  43. package/dist/cjs/Client/utils/charsParams.d.ts.map +1 -0
  44. package/dist/cjs/Client/utils/charsParams.js +23 -0
  45. package/dist/cjs/Client/utils/fibonacci.d.ts +2 -0
  46. package/dist/cjs/Client/utils/fibonacci.d.ts.map +1 -0
  47. package/dist/cjs/Client/utils/fibonacci.js +14 -0
  48. package/dist/cjs/Client/utils/hashParams.d.ts +3 -0
  49. package/dist/cjs/Client/utils/hashParams.d.ts.map +1 -0
  50. package/dist/cjs/Client/utils/hashParams.js +10 -0
  51. package/dist/cjs/Client/utils/htmlUnescape.d.ts +2 -0
  52. package/dist/cjs/Client/utils/htmlUnescape.d.ts.map +1 -0
  53. package/dist/cjs/Client/utils/htmlUnescape.js +12 -0
  54. package/dist/cjs/Client/utils/index.d.ts +2 -0
  55. package/dist/cjs/Client/utils/index.d.ts.map +1 -0
  56. package/dist/cjs/Client/utils/index.js +13 -0
  57. package/dist/cjs/Client/utils/mergeParams.d.ts +2 -0
  58. package/dist/cjs/Client/utils/mergeParams.d.ts.map +1 -0
  59. package/dist/cjs/Client/utils/mergeParams.js +18 -0
  60. package/dist/cjs/index.d.ts +3 -0
  61. package/dist/cjs/index.d.ts.map +1 -0
  62. package/dist/cjs/index.js +13 -0
  63. package/dist/cjs/types.d.ts +45 -0
  64. package/dist/cjs/types.d.ts.map +1 -0
  65. package/dist/cjs/types.js +2 -0
  66. package/dist/esm/Client/Client.d.ts +15 -0
  67. package/dist/esm/Client/Client.d.ts.map +1 -0
  68. package/dist/esm/Client/Client.js +108 -0
  69. package/dist/esm/Client/NetworkCache/NetworkCache.d.ts +10 -0
  70. package/dist/esm/Client/NetworkCache/NetworkCache.d.ts.map +1 -0
  71. package/dist/esm/Client/NetworkCache/NetworkCache.js +89 -0
  72. package/dist/esm/Client/apis/Abstract.d.ts +49 -0
  73. package/dist/esm/Client/apis/Abstract.d.ts.map +1 -0
  74. package/dist/esm/Client/apis/Abstract.js +119 -0
  75. package/dist/esm/Client/apis/Hybrid.d.ts +10 -0
  76. package/dist/esm/Client/apis/Hybrid.d.ts.map +1 -0
  77. package/dist/esm/Client/apis/Hybrid.js +49 -0
  78. package/dist/esm/Client/apis/Legacy.d.ts +11 -0
  79. package/dist/esm/Client/apis/Legacy.d.ts.map +1 -0
  80. package/dist/esm/Client/apis/Legacy.js +44 -0
  81. package/dist/esm/Client/apis/Recommend.d.ts +81 -0
  82. package/dist/esm/Client/apis/Recommend.d.ts.map +1 -0
  83. package/dist/esm/Client/apis/Recommend.js +91 -0
  84. package/dist/esm/Client/apis/Snap.d.ts +8 -0
  85. package/dist/esm/Client/apis/Snap.d.ts.map +1 -0
  86. package/dist/esm/Client/apis/Snap.js +36 -0
  87. package/dist/esm/Client/apis/Suggest.d.ts +45 -0
  88. package/dist/esm/Client/apis/Suggest.d.ts.map +1 -0
  89. package/dist/esm/Client/apis/Suggest.js +45 -0
  90. package/dist/esm/Client/apis/index.d.ts +7 -0
  91. package/dist/esm/Client/apis/index.d.ts.map +1 -0
  92. package/dist/esm/Client/apis/index.js +6 -0
  93. package/dist/esm/Client/transforms/index.d.ts +4 -0
  94. package/dist/esm/Client/transforms/index.d.ts.map +1 -0
  95. package/dist/esm/Client/transforms/index.js +3 -0
  96. package/dist/esm/Client/transforms/searchRequest.d.ts +47 -0
  97. package/dist/esm/Client/transforms/searchRequest.d.ts.map +1 -0
  98. package/dist/esm/Client/transforms/searchRequest.js +133 -0
  99. package/dist/esm/Client/transforms/searchResponse.d.ts +31 -0
  100. package/dist/esm/Client/transforms/searchResponse.d.ts.map +1 -0
  101. package/dist/esm/Client/transforms/searchResponse.js +249 -0
  102. package/dist/esm/Client/transforms/suggestResponse.d.ts +29 -0
  103. package/dist/esm/Client/transforms/suggestResponse.d.ts.map +1 -0
  104. package/dist/esm/Client/transforms/suggestResponse.js +42 -0
  105. package/dist/esm/Client/utils/charsParams.d.ts +3 -0
  106. package/dist/esm/Client/utils/charsParams.d.ts.map +1 -0
  107. package/dist/esm/Client/utils/charsParams.js +19 -0
  108. package/dist/esm/Client/utils/fibonacci.d.ts +2 -0
  109. package/dist/esm/Client/utils/fibonacci.d.ts.map +1 -0
  110. package/dist/esm/Client/utils/fibonacci.js +10 -0
  111. package/dist/esm/Client/utils/hashParams.d.ts +3 -0
  112. package/dist/esm/Client/utils/hashParams.d.ts.map +1 -0
  113. package/dist/esm/Client/utils/hashParams.js +6 -0
  114. package/dist/esm/Client/utils/htmlUnescape.d.ts +2 -0
  115. package/dist/esm/Client/utils/htmlUnescape.d.ts.map +1 -0
  116. package/dist/esm/Client/utils/htmlUnescape.js +8 -0
  117. package/dist/esm/Client/utils/index.d.ts +2 -0
  118. package/dist/esm/Client/utils/index.d.ts.map +1 -0
  119. package/dist/esm/Client/utils/index.js +1 -0
  120. package/dist/esm/Client/utils/mergeParams.d.ts +2 -0
  121. package/dist/esm/Client/utils/mergeParams.d.ts.map +1 -0
  122. package/dist/esm/Client/utils/mergeParams.js +10 -0
  123. package/dist/esm/index.d.ts +3 -0
  124. package/dist/esm/index.d.ts.map +1 -0
  125. package/dist/esm/index.js +1 -0
  126. package/dist/esm/types.d.ts +45 -0
  127. package/dist/esm/types.d.ts.map +1 -0
  128. package/dist/esm/types.js +1 -0
  129. package/package.json +27 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchRequest.d.ts","sourceRoot":"","sources":["../../../../src/Client/transforms/searchRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAgE,MAAM,2BAA2B,CAAC;AAE7H,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAYvE;yBAZe,sBAAsB"}
@@ -0,0 +1,151 @@
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 = void 0;
15
+ var utils_1 = require("../utils");
16
+ function transformSearchRequest(request) {
17
+ return (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
+ }
19
+ exports.transformSearchRequest = transformSearchRequest;
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) {
25
+ return acc;
26
+ }
27
+ if (!sort.field || !sort.direction) {
28
+ throw 'valid sort requires field and direction';
29
+ }
30
+ if (sort.direction != 'asc' && sort.direction != 'desc') {
31
+ throw 'valid sort directions: asc, desc';
32
+ }
33
+ return __assign(__assign({}, acc), (_a = {}, _a['sort.' + sort.field] = (acc[sort.field] || []).concat(sort.direction), _a));
34
+ }, {});
35
+ };
36
+ transformSearchRequest.search = function (request) {
37
+ if (request === void 0) { request = {}; }
38
+ var reqSearch = request.search || {};
39
+ var search = {};
40
+ if (reqSearch.query && reqSearch.query.string) {
41
+ search.q = reqSearch.query.string.trim();
42
+ }
43
+ if (reqSearch.subQuery) {
44
+ search.rq = reqSearch.subQuery.trim();
45
+ }
46
+ if (reqSearch.originalQuery) {
47
+ search.originalQuery = reqSearch.originalQuery.trim();
48
+ }
49
+ if (reqSearch.redirectResponse) {
50
+ search.redirectResponse = reqSearch.redirectResponse;
51
+ }
52
+ return search;
53
+ };
54
+ transformSearchRequest.filters = function (request) {
55
+ if (request === void 0) { request = {}; }
56
+ return (request.filters || []).reduce(function (acc, filter) {
57
+ var _a, _b;
58
+ var _c, _d;
59
+ var baseKey = filter.background ? 'bgfilter' : 'filter';
60
+ if (filter.type == 'value') {
61
+ var key = baseKey + '.' + filter.field;
62
+ return __assign(__assign({}, acc), (_a = {}, _a[key] = (acc[key] || []).concat([filter.value]), _a));
63
+ }
64
+ else if (filter.type == 'range') {
65
+ var keyLow = baseKey + '.' + filter.field + '.low';
66
+ var keyHigh = baseKey + '.' + filter.field + '.high';
67
+ var low = (_c = filter.value.low) !== null && _c !== void 0 ? _c : '*';
68
+ var high = (_d = filter.value.high) !== null && _d !== void 0 ? _d : '*';
69
+ return __assign(__assign({}, acc), (_b = {}, _b[keyLow] = (acc[keyLow] || []).concat([low]), _b[keyHigh] = (acc[keyHigh] || []).concat([high]), _b));
70
+ }
71
+ return acc;
72
+ }, {});
73
+ };
74
+ transformSearchRequest.merchandising = function (request) {
75
+ if (request === void 0) { request = {}; }
76
+ var reqMerch = request.merchandising || {};
77
+ var merch = reqMerch.disabled ? { disableMerchandising: true } : {};
78
+ if (reqMerch.landingPage) {
79
+ merch['landing-page'] = reqMerch.landingPage;
80
+ }
81
+ if (reqMerch.segments instanceof Array && reqMerch.segments.length) {
82
+ merch['tag'] = reqMerch.segments.map(function (segment) {
83
+ return "merch.segment/".concat(segment);
84
+ });
85
+ }
86
+ return merch;
87
+ };
88
+ transformSearchRequest.pagination = function (request) {
89
+ if (request === void 0) { request = {}; }
90
+ var pagination = request.pagination || {};
91
+ var params = {};
92
+ if (pagination.page) {
93
+ params.page = pagination.page;
94
+ }
95
+ if (pagination.pageSize || pagination.pageSize === 0) {
96
+ params.resultsPerPage = pagination.pageSize;
97
+ }
98
+ return params;
99
+ };
100
+ transformSearchRequest.siteId = function (request) {
101
+ if (request === void 0) { request = {}; }
102
+ if (request.siteId) {
103
+ return { siteId: request.siteId };
104
+ }
105
+ return {};
106
+ };
107
+ transformSearchRequest.facets = function (request) {
108
+ var _a, _b;
109
+ if (request === void 0) { request = {}; }
110
+ var facets = request.facets || {};
111
+ if (facets.include && facets.include.length && facets.exclude && facets.exclude.length) {
112
+ throw 'cannot use facet include and exclude at the same time';
113
+ }
114
+ if ((_a = facets.include) === null || _a === void 0 ? void 0 : _a.length) {
115
+ return { includedFacets: facets.include };
116
+ }
117
+ if ((_b = facets.exclude) === null || _b === void 0 ? void 0 : _b.length) {
118
+ return { excludedFacets: facets.exclude };
119
+ }
120
+ return {};
121
+ };
122
+ transformSearchRequest.tracking = function (request) {
123
+ if (request === void 0) { request = {}; }
124
+ var reqTracking = request.tracking || {};
125
+ var params = {};
126
+ if (reqTracking.userId) {
127
+ params.userId = reqTracking.userId;
128
+ }
129
+ if (reqTracking.domain) {
130
+ params.domain = reqTracking.domain;
131
+ }
132
+ return params;
133
+ };
134
+ transformSearchRequest.personalization = function (request) {
135
+ if (request === void 0) { request = {}; }
136
+ var personalization = request.personalization || {};
137
+ var params = {};
138
+ if (personalization.disabled) {
139
+ params.skipPersonalization = personalization.disabled;
140
+ }
141
+ if (personalization.cart) {
142
+ params.cart = personalization.cart;
143
+ }
144
+ if (personalization.lastViewed) {
145
+ params.lastViewed = personalization.lastViewed;
146
+ }
147
+ if (personalization.shopper) {
148
+ params.shopper = personalization.shopper;
149
+ }
150
+ return params;
151
+ };
@@ -0,0 +1,31 @@
1
+ import { SearchRequestModel, SearchResponseModel, SearchResponseModelResult, SearchResponseModelPagination } from '@searchspring/snapi-types';
2
+ export declare function transformSearchResponse(response: any, request: SearchRequestModel): SearchResponseModel;
3
+ export declare namespace transformSearchResponse {
4
+ var pagination: (response: any) => {
5
+ pagination: SearchResponseModelPagination;
6
+ };
7
+ var results: (response: any) => {
8
+ results: any;
9
+ };
10
+ var result: (rawResult: any) => SearchResponseModelResult;
11
+ var filters: (response: any) => {
12
+ filters: any;
13
+ };
14
+ var facets: (response: any, request?: SearchRequestModel) => {
15
+ facets: any;
16
+ };
17
+ var sorting: (response: any) => {
18
+ sorting: any;
19
+ };
20
+ var merchandising: (response: any) => {
21
+ merchandising: any;
22
+ };
23
+ var search: (response: any, request: any) => {
24
+ search: {
25
+ query: any;
26
+ didYouMean: any;
27
+ originalQuery: any;
28
+ };
29
+ };
30
+ }
31
+ //# sourceMappingURL=searchResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchResponse.d.ts","sourceRoot":"","sources":["../../../../src/Client/transforms/searchResponse.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,kBAAkB,EAElB,mBAAmB,EACnB,yBAAyB,EAIzB,6BAA6B,EAC7B,MAAM,2BAA2B,CAAC;AA8BnC,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,CAUvG;yBAVe,uBAAuB"}
@@ -0,0 +1,246 @@
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.transformSearchResponse = void 0;
15
+ var htmlUnescape_1 = require("../utils/htmlUnescape");
16
+ // TODO: Add all core fields
17
+ var CORE_FIELDS = [
18
+ 'uid',
19
+ 'sku',
20
+ 'name',
21
+ 'url',
22
+ 'addToCartUrl',
23
+ 'price',
24
+ 'msrp',
25
+ 'imageUrl',
26
+ 'secureImageUrl',
27
+ 'thumbnailImageUrl',
28
+ 'secureThumbnailImageUrl',
29
+ 'rating',
30
+ 'ratingCount',
31
+ 'description',
32
+ 'stockMessage',
33
+ 'brand',
34
+ 'popularity',
35
+ 'caption',
36
+ ];
37
+ var Result = /** @class */ (function () {
38
+ function Result(result) {
39
+ Object.assign(this, result);
40
+ }
41
+ return Result;
42
+ }());
43
+ function transformSearchResponse(response, request) {
44
+ return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, transformSearchResponse.pagination(response)), transformSearchResponse.results(response)), transformSearchResponse.filters(response)), transformSearchResponse.facets(response, request)), transformSearchResponse.sorting(response)), transformSearchResponse.merchandising(response)), transformSearchResponse.search(response, request));
45
+ }
46
+ exports.transformSearchResponse = transformSearchResponse;
47
+ transformSearchResponse.pagination = function (response) {
48
+ var pagination = (response || {}).pagination || {};
49
+ return {
50
+ pagination: {
51
+ totalResults: pagination.totalResults,
52
+ page: pagination.currentPage,
53
+ pageSize: pagination.perPage,
54
+ defaultPageSize: pagination.defaultPerPage,
55
+ totalPages: pagination.totalPages,
56
+ },
57
+ };
58
+ };
59
+ transformSearchResponse.results = function (response) {
60
+ var results = (response || {}).results || [];
61
+ return { results: results.map(transformSearchResponse.result) };
62
+ };
63
+ transformSearchResponse.result = function (rawResult) {
64
+ var _a;
65
+ var coreFieldValues = CORE_FIELDS.reduce(function (coreFields, key) {
66
+ var _a;
67
+ if (typeof rawResult[key] != 'undefined') {
68
+ return __assign(__assign({}, coreFields), (_a = {}, _a[key] = decodeProperty(rawResult[key]), _a));
69
+ }
70
+ return coreFields;
71
+ }, {});
72
+ if (coreFieldValues.price)
73
+ coreFieldValues.price = +coreFieldValues.price;
74
+ if (coreFieldValues.msrp)
75
+ coreFieldValues.msrp = +coreFieldValues.msrp;
76
+ var attributes = Object.keys(rawResult)
77
+ .filter(function (k) { return CORE_FIELDS.indexOf(k) == -1; })
78
+ .reduce(function (attributes, key) {
79
+ var _a;
80
+ return __assign(__assign({}, attributes), (_a = {}, _a[key] = decodeProperty(rawResult[key]), _a));
81
+ }, {});
82
+ var children = ((_a = rawResult === null || rawResult === void 0 ? void 0 : rawResult.children) === null || _a === void 0 ? void 0 : _a.map(function (child) {
83
+ return {
84
+ attributes: __assign({}, Object.keys(child).reduce(function (attributes, key) {
85
+ var _a;
86
+ return __assign(__assign({}, attributes), (_a = {}, _a[key] = decodeProperty(child[key]), _a));
87
+ }, {})),
88
+ };
89
+ })) || [];
90
+ return new Result({
91
+ id: rawResult.uid,
92
+ mappings: {
93
+ core: coreFieldValues,
94
+ },
95
+ attributes: attributes,
96
+ children: children,
97
+ });
98
+ };
99
+ transformSearchResponse.filters = function (response) {
100
+ var filterSummary = (response || {}).filterSummary || [];
101
+ return {
102
+ filters: filterSummary.map(function (filter) {
103
+ var value = filter.value;
104
+ var type = 'value';
105
+ if (typeof filter.value == 'object') {
106
+ (type = 'range'),
107
+ (value = {
108
+ low: +filter.value.rangeLow,
109
+ high: +filter.value.rangeHigh,
110
+ });
111
+ }
112
+ return {
113
+ type: type,
114
+ field: filter.field,
115
+ label: filter.filterValue,
116
+ value: value,
117
+ };
118
+ }),
119
+ };
120
+ };
121
+ transformSearchResponse.facets = function (response, request) {
122
+ if (request === void 0) { request = {}; }
123
+ var filters = request.filters || [];
124
+ var facets = (response || {}).facets || [];
125
+ return {
126
+ facets: facets.map(function (facet) {
127
+ var transformedFacet = {
128
+ field: facet.field,
129
+ type: 'value',
130
+ filtered: Boolean(facet.facet_active),
131
+ };
132
+ if (facet.step) {
133
+ transformedFacet = __assign(__assign({}, transformedFacet), { type: 'range', step: facet.step, range: {
134
+ low: facet.range[0] == '*' ? null : +facet.range[0],
135
+ high: facet.range[1] == '*' ? null : +facet.range[1],
136
+ } });
137
+ if (facet.active && facet.active.length > 1) {
138
+ transformedFacet.active = {
139
+ low: facet.active[0] == '*' ? null : +facet.active[0],
140
+ high: facet.active[1] == '*' ? null : +facet.active[1],
141
+ };
142
+ }
143
+ }
144
+ else if (facet.values instanceof Array) {
145
+ if (facet.type == 'hierarchy') {
146
+ transformedFacet.type = 'value';
147
+ transformedFacet.values = (facet.values || []).map(function (value) {
148
+ return {
149
+ filtered: Boolean(value.active),
150
+ value: value.value,
151
+ label: value.label,
152
+ count: value.count,
153
+ };
154
+ });
155
+ var filterSelected = filters.find(function (f) { return f.field == facet.field; });
156
+ var newValues = [];
157
+ if (filterSelected && !filterSelected.background) {
158
+ var valueLevels = filterSelected.value.split(facet.hierarchyDelimiter);
159
+ for (var i = valueLevels.length - 1; i >= 0; i--) {
160
+ var valueSplit = valueLevels.slice(0, i + 1);
161
+ var value = valueSplit.join(facet.hierarchyDelimiter);
162
+ newValues.unshift({
163
+ value: value,
164
+ filtered: value == filterSelected.value,
165
+ label: valueSplit[valueSplit.length - 1],
166
+ });
167
+ }
168
+ newValues.unshift({
169
+ value: null,
170
+ filtered: false,
171
+ label: 'View All',
172
+ });
173
+ }
174
+ transformedFacet.values = newValues.concat(transformedFacet.values);
175
+ }
176
+ else if (facet.values[0].type == 'value') {
177
+ transformedFacet.type = 'value';
178
+ transformedFacet.values = facet.values.map(function (value) {
179
+ return {
180
+ filtered: value.active,
181
+ value: value.value,
182
+ label: value.label,
183
+ count: value.count,
184
+ };
185
+ });
186
+ }
187
+ else if (facet.values[0].type == 'range') {
188
+ transformedFacet.type = 'range-buckets';
189
+ transformedFacet.values = facet.values.map(function (value) {
190
+ return {
191
+ filtered: value.active,
192
+ low: value.low == '*' ? null : +value.low,
193
+ high: value.high == '*' ? null : +value.high,
194
+ label: value.label,
195
+ count: value.count,
196
+ };
197
+ });
198
+ }
199
+ }
200
+ return transformedFacet;
201
+ }),
202
+ };
203
+ };
204
+ transformSearchResponse.sorting = function (response) {
205
+ var sorts = ((response || {}).sorting || {}).options || [];
206
+ var transformedSorting = sorts
207
+ .filter(function (sort) { return sort.active; })
208
+ .map(function (sort) {
209
+ return {
210
+ field: sort.field,
211
+ direction: sort.direction,
212
+ };
213
+ });
214
+ return {
215
+ sorting: transformedSorting,
216
+ };
217
+ };
218
+ transformSearchResponse.merchandising = function (response) {
219
+ var merchandising = (response || {}).merchandising || {};
220
+ if (merchandising.content && Array.isArray(merchandising.content) && !merchandising.content.length) {
221
+ merchandising.content = {};
222
+ }
223
+ return {
224
+ merchandising: merchandising,
225
+ };
226
+ };
227
+ transformSearchResponse.search = function (response, request) {
228
+ var didYouMean = ((response || {}).didYouMean || {}).query;
229
+ var originalQuery = ((request || {}).search || {}).originalQuery;
230
+ return {
231
+ search: {
232
+ query: (((request || {}).search || {}).query || {}).string,
233
+ didYouMean: didYouMean,
234
+ originalQuery: originalQuery,
235
+ },
236
+ };
237
+ };
238
+ // used for HTML entities decoding
239
+ function decodeProperty(encoded) {
240
+ if (Array.isArray(encoded)) {
241
+ return encoded.map(function (item) { return (0, htmlUnescape_1.htmlUnescape)(String(item)); });
242
+ }
243
+ else {
244
+ return (0, htmlUnescape_1.htmlUnescape)(String(encoded));
245
+ }
246
+ }
@@ -0,0 +1,29 @@
1
+ import { SuggestResponseModel } from '../apis';
2
+ export declare function transformSuggestResponse(response: SuggestResponseModel): any;
3
+ export declare namespace transformSuggestResponse {
4
+ var query: (response: SuggestResponseModel) => {
5
+ query?: undefined;
6
+ } | {
7
+ query: string;
8
+ };
9
+ var correctedQuery: (response: SuggestResponseModel) => {
10
+ correctedQuery?: undefined;
11
+ } | {
12
+ correctedQuery: string;
13
+ };
14
+ var suggested: (response: SuggestResponseModel) => {
15
+ suggested?: undefined;
16
+ } | {
17
+ suggested: {
18
+ text: string;
19
+ type: string;
20
+ source: string;
21
+ };
22
+ };
23
+ var alternatives: (response: SuggestResponseModel) => {
24
+ alternatives: {
25
+ text: string;
26
+ }[];
27
+ };
28
+ }
29
+ //# sourceMappingURL=suggestResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestResponse.d.ts","sourceRoot":"","sources":["../../../../src/Client/transforms/suggestResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,GAAG,CAO5E;yBAPe,wBAAwB"}
@@ -0,0 +1,53 @@
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.transformSuggestResponse = void 0;
15
+ function transformSuggestResponse(response) {
16
+ return __assign(__assign(__assign(__assign({}, transformSuggestResponse.query(response)), transformSuggestResponse.correctedQuery(response)), transformSuggestResponse.suggested(response)), transformSuggestResponse.alternatives(response));
17
+ }
18
+ exports.transformSuggestResponse = transformSuggestResponse;
19
+ transformSuggestResponse.query = function (response) {
20
+ if (!(response === null || response === void 0 ? void 0 : response.query)) {
21
+ return {};
22
+ }
23
+ return { query: response.query };
24
+ };
25
+ transformSuggestResponse.correctedQuery = function (response) {
26
+ if (typeof response != 'object' || !response['corrected-query']) {
27
+ return {};
28
+ }
29
+ return { correctedQuery: response['corrected-query'] };
30
+ };
31
+ transformSuggestResponse.suggested = function (response) {
32
+ var _a, _b, _c;
33
+ if (typeof response != 'object' || !response.suggested || typeof response.suggested != 'object') {
34
+ return {};
35
+ }
36
+ return {
37
+ suggested: {
38
+ text: (_a = response.suggested) === null || _a === void 0 ? void 0 : _a.text,
39
+ type: (_b = response.suggested) === null || _b === void 0 ? void 0 : _b.type,
40
+ source: (_c = response.suggested) === null || _c === void 0 ? void 0 : _c.source,
41
+ },
42
+ };
43
+ };
44
+ transformSuggestResponse.alternatives = function (response) {
45
+ var alternatives = (response === null || response === void 0 ? void 0 : response.alternatives) || [];
46
+ return {
47
+ alternatives: alternatives.map(function (alternative) {
48
+ return {
49
+ text: alternative.text,
50
+ };
51
+ }),
52
+ };
53
+ };
@@ -0,0 +1,3 @@
1
+ import { ParameterObject } from '../../types';
2
+ export declare function charsParams(params: ParameterObject): number;
3
+ //# sourceMappingURL=charsParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charsParams.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/charsParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAqB3D"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.charsParams = void 0;
4
+ function charsParams(params) {
5
+ if (typeof params != 'object') {
6
+ throw new Error('function requires an object');
7
+ }
8
+ var count = Object.keys(params).reduce(function (count, key) {
9
+ var keyLength = key.length;
10
+ var value = params[key];
11
+ if (Array.isArray(value)) {
12
+ return (count +
13
+ value.reduce(function (length, val) {
14
+ return length + keyLength + 1 + ('' + val).length;
15
+ }, 0));
16
+ }
17
+ else {
18
+ return count + keyLength + 1 + ('' + value).length;
19
+ }
20
+ }, 1);
21
+ return count;
22
+ }
23
+ exports.charsParams = charsParams;
@@ -0,0 +1,2 @@
1
+ export declare const fibonacci: (num: number) => number;
2
+ //# sourceMappingURL=fibonacci.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fibonacci.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/fibonacci.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAS,MAAM,KAAG,MAavC,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fibonacci = void 0;
4
+ var fibonacci = function (num) {
5
+ var a = 1, b = 0, temp;
6
+ while (num >= 0) {
7
+ temp = a;
8
+ a = a + b;
9
+ b = temp;
10
+ num--;
11
+ }
12
+ return b;
13
+ };
14
+ exports.fibonacci = fibonacci;
@@ -0,0 +1,3 @@
1
+ import { ParameterObject } from '../../types';
2
+ export declare function hashParams(params: ParameterObject): string;
3
+ //# sourceMappingURL=hashParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashParams.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/hashParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAM1D"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hashParams = void 0;
4
+ function hashParams(params) {
5
+ if (typeof params != 'object') {
6
+ throw new Error('function requires an object');
7
+ }
8
+ return JSON.stringify(params);
9
+ }
10
+ exports.hashParams = hashParams;
@@ -0,0 +1,2 @@
1
+ export declare function htmlUnescape(value: string): string;
2
+ //# sourceMappingURL=htmlUnescape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlUnescape.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/htmlUnescape.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,UAOzC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.htmlUnescape = void 0;
4
+ function htmlUnescape(value) {
5
+ return value
6
+ .replace(/&gt;/g, '>')
7
+ .replace(/&lt;/g, '<')
8
+ .replace(/&#0?39;/g, "'")
9
+ .replace(/&quot;/g, '"')
10
+ .replace(/&amp;/g, '&');
11
+ }
12
+ exports.htmlUnescape = htmlUnescape;
@@ -0,0 +1,2 @@
1
+ export * from './mergeParams';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./mergeParams"), exports);
@@ -0,0 +1,2 @@
1
+ export declare function mergeParams(...args: any[]): any;
2
+ //# sourceMappingURL=mergeParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeParams.d.ts","sourceRoot":"","sources":["../../../../src/Client/utils/mergeParams.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,GAAG,IAAI,OAAA,GAAG,GAAG,CAYxC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeParams = void 0;
4
+ function mergeParams() {
5
+ var args = [];
6
+ for (var _i = 0; _i < arguments.length; _i++) {
7
+ args[_i] = arguments[_i];
8
+ }
9
+ var ret = {};
10
+ args.reverse().forEach(function (params) {
11
+ Object.keys(params).forEach(function (key) {
12
+ var values = params[key] instanceof Array ? params[key] : [params[key]];
13
+ ret[key] = (ret[key] || []).concat(values);
14
+ });
15
+ });
16
+ return ret;
17
+ }
18
+ exports.mergeParams = mergeParams;