@cudenix/cudenix 0.0.58 → 0.0.59

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 (175) hide show
  1. package/dist/core/app.d.ts +16 -16
  2. package/dist/core/app.d.ts.map +1 -1
  3. package/dist/core/app.js +58 -185
  4. package/dist/core/app.js.map +1 -1
  5. package/dist/core/compile.d.ts +6 -1
  6. package/dist/core/compile.d.ts.map +1 -1
  7. package/dist/core/compile.js +121 -116
  8. package/dist/core/compile.js.map +1 -1
  9. package/dist/core/context.d.ts +3 -2
  10. package/dist/core/context.d.ts.map +1 -1
  11. package/dist/core/context.js +142 -76
  12. package/dist/core/context.js.map +1 -1
  13. package/dist/core/error.d.ts +2 -2
  14. package/dist/core/error.d.ts.map +1 -1
  15. package/dist/core/error.js +4 -3
  16. package/dist/core/error.js.map +1 -1
  17. package/dist/core/global.d.ts +5 -1
  18. package/dist/core/global.d.ts.map +1 -1
  19. package/dist/core/group.d.ts +1 -1
  20. package/dist/core/group.d.ts.map +1 -1
  21. package/dist/core/group.js +4 -4
  22. package/dist/core/group.js.map +1 -1
  23. package/dist/core/middleware.d.ts +1 -1
  24. package/dist/core/middleware.d.ts.map +1 -1
  25. package/dist/core/module.d.ts +7 -11
  26. package/dist/core/module.d.ts.map +1 -1
  27. package/dist/core/module.js +8 -8
  28. package/dist/core/module.js.map +1 -1
  29. package/dist/core/response.d.ts +1 -1
  30. package/dist/core/response.d.ts.map +1 -1
  31. package/dist/core/response.js +35 -21
  32. package/dist/core/response.js.map +1 -1
  33. package/dist/core/route.d.ts +12 -16
  34. package/dist/core/route.d.ts.map +1 -1
  35. package/dist/core/route.js +6 -7
  36. package/dist/core/route.js.map +1 -1
  37. package/dist/core/step.d.ts +4 -0
  38. package/dist/core/step.d.ts.map +1 -0
  39. package/dist/core/step.js +199 -0
  40. package/dist/core/step.js.map +1 -0
  41. package/dist/core/success.d.ts.map +1 -1
  42. package/dist/core/success.js +4 -3
  43. package/dist/core/success.js.map +1 -1
  44. package/dist/core/validator.d.ts +7 -11
  45. package/dist/core/validator.d.ts.map +1 -1
  46. package/dist/core/validator.js.map +1 -1
  47. package/dist/ecosystem/client/client.d.ts +6 -5
  48. package/dist/ecosystem/client/client.d.ts.map +1 -1
  49. package/dist/ecosystem/client/client.js +59 -46
  50. package/dist/ecosystem/client/client.js.map +1 -1
  51. package/dist/ecosystem/client/index.d.ts +4 -0
  52. package/dist/ecosystem/client/index.d.ts.map +1 -0
  53. package/dist/ecosystem/client/index.js +4 -0
  54. package/dist/ecosystem/client/index.js.map +1 -0
  55. package/dist/ecosystem/client/sse.d.ts.map +1 -1
  56. package/dist/ecosystem/client/sse.js +15 -28
  57. package/dist/ecosystem/client/sse.js.map +1 -1
  58. package/dist/ecosystem/client/ws.d.ts.map +1 -1
  59. package/dist/ecosystem/client/ws.js +12 -12
  60. package/dist/ecosystem/client/ws.js.map +1 -1
  61. package/dist/ecosystem/plugins/cluster/cluster.d.ts.map +1 -1
  62. package/dist/ecosystem/plugins/cluster/cluster.js +4 -2
  63. package/dist/ecosystem/plugins/cluster/cluster.js.map +1 -1
  64. package/dist/ecosystem/plugins/cluster/index.d.ts +2 -0
  65. package/dist/ecosystem/plugins/cluster/index.d.ts.map +1 -0
  66. package/dist/ecosystem/plugins/cluster/index.js +2 -0
  67. package/dist/ecosystem/plugins/cluster/index.js.map +1 -0
  68. package/dist/ecosystem/plugins/compress/compress.d.ts +8 -0
  69. package/dist/ecosystem/plugins/compress/compress.d.ts.map +1 -0
  70. package/dist/ecosystem/plugins/compress/compress.js +56 -0
  71. package/dist/ecosystem/plugins/compress/compress.js.map +1 -0
  72. package/dist/ecosystem/plugins/compress/index.d.ts +2 -0
  73. package/dist/ecosystem/plugins/compress/index.d.ts.map +1 -0
  74. package/dist/ecosystem/plugins/compress/index.js +2 -0
  75. package/dist/ecosystem/plugins/compress/index.js.map +1 -0
  76. package/dist/ecosystem/plugins/cors/cors.d.ts +11 -0
  77. package/dist/ecosystem/{modules → plugins}/cors/cors.d.ts.map +1 -1
  78. package/dist/ecosystem/plugins/cors/cors.js +69 -0
  79. package/dist/ecosystem/plugins/cors/cors.js.map +1 -0
  80. package/dist/ecosystem/plugins/cors/index.d.ts +2 -0
  81. package/dist/ecosystem/plugins/cors/index.d.ts.map +1 -0
  82. package/dist/ecosystem/plugins/cors/index.js +2 -0
  83. package/dist/ecosystem/plugins/cors/index.js.map +1 -0
  84. package/dist/ecosystem/plugins/events/events.d.ts.map +1 -1
  85. package/dist/ecosystem/plugins/events/events.js +0 -2
  86. package/dist/ecosystem/plugins/events/events.js.map +1 -1
  87. package/dist/ecosystem/plugins/events/index.d.ts +3 -0
  88. package/dist/ecosystem/plugins/events/index.d.ts.map +1 -0
  89. package/dist/ecosystem/plugins/events/index.js +2 -0
  90. package/dist/ecosystem/plugins/events/index.js.map +1 -0
  91. package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.d.ts.map +1 -1
  92. package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.js.map +1 -1
  93. package/dist/ecosystem/plugins/global-request-context/index.d.ts +2 -0
  94. package/dist/ecosystem/plugins/global-request-context/index.d.ts.map +1 -0
  95. package/dist/ecosystem/plugins/global-request-context/index.js +2 -0
  96. package/dist/ecosystem/plugins/global-request-context/index.js.map +1 -0
  97. package/dist/ecosystem/plugins/i18n/i18n.d.ts +6 -5
  98. package/dist/ecosystem/plugins/i18n/i18n.d.ts.map +1 -1
  99. package/dist/ecosystem/plugins/i18n/i18n.js +86 -52
  100. package/dist/ecosystem/plugins/i18n/i18n.js.map +1 -1
  101. package/dist/ecosystem/plugins/i18n/index.d.ts +3 -0
  102. package/dist/ecosystem/plugins/i18n/index.d.ts.map +1 -0
  103. package/dist/ecosystem/plugins/i18n/index.js +2 -0
  104. package/dist/ecosystem/plugins/i18n/index.js.map +1 -0
  105. package/dist/ecosystem/plugins/openapi/index.d.ts +3 -0
  106. package/dist/ecosystem/plugins/openapi/index.d.ts.map +1 -0
  107. package/dist/ecosystem/plugins/openapi/index.js +3 -0
  108. package/dist/ecosystem/plugins/openapi/index.js.map +1 -0
  109. package/dist/ecosystem/plugins/openapi/openapi.d.ts +4 -3
  110. package/dist/ecosystem/plugins/openapi/openapi.d.ts.map +1 -1
  111. package/dist/ecosystem/plugins/openapi/openapi.js +48 -43
  112. package/dist/ecosystem/plugins/openapi/openapi.js.map +1 -1
  113. package/dist/ecosystem/plugins/openapi/scalar.js +3 -3
  114. package/dist/ecosystem/plugins/openapi/scalar.js.map +1 -1
  115. package/dist/ecosystem/plugins/try-catch/index.d.ts +2 -0
  116. package/dist/ecosystem/plugins/try-catch/index.d.ts.map +1 -0
  117. package/dist/ecosystem/plugins/try-catch/index.js +2 -0
  118. package/dist/ecosystem/plugins/try-catch/index.js.map +1 -0
  119. package/dist/ecosystem/plugins/try-catch/try-catch.d.ts +8 -0
  120. package/dist/ecosystem/plugins/try-catch/try-catch.d.ts.map +1 -0
  121. package/dist/ecosystem/{modules/trycatch/trycatch.js → plugins/try-catch/try-catch.js} +6 -2
  122. package/dist/ecosystem/plugins/try-catch/try-catch.js.map +1 -0
  123. package/dist/types/all-properties-are-unknown.d.ts +1 -1
  124. package/dist/types/all-properties-are-unknown.d.ts.map +1 -1
  125. package/dist/types/conditionally-omit.d.ts +2 -5
  126. package/dist/types/conditionally-omit.d.ts.map +1 -1
  127. package/dist/types/conditionally-optional.d.ts +4 -4
  128. package/dist/types/conditionally-optional.d.ts.map +1 -1
  129. package/dist/types/extract-url-params.d.ts +5 -6
  130. package/dist/types/extract-url-params.d.ts.map +1 -1
  131. package/dist/types/standard-schema.d.ts +4 -4
  132. package/dist/types/standard-schema.d.ts.map +1 -1
  133. package/dist/utils/functions/is-generator.d.ts +2 -0
  134. package/dist/utils/functions/is-generator.d.ts.map +1 -0
  135. package/dist/utils/functions/is-generator.js +6 -0
  136. package/dist/utils/functions/is-generator.js.map +1 -0
  137. package/dist/utils/headers/quality.d.ts +2 -0
  138. package/dist/utils/headers/quality.d.ts.map +1 -0
  139. package/dist/utils/headers/quality.js +19 -0
  140. package/dist/utils/headers/quality.js.map +1 -0
  141. package/dist/utils/headers/select.d.ts +2 -0
  142. package/dist/utils/headers/select.d.ts.map +1 -0
  143. package/dist/utils/headers/select.js +54 -0
  144. package/dist/utils/headers/select.js.map +1 -0
  145. package/dist/utils/json/try-parse.d.ts +2 -0
  146. package/dist/utils/json/try-parse.d.ts.map +1 -0
  147. package/dist/utils/json/try-parse.js +9 -0
  148. package/dist/utils/json/try-parse.js.map +1 -0
  149. package/dist/utils/objects/empty.d.ts +1 -0
  150. package/dist/utils/objects/empty.d.ts.map +1 -1
  151. package/dist/utils/objects/empty.js +2 -1
  152. package/dist/utils/objects/empty.js.map +1 -1
  153. package/dist/utils/objects/merge.js +1 -1
  154. package/dist/utils/objects/merge.js.map +1 -1
  155. package/dist/utils/regexps/path-to-regexp.d.ts +6 -0
  156. package/dist/utils/regexps/path-to-regexp.d.ts.map +1 -0
  157. package/dist/utils/regexps/path-to-regexp.js +40 -0
  158. package/dist/utils/regexps/path-to-regexp.js.map +1 -0
  159. package/dist/utils/standard-schema/validate.d.ts +4 -1
  160. package/dist/utils/standard-schema/validate.d.ts.map +1 -1
  161. package/dist/utils/standard-schema/validate.js +12 -4
  162. package/dist/utils/standard-schema/validate.js.map +1 -1
  163. package/package.json +24 -23
  164. package/dist/ecosystem/modules/compress/compress.d.ts +0 -8
  165. package/dist/ecosystem/modules/compress/compress.d.ts.map +0 -1
  166. package/dist/ecosystem/modules/compress/compress.js +0 -116
  167. package/dist/ecosystem/modules/compress/compress.js.map +0 -1
  168. package/dist/ecosystem/modules/cors/cors.d.ts +0 -27
  169. package/dist/ecosystem/modules/cors/cors.js +0 -67
  170. package/dist/ecosystem/modules/cors/cors.js.map +0 -1
  171. package/dist/ecosystem/modules/trycatch/trycatch.d.ts +0 -5
  172. package/dist/ecosystem/modules/trycatch/trycatch.d.ts.map +0 -1
  173. package/dist/ecosystem/modules/trycatch/trycatch.js.map +0 -1
  174. /package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.d.ts +0 -0
  175. /package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.js +0 -0
