@searchspring/snap-controller 0.37.0 → 0.38.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.
- package/dist/cjs/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteController.js +8 -6
- package/dist/cjs/Search/SearchController.d.ts.map +1 -1
- package/dist/cjs/Search/SearchController.js +131 -73
- package/dist/esm/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteController.js +3 -1
- package/dist/esm/Search/SearchController.d.ts.map +1 -1
- package/dist/esm/Search/SearchController.js +86 -23
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AAuB/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,aAAa,KAAG,IAAI;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE3B,cAAc,QAAa,QAAQ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AAuB/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,aAAa,KAAG,IAAI;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
|
|
@@ -328,9 +328,9 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
328
328
|
};
|
|
329
329
|
_this.searchTrending = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
330
330
|
var terms, storedTerms, trendingParams, trendingProfile;
|
|
331
|
-
var _a, _b;
|
|
332
|
-
return __generator(this, function (
|
|
333
|
-
switch (
|
|
331
|
+
var _a, _b, _c, _d;
|
|
332
|
+
return __generator(this, function (_e) {
|
|
333
|
+
switch (_e.label) {
|
|
334
334
|
case 0:
|
|
335
335
|
storedTerms = this.storage.get('terms');
|
|
336
336
|
if (!storedTerms) return [3 /*break*/, 1];
|
|
@@ -344,11 +344,13 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
344
344
|
trendingProfile = this.profiler.create({ type: 'event', name: 'trending', context: trendingParams }).start();
|
|
345
345
|
return [4 /*yield*/, this.client.trending(trendingParams)];
|
|
346
346
|
case 2:
|
|
347
|
-
terms =
|
|
347
|
+
terms = _e.sent();
|
|
348
348
|
trendingProfile.stop();
|
|
349
349
|
this.log.profile(trendingProfile);
|
|
350
|
-
|
|
351
|
-
|
|
350
|
+
if ((_d = (_c = terms === null || terms === void 0 ? void 0 : terms.trending) === null || _c === void 0 ? void 0 : _c.queries) === null || _d === void 0 ? void 0 : _d.length) {
|
|
351
|
+
this.storage.set('terms', JSON.stringify(terms));
|
|
352
|
+
}
|
|
353
|
+
_e.label = 3;
|
|
352
354
|
case 3:
|
|
353
355
|
this.store.updateTrendingTerms(terms);
|
|
354
356
|
return [2 /*return*/];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAqB7I,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;gBAG9D,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA2F3B,KAAK,EAAE,kBAAkB,CA+BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6N9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
|
|
@@ -93,6 +93,7 @@ var defaultConfig = {
|
|
|
93
93
|
trim: true,
|
|
94
94
|
pinFiltered: true,
|
|
95
95
|
storeRange: true,
|
|
96
|
+
autoOpenActive: true,
|
|
96
97
|
},
|
|
97
98
|
},
|
|
98
99
|
};
|
|
@@ -134,33 +135,34 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
134
135
|
},
|
|
135
136
|
};
|
|
136
137
|
_this.search = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
137
|
-
var params, err_1, stringyParams, prevStringyParams, preventBackfill, dontBackfill,
|
|
138
|
-
var
|
|
139
|
-
|
|
140
|
-
|
|
138
|
+
var params, err_1, stringyParams, prevStringyParams, searchProfile, meta_1, response_1, preventBackfill, dontBackfill, previousResults, backfills, pageSize, pagesNeeded1, totalResultsNeeded, apiLimit, backfillParams, pagesNeeded, lastPageCount, i, backfillParams, backfillResults_1, backfillResponses, afterSearchProfile, err_2, afterStoreProfile, err_3, err_4;
|
|
139
|
+
var _a, _b;
|
|
140
|
+
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
141
|
+
return __generator(this, function (_u) {
|
|
142
|
+
switch (_u.label) {
|
|
141
143
|
case 0:
|
|
142
144
|
if (!!this.initialized) return [3 /*break*/, 2];
|
|
143
145
|
return [4 /*yield*/, this.init()];
|
|
144
146
|
case 1:
|
|
145
|
-
|
|
146
|
-
|
|
147
|
+
_u.sent();
|
|
148
|
+
_u.label = 2;
|
|
147
149
|
case 2:
|
|
148
150
|
params = this.params;
|
|
149
|
-
|
|
151
|
+
_u.label = 3;
|
|
150
152
|
case 3:
|
|
151
|
-
|
|
152
|
-
|
|
153
|
+
_u.trys.push([3, 23, , 24]);
|
|
154
|
+
_u.label = 4;
|
|
153
155
|
case 4:
|
|
154
|
-
|
|
156
|
+
_u.trys.push([4, 6, , 7]);
|
|
155
157
|
return [4 /*yield*/, this.eventManager.fire('beforeSearch', {
|
|
156
158
|
controller: this,
|
|
157
159
|
request: params,
|
|
158
160
|
})];
|
|
159
161
|
case 5:
|
|
160
|
-
|
|
162
|
+
_u.sent();
|
|
161
163
|
return [3 /*break*/, 7];
|
|
162
164
|
case 6:
|
|
163
|
-
err_1 =
|
|
165
|
+
err_1 = _u.sent();
|
|
164
166
|
if ((err_1 === null || err_1 === void 0 ? void 0 : err_1.message) == 'cancelled') {
|
|
165
167
|
this.log.warn("'beforeSearch' middleware cancelled");
|
|
166
168
|
return [2 /*return*/];
|
|
@@ -177,64 +179,120 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
177
179
|
// no param change - not searching
|
|
178
180
|
return [2 /*return*/];
|
|
179
181
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
182
|
+
searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
|
|
183
|
+
if (!(((_c = this.config.settings) === null || _c === void 0 ? void 0 : _c.infinite) && ((_d = params.pagination) === null || _d === void 0 ? void 0 : _d.page) > 1)) return [3 /*break*/, 12];
|
|
184
|
+
preventBackfill = ((_e = this.config.settings.infinite) === null || _e === void 0 ? void 0 : _e.backfill) && !this.store.results.length && ((_f = params.pagination) === null || _f === void 0 ? void 0 : _f.page) > this.config.settings.infinite.backfill;
|
|
185
|
+
dontBackfill = !((_g = this.config.settings.infinite) === null || _g === void 0 ? void 0 : _g.backfill) && !this.store.results.length && ((_h = params.pagination) === null || _h === void 0 ? void 0 : _h.page) > 1;
|
|
186
|
+
//if the page is higher than the backfill setting redirect back to page 1
|
|
187
|
+
if (preventBackfill || dontBackfill) {
|
|
188
|
+
this.storage.set('scrollMap', {});
|
|
189
|
+
this.urlManager.set('page', 1).go();
|
|
190
|
+
return [2 /*return*/];
|
|
191
|
+
}
|
|
192
|
+
previousResults = this.previousResults;
|
|
193
|
+
backfills = [];
|
|
194
|
+
if (((_j = this.config.settings) === null || _j === void 0 ? void 0 : _j.infinite.backfill) && !previousResults.length) {
|
|
195
|
+
pageSize = ((_k = params.pagination) === null || _k === void 0 ? void 0 : _k.pageSize) || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
|
|
196
|
+
pagesNeeded1 = ((_l = params.pagination) === null || _l === void 0 ? void 0 : _l.page) && ((_m = params.pagination) === null || _m === void 0 ? void 0 : _m.page) > ((_o = this.config.settings) === null || _o === void 0 ? void 0 : _o.infinite.backfill)
|
|
197
|
+
? (_p = this.config.settings) === null || _p === void 0 ? void 0 : _p.infinite.backfill
|
|
198
|
+
: (_q = params.pagination) === null || _q === void 0 ? void 0 : _q.page;
|
|
199
|
+
totalResultsNeeded = pageSize * (pagesNeeded1 || 1);
|
|
200
|
+
apiLimit = 500;
|
|
201
|
+
// our search api is limited to a certain amount per request.
|
|
202
|
+
//so we will need to make more than one request if totalresultsneeded is greater.
|
|
203
|
+
if (totalResultsNeeded < apiLimit) {
|
|
204
|
+
backfillParams = (0, deepmerge_1.default)(__assign({}, params), { pagination: { pageSize: totalResultsNeeded, page: 1 } });
|
|
205
|
+
backfills.push(this.client.search(backfillParams));
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
pagesNeeded = Math.ceil(totalResultsNeeded / apiLimit);
|
|
209
|
+
lastPageCount = apiLimit - (pagesNeeded * apiLimit - totalResultsNeeded);
|
|
210
|
+
for (i = 1; i <= pagesNeeded; i++) {
|
|
211
|
+
backfillParams = (0, deepmerge_1.default)(__assign({}, params), { pagination: { pageSize: i < pagesNeeded ? apiLimit : lastPageCount, page: i } });
|
|
212
|
+
backfills.push(this.client.search(backfillParams));
|
|
213
|
+
}
|
|
187
214
|
}
|
|
188
215
|
}
|
|
189
|
-
|
|
190
|
-
|
|
216
|
+
if (!(backfills && backfills.length)) return [3 /*break*/, 9];
|
|
217
|
+
backfillResults_1 = [];
|
|
218
|
+
return [4 /*yield*/, Promise.all(backfills)];
|
|
191
219
|
case 8:
|
|
192
|
-
|
|
220
|
+
backfillResponses = _u.sent();
|
|
221
|
+
backfillResponses.map(function (_a) {
|
|
222
|
+
var Bmeta = _a[0], Bresponse = _a[1];
|
|
223
|
+
if (!meta_1) {
|
|
224
|
+
meta_1 = Bmeta;
|
|
225
|
+
}
|
|
226
|
+
if (!response_1) {
|
|
227
|
+
response_1 = Bresponse;
|
|
228
|
+
backfillResults_1 = response_1.results;
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
backfillResults_1 = backfillResults_1.concat(Bresponse.results);
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
if (!response_1.meta) {
|
|
235
|
+
/**
|
|
236
|
+
* MockClient will overwrite the client search() method and use
|
|
237
|
+
* SearchData to return mock data which already contains meta data
|
|
238
|
+
*/
|
|
239
|
+
// @ts-ignore
|
|
240
|
+
response_1.meta = meta_1;
|
|
241
|
+
}
|
|
242
|
+
//we need to overwrite the pagination params so the ui doesnt get confused.
|
|
243
|
+
response_1.pagination.pageSize = ((_r = params.pagination) === null || _r === void 0 ? void 0 : _r.pageSize) || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
|
|
244
|
+
response_1.pagination.page = (_s = params.pagination) === null || _s === void 0 ? void 0 : _s.page;
|
|
245
|
+
//set the response results after all backfill promises are resolved.
|
|
246
|
+
response_1.results = backfillResults_1;
|
|
247
|
+
return [3 /*break*/, 11];
|
|
248
|
+
case 9: return [4 /*yield*/, this.client.search(params)];
|
|
249
|
+
case 10:
|
|
250
|
+
// infinite with no backfills.
|
|
251
|
+
_a = _u.sent(), meta_1 = _a[0], response_1 = _a[1];
|
|
193
252
|
// @ts-ignore
|
|
194
|
-
if (!
|
|
253
|
+
if (!response_1.meta) {
|
|
195
254
|
/**
|
|
196
255
|
* MockClient will overwrite the client search() method and use
|
|
197
256
|
* SearchData to return mock data which already contains meta data
|
|
198
257
|
*/
|
|
199
258
|
// @ts-ignore
|
|
200
|
-
|
|
259
|
+
response_1.meta = meta_1;
|
|
201
260
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
261
|
+
//append new results to previous results
|
|
262
|
+
response_1.results = __spreadArray(__spreadArray([], previousResults, true), (response_1.results || []), true);
|
|
263
|
+
_u.label = 11;
|
|
264
|
+
case 11: return [3 /*break*/, 14];
|
|
265
|
+
case 12: return [4 /*yield*/, this.client.search(params)];
|
|
266
|
+
case 13:
|
|
267
|
+
//standard.
|
|
268
|
+
_b = _u.sent(), meta_1 = _b[0], response_1 = _b[1];
|
|
269
|
+
// @ts-ignore
|
|
270
|
+
if (!response_1.meta) {
|
|
271
|
+
/**
|
|
272
|
+
* MockClient will overwrite the client search() method and use
|
|
273
|
+
* SearchData to return mock data which already contains meta data
|
|
274
|
+
*/
|
|
275
|
+
// @ts-ignore
|
|
276
|
+
response_1.meta = meta_1;
|
|
209
277
|
}
|
|
210
|
-
|
|
211
|
-
case
|
|
212
|
-
backfillResponses = _m.sent();
|
|
213
|
-
backfillResponses.map(function (_a) {
|
|
214
|
-
var meta = _a[0], data = _a[1];
|
|
215
|
-
previousResults_1 = previousResults_1.concat(data.results);
|
|
216
|
-
});
|
|
217
|
-
_m.label = 10;
|
|
218
|
-
case 10:
|
|
219
|
-
response.results = __spreadArray(__spreadArray([], previousResults_1, true), (response.results || []), true);
|
|
220
|
-
_m.label = 11;
|
|
221
|
-
case 11:
|
|
278
|
+
_u.label = 14;
|
|
279
|
+
case 14:
|
|
222
280
|
searchProfile.stop();
|
|
223
281
|
this.log.profile(searchProfile);
|
|
224
282
|
afterSearchProfile = this.profiler.create({ type: 'event', name: 'afterSearch', context: params }).start();
|
|
225
|
-
|
|
226
|
-
case
|
|
227
|
-
|
|
283
|
+
_u.label = 15;
|
|
284
|
+
case 15:
|
|
285
|
+
_u.trys.push([15, 17, , 18]);
|
|
228
286
|
return [4 /*yield*/, this.eventManager.fire('afterSearch', {
|
|
229
287
|
controller: this,
|
|
230
288
|
request: params,
|
|
231
|
-
response:
|
|
289
|
+
response: response_1,
|
|
232
290
|
})];
|
|
233
|
-
case
|
|
234
|
-
|
|
235
|
-
return [3 /*break*/,
|
|
236
|
-
case
|
|
237
|
-
err_2 =
|
|
291
|
+
case 16:
|
|
292
|
+
_u.sent();
|
|
293
|
+
return [3 /*break*/, 18];
|
|
294
|
+
case 17:
|
|
295
|
+
err_2 = _u.sent();
|
|
238
296
|
if ((err_2 === null || err_2 === void 0 ? void 0 : err_2.message) == 'cancelled') {
|
|
239
297
|
this.log.warn("'afterSearch' middleware cancelled");
|
|
240
298
|
afterSearchProfile.stop();
|
|
@@ -244,29 +302,29 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
244
302
|
this.log.error("error in 'afterSearch' middleware");
|
|
245
303
|
throw err_2;
|
|
246
304
|
}
|
|
247
|
-
return [3 /*break*/,
|
|
248
|
-
case
|
|
305
|
+
return [3 /*break*/, 18];
|
|
306
|
+
case 18:
|
|
249
307
|
afterSearchProfile.stop();
|
|
250
308
|
this.log.profile(afterSearchProfile);
|
|
251
|
-
if ((
|
|
252
|
-
this.previousResults = JSON.parse(JSON.stringify(
|
|
309
|
+
if ((_t = this.config.settings) === null || _t === void 0 ? void 0 : _t.infinite) {
|
|
310
|
+
this.previousResults = JSON.parse(JSON.stringify(response_1.results));
|
|
253
311
|
}
|
|
254
312
|
// update the store
|
|
255
|
-
this.store.update(
|
|
313
|
+
this.store.update(response_1);
|
|
256
314
|
afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
|
|
257
|
-
|
|
258
|
-
case
|
|
259
|
-
|
|
315
|
+
_u.label = 19;
|
|
316
|
+
case 19:
|
|
317
|
+
_u.trys.push([19, 21, , 22]);
|
|
260
318
|
return [4 /*yield*/, this.eventManager.fire('afterStore', {
|
|
261
319
|
controller: this,
|
|
262
320
|
request: params,
|
|
263
|
-
response:
|
|
321
|
+
response: response_1,
|
|
264
322
|
})];
|
|
265
|
-
case
|
|
266
|
-
|
|
267
|
-
return [3 /*break*/,
|
|
268
|
-
case
|
|
269
|
-
err_3 =
|
|
323
|
+
case 20:
|
|
324
|
+
_u.sent();
|
|
325
|
+
return [3 /*break*/, 22];
|
|
326
|
+
case 21:
|
|
327
|
+
err_3 = _u.sent();
|
|
270
328
|
if ((err_3 === null || err_3 === void 0 ? void 0 : err_3.message) == 'cancelled') {
|
|
271
329
|
this.log.warn("'afterStore' middleware cancelled");
|
|
272
330
|
afterStoreProfile.stop();
|
|
@@ -276,13 +334,13 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
276
334
|
this.log.error("error in 'afterStore' middleware");
|
|
277
335
|
throw err_3;
|
|
278
336
|
}
|
|
279
|
-
return [3 /*break*/,
|
|
280
|
-
case
|
|
337
|
+
return [3 /*break*/, 22];
|
|
338
|
+
case 22:
|
|
281
339
|
afterStoreProfile.stop();
|
|
282
340
|
this.log.profile(afterStoreProfile);
|
|
283
|
-
return [3 /*break*/,
|
|
284
|
-
case
|
|
285
|
-
err_4 =
|
|
341
|
+
return [3 /*break*/, 24];
|
|
342
|
+
case 23:
|
|
343
|
+
err_4 = _u.sent();
|
|
286
344
|
if (err_4) {
|
|
287
345
|
switch (err_4) {
|
|
288
346
|
case 429:
|
|
@@ -308,8 +366,8 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
308
366
|
this.store.loading = false;
|
|
309
367
|
this.handleError(err_4);
|
|
310
368
|
}
|
|
311
|
-
return [3 /*break*/,
|
|
312
|
-
case
|
|
369
|
+
return [3 /*break*/, 24];
|
|
370
|
+
case 24: return [2 /*return*/];
|
|
313
371
|
}
|
|
314
372
|
});
|
|
315
373
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AAuB/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,aAAa,KAAG,IAAI;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE3B,cAAc,QAAa,QAAQ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AAuB/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,aAAa,KAAG,IAAI;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
|
|
@@ -228,7 +228,9 @@ export class AutocompleteController extends AbstractController {
|
|
|
228
228
|
terms = await this.client.trending(trendingParams);
|
|
229
229
|
trendingProfile.stop();
|
|
230
230
|
this.log.profile(trendingProfile);
|
|
231
|
-
|
|
231
|
+
if (terms?.trending?.queries?.length) {
|
|
232
|
+
this.storage.set('terms', JSON.stringify(terms));
|
|
233
|
+
}
|
|
232
234
|
}
|
|
233
235
|
this.store.updateTrendingTerms(terms);
|
|
234
236
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAqB7I,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;gBAG9D,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA2F3B,KAAK,EAAE,kBAAkB,CA+BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6N9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
|
|
@@ -16,6 +16,7 @@ const defaultConfig = {
|
|
|
16
16
|
trim: true,
|
|
17
17
|
pinFiltered: true,
|
|
18
18
|
storeRange: true,
|
|
19
|
+
autoOpenActive: true,
|
|
19
20
|
},
|
|
20
21
|
},
|
|
21
22
|
};
|
|
@@ -79,45 +80,107 @@ export class SearchController extends AbstractController {
|
|
|
79
80
|
// no param change - not searching
|
|
80
81
|
return;
|
|
81
82
|
}
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
const searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
|
|
84
|
+
let meta;
|
|
85
|
+
let response;
|
|
86
|
+
// infinite functionality
|
|
87
|
+
// if params.page > 1 and infinite setting exists we should append results
|
|
88
|
+
if (this.config.settings?.infinite && params.pagination?.page > 1) {
|
|
84
89
|
const preventBackfill = this.config.settings.infinite?.backfill && !this.store.results.length && params.pagination?.page > this.config.settings.infinite.backfill;
|
|
85
90
|
const dontBackfill = !this.config.settings.infinite?.backfill && !this.store.results.length && params.pagination?.page > 1;
|
|
91
|
+
//if the page is higher than the backfill setting redirect back to page 1
|
|
86
92
|
if (preventBackfill || dontBackfill) {
|
|
87
93
|
this.storage.set('scrollMap', {});
|
|
88
94
|
this.urlManager.set('page', 1).go();
|
|
89
95
|
return;
|
|
90
96
|
}
|
|
91
|
-
}
|
|
92
|
-
const searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
|
|
93
|
-
const [meta, response] = await this.client.search(params);
|
|
94
|
-
// @ts-ignore
|
|
95
|
-
if (!response.meta) {
|
|
96
|
-
/**
|
|
97
|
-
* MockClient will overwrite the client search() method and use
|
|
98
|
-
* SearchData to return mock data which already contains meta data
|
|
99
|
-
*/
|
|
100
|
-
// @ts-ignore
|
|
101
|
-
response.meta = meta;
|
|
102
|
-
}
|
|
103
|
-
// infinite functionality
|
|
104
|
-
// if params.page > 1 and infinite setting exists we should append results
|
|
105
|
-
if (this.config.settings?.infinite && params.pagination?.page > 1) {
|
|
106
97
|
// if no results fetch results...
|
|
107
98
|
let previousResults = this.previousResults;
|
|
99
|
+
const backfills = [];
|
|
108
100
|
if (this.config.settings?.infinite.backfill && !previousResults.length) {
|
|
109
101
|
// figure out how many pages of results to backfill and wait on all responses
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
102
|
+
const pageSize = params.pagination?.pageSize || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
|
|
103
|
+
let pagesNeeded1 = params.pagination?.page && params.pagination?.page > this.config.settings?.infinite.backfill
|
|
104
|
+
? this.config.settings?.infinite.backfill
|
|
105
|
+
: params.pagination?.page;
|
|
106
|
+
let totalResultsNeeded = pageSize * (pagesNeeded1 || 1);
|
|
107
|
+
const apiLimit = 500;
|
|
108
|
+
// our search api is limited to a certain amount per request.
|
|
109
|
+
//so we will need to make more than one request if totalresultsneeded is greater.
|
|
110
|
+
if (totalResultsNeeded < apiLimit) {
|
|
111
|
+
const backfillParams = deepmerge({ ...params }, { pagination: { pageSize: totalResultsNeeded, page: 1 } });
|
|
113
112
|
backfills.push(this.client.search(backfillParams));
|
|
114
113
|
}
|
|
114
|
+
else {
|
|
115
|
+
//how many pages are needed?
|
|
116
|
+
let pagesNeeded = Math.ceil(totalResultsNeeded / apiLimit);
|
|
117
|
+
// we dont want to get the full apiLimit # of results on the last page, so lets find out how many are left.
|
|
118
|
+
let lastPageCount = apiLimit - (pagesNeeded * apiLimit - totalResultsNeeded);
|
|
119
|
+
for (let i = 1; i <= pagesNeeded; i++) {
|
|
120
|
+
const backfillParams = deepmerge({ ...params }, { pagination: { pageSize: i < pagesNeeded ? apiLimit : lastPageCount, page: i } });
|
|
121
|
+
backfills.push(this.client.search(backfillParams));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//infinite backfill and prev results
|
|
126
|
+
// use the previous results and only make request for new result
|
|
127
|
+
if (backfills && backfills.length) {
|
|
128
|
+
let backfillResults = [];
|
|
115
129
|
const backfillResponses = await Promise.all(backfills);
|
|
116
|
-
backfillResponses.map(([
|
|
117
|
-
|
|
130
|
+
backfillResponses.map(([Bmeta, Bresponse]) => {
|
|
131
|
+
if (!meta) {
|
|
132
|
+
meta = Bmeta;
|
|
133
|
+
}
|
|
134
|
+
if (!response) {
|
|
135
|
+
response = Bresponse;
|
|
136
|
+
backfillResults = response.results;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
backfillResults = backfillResults.concat(Bresponse.results);
|
|
140
|
+
}
|
|
118
141
|
});
|
|
142
|
+
if (!response.meta) {
|
|
143
|
+
/**
|
|
144
|
+
* MockClient will overwrite the client search() method and use
|
|
145
|
+
* SearchData to return mock data which already contains meta data
|
|
146
|
+
*/
|
|
147
|
+
// @ts-ignore
|
|
148
|
+
response.meta = meta;
|
|
149
|
+
}
|
|
150
|
+
//we need to overwrite the pagination params so the ui doesnt get confused.
|
|
151
|
+
response.pagination.pageSize = params.pagination?.pageSize || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
|
|
152
|
+
response.pagination.page = params.pagination?.page;
|
|
153
|
+
//set the response results after all backfill promises are resolved.
|
|
154
|
+
response.results = backfillResults;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// infinite with no backfills.
|
|
158
|
+
[meta, response] = await this.client.search(params);
|
|
159
|
+
// @ts-ignore
|
|
160
|
+
if (!response.meta) {
|
|
161
|
+
/**
|
|
162
|
+
* MockClient will overwrite the client search() method and use
|
|
163
|
+
* SearchData to return mock data which already contains meta data
|
|
164
|
+
*/
|
|
165
|
+
// @ts-ignore
|
|
166
|
+
response.meta = meta;
|
|
167
|
+
}
|
|
168
|
+
//append new results to previous results
|
|
169
|
+
response.results = [...previousResults, ...(response.results || [])];
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
//standard.
|
|
174
|
+
[meta, response] = await this.client.search(params);
|
|
175
|
+
// @ts-ignore
|
|
176
|
+
if (!response.meta) {
|
|
177
|
+
/**
|
|
178
|
+
* MockClient will overwrite the client search() method and use
|
|
179
|
+
* SearchData to return mock data which already contains meta data
|
|
180
|
+
*/
|
|
181
|
+
// @ts-ignore
|
|
182
|
+
response.meta = meta;
|
|
119
183
|
}
|
|
120
|
-
response.results = [...previousResults, ...(response.results || [])];
|
|
121
184
|
}
|
|
122
185
|
searchProfile.stop();
|
|
123
186
|
this.log.profile(searchProfile);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-controller",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.0",
|
|
4
4
|
"description": "Snap Controllers",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -20,21 +20,21 @@
|
|
|
20
20
|
"test:watch": "jest --watch"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@searchspring/snap-toolbox": "^0.
|
|
23
|
+
"@searchspring/snap-toolbox": "^0.38.0",
|
|
24
24
|
"deepmerge": "4.2.2"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@searchspring/snap-client": "^0.
|
|
28
|
-
"@searchspring/snap-event-manager": "^0.
|
|
29
|
-
"@searchspring/snap-logger": "^0.
|
|
30
|
-
"@searchspring/snap-profiler": "^0.
|
|
31
|
-
"@searchspring/snap-store-mobx": "^0.
|
|
32
|
-
"@searchspring/snap-tracker": "^0.
|
|
33
|
-
"@searchspring/snap-url-manager": "^0.
|
|
27
|
+
"@searchspring/snap-client": "^0.38.0",
|
|
28
|
+
"@searchspring/snap-event-manager": "^0.38.0",
|
|
29
|
+
"@searchspring/snap-logger": "^0.38.0",
|
|
30
|
+
"@searchspring/snap-profiler": "^0.38.0",
|
|
31
|
+
"@searchspring/snap-store-mobx": "^0.38.0",
|
|
32
|
+
"@searchspring/snap-tracker": "^0.38.0",
|
|
33
|
+
"@searchspring/snap-url-manager": "^0.38.0"
|
|
34
34
|
},
|
|
35
35
|
"sideEffects": false,
|
|
36
36
|
"files": [
|
|
37
37
|
"dist/**/*"
|
|
38
38
|
],
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "88f7d1f065081f9691f26563666320e198c45ca9"
|
|
40
40
|
}
|