@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.
- package/README.md +4 -4
- package/dist/overmap-core.js +99 -58
- package/dist/overmap-core.js.map +1 -1
- package/dist/overmap-core.umd.cjs +99 -58
- package/dist/overmap-core.umd.cjs.map +1 -1
- package/dist/sdk/errors.d.ts +6 -3
- package/dist/sdk/services/CategoryService.d.ts +2 -2
- package/dist/sdk/services/ComponentStageCompletionService.d.ts +2 -2
- package/dist/sdk/services/WorkspaceService.d.ts +2 -2
- package/dist/store/slices/componentSlice.d.ts +1 -0
- package/dist/store/slices/componentStageSlice.d.ts +1 -0
- package/dist/store/slices/userFormSlice.d.ts +2 -0
- package/dist/typings/models/base.d.ts +5 -0
- package/dist/typings/models/components.d.ts +2 -3
- package/package.json +152 -152
|
@@ -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(
|
|
213
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 = (
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
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
|
-
|
|
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(
|
|
4270
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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()).
|
|
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
|
-
|
|
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;
|