@overmap-ai/core 1.0.48-tanstack-table.1 → 1.0.49-fix-error-messaging.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,18 +208,54 @@ 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
+ }
211
244
  class APIError extends Error {
212
- constructor(message, response, options) {
213
- super(response == null ? void 0 : response.text);
245
+ constructor(options) {
246
+ const unknownMessage = "An unknown error occurred";
247
+ super(unknownMessage);
214
248
  // NOTE: Needs to conform to NetworkError in @redux-offline/redux-offline, which has `status` and `response`.
215
249
  __publicField(this, "status");
216
- __publicField(this, "message");
217
250
  __publicField(this, "response");
251
+ __publicField(this, "message");
218
252
  __publicField(this, "options");
219
- this.message = message;
253
+ const { response, innerError } = options;
254
+ this.message = options.message ?? extractErrorMessage(response, innerError) ?? unknownMessage;
220
255
  this.status = (response == null ? void 0 : response.status) ?? 0;
221
256
  this.response = response;
222
- this.options = options ?? { discard: false };
257
+ options.discard = options.discard ?? false;
258
+ this.options = options;
223
259
  }
224
260
  }
225
261
  class DeferredPromise {
@@ -1601,6 +1637,7 @@ var __publicField = (obj, key, value) => {
1601
1637
  }
1602
1638
  return prevComponents;
1603
1639
  };
1640
+ const selectComponentsMapping = (state) => state.componentReducer.components;
1604
1641
  const selectComponentsFromComponentType = (componentTypeId) => (state) => {
1605
1642
  if (!componentTypeId)
1606
1643
  return [];
@@ -1631,16 +1668,14 @@ var __publicField = (obj, key, value) => {
1631
1668
  }
1632
1669
  return ret;
1633
1670
  };
1634
- const selectComponentsByType = (componentTypeId) => (state) => {
1635
- const components = state.componentReducer.components;
1636
- const componentsOfType = [];
1637
- for (const component of Object.values(components)) {
1638
- if (component.component_type === componentTypeId) {
1639
- componentsOfType.push(component);
1671
+ const selectComponentsByType = restructureCreateSelectorWithArgs(
1672
+ toolkit.createSelector(
1673
+ [selectComponents, (_state, componentTypeId) => componentTypeId],
1674
+ (components, componentTypeId) => {
1675
+ return components.filter((component) => component.component_type === componentTypeId);
1640
1676
  }
1641
- }
1642
- return componentsOfType;
1643
- };
1677
+ )
1678
+ );
1644
1679
  const selectNumberOfComponentsOfComponentType = (componentTypeId) => (state) => {
1645
1680
  var _a2;
1646
1681
  if (!componentTypeId)
@@ -1830,6 +1865,20 @@ var __publicField = (obj, key, value) => {
1830
1865
  }
1831
1866
  )
1832
1867
  );
1868
+ const selectComponentTypeStagesMapping = restructureCreateSelectorWithArgs(
1869
+ toolkit.createSelector(
1870
+ [selectStageMapping, (_state, componentTypeId) => componentTypeId],
1871
+ (stagesMapping, componentTypeId) => {
1872
+ const componentTypeStagesMapping = {};
1873
+ for (const [stageId, stage] of Object.entries(stagesMapping)) {
1874
+ if (stage.component_type === componentTypeId) {
1875
+ componentTypeStagesMapping[stageId] = stage;
1876
+ }
1877
+ }
1878
+ return componentTypeStagesMapping;
1879
+ }
1880
+ )
1881
+ );
1833
1882
  const selectStagesFromComponentType = restructureCreateSelectorWithArgs(
1834
1883
  toolkit.createSelector(
1835
1884
  [selectStages, (_state, componentTypeId) => componentTypeId],
@@ -3642,6 +3691,9 @@ var __publicField = (obj, key, value) => {
3642
3691
  return state.userFormReducer.userForms[formId2];
3643
3692
  };
3644
3693
  const selectSubmissionMapping = (state) => state.userFormReducer.submissions;
3694
+ const selectUserFormSubmission = (submissionId) => (state) => {
3695
+ return state.userFormReducer.submissions[submissionId];
3696
+ };
3645
3697
  const selectSubmissions = toolkit.createSelector([selectSubmissionMapping], (submissions) => Object.values(submissions));
3646
3698
  const selectRevisionMapping = (state) => state.userFormReducer.revisions;
3647
3699
  const selectRevisions = toolkit.createSelector([selectRevisionMapping], (revisions) => Object.values(revisions));
@@ -3683,6 +3735,23 @@ var __publicField = (obj, key, value) => {
3683
3735
  }
3684
3736
  )
3685
3737
  );
3738
+ const selectComponentSubmissionMapping = toolkit.createSelector(
3739
+ [selectSubmissionMapping, selectComponentsMapping],
3740
+ (submissions, components) => {
3741
+ var _a2;
3742
+ const componentSubmissionMapping = {};
3743
+ for (const componentId in components) {
3744
+ componentSubmissionMapping[componentId] = [];
3745
+ }
3746
+ for (const submissionId in submissions) {
3747
+ const submission = submissions[submissionId];
3748
+ if (submission.component) {
3749
+ (_a2 = componentSubmissionMapping[submission.component]) == null ? void 0 : _a2.push(submission);
3750
+ }
3751
+ }
3752
+ return componentSubmissionMapping;
3753
+ }
3754
+ );
3686
3755
  const selectUserFormMapping = (state) => {
3687
3756
  return state.userFormReducer.userForms;
3688
3757
  };
@@ -4135,35 +4204,6 @@ var __publicField = (obj, key, value) => {
4135
4204
  }
4136
4205
  return void 0;
4137
4206
  }