@@ -1,3 +1,3 @@
1
1
  import type { ContextResponse } from "../core/context.js";
2
- export declare const processResponse: (response: ContextResponse) => Promise<Response>;
2
+ export declare const processResponse: (response: ContextResponse) => Response;
3
3
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,eAAO,MAAM,eAAe,GAC3B,UAAU,eAAe,KACvB,OAAO,CAAC,QAAQ,CA+ClB,CAAC"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,eAAO,MAAM,eAAe,GAAI,UAAU,eAAe,aAiExD,CAAC"}
@@ -1,37 +1,51 @@
1
- export const processResponse = async (response) => {
2
- const setCookieHeaders = response.cookies.toSetCookieHeaders();
3
- for (let i = 0; i < setCookieHeaders.length; i++) {
4
- const setCookieHeader = setCookieHeaders[i];
5
- if (!setCookieHeader) {
6
- continue;
1
+ export const processResponse = (response) => {
2
+ if (response.cookies) {
3
+ const setCookieHeaders = response.cookies.toSetCookieHeaders();
4
+ for (let i = 0; i < setCookieHeaders.length; i++) {
5
+ const setCookieHeader = setCookieHeaders[i];
6
+ if (!setCookieHeader) {
7
+ continue;
8
+ }
9
+ response.headers.append("set-cookie", setCookieHeader);
7
10
  }
8
- response.headers.append("Set-Cookie", setCookieHeader);
9
11
  }
10
- if (response.content instanceof ReadableStream) {
11
- response.headers.set("Cache-Control", "no-cache");
12
- response.headers.set("Connection", "keep-alive");
13
- if (!response.headers.has("Content-Type")) {
14
- response.headers.set("Content-Type", "text/event-stream");
12
+ const content = response.content;
13
+ if (content instanceof ReadableStream) {
14
+ response.headers.set("cache-control", "no-cache");
15
+ response.headers.set("connection", "keep-alive");
16
+ if (!response.headers.has("content-type")) {
17
+ response.headers.set("content-type", "text/event-stream");
15
18
  }
16
- return new Response(response.content, {
19
+ return new Response(content, {
17
20
  headers: response.headers,
18
21
  });
19
22
  }
20
- if (response.content?.content instanceof Response) {
21
- return response.content.content;
23
+ if (!content) {
24
+ return new Response(undefined, {
25
+ headers: response.headers,
26
+ status: 204,
27
+ });
28
+ }
29
+ if (content.content instanceof Response) {
30
+ const original = content.content;
31
+ for (const [key, value] of response.headers) {
32
+ original.headers.append(key, value);
33
+ }
34
+ return original;
22
35
  }
23
- if (response.content?.transform) {
36
+ if (content.transform) {
24
37
  return Response.json({
25
- ...response.content,
26
- transform: undefined,
38
+ content: content.content,
39
+ status: content.status,
40
+ success: content.success,
27
41
  }, {
28
42
  headers: response.headers,
29
- status: response.content.status,
43
+ status: content.status,
30
44
  });
31
45
  }
32
- return new Response(response.content?.content, {
46
+ return new Response(content.content, {
33
47
  headers: response.headers,
34
- status: response.content?.status,
48
+ status: content.status,
35
49
  });
36
50
  };
37
51
  //# sourceMappingURL=response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EACnC,QAAyB,EACL,EAAE;IACtB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAE5C,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,SAAS;QACV,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,YAAY,cAAc,EAAE,CAAC;QAChD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAClD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEjD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE;YACrC,OAAO,EAAE,QAAQ,CAAC,OAAO;SACzB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,YAAY,QAAQ,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,IAAI,CACnB;YACC,GAAG,QAAQ,CAAC,OAAO;YACnB,SAAS,EAAE,SAAS;SACpB,EACD;YACC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;SAC/B,CACD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;QAC9C,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM;KAChC,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAyB,EAAE,EAAE;IAC5D,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAE5C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtB,SAAS;YACV,CAAC;YAED,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAEjC,IAAI,OAAO,YAAY,cAAc,EAAE,CAAC;QACvC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAClD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEjD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;YAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO;SACzB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE;YAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,GAAG;SACX,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,YAAY,QAAQ,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7C,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC,IAAI,CACnB;YACC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACxB,EACD;YACC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;SACtB,CACD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;QACpC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,13 +1,12 @@
1
- import type { MaybePromise, WebSocketHandler } from "bun";
1
+ import type { WebSocketHandler } from "bun";
2
2
  import type { DeveloperContext } from "../core/context.js";
3
3
  import type { AnyError } from "../core/error.js";
4
4
  import type { AnySuccess } from "../core/success.js";
5
5
  import { type AnyValidator, type DeepInferValidatorOutput, type MergeInferValidatorRequest, type ValidatorOptions, type ValidatorRequest } from "../core/validator.js";
6
- import type { ConditionallyOmit } from "../types/conditionally-omit.js";
7
- import type { ExtendsType } from "../types/extends-type.js";
8
6
  import type { ExtractUrlParams } from "../types/extract-url-params.js";
9
7
  import type { GeneratorSSE } from "../types/generator-sse.js";
10
8
  import type { HttpMethod } from "../types/http-method.js";
9
+ import type { MaybePromise } from "../types/maybe-promise.js";
11
10
  export type PathToObject<Path extends string, Value> = Path extends `${infer First}/${infer Rest}` ? {
12
11
  [Key in First]: PathToObject<Rest, Value>;
13
12
  } : {
@@ -23,19 +22,18 @@ export type ParseRoute<Method extends HttpMethod, Path extends `/${string}`, Req
23
22
  }>;
24
23
  export type RouteFnReturnWS<Context> = WebSocketHandler<Context>;
25
24
  export type RouteFnReturnGenerator = Generator<GeneratorSSE<AnyError | AnySuccess, string>, AnyError | AnySuccess | void> | AsyncGenerator<GeneratorSSE<AnyError | AnySuccess, string>, AnyError | AnySuccess | void>;
26
- export type RouteFn<Method extends HttpMethod, Path extends string, Return extends Method extends "WS" ? RouteFnReturnWS<Omit<DeveloperContext<Stores, ExtendsType<ExtractUrlParams<Path>, NonNullable<unknown>, Validators, Validators & ConditionallyOmit<{
27
- params: ExtractUrlParams<Path>;
28
- }, NonNullable<unknown>>>>, "response">> : MaybePromise<AnyError | AnySuccess> | RouteFnReturnGenerator, Stores extends Record<PropertyKey, unknown>, Validators extends Record<PropertyKey, unknown>> = (context: DeveloperContext<Stores, ExtendsType<ExtractUrlParams<Path>, NonNullable<unknown>, Validators, Validators & ConditionallyOmit<{
29
- params: ExtractUrlParams<Path>;
30
- }, NonNullable<unknown>>>>) => Return;
25
+ export type ValidatorsWithParams<Path extends string, Validators extends Record<PropertyKey, unknown>> = ExtractUrlParams<Path> extends infer Params ? [Params] extends [NonNullable<unknown>] ? [NonNullable<unknown>] extends [Params] ? Validators : Validators & {
26
+ params: Params;
27
+ } : Validators & {
28
+ params: Params;
29
+ } : never;
30
+ export type RouteFn<Method extends HttpMethod, Path extends string, Return extends Method extends "WS" ? RouteFnReturnWS<Omit<DeveloperContext<Stores, ValidatorsWithParams<Path, Validators>>, "response">> : MaybePromise<AnyError | AnySuccess> | RouteFnReturnGenerator, Stores extends Record<PropertyKey, unknown>, Validators extends Record<PropertyKey, unknown>> = (context: DeveloperContext<Stores, ValidatorsWithParams<Path, Validators>>) => Return;
31
31
  export type AnyRouteFn = RouteFn<any, any, any, any, any>;
32
- export interface Route<Method extends HttpMethod, Path extends `/${string}`, Return extends Method extends "WS" ? RouteFnReturnWS<Omit<DeveloperContext<Stores, ExtendsType<ExtractUrlParams<Path>, NonNullable<unknown>, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>>, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>> & ConditionallyOmit<{
33
- params: ExtractUrlParams<Path>;
34
- }, NonNullable<unknown>>>>, "response">> : MaybePromise<AnyError | AnySuccess> | RouteFnReturnGenerator, Stores extends Record<PropertyKey, unknown>, _ValidatorOptions extends ValidatorOptions<Partial<ValidatorRequest>>, Validators extends Record<PropertyKey, unknown>> {
32
+ export interface Route<Method extends HttpMethod, Path extends `/${string}`, Return extends Method extends "WS" ? RouteFnReturnWS<Omit<DeveloperContext<Stores, ValidatorsWithParams<Path, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>>>>, "response">> : MaybePromise<AnyError | AnySuccess> | RouteFnReturnGenerator, Stores extends Record<PropertyKey, unknown>, _ValidatorOptions extends ValidatorOptions<Partial<ValidatorRequest>>, Validators extends Record<PropertyKey, unknown>> {
35
33
  generator: boolean;
36
- route: RouteFn<Method, Path, Return, Stores, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>>>;
37
34
  method: Method;
38
35
  path: Path;
36
+ route: RouteFn<Method, Path, Return, Stores, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>>>;
39
37
  type: "ROUTE";
40
38
  validator?: AnyValidator | undefined;
41
39
  }
@@ -44,10 +42,8 @@ export interface RouteOptions<_ValidatorOptions extends ValidatorOptions<Partial
44
42
  validator?: _ValidatorOptions;
45
43
  }
46
44
  export type AnyRouteOptions = RouteOptions<any>;
47
- type Constructor = new (method: HttpMethod, path: `/${string}`, route: AnyRouteFn, options: AnyRouteOptions) => AnyRoute;
45
+ type Constructor = new (method: HttpMethod, path: `/${string}`, route: AnyRouteFn, options?: AnyRouteOptions) => AnyRoute;
48
46
  export declare const Route: Constructor;
49
- export declare const route: <const Method extends HttpMethod, const Path extends `/${string}`, const Return extends Method extends "WS" ? RouteFnReturnWS<Omit<DeveloperContext<Stores, ExtendsType<ExtractUrlParams<Path>, NonNullable<unknown>, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>>, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>> & ConditionallyOmit<{
50
- params: ExtractUrlParams<Path>;
51
- }, NonNullable<unknown>>>>, "response">> : MaybePromise<AnyError | AnySuccess> | RouteFnReturnGenerator, const Stores extends Record<PropertyKey, unknown>, const _ValidatorOptions extends ValidatorOptions<Partial<ValidatorRequest>>, const Validators extends Record<PropertyKey, unknown>>(method: Method, path: Path, route: RouteFn<Method, Path, Return, Stores, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>>>, options?: RouteOptions<_ValidatorOptions>) => Route<Method, Path, Return, Stores, _ValidatorOptions, Validators>;
47
+ export declare const route: <const Method extends HttpMethod, const Path extends `/${string}`, const Return extends Method extends "WS" ? RouteFnReturnWS<Omit<DeveloperContext<Stores, ValidatorsWithParams<Path, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>>>>, "response">> : MaybePromise<AnyError | AnySuccess> | RouteFnReturnGenerator, const Stores extends Record<PropertyKey, unknown>, const _ValidatorOptions extends ValidatorOptions<Partial<ValidatorRequest>>, const Validators extends Record<PropertyKey, unknown>>(method: Method, path: Path, route: RouteFn<Method, Path, Return, Stores, MergeInferValidatorRequest<Validators, DeepInferValidatorOutput<_ValidatorOptions["request"]>>>, options?: RouteOptions<_ValidatorOptions>) => Route<Method, Path, Return, Stores, _ValidatorOptions, Validators>;
52
48
  export {};
53
49
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/core/route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/core/route.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  import { Validator, } from "../core/validator.js";
2
- import { Empty } from "../utils/objects/empty.js";
3
- export const Route = function (method, path, route, options = new Empty()) {
4
- this.generator = route.constructor.name.indexOf("GeneratorFunction") !== -1;
2
+ import { isGenerator } from "../utils/functions/is-generator.js";
3
+ import { FreezeEmpty } from "../utils/objects/empty.js";
4
+ export const Route = function (method, path, route, { validator } = FreezeEmpty) {
5
+ this.generator = isGenerator(route);
5
6
  this.method = method;
6
7
  this.path = path;
7
8
  this.route = route;
8
9
  this.type = "ROUTE";
9
- this.validator = options.validator
10
- ? new Validator(options.validator)
11
- : undefined;
10
+ this.validator = validator ? new Validator(validator) : undefined;
12
11
  };
13
- export const route = (method, path, route, options = new Empty()) => {
12
+ export const route = (method, path, route, options) => {
14
13
  return new Route(method, path, route, options);
15
14
  };
16
15
  //# sourceMappingURL=route.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/core/route.ts"],"names":[],"mappings":"AAKA,OAAO,EAIN,SAAS,GAGT,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAkK9C,MAAM,CAAC,MAAM,KAAK,GAAG,UAEpB,MAAkB,EAClB,IAAkB,EAClB,KAAiB,EACjB,UAA2B,IAAI,KAAK,EAAE;IAEtC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACpB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;QACjC,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;QAClC,CAAC,CAAC,SAAS,CAAC;AACd,CAA2B,CAAC;AAE5B,MAAM,CAAC,MAAM,KAAK,GAAG,CAuCpB,MAAc,EACd,IAAU,EACV,KASC,EACD,UAA2C,IAAI,KAAK,EAAE,EACrD,EAAE;IACH,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAO5C,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/core/route.ts"],"names":[],"mappings":"AAKA,OAAO,EAIN,SAAS,GAGT,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AA4IpD,MAAM,CAAC,MAAM,KAAK,GAAG,UAEpB,MAAkB,EAClB,IAAkB,EAClB,KAAiB,EACjB,EAAE,SAAS,KAAsB,WAAW;IAE5C,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAA2B,CAAC;AAE5B,MAAM,CAAC,MAAM,KAAK,GAAG,CA0BpB,MAAc,EACd,IAAU,EACV,KASC,EACD,OAAyC,EACxC,EAAE;IACH,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAO5C,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { App, Endpoint } from "../core/app.js";
2
+ import type { Context } from "../core/context.js";
3
+ export declare const stepAndRespond: (app: App, context: Context, endpoint: Endpoint, request: Request) => Response | Promise<Response>;
4
+ //# sourceMappingURL=step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/core/step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAS,QAAQ,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAoV9C,eAAO,MAAM,cAAc,GAC1B,KAAK,GAAG,EACR,SAAS,OAAO,EAChB,UAAU,QAAQ,EAClB,SAAS,OAAO,iCAmBhB,CAAC"}
@@ -0,0 +1,199 @@
1
+ import { Error } from "../core/error.js";
2
+ import { processResponse } from "../core/response.js";
3
+ import { Empty } from "../utils/objects/empty.js";
4
+ import { merge } from "../utils/objects/merge.js";
5
+ const applyValidation = (validated, key, context, state) => {
6
+ if (validated.success) {
7
+ context.request[key] =
8
+ validated.content;
9
+ return;
10
+ }
11
+ const content = Array.isArray(validated.content)
12
+ ? validated.content
13
+ : [validated.content];
14
+ state.errors ??= [];
15
+ state.index ??= new Empty();
16
+ if (state.index[key] !== undefined) {
17
+ state.errors[state.index[key]]?.details.push(...content);
18
+ return;
19
+ }
20
+ state.index[key] = state.errors.length;
21
+ state.errors.push({
22
+ details: content,
23
+ type: key,
24
+ });
25
+ };
26
+ const processValidators = (context, link, validatorPlugin, startI, state) => {
27
+ for (let i = startI; i < link.keys.length; i++) {
28
+ const key = link.keys[i];
29
+ if (!key) {
30
+ continue;
31
+ }
32
+ const validated = validatorPlugin(link.request[key], context.request[key], key);
33
+ if (validated instanceof Promise) {
34
+ return validated.then((resolved) => {
35
+ applyValidation(resolved, key, context, state);
36
+ return processValidators(context, link, validatorPlugin, i + 1, state);
37
+ });
38
+ }
39
+ applyValidation(validated, key, context, state);
40
+ }
41
+ if (state.errors) {
42
+ context.response.content = new Error(state.errors, {
43
+ status: 422,
44
+ });
45
+ }
46
+ };
47
+ const resolveRoute = (app, context, request, endpoint, returned) => {
48
+ if (endpoint.route.method === "WS") {
49
+ app.server?.upgrade(request, {
50
+ data: {
51
+ close: (ws, code, reason) => {
52
+ return returned?.close?.(ws, code, reason);
53
+ },
54
+ drain: (ws) => {
55
+ return returned?.drain?.(ws);
56
+ },
57
+ message: (ws, message) => {
58
+ return returned?.message(ws, message);
59
+ },
60
+ open: (ws) => {
61
+ return returned?.open?.(ws);
62
+ },
63
+ },
64
+ });
65
+ return;
66
+ }
67
+ context.response.content = returned;
68
+ };
69
+ const step = (app, context, endpoint, request, chain, index, validatorPlugin) => {
70
+ for (let i = index; i < chain.length; i++) {
71
+ if (context.response.content) {
72
+ return;
73
+ }
74
+ const link = chain[i];
75
+ if (!link) {
76
+ continue;
77
+ }
78
+ if (link.type === "ROUTE") {
79
+ continue;
80
+ }
81
+ if (link.type === "MIDDLEWARE") {
82
+ const middleware = link.middleware(context, () => {
83
+ return step(app, context, endpoint, request, chain, i + 1, validatorPlugin);
84
+ });
85
+ if (middleware instanceof Promise) {
86
+ return middleware.then((resolved) => {
87
+ if (resolved) {
88
+ context.response.content =
89
+ resolved;
90
+ }
91
+ });
92
+ }
93
+ if (middleware) {
94
+ context.response.content = middleware;
95
+ }
96
+ return;
97
+ }
98
+ if (link.type === "STORE") {
99
+ const store = link.store(context);
100
+ if (store instanceof Promise) {
101
+ return store.then((resolved) => {
102
+ if (resolved instanceof Error) {
103
+ context.response.content = resolved;
104
+ return;
105
+ }
106
+ merge(context.store, resolved);
107
+ return step(app, context, endpoint, request, chain, i + 1, validatorPlugin);
108
+ });
109
+ }
110
+ if (store instanceof Error) {
111
+ context.response.content = store;
112
+ }
113
+ else {
114
+ merge(context.store, store);
115
+ }
116
+ continue;
117
+ }
118
+ if (!link.request || !validatorPlugin) {
119
+ continue;
120
+ }
121
+ const validationResult = processValidators(context, link, validatorPlugin, 0, {
122
+ errors: undefined,
123
+ index: undefined,
124
+ });
125
+ if (validationResult instanceof Promise) {
126
+ return validationResult.then(() => {
127
+ if (context.response.content) {
128
+ return;
129
+ }
130
+ return step(app, context, endpoint, request, chain, i + 1, validatorPlugin);
131
+ });
132
+ }
133
+ }
134
+ if (context.response.content) {
135
+ return;
136
+ }
137
+ if (endpoint.generator) {
138
+ context.response.content = new ReadableStream({
139
+ async start(controller) {
140
+ let closed = false;
141
+ const onAbort = () => {
142
+ closed = true;
143
+ try {
144
+ controller.close();
145
+ }
146
+ catch { }
147
+ };
148
+ request.signal.addEventListener("abort", onAbort, {
149
+ once: true,
150
+ });
151
+ try {
152
+ for await (const chunk of endpoint.route.route(context)) {
153
+ if (closed) {
154
+ break;
155
+ }
156
+ if (chunk.data.transform) {
157
+ if (chunk.id) {
158
+ controller.enqueue(`id: ${chunk.id}\n`);
159
+ }
160
+ if (chunk.event) {
161
+ controller.enqueue(`event: ${chunk.event}\n`);
162
+ }
163
+ if (chunk.retry) {
164
+ controller.enqueue(`retry: ${chunk.retry.toString()}\n`);
165
+ }
166
+ controller.enqueue(`data: ${JSON.stringify(chunk.data)}\n\n`);
167
+ continue;
168
+ }
169
+ controller.enqueue(chunk.data.content);
170
+ }
171
+ }
172
+ catch {
173
+ }
174
+ finally {
175
+ request.signal.removeEventListener("abort", onAbort);
176
+ onAbort();
177
+ }
178
+ },
179
+ });
180
+ return;
181
+ }
182
+ const returned = endpoint.route.route(context);
183
+ if (returned instanceof Promise) {
184
+ return returned.then((resolved) => {
185
+ resolveRoute(app, context, request, endpoint, resolved);
186
+ });
187
+ }
188
+ resolveRoute(app, context, request, endpoint, returned);
189
+ };
190
+ export const stepAndRespond = (app, context, endpoint, request) => {
191
+ const stepResult = step(app, context, endpoint, request, endpoint.chain, 0, app.memory.get("validator"));
192
+ if (stepResult instanceof Promise) {
193
+ return stepResult.then(() => {
194
+ return processResponse(context.response);
195
+ });
196
+ }
197
+ return processResponse(context.response);
198
+ };
199
+ //# sourceMappingURL=step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.js","sourceRoot":"","sources":["../../src/core/step.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"success.d.ts","sourceRoot":"","sources":["../../src/core/success.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,MAAM,aAAa,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAE5D,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,UAAU,IAAI;KACzD,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO;CACnC,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,IAAI;KAC/C,GAAG,IAAI,MAAM,SAAS,GAAG,MAAM,OAAO,GAAG,GAAG,SAAS,MAAM,SAAS,GAClE,GAAG,SAAS,MAAM,OAAO,GACxB;SACC,IAAI,IACF,MAAM,SAAS,CAAC,GAAG,CAAC,GACpB,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,MAAM,SAAS,CAAC,GAAG,CAAC,GACtD,IAAI,SAAS,MAAM,OAAO,CAAC,GAAG,CAAC,GAC9B,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GACzC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GACrB,IAAI,SAAS,MAAM,OAAO,CAAC,GAAG,CAAC,GAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAClB,KAAK;KACT,GACA,SAAS,CAAC,GAAG,CAAC,GACf,GAAG,SAAS,MAAM,OAAO,GACxB,OAAO,CAAC,GAAG,CAAC,GACZ,KAAK;CACT,CAAC;AAEF,MAAM,WAAW,cAAc,CAC9B,MAAM,SAAS,MAAM,EACrB,SAAS,SAAS,OAAO;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEzD,MAAM,WAAW,OAAO,CACvB,OAAO,EACP,MAAM,SAAS,MAAM,GAAG,GAAG,EAC3B,SAAS,SAAS,OAAO,GAAG,IAAI;IAEhC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEhD,KAAK,WAAW,GAAG,KAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,iBAAiB,KACvB,UAAU,CAAC;AAEhB,eAAO,MAAM,OAAO,EASJ,WAAW,CAAC;AAE5B,eAAO,MAAM,OAAO,GACnB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,GAAG,EACjC,KAAK,CAAC,SAAS,SAAS,OAAO,GAAG,IAAI,EAEtC,SAAS,OAAO,EAChB,UAAU,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,KAEH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAC1E,CAAC"}
1
+ {"version":3,"file":"success.d.ts","sourceRoot":"","sources":["../../src/core/success.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,MAAM,MAAM,aAAa,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAE5D,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,UAAU,IAAI;KACzD,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO;CACnC,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,IAAI;KAC/C,GAAG,IAAI,MAAM,SAAS,GAAG,MAAM,OAAO,GAAG,GAAG,SAAS,MAAM,SAAS,GAClE,GAAG,SAAS,MAAM,OAAO,GACxB;SACC,IAAI,IACF,MAAM,SAAS,CAAC,GAAG,CAAC,GACpB,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,MAAM,SAAS,CAAC,GAAG,CAAC,GACtD,IAAI,SAAS,MAAM,OAAO,CAAC,GAAG,CAAC,GAC9B,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GACzC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GACrB,IAAI,SAAS,MAAM,OAAO,CAAC,GAAG,CAAC,GAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAClB,KAAK;KACT,GACA,SAAS,CAAC,GAAG,CAAC,GACf,GAAG,SAAS,MAAM,OAAO,GACxB,OAAO,CAAC,GAAG,CAAC,GACZ,KAAK;CACT,CAAC;AAEF,MAAM,WAAW,cAAc,CAC9B,MAAM,SAAS,MAAM,EACrB,SAAS,SAAS,OAAO;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEzD,MAAM,WAAW,OAAO,CACvB,OAAO,EACP,MAAM,SAAS,MAAM,GAAG,GAAG,EAC3B,SAAS,SAAS,OAAO,GAAG,IAAI;IAEhC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEhD,KAAK,WAAW,GAAG,KAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,iBAAiB,KACvB,UAAU,CAAC;AAEhB,eAAO,MAAM,OAAO,EASJ,WAAW,CAAC;AAE5B,eAAO,MAAM,OAAO,GACnB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,GAAG,EACjC,KAAK,CAAC,SAAS,SAAS,OAAO,GAAG,IAAI,EAEtC,SAAS,OAAO,EAChB,UAAU,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,KAEH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAC1E,CAAC"}
@@ -1,8 +1,9 @@
1
- export const Success = function (content, options) {
1
+ import { FreezeEmpty } from "../utils/objects/empty.js";
2
+ export const Success = function (content, { status = 200, transform = true } = FreezeEmpty) {
2
3
  this.content = content;
3
- this.status = options?.status ?? 200;
4
+ this.status = status;
4
5
  this.success = true;
5
- this.transform = options?.transform ?? true;
6
+ this.transform = transform;
6
7
  };
7
8
  export const success = (content, options) => {
8
9
  return new Success(content, options);
@@ -1 +1 @@
1
- {"version":3,"file":"success.js","sourceRoot":"","sources":["../../src/core/success.ts"],"names":[],"mappings":"AAwDA,MAAM,CAAC,MAAM,OAAO,GAAG,UAEtB,OAAgB,EAChB,OAA2B;IAE3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC;IACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;AAC7C,CAA2B,CAAC;AAE5B,MAAM,CAAC,MAAM,OAAO,GAAG,CAKtB,OAAgB,EAChB,OAA2C,EAC1C,EAAE;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAwC,CAAC;AAC7E,CAAC,CAAC"}
1
+ {"version":3,"file":"success.js","sourceRoot":"","sources":["../../src/core/success.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAwDpD,MAAM,CAAC,MAAM,OAAO,GAAG,UAEtB,OAAgB,EAChB,EAAE,MAAM,GAAG,GAAG,EAAE,SAAS,GAAG,IAAI,KAAwB,WAAW;IAEnE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC5B,CAA2B,CAAC;AAE5B,MAAM,CAAC,MAAM,OAAO,GAAG,CAKtB,OAAgB,EAChB,OAA2C,EAC1C,EAAE;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAwC,CAAC;AAC7E,CAAC,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import type { Error } from "../core/error.js";
2
- import type { ConditionallyOmit } from "../types/conditionally-omit.js";
3
- import type { ExtendsType } from "../types/extends-type.js";
4
2
  import type { MaybePromise } from "../types/maybe-promise.js";
5
3
  export type ValidatorPlugin = (schema: any, input: unknown, type: keyof ValidatorRequest) => MaybePromise<{
6
4
  content: unknown;
@@ -15,7 +13,7 @@ export type DeepInferValidatorInput<Type extends Record<PropertyKey, unknown>> =
15
13
  export type DeepInferValidatorOutput<Type extends Record<PropertyKey, unknown>> = {
16
14
  [Key in keyof Type]: Cudenix.InferValidatorOutput<Type[Key]>;
17
15
  };
18
- export type ValidatorErrorDetails<Type> = {
16
+ type ValidatorErrorDetails<Type> = {
19
17
  [Key in keyof Type]: {
20
18
  details: [Type[Key]];
21
19
  type: Key;
@@ -28,13 +26,11 @@ export interface TransformValidatorError<ValidatorError extends Record<PropertyK
28
26
  }
29
27
  ], 422, true>;
30
28
  }
31
- export type MergeInferValidatorRequest<FirstType extends Record<PropertyKey, unknown>, SecondType extends Record<PropertyKey, unknown>> = ConditionallyOmit<{
32
- body: ExtendsType<SecondType["body"], unknown, FirstType["body"]>;
33
- cookies: ExtendsType<SecondType["cookies"], unknown, FirstType["cookies"]>;
34
- headers: ExtendsType<SecondType["headers"], unknown, FirstType["headers"]>;
35
- params: ExtendsType<SecondType["params"], unknown, FirstType["params"]>;
36
- query: ExtendsType<SecondType["query"], unknown, FirstType["query"]>;
37
- }, unknown>;
29
+ export type MergeInferValidatorRequest<FirstType extends Record<PropertyKey, unknown>, SecondType extends Record<PropertyKey, unknown>> = {
30
+ [Key in "body" | "cookies" | "headers" | "params" | "query" as [
31
+ unknown
32
+ ] extends [SecondType[Key]] ? [unknown] extends [FirstType[Key]] ? never : Key : Key]: [unknown] extends [SecondType[Key]] ? FirstType[Key] : SecondType[Key];
33
+ };
38
34
  export interface ValidatorRequest<Body = unknown, Cookies = unknown, Headers = unknown, Params = unknown, Query = unknown> {
39
35
  body: Body;
40
36
  cookies: Cookies;
@@ -43,9 +39,9 @@ export interface ValidatorRequest<Body = unknown, Cookies = unknown, Headers = u
43
39
  query: Query;
44
40
  }
45
41
  export interface Validator<Request extends Partial<ValidatorRequest>> {
42
+ keys: (keyof ValidatorRequest)[];
46
43
  request: Request;
47
44
  type: "VALIDATOR";
48
- keys: (keyof ValidatorRequest)[];
49
45
  }
50
46
  export type AnyValidator = Validator<any>;
51
47
  export interface ValidatorOptions<Request extends Partial<ValidatorRequest>> {
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,CAC7B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,gBAAgB,KACxB,YAAY,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,CAAC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAC5E;KACE,GAAG,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC3D,CAAC;AAEH,MAAM,MAAM,uBAAuB,CAAC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAC5E;KACE,GAAG,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC3D,CAAC;AAEH,MAAM,MAAM,wBAAwB,CACnC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IACtC;KACF,GAAG,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,IAAI,IAAI;KACxC,GAAG,IAAI,MAAM,IAAI,GAAG;QACpB,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrB,IAAI,EAAE,GAAG,CAAC;KACV;CACD,CAAC,MAAM,IAAI,CAAC,CAAC;AAEd,MAAM,WAAW,uBAAuB,CACvC,cAAc,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC;IAEnD,GAAG,EAAE,KAAK,CACT;QACC;YACC,OAAO,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC;SACjD;KACD,EACD,GAAG,EACH,IAAI,CACJ,CAAC;CACF;AAED,MAAM,MAAM,0BAA0B,CACrC,SAAS,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EAC9C,UAAU,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAC5C,iBAAiB,CACpB;IACC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,OAAO,EAAE,WAAW,CACnB,UAAU,CAAC,SAAS,CAAC,EACrB,OAAO,EACP,SAAS,CAAC,SAAS,CAAC,CACpB,CAAC;IACF,OAAO,EAAE,WAAW,CACnB,UAAU,CAAC,SAAS,CAAC,EACrB,OAAO,EACP,SAAS,CAAC,SAAS,CAAC,CACpB,CAAC;IACF,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;CACrE,EACD,OAAO,CACP,CAAC;AAEF,MAAM,WAAW,gBAAgB,CAChC,IAAI,GAAG,OAAO,EACd,OAAO,GAAG,OAAO,EACjB,OAAO,GAAG,OAAO,EACjB,MAAM,GAAG,OAAO,EAChB,KAAK,GAAG,OAAO;IAEf,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACb;AAED,MAAM,WAAW,SAAS,CAAC,OAAO,SAAS,OAAO,CAAC,gBAAgB,CAAC;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,CAAC,MAAM,gBAAgB,CAAC,EAAE,CAAC;CACjC;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAE1C,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,OAAO,CAAC,gBAAgB,CAAC;IAC1E,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAExD,KAAK,WAAW,GAAG,KAAK,OAAO,EAAE,mBAAmB,KAAK,YAAY,CAAC;AAEtE,eAAO,MAAM,SAAS,EAON,WAAW,CAAC;AAE5B,eAAO,MAAM,SAAS,GAAI,KAAK,CAAC,OAAO,SAAS,OAAO,CAAC,gBAAgB,CAAC,EACxE,SAAS,gBAAgB,CAAC,OAAO,CAAC,KAED,SAAS,CAAC,OAAO,CAClD,CAAC"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AAuGA,MAAM,CAAC,MAAM,SAAS,GAAG,UAExB,OAA4B;IAE5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAA+B,CAAC;AACxE,CAA2B,CAAC;AAE5B,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,OAAkC,EACjC,EAAE;IACH,OAAO,IAAI,SAAS,CAAC,OAAO,CAAuB,CAAC;AACrD,CAAC,CAAC"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AA8FA,MAAM,CAAC,MAAM,SAAS,GAAG,UAExB,OAA4B;IAE5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAA+B,CAAC;AACxE,CAA2B,CAAC;AAE5B,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,OAAkC,EACjC,EAAE;IACH,OAAO,IAAI,SAAS,CAAC,OAAO,CAAuB,CAAC;AACrD,CAAC,CAAC"}
@@ -7,12 +7,12 @@ import type { ConditionallyOptional } from "../../types/conditionally-optional.j
7
7
  import type { AnyGeneratorSSE } from "../../types/generator-sse.js";
8
8
  import type { MaybeFunction } from "../../types/maybe-function.js";
9
9
  import type { Merge } from "../../types/merge.js";
10
- export type RequestOptions<Request> = Merge<Omit<RequestInit, "method"> & {
10
+ type RequestOptions<Request> = Merge<Omit<RequestInit, "method"> & {
11
11
  headers?: Record<string, string | readonly string[]>;
12
12
  }, Request extends Record<PropertyKey, unknown> ? ConditionallyOptional<Request, undefined> : NonNullable<unknown>>;
13
- export type ParseResponse<Method, Request, Response> = Method extends "WS" ? WS<Request, Response> : Response extends Generator<infer Yield> ? SSE<Yield extends AnyGeneratorSSE ? Yield : never> : Response extends AsyncGenerator<infer Yield> ? SSE<Yield extends AnyGeneratorSSE ? Yield : never> : Response extends AnyError | AnySuccess ? Response["transform"] extends true ? Response : Response["content"] : Response;
14
- export type RouteHandler<Method, Request, Response> = (options?: RequestOptions<Request>) => Promise<ParseResponse<Method, Request, Response>>;
15
- export type ClientChain<Routes extends Record<PropertyKey, unknown>> = {
13
+ type ParseResponse<Method, Request, Response> = Method extends "WS" ? WS<Request, Response> : Response extends Generator<infer Yield> | AsyncGenerator<infer Yield> ? SSE<Yield extends AnyGeneratorSSE ? Yield : never> : Response extends AnyError | AnySuccess ? Response["transform"] extends true ? Response : Response["content"] : Response;
14
+ type RouteHandler<Method, Request, Response> = (options?: RequestOptions<Request>) => Promise<ParseResponse<Method, Request, Response>>;
15
+ type ClientChain<Routes extends Record<PropertyKey, unknown>> = {
16
16
  [Key in keyof Routes]: Routes[Key] extends Record<PropertyKey, unknown> ? Routes[Key] extends {
17
17
  request: infer Request;
18
18
  response: infer Response;
@@ -20,8 +20,9 @@ export type ClientChain<Routes extends Record<PropertyKey, unknown>> = {
20
20
  };
21
21
  export type InferRouteOptions<Route> = Route extends (...options: any[]) => any ? NonNullable<Parameters<Route>[0]> : never;
22
22
  export type InferRouteResponse<Route> = Route extends (...options: any[]) => any ? Awaited<ReturnType<Route>> : never;
23
- export type ClientOptions = MaybeFunction<{
23
+ type ClientOptions = MaybeFunction<{
24
24
  url: string;
25
25
  } & Omit<RequestInit, "method">>;
26
26
  export declare const client: <const App extends AnyModule>(options: ClientOptions) => ClientChain<App["routes"]>;
27
+ export {};
27
28
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/ecosystem/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/ecosystem/client/client.ts"],"names":[],"mappings":"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"}