@overmap-ai/core 1.0.49-fix-error-messaging.3 → 1.0.49-update-presigned-url-payload.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.
@@ -208,54 +208,18 @@ var __publicField = (obj, key, value) => {
208
208
  this.requestAttemptCounter[uuid2] = (this.requestAttemptCounter[uuid2] || 0) + 1;
209
209
  }
210
210
  }
211
- function extractErrorMessage(errorRes, err) {
212
- if (errorRes == null ? void 0 : errorRes.body) {
213
- if (typeof errorRes.body === "object") {
214
- if (typeof errorRes.body.error === "string")
215
- return errorRes.body.error;
216
- if (typeof errorRes.body.message === "string")
217
- return errorRes.body.message;
218
- try {
219
- return Object.entries(errorRes.body).map(([key, value]) => {
220
- if (typeof value === "string") {
221
- if (key === "non_field_errors")
222
- return value;
223
- return `${key}: ${value}`;
224
- }
225
- if (Array.isArray(value)) {
226
- if (key === "non_field_errors")
227
- return value.join("\n");
228
- return value.map((v) => `${key}: ${v}`).join("\n");
229
- }
230
- return `${key}: ${JSON.stringify(value)}`;
231
- }).join("\n");
232
- } catch (e) {
233
- console.error("Failed to extract error message from response body", e);
234
- }
235
- } else if (typeof errorRes.body === "string")
236
- return errorRes.body;
237
- } else if (errorRes == null ? void 0 : errorRes.text) {
238
- return errorRes.text;
239
- } else if (err instanceof Error) {
240
- return err.message;
241
- }
242
- return void 0;
243
- }
244
211
  class APIError extends Error {
245
- constructor(options) {
246
- const unknownMessage = "An unknown error occurred";
247
- super(unknownMessage);
212
+ constructor(message, response, options) {
213
+ super(response == null ? void 0 : response.text);
248
214
  // NOTE: Needs to conform to NetworkError in @redux-offline/redux-offline, which has `status` and `response`.
249
215
  __publicField(this, "status");
250
- __publicField(this, "response");
251
216
  __publicField(this, "message");
217
+ __publicField(this, "response");
252
218
  __publicField(this, "options");
253
- const { response, innerError } = options;
254
- this.message = options.message ?? extractErrorMessage(response, innerError) ?? unknownMessage;
219
+ this.message = message;
255
220
  this.status = (response == null ? void 0 : response.status) ?? 0;
256
221
  this.response = response;
257
- options.discard = options.discard ?? false;
258
- this.options = options;
222
+ this.options = options ?? { discard: false };
259
223
  }
260
224
  }
261
225
  class DeferredPromise {
@@ -4204,6 +4168,35 @@ var __publicField = (obj, key, value) => {
4204
4168
  }
4205
4169
  return void 0;
4206
4170
  }
4171
+ function extractErrorMessage(errorRes, err) {
4172
+ if (errorRes == null ? void 0 : errorRes.body) {
4173
+ if (typeof errorRes.body === "object") {
4174
+ if (typeof errorRes.body.error === "string")
4175
+ return errorRes.body.error;
4176
+ if (typeof errorRes.body.message === "string")
4177
+ return errorRes.body.message;
4178
+ try {
4179
+ return Object.entries(errorRes.body).map(([key, value]) => {
4180
+ if (typeof value === "string") {
4181
+ return `${key}: ${value}`;
4182
+ }
4183
+ if (Array.isArray(value)) {
4184
+ return value.map((v) => `${key}: ${v}`).join("\n");
4185
+ }
4186
+ return `${key}: ${JSON.stringify(value)}`;
4187
+ }).join("\n");
4188
+ } catch (e) {
4189
+ console.error("Failed to extract error message from response body", e);
4190
+ }
4191
+ } else if (typeof errorRes.body === "string")
4192
+ return errorRes.body;
4193
+ } else if (errorRes == null ? void 0 : errorRes.text) {
4194
+ return errorRes.text;
4195
+ } else if (err instanceof Error) {
4196
+ return err.message;
4197
+ }
4198
+ return void 0;
4199
+ }
4207
4200
  async function performRequest(action, client) {
4208
4201
  async function checkToken() {
4209
4202
  if (client.auth.tokenIsExpiringSoon()) {
@@ -4306,29 +4299,19 @@ var __publicField = (obj, key, value) => {
4306
4299
  console.warn("No signed-in user to sign out.");
4307
4300
  }
4308
4301
  await client.auth.logout();
4309
- throw new APIError({
4310
- message: "You have been signed out due to inactivity.",
4311
- response: errorResponse,
4312
- discard: true,
4313
- innerError: error2
4314
- });
4315
- }
4316
- if (state.authReducer.isLoggedIn) {
4317
- console.debug("Forbidden; renewing tokens and retrying.");
4318
- await client.auth.renewTokens();
4319
- console.debug("Successfully renewed tokens; retrying request.");
4320
- return requestToSend.query(queryParams);
4321
- } else {
4322
- console.debug("Forbidden; user is not logged in.");
4323
- throw new APIError({
4324
- message: "Incorrect username or password.",
4325
- response: errorResponse,
4326
- discard: true,
4327
- innerError: error2
4302
+ throw new APIError("You have been signed out due to inactivity.", errorResponse, {
4303
+ discard: true
4328
4304
  });
4329
4305
  }
4306
+ console.debug("Forbidden; renewing tokens and retrying.");
4307
+ await client.auth.renewTokens();
4308
+ console.debug("Successfully renewed tokens; retrying request.");
4309
+ return requestToSend.query(queryParams);
4330
4310
  }
4331
- throw new APIError({ response: errorResponse, innerError: error2, discard: discardStatuses.includes(status) });
4311
+ const apiErrorMessage = extractErrorMessage(errorResponse, error2) || "An unexpected error occurred.";
4312
+ throw new APIError(apiErrorMessage, errorResponse, {
4313
+ discard: discardStatuses.includes(status)
4314
+ });
4332
4315
  }
4333
4316
  }
4334
4317
  class MiddlewareChainerPrivate {
@@ -4539,29 +4522,18 @@ var __publicField = (obj, key, value) => {
4539
4522
  if (response) {
4540
4523
  promise.resolve(response.body);
4541
4524
  } else {
4542
- const error2 = new APIError({
4543
- message: "Could not get a response from the server.",
4525
+ const error2 = new APIError(
4526
+ "Could not get a response from the server.",
4544
4527
  response,
4545
- discard: true
4546
- });
4528
+ {
4529
+ discard: true
4530
+ }
4531
+ );
4547
4532
  promise.reject(error2);
4548
4533
  }
4549
4534
  };
4550
4535
  const errorHandler = (error2) => {
4551
- if (error2 instanceof APIError) {
4552
- error2.options.discard = true;
4553
- } else {
4554
- console.error(
4555
- "Received an unexpected error while processing a request:",
4556
- error2,
4557
- "\nConverting error to APIError and discarding."
4558
- );
4559
- error2 = new APIError({
4560
- message: "An error occurred while processing the request.",
4561
- innerError: error2,
4562
- discard: true
4563
- });
4564
- }
4536
+ error2.options.discard = true;
4565
4537
  promise.reject(error2);
4566
4538
  };
4567
4539
  innerPromise.then(successOrUndefinedHandler, errorHandler);
@@ -5141,23 +5113,24 @@ var __publicField = (obj, key, value) => {
5141
5113
  */
5142
5114
  __publicField(this, "_getTokenPair", (credentials, logoutOnFailure = true) => {
5143
5115
  const uuid$1 = uuid.v4();
5144
- const responsePromise = this.enqueueRequest({
5145
- uuid: uuid$1,
5146
- description: "Get token pair",
5147
- method: HttpMethod.POST,
5148
- url: "/api/token/",
5149
- payload: credentials,
5150
- isAuthNeeded: false,
5151
- checkAuth: false,
5152
- blockers: [],
5153
- blocks: []
5154
- }).then(parseTokens).catch((e) => {
5116
+ try {
5117
+ const responsePromise = this.enqueueRequest({
5118
+ uuid: uuid$1,
5119
+ description: "Get token pair",
5120
+ method: HttpMethod.POST,
5121
+ url: "/api/token/",
5122
+ payload: credentials,
5123
+ isAuthNeeded: false,
5124
+ blockers: [],
5125
+ blocks: []
5126
+ });
5127
+ return [responsePromise.then(parseTokens), uuid$1];
5128
+ } catch (e) {
5155
5129
  if (logoutOnFailure) {
5156
5130
  void this.logout().then();
5157
5131
  }
5158
5132
  throw e;
5159
- });
5160
- return [responsePromise, uuid$1];
5133
+ }
5161
5134
  });
5162
5135
  /**
5163
5136
  * Takes refresh token and gets a new token pair
@@ -5218,7 +5191,7 @@ var __publicField = (obj, key, value) => {
5218
5191
  timedOut = true;
5219
5192
  store.dispatch(markForDeletion(uuid$1));
5220
5193
  store.dispatch(markForDeletion(initialDataUuid));
5221
- reject(new APIError({ message: `Request timed out after ${timeout} seconds` }));
5194
+ reject(new Error(`Request timed out after ${timeout} seconds`));
5222
5195
  }, timeout * 1e3);
5223
5196
  });
5224
5197
  const successPromise = promise.then((tokens) => {
@@ -7187,7 +7160,8 @@ var __publicField = (obj, key, value) => {
7187
7160
  blockers: [],
7188
7161
  blocks: []
7189
7162
  });
7190
- store.dispatch(setOrganizationAccesses(result));
7163
+ const organizationAccesses = result;
7164
+ store.dispatch(setOrganizationAccesses(organizationAccesses));
7191
7165
  }
7192
7166
  }
7193
7167
  const cachedRequestPromises = {};
@@ -7216,7 +7190,12 @@ var __publicField = (obj, key, value) => {
7216
7190
  description: "Get S3 URL",
7217
7191
  method: HttpMethod.GET,
7218
7192
  url: "/authentication/files/presigned-upload-url/",
7219
- queryParams: { key, type: file.type },
7193
+ queryParams: {
7194
+ sha1: await hashFile(file),
7195
+ file_type: file.type,
7196
+ extension: file.name.split(".").pop(),
7197
+ size: file.size.toString()
7198
+ },
7220
7199
  blockers: [],
7221
7200
  blocks: [`s3-${key}`]
7222
7201
  });