4138
- function extractErrorMessage(errorRes, err) {
4139
- if (errorRes == null ? void 0 : errorRes.body) {
4140
- if (typeof errorRes.body === "object") {
4141
- if (typeof errorRes.body.error === "string")
4142
- return errorRes.body.error;
4143
- if (typeof errorRes.body.message === "string")
4144
- return errorRes.body.message;
4145
- try {
4146
- return Object.entries(errorRes.body).map(([key, value]) => {
4147
- if (typeof value === "string") {
4148
- return `${key}: ${value}`;
4149
- }
4150
- if (Array.isArray(value)) {
4151
- return value.map((v) => `${key}: ${v}`).join("\n");
4152
- }
4153
- return `${key}: ${JSON.stringify(value)}`;
4154
- }).join("\n");
4155
- } catch (e) {
4156
- console.error("Failed to extract error message from response body", e);
4157
- }
4158
- } else if (typeof errorRes.body === "string")
4159
- return errorRes.body;
4160
- } else if (errorRes == null ? void 0 : errorRes.text) {
4161
- return errorRes.text;
4162
- } else if (err instanceof Error) {
4163
- return err.message;
4164
- }
4165
- return void 0;
4166
- }
4167
4207
  async function performRequest(action, client) {
4168
4208
  async function checkToken() {
4169
4209
  if (client.auth.tokenIsExpiringSoon()) {
@@ -4266,8 +4306,11 @@ var __publicField = (obj, key, value) => {
4266
4306
  console.warn("No signed-in user to sign out.");
4267
4307
  }
4268
4308
  await client.auth.logout();
4269
- throw new APIError("You have been signed out due to inactivity.", errorResponse, {
4270
- discard: true
4309
+ throw new APIError({
4310
+ message: "You have been signed out due to inactivity.",
4311
+ response: errorResponse,
4312
+ discard: true,
4313
+ innerError: error2
4271
4314
  });
4272
4315
  }
4273
4316
  console.debug("Forbidden; renewing tokens and retrying.");
@@ -4275,10 +4318,7 @@ var __publicField = (obj, key, value) => {
4275
4318
  console.debug("Successfully renewed tokens; retrying request.");
4276
4319
  return requestToSend.query(queryParams);
4277
4320
  }
4278
- const apiErrorMessage = extractErrorMessage(errorResponse, error2) || "An unexpected error occurred.";
4279
- throw new APIError(apiErrorMessage, errorResponse, {
4280
- discard: discardStatuses.includes(status)
4281
- });
4321
+ throw new APIError({ response: errorResponse, innerError: error2, discard: discardStatuses.includes(status) });
4282
4322
  }
4283
4323
  }
4284
4324
  class MiddlewareChainerPrivate {
@@ -4489,13 +4529,11 @@ var __publicField = (obj, key, value) => {
4489
4529
  if (response) {
4490
4530
  promise.resolve(response.body);
4491
4531
  } else {
4492
- const error2 = new APIError(
4493
- "Could not get a response from the server.",
4532
+ const error2 = new APIError({
4533
+ message: "Could not get a response from the server.",
4494
4534
  response,
4495
- {
4496
- discard: true
4497
- }
4498
- );
4535
+ discard: true
4536
+ });
4499
4537
  promise.reject(error2);
4500
4538
  }
4501
4539
  };
@@ -4652,7 +4690,7 @@ var __publicField = (obj, key, value) => {
4652
4690
  offline_id,
4653
4691
  project,
4654
4692
  description: description2 ?? "",
4655
- submitted_at: (/* @__PURE__ */ new Date()).getTime() / 1e3,
4693
+ submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
4656
4694
  ...fileProps
4657
4695
  }
4658
4696
  });
@@ -7127,8 +7165,7 @@ var __publicField = (obj, key, value) => {
7127
7165
  blockers: [],
7128
7166
  blocks: []
7129
7167
  });
