vovk 3.0.0-draft.340 → 3.0.0-draft.342
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/mjs/client/createRPC.js +4 -3
- package/mjs/client/types.d.ts +2 -2
- package/mjs/tsconfig.tsbuildinfo +1 -0
- package/package.json +5 -3
- package/cjs/HttpException.d.ts +0 -7
- package/cjs/HttpException.js +0 -15
- package/cjs/JSONLinesResponse.d.ts +0 -19
- package/cjs/JSONLinesResponse.js +0 -93
- package/cjs/VovkApp.d.ts +0 -29
- package/cjs/VovkApp.js +0 -200
- package/cjs/client/createRPC.d.ts +0 -3
- package/cjs/client/createRPC.js +0 -136
- package/cjs/client/defaultHandler.d.ts +0 -6
- package/cjs/client/defaultHandler.js +0 -29
- package/cjs/client/defaultStreamHandler.d.ts +0 -9
- package/cjs/client/defaultStreamHandler.js +0 -96
- package/cjs/client/fetcher.d.ts +0 -16
- package/cjs/client/fetcher.js +0 -100
- package/cjs/client/index.d.ts +0 -4
- package/cjs/client/index.js +0 -10
- package/cjs/client/progressive.d.ts +0 -9
- package/cjs/client/progressive.js +0 -51
- package/cjs/client/types.d.ts +0 -126
- package/cjs/client/types.js +0 -2
- package/cjs/createVovkApp.d.ts +0 -63
- package/cjs/createVovkApp.js +0 -140
- package/cjs/index.d.ts +0 -65
- package/cjs/index.js +0 -38
- package/cjs/openapi/error.d.ts +0 -2
- package/cjs/openapi/error.js +0 -100
- package/cjs/openapi/generateFnName.d.ts +0 -23
- package/cjs/openapi/generateFnName.js +0 -81
- package/cjs/openapi/index.d.ts +0 -12
- package/cjs/openapi/index.js +0 -21
- package/cjs/openapi/openAPIToVovkSchema/applyComponentsSchemas.d.ts +0 -3
- package/cjs/openapi/openAPIToVovkSchema/applyComponentsSchemas.js +0 -67
- package/cjs/openapi/openAPIToVovkSchema/index.d.ts +0 -4
- package/cjs/openapi/openAPIToVovkSchema/index.js +0 -197
- package/cjs/openapi/openAPIToVovkSchema/inlineRefs.d.ts +0 -10
- package/cjs/openapi/openAPIToVovkSchema/inlineRefs.js +0 -102
- package/cjs/openapi/vovkSchemaToOpenAPI.d.ts +0 -9
- package/cjs/openapi/vovkSchemaToOpenAPI.js +0 -233
- package/cjs/types.d.ts +0 -405
- package/cjs/types.js +0 -74
- package/cjs/utils/camelCase.d.ts +0 -6
- package/cjs/utils/camelCase.js +0 -37
- package/cjs/utils/createCodeExamples.d.ts +0 -19
- package/cjs/utils/createCodeExamples.js +0 -110
- package/cjs/utils/createDecorator.d.ts +0 -6
- package/cjs/utils/createDecorator.js +0 -48
- package/cjs/utils/createLLMTools.d.ts +0 -44
- package/cjs/utils/createLLMTools.js +0 -118
- package/cjs/utils/createStandardValidation.d.ts +0 -81
- package/cjs/utils/createStandardValidation.js +0 -33
- package/cjs/utils/generateStaticAPI.d.ts +0 -4
- package/cjs/utils/generateStaticAPI.js +0 -30
- package/cjs/utils/getJSONSchemaExample.d.ts +0 -8
- package/cjs/utils/getJSONSchemaExample.js +0 -234
- package/cjs/utils/getJSONSchemaSample.d.ts +0 -2
- package/cjs/utils/getJSONSchemaSample.js +0 -167
- package/cjs/utils/getSchema.d.ts +0 -21
- package/cjs/utils/getSchema.js +0 -38
- package/cjs/utils/multitenant.d.ts +0 -24
- package/cjs/utils/multitenant.js +0 -170
- package/cjs/utils/parseQuery.d.ts +0 -25
- package/cjs/utils/parseQuery.js +0 -156
- package/cjs/utils/reqForm.d.ts +0 -2
- package/cjs/utils/reqForm.js +0 -33
- package/cjs/utils/reqMeta.d.ts +0 -2
- package/cjs/utils/reqMeta.js +0 -13
- package/cjs/utils/reqQuery.d.ts +0 -2
- package/cjs/utils/reqQuery.js +0 -10
- package/cjs/utils/serializeQuery.d.ts +0 -13
- package/cjs/utils/serializeQuery.js +0 -65
- package/cjs/utils/setHandlerSchema.d.ts +0 -4
- package/cjs/utils/setHandlerSchema.js +0 -15
- package/cjs/utils/shim.d.ts +0 -0
- package/cjs/utils/shim.js +0 -17
- package/cjs/utils/upperFirst.d.ts +0 -1
- package/cjs/utils/upperFirst.js +0 -6
- package/cjs/utils/withValidationLibrary.d.ts +0 -76
- package/cjs/utils/withValidationLibrary.js +0 -123
package/cjs/types.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VovkSchemaIdEnum = exports.HttpStatus = exports.HttpMethod = void 0;
|
|
4
|
-
// Enums
|
|
5
|
-
var HttpMethod;
|
|
6
|
-
(function (HttpMethod) {
|
|
7
|
-
HttpMethod["GET"] = "GET";
|
|
8
|
-
HttpMethod["POST"] = "POST";
|
|
9
|
-
HttpMethod["PUT"] = "PUT";
|
|
10
|
-
HttpMethod["PATCH"] = "PATCH";
|
|
11
|
-
HttpMethod["DELETE"] = "DELETE";
|
|
12
|
-
HttpMethod["HEAD"] = "HEAD";
|
|
13
|
-
HttpMethod["OPTIONS"] = "OPTIONS";
|
|
14
|
-
})(HttpMethod || (exports.HttpMethod = HttpMethod = {}));
|
|
15
|
-
var HttpStatus;
|
|
16
|
-
(function (HttpStatus) {
|
|
17
|
-
HttpStatus[HttpStatus["NULL"] = 0] = "NULL";
|
|
18
|
-
HttpStatus[HttpStatus["CONTINUE"] = 100] = "CONTINUE";
|
|
19
|
-
HttpStatus[HttpStatus["SWITCHING_PROTOCOLS"] = 101] = "SWITCHING_PROTOCOLS";
|
|
20
|
-
HttpStatus[HttpStatus["PROCESSING"] = 102] = "PROCESSING";
|
|
21
|
-
HttpStatus[HttpStatus["EARLYHINTS"] = 103] = "EARLYHINTS";
|
|
22
|
-
HttpStatus[HttpStatus["OK"] = 200] = "OK";
|
|
23
|
-
HttpStatus[HttpStatus["CREATED"] = 201] = "CREATED";
|
|
24
|
-
HttpStatus[HttpStatus["ACCEPTED"] = 202] = "ACCEPTED";
|
|
25
|
-
HttpStatus[HttpStatus["NON_AUTHORITATIVE_INFORMATION"] = 203] = "NON_AUTHORITATIVE_INFORMATION";
|
|
26
|
-
HttpStatus[HttpStatus["NO_CONTENT"] = 204] = "NO_CONTENT";
|
|
27
|
-
HttpStatus[HttpStatus["RESET_CONTENT"] = 205] = "RESET_CONTENT";
|
|
28
|
-
HttpStatus[HttpStatus["PARTIAL_CONTENT"] = 206] = "PARTIAL_CONTENT";
|
|
29
|
-
HttpStatus[HttpStatus["AMBIGUOUS"] = 300] = "AMBIGUOUS";
|
|
30
|
-
HttpStatus[HttpStatus["MOVED_PERMANENTLY"] = 301] = "MOVED_PERMANENTLY";
|
|
31
|
-
HttpStatus[HttpStatus["FOUND"] = 302] = "FOUND";
|
|
32
|
-
HttpStatus[HttpStatus["SEE_OTHER"] = 303] = "SEE_OTHER";
|
|
33
|
-
HttpStatus[HttpStatus["NOT_MODIFIED"] = 304] = "NOT_MODIFIED";
|
|
34
|
-
HttpStatus[HttpStatus["TEMPORARY_REDIRECT"] = 307] = "TEMPORARY_REDIRECT";
|
|
35
|
-
HttpStatus[HttpStatus["PERMANENT_REDIRECT"] = 308] = "PERMANENT_REDIRECT";
|
|
36
|
-
HttpStatus[HttpStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
|
37
|
-
HttpStatus[HttpStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
|
38
|
-
HttpStatus[HttpStatus["PAYMENT_REQUIRED"] = 402] = "PAYMENT_REQUIRED";
|
|
39
|
-
HttpStatus[HttpStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
40
|
-
HttpStatus[HttpStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
41
|
-
HttpStatus[HttpStatus["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
|
|
42
|
-
HttpStatus[HttpStatus["NOT_ACCEPTABLE"] = 406] = "NOT_ACCEPTABLE";
|
|
43
|
-
HttpStatus[HttpStatus["PROXY_AUTHENTICATION_REQUIRED"] = 407] = "PROXY_AUTHENTICATION_REQUIRED";
|
|
44
|
-
HttpStatus[HttpStatus["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT";
|
|
45
|
-
HttpStatus[HttpStatus["CONFLICT"] = 409] = "CONFLICT";
|
|
46
|
-
HttpStatus[HttpStatus["GONE"] = 410] = "GONE";
|
|
47
|
-
HttpStatus[HttpStatus["LENGTH_REQUIRED"] = 411] = "LENGTH_REQUIRED";
|
|
48
|
-
HttpStatus[HttpStatus["PRECONDITION_FAILED"] = 412] = "PRECONDITION_FAILED";
|
|
49
|
-
HttpStatus[HttpStatus["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
|
|
50
|
-
HttpStatus[HttpStatus["URI_TOO_LONG"] = 414] = "URI_TOO_LONG";
|
|
51
|
-
HttpStatus[HttpStatus["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE";
|
|
52
|
-
HttpStatus[HttpStatus["REQUESTED_RANGE_NOT_SATISFIABLE"] = 416] = "REQUESTED_RANGE_NOT_SATISFIABLE";
|
|
53
|
-
HttpStatus[HttpStatus["EXPECTATION_FAILED"] = 417] = "EXPECTATION_FAILED";
|
|
54
|
-
HttpStatus[HttpStatus["I_AM_A_TEAPOT"] = 418] = "I_AM_A_TEAPOT";
|
|
55
|
-
HttpStatus[HttpStatus["MISDIRECTED"] = 421] = "MISDIRECTED";
|
|
56
|
-
HttpStatus[HttpStatus["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY";
|
|
57
|
-
HttpStatus[HttpStatus["FAILED_DEPENDENCY"] = 424] = "FAILED_DEPENDENCY";
|
|
58
|
-
HttpStatus[HttpStatus["PRECONDITION_REQUIRED"] = 428] = "PRECONDITION_REQUIRED";
|
|
59
|
-
HttpStatus[HttpStatus["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
|
|
60
|
-
HttpStatus[HttpStatus["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
|
|
61
|
-
HttpStatus[HttpStatus["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
|
|
62
|
-
HttpStatus[HttpStatus["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
|
|
63
|
-
HttpStatus[HttpStatus["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
|
|
64
|
-
HttpStatus[HttpStatus["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT";
|
|
65
|
-
HttpStatus[HttpStatus["HTTP_VERSION_NOT_SUPPORTED"] = 505] = "HTTP_VERSION_NOT_SUPPORTED";
|
|
66
|
-
})(HttpStatus || (exports.HttpStatus = HttpStatus = {}));
|
|
67
|
-
// -----
|
|
68
|
-
var VovkSchemaIdEnum;
|
|
69
|
-
(function (VovkSchemaIdEnum) {
|
|
70
|
-
VovkSchemaIdEnum["META"] = "https://vovk.dev/api/spec/v3/meta.json";
|
|
71
|
-
VovkSchemaIdEnum["CONFIG"] = "https://vovk.dev/api/spec/v3/config.json";
|
|
72
|
-
VovkSchemaIdEnum["SEGMENT"] = "https://vovk.dev/api/spec/v3/segment.json";
|
|
73
|
-
VovkSchemaIdEnum["SCHEMA"] = "https://vovk.dev/api/spec/v3/schema.json";
|
|
74
|
-
})(VovkSchemaIdEnum || (exports.VovkSchemaIdEnum = VovkSchemaIdEnum = {}));
|
package/cjs/utils/camelCase.d.ts
DELETED
package/cjs/utils/camelCase.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.camelCase = camelCase;
|
|
4
|
-
// Convert any value to string
|
|
5
|
-
function toString(value) {
|
|
6
|
-
return value == null ? '' : String(value);
|
|
7
|
-
}
|
|
8
|
-
// Regex to match words (including Unicode letters & digits)
|
|
9
|
-
const reUnicodeWord = /[\p{Lu}]{2,}(?=[\p{Lu}][\p{Ll}]+[0-9]*|\b)|[\p{Lu}]?[\p{Ll}]+[0-9]*|[\p{Lu}]|[0-9]+/gu;
|
|
10
|
-
/**
|
|
11
|
-
* Splits string into an array of words based on Unicode word boundaries
|
|
12
|
-
* @param {string} str
|
|
13
|
-
* @returns {string[]}
|
|
14
|
-
*/
|
|
15
|
-
function unicodeWords(str) {
|
|
16
|
-
return str.match(reUnicodeWord) || [];
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Converts string to camel case.
|
|
20
|
-
* @param {*} input - The value to convert to camel case.
|
|
21
|
-
* @returns {string}
|
|
22
|
-
*/
|
|
23
|
-
function camelCase(input) {
|
|
24
|
-
const str = toString(input);
|
|
25
|
-
// replace separators with space
|
|
26
|
-
const sanitized = str.replace(/[\s_-]+/g, ' ').trim();
|
|
27
|
-
const words = unicodeWords(sanitized);
|
|
28
|
-
return words
|
|
29
|
-
.map((word, index) => {
|
|
30
|
-
const lower = word.toLowerCase();
|
|
31
|
-
if (index === 0) {
|
|
32
|
-
return lower;
|
|
33
|
-
}
|
|
34
|
-
return lower.charAt(0).toUpperCase() + lower.slice(1);
|
|
35
|
-
})
|
|
36
|
-
.join('');
|
|
37
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { KnownAny, VovkControllerSchema, VovkHandlerSchema } from '../types.js';
|
|
2
|
-
export type CodeSamplePackageJson = {
|
|
3
|
-
name?: string;
|
|
4
|
-
version?: string;
|
|
5
|
-
description?: string;
|
|
6
|
-
rs_name?: string;
|
|
7
|
-
py_name?: string;
|
|
8
|
-
[key: string]: KnownAny;
|
|
9
|
-
};
|
|
10
|
-
export declare function createCodeExamples({ handlerName, handlerSchema, controllerSchema, package: packageJson, }: {
|
|
11
|
-
handlerName: string;
|
|
12
|
-
handlerSchema: VovkHandlerSchema;
|
|
13
|
-
controllerSchema: VovkControllerSchema;
|
|
14
|
-
package?: CodeSamplePackageJson;
|
|
15
|
-
}): {
|
|
16
|
-
ts: string;
|
|
17
|
-
py: string;
|
|
18
|
-
rs: string;
|
|
19
|
-
};
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createCodeExamples = createCodeExamples;
|
|
4
|
-
const getJSONSchemaExample_js_1 = require("./getJSONSchemaExample.js");
|
|
5
|
-
const toSnakeCase = (str) => str
|
|
6
|
-
.replace(/-/g, '_') // Replace hyphens with underscores
|
|
7
|
-
.replace(/([a-z0-9])([A-Z])/g, '$1_$2') // Add underscore between lowercase/digit and uppercase
|
|
8
|
-
.replace(/([A-Z])([A-Z])(?=[a-z])/g, '$1_$2') // Add underscore between uppercase letters if the second one is followed by a lowercase
|
|
9
|
-
.toLowerCase()
|
|
10
|
-
.replace(/^_/, ''); // Remove leading underscore
|
|
11
|
-
function createCodeExamples({ handlerName, handlerSchema, controllerSchema, package: packageJson, }) {
|
|
12
|
-
const queryValidation = handlerSchema?.validation?.query;
|
|
13
|
-
const bodyValidation = handlerSchema?.validation?.body;
|
|
14
|
-
const paramsValidation = handlerSchema?.validation?.params;
|
|
15
|
-
const outputValidation = handlerSchema?.validation?.output;
|
|
16
|
-
const iterationValidation = handlerSchema?.validation?.iteration;
|
|
17
|
-
const getTsSample = (schema, indent) => (0, getJSONSchemaExample_js_1.getJSONSchemaExample)(schema, { stripQuotes: true, indent: indent ?? 4 });
|
|
18
|
-
const getPySample = (schema, indent) => (0, getJSONSchemaExample_js_1.getJSONSchemaExample)(schema, { stripQuotes: false, indent: indent ?? 4, comment: '#' });
|
|
19
|
-
const getRsSample = (schema, indent) => (0, getJSONSchemaExample_js_1.getJSONSchemaExample)(schema, { stripQuotes: false, indent: indent ?? 4 });
|
|
20
|
-
const hasArg = !!queryValidation || !!bodyValidation || !!paramsValidation;
|
|
21
|
-
const rpcName = controllerSchema.rpcModuleName;
|
|
22
|
-
const handlerNameSnake = toSnakeCase(handlerName);
|
|
23
|
-
const rpcNameSnake = toSnakeCase(rpcName);
|
|
24
|
-
const packageName = packageJson?.name || 'vovk-client';
|
|
25
|
-
const packageNameSnake = toSnakeCase(packageName);
|
|
26
|
-
const tsArgs = hasArg
|
|
27
|
-
? `{
|
|
28
|
-
${[
|
|
29
|
-
bodyValidation ? ` body: ${getTsSample(bodyValidation)},` : null,
|
|
30
|
-
queryValidation ? ` query: ${getTsSample(queryValidation)},` : null,
|
|
31
|
-
paramsValidation ? ` params: ${getTsSample(paramsValidation)},` : null,
|
|
32
|
-
]
|
|
33
|
-
.filter(Boolean)
|
|
34
|
-
.join('\n')}
|
|
35
|
-
}`
|
|
36
|
-
: '';
|
|
37
|
-
const TS_CODE = `import { ${rpcName} } from '${packageName}';
|
|
38
|
-
|
|
39
|
-
${iterationValidation ? 'using' : 'const'} response = await ${rpcName}.${handlerName}(${tsArgs});
|
|
40
|
-
${outputValidation
|
|
41
|
-
? `
|
|
42
|
-
console.log(response);
|
|
43
|
-
/*
|
|
44
|
-
${getTsSample(outputValidation, 0)}
|
|
45
|
-
*/`
|
|
46
|
-
: ''}${iterationValidation
|
|
47
|
-
? `
|
|
48
|
-
for await (const item of response) {
|
|
49
|
-
console.log(item);
|
|
50
|
-
/*
|
|
51
|
-
${getTsSample(iterationValidation)}
|
|
52
|
-
*/
|
|
53
|
-
}`
|
|
54
|
-
: ''}`;
|
|
55
|
-
const PY_CODE = `from ${packageJson?.py_name ?? packageNameSnake} import ${rpcName}
|
|
56
|
-
|
|
57
|
-
response = ${rpcName}.${handlerNameSnake}(${hasArg
|
|
58
|
-
? '\n' +
|
|
59
|
-
[
|
|
60
|
-
bodyValidation ? ` body=${getPySample(bodyValidation)},` : null,
|
|
61
|
-
queryValidation ? ` query=${getPySample(queryValidation)},` : null,
|
|
62
|
-
paramsValidation ? ` params=${getPySample(paramsValidation)},` : null,
|
|
63
|
-
]
|
|
64
|
-
.filter(Boolean)
|
|
65
|
-
.join('\n') +
|
|
66
|
-
'\n'
|
|
67
|
-
: ''})
|
|
68
|
-
|
|
69
|
-
${outputValidation ? `print(response)\n${getPySample(outputValidation, 0)}` : ''}${iterationValidation
|
|
70
|
-
? `for i, item in enumerate(response):
|
|
71
|
-
print(f"iteration #{i}:\\n {item}")
|
|
72
|
-
# iteration #0:
|
|
73
|
-
${getPySample(iterationValidation)}`
|
|
74
|
-
: ''}`;
|
|
75
|
-
const serdeUnwrap = (fake) => `from_value(json!(${fake})).unwrap()`;
|
|
76
|
-
const RS_CODE = `use ${packageJson?.rs_name ?? packageNameSnake}::${rpcNameSnake};
|
|
77
|
-
use serde_json::{ from_value, json };
|
|
78
|
-
|
|
79
|
-
pub fn main() {
|
|
80
|
-
let response = ${rpcNameSnake}::${handlerNameSnake}(
|
|
81
|
-
${bodyValidation ? serdeUnwrap(getRsSample(bodyValidation)) : '()'}, /* body */
|
|
82
|
-
${queryValidation ? serdeUnwrap(getRsSample(queryValidation)) : '()'}, /* query */
|
|
83
|
-
${paramsValidation ? serdeUnwrap(getRsSample(paramsValidation)) : '()'}, /* params */
|
|
84
|
-
None, /* headers (HashMap) */
|
|
85
|
-
None, /* api_root */
|
|
86
|
-
false, /* disable_client_validation */
|
|
87
|
-
);${outputValidation
|
|
88
|
-
? `\n\nmatch response {
|
|
89
|
-
Ok(output) => println!("{:?}", output),
|
|
90
|
-
/*
|
|
91
|
-
output ${getTsSample(outputValidation)}
|
|
92
|
-
*/
|
|
93
|
-
Err(e) => println!("error: {:?}", e),
|
|
94
|
-
}`
|
|
95
|
-
: ''}${iterationValidation
|
|
96
|
-
? `match response {
|
|
97
|
-
Ok(stream) => {
|
|
98
|
-
for (i, item) in stream.enumerate() {
|
|
99
|
-
println!("#{}: {:?}", i, item);
|
|
100
|
-
/*
|
|
101
|
-
#0: iteration ${getTsSample(iterationValidation, 8)}
|
|
102
|
-
*/
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
Err(e) => println!("Error initiating stream: {:?}", e),
|
|
106
|
-
}`
|
|
107
|
-
: ''}
|
|
108
|
-
}`;
|
|
109
|
-
return { ts: TS_CODE.trim(), py: PY_CODE.trim(), rs: RS_CODE.trim() };
|
|
110
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { VovkHandlerSchema, KnownAny, VovkController, VovkRequest } from '../types.js';
|
|
2
|
-
type Next = () => Promise<unknown>;
|
|
3
|
-
export declare function createDecorator<ARGS extends unknown[], REQUEST = VovkRequest>(handler: null | ((this: VovkController, req: REQUEST, next: Next, ...args: ARGS) => unknown), initHandler?: (this: VovkController, ...args: ARGS) => Omit<VovkHandlerSchema, 'path' | 'httpMethod'> | ((handlerSchema: VovkHandlerSchema | null, options: {
|
|
4
|
-
handlerName: string;
|
|
5
|
-
}) => Omit<Partial<VovkHandlerSchema>, 'path' | 'httpMethod'>) | null | undefined): (...args: ARGS) => (target: KnownAny, propertyKey: string) => void;
|
|
6
|
-
export {};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDecorator = createDecorator;
|
|
4
|
-
function createDecorator(handler, initHandler) {
|
|
5
|
-
return function decoratorCreator(...args) {
|
|
6
|
-
return function decorator(target, propertyKey) {
|
|
7
|
-
const controller = target;
|
|
8
|
-
const originalMethod = controller[propertyKey];
|
|
9
|
-
if (typeof originalMethod !== 'function') {
|
|
10
|
-
throw new Error(`Unable to decorate: ${propertyKey} is not a function`);
|
|
11
|
-
}
|
|
12
|
-
const sourceMethod = originalMethod._sourceMethod ?? originalMethod;
|
|
13
|
-
const method = function method(req, params) {
|
|
14
|
-
const next = async () => {
|
|
15
|
-
return (await originalMethod.call(controller, req, params));
|
|
16
|
-
};
|
|
17
|
-
return handler ? handler.call(controller, req, next, ...args) : next();
|
|
18
|
-
};
|
|
19
|
-
controller[propertyKey] = method;
|
|
20
|
-
method._controller = controller;
|
|
21
|
-
method._sourceMethod = sourceMethod;
|
|
22
|
-
method.fn = originalMethod.fn;
|
|
23
|
-
method.models = originalMethod.models;
|
|
24
|
-
sourceMethod.wrapper = method;
|
|
25
|
-
// TODO define internal method type
|
|
26
|
-
originalMethod._controller = controller;
|
|
27
|
-
const handlerSchema = controller._handlers?.[propertyKey] ?? null;
|
|
28
|
-
const initResultReturn = initHandler?.call(controller, ...args);
|
|
29
|
-
const initResult = typeof initResultReturn === 'function'
|
|
30
|
-
? initResultReturn(handlerSchema, {
|
|
31
|
-
handlerName: propertyKey,
|
|
32
|
-
})
|
|
33
|
-
: initResultReturn;
|
|
34
|
-
const methodSchema = {
|
|
35
|
-
...handlerSchema,
|
|
36
|
-
// avoid override of path and httpMethod
|
|
37
|
-
...(initResult?.validation ? { validation: initResult.validation } : {}),
|
|
38
|
-
...(initResult?.openapi ? { openapi: initResult.openapi } : {}),
|
|
39
|
-
...(initResult?.misc ? { misc: initResult.misc } : {}),
|
|
40
|
-
};
|
|
41
|
-
method.schema = methodSchema;
|
|
42
|
-
controller._handlers = {
|
|
43
|
-
...controller._handlers,
|
|
44
|
-
[propertyKey]: methodSchema,
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type { KnownAny, VovkHandlerSchema, VovkLLMTool } from '../types.js';
|
|
2
|
-
type Handler = ((...args: KnownAny[]) => KnownAny) & {
|
|
3
|
-
fn?: (input: KnownAny) => KnownAny;
|
|
4
|
-
isRPC?: boolean;
|
|
5
|
-
schema?: VovkHandlerSchema;
|
|
6
|
-
models?: {
|
|
7
|
-
body?: KnownAny;
|
|
8
|
-
query?: KnownAny;
|
|
9
|
-
params?: KnownAny;
|
|
10
|
-
output?: KnownAny;
|
|
11
|
-
iteration?: KnownAny;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
type CallerInput = {
|
|
15
|
-
handler: Handler;
|
|
16
|
-
body: KnownAny;
|
|
17
|
-
query: KnownAny;
|
|
18
|
-
params: KnownAny;
|
|
19
|
-
schema: VovkHandlerSchema;
|
|
20
|
-
models: {
|
|
21
|
-
body?: KnownAny;
|
|
22
|
-
query?: KnownAny;
|
|
23
|
-
params?: KnownAny;
|
|
24
|
-
output?: KnownAny;
|
|
25
|
-
iteration?: KnownAny;
|
|
26
|
-
} | undefined;
|
|
27
|
-
init?: RequestInit;
|
|
28
|
-
meta: Record<string, KnownAny> | undefined;
|
|
29
|
-
handlerName: string;
|
|
30
|
-
moduleName: string;
|
|
31
|
-
};
|
|
32
|
-
declare function defaultCaller({ handler, body, query, params, init, meta }: CallerInput, _options: KnownAny): Promise<any>;
|
|
33
|
-
export declare function createLLMTools({ modules, caller, meta, onExecute, onError, }: {
|
|
34
|
-
modules: Record<string, object | [object, {
|
|
35
|
-
init?: RequestInit;
|
|
36
|
-
}]>;
|
|
37
|
-
caller?: typeof defaultCaller;
|
|
38
|
-
meta?: Record<string, KnownAny>;
|
|
39
|
-
onExecute?: (result: KnownAny, callerInput: CallerInput, options: KnownAny) => void;
|
|
40
|
-
onError?: (error: Error, callerInput: CallerInput, options: KnownAny) => void;
|
|
41
|
-
}): {
|
|
42
|
-
tools: VovkLLMTool[];
|
|
43
|
-
};
|
|
44
|
-
export {};
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createLLMTools = createLLMTools;
|
|
4
|
-
const createLLMTool = ({ moduleName, handlerName, caller, module, init, meta, onExecute, onError, }) => {
|
|
5
|
-
if (!module) {
|
|
6
|
-
throw new Error(`Module "${moduleName}" not found.`);
|
|
7
|
-
}
|
|
8
|
-
const handler = module[handlerName];
|
|
9
|
-
if (!handler) {
|
|
10
|
-
throw new Error(`Handler "${handlerName}" not found in module "${moduleName}".`);
|
|
11
|
-
}
|
|
12
|
-
const { schema, models } = handler;
|
|
13
|
-
if (!schema || !schema.openapi) {
|
|
14
|
-
throw new Error(`Handler "${handlerName}" in module "${moduleName}" does not have a valid schema.`);
|
|
15
|
-
}
|
|
16
|
-
const execute = (input, options) => {
|
|
17
|
-
const { body, query, params } = input;
|
|
18
|
-
const callerInput = {
|
|
19
|
-
schema,
|
|
20
|
-
models,
|
|
21
|
-
handler,
|
|
22
|
-
body,
|
|
23
|
-
query,
|
|
24
|
-
params,
|
|
25
|
-
init,
|
|
26
|
-
meta,
|
|
27
|
-
handlerName,
|
|
28
|
-
moduleName,
|
|
29
|
-
};
|
|
30
|
-
return caller(callerInput, options)
|
|
31
|
-
.then((data) => onExecute(data, callerInput, options) ?? data)
|
|
32
|
-
.catch((error) => onError?.(error, callerInput, options) ?? error);
|
|
33
|
-
};
|
|
34
|
-
const parametersProperties = {
|
|
35
|
-
...(schema?.validation?.body
|
|
36
|
-
? {
|
|
37
|
-
body: schema.validation.body,
|
|
38
|
-
}
|
|
39
|
-
: {}),
|
|
40
|
-
...(schema?.validation?.query
|
|
41
|
-
? {
|
|
42
|
-
query: schema.validation.query,
|
|
43
|
-
}
|
|
44
|
-
: {}),
|
|
45
|
-
...(schema?.validation?.params
|
|
46
|
-
? {
|
|
47
|
-
params: schema.validation.params,
|
|
48
|
-
}
|
|
49
|
-
: {}),
|
|
50
|
-
};
|
|
51
|
-
return {
|
|
52
|
-
type: 'function',
|
|
53
|
-
execute,
|
|
54
|
-
name: `${moduleName}_${handlerName}`,
|
|
55
|
-
description: schema.openapi?.['x-tool-description'] ??
|
|
56
|
-
([schema.openapi?.summary ?? '', schema.openapi?.description ?? ''].filter(Boolean).join('\n') || handlerName),
|
|
57
|
-
parameters: {
|
|
58
|
-
type: 'object',
|
|
59
|
-
properties: parametersProperties,
|
|
60
|
-
required: Object.keys(parametersProperties),
|
|
61
|
-
additionalProperties: false,
|
|
62
|
-
},
|
|
63
|
-
models,
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
async function defaultCaller({ handler, body, query, params, init, meta },
|
|
67
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
68
|
-
_options) {
|
|
69
|
-
if (handler.isRPC) {
|
|
70
|
-
return handler({
|
|
71
|
-
handler,
|
|
72
|
-
body,
|
|
73
|
-
query,
|
|
74
|
-
params,
|
|
75
|
-
init,
|
|
76
|
-
meta,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
if (handler.fn) {
|
|
80
|
-
return handler.fn({
|
|
81
|
-
body,
|
|
82
|
-
query,
|
|
83
|
-
params,
|
|
84
|
-
meta,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
throw new Error('Handler is not a valid RPC or controller method');
|
|
88
|
-
}
|
|
89
|
-
function createLLMTools({ modules, caller = defaultCaller, meta, onExecute = (result) => result, onError = () => { }, }) {
|
|
90
|
-
const moduleWithConfig = modules;
|
|
91
|
-
const tools = Object.entries(moduleWithConfig ?? {})
|
|
92
|
-
.map(([moduleName, moduleWithconfig]) => {
|
|
93
|
-
let init;
|
|
94
|
-
let module;
|
|
95
|
-
if (Array.isArray(moduleWithconfig)) {
|
|
96
|
-
[module, { init }] = moduleWithconfig;
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
module = moduleWithconfig;
|
|
100
|
-
}
|
|
101
|
-
return Object.entries(module ?? {})
|
|
102
|
-
.filter(([, handler]) => handler?.schema?.openapi && !handler?.schema?.openapi?.['x-tool-exclude'])
|
|
103
|
-
.map(([handlerName]) => createLLMTool({
|
|
104
|
-
moduleName,
|
|
105
|
-
handlerName,
|
|
106
|
-
caller,
|
|
107
|
-
module,
|
|
108
|
-
init,
|
|
109
|
-
meta,
|
|
110
|
-
onExecute,
|
|
111
|
-
onError,
|
|
112
|
-
}));
|
|
113
|
-
})
|
|
114
|
-
.flat();
|
|
115
|
-
return {
|
|
116
|
-
tools,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
-
import { KnownAny, VovkRequest, VovkTypedMethod, VovkValidationType } from '../types.js';
|
|
3
|
-
export declare function createStandardValidation({ toJSONSchema, }: {
|
|
4
|
-
toJSONSchema: (model: KnownAny, meta: {
|
|
5
|
-
type: VovkValidationType;
|
|
6
|
-
}) => KnownAny;
|
|
7
|
-
}): <T extends (req: REQ, params: PARAMS extends StandardSchemaV1 ? StandardSchemaV1.InferInput<PARAMS> : Record<string, string>) => KnownAny, BODY extends StandardSchemaV1, QUERY extends StandardSchemaV1, PARAMS extends StandardSchemaV1, OUTPUT extends StandardSchemaV1, ITERATION extends StandardSchemaV1, REQ extends VovkRequest<KnownAny, KnownAny, KnownAny> = VovkRequest<BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferInput<BODY> : undefined, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferInput<QUERY> : undefined, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferInput<PARAMS> : undefined>, IS_FORM extends boolean = false>({ isForm, body, query, params, output, iteration, handle, disableServerSideValidation, skipSchemaEmission, validateEachIteration, }: {
|
|
8
|
-
isForm?: IS_FORM;
|
|
9
|
-
body?: BODY;
|
|
10
|
-
query?: QUERY;
|
|
11
|
-
params?: PARAMS;
|
|
12
|
-
output?: OUTPUT;
|
|
13
|
-
iteration?: ITERATION;
|
|
14
|
-
handle: T;
|
|
15
|
-
disableServerSideValidation?: boolean | VovkValidationType[];
|
|
16
|
-
skipSchemaEmission?: boolean | VovkValidationType[];
|
|
17
|
-
validateEachIteration?: boolean;
|
|
18
|
-
}) => T & {
|
|
19
|
-
__types: {
|
|
20
|
-
body: BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any;
|
|
21
|
-
query: QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any;
|
|
22
|
-
params: PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any;
|
|
23
|
-
output: OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any;
|
|
24
|
-
iteration: ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any;
|
|
25
|
-
isForm: IS_FORM;
|
|
26
|
-
};
|
|
27
|
-
isRPC?: boolean;
|
|
28
|
-
} & {
|
|
29
|
-
schema: import("../types.js").VovkHandlerSchema;
|
|
30
|
-
wrapper?: ((req: VovkRequest<any, any, any>, params: Parameters<VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>>[1]) => ReturnType<VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>>) | undefined;
|
|
31
|
-
} & {
|
|
32
|
-
fn: {
|
|
33
|
-
<RETURN_TYPE = ReturnType<VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>>>(input?: ((undefined extends BODY | undefined ? undefined extends QUERY | undefined ? undefined extends PARAMS | undefined ? true : false : false : false) extends true ? {
|
|
34
|
-
disableClientValidation?: boolean;
|
|
35
|
-
} & (undefined extends BODY | undefined ? {
|
|
36
|
-
body?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["body"] | undefined;
|
|
37
|
-
} : {
|
|
38
|
-
body: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["body"];
|
|
39
|
-
}) & (undefined extends QUERY | undefined ? {
|
|
40
|
-
query?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["query"] | undefined;
|
|
41
|
-
} : {
|
|
42
|
-
query: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["query"];
|
|
43
|
-
}) & (undefined extends PARAMS | undefined ? {
|
|
44
|
-
params?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["params"] | undefined;
|
|
45
|
-
} : {
|
|
46
|
-
params: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["params"];
|
|
47
|
-
}) & {
|
|
48
|
-
meta?: {
|
|
49
|
-
[key: string]: any;
|
|
50
|
-
__disableClientValidation?: boolean;
|
|
51
|
-
};
|
|
52
|
-
} : never) | undefined): (undefined extends BODY | undefined ? undefined extends QUERY | undefined ? undefined extends PARAMS | undefined ? true : false : false : false) extends true ? RETURN_TYPE : never;
|
|
53
|
-
<RETURN_TYPE = ReturnType<VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>>>(input: {
|
|
54
|
-
disableClientValidation?: boolean;
|
|
55
|
-
} & (undefined extends BODY | undefined ? {
|
|
56
|
-
body?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["body"] | undefined;
|
|
57
|
-
} : {
|
|
58
|
-
body: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["body"];
|
|
59
|
-
}) & (undefined extends QUERY | undefined ? {
|
|
60
|
-
query?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["query"] | undefined;
|
|
61
|
-
} : {
|
|
62
|
-
query: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["query"];
|
|
63
|
-
}) & (undefined extends PARAMS | undefined ? {
|
|
64
|
-
params?: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["params"] | undefined;
|
|
65
|
-
} : {
|
|
66
|
-
params: VovkTypedMethod<T, BODY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<BODY> : any, QUERY extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<QUERY> : any, PARAMS extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<PARAMS> : any, OUTPUT extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<OUTPUT> : any, ITERATION extends StandardSchemaV1<unknown, unknown> ? StandardSchemaV1.InferOutput<ITERATION> : any, IS_FORM>["__types"]["params"];
|
|
67
|
-
}) & {
|
|
68
|
-
meta?: {
|
|
69
|
-
[key: string]: any;
|
|
70
|
-
__disableClientValidation?: boolean;
|
|
71
|
-
};
|
|
72
|
-
}): RETURN_TYPE;
|
|
73
|
-
};
|
|
74
|
-
models: {
|
|
75
|
-
iteration?: (ITERATION & ({} | null)) | undefined;
|
|
76
|
-
output?: (OUTPUT & ({} | null)) | undefined;
|
|
77
|
-
params?: (PARAMS & ({} | null)) | undefined;
|
|
78
|
-
query?: (QUERY & ({} | null)) | undefined;
|
|
79
|
-
body?: (BODY & ({} | null)) | undefined;
|
|
80
|
-
};
|
|
81
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createStandardValidation = createStandardValidation;
|
|
4
|
-
const types_js_1 = require("../types.js");
|
|
5
|
-
const withValidationLibrary_js_1 = require("./withValidationLibrary.js");
|
|
6
|
-
const HttpException_js_1 = require("../HttpException.js");
|
|
7
|
-
function createStandardValidation({ toJSONSchema, }) {
|
|
8
|
-
function withStandard({ isForm, body, query, params, output, iteration, handle, disableServerSideValidation, skipSchemaEmission, validateEachIteration, }) {
|
|
9
|
-
return (0, withValidationLibrary_js_1.withValidationLibrary)({
|
|
10
|
-
isForm,
|
|
11
|
-
body,
|
|
12
|
-
query,
|
|
13
|
-
params,
|
|
14
|
-
output,
|
|
15
|
-
iteration,
|
|
16
|
-
disableServerSideValidation,
|
|
17
|
-
skipSchemaEmission,
|
|
18
|
-
validateEachIteration,
|
|
19
|
-
handle: handle,
|
|
20
|
-
toJSONSchema,
|
|
21
|
-
validate: async (data, model, { type, i }) => {
|
|
22
|
-
const result = await model['~standard'].validate(data);
|
|
23
|
-
if (result.issues?.length) {
|
|
24
|
-
throw new HttpException_js_1.HttpException(types_js_1.HttpStatus.BAD_REQUEST, `Validation failed. Invalid ${type === 'iteration' ? `${type} #${i}` : type} on server: ${result.issues
|
|
25
|
-
.map(({ message, path }) => `${message}${path ? ` at ${path.join('.')}` : ''}`)
|
|
26
|
-
.join(', ')}`, { [type]: data, result });
|
|
27
|
-
}
|
|
28
|
-
return result.value;
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
return withStandard;
|
|
33
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateStaticAPI = generateStaticAPI;
|
|
4
|
-
function generateStaticAPI(c, slug = 'vovk') {
|
|
5
|
-
const controllers = c;
|
|
6
|
-
return [
|
|
7
|
-
{ [slug]: ['_schema_'] },
|
|
8
|
-
...Object.values(controllers)
|
|
9
|
-
.map((controller) => {
|
|
10
|
-
const handlers = controller._handlers;
|
|
11
|
-
const splitPrefix = controller._prefix?.split('/') ?? [];
|
|
12
|
-
return Object.entries(handlers ?? {})
|
|
13
|
-
.map(([name, handler]) => {
|
|
14
|
-
const staticParams = controller._handlersMetadata?.[name]?.staticParams;
|
|
15
|
-
if (staticParams?.length) {
|
|
16
|
-
return staticParams.map((paramsItem) => {
|
|
17
|
-
let path = handler.path;
|
|
18
|
-
for (const [key, value] of Object.entries(paramsItem ?? {})) {
|
|
19
|
-
path = path.replace(`{${key}}`, value);
|
|
20
|
-
}
|
|
21
|
-
return { [slug]: [...splitPrefix, ...path.split('/')].filter(Boolean) };
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
return [{ [slug]: [...splitPrefix, ...handler.path.split('/')].filter(Boolean) }];
|
|
25
|
-
})
|
|
26
|
-
.flat();
|
|
27
|
-
})
|
|
28
|
-
.flat(),
|
|
29
|
-
];
|
|
30
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { KnownAny } from '../types.js';
|
|
2
|
-
interface SamplerOptions {
|
|
3
|
-
comment?: '//' | '#';
|
|
4
|
-
stripQuotes?: boolean;
|
|
5
|
-
indent?: number;
|
|
6
|
-
}
|
|
7
|
-
export declare function getJSONSchemaExample(schema: KnownAny, options: SamplerOptions, rootSchema?: KnownAny): string;
|
|
8
|
-
export {};
|