@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
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { FieldType } from '../read-model/
|
|
1
|
+
import type { FieldType } from '../read-model/field-type';
|
|
2
2
|
import type { SchemaObject } from 'openapi3-ts/oas31';
|
|
3
3
|
/**
|
|
4
|
-
* Turns a Forest column type into a JSON Schema
|
|
5
|
-
* `
|
|
6
|
-
*
|
|
4
|
+
* Turns a Forest column type into a JSON Schema, off the shared primitive table in
|
|
5
|
+
* `read-model/field-type`. Anything unrecognized — a relation marker such as `ManyToOne`, or a type
|
|
6
|
+
* a newer agent introduced — maps to an unconstrained schema rather than a guess, so the document
|
|
7
|
+
* never rejects a value the runtime accepts.
|
|
7
8
|
*/
|
|
8
9
|
export default function toFieldSchema(type: FieldType): SchemaObject;
|
|
9
10
|
//# sourceMappingURL=field-schemas.d.ts.map
|
|
@@ -1,27 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = toFieldSchema;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Enum: { type: 'string' },
|
|
12
|
-
File: { type: 'string', description: 'A data URI.' },
|
|
13
|
-
Json: {},
|
|
14
|
-
Number: { type: 'number' },
|
|
15
|
-
Point: { type: 'string' },
|
|
16
|
-
String: { type: 'string' },
|
|
17
|
-
Time: { type: 'string' },
|
|
18
|
-
Timeonly: { type: 'string' },
|
|
19
|
-
Uuid: { type: 'string', format: 'uuid' },
|
|
20
|
-
};
|
|
4
|
+
const field_type_1 = require("../read-model/field-type");
|
|
5
|
+
const FORMATS = new Map([
|
|
6
|
+
['Date', 'date-time'],
|
|
7
|
+
['Dateonly', 'date'],
|
|
8
|
+
['Uuid', 'uuid'],
|
|
9
|
+
]);
|
|
10
|
+
const DESCRIPTIONS = new Map([['File', 'A data URI.']]);
|
|
21
11
|
/**
|
|
22
|
-
* Turns a Forest column type into a JSON Schema
|
|
23
|
-
* `
|
|
24
|
-
*
|
|
12
|
+
* Turns a Forest column type into a JSON Schema, off the shared primitive table in
|
|
13
|
+
* `read-model/field-type`. Anything unrecognized — a relation marker such as `ManyToOne`, or a type
|
|
14
|
+
* a newer agent introduced — maps to an unconstrained schema rather than a guess, so the document
|
|
15
|
+
* never rejects a value the runtime accepts.
|
|
25
16
|
*/
|
|
26
17
|
function toFieldSchema(type) {
|
|
27
18
|
if (Array.isArray(type)) {
|
|
@@ -38,6 +29,17 @@ function toFieldSchema(type) {
|
|
|
38
29
|
properties: Object.fromEntries(named.map(field => [field.field, toFieldSchema(field.type)])),
|
|
39
30
|
};
|
|
40
31
|
}
|
|
41
|
-
|
|
32
|
+
if (typeof type !== 'string')
|
|
33
|
+
return {};
|
|
34
|
+
const shape = (0, field_type_1.primitiveShapeOf)(type);
|
|
35
|
+
if (shape === 'any')
|
|
36
|
+
return {};
|
|
37
|
+
const format = FORMATS.get(type);
|
|
38
|
+
const description = DESCRIPTIONS.get(type);
|
|
39
|
+
return {
|
|
40
|
+
type: shape,
|
|
41
|
+
...(format !== undefined && { format }),
|
|
42
|
+
...(description !== undefined && { description }),
|
|
43
|
+
};
|
|
42
44
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuYXBpL2ZpZWxkLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtQkEsZ0NBbUNDO0FBbkRELHlEQUE0RDtBQUU1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUN0QixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7SUFDckIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNqQixDQUFDLENBQUM7QUFFSCxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV4RDs7Ozs7R0FLRztBQUNILFNBQXdCLGFBQWEsQ0FBQyxJQUFlO0lBQ25ELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFcEIsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakYsQ0FBQztJQUVELG1HQUFtRztJQUNuRyxvR0FBb0c7SUFDcEcsNEZBQTRGO0lBQzVGLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUM1RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDOUIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUN4RixDQUFDO1FBRUYsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRO1lBQ2QsVUFBVSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXhDLE1BQU0sS0FBSyxHQUFHLElBQUEsNkJBQWdCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFckMsSUFBSSxLQUFLLEtBQUssS0FBSztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRS9CLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUzQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUs7UUFDWCxHQUFHLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7S0FDbEQsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -51,18 +51,19 @@ const SESSION_SCHEME = 'bffSession';
|
|
|
51
51
|
const API_KEY_SCHEME = 'bffApiKey';
|
|
52
52
|
const SECURITY = [{ [SESSION_SCHEME]: [] }, { [API_KEY_SCHEME]: [] }];
|
|
53
53
|
const ERROR_STATUSES = {
|
|
54
|
-
400: 'Malformed body, a malformed URL-encoded path segment, an invalid filter operator, a filter nested too deep, ambiguous credentials, an unsupported page, a missing or invalid timezone, an unknown submitted action field, or a rejected action form (type action_error)',
|
|
54
|
+
400: 'Malformed body, a malformed URL-encoded path segment, an invalid filter operator, a filter nested too deep, ambiguous credentials, an unsupported page, a missing or invalid timezone, an unknown submitted action field, a required action field left empty or a malformed file value at execute, or a rejected action form (type action_error)',
|
|
55
55
|
401: 'Missing, invalid, or expired credentials',
|
|
56
56
|
403: 'The action needs approval before it runs (the body carries the approving roles), the Forest identity behind the API key is not allowed, the origin is not allowed for this key, or the agent refused the collection, relation, or action',
|
|
57
57
|
404: 'Unknown collection, relation, or action',
|
|
58
58
|
413: `The request body exceeds the BFF limit of ${body_limit_1.default}`,
|
|
59
|
-
415: 'The request
|
|
60
|
-
422: 'A field is unknown, not filterable,
|
|
59
|
+
415: 'The request Content-Type is neither application/json nor an application/*+json type, including form-urlencoded, and is rejected with 415 instead of being silently dropped; a request carrying a body with no Content-Type at all is rejected the same way; or the declared character set cannot be decoded',
|
|
60
|
+
422: 'A field is unknown, not filterable, is a nested relation path, or an action value at execute is outside its enum or of the wrong type',
|
|
61
61
|
429: 'The agent rate-limited the request',
|
|
62
62
|
500: 'The agent payload could not be mapped to the BFF contract, or the BFF hit an unexpected error',
|
|
63
63
|
501: 'The BFF is running without an agent configured, so the proxy is not implemented',
|
|
64
|
-
502: 'The agent could not be
|
|
64
|
+
502: 'The agent refused the connection, its host could not be resolved, or the transport failed another way (a connection reset mid-flight, a socket hang up, a TLS failure) — it failed outright rather than running out of time',
|
|
65
65
|
503: 'The agent schema is unavailable, the agent returned a 5xx, or the API key could not be resolved',
|
|
66
|
+
504: 'The agent did not answer before the BFF timeout (BFF_AGENT_TIMEOUT_MS, 10s by default). The deadline is armed when the request starts, so at the default it also covers a host that accepts nothing and never resets the connection — raise the timeout past the OS connect timeout and that case reverts to 502',
|
|
66
67
|
};
|
|
67
68
|
const UNSUPPORTED_RESULT_DESCRIPTION = 'Either the BFF runs without an agent configured, or the action returned a result shape the ' +
|
|
68
69
|
'BFF cannot normalize. The second case carries no message field.';
|
|
@@ -130,6 +131,7 @@ const DATA_ERRORS = [
|
|
|
130
131
|
'501',
|
|
131
132
|
'502',
|
|
132
133
|
'503',
|
|
134
|
+
'504',
|
|
133
135
|
];
|
|
134
136
|
const AI_RELAYED_OR_ENVELOPE = 'Below 500 the BFF relays whatever JSON the Forest AI proxy answered, unchanged, so the authority ' +
|
|
135
137
|
'on this body is the upstream contract and not the BFF one. When the upstream answer carried no ' +
|
|
@@ -140,7 +142,7 @@ const AI_DUAL_SHAPED_ERRORS = {
|
|
|
140
142
|
401: `The BFF session is missing, invalid or expired, or the Forest server refused the access token this route forwards. ${AI_RELAYED_OR_ENVELOPE}`,
|
|
141
143
|
403: `The request presented an API key instead of a session (type oauth_required), or the Forest server refused the query. ${AI_RELAYED_OR_ENVELOPE}`,
|
|
142
144
|
413: `The request body exceeds the AI query limit of ${body_limit_1.AI_BODY_LIMIT}, or the Forest AI proxy refused it as too large. ${AI_RELAYED_OR_ENVELOPE}`,
|
|
143
|
-
415: `The request declares a character set the BFF cannot decode. ${AI_RELAYED_OR_ENVELOPE}`,
|
|
145
|
+
415: `The request Content-Type is neither application/json nor an application/*+json type, or the request carries a body with no Content-Type at all, or it declares a character set the BFF cannot decode. ${AI_RELAYED_OR_ENVELOPE}`,
|
|
144
146
|
429: `The Forest AI proxy rate-limited the query. ${AI_RELAYED_OR_ENVELOPE}`,
|
|
145
147
|
};
|
|
146
148
|
const AI_ENVELOPE_ERRORS = {
|
|
@@ -222,7 +224,7 @@ const ROUTES = [
|
|
|
222
224
|
operationId: 'getActionForm',
|
|
223
225
|
summary: 'Load the form of a custom action',
|
|
224
226
|
request: schemas_1.ActionRequestSchema,
|
|
225
|
-
response:
|
|
227
|
+
response: schemas_1.ActionFormResponseSchema,
|
|
226
228
|
responseDescription: 'The action form fields; htmlBlock layout content is sanitized server-side against an allowlist before relaying',
|
|
227
229
|
params: ['collection', 'action'],
|
|
228
230
|
bodyRequired: true,
|
|
@@ -232,7 +234,7 @@ const ROUTES = [
|
|
|
232
234
|
operationId: 'executeAction',
|
|
233
235
|
summary: 'Execute a custom action',
|
|
234
236
|
request: schemas_1.ActionRequestSchema,
|
|
235
|
-
response:
|
|
237
|
+
response: schemas_1.ActionResultSchema,
|
|
236
238
|
responseDescription: 'The normalized action result; a success result html field is sanitized server-side against an allowlist before relaying',
|
|
237
239
|
params: ['collection', 'action'],
|
|
238
240
|
bodyRequired: true,
|
|
@@ -260,10 +262,10 @@ const TIMEZONE_HEADER = zod_openapi_1.z
|
|
|
260
262
|
});
|
|
261
263
|
const SHARED_DESCRIPTION = 'The timezone is resolved from the `X-Forest-Timezone` header first, then a `timezone` body ' +
|
|
262
264
|
'field, then the BFF default when one is configured. A deployment without a default rejects a ' +
|
|
263
|
-
'request carrying neither with 400 missing_timezone, so send one of the two to be safe.
|
|
264
|
-
'
|
|
265
|
-
'
|
|
266
|
-
'
|
|
265
|
+
'request carrying neither with 400 missing_timezone, so send one of the two to be safe. Agent ' +
|
|
266
|
+
'routes read application/json (and application/*+json) bodies only: any other Content-Type, ' +
|
|
267
|
+
'form-urlencoded included, is rejected with 415 instead of being read as an absent body, and ' +
|
|
268
|
+
'so is a body sent with no Content-Type at all. A bodyless POST needs no Content-Type.';
|
|
267
269
|
const GENERIC_DESCRIPTION = 'Paths are generic: one per operation, with the collection, relation and action passed as path ' +
|
|
268
270
|
'segments, and no field enumerated. This is the fallback form — a deployment configured to ' +
|
|
269
271
|
'reach its Forest schema and its agent unfolds one path per real collection, relation and ' +
|
|
@@ -288,10 +290,10 @@ function registerAiQueryPath(registry, aiErrorRefs) {
|
|
|
288
290
|
'because only the OAuth flow yields the Forest access token this route forwards. The ' +
|
|
289
291
|
'environment and rendering are derived server-side, so sending forest-* headers has no ' +
|
|
290
292
|
`effect. The body limit is ${body_limit_1.AI_BODY_LIMIT} here rather than the ${body_limit_1.default} of every ` +
|
|
291
|
-
'other route, and only application/json
|
|
292
|
-
'
|
|
293
|
-
'published only by a ' +
|
|
294
|
-
'
|
|
293
|
+
'other route, and only application/json and application/*+json are read: any other ' +
|
|
294
|
+
'content type, and a body sent with none at all, is rejected with 415 before the relay. ' +
|
|
295
|
+
'This path is published only by a deployment whose OAuth configuration is complete, ' +
|
|
296
|
+
'since the relay needs a session.',
|
|
295
297
|
security: [{ [SESSION_SCHEME]: [] }],
|
|
296
298
|
request: {
|
|
297
299
|
body: { required: true, content: { 'application/json': { schema: schemas_1.AiQueryRequestSchema } } },
|
|
@@ -405,4 +407,4 @@ function generateOpenApiDocument(version, { unfolding, hasAiQueryRoute = false }
|
|
|
405
407
|
function serializeOpenApi(document) {
|
|
406
408
|
return JSON.stringify(document, null, 2);
|
|
407
409
|
}
|
|
408
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS1kb2N1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuYXBpL29wZW5hcGktZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNFhBLDBEQStHQztBQUVELDRDQUVDO0FBNWVELG1FQUFzRjtBQUV0RixzRUFBNkM7QUFDN0MsdUNBWW1CO0FBQ25CLHNFQUFxRDtBQUNyRCwrQ0FBa0M7QUFDbEMsaUVBQStEO0FBRWxELFFBQUEsZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUMxQixRQUFBLFlBQVksR0FBRyxXQUFXLENBQUM7QUFFeEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBQ3BDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQztBQUVuQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUV0RSxNQUFNLGNBQWMsR0FBMkI7SUFDN0MsR0FBRyxFQUFFLHlRQUF5UTtJQUM5USxHQUFHLEVBQUUsMENBQTBDO0lBQy9DLEdBQUcsRUFBRSwwT0FBME87SUFDL08sR0FBRyxFQUFFLHlDQUF5QztJQUM5QyxHQUFHLEVBQUUsNkNBQTZDLG9CQUFVLEVBQUU7SUFDOUQsR0FBRyxFQUFFLDJWQUEyVjtJQUNoVyxHQUFHLEVBQUUsa0VBQWtFO0lBQ3ZFLEdBQUcsRUFBRSxvQ0FBb0M7SUFDekMsR0FBRyxFQUFFLCtGQUErRjtJQUNwRyxHQUFHLEVBQUUsaUZBQWlGO0lBQ3RGLEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckMsR0FBRyxFQUFFLGlHQUFpRztDQUN2RyxDQUFDO0FBRUYsTUFBTSw4QkFBOEIsR0FDbEMsNkZBQTZGO0lBQzdGLGlFQUFpRSxDQUFDO0FBRXBFLE1BQU0sa0JBQWtCLEdBQUcsb0NBQW9DLENBQUM7QUFDaEUsTUFBTSw4QkFBOEIsR0FBRywrQ0FBK0MsQ0FBQztBQUV2RixNQUFNLG1DQUFtQyxHQUFHLHlCQUF5QixDQUFDO0FBRXRFLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsYUFBYSxFQUFFO1FBQ2IsV0FBVyxFQUFFLDhFQUE4RTtRQUMzRixRQUFRLEVBQUUsS0FBSztRQUNmLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFrQixFQUFFO0tBQ3JDO0NBQ0YsQ0FBQztBQWVGLFNBQVMsc0JBQXNCLENBQzdCLFFBQXlCLEVBQ3pCLElBQVksRUFDWixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFrQjtJQUVoRCxPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFO1FBQ25ELFdBQVc7UUFDWCxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzNDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNoQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ1QsQ0FBQztBQUVELG1HQUFtRztBQUNuRyxvR0FBb0c7QUFDcEcsa0ZBQWtGO0FBQ2xGLFNBQVMsc0JBQXNCLENBQzdCLFFBQXlCLEVBQ3pCLFFBQWtCLEVBQ2xCLGlCQUEwQjtJQUUxQixRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSw2QkFBbUIsQ0FBQyxDQUFDO0lBRXhELE1BQU0sUUFBUSxHQUFnQyxFQUFFLENBQUM7SUFFakQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN4QixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLFdBQVc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXZGLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxNQUFNLEVBQUUsRUFBRTtZQUNwRSxXQUFXO1lBQ1gsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3BDLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCwyRkFBMkY7SUFDM0YsK0VBQStFO0lBQy9FLElBQUksQ0FBQyxpQkFBaUI7UUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBRXRGLFFBQVEsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsd0NBQThCLENBQUMsQ0FBQztJQUU5RSxNQUFNLHVCQUF1QixHQUFHLHNCQUFzQixDQUNwRCxRQUFRLEVBQ1IsbUNBQW1DLEVBQ25DO1FBQ0UsV0FBVyxFQUFFLDhCQUE4QjtRQUMzQyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLDhCQUE4QixFQUFFLENBQUM7U0FDaEY7S0FDRixDQUNGLENBQUM7SUFFRixPQUFPLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUNyQixJQUF1QixFQUN2QixjQUF1QjtJQUV2QixPQUFPLGNBQWM7UUFDbkIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7UUFDekQsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDM0IsQ0FBQztBQUVELE1BQU0sV0FBVyxHQUFHO0lBQ2xCLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztDQUNOLENBQUM7QUFFRixNQUFNLHNCQUFzQixHQUMxQixtR0FBbUc7SUFDbkcsaUdBQWlHO0lBQ2pHLGdHQUFnRztJQUNoRyxtREFBbUQsQ0FBQztBQUV0RCxNQUFNLHFCQUFxQixHQUEyQjtJQUNwRCxHQUFHLEVBQUUsd0ZBQXdGLHNCQUFzQixFQUFFO0lBQ3JILEdBQUcsRUFBRSxzSEFBc0gsc0JBQXNCLEVBQUU7SUFDbkosR0FBRyxFQUFFLHdIQUF3SCxzQkFBc0IsRUFBRTtJQUNySixHQUFHLEVBQUUsa0RBQWtELDBCQUFhLHFEQUFxRCxzQkFBc0IsRUFBRTtJQUNqSixHQUFHLEVBQUUsK0RBQStELHNCQUFzQixFQUFFO0lBQzVGLEdBQUcsRUFBRSwrQ0FBK0Msc0JBQXNCLEVBQUU7Q0FDN0UsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQTJCO0lBQ2pELEdBQUcsRUFBRSw2RkFBNkY7SUFDbEcsR0FBRyxFQUFFLHFGQUFxRjtJQUMxRixHQUFHLEVBQUUsK0NBQStDO0lBQ3BELEdBQUcsRUFBRSxzRUFBc0U7Q0FDNUUsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQzFCLDRGQUE0RjtJQUM1Riw2REFBNkQ7SUFDN0QsZ0dBQWdHO0lBQ2hHLDZGQUE2RjtJQUM3RixpR0FBaUcsQ0FBQztBQUVwRyxNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztBQUV0QyxTQUFTLDZCQUE2QixDQUFDLFFBQXlCO0lBQzlELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEYsTUFBTTtRQUNOLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxRQUFRLE1BQU0sR0FBRyxtQkFBbUIsRUFBRSxFQUFFO1lBQ3ZFLFdBQVc7WUFDWCxNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7S0FDSCxDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pGLE1BQU07UUFDTixzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxNQUFNLEdBQUcsbUJBQW1CLEVBQUUsRUFBRTtZQUN2RSxXQUFXO1lBQ1gsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1NBQ3JDLENBQUM7S0FDSCxDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUNuRCxPQUFPLEVBQUUsc0JBQXNCLENBQUMsUUFBUSxFQUFFLGVBQWUsbUJBQW1CLEVBQUUsRUFBRTtZQUM5RSxXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDO0FBY0QsTUFBTSxNQUFNLEdBQXNCO0lBQ2hDO1FBQ0UsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsYUFBYTtRQUMxQixPQUFPLEVBQUUsOEJBQThCO1FBQ3ZDLE9BQU8sRUFBRSwyQkFBaUI7UUFDMUIsUUFBUSxFQUFFLDRCQUFrQjtRQUM1QixtQkFBbUIsRUFBRSxtQkFBbUI7UUFDeEMsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3ZCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLFdBQVcsRUFBRSxjQUFjO1FBQzNCLE9BQU8sRUFBRSwrQkFBK0I7UUFDeEMsT0FBTyxFQUFFLDRCQUFrQjtRQUMzQixRQUFRLEVBQUUsNkJBQW1CO1FBQzdCLG1CQUFtQixFQUFFLDJCQUEyQjtRQUNoRCxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7S0FDdkI7SUFDRDtRQUNFLElBQUksRUFBRSx5Q0FBeUM7UUFDL0MsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxPQUFPLEVBQUUsb0NBQW9DO1FBQzdDLE9BQU8sRUFBRSxtQ0FBeUI7UUFDbEMsUUFBUSxFQUFFLDRCQUFrQjtRQUM1QixtQkFBbUIsRUFBRSwyQkFBMkI7UUFDaEQsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQztRQUNsQyxZQUFZLEVBQUUsSUFBSTtLQUNuQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLDBDQUEwQztRQUNoRCxXQUFXLEVBQUUscUJBQXFCO1FBQ2xDLE9BQU8sRUFBRSxxQ0FBcUM7UUFDOUMsT0FBTyxFQUFFLG9DQUEwQjtRQUNuQyxRQUFRLEVBQUUsNkJBQW1CO1FBQzdCLG1CQUFtQixFQUFFLG1DQUFtQztRQUN4RCxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDO1FBQ2xDLFlBQVksRUFBRSxJQUFJO0tBQ25CO0lBQ0Q7UUFDRSxJQUFJLEVBQUUscUNBQXFDO1FBQzNDLFdBQVcsRUFBRSxlQUFlO1FBQzVCLE9BQU8sRUFBRSxrQ0FBa0M7UUFDM0MsT0FBTyxFQUFFLDZCQUFtQjtRQUM1QixRQUFRLEVBQUUsZUFBQyxDQUFDLE9BQU8sRUFBRTtRQUNyQixtQkFBbUIsRUFDakIsZ0hBQWdIO1FBQ2xILE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUM7UUFDaEMsWUFBWSxFQUFFLElBQUk7S0FDbkI7SUFDRDtRQUNFLElBQUksRUFBRSx3Q0FBd0M7UUFDOUMsV0FBVyxFQUFFLGVBQWU7UUFDNUIsT0FBTyxFQUFFLHlCQUF5QjtRQUNsQyxPQUFPLEVBQUUsNkJBQW1CO1FBQzVCLFFBQVEsRUFBRSxlQUFDLENBQUMsT0FBTyxFQUFFO1FBQ3JCLG1CQUFtQixFQUNqQix5SEFBeUg7UUFDM0gsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQztRQUNoQyxZQUFZLEVBQUUsSUFBSTtRQUNsQixjQUFjLEVBQUUsSUFBSTtLQUNyQjtDQUNGLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUEyQjtJQUNqRCxVQUFVLEVBQUUsa0RBQWtEO0lBQzlELFFBQVEsRUFBRSx3RUFBd0U7SUFDbEYsTUFBTSxFQUFFLHFGQUFxRjtDQUM5RixDQUFDO0FBRUYsU0FBUyxXQUFXLENBQUMsS0FBZTtJQUNsQyxPQUFPLGVBQUMsQ0FBQyxNQUFNLENBQ2IsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLGVBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDekYsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELG9HQUFvRztBQUNwRywrRUFBK0U7QUFDL0UsTUFBTSx5QkFBeUIsR0FBRyxpQkFBaUIsQ0FBQztBQUVwRCxNQUFNLGVBQWUsR0FBRyxlQUFDO0tBQ3RCLE1BQU0sRUFBRTtLQUNSLFFBQVEsRUFBRTtLQUNWLE9BQU8sQ0FBQztJQUNQLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO0lBQ2xELFdBQVcsRUFDVCxxRkFBcUY7UUFDckYsK0JBQStCO0NBQ2xDLENBQUMsQ0FBQztBQUVMLE1BQU0sa0JBQWtCLEdBQ3RCLDZGQUE2RjtJQUM3RiwrRkFBK0Y7SUFDL0YsaUdBQWlHO0lBQ2pHLCtGQUErRjtJQUMvRiw4RkFBOEY7SUFDOUYsZ0JBQWdCLENBQUM7QUFFbkIsTUFBTSxtQkFBbUIsR0FDdkIsZ0dBQWdHO0lBQ2hHLDRGQUE0RjtJQUM1RiwyRkFBMkY7SUFDM0Ysa0RBQWtELENBQUM7QUFFckQsTUFBTSxvQkFBb0IsR0FDeEIsaUdBQWlHO0lBQ2pHLDRGQUE0RjtJQUM1RixpR0FBaUc7SUFDakcsMEZBQTBGO0lBQzFGLCtGQUErRjtJQUMvRix5RkFBeUY7SUFDekYsaUdBQWlHO0lBQ2pHLDZGQUE2RjtJQUM3RixzRUFBc0UsQ0FBQztBQUV6RSxTQUFTLG1CQUFtQixDQUMxQixRQUF5QixFQUN6QixXQUF3QztJQUV4QyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsSUFBSSxFQUFFLEdBQUcsb0JBQVksV0FBVztRQUNoQyxXQUFXLEVBQUUsU0FBUztRQUN0QixPQUFPLEVBQUUsd0NBQXdDO1FBQ2pELFdBQVcsRUFDVCx5RkFBeUY7WUFDekYsdUZBQXVGO1lBQ3ZGLHNGQUFzRjtZQUN0Rix3RkFBd0Y7WUFDeEYsNkJBQTZCLDBCQUFhLHlCQUF5QixvQkFBVSxZQUFZO1lBQ3pGLHlGQUF5RjtZQUN6RixxRkFBcUY7WUFDckYsc0JBQXNCO1lBQ3RCLG9GQUFvRjtRQUN0RixRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDcEMsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSw4QkFBb0IsRUFBRSxFQUFFLEVBQUU7U0FDNUY7UUFDRCxTQUFTLEVBQUU7WUFDVCxHQUFHLEVBQUU7Z0JBQ0gsV0FBVyxFQUFFLG9EQUFvRDtnQkFDakUsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsZUFBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUU7YUFDekQ7WUFDRCxHQUFHLFdBQVc7U0FDZjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFPRCxTQUFnQix1QkFBdUIsQ0FDckMsT0FBZSxFQUNmLEVBQUUsU0FBUyxFQUFFLGVBQWUsR0FBRyxLQUFLLEtBQXFDLEVBQUU7SUFFM0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQ0FBZSxFQUFFLENBQUM7SUFDdkMsTUFBTSxVQUFVLEdBQ2QsU0FBUyxLQUFLLFNBQVM7UUFDdkIsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRSxNQUFNLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxRixNQUFNLGNBQWMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBRWhHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLEVBQUU7UUFDNUQsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsUUFBUTtRQUNoQixXQUFXLEVBQ1Qsc0ZBQXNGO1lBQ3RGLDRGQUE0RjtZQUM1Rix3RkFBd0Y7WUFDeEYsV0FBVztLQUNkLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLEVBQUU7UUFDNUQsSUFBSSxFQUFFLFFBQVE7UUFDZCxFQUFFLEVBQUUsUUFBUTtRQUNaLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsV0FBVyxFQUFFLDBFQUEwRTtLQUN4RixDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLEdBQUcsb0JBQVksVUFBVTtRQUMvQixXQUFXLEVBQUUsWUFBWTtRQUN6QixPQUFPLEVBQUUsa0NBQWtDO1FBQzNDLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsU0FBUyxFQUFFO1lBQ1QsR0FBRyxFQUFFO2dCQUNILFdBQVcsRUFBRSxzRUFBc0U7Z0JBQ25GLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLCtCQUFxQixFQUFFLEVBQUU7YUFDbkU7WUFDRCxHQUFHLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDOUIsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzlCLEdBQUcsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM5QixHQUFHLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDOUIsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzlCLEdBQUcsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUMvQjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksV0FBVztRQUFFLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU1RCxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsSUFBQSx3QkFBcUIsRUFDbkI7WUFDRSxRQUFRO1lBQ1IsSUFBSSxFQUFFLElBQUksd0JBQWEsQ0FBQyxRQUFRLENBQUM7WUFDakMsTUFBTSxFQUFFLG9CQUFZO1lBQ3BCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGNBQWM7WUFDZCxjQUFjLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQztTQUM1RSxFQUNELFNBQVMsQ0FDVixDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxZQUFZLENBQUM7Z0JBQ3BCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxHQUFHLG9CQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDcEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUM5QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixPQUFPLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO29CQUNqQyxPQUFPLEVBQUUsY0FBYztvQkFDdkIsSUFBSSxFQUFFO3dCQUNKLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxLQUFLLElBQUk7d0JBQ3JDLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRTtxQkFDM0Q7aUJBQ0Y7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULEdBQUcsRUFBRTt3QkFDSCxXQUFXLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjt3QkFDdEMsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFO3FCQUM1RDtvQkFDRCxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUM7aUJBQzVEO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxJQUFJLG9DQUFtQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNwRSxPQUFPLEVBQUUsdUJBQWU7UUFDeEIsa0dBQWtHO1FBQ2xHLGlHQUFpRztRQUNqRyxvREFBb0Q7UUFDcEQsSUFBSSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDckIsV0FBVyxFQUFFLHlDQUF5QyxJQUFJLENBQUMsU0FBUyxDQUNsRSxVQUFVLENBQUMsSUFBSSxDQUNoQixjQUFjO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksRUFBRTtZQUNKLEtBQUssRUFBRSxZQUFZO1lBQ25CLE9BQU87WUFDUCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSwyQ0FBMkMsRUFBRTtZQUM5RSxXQUFXLEVBQUUsR0FDWCxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxtQkFDckMsSUFBSSxrQkFBa0IsRUFBRTtTQUN6QjtRQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0tBQ3hCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUF1QjtJQUN0RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDIn0=
|
|
410
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS1kb2N1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVuYXBpL29wZW5hcGktZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ1lBLDBEQStHQztBQUVELDRDQUVDO0FBaGZELG1FQUFzRjtBQUV0RixzRUFBNkM7QUFDN0MsdUNBY21CO0FBQ25CLHNFQUFxRDtBQUNyRCwrQ0FBa0M7QUFDbEMsaUVBQStEO0FBRWxELFFBQUEsZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUMxQixRQUFBLFlBQVksR0FBRyxXQUFXLENBQUM7QUFFeEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBQ3BDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQztBQUVuQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUV0RSxNQUFNLGNBQWMsR0FBMkI7SUFDN0MsR0FBRyxFQUFFLGtWQUFrVjtJQUN2VixHQUFHLEVBQUUsMENBQTBDO0lBQy9DLEdBQUcsRUFBRSwwT0FBME87SUFDL08sR0FBRyxFQUFFLHlDQUF5QztJQUM5QyxHQUFHLEVBQUUsNkNBQTZDLG9CQUFVLEVBQUU7SUFDOUQsR0FBRyxFQUFFLDZTQUE2UztJQUNsVCxHQUFHLEVBQUUsdUlBQXVJO0lBQzVJLEdBQUcsRUFBRSxvQ0FBb0M7SUFDekMsR0FBRyxFQUFFLCtGQUErRjtJQUNwRyxHQUFHLEVBQUUsaUZBQWlGO0lBQ3RGLEdBQUcsRUFBRSw2TkFBNk47SUFDbE8sR0FBRyxFQUFFLGlHQUFpRztJQUN0RyxHQUFHLEVBQUUsa1RBQWtUO0NBQ3hULENBQUM7QUFFRixNQUFNLDhCQUE4QixHQUNsQyw2RkFBNkY7SUFDN0YsaUVBQWlFLENBQUM7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
|
|
@@ -7,16 +7,17 @@ export declare const SortClauseSchema: z.ZodObject<{
|
|
|
7
7
|
asc: "asc";
|
|
8
8
|
desc: "desc";
|
|
9
9
|
}>>;
|
|
10
|
-
}, z.core.$
|
|
10
|
+
}, z.core.$strict>;
|
|
11
11
|
export declare const PageSchema: z.ZodObject<{
|
|
12
12
|
limit: z.ZodNumber;
|
|
13
13
|
offset: z.ZodNumber;
|
|
14
|
-
}, z.core.$
|
|
14
|
+
}, z.core.$strict>;
|
|
15
15
|
export declare const TimezoneSchema: z.ZodString;
|
|
16
16
|
export declare const SearchSchema: z.ZodString;
|
|
17
17
|
export declare const SearchExtendedSchema: z.ZodBoolean;
|
|
18
|
+
declare const ParentIdSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
19
|
+
export declare const CLOSED_BODY_NOTE: string;
|
|
18
20
|
export declare const ListRequestSchema: z.ZodObject<{
|
|
19
|
-
filter: z.ZodOptional<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
|
|
20
21
|
projection: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
21
22
|
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
22
23
|
field: z.ZodString;
|
|
@@ -24,53 +25,81 @@ export declare const ListRequestSchema: z.ZodObject<{
|
|
|
24
25
|
asc: "asc";
|
|
25
26
|
desc: "desc";
|
|
26
27
|
}>>;
|
|
27
|
-
}, z.core.$
|
|
28
|
+
}, z.core.$strict>>>;
|
|
28
29
|
page: z.ZodOptional<z.ZodObject<{
|
|
29
30
|
limit: z.ZodNumber;
|
|
30
31
|
offset: z.ZodNumber;
|
|
31
|
-
}, z.core.$
|
|
32
|
+
}, z.core.$strict>>;
|
|
33
|
+
filter: z.ZodOptional<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
|
|
32
34
|
search: z.ZodOptional<z.ZodString>;
|
|
33
35
|
searchExtended: z.ZodOptional<z.ZodBoolean>;
|
|
34
36
|
timezone: z.ZodOptional<z.ZodString>;
|
|
35
|
-
}, z.core.$
|
|
37
|
+
}, z.core.$strict>;
|
|
36
38
|
export declare const CountRequestSchema: z.ZodObject<{
|
|
37
39
|
filter: z.ZodOptional<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
|
|
38
40
|
search: z.ZodOptional<z.ZodString>;
|
|
39
41
|
searchExtended: z.ZodOptional<z.ZodBoolean>;
|
|
40
42
|
timezone: z.ZodOptional<z.ZodString>;
|
|
41
|
-
}, z.core.$
|
|
42
|
-
declare const ParentIdSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
43
|
+
}, z.core.$strict>;
|
|
43
44
|
export declare const RelationListRequestSchema: z.ZodObject<{
|
|
44
|
-
filter: z.ZodOptional<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
|
|
45
45
|
projection: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
46
|
+
parentId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
46
47
|
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
47
48
|
field: z.ZodString;
|
|
48
49
|
direction: z.ZodOptional<z.ZodEnum<{
|
|
49
50
|
asc: "asc";
|
|
50
51
|
desc: "desc";
|
|
51
52
|
}>>;
|
|
52
|
-
}, z.core.$
|
|
53
|
+
}, z.core.$strict>>>;
|
|
53
54
|
page: z.ZodOptional<z.ZodObject<{
|
|
54
55
|
limit: z.ZodNumber;
|
|
55
56
|
offset: z.ZodNumber;
|
|
56
|
-
}, z.core.$
|
|
57
|
+
}, z.core.$strict>>;
|
|
58
|
+
filter: z.ZodOptional<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
|
|
57
59
|
search: z.ZodOptional<z.ZodString>;
|
|
58
60
|
searchExtended: z.ZodOptional<z.ZodBoolean>;
|
|
59
61
|
timezone: z.ZodOptional<z.ZodString>;
|
|
60
|
-
|
|
61
|
-
}, z.core.$strip>;
|
|
62
|
+
}, z.core.$strict>;
|
|
62
63
|
export declare const RelationCountRequestSchema: z.ZodObject<{
|
|
64
|
+
parentId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
63
65
|
filter: z.ZodOptional<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
|
|
64
66
|
search: z.ZodOptional<z.ZodString>;
|
|
65
67
|
searchExtended: z.ZodOptional<z.ZodBoolean>;
|
|
66
68
|
timezone: z.ZodOptional<z.ZodString>;
|
|
67
|
-
|
|
68
|
-
}, z.core.$strip>;
|
|
69
|
+
}, z.core.$strict>;
|
|
69
70
|
export declare const ActionRequestSchema: z.ZodObject<{
|
|
70
71
|
recordIds: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
71
72
|
values: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
72
73
|
timezone: z.ZodOptional<z.ZodString>;
|
|
74
|
+
}, z.core.$strict>;
|
|
75
|
+
export declare const ActionFormResponseSchema: z.ZodObject<{
|
|
76
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
77
|
+
name: z.ZodString;
|
|
78
|
+
type: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
79
|
+
value: z.ZodOptional<z.ZodUnknown>;
|
|
80
|
+
isRequired: z.ZodBoolean;
|
|
81
|
+
enumValues: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodNull]>>;
|
|
82
|
+
}, z.core.$strip>>;
|
|
83
|
+
canExecute: z.ZodBoolean;
|
|
84
|
+
requiredFields: z.ZodArray<z.ZodString>;
|
|
85
|
+
skippedFields: z.ZodArray<z.ZodString>;
|
|
86
|
+
layout: z.ZodArray<z.ZodUnknown>;
|
|
73
87
|
}, z.core.$strip>;
|
|
88
|
+
export declare const ActionResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
89
|
+
type: z.ZodLiteral<"success">;
|
|
90
|
+
message: z.ZodUnion<readonly [z.ZodString, z.ZodNull]>;
|
|
91
|
+
invalidated: z.ZodArray<z.ZodString>;
|
|
92
|
+
html: z.ZodUnion<readonly [z.ZodString, z.ZodNull]>;
|
|
93
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
94
|
+
type: z.ZodLiteral<"webhook">;
|
|
95
|
+
url: z.ZodString;
|
|
96
|
+
method: z.ZodString;
|
|
97
|
+
headers: z.ZodOptional<z.ZodUnknown>;
|
|
98
|
+
body: z.ZodOptional<z.ZodUnknown>;
|
|
99
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
100
|
+
type: z.ZodLiteral<"redirect">;
|
|
101
|
+
path: z.ZodString;
|
|
102
|
+
}, z.core.$strip>], "type">;
|
|
74
103
|
export declare const ListResponseSchema: z.ZodObject<{
|
|
75
104
|
data: z.ZodArray<z.ZodIntersection<z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodObject<{
|
|
76
105
|
__forest: z.ZodObject<{
|