7130
- const organizationAccesses = result;
7131
- store.dispatch(setOrganizationAccesses(organizationAccesses));
7168
+ store.dispatch(setOrganizationAccesses(result));
7132
7169
  }
7133
7170
  }
7134
7171
  const cachedRequestPromises = {};
@@ -15780,11 +15817,13 @@ var __publicField = (obj, key, value) => {
15780
15817
  exports2.selectCompletedStages = selectCompletedStages;
15781
15818
  exports2.selectComponent = selectComponent;
15782
15819
  exports2.selectComponentAttachmentMapping = selectComponentAttachmentMapping;
15820
+ exports2.selectComponentSubmissionMapping = selectComponentSubmissionMapping;
15783
15821
  exports2.selectComponentType = selectComponentType;
15784
15822
  exports2.selectComponentTypeAttachmentMapping = selectComponentTypeAttachmentMapping;
15785
15823
  exports2.selectComponentTypeForm = selectComponentTypeForm;
15786
15824
  exports2.selectComponentTypeFromComponent = selectComponentTypeFromComponent;
15787
15825
  exports2.selectComponentTypeFromComponents = selectComponentTypeFromComponents;
15826
+ exports2.selectComponentTypeStagesMapping = selectComponentTypeStagesMapping;
15788
15827
  exports2.selectComponentTypes = selectComponentTypes;
15789
15828
  exports2.selectComponentTypesByName = selectComponentTypesByName;
15790
15829
  exports2.selectComponentTypesFromIds = selectComponentTypesFromIds;
@@ -15792,6 +15831,7 @@ var __publicField = (obj, key, value) => {
15792
15831
  exports2.selectComponents = selectComponents;
15793
15832
  exports2.selectComponentsByType = selectComponentsByType;
15794
15833
  exports2.selectComponentsFromComponentType = selectComponentsFromComponentType;
15834
+ exports2.selectComponentsMapping = selectComponentsMapping;
15795
15835
  exports2.selectCreateProjectType = selectCreateProjectType;
15796
15836
  exports2.selectCurrentUser = selectCurrentUser;
15797
15837
  exports2.selectDeletedRequests = selectDeletedRequests;
@@ -15889,6 +15929,7 @@ var __publicField = (obj, key, value) => {
15889
15929
  exports2.selectUser = selectUser;
15890
15930
  exports2.selectUserForm = selectUserForm;
15891
15931
  exports2.selectUserFormMapping = selectUserFormMapping;
15932
+ exports2.selectUserFormSubmission = selectUserFormSubmission;
15892
15933
  exports2.selectUsersAsMapping = selectUsersAsMapping;
15893
15934
  exports2.selectVisibleStatuses = selectVisibleStatuses;
15894
15935
  exports2.selectVisibleUserIds = selectVisibleUserIds;