@searchspring/snap-client 0.43.1 → 0.44.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIvE,oBAAY,IAAI,GAAG,GAAG,CAAC;AACvB,oBAAY,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,oBAAY,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,oBAAY,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMI,aAAa,EAAE,gBAAgB;IALlD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAER,aAAa,EAAE,gBAAgB;IAIlD,SAAS,KAAK,IAAI,IAAI,OAAO,CAE5B;cAEe,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIvE,oBAAY,IAAI,GAAG,GAAG,CAAC;AACvB,oBAAY,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,oBAAY,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,oBAAY,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMI,aAAa,EAAE,gBAAgB;IALlD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAER,aAAa,EAAE,gBAAgB;IAIlD,SAAS,KAAK,IAAI,IAAI,OAAO,CAE5B;cAEe,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgDhF,OAAO,CAAC,iBAAiB;YAoCX,QAAQ;CAKtB;AAED,oBAAY,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,qBAAa,gBAAgB;IAChB,OAAO,CAAC,aAAa;gBAAb,aAAa,GAAE,0BAA+B;IAalE,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,oBAAoB,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAExD;IAED,IAAI,OAAO,IAAI,WAAW,CAEzB;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,WAAW,EAElC;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,cAAc,EAErC;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
|
|
@@ -72,7 +72,7 @@ var API = /** @class */ (function () {
|
|
|
72
72
|
});
|
|
73
73
|
API.prototype.request = function (context, cacheKey) {
|
|
74
74
|
return __awaiter(this, void 0, void 0, function () {
|
|
75
|
-
var _a, url, init, cachedResponse, response, responseJSON;
|
|
75
|
+
var _a, url, init, cachedResponse, response, responseJSON, err_1;
|
|
76
76
|
var _this = this;
|
|
77
77
|
return __generator(this, function (_b) {
|
|
78
78
|
switch (_b.label) {
|
|
@@ -86,13 +86,16 @@ var API = /** @class */ (function () {
|
|
|
86
86
|
return [2 /*return*/, cachedResponse];
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
|
|
89
|
+
_b.label = 1;
|
|
90
90
|
case 1:
|
|
91
|
+
_b.trys.push([1, 8, , 11]);
|
|
92
|
+
return [4 /*yield*/, this.fetchApi(url, init)];
|
|
93
|
+
case 2:
|
|
91
94
|
response = _b.sent();
|
|
92
95
|
return [4 /*yield*/, (response === null || response === void 0 ? void 0 : response.json())];
|
|
93
|
-
case
|
|
96
|
+
case 3:
|
|
94
97
|
responseJSON = _b.sent();
|
|
95
|
-
if (!(response.status >= 200 && response.status < 300)) return [3 /*break*/,
|
|
98
|
+
if (!(response.status >= 200 && response.status < 300)) return [3 /*break*/, 4];
|
|
96
99
|
this.retryCount = 0; // reset count and delay incase rate limit occurs again before a page refresh
|
|
97
100
|
this.retryDelay = 1000;
|
|
98
101
|
if (cacheKey) {
|
|
@@ -100,18 +103,26 @@ var API = /** @class */ (function () {
|
|
|
100
103
|
this.cache.set(cacheKey, responseJSON);
|
|
101
104
|
}
|
|
102
105
|
return [2 /*return*/, responseJSON];
|
|
103
|
-
case
|
|
106
|
+
case 4:
|
|
104
107
|
if (!(response.status == 429)) return [3 /*break*/, 7];
|
|
105
108
|
if (!(this.retryCount < this.configuration.maxRetry)) return [3 /*break*/, 6];
|
|
106
109
|
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, _this.retryDelay); })];
|
|
107
|
-
case
|
|
110
|
+
case 5:
|
|
108
111
|
_b.sent(); // delay retry
|
|
109
112
|
this.retryDelay = (0, fibonacci_1.fibonacci)(this.retryCount) * 1000;
|
|
110
113
|
this.retryCount++;
|
|
114
|
+
throw new Error('Rate limited.');
|
|
115
|
+
case 6: throw new Error('Retry rate limit exceeded.');
|
|
116
|
+
case 7: throw new Error('Unexpected Response Status.');
|
|
117
|
+
case 8:
|
|
118
|
+
err_1 = _b.sent();
|
|
119
|
+
if (!(err_1.message == 'Rate limited.')) return [3 /*break*/, 10];
|
|
111
120
|
return [4 /*yield*/, this.request(context, cacheKey)];
|
|
112
|
-
case
|
|
113
|
-
case
|
|
114
|
-
|
|
121
|
+
case 9: return [2 /*return*/, _b.sent()];
|
|
122
|
+
case 10:
|
|
123
|
+
// throw an object with fetch details
|
|
124
|
+
throw { err: err_1, fetchDetails: __assign({ status: response === null || response === void 0 ? void 0 : response.status, message: (response === null || response === void 0 ? void 0 : response.statusText) || 'FAILED', url: url }, init) };
|
|
125
|
+
case 11: return [2 /*return*/];
|
|
115
126
|
}
|
|
116
127
|
});
|
|
117
128
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIvE,oBAAY,IAAI,GAAG,GAAG,CAAC;AACvB,oBAAY,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,oBAAY,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,oBAAY,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMI,aAAa,EAAE,gBAAgB;IALlD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAER,aAAa,EAAE,gBAAgB;IAIlD,SAAS,KAAK,IAAI,IAAI,OAAO,CAE5B;cAEe,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Abstract.d.ts","sourceRoot":"","sources":["../../../../src/Client/apis/Abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIvE,oBAAY,IAAI,GAAG,GAAG,CAAC;AACvB,oBAAY,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1F,oBAAY,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AAClI,oBAAY,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,qBAAa,GAAG;IAMI,aAAa,EAAE,gBAAgB;IALlD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEhB,KAAK,EAAE,YAAY,CAAC;gBAER,aAAa,EAAE,gBAAgB;IAIlD,SAAS,KAAK,IAAI,IAAI,OAAO,CAE5B;cAEe,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgDhF,OAAO,CAAC,iBAAiB;YAoCX,QAAQ;CAKtB;AAED,oBAAY,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;IACrD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,qBAAa,gBAAgB;IAChB,OAAO,CAAC,aAAa;gBAAb,aAAa,GAAE,0BAA+B;IAalE,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,oBAAoB,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAExD;IAED,IAAI,OAAO,IAAI,WAAW,CAEzB;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,WAAW,EAElC;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,cAAc,EAErC;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;CACD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,MAAM,CAmBlE"}
|
|
@@ -23,29 +23,40 @@ export class API {
|
|
|
23
23
|
return cachedResponse;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (
|
|
32
|
-
//
|
|
33
|
-
this.
|
|
26
|
+
let response;
|
|
27
|
+
let responseJSON;
|
|
28
|
+
try {
|
|
29
|
+
response = await this.fetchApi(url, init);
|
|
30
|
+
responseJSON = await response?.json();
|
|
31
|
+
if (response.status >= 200 && response.status < 300) {
|
|
32
|
+
this.retryCount = 0; // reset count and delay incase rate limit occurs again before a page refresh
|
|
33
|
+
this.retryDelay = 1000;
|
|
34
|
+
if (cacheKey) {
|
|
35
|
+
// save in the cache before returning
|
|
36
|
+
this.cache.set(cacheKey, responseJSON);
|
|
37
|
+
}
|
|
38
|
+
return responseJSON;
|
|
34
39
|
}
|
|
35
|
-
|
|
40
|
+
else if (response.status == 429) {
|
|
41
|
+
if (this.retryCount < this.configuration.maxRetry) {
|
|
42
|
+
await new Promise((resolve) => setTimeout(resolve, this.retryDelay)); // delay retry
|
|
43
|
+
this.retryDelay = fibonacci(this.retryCount) * 1000;
|
|
44
|
+
this.retryCount++;
|
|
45
|
+
throw new Error('Rate limited.');
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error('Retry rate limit exceeded.');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
throw new Error('Unexpected Response Status.');
|
|
36
52
|
}
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
await new Promise((resolve) => setTimeout(resolve, this.retryDelay)); // delay retry
|
|
40
|
-
this.retryDelay = fibonacci(this.retryCount) * 1000;
|
|
41
|
-
this.retryCount++;
|
|
53
|
+
catch (err) {
|
|
54
|
+
if (err.message == 'Rate limited.') {
|
|
42
55
|
return await this.request(context, cacheKey);
|
|
43
56
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
57
|
+
// throw an object with fetch details
|
|
58
|
+
throw { err, fetchDetails: { status: response?.status, message: response?.statusText || 'FAILED', url, ...init } };
|
|
47
59
|
}
|
|
48
|
-
throw response.status;
|
|
49
60
|
}
|
|
50
61
|
createFetchParams(context) {
|
|
51
62
|
// grab siteID out of context to generate apiHost fo URL
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.44.0",
|
|
4
4
|
"description": "Snap Client",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"test:watch": "jest --watch"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@searchspring/snap-toolbox": "^0.
|
|
23
|
+
"@searchspring/snap-toolbox": "^0.44.0",
|
|
24
24
|
"deepmerge": "4.3.1"
|
|
25
25
|
},
|
|
26
26
|
"sideEffects": false,
|
|
27
27
|
"files": [
|
|
28
28
|
"dist/**/*"
|
|
29
29
|
],
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "d22fcf1a316fdae0866c21dbd697da8c4a706965"
|
|
31
31
|
}
|