velocious 1.0.468 → 1.0.469
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 +5 -3
- package/build/configuration-types.js +9 -1
- package/build/configuration.js +6 -1
- package/build/environment-handlers/node/cli/commands/generate/frontend-models.js +14 -2
- package/build/error-reporting/request-details.js +308 -0
- package/build/frontend-model-controller.js +3 -1
- package/build/src/configuration-types.d.ts +23 -1
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +9 -2
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +7 -2
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +9 -0
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +14 -3
- package/build/src/error-reporting/request-details.d.ts +7 -0
- package/build/src/error-reporting/request-details.d.ts.map +1 -0
- package/build/src/error-reporting/request-details.js +278 -0
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +4 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/configuration-types.js +9 -1
- package/src/configuration.js +6 -1
- package/src/environment-handlers/node/cli/commands/generate/frontend-models.js +14 -2
- package/src/error-reporting/request-details.js +308 -0
- package/src/frontend-model-controller.js +3 -1
package/README.md
CHANGED
|
@@ -591,16 +591,18 @@ const configuration = new Configuration({
|
|
|
591
591
|
|
|
592
592
|
This opt-in is ignored in `production`; production frontend-model responses never include internal exception details.
|
|
593
593
|
|
|
594
|
-
Backends can append client-safe metadata to frontend-model error responses with `configuration.addClientErrorPayloadReporter(...)`. Reporters receive the caught `error`, the current `request`, and a small `context` object, and should only return fields that are safe for clients to see. Frontend-model endpoint failures include `context.frontendModelEndpoint`, `action`, `commandType`, `model`, `requestId`, and `expectedError`. This is useful for attaching an error-reporting URL while keeping the normal production error message generic:
|
|
594
|
+
Backends can append client-safe metadata to frontend-model error responses with `configuration.addClientErrorPayloadReporter(...)`. Reporters receive the caught `error`, the current `request`, a safe `requestDetails` snapshot, and a small `context` object, and should only return fields that are safe for clients to see. Frontend-model endpoint failures include `context.frontendModelEndpoint`, `action`, `commandType`, `model`, `requestId`, and `expectedError`. This is useful for attaching an error-reporting URL while keeping the normal production error message generic:
|
|
595
595
|
|
|
596
596
|
```js
|
|
597
|
-
configuration.addClientErrorPayloadReporter(async ({error,
|
|
598
|
-
const report = await reportErrorToService({error,
|
|
597
|
+
configuration.addClientErrorPayloadReporter(async ({error, requestDetails, context}) => {
|
|
598
|
+
const report = await reportErrorToService({error, requestDetails, context})
|
|
599
599
|
|
|
600
600
|
return {bugReportUrl: report.url}
|
|
601
601
|
})
|
|
602
602
|
```
|
|
603
603
|
|
|
604
|
+
`requestDetails` includes `httpMethod`, `path`, and a parsed `body` snapshot when available. The body snapshot redacts common secret keys, truncates large strings and arrays, summarizes uploaded files and buffers without bytes, and compacts oversized frontend-model batches while preserving `requestId`, `model`, `commandType` / `customPath`, and payload shape.
|
|
605
|
+
|
|
604
606
|
For sqlite web databases, Velocious defaults to `https://sql.js.org/dist/<file>` for `sql.js` wasm loading. You can override wasm resolution per database config with `locateFile`:
|
|
605
607
|
|
|
606
608
|
```js
|
|
@@ -212,6 +212,13 @@
|
|
|
212
212
|
* @typedef {Record<string, import("./frontend-models/query.js").FrontendModelTransportValue>} ClientErrorPayloadReporterPayload
|
|
213
213
|
*/
|
|
214
214
|
|
|
215
|
+
/**
|
|
216
|
+
* @typedef {object} ErrorRequestDetails
|
|
217
|
+
* @property {?} [body] - Sanitized parsed request body, when available.
|
|
218
|
+
* @property {string} httpMethod - Request HTTP method.
|
|
219
|
+
* @property {string} path - Request path.
|
|
220
|
+
*/
|
|
221
|
+
|
|
215
222
|
/**
|
|
216
223
|
* @typedef {object} ClientErrorPayloadContext
|
|
217
224
|
* @property {string} controller - Controller class name.
|
|
@@ -227,7 +234,8 @@
|
|
|
227
234
|
* @typedef {function({
|
|
228
235
|
* context: ClientErrorPayloadContext,
|
|
229
236
|
* error: Error,
|
|
230
|
-
* request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default | undefined
|
|
237
|
+
* request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default | undefined,
|
|
238
|
+
* requestDetails: ErrorRequestDetails | null
|
|
231
239
|
* }): Promise<ClientErrorPayloadReporterPayload | void> | ClientErrorPayloadReporterPayload | void} ClientErrorPayloadReporterType
|
|
232
240
|
*/
|
|
233
241
|
|
package/build/configuration.js
CHANGED
|
@@ -18,6 +18,7 @@ import Ability from "./authorization/ability.js"
|
|
|
18
18
|
import EventEmitter from "./utils/event-emitter.js"
|
|
19
19
|
import VelociousWebsocketChannelSubscribers from "./http-server/websocket-channel-subscribers.js"
|
|
20
20
|
import {CurrentConfigurationNotSetError, currentConfiguration, setCurrentConfiguration} from "./current-configuration.js"
|
|
21
|
+
import {requestDetails} from "./error-reporting/request-details.js"
|
|
21
22
|
import {frontendModelResourceClassFromDefinition, frontendModelResourceConfigurationFromDefinition, frontendModelResourcesForBackendProject} from "./frontend-models/resource-definition.js"
|
|
22
23
|
import PluginRoutes from "./routes/plugin-routes.js"
|
|
23
24
|
import restArgsError from "./utils/rest-args-error.js"
|
|
@@ -2411,9 +2412,13 @@ export default class VelociousConfiguration {
|
|
|
2411
2412
|
async clientErrorPayloadForError(args) {
|
|
2412
2413
|
/** @type {import("./configuration-types.js").ClientErrorPayloadReporterPayload} */
|
|
2413
2414
|
const payload = {}
|
|
2415
|
+
const details = requestDetails(args.request)
|
|
2414
2416
|
|
|
2415
2417
|
for (const reporter of this._clientErrorPayloadReporters) {
|
|
2416
|
-
const reporterPayload = await reporter(
|
|
2418
|
+
const reporterPayload = await reporter({
|
|
2419
|
+
...args,
|
|
2420
|
+
requestDetails: details
|
|
2421
|
+
})
|
|
2417
2422
|
|
|
2418
2423
|
if (reporterPayload && typeof reporterPayload === "object") {
|
|
2419
2424
|
Object.assign(payload, reporterPayload)
|
|
@@ -1852,7 +1852,7 @@ export default class DbGenerateFrontendModels extends BaseCommand {
|
|
|
1852
1852
|
throw new Error(`Could not parse JSDoc return type from: ${jsDocText}`)
|
|
1853
1853
|
}
|
|
1854
1854
|
|
|
1855
|
-
const returnType = jsDocText.slice(typeOpenIndex + 1, typeCloseIndex)
|
|
1855
|
+
const returnType = this.normalizeJsDocType(jsDocText.slice(typeOpenIndex + 1, typeCloseIndex))
|
|
1856
1856
|
|
|
1857
1857
|
if (returnType.length < 1) {
|
|
1858
1858
|
throw new Error(`Expected non-empty JSDoc return type in: ${jsDocText}`)
|
|
@@ -1861,6 +1861,18 @@ export default class DbGenerateFrontendModels extends BaseCommand {
|
|
|
1861
1861
|
return returnType
|
|
1862
1862
|
}
|
|
1863
1863
|
|
|
1864
|
+
/**
|
|
1865
|
+
* Collapses a JSDoc type spanning multiple comment lines into a single line so it can
|
|
1866
|
+
* be emitted into an inline type-assertion cast. A multiline backend return type keeps
|
|
1867
|
+
* its leading continuation asterisks in the captured substring, which are invalid inside
|
|
1868
|
+
* an inline cast and make TypeScript read the asserted type as `undefined`.
|
|
1869
|
+
* @param {string} jsDocType - Raw captured JSDoc type, possibly multiline.
|
|
1870
|
+
* @returns {string} - Single-line JSDoc type.
|
|
1871
|
+
*/
|
|
1872
|
+
normalizeJsDocType(jsDocType) {
|
|
1873
|
+
return jsDocType.replace(/\s*\n\s*\*?[ \t]*/g, " ").trim()
|
|
1874
|
+
}
|
|
1875
|
+
|
|
1864
1876
|
/**
|
|
1865
1877
|
* Runs js doc parameters.
|
|
1866
1878
|
* @param {string} jsDocText - JSDoc text inside comment markers.
|
|
@@ -1879,7 +1891,7 @@ export default class DbGenerateFrontendModels extends BaseCommand {
|
|
|
1879
1891
|
throw new Error(`Could not parse JSDoc parameter type from: ${jsDocText}`)
|
|
1880
1892
|
}
|
|
1881
1893
|
|
|
1882
|
-
const type = jsDocText.slice(typeOpenIndex + 1, typeCloseIndex)
|
|
1894
|
+
const type = this.normalizeJsDocType(jsDocText.slice(typeOpenIndex + 1, typeCloseIndex))
|
|
1883
1895
|
|
|
1884
1896
|
if (type.length < 1) {
|
|
1885
1897
|
throw new Error(`Expected non-empty JSDoc parameter type in: ${jsDocText}`)
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import UploadedFile from "../http-server/client/uploaded-file/uploaded-file.js"
|
|
4
|
+
|
|
5
|
+
const REQUEST_DETAILS_BODY_MAX_SERIALIZED_LENGTH = 12000
|
|
6
|
+
const REQUEST_DETAILS_STRING_MAX_LENGTH = 1000
|
|
7
|
+
const REQUEST_DETAILS_ARRAY_MAX_ITEMS = 50
|
|
8
|
+
const REDACTED_REQUEST_DETAILS_VALUE = "[redacted]"
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Extracts request metadata without retaining the request object.
|
|
12
|
+
* @param {import("../http-server/client/request.js").default | import("../http-server/client/websocket-request.js").default | undefined} request - Request object, when present.
|
|
13
|
+
* @returns {import("../configuration-types.js").ErrorRequestDetails | null} - Request metadata.
|
|
14
|
+
*/
|
|
15
|
+
export function requestDetails(request) {
|
|
16
|
+
if (!request) return null
|
|
17
|
+
|
|
18
|
+
let details
|
|
19
|
+
|
|
20
|
+
try {
|
|
21
|
+
details = {
|
|
22
|
+
httpMethod: request.httpMethod(),
|
|
23
|
+
path: request.path()
|
|
24
|
+
}
|
|
25
|
+
} catch {
|
|
26
|
+
return null
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const body = requestBodySnapshot(request)
|
|
30
|
+
|
|
31
|
+
if (body !== undefined) {
|
|
32
|
+
return {...details, body}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return details
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Snapshots parsed request params for error reports.
|
|
40
|
+
* @param {import("../http-server/client/request.js").default | import("../http-server/client/websocket-request.js").default} request - Request object.
|
|
41
|
+
* @returns {? | undefined} - Sanitized body snapshot.
|
|
42
|
+
*/
|
|
43
|
+
function requestBodySnapshot(request) {
|
|
44
|
+
if (typeof request.params !== "function") return undefined
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
return requestDetailsBodySnapshot(request.params())
|
|
48
|
+
} catch (error) {
|
|
49
|
+
return {
|
|
50
|
+
__unavailable: true,
|
|
51
|
+
error: error instanceof Error ? error.message : String(error)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Builds a bounded, redacted body snapshot for error reports.
|
|
58
|
+
* @param {?} body - Parsed request body.
|
|
59
|
+
* @returns {?} - Sanitized body snapshot.
|
|
60
|
+
*/
|
|
61
|
+
function requestDetailsBodySnapshot(body) {
|
|
62
|
+
const originalLength = serializedLength(body)
|
|
63
|
+
const sanitized = sanitizeRequestDetailsValue(body)
|
|
64
|
+
const sanitizedLength = serializedLength(sanitized)
|
|
65
|
+
|
|
66
|
+
if (originalLength <= REQUEST_DETAILS_BODY_MAX_SERIALIZED_LENGTH && sanitizedLength <= REQUEST_DETAILS_BODY_MAX_SERIALIZED_LENGTH) {
|
|
67
|
+
return sanitized
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const compactFrontendModelBody = compactFrontendModelRequestBody(sanitized, originalLength)
|
|
71
|
+
|
|
72
|
+
if (serializedLength(compactFrontendModelBody) <= REQUEST_DETAILS_BODY_MAX_SERIALIZED_LENGTH) {
|
|
73
|
+
return compactFrontendModelBody
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return compactRequestDetailsBody(sanitized, originalLength)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Sanitizes a value recursively for request details.
|
|
81
|
+
* @param {?} value - Value to sanitize.
|
|
82
|
+
* @param {string} [key] - Current object key.
|
|
83
|
+
* @param {WeakSet<object>} [seen] - Seen object references.
|
|
84
|
+
* @returns {?} - Sanitized value.
|
|
85
|
+
*/
|
|
86
|
+
function sanitizeRequestDetailsValue(value, key = "", seen = new WeakSet()) {
|
|
87
|
+
if (sensitiveRequestDetailsKey(key)) return REDACTED_REQUEST_DETAILS_VALUE
|
|
88
|
+
if (primitiveRequestDetailsValue(value)) return value
|
|
89
|
+
if (bufferValue(value)) return bufferRequestDetailsSummary(value)
|
|
90
|
+
if (value instanceof UploadedFile) return uploadedFileRequestDetailsSummary(value)
|
|
91
|
+
if (typeof value === "string") return sanitizeRequestDetailsString(value)
|
|
92
|
+
if (Array.isArray(value)) return sanitizeRequestDetailsArray(value, seen)
|
|
93
|
+
if (typeof value === "object") return sanitizeRequestDetailsObject(value, seen)
|
|
94
|
+
|
|
95
|
+
return String(value)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Checks whether a value can be kept as-is.
|
|
100
|
+
* @param {?} value - Value.
|
|
101
|
+
* @returns {boolean} - Whether the value is primitive and safe.
|
|
102
|
+
*/
|
|
103
|
+
function primitiveRequestDetailsValue(value) {
|
|
104
|
+
return value == null || typeof value === "boolean" || typeof value === "number"
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Sanitizes a string value.
|
|
109
|
+
* @param {string} value - String value.
|
|
110
|
+
* @returns {string} - Sanitized string.
|
|
111
|
+
*/
|
|
112
|
+
function sanitizeRequestDetailsString(value) {
|
|
113
|
+
if (value.length <= REQUEST_DETAILS_STRING_MAX_LENGTH) return value
|
|
114
|
+
|
|
115
|
+
return `${value.slice(0, REQUEST_DETAILS_STRING_MAX_LENGTH)}... [truncated ${value.length - REQUEST_DETAILS_STRING_MAX_LENGTH} chars]`
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Sanitizes an array value.
|
|
120
|
+
* @param {Array<?>} value - Array value.
|
|
121
|
+
* @param {WeakSet<object>} seen - Seen object references.
|
|
122
|
+
* @returns {Array<?>} - Sanitized array.
|
|
123
|
+
*/
|
|
124
|
+
function sanitizeRequestDetailsArray(value, seen) {
|
|
125
|
+
const entries = value
|
|
126
|
+
.slice(0, REQUEST_DETAILS_ARRAY_MAX_ITEMS)
|
|
127
|
+
.map((entry) => sanitizeRequestDetailsValue(entry, "", seen))
|
|
128
|
+
|
|
129
|
+
if (value.length > REQUEST_DETAILS_ARRAY_MAX_ITEMS) {
|
|
130
|
+
entries.push({__omittedItems: value.length - REQUEST_DETAILS_ARRAY_MAX_ITEMS})
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return entries
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Sanitizes a plain object-like value.
|
|
138
|
+
* @param {object} value - Object value.
|
|
139
|
+
* @param {WeakSet<object>} seen - Seen object references.
|
|
140
|
+
* @returns {Record<string, ?> | string} - Sanitized object or circular marker.
|
|
141
|
+
*/
|
|
142
|
+
function sanitizeRequestDetailsObject(value, seen) {
|
|
143
|
+
if (seen.has(value)) return "[circular]"
|
|
144
|
+
|
|
145
|
+
seen.add(value)
|
|
146
|
+
|
|
147
|
+
/** @type {Record<string, ?>} */
|
|
148
|
+
const sanitized = {}
|
|
149
|
+
|
|
150
|
+
for (const [entryKey, entryValue] of Object.entries(value)) {
|
|
151
|
+
sanitized[entryKey] = sanitizeRequestDetailsValue(entryValue, entryKey, seen)
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
seen.delete(value)
|
|
155
|
+
|
|
156
|
+
return sanitized
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Checks whether a value is a Node.js Buffer.
|
|
161
|
+
* @param {?} value - Value.
|
|
162
|
+
* @returns {value is Buffer} - Whether value is a Buffer.
|
|
163
|
+
*/
|
|
164
|
+
function bufferValue(value) {
|
|
165
|
+
return typeof Buffer !== "undefined" && typeof Buffer.isBuffer === "function" && Buffer.isBuffer(value)
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Summarizes raw binary data without serializing bytes.
|
|
170
|
+
* @param {Buffer} buffer - Uploaded or request buffer.
|
|
171
|
+
* @returns {Record<string, ?>} - Request-safe buffer summary.
|
|
172
|
+
*/
|
|
173
|
+
function bufferRequestDetailsSummary(buffer) {
|
|
174
|
+
return {
|
|
175
|
+
__redacted: true,
|
|
176
|
+
__type: "Buffer",
|
|
177
|
+
byteLength: buffer.byteLength
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Summarizes uploaded files without serializing file bytes or temp paths.
|
|
183
|
+
* @param {UploadedFile} uploadedFile - Uploaded file object.
|
|
184
|
+
* @returns {Record<string, ?>} - Request-safe upload summary.
|
|
185
|
+
*/
|
|
186
|
+
function uploadedFileRequestDetailsSummary(uploadedFile) {
|
|
187
|
+
return {
|
|
188
|
+
__redacted: true,
|
|
189
|
+
__type: "UploadedFile",
|
|
190
|
+
contentType: uploadedFile.contentType() ?? null,
|
|
191
|
+
fieldName: uploadedFile.fieldName(),
|
|
192
|
+
filename: uploadedFile.filename(),
|
|
193
|
+
size: uploadedFile.size()
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Checks whether a key should be redacted from request details.
|
|
199
|
+
* @param {string} key - Object key.
|
|
200
|
+
* @returns {boolean} - Whether the value is sensitive.
|
|
201
|
+
*/
|
|
202
|
+
function sensitiveRequestDetailsKey(key) {
|
|
203
|
+
return /authorization|contentBase64|password|secret|sessionToken|token/i.test(key)
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Compacts a frontend-model request envelope while preserving debugging shape.
|
|
208
|
+
* @param {?} value - Sanitized body value.
|
|
209
|
+
* @param {number} originalSerializedLength - Byte count before redaction or compaction.
|
|
210
|
+
* @returns {?} - Compacted body value.
|
|
211
|
+
*/
|
|
212
|
+
function compactFrontendModelRequestBody(value, originalSerializedLength) {
|
|
213
|
+
if (!value || typeof value !== "object" || !Array.isArray(/** @type {Record<string, ?>} */ (value).requests)) {
|
|
214
|
+
return compactRequestDetailsBody(value, originalSerializedLength)
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return {
|
|
218
|
+
__truncated: true,
|
|
219
|
+
originalSerializedLength,
|
|
220
|
+
requests: /** @type {Array<?>} */ (/** @type {Record<string, ?>} */ (value).requests).map((request) => {
|
|
221
|
+
return compactFrontendModelRequest(request)
|
|
222
|
+
})
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Compacts one frontend-model request entry.
|
|
228
|
+
* @param {?} value - Candidate request entry from the transport envelope.
|
|
229
|
+
* @returns {?} - Compacted request.
|
|
230
|
+
*/
|
|
231
|
+
function compactFrontendModelRequest(value) {
|
|
232
|
+
if (!value || typeof value !== "object") return value
|
|
233
|
+
|
|
234
|
+
const request = /** @type {Record<string, ?>} */ (value)
|
|
235
|
+
/** @type {Record<string, ?>} */
|
|
236
|
+
const compact = {}
|
|
237
|
+
|
|
238
|
+
for (const key of ["requestId", "model", "commandType", "customPath"]) {
|
|
239
|
+
if (request[key] !== undefined) compact[key] = request[key]
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
if (request.payload !== undefined) {
|
|
243
|
+
compact.payload = compactFrontendModelPayload(request.payload)
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
return compact
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Compacts a frontend-model payload.
|
|
251
|
+
* @param {?} value - Candidate payload from a request entry.
|
|
252
|
+
* @returns {?} - Compacted payload.
|
|
253
|
+
*/
|
|
254
|
+
function compactFrontendModelPayload(value) {
|
|
255
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return value
|
|
256
|
+
|
|
257
|
+
const payload = /** @type {Record<string, ?>} */ (value)
|
|
258
|
+
/** @type {Record<string, ?>} */
|
|
259
|
+
const compact = {}
|
|
260
|
+
|
|
261
|
+
for (const [key, entryValue] of Object.entries(payload)) {
|
|
262
|
+
compact[key] = compactFrontendModelPayloadEntry({key, value: entryValue})
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
return compact
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Compacts one frontend-model payload entry.
|
|
270
|
+
* @param {{key: string, value: ?}} args - Payload entry.
|
|
271
|
+
* @returns {?} - Compacted value.
|
|
272
|
+
*/
|
|
273
|
+
function compactFrontendModelPayloadEntry({key, value}) {
|
|
274
|
+
if (key !== "attributes" || !value || typeof value !== "object" || Array.isArray(value)) {
|
|
275
|
+
return value
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
return {__keys: Object.keys(/** @type {Record<string, ?>} */ (value))}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Builds a last-resort compact body summary.
|
|
283
|
+
* @param {?} value - Sanitized body.
|
|
284
|
+
* @param {number} originalSerializedLength - Byte count before redaction or compaction.
|
|
285
|
+
* @returns {Record<string, ?>} - Compact summary.
|
|
286
|
+
*/
|
|
287
|
+
function compactRequestDetailsBody(value, originalSerializedLength) {
|
|
288
|
+
return {
|
|
289
|
+
__truncated: true,
|
|
290
|
+
originalSerializedLength,
|
|
291
|
+
topLevelKeys: value && typeof value === "object" && !Array.isArray(value)
|
|
292
|
+
? Object.keys(/** @type {Record<string, ?>} */ (value))
|
|
293
|
+
: []
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Measures JSON serialized length.
|
|
299
|
+
* @param {?} value - Value to measure.
|
|
300
|
+
* @returns {number} - Serialized length, or Infinity when not serializable.
|
|
301
|
+
*/
|
|
302
|
+
function serializedLength(value) {
|
|
303
|
+
try {
|
|
304
|
+
return JSON.stringify(value).length
|
|
305
|
+
} catch {
|
|
306
|
+
return Infinity
|
|
307
|
+
}
|
|
308
|
+
}
|
|
@@ -8,6 +8,7 @@ import {frontendModelResourcesWithBuiltInsForBackendProject} from "./frontend-mo
|
|
|
8
8
|
import {frontendModelResourceClassFromDefinition, frontendModelResourceConfigurationFromDefinition, frontendModelResourcePath, frontendModelResourcesForBackendProject} from "./frontend-models/resource-definition.js"
|
|
9
9
|
import {FrontendModelQueryError, normalizeGroup as normalizeQueryGroup, normalizeJoins as normalizeQueryJoins, normalizePluck as normalizeQueryPluck, normalizePreload as normalizeQueryPreload, normalizeSearchOperator as normalizeQuerySearchOperator, normalizeSort as normalizeQuerySort} from "./frontend-models/query.js"
|
|
10
10
|
import {assignSafeProperty, deserializeFrontendModelTransportValue, isBackendModelInstance, serializeFrontendModelTransportValue} from "./frontend-models/transport-serialization.js"
|
|
11
|
+
import {requestDetails} from "./error-reporting/request-details.js"
|
|
11
12
|
import RoutesResolver from "./routes/resolver.js"
|
|
12
13
|
import {ValidationError} from "./database/record/index.js"
|
|
13
14
|
import { normalizeDateStringForWrite } from "./database/datetime-storage.js"
|
|
@@ -3183,7 +3184,8 @@ export default class FrontendModelController extends Controller {
|
|
|
3183
3184
|
const errorPayload = {
|
|
3184
3185
|
context: errorContext,
|
|
3185
3186
|
error: error instanceof Error ? error : new Error(String(error)),
|
|
3186
|
-
request: this.getRequest()
|
|
3187
|
+
request: this.getRequest(),
|
|
3188
|
+
requestDetails: requestDetails(this.getRequest())
|
|
3187
3189
|
}
|
|
3188
3190
|
|
|
3189
3191
|
this.getConfiguration().getErrorEvents().emit("framework-error", errorPayload)
|
|
@@ -186,6 +186,12 @@
|
|
|
186
186
|
/**
|
|
187
187
|
* @typedef {Record<string, import("./frontend-models/query.js").FrontendModelTransportValue>} ClientErrorPayloadReporterPayload
|
|
188
188
|
*/
|
|
189
|
+
/**
|
|
190
|
+
* @typedef {object} ErrorRequestDetails
|
|
191
|
+
* @property {?} [body] - Sanitized parsed request body, when available.
|
|
192
|
+
* @property {string} httpMethod - Request HTTP method.
|
|
193
|
+
* @property {string} path - Request path.
|
|
194
|
+
*/
|
|
189
195
|
/**
|
|
190
196
|
* @typedef {object} ClientErrorPayloadContext
|
|
191
197
|
* @property {string} controller - Controller class name.
|
|
@@ -200,7 +206,8 @@
|
|
|
200
206
|
* @typedef {function({
|
|
201
207
|
* context: ClientErrorPayloadContext,
|
|
202
208
|
* error: Error,
|
|
203
|
-
* request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default | undefined
|
|
209
|
+
* request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default | undefined,
|
|
210
|
+
* requestDetails: ErrorRequestDetails | null
|
|
204
211
|
* }): Promise<ClientErrorPayloadReporterPayload | void> | ClientErrorPayloadReporterPayload | void} ClientErrorPayloadReporterType
|
|
205
212
|
*/
|
|
206
213
|
/**
|
|
@@ -878,6 +885,20 @@ export type ScheduledBackgroundJobConfiguration = {
|
|
|
878
885
|
};
|
|
879
886
|
export type VelociousParams = Record<string, string>;
|
|
880
887
|
export type ClientErrorPayloadReporterPayload = Record<string, import("./frontend-models/query.js").FrontendModelTransportValue>;
|
|
888
|
+
export type ErrorRequestDetails = {
|
|
889
|
+
/**
|
|
890
|
+
* - Sanitized parsed request body, when available.
|
|
891
|
+
*/
|
|
892
|
+
body?: unknown;
|
|
893
|
+
/**
|
|
894
|
+
* - Request HTTP method.
|
|
895
|
+
*/
|
|
896
|
+
httpMethod: string;
|
|
897
|
+
/**
|
|
898
|
+
* - Request path.
|
|
899
|
+
*/
|
|
900
|
+
path: string;
|
|
901
|
+
};
|
|
881
902
|
export type ClientErrorPayloadContext = {
|
|
882
903
|
/**
|
|
883
904
|
* - Controller class name.
|
|
@@ -912,6 +933,7 @@ export type ClientErrorPayloadReporterType = (arg0: {
|
|
|
912
933
|
context: ClientErrorPayloadContext;
|
|
913
934
|
error: Error;
|
|
914
935
|
request: import("./http-server/client/request.js").default | import("./http-server/client/websocket-request.js").default | undefined;
|
|
936
|
+
requestDetails: ErrorRequestDetails | null;
|
|
915
937
|
}) => Promise<ClientErrorPayloadReporterPayload | void> | ClientErrorPayloadReporterPayload | void;
|
|
916
938
|
export type VelociousLooseObject = Record<string, unknown> & {
|
|
917
939
|
configuration?: import("./configuration.js").default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-types.d.ts","sourceRoot":"","sources":["../../src/configuration-types.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"configuration-types.d.ts","sourceRoot":"","sources":["../../src/configuration-types.js"],"names":[],"mappings":"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"}
|