@eluvio/elv-client-js 4.0.20 → 4.0.22

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.
@@ -265,6 +265,7 @@ var AuthorizationClient = /*#__PURE__*/function () {
265
265
  return this.client.ContentObjectMetadata({
266
266
  libraryId: libraryId,
267
267
  objectId: objectId,
268
+ versionHash: versionHash,
268
269
  metadataSubtree: ownerCapKey
269
270
  });
270
271
  case 16:
@@ -17,6 +17,7 @@ var HttpClient = /*#__PURE__*/function () {
17
17
  this.uriIndex = 0;
18
18
  this.debug = debug;
19
19
  this.draftURIs = {};
20
+ this.retries = Math.max(3, uris.length);
20
21
  }
21
22
  _createClass(HttpClient, [{
22
23
  key: "Log",
@@ -54,15 +55,16 @@ var HttpClient = /*#__PURE__*/function () {
54
55
  key: "Request",
55
56
  value: function () {
56
57
  var _Request = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {
57
- var method, path, _ref2$queryParams, queryParams, body, _ref2$bodyType, bodyType, _ref2$headers, headers, _ref2$attempts, attempts, _ref2$failover, failover, _ref2$forceFailover, forceFailover, baseURI, writeTokenMatch, writeToken, uri, fetchParameters, response, responseType, errorBody, error;
58
+ var method, path, _ref2$queryParams, queryParams, body, _ref2$bodyType, bodyType, _ref2$headers, headers, _ref2$attempts, attempts, _ref2$allowFailover, allowFailover, _ref2$forceFailover, forceFailover, _ref2$allowRetry, allowRetry, baseURI, writeTokenMatch, writeToken, uri, fetchParameters, response, responseType, errorBody, error;
58
59
  return _regeneratorRuntime.wrap(function _callee$(_context) {
59
60
  while (1) switch (_context.prev = _context.next) {
60
61
  case 0:
61
- method = _ref2.method, path = _ref2.path, _ref2$queryParams = _ref2.queryParams, queryParams = _ref2$queryParams === void 0 ? {} : _ref2$queryParams, body = _ref2.body, _ref2$bodyType = _ref2.bodyType, bodyType = _ref2$bodyType === void 0 ? "JSON" : _ref2$bodyType, _ref2$headers = _ref2.headers, headers = _ref2$headers === void 0 ? {} : _ref2$headers, _ref2$attempts = _ref2.attempts, attempts = _ref2$attempts === void 0 ? 0 : _ref2$attempts, _ref2$failover = _ref2.failover, failover = _ref2$failover === void 0 ? true : _ref2$failover, _ref2$forceFailover = _ref2.forceFailover, forceFailover = _ref2$forceFailover === void 0 ? false : _ref2$forceFailover;
62
+ method = _ref2.method, path = _ref2.path, _ref2$queryParams = _ref2.queryParams, queryParams = _ref2$queryParams === void 0 ? {} : _ref2$queryParams, body = _ref2.body, _ref2$bodyType = _ref2.bodyType, bodyType = _ref2$bodyType === void 0 ? "JSON" : _ref2$bodyType, _ref2$headers = _ref2.headers, headers = _ref2$headers === void 0 ? {} : _ref2$headers, _ref2$attempts = _ref2.attempts, attempts = _ref2$attempts === void 0 ? 0 : _ref2$attempts, _ref2$allowFailover = _ref2.allowFailover, allowFailover = _ref2$allowFailover === void 0 ? true : _ref2$allowFailover, _ref2$forceFailover = _ref2.forceFailover, forceFailover = _ref2$forceFailover === void 0 ? false : _ref2$forceFailover, _ref2$allowRetry = _ref2.allowRetry, allowRetry = _ref2$allowRetry === void 0 ? true : _ref2$allowRetry;
62
63
  baseURI = this.BaseURI(); // If URL contains a write token, it must go to the correct server and can not fail over
63
64
  writeTokenMatch = path.replace(/^\//, "").match(/(qlibs\/ilib[a-zA-Z0-9]+|q|qid)\/(tqw__[a-zA-Z0-9]+)/);
64
65
  writeToken = writeTokenMatch ? writeTokenMatch[2] : undefined;
65
66
  if (writeToken) {
67
+ allowFailover = false;
66
68
  if (this.draftURIs[writeToken]) {
67
69
  // Use saved write token URI
68
70
  baseURI = this.draftURIs[writeToken];
@@ -103,17 +105,31 @@ var HttpClient = /*#__PURE__*/function () {
103
105
  };
104
106
  case 18:
105
107
  if (response.ok) {
106
- _context.next = 41;
108
+ _context.next = 47;
107
109
  break;
108
110
  }
109
- if (!(!writeToken && (failover && parseInt(response.status) >= 500 || forceFailover) && attempts < this.uris.length)) {
111
+ if (!((parseInt(response.status) >= 500 || forceFailover) && allowRetry && attempts < this.retries)) {
112
+ _context.next = 31;
113
+ break;
114
+ }
115
+ if (!allowFailover) {
110
116
  _context.next = 25;
111
117
  break;
112
118
  }
113
- // Server error - Try next node
114
- this.Log("HttpClient failing over from ".concat(this.BaseURI(), ": ").concat(attempts + 1, " attempts"), true);
119
+ // Fail over to alternate node
115
120
  this.uriIndex = (this.uriIndex + 1) % this.uris.length;
116
- _context.next = 24;
121
+ this.Log("HttpClient failing over from ".concat(baseURI.toString(), ": ").concat(attempts + 1, " attempts"), true);
122
+ _context.next = 28;
123
+ break;
124
+ case 25:
125
+ // Wait and retry
126
+ this.Log("HttpClient retrying request from ".concat(baseURI.toString(), ": ").concat(attempts + 1, " attempts"), true);
127
+ _context.next = 28;
128
+ return new Promise(function (resolve) {
129
+ return setTimeout(resolve, 1000);
130
+ });
131
+ case 28:
132
+ _context.next = 30;
117
133
  return this.Request({
118
134
  method: method,
119
135
  path: path,
@@ -124,34 +140,34 @@ var HttpClient = /*#__PURE__*/function () {
124
140
  attempts: attempts + 1,
125
141
  forceFailover: forceFailover
126
142
  });
127
- case 24:
143
+ case 30:
128
144
  return _context.abrupt("return", _context.sent);
129
- case 25:
145
+ case 31:
130
146
  // Parse JSON error if headers indicate JSON
131
147
  responseType = response.headers ? response.headers.get("content-type") || "" : "";
132
148
  errorBody = "";
133
149
  if (!(response.text && response.json)) {
134
- _context.next = 38;
150
+ _context.next = 44;
135
151
  break;
136
152
  }
137
153
  if (!responseType.includes("application/json")) {
138
- _context.next = 34;
154
+ _context.next = 40;
139
155
  break;
140
156
  }
141
- _context.next = 31;
157
+ _context.next = 37;
142
158
  return response.json();
143
- case 31:
159
+ case 37:
144
160
  _context.t1 = _context.sent;
145
- _context.next = 37;
161
+ _context.next = 43;
146
162
  break;
147
- case 34:
148
- _context.next = 36;
163
+ case 40:
164
+ _context.next = 42;
149
165
  return response.text();
150
- case 36:
166
+ case 42:
151
167
  _context.t1 = _context.sent;
152
- case 37:
168
+ case 43:
153
169
  errorBody = _context.t1;
154
- case 38:
170
+ case 44:
155
171
  error = {
156
172
  name: "ElvHttpClientError",
157
173
  status: response.status,
@@ -163,10 +179,10 @@ var HttpClient = /*#__PURE__*/function () {
163
179
  };
164
180
  this.Log(JSON.stringify(error, null, 2), true);
165
181
  throw error;
166
- case 41:
182
+ case 47:
167
183
  this.Log("".concat(response.status, " - ").concat(method, " ").concat(uri.toString()));
168
184
  return _context.abrupt("return", response);
169
- case 43:
185
+ case 49:
170
186
  case "end":
171
187
  return _context.stop();
172
188
  }
@@ -2807,7 +2807,7 @@ exports.CallBitcodeMethod = /*#__PURE__*/function () {
2807
2807
  method: constant ? "GET" : "POST",
2808
2808
  path: path,
2809
2809
  queryParams: queryParams,
2810
- failover: false
2810
+ allowFailover: false
2811
2811
  });
2812
2812
  case 17:
2813
2813
  _context35.t2 = _context35.sent;
@@ -3904,6 +3904,7 @@ exports.EncryptionConk = /*#__PURE__*/function () {
3904
3904
  return this.ContentObjectMetadata({
3905
3905
  libraryId: libraryId,
3906
3906
  objectId: objectId,
3907
+ versionHash: versionHash,
3907
3908
  metadataSubtree: ownerCapKey
3908
3909
  });
3909
3910
  case 10:
@@ -1646,7 +1646,7 @@ exports.FinalizeContentObject = /*#__PURE__*/function () {
1646
1646
  headers: _context20.t13,
1647
1647
  method: "POST",
1648
1648
  path: _context20.t14,
1649
- failover: false
1649
+ allowFailover: false
1650
1650
  };
1651
1651
  _context20.t16 = _context20.t12.Request.call(_context20.t12, _context20.t15);
1652
1652
  _context20.next = 34;
@@ -1904,7 +1904,7 @@ exports.MergeMetadata = /*#__PURE__*/function () {
1904
1904
  method: "POST",
1905
1905
  path: _context24.t2,
1906
1906
  body: _context24.t3,
1907
- failover: false
1907
+ allowFailover: false
1908
1908
  };
1909
1909
  _context24.next = 15;
1910
1910
  return _context24.t0.Request.call(_context24.t0, _context24.t4);
@@ -1961,7 +1961,7 @@ exports.ReplaceMetadata = /*#__PURE__*/function () {
1961
1961
  method: "PUT",
1962
1962
  path: _context25.t2,
1963
1963
  body: _context25.t3,
1964
- failover: false
1964
+ allowFailover: false
1965
1965
  };
1966
1966
  _context25.next = 15;
1967
1967
  return _context25.t0.Request.call(_context25.t0, _context25.t4);
@@ -2016,7 +2016,7 @@ exports.DeleteMetadata = /*#__PURE__*/function () {
2016
2016
  headers: _context26.t1,
2017
2017
  method: "DELETE",
2018
2018
  path: _context26.t2,
2019
- failover: false
2019
+ allowFailover: false
2020
2020
  };
2021
2021
  _context26.next = 14;
2022
2022
  return _context26.t0.Request.call(_context26.t0, _context26.t3);