vovk 3.0.0-draft.21 → 3.0.0-draft.211

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.
Files changed (169) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +8 -96
  3. package/bin/index.mjs +8 -0
  4. package/{HttpException.d.ts → cjs/HttpException.d.ts} +2 -2
  5. package/{HttpException.js → cjs/HttpException.js} +3 -3
  6. package/cjs/JSONLinesResponse.d.ts +14 -0
  7. package/{StreamJSONResponse.js → cjs/JSONLinesResponse.js} +15 -10
  8. package/{Segment.d.ts → cjs/VovkApp.d.ts} +11 -10
  9. package/cjs/VovkApp.js +189 -0
  10. package/cjs/client/createRPC.d.ts +3 -0
  11. package/cjs/client/createRPC.js +87 -0
  12. package/{client → cjs/client}/defaultHandler.d.ts +1 -1
  13. package/cjs/client/defaultHandler.js +22 -0
  14. package/cjs/client/defaultStreamHandler.d.ts +4 -0
  15. package/{client → cjs/client}/defaultStreamHandler.js +11 -12
  16. package/cjs/client/fetcher.d.ts +13 -0
  17. package/cjs/client/fetcher.js +90 -0
  18. package/cjs/client/index.d.ts +3 -0
  19. package/cjs/client/index.js +8 -0
  20. package/cjs/client/types.d.ts +111 -0
  21. package/{createSegment.d.ts → cjs/createVovkApp.d.ts} +11 -10
  22. package/cjs/createVovkApp.js +132 -0
  23. package/cjs/index.d.ts +65 -0
  24. package/cjs/index.js +37 -0
  25. package/cjs/openapi/error.d.ts +2 -0
  26. package/cjs/openapi/error.js +100 -0
  27. package/cjs/openapi/generateFnName.d.ts +23 -0
  28. package/cjs/openapi/generateFnName.js +81 -0
  29. package/cjs/openapi/index.d.ts +12 -0
  30. package/cjs/openapi/index.js +21 -0
  31. package/cjs/openapi/openAPIToVovkSchema.d.ts +2 -0
  32. package/cjs/openapi/openAPIToVovkSchema.js +197 -0
  33. package/cjs/openapi/vovkSchemaToOpenAPI.d.ts +9 -0
  34. package/cjs/openapi/vovkSchemaToOpenAPI.js +237 -0
  35. package/cjs/types.d.ts +364 -0
  36. package/cjs/types.js +74 -0
  37. package/cjs/utils/camelCase.d.ts +6 -0
  38. package/cjs/utils/camelCase.js +37 -0
  39. package/cjs/utils/createCodeExamples.d.ts +19 -0
  40. package/cjs/utils/createCodeExamples.js +114 -0
  41. package/cjs/utils/createDecorator.d.ts +6 -0
  42. package/{createDecorator.js → cjs/utils/createDecorator.js} +24 -16
  43. package/cjs/utils/createLLMFunctions.d.ts +20 -0
  44. package/cjs/utils/createLLMFunctions.js +100 -0
  45. package/cjs/utils/generateStaticAPI.d.ts +4 -0
  46. package/cjs/utils/generateStaticAPI.js +30 -0
  47. package/cjs/utils/getSchema.d.ts +21 -0
  48. package/cjs/utils/getSchema.js +43 -0
  49. package/cjs/utils/multitenant.d.ts +24 -0
  50. package/cjs/utils/multitenant.js +170 -0
  51. package/cjs/utils/parseQuery.d.ts +25 -0
  52. package/cjs/utils/parseQuery.js +156 -0
  53. package/cjs/utils/reqForm.d.ts +2 -0
  54. package/cjs/utils/reqForm.js +33 -0
  55. package/{utils → cjs/utils}/reqMeta.d.ts +1 -2
  56. package/cjs/utils/reqQuery.d.ts +2 -0
  57. package/cjs/utils/reqQuery.js +10 -0
  58. package/cjs/utils/serializeQuery.d.ts +13 -0
  59. package/cjs/utils/serializeQuery.js +65 -0
  60. package/cjs/utils/setHandlerSchema.d.ts +4 -0
  61. package/cjs/utils/setHandlerSchema.js +15 -0
  62. package/cjs/utils/withStandard.d.ts +51 -0
  63. package/cjs/utils/withStandard.js +30 -0
  64. package/cjs/utils/withValidationLibrary.d.ts +49 -0
  65. package/cjs/utils/withValidationLibrary.js +123 -0
  66. package/mjs/HttpException.d.ts +7 -0
  67. package/mjs/HttpException.js +15 -0
  68. package/mjs/JSONLinesResponse.d.ts +14 -0
  69. package/mjs/JSONLinesResponse.js +59 -0
  70. package/mjs/VovkApp.d.ts +29 -0
  71. package/mjs/VovkApp.js +189 -0
  72. package/mjs/client/createRPC.d.ts +3 -0
  73. package/mjs/client/createRPC.js +87 -0
  74. package/mjs/client/defaultHandler.d.ts +2 -0
  75. package/mjs/client/defaultHandler.js +22 -0
  76. package/mjs/client/defaultStreamHandler.d.ts +4 -0
  77. package/mjs/client/defaultStreamHandler.js +81 -0
  78. package/mjs/client/fetcher.d.ts +13 -0
  79. package/mjs/client/fetcher.js +90 -0
  80. package/mjs/client/index.d.ts +3 -0
  81. package/mjs/client/index.js +8 -0
  82. package/mjs/client/types.d.ts +111 -0
  83. package/mjs/createVovkApp.d.ts +63 -0
  84. package/mjs/createVovkApp.js +132 -0
  85. package/mjs/index.d.ts +65 -0
  86. package/mjs/index.js +37 -0
  87. package/mjs/openapi/error.d.ts +2 -0
  88. package/mjs/openapi/error.js +100 -0
  89. package/mjs/openapi/generateFnName.d.ts +23 -0
  90. package/mjs/openapi/generateFnName.js +81 -0
  91. package/mjs/openapi/index.d.ts +12 -0
  92. package/mjs/openapi/index.js +21 -0
  93. package/mjs/openapi/openAPIToVovkSchema.d.ts +2 -0
  94. package/mjs/openapi/openAPIToVovkSchema.js +197 -0
  95. package/mjs/openapi/vovkSchemaToOpenAPI.d.ts +9 -0
  96. package/mjs/openapi/vovkSchemaToOpenAPI.js +237 -0
  97. package/mjs/types.d.ts +364 -0
  98. package/mjs/types.js +74 -0
  99. package/mjs/utils/camelCase.d.ts +6 -0
  100. package/mjs/utils/camelCase.js +37 -0
  101. package/mjs/utils/createCodeExamples.d.ts +19 -0
  102. package/mjs/utils/createCodeExamples.js +114 -0
  103. package/mjs/utils/createDecorator.d.ts +6 -0
  104. package/mjs/utils/createDecorator.js +46 -0
  105. package/mjs/utils/createLLMFunctions.d.ts +20 -0
  106. package/mjs/utils/createLLMFunctions.js +100 -0
  107. package/mjs/utils/generateStaticAPI.d.ts +4 -0
  108. package/mjs/utils/generateStaticAPI.js +30 -0
  109. package/mjs/utils/getSchema.d.ts +21 -0
  110. package/mjs/utils/getSchema.js +43 -0
  111. package/mjs/utils/multitenant.d.ts +24 -0
  112. package/mjs/utils/multitenant.js +170 -0
  113. package/mjs/utils/parseQuery.d.ts +25 -0
  114. package/mjs/utils/parseQuery.js +156 -0
  115. package/mjs/utils/reqForm.d.ts +2 -0
  116. package/mjs/utils/reqForm.js +33 -0
  117. package/mjs/utils/reqMeta.d.ts +2 -0
  118. package/mjs/utils/reqMeta.js +13 -0
  119. package/mjs/utils/reqQuery.d.ts +2 -0
  120. package/mjs/utils/reqQuery.js +10 -0
  121. package/mjs/utils/serializeQuery.d.ts +13 -0
  122. package/mjs/utils/serializeQuery.js +65 -0
  123. package/mjs/utils/setHandlerSchema.d.ts +4 -0
  124. package/mjs/utils/setHandlerSchema.js +15 -0
  125. package/mjs/utils/shim.d.ts +1 -0
  126. package/mjs/utils/shim.js +18 -0
  127. package/mjs/utils/withStandard.d.ts +51 -0
  128. package/mjs/utils/withStandard.js +30 -0
  129. package/mjs/utils/withValidationLibrary.d.ts +49 -0
  130. package/mjs/utils/withValidationLibrary.js +123 -0
  131. package/package.json +30 -5
  132. package/.npmignore +0 -2
  133. package/Segment.js +0 -182
  134. package/StreamJSONResponse.d.ts +0 -17
  135. package/client/clientizeController.d.ts +0 -4
  136. package/client/clientizeController.js +0 -92
  137. package/client/defaultFetcher.d.ts +0 -4
  138. package/client/defaultFetcher.js +0 -49
  139. package/client/defaultHandler.js +0 -21
  140. package/client/defaultStreamHandler.d.ts +0 -4
  141. package/client/index.d.ts +0 -4
  142. package/client/index.js +0 -5
  143. package/client/types.d.ts +0 -100
  144. package/createDecorator.d.ts +0 -4
  145. package/createSegment.js +0 -118
  146. package/generateStaticAPI.d.ts +0 -4
  147. package/generateStaticAPI.js +0 -18
  148. package/index.d.ts +0 -60
  149. package/index.js +0 -20
  150. package/types.d.ts +0 -155
  151. package/types.js +0 -65
  152. package/utils/getSchema.d.ts +0 -8
  153. package/utils/getSchema.js +0 -38
  154. package/utils/reqQuery.d.ts +0 -3
  155. package/utils/reqQuery.js +0 -25
  156. package/utils/setClientValidatorsForHandler.d.ts +0 -5
  157. package/utils/setClientValidatorsForHandler.js +0 -28
  158. package/worker/index.d.ts +0 -3
  159. package/worker/index.js +0 -7
  160. package/worker/promisifyWorker.d.ts +0 -2
  161. package/worker/promisifyWorker.js +0 -141
  162. package/worker/types.d.ts +0 -31
  163. package/worker/worker.d.ts +0 -1
  164. package/worker/worker.js +0 -43
  165. /package/{client → cjs/client}/types.js +0 -0
  166. /package/{utils → cjs/utils}/reqMeta.js +0 -0
  167. /package/{utils → cjs/utils}/shim.d.ts +0 -0
  168. /package/{utils → cjs/utils}/shim.js +0 -0
  169. /package/{worker → mjs/client}/types.js +0 -0
