@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,249 @@
1
+ import { htmlUnescape } from '../utils/htmlUnescape';
2
+ // TODO: Add all core fields
3
+ const CORE_FIELDS = [
4
+ 'uid',
5
+ 'sku',
6
+ 'name',
7
+ 'url',
8
+ 'addToCartUrl',
9
+ 'price',
10
+ 'msrp',
11
+ 'imageUrl',
12
+ 'secureImageUrl',
13
+ 'thumbnailImageUrl',
14
+ 'secureThumbnailImageUrl',
15
+ 'rating',
16
+ 'ratingCount',
17
+ 'description',
18
+ 'stockMessage',
19
+ 'brand',
20
+ 'popularity',
21
+ 'caption',
22
+ ];
23
+ class Result {
24
+ constructor(result) {
25
+ Object.assign(this, result);
26
+ }
27
+ }
28
+ export function transformSearchResponse(response, request) {
29
+ return {
30
+ ...transformSearchResponse.pagination(response),
31
+ ...transformSearchResponse.results(response),
32
+ ...transformSearchResponse.filters(response),
33
+ ...transformSearchResponse.facets(response, request),
34
+ ...transformSearchResponse.sorting(response),
35
+ ...transformSearchResponse.merchandising(response),
36
+ ...transformSearchResponse.search(response, request),
37
+ };
38
+ }
39
+ transformSearchResponse.pagination = (response) => {
40
+ const pagination = (response || {}).pagination || {};
41
+ return {
42
+ pagination: {
43
+ totalResults: pagination.totalResults,
44
+ page: pagination.currentPage,
45
+ pageSize: pagination.perPage,
46
+ defaultPageSize: pagination.defaultPerPage,
47
+ totalPages: pagination.totalPages,
48
+ },
49
+ };
50
+ };
51
+ transformSearchResponse.results = (response) => {
52
+ const results = (response || {}).results || [];
53
+ return { results: results.map(transformSearchResponse.result) };
54
+ };
55
+ transformSearchResponse.result = (rawResult) => {
56
+ const coreFieldValues = CORE_FIELDS.reduce((coreFields, key) => {
57
+ if (typeof rawResult[key] != 'undefined') {
58
+ return {
59
+ ...coreFields,
60
+ [key]: decodeProperty(rawResult[key]),
61
+ };
62
+ }
63
+ return coreFields;
64
+ }, {});
65
+ if (coreFieldValues.price)
66
+ coreFieldValues.price = +coreFieldValues.price;
67
+ if (coreFieldValues.msrp)
68
+ coreFieldValues.msrp = +coreFieldValues.msrp;
69
+ const attributes = Object.keys(rawResult)
70
+ .filter((k) => CORE_FIELDS.indexOf(k) == -1)
71
+ .reduce((attributes, key) => {
72
+ return {
73
+ ...attributes,
74
+ [key]: decodeProperty(rawResult[key]),
75
+ };
76
+ }, {});
77
+ const children = rawResult?.children?.map((child) => {
78
+ return {
79
+ attributes: {
80
+ ...Object.keys(child).reduce((attributes, key) => {
81
+ return {
82
+ ...attributes,
83
+ [key]: decodeProperty(child[key]),
84
+ };
85
+ }, {}),
86
+ },
87
+ };
88
+ }) || [];
89
+ return new Result({
90
+ id: rawResult.uid,
91
+ mappings: {
92
+ core: coreFieldValues,
93
+ },
94
+ attributes,
95
+ children,
96
+ });
97
+ };
98
+ transformSearchResponse.filters = (response) => {
99
+ const filterSummary = (response || {}).filterSummary || [];
100
+ return {
101
+ filters: filterSummary.map((filter) => {
102
+ let value = filter.value;
103
+ let type = 'value';
104
+ if (typeof filter.value == 'object') {
105
+ (type = 'range'),
106
+ (value = {
107
+ low: +filter.value.rangeLow,
108
+ high: +filter.value.rangeHigh,
109
+ });
110
+ }
111
+ return {
112
+ type,
113
+ field: filter.field,
114
+ label: filter.filterValue,
115
+ value,
116
+ };
117
+ }),
118
+ };
119
+ };
120
+ transformSearchResponse.facets = (response, request = {}) => {
121
+ const filters = request.filters || [];
122
+ const facets = (response || {}).facets || [];
123
+ return {
124
+ facets: facets.map((facet) => {
125
+ let transformedFacet = {
126
+ field: facet.field,
127
+ type: 'value',
128
+ filtered: Boolean(facet.facet_active),
129
+ };
130
+ if (facet.step) {
131
+ transformedFacet = {
132
+ ...transformedFacet,
133
+ type: 'range',
134
+ step: facet.step,
135
+ range: {
136
+ low: facet.range[0] == '*' ? null : +facet.range[0],
137
+ high: facet.range[1] == '*' ? null : +facet.range[1],
138
+ },
139
+ };
140
+ if (facet.active && facet.active.length > 1) {
141
+ transformedFacet.active = {
142
+ low: facet.active[0] == '*' ? null : +facet.active[0],
143
+ high: facet.active[1] == '*' ? null : +facet.active[1],
144
+ };
145
+ }
146
+ }
147
+ else if (facet.values instanceof Array) {
148
+ if (facet.type == 'hierarchy') {
149
+ transformedFacet.type = 'value';
150
+ transformedFacet.values = (facet.values || []).map((value) => {
151
+ return {
152
+ filtered: Boolean(value.active),
153
+ value: value.value,
154
+ label: value.label,
155
+ count: value.count,
156
+ };
157
+ });
158
+ const filterSelected = filters.find((f) => f.field == facet.field);
159
+ const newValues = [];
160
+ if (filterSelected && !filterSelected.background) {
161
+ const valueLevels = filterSelected.value.split(facet.hierarchyDelimiter);
162
+ for (let i = valueLevels.length - 1; i >= 0; i--) {
163
+ const valueSplit = valueLevels.slice(0, i + 1);
164
+ const value = valueSplit.join(facet.hierarchyDelimiter);
165
+ newValues.unshift({
166
+ value,
167
+ filtered: value == filterSelected.value,
168
+ label: valueSplit[valueSplit.length - 1],
169
+ });
170
+ }
171
+ newValues.unshift({
172
+ value: null,
173
+ filtered: false,
174
+ label: 'View All',
175
+ });
176
+ }
177
+ transformedFacet.values = newValues.concat(transformedFacet.values);
178
+ }
179
+ else if (facet.values[0].type == 'value') {
180
+ transformedFacet.type = 'value';
181
+ transformedFacet.values = facet.values.map((value) => {
182
+ return {
183
+ filtered: value.active,
184
+ value: value.value,
185
+ label: value.label,
186
+ count: value.count,
187
+ };
188
+ });
189
+ }
190
+ else if (facet.values[0].type == 'range') {
191
+ transformedFacet.type = 'range-buckets';
192
+ transformedFacet.values = facet.values.map((value) => {
193
+ return {
194
+ filtered: value.active,
195
+ low: value.low == '*' ? null : +value.low,
196
+ high: value.high == '*' ? null : +value.high,
197
+ label: value.label,
198
+ count: value.count,
199
+ };
200
+ });
201
+ }
202
+ }
203
+ return transformedFacet;
204
+ }),
205
+ };
206
+ };
207
+ transformSearchResponse.sorting = (response) => {
208
+ const sorts = ((response || {}).sorting || {}).options || [];
209
+ const transformedSorting = sorts
210
+ .filter((sort) => sort.active)
211
+ .map((sort) => {
212
+ return {
213
+ field: sort.field,
214
+ direction: sort.direction,
215
+ };
216
+ });
217
+ return {
218
+ sorting: transformedSorting,
219
+ };
220
+ };
221
+ transformSearchResponse.merchandising = (response) => {
222
+ const merchandising = (response || {}).merchandising || {};
223
+ if (merchandising.content && Array.isArray(merchandising.content) && !merchandising.content.length) {
224
+ merchandising.content = {};
225
+ }
226
+ return {
227
+ merchandising,
228
+ };
229
+ };
230
+ transformSearchResponse.search = (response, request) => {
231
+ const didYouMean = ((response || {}).didYouMean || {}).query;
232
+ const originalQuery = ((request || {}).search || {}).originalQuery;
233
+ return {
234
+ search: {
235
+ query: (((request || {}).search || {}).query || {}).string,
236
+ didYouMean,
237
+ originalQuery,
238
+ },
239
+ };
240
+ };
241
+ // used for HTML entities decoding
242
+ function decodeProperty(encoded) {
243
+ if (Array.isArray(encoded)) {
244
+ return encoded.map((item) => htmlUnescape(String(item)));
245
+ }
246
+ else {
247
+ return htmlUnescape(String(encoded));
248
+ }
249
+ }
@@ -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,42 @@
1
+ export function transformSuggestResponse(response) {
2
+ return {
3
+ ...transformSuggestResponse.query(response),
4
+ ...transformSuggestResponse.correctedQuery(response),
5
+ ...transformSuggestResponse.suggested(response),
6
+ ...transformSuggestResponse.alternatives(response),
7
+ };
8
+ }
9
+ transformSuggestResponse.query = (response) => {
10
+ if (!response?.query) {
11
+ return {};
12
+ }
13
+ return { query: response.query };
14
+ };
15
+ transformSuggestResponse.correctedQuery = (response) => {
16
+ if (typeof response != 'object' || !response['corrected-query']) {
17
+ return {};
18
+ }
19
+ return { correctedQuery: response['corrected-query'] };
20
+ };
21
+ transformSuggestResponse.suggested = (response) => {
22
+ if (typeof response != 'object' || !response.suggested || typeof response.suggested != 'object') {
23
+ return {};
24
+ }
25
+ return {
26
+ suggested: {
27
+ text: response.suggested?.text,
28
+ type: response.suggested?.type,
29
+ source: response.suggested?.source,
30
+ },
31
+ };
32
+ };
33
+ transformSuggestResponse.alternatives = (response) => {
34
+ const alternatives = response?.alternatives || [];
35
+ return {
36
+ alternatives: alternatives.map((alternative) => {
37
+ return {
38
+ text: alternative.text,
39
+ };
40
+ }),
41
+ };
42
+ };
@@ -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,19 @@
1
+ export function charsParams(params) {
2
+ if (typeof params != 'object') {
3
+ throw new Error('function requires an object');
4
+ }
5
+ const count = Object.keys(params).reduce((count, key) => {
6
+ const keyLength = key.length;
7
+ const value = params[key];
8
+ if (Array.isArray(value)) {
9
+ return (count +
10
+ value.reduce((length, val) => {
11
+ return length + keyLength + 1 + ('' + val).length;
12
+ }, 0));
13
+ }
14
+ else {
15
+ return count + keyLength + 1 + ('' + value).length;
16
+ }
17
+ }, 1);
18
+ return count;
19
+ }
@@ -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,10 @@
1
+ export const fibonacci = (num) => {
2
+ let a = 1, b = 0, temp;
3
+ while (num >= 0) {
4
+ temp = a;
5
+ a = a + b;
6
+ b = temp;
7
+ num--;
8
+ }
9
+ return b;
10
+ };
@@ -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,6 @@
1
+ export function hashParams(params) {
2
+ if (typeof params != 'object') {
3
+ throw new Error('function requires an object');
4
+ }
5
+ return JSON.stringify(params);
6
+ }
@@ -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,8 @@
1
+ export function htmlUnescape(value) {
2
+ return value
3
+ .replace(/>/g, '>')
4
+ .replace(/&lt;/g, '<')
5
+ .replace(/&#0?39;/g, "'")
6
+ .replace(/&quot;/g, '"')
7
+ .replace(/&amp;/g, '&');
8
+ }
@@ -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 @@
1
+ export * from './mergeParams';
@@ -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,10 @@
1
+ export function mergeParams(...args) {
2
+ const ret = {};
3
+ args.reverse().forEach((params) => {
4
+ Object.keys(params).forEach((key) => {
5
+ const values = params[key] instanceof Array ? params[key] : [params[key]];
6
+ ret[key] = (ret[key] || []).concat(values);
7
+ });
8
+ });
9
+ return ret;
10
+ }
@@ -0,0 +1,3 @@
1
+ export * from './Client/Client';
2
+ export { ClientGlobals, ClientConfig } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './Client/Client';
@@ -0,0 +1,45 @@
1
+ export declare type ClientConfig = {
2
+ meta?: {
3
+ api?: SnapApiConfig;
4
+ cache?: CacheConfig;
5
+ };
6
+ search?: {
7
+ api?: SnapApiConfig;
8
+ cache?: CacheConfig;
9
+ };
10
+ autocomplete?: {
11
+ api?: SnapApiConfig;
12
+ cache?: CacheConfig;
13
+ };
14
+ recommend?: {
15
+ api?: SnapApiConfig;
16
+ cache?: CacheConfig;
17
+ };
18
+ suggest?: {
19
+ api?: SnapApiConfig;
20
+ cache?: CacheConfig;
21
+ };
22
+ };
23
+ export declare type CacheConfig = {
24
+ enabled?: boolean;
25
+ ttl?: number;
26
+ maxSize?: number;
27
+ purgeable?: boolean;
28
+ };
29
+ export declare type CacheEntry = {
30
+ value: Response;
31
+ expires?: number;
32
+ purgeable?: boolean;
33
+ };
34
+ export declare type Cache = {
35
+ [key: string]: CacheEntry;
36
+ };
37
+ export declare type SnapApiConfig = {
38
+ origin?: string;
39
+ };
40
+ export declare type ClientGlobals = {
41
+ siteId: string;
42
+ [configurationPath: string]: any;
43
+ };
44
+ export declare type ParameterObject = Record<string, boolean | string | string[] | number | number[]>;
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY,GAAG;IAC1B,IAAI,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE;QACd,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACX,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,aAAa,CAAC;QACpB,KAAK,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;CACF,CAAC;AAEF,oBAAY,WAAW,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,UAAU,GAAG;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,KAAK,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;CAC1B,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,iBAAiB,EAAE,MAAM,GAAG,GAAG,CAAC;CACjC,CAAC;AAEF,oBAAY,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@searchspring/snap-client",
3
+ "version": "0.20.0",
4
+ "description": "Snap Client",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "author": "Searchspring",
8
+ "license": "MIT",
9
+ "repository": "https://github.com/searchspring/snap",
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "scripts": {
14
+ "build": "rm -rf ./dist && tsc && tsc -p tsconfig.cjs.json",
15
+ "build:docs": "typedoc --out docs src/index.ts",
16
+ "dev": "tsc --watch",
17
+ "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx}'",
18
+ "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
19
+ "test": "jest",
20
+ "test:watch": "jest --watch"
21
+ },
22
+ "sideEffects": false,
23
+ "files": [
24
+ "dist/**/*"
25
+ ],
26
+ "gitHead": "122405b27b497c7bb6a189c30535fdc197bc3ef0"
27
+ }