@forestadmin/agent-bff 1.23.5 → 1.23.7
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 +13 -2
- package/dist/action/action-execute-mapper.d.ts +3 -3
- package/dist/action/action-form-mapper.d.ts +2 -1
- package/dist/action/action-form-mapper.js +12 -8
- package/dist/action/action-routes-middleware.js +15 -4
- package/dist/action/action-values-validator.d.ts +4 -0
- package/dist/action/action-values-validator.js +79 -0
- package/dist/action/agent-action-client.d.ts +1 -0
- package/dist/action/agent-action-client.js +1 -1
- package/dist/agent/create-agent-http-requester.d.ts +3 -0
- package/dist/agent/create-agent-http-requester.js +25 -12
- package/dist/cli-core.js +25 -4
- package/dist/context/build-context.d.ts +1 -1
- package/dist/data/agent-query.d.ts +15 -28
- package/dist/data/agent-query.js +66 -35
- package/dist/data/data-routes-middleware.js +5 -5
- package/dist/data/request-schemas.d.ts +37 -16
- package/dist/data/request-schemas.js +24 -18
- package/dist/http/agent-error-mapper.d.ts +2 -1
- package/dist/http/agent-error-mapper.js +8 -1
- package/dist/http/bff-http-error.d.ts +1 -0
- package/dist/http/bff-http-error.js +5 -1
- package/dist/openapi/collect-unfolding.js +12 -7
- package/dist/openapi/field-schemas.d.ts +5 -4
- package/dist/openapi/field-schemas.js +24 -22
- package/dist/openapi/openapi-document.js +18 -16
- package/dist/openapi/schemas.d.ts +44 -15
- package/dist/openapi/schemas.js +155 -41
- package/dist/openapi/unfolded-paths.js +86 -50
- package/dist/openapi/unfolding.d.ts +2 -1
- package/dist/read-model/capabilities-cache.d.ts +1 -11
- package/dist/read-model/capabilities-cache.js +1 -1
- package/dist/read-model/field-type.d.ts +17 -0
- package/dist/read-model/field-type.js +42 -0
- package/dist/validation/validation-errors.d.ts +6 -0
- package/dist/validation/validation-errors.js +14 -1
- package/package.json +4 -4
package/dist/data/agent-query.js
CHANGED
|
@@ -11,6 +11,7 @@ exports.parseRelationListRequest = parseRelationListRequest;
|
|
|
11
11
|
exports.parseRelationCountRequest = parseRelationCountRequest;
|
|
12
12
|
exports.collectCountFieldPaths = collectCountFieldPaths;
|
|
13
13
|
const request_schemas_1 = require("./request-schemas");
|
|
14
|
+
const bff_http_error_1 = require("../http/bff-http-error");
|
|
14
15
|
const bff_local_errors_1 = require("../http/bff-local-errors");
|
|
15
16
|
const capabilities_validator_1 = require("../validation/capabilities-validator");
|
|
16
17
|
Object.defineProperty(exports, "MAX_PARSED_FILTER_DEPTH", { enumerable: true, get: function () { return capabilities_validator_1.MAX_FILTER_DEPTH; } });
|
|
@@ -18,55 +19,80 @@ const validation_errors_1 = require("../validation/validation-errors");
|
|
|
18
19
|
function isPlainObject(value) {
|
|
19
20
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
+
const LEAF_KEYS = ['field', 'operator', 'value'];
|
|
23
|
+
const BRANCH_KEYS = ['aggregator', 'conditions'];
|
|
24
|
+
function loggingRejections(logger, parse) {
|
|
25
|
+
try {
|
|
26
|
+
return parse();
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
if (error instanceof bff_http_error_1.BffHttpError) {
|
|
30
|
+
logger('Warn', 'Request body rejected', { reason: error.message });
|
|
31
|
+
}
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// The tree is closed like the flat body is: a leaf carrying `valu` instead of `value` builds a
|
|
36
|
+
// condition with `value: undefined`, which the agent reads as null and runs — a typo must not
|
|
37
|
+
// silently change the returned rows.
|
|
38
|
+
function assertNoStrayKey(node, allowed) {
|
|
39
|
+
const stray = Object.keys(node).find(key => !allowed.includes(key));
|
|
40
|
+
if (stray !== undefined) {
|
|
41
|
+
throw (0, bff_local_errors_1.invalidRequest)(`A filter node cannot carry "${stray}"`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function assertFilterNode(node, depth = 0) {
|
|
22
45
|
if (depth > capabilities_validator_1.MAX_FILTER_DEPTH)
|
|
23
46
|
throw (0, validation_errors_1.filterTooDeep)(capabilities_validator_1.MAX_FILTER_DEPTH);
|
|
24
|
-
if (
|
|
47
|
+
if (!isPlainObject(node))
|
|
25
48
|
return;
|
|
26
49
|
const readableAsBranch = (0, capabilities_validator_1.isBranch)(node);
|
|
27
50
|
if ((0, capabilities_validator_1.isLeaf)(node) && readableAsBranch) {
|
|
28
51
|
throw (0, bff_local_errors_1.invalidRequest)('A filter node cannot carry both "field" and "conditions"');
|
|
29
52
|
}
|
|
30
53
|
if (readableAsBranch) {
|
|
31
|
-
node
|
|
54
|
+
assertNoStrayKey(node, BRANCH_KEYS);
|
|
55
|
+
node.conditions.forEach(condition => assertFilterNode(condition, depth + 1));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if ((0, capabilities_validator_1.isLeaf)(node)) {
|
|
59
|
+
assertNoStrayKey(node, LEAF_KEYS);
|
|
60
|
+
return;
|
|
32
61
|
}
|
|
62
|
+
// Neither readable as a leaf nor as a branch: `feild` instead of `field` reaches the agent as a
|
|
63
|
+
// node it cannot act on. An empty object stays allowed — it is how an absent filter is spelled.
|
|
64
|
+
assertNoStrayKey(node, []);
|
|
33
65
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Checks the flat inputs against the shared schema and reports the first failure as
|
|
36
|
-
* 400 invalid_request, so a malformed shape (`projection` as a string, a fractional `page.limit`)
|
|
37
|
-
* surfaces as a client error rather than a 500 from an array method blowing up downstream.
|
|
38
|
-
*
|
|
39
|
-
* Unknown keys are left alone: the object schemas ignore them, so `filter`, `timezone` and
|
|
40
|
-
* `parentId` travel through untouched and the body is returned by reference, not rebuilt.
|
|
41
|
-
*/
|
|
42
66
|
function assertFlatInputs(schema, body) {
|
|
43
67
|
const result = schema.safeParse(body);
|
|
44
68
|
if (result.success)
|
|
45
69
|
return;
|
|
46
|
-
const
|
|
70
|
+
const { issues } = result.error;
|
|
71
|
+
const issue = issues.find(candidate => candidate.code === 'unrecognized_keys') ?? issues[0];
|
|
47
72
|
const path = issue.path.join('.');
|
|
48
|
-
|
|
73
|
+
const reason = path ? `${path}: ${issue.message}` : issue.message;
|
|
74
|
+
throw (0, bff_local_errors_1.invalidRequest)(reason);
|
|
49
75
|
}
|
|
50
76
|
function assertFilter(filter) {
|
|
51
77
|
if (filter === undefined)
|
|
52
78
|
return;
|
|
53
79
|
if (!isPlainObject(filter))
|
|
54
80
|
throw (0, bff_local_errors_1.invalidRequest)('filter must be an object');
|
|
55
|
-
|
|
81
|
+
assertFilterNode(filter);
|
|
56
82
|
}
|
|
57
|
-
function
|
|
58
|
-
if (!isPlainObject(body))
|
|
83
|
+
function parseRequest(schema, body) {
|
|
84
|
+
if (!isPlainObject(body)) {
|
|
59
85
|
throw (0, bff_local_errors_1.invalidRequest)('Request body must be an object');
|
|
60
|
-
|
|
86
|
+
}
|
|
87
|
+
assertFlatInputs(schema, body);
|
|
61
88
|
assertFilter(body.filter);
|
|
62
89
|
return body;
|
|
63
90
|
}
|
|
64
|
-
function
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return body;
|
|
91
|
+
function parseListRequest(body, logger) {
|
|
92
|
+
return loggingRejections(logger, () => parseRequest(request_schemas_1.ListFlatInputs, body));
|
|
93
|
+
}
|
|
94
|
+
function parseCountRequest(body, logger) {
|
|
95
|
+
return loggingRejections(logger, () => parseRequest(request_schemas_1.CountFlatInputs, body));
|
|
70
96
|
}
|
|
71
97
|
function collectFilterFields(filter, acc) {
|
|
72
98
|
if ((0, capabilities_validator_1.isBranch)(filter)) {
|
|
@@ -79,9 +105,6 @@ function collectFilterFields(filter, acc) {
|
|
|
79
105
|
function serializeSort(sort) {
|
|
80
106
|
return sort.map(({ field, direction }) => (direction === 'desc' ? `-${field}` : field)).join(',');
|
|
81
107
|
}
|
|
82
|
-
// `parseListRequest` guarantees `limit` > 0 and `offset` >= 0 are integers; this only enforces the
|
|
83
|
-
// page-model rule. The agent paginates by page number/size, so an arbitrary offset that is not a
|
|
84
|
-
// whole multiple of the limit cannot be expressed — reject it rather than return a shifted window.
|
|
85
108
|
function serializePage(page) {
|
|
86
109
|
const { limit, offset } = page;
|
|
87
110
|
if (offset % limit !== 0) {
|
|
@@ -140,10 +163,11 @@ function collectListFieldPaths(body) {
|
|
|
140
163
|
// The parent record id is opaque: a packed/composite id must survive unchanged, so its content is
|
|
141
164
|
// never inspected — only presence and primitive type. A finite number (single numeric pk) is
|
|
142
165
|
// coerced to string; anything else is a BFF-local 400 with no agent call.
|
|
143
|
-
function
|
|
166
|
+
function readParentId(parentId) {
|
|
144
167
|
if (typeof parentId === 'string') {
|
|
145
|
-
if (parentId.trim() === '')
|
|
168
|
+
if (parentId.trim() === '') {
|
|
146
169
|
throw (0, bff_local_errors_1.invalidRequest)('parentId must not be empty');
|
|
170
|
+
}
|
|
147
171
|
return parentId;
|
|
148
172
|
}
|
|
149
173
|
if (typeof parentId === 'number' && Number.isFinite(parentId)) {
|
|
@@ -151,17 +175,24 @@ function parseParentId(parentId) {
|
|
|
151
175
|
}
|
|
152
176
|
throw (0, bff_local_errors_1.invalidRequest)('parentId is required and must be a non-empty string or a number');
|
|
153
177
|
}
|
|
154
|
-
function
|
|
155
|
-
|
|
156
|
-
|
|
178
|
+
function parseParentId(parentId, logger) {
|
|
179
|
+
return loggingRejections(logger, () => readParentId(parentId));
|
|
180
|
+
}
|
|
181
|
+
function parseRelationRequest(schema, body, logger) {
|
|
182
|
+
return loggingRejections(logger, () => {
|
|
183
|
+
const parentId = readParentId(body?.parentId);
|
|
184
|
+
return { ...parseRequest(schema, body), parentId };
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function parseRelationListRequest(body, logger) {
|
|
188
|
+
return parseRelationRequest(request_schemas_1.RelationListFlatInputs, body, logger);
|
|
157
189
|
}
|
|
158
|
-
function parseRelationCountRequest(body) {
|
|
159
|
-
|
|
160
|
-
return { ...parseCountRequest(body), parentId };
|
|
190
|
+
function parseRelationCountRequest(body, logger) {
|
|
191
|
+
return parseRelationRequest(request_schemas_1.RelationCountFlatInputs, body, logger);
|
|
161
192
|
}
|
|
162
193
|
function collectCountFieldPaths(body) {
|
|
163
194
|
const paths = [];
|
|
164
195
|
collectFilterFields(body.filter, paths);
|
|
165
196
|
return paths;
|
|
166
197
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS9hZ2VudC1xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5SEEsNENBRUM7QUFFRCw4Q0FFQztBQWlERCxrREFjQztBQUVELG9EQU9DO0FBRUQsc0RBTUM7QUFxQkQsc0NBRUM7QUFVRCw0REFFQztBQUVELDhEQUVDO0FBRUQsd0RBS0M7QUF6UEQsdURBSzJCO0FBQzNCLDJEQUFzRDtBQUN0RCwrREFBMEQ7QUFDMUQsaUZBQTBGO0FBRzdELHdHQUhwQix5Q0FBZ0IsT0FHMkI7QUFGcEQsdUVBQWdFO0FBb0JoRSxTQUFTLGFBQWEsQ0FBQyxLQUFjO0lBQ25DLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFFakQsU0FBUyxpQkFBaUIsQ0FBSSxNQUFjLEVBQUUsS0FBYztJQUMxRCxJQUFJLENBQUM7UUFDSCxPQUFPLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksNkJBQVksRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRCwrRkFBK0Y7QUFDL0YsOEZBQThGO0FBQzlGLHFDQUFxQztBQUNyQyxTQUFTLGdCQUFn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
|
|
@@ -149,13 +149,13 @@ async function handleRelation(ctx, rawBody, match, { deps, readModel }) {
|
|
|
149
149
|
}
|
|
150
150
|
const relationDeps = { ...deps, relation, foreignCollection };
|
|
151
151
|
if (operation === 'list') {
|
|
152
|
-
await handleRelationList(ctx, (0, agent_query_1.parseRelationListRequest)(rawBody), {
|
|
152
|
+
await handleRelationList(ctx, (0, agent_query_1.parseRelationListRequest)(rawBody, deps.logger), {
|
|
153
153
|
...relationDeps,
|
|
154
154
|
primaryKeys: readModel.getPrimaryKeys(foreignCollection),
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
157
|
else {
|
|
158
|
-
await handleRelationCount(ctx, (0, agent_query_1.parseRelationCountRequest)(rawBody), relationDeps);
|
|
158
|
+
await handleRelationCount(ctx, (0, agent_query_1.parseRelationCountRequest)(rawBody, deps.logger), relationDeps);
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
function createDataRoutesMiddleware({ store, agentUrl, timeoutMs, logger, createClient = agent_data_client_1.default, }) {
|
|
@@ -194,13 +194,13 @@ function createDataRoutesMiddleware({ store, agentUrl, timeoutMs, logger, create
|
|
|
194
194
|
}
|
|
195
195
|
const operation = match[2];
|
|
196
196
|
if (operation === 'list') {
|
|
197
|
-
const body = (0, agent_query_1.parseListRequest)(rawBody);
|
|
197
|
+
const body = (0, agent_query_1.parseListRequest)(rawBody, logger);
|
|
198
198
|
await handleList(ctx, body, { ...deps, primaryKeys: readModel.getPrimaryKeys(collection) });
|
|
199
199
|
}
|
|
200
200
|
else {
|
|
201
|
-
const body = (0, agent_query_1.parseCountRequest)(rawBody);
|
|
201
|
+
const body = (0, agent_query_1.parseCountRequest)(rawBody, logger);
|
|
202
202
|
await handleCount(ctx, body, deps);
|
|
203
203
|
}
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yb3V0ZXMtbWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2RhdGEtcm91dGVzLW1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFrVEEsNkNBMERDO0FBOVZELDRFQUErRDtBQUMvRCwrQ0FTdUI7QUFDdkIseURBQXVFO0FBQ3ZFLHFFQUtxQztBQUNyQywrREFBOEU7QUFDOUUsMEdBQXNGO0FBQ3RGLGlGQUc4QztBQUM5Qyw4RkFBNEU7QUFFNUUsTUFBTSxVQUFVLEdBQUcsc0NBQXNDLENBQUM7QUFDMUQsTUFBTSxjQUFjLEdBQUcsMERBQTBELENBQUM7QUF1QmxGLG1HQUFtRztBQUNuRyxrR0FBa0c7QUFDbEcscUdBQXFHO0FBQ3JHLDJGQUEyRjtBQUMzRixTQUFTLDRCQUE0QixDQUFDLFNBQW9CLEVBQUUsVUFBa0I7SUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFBRSxNQUFNLElBQUEsb0NBQWlCLEdBQUUsQ0FBQztBQUM1RSxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxJQUErQztJQUN4RSxPQUFPO1FBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDbEQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUMxQixJQUF3QixFQUN4QixVQUFrQjtJQUVsQixPQUFPLElBQUEsK0JBQVMsRUFDZCxHQUFHLEVBQUUsQ0FDSCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FDeEIsVUFBVSxFQUNWLElBQUEsb0NBQThCLEVBQUM7UUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ3ZC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
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yb3V0ZXMtbWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2RhdGEtcm91dGVzLW1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFrVEEsNkNBMERDO0FBOVZELDRFQUErRDtBQUMvRCwrQ0FTdUI7QUFDdkIseURBQXVFO0FBQ3ZFLHFFQUtxQztBQUNyQywrREFBOEU7QUFDOUUsMEdBQXNGO0FBQ3RGLGlGQUc4QztBQUM5Qyw4RkFBNEU7QUFFNUUsTUFBTSxVQUFVLEdBQUcsc0NBQXNDLENBQUM7QUFDMUQsTUFBTSxjQUFjLEdBQUcsMERBQTBELENBQUM7QUF1QmxGLG1HQUFtRztBQUNuRyxrR0FBa0c7QUFDbEcscUdBQXFHO0FBQ3JHLDJGQUEyRjtBQUMzRixTQUFTLDRCQUE0QixDQUFDLFNBQW9CLEVBQUUsVUFBa0I7SUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFBRSxNQUFNLElBQUEsb0NBQWlCLEdBQUUsQ0FBQztBQUM1RSxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxJQUErQztJQUN4RSxPQUFPO1FBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDbEQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUMxQixJQUF3QixFQUN4QixVQUFrQjtJQUVsQixPQUFPLElBQUEsK0JBQVMsRUFDZCxHQUFHLEVBQUUsQ0FDSCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FDeEIsVUFBVSxFQUNWLElBQUEsb0NBQThCLEVBQUM7UUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ3ZC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
|
|
@@ -1,31 +1,23 @@
|
|
|
1
1
|
import { z } from '../zod';
|
|
2
|
-
|
|
3
|
-
* The validation rules of a request body, declared once. `src/openapi/schemas.ts` decorates these
|
|
4
|
-
* with names and descriptions to publish them, and the parsers below check bodies against them, so
|
|
5
|
-
* the document and the runtime cannot drift apart.
|
|
6
|
-
*
|
|
7
|
-
* `filter` is deliberately absent: its operators are checked against the collection capabilities
|
|
8
|
-
* (`capabilities-validator`), and a node readable as both leaf and branch has no schema equivalent,
|
|
9
|
-
* so it keeps its own path in `agent-query.ts`.
|
|
10
|
-
*/
|
|
2
|
+
export declare const NON_BLANK_PATTERN = "\\S";
|
|
11
3
|
export declare const SortClauseInput: z.ZodObject<{
|
|
12
4
|
field: z.ZodString;
|
|
13
5
|
direction: z.ZodOptional<z.ZodEnum<{
|
|
14
6
|
asc: "asc";
|
|
15
7
|
desc: "desc";
|
|
16
8
|
}>>;
|
|
17
|
-
}, z.core.$
|
|
9
|
+
}, z.core.$strict>;
|
|
18
10
|
export declare const PageInput: z.ZodObject<{
|
|
19
11
|
limit: z.ZodNumber;
|
|
20
12
|
offset: z.ZodNumber;
|
|
21
|
-
}, z.core.$
|
|
13
|
+
}, z.core.$strict>;
|
|
22
14
|
export declare const ProjectionInput: z.ZodArray<z.ZodString>;
|
|
23
15
|
export declare const SearchInput: z.ZodString;
|
|
24
16
|
export declare const SearchExtendedInput: z.ZodBoolean;
|
|
25
17
|
export declare const TimezoneInput: z.ZodString;
|
|
26
18
|
export declare const ParentIdInput: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
27
|
-
/** Everything a list body carries except `filter`, which is validated separately. */
|
|
28
19
|
export declare const ListFlatInputs: z.ZodObject<{
|
|
20
|
+
filter: z.ZodOptional<z.ZodUnknown>;
|
|
29
21
|
projection: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
30
22
|
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
31
23
|
field: z.ZodString;
|
|
@@ -33,17 +25,46 @@ export declare const ListFlatInputs: z.ZodObject<{
|
|
|
33
25
|
asc: "asc";
|
|
34
26
|
desc: "desc";
|
|
35
27
|
}>>;
|
|
36
|
-
}, z.core.$
|
|
28
|
+
}, z.core.$strict>>>;
|
|
37
29
|
page: z.ZodOptional<z.ZodObject<{
|
|
38
30
|
limit: z.ZodNumber;
|
|
39
31
|
offset: z.ZodNumber;
|
|
40
|
-
}, z.core.$
|
|
32
|
+
}, z.core.$strict>>;
|
|
41
33
|
search: z.ZodOptional<z.ZodString>;
|
|
42
34
|
searchExtended: z.ZodOptional<z.ZodBoolean>;
|
|
43
|
-
|
|
35
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
36
|
+
}, z.core.$strict>;
|
|
44
37
|
/** A count body carries no projection, sort or page. */
|
|
45
38
|
export declare const CountFlatInputs: z.ZodObject<{
|
|
39
|
+
filter: z.ZodOptional<z.ZodUnknown>;
|
|
46
40
|
search: z.ZodOptional<z.ZodString>;
|
|
47
41
|
searchExtended: z.ZodOptional<z.ZodBoolean>;
|
|
48
|
-
|
|
42
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
43
|
+
}, z.core.$strict>;
|
|
44
|
+
export declare const RelationListFlatInputs: z.ZodObject<{
|
|
45
|
+
filter: z.ZodOptional<z.ZodUnknown>;
|
|
46
|
+
projection: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
47
|
+
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
48
|
+
field: z.ZodString;
|
|
49
|
+
direction: z.ZodOptional<z.ZodEnum<{
|
|
50
|
+
asc: "asc";
|
|
51
|
+
desc: "desc";
|
|
52
|
+
}>>;
|
|
53
|
+
}, z.core.$strict>>>;
|
|
54
|
+
page: z.ZodOptional<z.ZodObject<{
|
|
55
|
+
limit: z.ZodNumber;
|
|
56
|
+
offset: z.ZodNumber;
|
|
57
|
+
}, z.core.$strict>>;
|
|
58
|
+
search: z.ZodOptional<z.ZodString>;
|
|
59
|
+
searchExtended: z.ZodOptional<z.ZodBoolean>;
|
|
60
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
61
|
+
parentId: z.ZodOptional<z.ZodUnknown>;
|
|
62
|
+
}, z.core.$strict>;
|
|
63
|
+
export declare const RelationCountFlatInputs: z.ZodObject<{
|
|
64
|
+
filter: z.ZodOptional<z.ZodUnknown>;
|
|
65
|
+
search: z.ZodOptional<z.ZodString>;
|
|
66
|
+
searchExtended: z.ZodOptional<z.ZodBoolean>;
|
|
67
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
68
|
+
parentId: z.ZodOptional<z.ZodUnknown>;
|
|
69
|
+
}, z.core.$strict>;
|
|
49
70
|
//# sourceMappingURL=request-schemas.d.ts.map
|
|
@@ -1,40 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CountFlatInputs = exports.ListFlatInputs = exports.ParentIdInput = exports.TimezoneInput = exports.SearchExtendedInput = exports.SearchInput = exports.ProjectionInput = exports.PageInput = exports.SortClauseInput = void 0;
|
|
3
|
+
exports.RelationCountFlatInputs = exports.RelationListFlatInputs = exports.CountFlatInputs = exports.ListFlatInputs = exports.ParentIdInput = exports.TimezoneInput = exports.SearchExtendedInput = exports.SearchInput = exports.ProjectionInput = exports.PageInput = exports.SortClauseInput = exports.NON_BLANK_PATTERN = void 0;
|
|
4
4
|
const zod_1 = require("../zod");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* the document and the runtime cannot drift apart.
|
|
9
|
-
*
|
|
10
|
-
* `filter` is deliberately absent: its operators are checked against the collection capabilities
|
|
11
|
-
* (`capabilities-validator`), and a node readable as both leaf and branch has no schema equivalent,
|
|
12
|
-
* so it keeps its own path in `agent-query.ts`.
|
|
13
|
-
*/
|
|
14
|
-
exports.SortClauseInput = zod_1.z.object({
|
|
5
|
+
exports.NON_BLANK_PATTERN = '\\S';
|
|
6
|
+
const NonBlankString = zod_1.z.string().regex(new RegExp(exports.NON_BLANK_PATTERN));
|
|
7
|
+
exports.SortClauseInput = zod_1.z.strictObject({
|
|
15
8
|
field: zod_1.z.string(),
|
|
16
9
|
direction: zod_1.z.enum(['asc', 'desc']).optional(),
|
|
17
10
|
});
|
|
18
|
-
exports.PageInput = zod_1.z
|
|
11
|
+
exports.PageInput = zod_1.z
|
|
12
|
+
.strictObject({
|
|
19
13
|
limit: zod_1.z.number().int().positive(),
|
|
20
14
|
offset: zod_1.z.number().int().nonnegative(),
|
|
15
|
+
})
|
|
16
|
+
.refine(({ limit, offset }) => offset % limit === 0, {
|
|
17
|
+
error: ({ input }) => {
|
|
18
|
+
const { limit, offset } = input;
|
|
19
|
+
return `offset (${offset}) must be a multiple of limit (${limit})`;
|
|
20
|
+
},
|
|
21
21
|
});
|
|
22
22
|
exports.ProjectionInput = zod_1.z.array(zod_1.z.string());
|
|
23
23
|
exports.SearchInput = zod_1.z.string();
|
|
24
24
|
exports.SearchExtendedInput = zod_1.z.boolean();
|
|
25
|
-
exports.TimezoneInput =
|
|
26
|
-
exports.ParentIdInput = zod_1.z.union([
|
|
27
|
-
|
|
28
|
-
exports.ListFlatInputs = zod_1.z.
|
|
25
|
+
exports.TimezoneInput = NonBlankString;
|
|
26
|
+
exports.ParentIdInput = zod_1.z.union([NonBlankString, zod_1.z.number()]);
|
|
27
|
+
const validatedElsewhere = zod_1.z.unknown().optional();
|
|
28
|
+
exports.ListFlatInputs = zod_1.z.strictObject({
|
|
29
|
+
filter: validatedElsewhere,
|
|
29
30
|
projection: exports.ProjectionInput.optional(),
|
|
30
31
|
sort: zod_1.z.array(exports.SortClauseInput).optional(),
|
|
31
32
|
page: exports.PageInput.optional(),
|
|
32
33
|
search: exports.SearchInput.optional(),
|
|
33
34
|
searchExtended: exports.SearchExtendedInput.optional(),
|
|
35
|
+
timezone: exports.TimezoneInput.optional(),
|
|
34
36
|
});
|
|
35
37
|
/** A count body carries no projection, sort or page. */
|
|
36
|
-
exports.CountFlatInputs = zod_1.z.
|
|
38
|
+
exports.CountFlatInputs = zod_1.z.strictObject({
|
|
39
|
+
filter: validatedElsewhere,
|
|
37
40
|
search: exports.SearchInput.optional(),
|
|
38
41
|
searchExtended: exports.SearchExtendedInput.optional(),
|
|
42
|
+
timezone: exports.TimezoneInput.optional(),
|
|
39
43
|
});
|
|
40
|
-
|
|
44
|
+
exports.RelationListFlatInputs = exports.ListFlatInputs.extend({ parentId: validatedElsewhere });
|
|
45
|
+
exports.RelationCountFlatInputs = exports.CountFlatInputs.extend({ parentId: validatedElsewhere });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1zY2hlbWFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEvcmVxdWVzdC1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdDQUEyQjtBQUVkLFFBQUEsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBRXZDLE1BQU0sY0FBYyxHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMseUJBQWlCLENBQUMsQ0FBQyxDQUFDO0FBRTFELFFBQUEsZUFBZSxHQUFHLE9BQUMsQ0FBQyxZQUFZLENBQUM7SUFDNUMsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsU0FBUyxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDOUMsQ0FBQyxDQUFDO0FBRVUsUUFBQSxTQUFTLEdBQUcsT0FBQztLQUN2QixZQUFZLENBQUM7SUFDWixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRTtDQUN2QyxDQUFDO0tBQ0QsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxLQUFLLEtBQUssQ0FBQyxFQUFFO0lBQ25ELEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUNuQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQTBDLENBQUM7UUFFckUsT0FBTyxXQUFXLE1BQU0sa0NBQWtDLEtBQUssR0FBRyxDQUFDO0lBQ3JFLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFUSxRQUFBLGVBQWUsR0FBRyxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRXRDLFFBQUEsV0FBVyxHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUV6QixRQUFBLG1CQUFtQixHQUFHLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUVsQyxRQUFBLGFBQWEsR0FBRyxjQUFjLENBQUM7QUFFL0IsUUFBQSxhQUFhLEdBQUcsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRW5FLE1BQU0sa0JBQWtCLEdBQUcsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBRXJDLFFBQUEsY0FBYyxHQUFHLE9BQUMsQ0FBQyxZQUFZLENBQUM7SUFDM0MsTUFBTSxFQUFFLGtCQUFrQjtJQUMxQixVQUFVLEVBQUUsdUJBQWUsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsSUFBSSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsdUJBQWUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN6QyxJQUFJLEVBQUUsaUJBQVMsQ0FBQyxRQUFRLEVBQUU7SUFDMUIsTUFBTSxFQUFFLG1CQUFXLENBQUMsUUFBUSxFQUFFO0lBQzlCLGNBQWMsRUFBRSwyQkFBbUIsQ0FBQyxRQUFRLEVBQUU7SUFDOUMsUUFBUSxFQUFFLHFCQUFhLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQztBQUVILHdEQUF3RDtBQUMzQyxRQUFBLGVBQWUsR0FBRyxPQUFDLENBQUMsWUFBWSxDQUFDO0lBQzVDLE1BQU0sRUFBRSxrQkFBa0I7SUFDMUIsTUFBTSxFQUFFLG1CQUFXLENBQUMsUUFBUSxFQUFFO0lBQzlCLGNBQWMsRUFBRSwyQkFBbUIsQ0FBQyxRQUFRLEVBQUU7SUFDOUMsUUFBUSxFQUFFLHFCQUFhLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQztBQUVVLFFBQUEsc0JBQXNCLEdBQUcsc0JBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0FBRWpGLFFBQUEsdUJBQXVCLEdBQUcsdUJBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDIn0=
|
|
@@ -8,8 +8,9 @@ declare const TYPE_NOT_FOUND = "not_found";
|
|
|
8
8
|
declare const TYPE_UNPROCESSABLE = "unprocessable_entity";
|
|
9
9
|
declare const TYPE_TOO_MANY_REQUESTS = "too_many_requests";
|
|
10
10
|
declare const TYPE_NETWORK_ERROR = "network_error";
|
|
11
|
+
declare const TYPE_AGENT_TIMEOUT = "agent_timeout";
|
|
11
12
|
declare const TYPE_AGENT_UNAVAILABLE = "agent_unavailable";
|
|
12
|
-
type BffErrorType = typeof TYPE_INVALID_REQUEST | typeof TYPE_VALIDATION_ERROR | typeof TYPE_UNAUTHORIZED | typeof TYPE_FORBIDDEN | typeof TYPE_NOT_FOUND | typeof TYPE_UNPROCESSABLE | typeof TYPE_TOO_MANY_REQUESTS | typeof TYPE_NETWORK_ERROR | typeof TYPE_AGENT_UNAVAILABLE;
|
|
13
|
+
type BffErrorType = typeof TYPE_INVALID_REQUEST | typeof TYPE_VALIDATION_ERROR | typeof TYPE_UNAUTHORIZED | typeof TYPE_FORBIDDEN | typeof TYPE_NOT_FOUND | typeof TYPE_UNPROCESSABLE | typeof TYPE_TOO_MANY_REQUESTS | typeof TYPE_NETWORK_ERROR | typeof TYPE_AGENT_TIMEOUT | typeof TYPE_AGENT_UNAVAILABLE;
|
|
13
14
|
export declare const AGENT_ERROR_TYPE_MAP: Record<string, BffErrorType>;
|
|
14
15
|
export declare function mapAgentError(error: unknown, { logger }: {
|
|
15
16
|
logger: Logger;
|
|
@@ -4,6 +4,7 @@ exports.AGENT_ERROR_TYPE_MAP = void 0;
|
|
|
4
4
|
exports.mapAgentError = mapAgentError;
|
|
5
5
|
const agent_client_1 = require("@forestadmin/agent-client");
|
|
6
6
|
const bff_http_error_1 = require("./bff-http-error");
|
|
7
|
+
const create_agent_http_requester_1 = require("../agent/create-agent-http-requester");
|
|
7
8
|
const TYPE_INVALID_REQUEST = 'invalid_request';
|
|
8
9
|
const TYPE_VALIDATION_ERROR = 'validation_error';
|
|
9
10
|
const TYPE_UNAUTHORIZED = 'unauthorized';
|
|
@@ -12,8 +13,10 @@ const TYPE_NOT_FOUND = 'not_found';
|
|
|
12
13
|
const TYPE_UNPROCESSABLE = 'unprocessable_entity';
|
|
13
14
|
const TYPE_TOO_MANY_REQUESTS = 'too_many_requests';
|
|
14
15
|
const TYPE_NETWORK_ERROR = 'network_error';
|
|
16
|
+
const TYPE_AGENT_TIMEOUT = 'agent_timeout';
|
|
15
17
|
const TYPE_AGENT_UNAVAILABLE = 'agent_unavailable';
|
|
16
18
|
const DEFAULT_NETWORK_MESSAGE = 'The agent could not be reached';
|
|
19
|
+
const DEFAULT_TIMEOUT_MESSAGE = 'The agent did not respond in time';
|
|
17
20
|
const DEFAULT_UNAVAILABLE_MESSAGE = 'The agent is unavailable';
|
|
18
21
|
const DEFAULT_ERROR_MESSAGE = 'Unexpected error';
|
|
19
22
|
exports.AGENT_ERROR_TYPE_MAP = {
|
|
@@ -97,6 +100,10 @@ function mapAgentError(error, { logger }) {
|
|
|
97
100
|
if (error instanceof bff_http_error_1.BffHttpError)
|
|
98
101
|
return error;
|
|
99
102
|
if (!(error instanceof agent_client_1.AgentHttpError)) {
|
|
103
|
+
if (error instanceof create_agent_http_requester_1.AgentTimeoutError) {
|
|
104
|
+
logger('Warn', 'Agent timeout mapped to agent_timeout', { cause: error.message });
|
|
105
|
+
return new bff_http_error_1.BffHttpError(504, TYPE_AGENT_TIMEOUT, DEFAULT_TIMEOUT_MESSAGE);
|
|
106
|
+
}
|
|
100
107
|
const agentError = parseJsonApiFromMessage(error);
|
|
101
108
|
if (agentError)
|
|
102
109
|
return mapJsonApiError(agentError, 400, logger);
|
|
@@ -119,4 +126,4 @@ function mapAgentError(error, { logger }) {
|
|
|
119
126
|
return mapJsonApiError(agentError, error.status, logger);
|
|
120
127
|
return mapFlatBody(error.status, error.body, error.responseText);
|
|
121
128
|
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtZXJyb3ItbWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2h0dHAvYWdlbnQtZXJyb3ItbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXNKQSxzQ0F3Q0M7QUE1TEQsNERBQTJEO0FBRTNELHFEQUFnRDtBQUNoRCxzRkFBeUU7QUFFekUsTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztBQUMvQyxNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDO0FBQ2pELE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDO0FBQ3pDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQztBQUNuQyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztBQUNsRCxNQUFNLHNCQUFzQixHQUFHLG1CQUFtQixDQUFDO0FBQ25ELE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBQzNDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBQzNDLE1BQU0sc0JBQXNCLEdBQUcsbUJBQW1CLENBQUM7QUFjbkQsTUFBTSx1QkFBdUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNqRSxNQUFNLHVCQUF1QixHQUFHLG1DQUFtQyxDQUFDO0FBQ3BFLE1BQU0sMkJBQTJCLEdBQUcsMEJBQTBCLENBQUM7QUFDL0QsTUFBTSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQztBQUVwQyxRQUFBLG9CQUFvQixHQUFpQztJQUNoRSxlQUFlLEVBQUUscUJBQXFCO0lBQ3RDLGVBQWUsRUFBRSxvQkFBb0I7SUFDckMsaUJBQWlCLEVBQUUsaUJBQWlCO0lBQ3BDLGNBQWMsRUFBRSxjQUFjO0lBQzlCLGFBQWEsRUFBRSxjQUFjO0lBQzdCLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxvQkFBb0IsRUFBRSxzQkFBc0I7Q0FDN0MsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQWlDO0lBQzVELEdBQUcsRUFB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
|
|
@@ -37,4 +37,5 @@ export declare function originNotAllowed(message?: string): BffHttpError;
|
|
|
37
37
|
export declare function missingTimezone(message?: string): BffHttpError;
|
|
38
38
|
export declare function invalidTimezone(value: string): BffHttpError;
|
|
39
39
|
export declare function relationFieldNotSupported(fields: string[]): BffHttpError;
|
|
40
|
+
export declare function unsupportedMediaType(message?: string): BffHttpError;
|
|
40
41
|
//# sourceMappingURL=bff-http-error.d.ts.map
|
|
@@ -10,6 +10,7 @@ exports.originNotAllowed = originNotAllowed;
|
|
|
10
10
|
exports.missingTimezone = missingTimezone;
|
|
11
11
|
exports.invalidTimezone = invalidTimezone;
|
|
12
12
|
exports.relationFieldNotSupported = relationFieldNotSupported;
|
|
13
|
+
exports.unsupportedMediaType = unsupportedMediaType;
|
|
13
14
|
class BffHttpError extends Error {
|
|
14
15
|
constructor(status, type, message, options = {}) {
|
|
15
16
|
super(message);
|
|
@@ -57,4 +58,7 @@ function invalidTimezone(value) {
|
|
|
57
58
|
function relationFieldNotSupported(fields) {
|
|
58
59
|
return new BffHttpError(422, 'relation_field_not_supported', 'Nested relation field paths are not supported on top-level list and count', { details: { fields } });
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
+
function unsupportedMediaType(message = 'Only application/json request bodies are supported on agent routes') {
|
|
62
|
+
return new BffHttpError(415, 'unsupported_media_type', message);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmZmLWh0dHAtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaHR0cC9iZmYtaHR0cC1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE4QkEsa0RBY0M7QUFFRCxrQ0FhQztBQUVELG9DQUVDO0FBRUQsb0RBSUM7QUFFRCx3Q0FFQztBQUVELDRDQUVDO0FBRUQsMENBSUM7QUFFRCwwQ0FFQztBQUVELDhEQU9DO0FBRUQsb0RBSUM7QUFqR0QsTUFBYSxZQUFhLFNBQVEsS0FBSztJQU1yQyxZQUFZLE1BQWMsRUFBRSxJQUFZLEVBQUUsT0FBZSxFQUFFLFVBQStCLEVBQUU7UUFDMUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFkRCxvQ0FjQztBQVdELFNBQWdCLG1CQUFtQixDQUFDLEtBQWM7SUFPaEQsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxPQUFRLEtBQThCLENBQUMsTUFBTSxLQUFLLFFBQVE7UUFDMUQsT0FBUSxLQUE0QixDQUFDLElBQUksS0FBSyxRQUFRO1FBQ3RELE9BQVEsS0FBK0IsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUM3RCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxLQUszQjtJQUNDLE1BQU0sSUFBSSxHQUFpQjtRQUN6QixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtLQUMxRSxDQUFDO0lBRUYsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVM7UUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBRXBFLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBQyxPQUFPLEdBQUcsZ0NBQWdDO0lBQ3JFLE9BQU8sSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQ2xDLE9BQU8sR0FBRyx1REFBdUQ7SUFFakUsT0FBTyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUFPLEdBQUcsNkJBQTZCO0lBQ3BFLE9BQU8sSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsb0NBQW9DO0lBQzdFLE9BQU8sSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxTQUFnQixlQUFlLENBQzdCLE9BQU8sR0FBRyw4Q0FBOEM7SUFFeEQsT0FBTyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxLQUFhO0lBQzNDLE9BQU8sSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRCxTQUFnQix5QkFBeUIsQ0FBQyxNQUFnQjtJQUN4RCxPQUFPLElBQUksWUFBWSxDQUNyQixHQUFHLEVBQ0gsOEJBQThCLEVBQzlCLDJFQUEyRSxFQUMzRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQ2xDLE9BQU8sR0FBRyxvRUFBb0U7SUFFOUUsT0FBTyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEUsQ0FBQyJ9
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CAPABILITIES_CONCURRENCY = void 0;
|
|
4
4
|
exports.default = collectUnfolding;
|
|
5
5
|
const errors_1 = require("../errors");
|
|
6
|
+
const field_type_1 = require("../read-model/field-type");
|
|
6
7
|
const operator_normalizer_1 = require("../validation/operator-normalizer");
|
|
7
8
|
// A cold document costs one capabilities call per collection. They are capped rather than fired all
|
|
8
9
|
// at once so a 200-collection deployment cannot open 200 sockets to the agent at the same time; a
|
|
@@ -112,12 +113,16 @@ function collectActions(readModel, collection) {
|
|
|
112
113
|
// literally called "undefined".
|
|
113
114
|
fields: (byName[name].fields ?? [])
|
|
114
115
|
.filter(field => typeof field?.field === 'string')
|
|
115
|
-
.map(field =>
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
.map(field => {
|
|
117
|
+
const { reference } = field;
|
|
118
|
+
return {
|
|
119
|
+
name: field.field,
|
|
120
|
+
type: (0, field_type_1.normalizeFieldType)(field.type),
|
|
121
|
+
isRequired: field.isRequired === true,
|
|
122
|
+
enums: field.enums ?? null,
|
|
123
|
+
reference: typeof reference === 'string' ? reference : null,
|
|
124
|
+
};
|
|
125
|
+
}),
|
|
121
126
|
}));
|
|
122
127
|
}
|
|
123
128
|
/**
|
|
@@ -141,4 +146,4 @@ async function collectUnfolding(options) {
|
|
|
141
146
|
}));
|
|
142
147
|
return { collections };
|
|
143
148
|
}
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdC11bmZvbGRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3BlbmFwaS9jb2xsZWN0LXVuZm9sZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5TUEsbUNBZ0JDO0FBM01ELHNDQUFnRDtBQUNoRCx5REFBOEQ7QUFDOUQsMkVBQThGO0FBRTlGLG9HQUFvRztBQUNwRyxrR0FBa0c7QUFDbEcsa0ZBQWtGO0FBQ3JFLFFBQUEsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO0FBVTNDLEtBQUssVUFBVSxrQkFBa0IsQ0FDL0IsS0FBVSxFQUNWLEtBQWEsRUFDYixHQUE0QjtJQUU1QixNQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssQ0FBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWYsaUdBQWlHO0lBQ2pHLCtDQUErQztJQUMvQyxNQUFNLE1BQU0sR0FBRyxLQUFLLElBQW1CLEVBQUU7UUFDdkMsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRW5DLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNyQixNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXpDLE1BQU0sTUFBTSxFQUFFLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUVqRixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxRQUFzQyxF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
|