package/types.d.ts DELETED
@@ -1,155 +0,0 @@
1
- import type { NextRequest } from 'next/server';
2
- import type { _StreamJSONResponse as StreamJSONResponse } from './StreamJSONResponse';
3
- import { _StreamAsyncIterator as StreamAsyncIterator } from './client/types';
4
- export type _KnownAny = any;
5
- export type _StaticClass = Function;
6
- export type _VovkSchema = {
7
- emitSchema: boolean;
8
- segmentName: string;
9
- workers: Record<string, _VovkWorkerSchema>;
10
- controllers: Record<string, _VovkControllerSchema>;
11
- };
12
- export type _VovkErrorResponse = {
13
- statusCode: _HttpStatus;
14
- message: string;
15
- isError: true;
16
- };
17
- export type _HandlerSchema = {
18
- path: string;
19
- httpMethod: _HttpMethod;
20
- validation?: {
21
- query?: _KnownAny;
22
- body?: _KnownAny;
23
- };
24
- custom?: Record<string, _KnownAny>;
25
- };
26
- export type _VovkControllerSchema = {
27
- controllerName: string;
28
- originalControllerName: string;
29
- prefix?: string;
30
- handlers: Record<string, _HandlerSchema>;
31
- };
32
- export type _VovkWorkerSchema = {
33
- workerName: string;
34
- originalWorkerName: string;
35
- handlers: Record<string, {
36
- isGenerator?: true;
37
- }>;
38
- };
39
- export type _VovkControllerInternal = {
40
- _controllerName?: _VovkControllerSchema['controllerName'];
41
- _prefix?: _VovkControllerSchema['prefix'];
42
- _handlers: _VovkControllerSchema['handlers'];
43
- _activated?: true;
44
- _onError?: (err: Error, req: _VovkRequest) => void | Promise<void>;
45
- };
46
- export type _VovkController = _StaticClass & _VovkControllerInternal & {
47
- [key: string]: unknown;
48
- };
49
- export type _VovkWorker = _StaticClass & {
50
- _handlers: _VovkWorkerSchema['handlers'];
51
- [key: string]: unknown;
52
- };
53
- export type _DecoratorOptions = {
54
- cors?: boolean;
55
- headers?: Record<string, string>;
56
- };
57
- export type _RouteHandler = ((req: _VovkRequest, params: Record<string, string>) => Response | Promise<Response> | Iterable<unknown> | AsyncIterable<unknown>) & {
58
- _options?: _DecoratorOptions;
59
- };
60
- export interface _VovkRequest<BODY = undefined, QUERY extends object | undefined = undefined> extends Omit<NextRequest, 'json' | 'nextUrl'> {
61
- json: () => Promise<BODY>;
62
- nextUrl: Omit<NextRequest['nextUrl'], 'searchParams'> & {
63
- searchParams: Omit<NextRequest['nextUrl']['searchParams'], 'get' | 'getAll' | 'entries' | 'forEach' | 'keys' | 'values'> & {
64
- get: <KEY extends keyof QUERY>(key: KEY) => QUERY[KEY] extends readonly (infer ITEM)[] ? ITEM : QUERY[KEY];
65
- getAll: <KEY extends keyof QUERY>(key: KEY) => QUERY[KEY] extends _KnownAny[] ? QUERY[KEY] : QUERY[KEY][];
66
- entries: () => IterableIterator<[keyof QUERY, QUERY[keyof QUERY]]>;
67
- forEach: (callbackfn: (value: QUERY[keyof QUERY], key: keyof QUERY, searchParams: NextRequest['nextUrl']['searchParams']) => void) => void;
68
- keys: () => IterableIterator<keyof QUERY>;
69
- values: () => IterableIterator<QUERY[keyof QUERY]>;
70
- };
71
- };
72
- vovk: {
73
- body: () => Promise<BODY>;
74
- query: () => QUERY;
75
- meta: <T = Record<_KnownAny, _KnownAny>>(meta?: T | null) => T;
76
- };
77
- }
78
- export type _ControllerStaticMethod<REQ extends _VovkRequest<_KnownAny, _KnownAny> = _VovkRequest<undefined, Record<string, string | string[]>>, PARAMS extends {
79
- [key: string]: string;
80
- } = _KnownAny> = ((req: REQ, params: PARAMS) => unknown) & {
81
- _controller?: _VovkController;
82
- };
83
- export type _VovkControllerBody<T extends (...args: _KnownAny) => _KnownAny> = Awaited<ReturnType<Parameters<T>[0]['vovk']['body']>>;
84
- export type _VovkControllerQuery<T extends (...args: _KnownAny) => _KnownAny> = ReturnType<Parameters<T>[0]['vovk']['query']>;
85
- export type _VovkControllerParams<T extends (...args: _KnownAny) => _KnownAny> = Parameters<T>[1];
86
- export type _VovkControllerYieldType<T extends (req: _VovkRequest<_KnownAny, _KnownAny>) => _KnownAny> = T extends (...args: _KnownAny[]) => AsyncGenerator<infer Y, _KnownAny, _KnownAny> ? Y : T extends (...args: _KnownAny[]) => Generator<infer Y, _KnownAny, _KnownAny> ? Y : T extends (...args: _KnownAny[]) => Promise<StreamJSONResponse<infer Y>> | StreamJSONResponse<infer Y> ? Y : never;
87
- export type _VovkBody<T extends (...args: _KnownAny[]) => unknown> = Parameters<T>[0]['body'];
88
- export type _VovkQuery<T extends (...args: _KnownAny[]) => unknown> = Parameters<T>[0]['query'];
89
- export type _VovkParams<T extends (...args: _KnownAny[]) => unknown> = Parameters<T>[0]['params'];
90
- export type _VovkYieldType<T extends (...args: _KnownAny[]) => unknown> = T extends (...args: _KnownAny[]) => Promise<StreamAsyncIterator<infer Y>> ? Y : never;
91
- export type _VovkReturnType<T extends (...args: _KnownAny) => unknown> = Awaited<ReturnType<T>>;
92
- export type _StreamAbortMessage = {
93
- isError: true;
94
- reason: _KnownAny;
95
- };
96
- export declare enum _HttpMethod {
97
- GET = "GET",
98
- POST = "POST",
99
- PUT = "PUT",
100
- PATCH = "PATCH",
101
- DELETE = "DELETE",
102
- HEAD = "HEAD",
103
- OPTIONS = "OPTIONS"
104
- }
105
- export declare enum _HttpStatus {
106
- NULL = 0,
107
- CONTINUE = 100,
108
- SWITCHING_PROTOCOLS = 101,
109
- PROCESSING = 102,
110
- EARLYHINTS = 103,
111
- OK = 200,
112
- CREATED = 201,
113
- ACCEPTED = 202,
114
- NON_AUTHORITATIVE_INFORMATION = 203,
115
- NO_CONTENT = 204,
116
- RESET_CONTENT = 205,
117
- PARTIAL_CONTENT = 206,
118
- AMBIGUOUS = 300,
119
- MOVED_PERMANENTLY = 301,
120
- FOUND = 302,
121
- SEE_OTHER = 303,
122
- NOT_MODIFIED = 304,
123
- TEMPORARY_REDIRECT = 307,
124
- PERMANENT_REDIRECT = 308,
125
- BAD_REQUEST = 400,
126
- UNAUTHORIZED = 401,
127
- PAYMENT_REQUIRED = 402,
128
- FORBIDDEN = 403,
129
- NOT_FOUND = 404,
130
- METHOD_NOT_ALLOWED = 405,
131
- NOT_ACCEPTABLE = 406,
132
- PROXY_AUTHENTICATION_REQUIRED = 407,
133
- REQUEST_TIMEOUT = 408,
134
- CONFLICT = 409,
135
- GONE = 410,
136
- LENGTH_REQUIRED = 411,
137
- PRECONDITION_FAILED = 412,
138
- PAYLOAD_TOO_LARGE = 413,
139
- URI_TOO_LONG = 414,
140
- UNSUPPORTED_MEDIA_TYPE = 415,
141
- REQUESTED_RANGE_NOT_SATISFIABLE = 416,
142
- EXPECTATION_FAILED = 417,
143
- I_AM_A_TEAPOT = 418,
144
- MISDIRECTED = 421,
145
- UNPROCESSABLE_ENTITY = 422,
146
- FAILED_DEPENDENCY = 424,
147
- PRECONDITION_REQUIRED = 428,
148
- TOO_MANY_REQUESTS = 429,
149
- INTERNAL_SERVER_ERROR = 500,
150
- NOT_IMPLEMENTED = 501,
151
- BAD_GATEWAY = 502,
152
- SERVICE_UNAVAILABLE = 503,
153
- GATEWAY_TIMEOUT = 504,
154
- HTTP_VERSION_NOT_SUPPORTED = 505
155
- }
package/types.js DELETED
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._HttpStatus = exports._HttpMethod = void 0;
4
- var _HttpMethod;
5
- (function (_HttpMethod) {
6
- _HttpMethod["GET"] = "GET";
7
- _HttpMethod["POST"] = "POST";
8
- _HttpMethod["PUT"] = "PUT";
9
- _HttpMethod["PATCH"] = "PATCH";
10
- _HttpMethod["DELETE"] = "DELETE";
11
- _HttpMethod["HEAD"] = "HEAD";
12
- _HttpMethod["OPTIONS"] = "OPTIONS";
13
- })(_HttpMethod || (exports._HttpMethod = _HttpMethod = {}));
14
- var _HttpStatus;
15
- (function (_HttpStatus) {
16
- _HttpStatus[_HttpStatus["NULL"] = 0] = "NULL";
17
- _HttpStatus[_HttpStatus["CONTINUE"] = 100] = "CONTINUE";
18
- _HttpStatus[_HttpStatus["SWITCHING_PROTOCOLS"] = 101] = "SWITCHING_PROTOCOLS";
19
- _HttpStatus[_HttpStatus["PROCESSING"] = 102] = "PROCESSING";
20
- _HttpStatus[_HttpStatus["EARLYHINTS"] = 103] = "EARLYHINTS";
21
- _HttpStatus[_HttpStatus["OK"] = 200] = "OK";
22
- _HttpStatus[_HttpStatus["CREATED"] = 201] = "CREATED";
23
- _HttpStatus[_HttpStatus["ACCEPTED"] = 202] = "ACCEPTED";
24
- _HttpStatus[_HttpStatus["NON_AUTHORITATIVE_INFORMATION"] = 203] = "NON_AUTHORITATIVE_INFORMATION";
25
- _HttpStatus[_HttpStatus["NO_CONTENT"] = 204] = "NO_CONTENT";
26
- _HttpStatus[_HttpStatus["RESET_CONTENT"] = 205] = "RESET_CONTENT";
27
- _HttpStatus[_HttpStatus["PARTIAL_CONTENT"] = 206] = "PARTIAL_CONTENT";
28
- _HttpStatus[_HttpStatus["AMBIGUOUS"] = 300] = "AMBIGUOUS";
29
- _HttpStatus[_HttpStatus["MOVED_PERMANENTLY"] = 301] = "MOVED_PERMANENTLY";
30
- _HttpStatus[_HttpStatus["FOUND"] = 302] = "FOUND";
31
- _HttpStatus[_HttpStatus["SEE_OTHER"] = 303] = "SEE_OTHER";
32
- _HttpStatus[_HttpStatus["NOT_MODIFIED"] = 304] = "NOT_MODIFIED";
33
- _HttpStatus[_HttpStatus["TEMPORARY_REDIRECT"] = 307] = "TEMPORARY_REDIRECT";
34
- _HttpStatus[_HttpStatus["PERMANENT_REDIRECT"] = 308] = "PERMANENT_REDIRECT";
35
- _HttpStatus[_HttpStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
36
- _HttpStatus[_HttpStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
37
- _HttpStatus[_HttpStatus["PAYMENT_REQUIRED"] = 402] = "PAYMENT_REQUIRED";
38
- _HttpStatus[_HttpStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
39
- _HttpStatus[_HttpStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
40
- _HttpStatus[_HttpStatus["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
41
- _HttpStatus[_HttpStatus["NOT_ACCEPTABLE"] = 406] = "NOT_ACCEPTABLE";
42
- _HttpStatus[_HttpStatus["PROXY_AUTHENTICATION_REQUIRED"] = 407] = "PROXY_AUTHENTICATION_REQUIRED";
43
- _HttpStatus[_HttpStatus["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT";
44
- _HttpStatus[_HttpStatus["CONFLICT"] = 409] = "CONFLICT";
45
- _HttpStatus[_HttpStatus["GONE"] = 410] = "GONE";
46
- _HttpStatus[_HttpStatus["LENGTH_REQUIRED"] = 411] = "LENGTH_REQUIRED";
47
- _HttpStatus[_HttpStatus["PRECONDITION_FAILED"] = 412] = "PRECONDITION_FAILED";
48
- _HttpStatus[_HttpStatus["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
49
- _HttpStatus[_HttpStatus["URI_TOO_LONG"] = 414] = "URI_TOO_LONG";
50
- _HttpStatus[_HttpStatus["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE";
51
- _HttpStatus[_HttpStatus["REQUESTED_RANGE_NOT_SATISFIABLE"] = 416] = "REQUESTED_RANGE_NOT_SATISFIABLE";
52
- _HttpStatus[_HttpStatus["EXPECTATION_FAILED"] = 417] = "EXPECTATION_FAILED";
53
- _HttpStatus[_HttpStatus["I_AM_A_TEAPOT"] = 418] = "I_AM_A_TEAPOT";
54
- _HttpStatus[_HttpStatus["MISDIRECTED"] = 421] = "MISDIRECTED";
55
- _HttpStatus[_HttpStatus["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY";
56
- _HttpStatus[_HttpStatus["FAILED_DEPENDENCY"] = 424] = "FAILED_DEPENDENCY";
57
- _HttpStatus[_HttpStatus["PRECONDITION_REQUIRED"] = 428] = "PRECONDITION_REQUIRED";
58
- _HttpStatus[_HttpStatus["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
59
- _HttpStatus[_HttpStatus["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
60
- _HttpStatus[_HttpStatus["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
61
- _HttpStatus[_HttpStatus["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
62
- _HttpStatus[_HttpStatus["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
63
- _HttpStatus[_HttpStatus["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT";
64
- _HttpStatus[_HttpStatus["HTTP_VERSION_NOT_SUPPORTED"] = 505] = "HTTP_VERSION_NOT_SUPPORTED";
65
- })(_HttpStatus || (exports._HttpStatus = _HttpStatus = {}));
@@ -1,8 +0,0 @@
1
- import { _VovkSchema as VovkSchema, _StaticClass as StaticClass } from '../types';
2
- export default function getSchema(options: {
3
- emitSchema?: boolean;
4
- segmentName?: string;
5
- controllers: Record<string, StaticClass>;
6
- workers?: Record<string, StaticClass>;
7
- exposeValidation?: boolean;
8
- }): VovkSchema;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = getSchema;
4
- function getSchema(options) {
5
- const exposeValidation = options?.exposeValidation ?? true;
6
- const emitSchema = options.emitSchema ?? true;
7
- const schema = {
8
- emitSchema,
9
- segmentName: options.segmentName ?? '',
10
- controllers: {},
11
- workers: {},
12
- };
13
- if (!emitSchema)
14
- return schema;
15
- for (const [controllerName, controller] of Object.entries(options.controllers)) {
16
- schema.controllers[controllerName] = {
17
- controllerName: controllerName,
18
- originalControllerName: controller.name,
19
- prefix: controller._prefix ?? '',
20
- handlers: {
21
- ...(exposeValidation
22
- ? controller._handlers
23
- : Object.fromEntries(Object.entries(controller._handlers).map(([key, value]) => [
24
- key,
25
- { ...value, validation: undefined },
26
- ]))),
27
- },
28
- };
29
- }
30
- for (const [workerName, worker] of Object.entries(options.workers ?? {})) {
31
- schema.workers[workerName] = {
32
- workerName,
33
- originalWorkerName: worker.name,
34
- handlers: { ...worker._handlers },
35
- };
36
- }
37
- return schema;
38
- }
@@ -1,3 +0,0 @@
1
- import { _KnownAny as KnownAny } from '../types';
2
- import { VovkRequest } from 'vovk';
3
- export default function reqQuery<T extends object | undefined>(req: VovkRequest<KnownAny, T>): T;
package/utils/reqQuery.js DELETED
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = reqQuery;
4
- const clientizeController_1 = require("../client/clientizeController");
5
- function reqQuery(req) {
6
- const queryArr = req.nextUrl.searchParams.get(clientizeController_1.ARRAY_QUERY_KEY)?.split(',') ?? null;
7
- const entries = [...req.nextUrl.searchParams.entries()];
8
- const query = entries.reduce((acc, [key, value]) => {
9
- if (key === clientizeController_1.ARRAY_QUERY_KEY)
10
- return acc;
11
- if (queryArr?.includes(key)) {
12
- if (!(key in acc)) {
13
- acc[key] = [value];
14
- }
15
- else {
16
- acc[key].push(value);
17
- }
18
- }
19
- else {
20
- acc[key] = value;
21
- }
22
- return acc;
23
- }, {});
24
- return query;
25
- }
@@ -1,5 +0,0 @@
1
- import { _KnownAny as KnownAny } from '../types';
2
- export default function setClientValidatorsForHandler(h: (...args: KnownAny[]) => KnownAny, validators: {
3
- body: unknown;
4
- query: unknown;
5
- }): Promise<void>;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = setClientValidatorsForHandler;
4
- function setClientValidatorsForHandler(h, validators) {
5
- return new Promise((resolve) => {
6
- setTimeout(() => {
7
- const controller = h._controller;
8
- if (!controller) {
9
- throw new Error('Error setting client validators. Controller not found. Did you forget to use an HTTP decorator?');
10
- }
11
- const handlerName = Object.getOwnPropertyNames(controller).find((key) => controller[key]._sourceMethod === h);
12
- if (!handlerName) {
13
- throw new Error('Error setting client validators. Handler not found.');
14
- }
15
- controller._handlers = {
16
- ...controller._handlers,
17
- [handlerName]: {
18
- ...controller._handlers[handlerName],
19
- validation: {
20
- body: validators.body,
21
- query: validators.query,
22
- },
23
- },
24
- };
25
- resolve();
26
- }, 0);
27
- });
28
- }
package/worker/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { _worker as worker } from './worker';
2
- import { _promisifyWorker as promisifyWorker } from './promisifyWorker';
3
- export { worker, promisifyWorker };
package/worker/index.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.promisifyWorker = exports.worker = void 0;
4
- const worker_1 = require("./worker");
5
- Object.defineProperty(exports, "worker", { enumerable: true, get: function () { return worker_1._worker; } });
6
- const promisifyWorker_1 = require("./promisifyWorker");
7
- Object.defineProperty(exports, "promisifyWorker", { enumerable: true, get: function () { return promisifyWorker_1._promisifyWorker; } });
@@ -1,2 +0,0 @@
1
- import type { _WorkerPromiseInstance as WorkerPromiseInstance } from './types';
2
- export declare function _promisifyWorker<T extends object>(currentWorker: Worker | null, workerSchema: object): WorkerPromiseInstance<T>;
@@ -1,141 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._promisifyWorker = _promisifyWorker;
4
- function _promisifyWorker(currentWorker, workerSchema) {
5
- if (!workerSchema)
6
- throw new Error('Worker schema is not provided');
7
- const schema = workerSchema;
8
- const instance = {
9
- worker: currentWorker,
10
- };
11
- let callsKey = 0;
12
- instance.terminate = () => {
13
- if (instance._isTerminated)
14
- return;
15
- instance._isTerminated = true;
16
- instance.worker?.terminate();
17
- instance.worker = null;
18
- };
19
- instance.employ = (worker) => {
20
- if (instance._isTerminated)
21
- return instance;
22
- instance._isTerminated = true;
23
- instance.worker = worker;
24
- return instance;
25
- };
26
- instance.fork = (worker) => _promisifyWorker(worker, schema);
27
- for (const methodName of Object.keys(schema.handlers)) {
28
- const { isGenerator } = schema.handlers[methodName];
29
- if (isGenerator) {
30
- const method = (...args) => {
31
- const key = callsKey;
32
- callsKey += 1;
33
- return {
34
- async *[Symbol.asyncIterator]() {
35
- if (!instance.worker) {
36
- throw new Error('Worker is not provided or terminated');
37
- }
38
- const w = instance.worker;
39
- const messageQueue = [];
40
- let messageResolver = null;
41
- const onMessage = (e) => {
42
- const { methodName: m, key: k } = e.data;
43
- if (k !== key || m !== methodName) {
44
- return;
45
- }
46
- if (messageResolver) {
47
- messageResolver(e.data);
48
- messageResolver = null;
49
- }
50
- else {
51
- messageQueue.push(e.data);
52
- }
53
- };
54
- const onError = (e) => {
55
- if (messageResolver) {
56
- messageResolver({ error: e.error });
57
- messageResolver = null;
58
- }
59
- else {
60
- messageQueue.push({ error: e.error });
61
- }
62
- w.removeEventListener('message', onMessage);
63
- w.removeEventListener('error', onError);
64
- throw e.error;
65
- };
66
- w.addEventListener('message', onMessage);
67
- w.addEventListener('error', onError);
68
- w.postMessage({ key, args, methodName });
69
- try {
70
- while (true) {
71
- let message = null;
72
- if (messageQueue.length > 0) {
73
- message = messageQueue.shift();
74
- }
75
- else {
76
- message = await new Promise((resolve) => {
77
- messageResolver = resolve;
78
- });
79
- }
80
- const { result, error, done } = message;
81
- if (error) {
82
- throw error;
83
- }
84
- if (done) {
85
- break;
86
- }
87
- yield result;
88
- }
89
- w.removeEventListener('message', onMessage);
90
- w.removeEventListener('error', onError);
91
- }
92
- catch (e) {
93
- w.removeEventListener('message', onMessage);
94
- w.removeEventListener('error', onError);
95
- throw e;
96
- }
97
- },
98
- };
99
- };
100
- // @ts-expect-error TODO
101
- instance[methodName] = method;
102
- }
103
- else {
104
- const method = (...args) => {
105
- if (!instance.worker) {
106
- throw new Error('Worker is not provided or terminated');
107
- }
108
- const w = instance.worker;
109
- return new Promise((resolve, reject) => {
110
- const key = callsKey;
111
- callsKey += 1;
112
- const onError = (e) => {
113
- w.removeEventListener('message', onMessage);
114
- w.removeEventListener('error', onError);
115
- reject(e);
116
- };
117
- const onMessage = (e) => {
118
- const { result, error, key: k, methodName: m } = e.data;
119
- if (k !== key || m !== methodName) {
120
- return;
121
- }
122
- w.removeEventListener('message', onMessage);
123
- w.removeEventListener('error', onError);
124
- if (error) {
125
- reject(error);
126
- }
127
- else {
128
- resolve(result);
129
- }
130
- };
131
- w.addEventListener('message', onMessage);
132
- w.addEventListener('error', onError);
133
- w.postMessage({ key, args, methodName });
134
- });
135
- };
136
- // @ts-expect-error TODO
137
- instance[methodName] = method;
138
- }
139
- }
140
- return instance;
141
- }
package/worker/types.d.ts DELETED
@@ -1,31 +0,0 @@
1
- import type { _KnownAny as KnownAny } from '../types';
2
- type ToPromise<T> = T extends PromiseLike<unknown> ? T : Promise<T>;
3
- type ToAsyncGenerator<T> = T extends AsyncGenerator<unknown, unknown, unknown> ? T : T extends Generator<infer U, unknown, unknown> ? AsyncGenerator<U, unknown, unknown> : AsyncGenerator<T, unknown, unknown>;
4
- type ToProperReturnType<T> = T extends Generator<unknown, unknown, unknown> | AsyncGenerator<unknown, unknown, unknown> ? ToAsyncGenerator<T> : ToPromise<T>;
5
- type OmitNever<T> = {
6
- [K in keyof T as T[K] extends never ? never : K]: T[K];
7
- };
8
- export type _WorkerPromiseInstanceWithNever<T> = {
9
- [K in keyof T]: T[K] extends (...args: KnownAny[]) => KnownAny ? (...args: Parameters<T[K]>) => ToProperReturnType<ReturnType<T[K]>> : never;
10
- };
11
- export type _WorkerPromiseInstance<T> = OmitNever<_WorkerPromiseInstanceWithNever<T>> & {
12
- terminate: () => void;
13
- employ: (w: Worker) => _WorkerPromiseInstance<T>;
14
- fork: (w: Worker) => _WorkerPromiseInstance<T>;
15
- worker: Worker | null;
16
- _isTerminated?: true;
17
- [Symbol.dispose]: () => void;
18
- };
19
- export interface _WorkerInput {
20
- methodName: string;
21
- args: unknown[];
22
- key: number;
23
- }
24
- export interface _WorkerOutput {
25
- methodName: string;
26
- result?: unknown;
27
- error?: unknown;
28
- done?: true;
29
- key: number;
30
- }
31
- export {};
@@ -1 +0,0 @@
1
- export declare function _worker(): (t: object) => void;
package/worker/worker.js DELETED
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._worker = _worker;
4
- function _worker() {
5
- return (t) => {
6
- const target = t;
7
- target._handlers = {};
8
- for (const key of Object.getOwnPropertyNames(target)) {
9
- const member = target[key];
10
- if (typeof member === 'function') {
11
- const prototype = Object.getPrototypeOf(member);
12
- const isGenerator = prototype === Object.getPrototypeOf(function* () { }) ||
13
- prototype === Object.getPrototypeOf(async function* () { });
14
- target._handlers[key] = {};
15
- if (isGenerator) {
16
- target._handlers[key].isGenerator = true;
17
- }
18
- }
19
- }
20
- if (typeof self === 'undefined')
21
- return; // no-op in non-worker environment
22
- const w = self;
23
- w.onmessage = async (evt) => {
24
- const { methodName, args, key } = evt.data;
25
- try {
26
- const result = await target[methodName](...args);
27
- if (result && typeof result === 'object' && 'next' in result && typeof result.next === 'function') {
28
- const iterable = result;
29
- for await (const result of iterable) {
30
- w.postMessage({ result, key, methodName });
31
- }
32
- w.postMessage({ done: true, key, methodName });
33
- }
34
- else {
35
- w.postMessage({ result, key, methodName });
36
- }
37
- }
38
- catch (e) {
39
- w.postMessage({ error: e, key, methodName });
40
- }
41
- };
42
- };
43
- }
File without changes
File without changes
File without changes
File without changes
File without changes