@cudenix/cudenix 0.0.1

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 (167) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/app.d.ts +32 -0
  4. package/dist/app.d.ts.map +1 -0
  5. package/dist/app.js +331 -0
  6. package/dist/app.js.map +1 -0
  7. package/dist/context.d.ts +51 -0
  8. package/dist/context.d.ts.map +1 -0
  9. package/dist/context.js +123 -0
  10. package/dist/context.js.map +1 -0
  11. package/dist/ecosystem/client/client.d.ts +20 -0
  12. package/dist/ecosystem/client/client.d.ts.map +1 -0
  13. package/dist/ecosystem/client/client.js +129 -0
  14. package/dist/ecosystem/client/client.js.map +1 -0
  15. package/dist/ecosystem/client/index.d.ts +4 -0
  16. package/dist/ecosystem/client/index.d.ts.map +1 -0
  17. package/dist/ecosystem/client/index.js +4 -0
  18. package/dist/ecosystem/client/index.js.map +1 -0
  19. package/dist/ecosystem/client/sse.d.ts +9 -0
  20. package/dist/ecosystem/client/sse.d.ts.map +1 -0
  21. package/dist/ecosystem/client/sse.js +22 -0
  22. package/dist/ecosystem/client/sse.js.map +1 -0
  23. package/dist/ecosystem/client/ws.d.ts +10 -0
  24. package/dist/ecosystem/client/ws.d.ts.map +1 -0
  25. package/dist/ecosystem/client/ws.js +29 -0
  26. package/dist/ecosystem/client/ws.js.map +1 -0
  27. package/dist/ecosystem/cluster/cluster.d.ts +4 -0
  28. package/dist/ecosystem/cluster/cluster.d.ts.map +1 -0
  29. package/dist/ecosystem/cluster/cluster.js +32 -0
  30. package/dist/ecosystem/cluster/cluster.js.map +1 -0
  31. package/dist/ecosystem/cluster/index.d.ts +2 -0
  32. package/dist/ecosystem/cluster/index.d.ts.map +1 -0
  33. package/dist/ecosystem/cluster/index.js +2 -0
  34. package/dist/ecosystem/cluster/index.js.map +1 -0
  35. package/dist/ecosystem/events/events.d.ts +11 -0
  36. package/dist/ecosystem/events/events.d.ts.map +1 -0
  37. package/dist/ecosystem/events/events.js +10 -0
  38. package/dist/ecosystem/events/events.js.map +1 -0
  39. package/dist/ecosystem/events/index.d.ts +2 -0
  40. package/dist/ecosystem/events/index.d.ts.map +1 -0
  41. package/dist/ecosystem/events/index.js +2 -0
  42. package/dist/ecosystem/events/index.js.map +1 -0
  43. package/dist/ecosystem/i18n/i18n.d.ts +27 -0
  44. package/dist/ecosystem/i18n/i18n.d.ts.map +1 -0
  45. package/dist/ecosystem/i18n/i18n.js +90 -0
  46. package/dist/ecosystem/i18n/i18n.js.map +1 -0
  47. package/dist/ecosystem/i18n/index.d.ts +2 -0
  48. package/dist/ecosystem/i18n/index.d.ts.map +1 -0
  49. package/dist/ecosystem/i18n/index.js +2 -0
  50. package/dist/ecosystem/i18n/index.js.map +1 -0
  51. package/dist/error.d.ts +22 -0
  52. package/dist/error.d.ts.map +1 -0
  53. package/dist/error.js +7 -0
  54. package/dist/error.js.map +1 -0
  55. package/dist/group.d.ts +18 -0
  56. package/dist/group.d.ts.map +1 -0
  57. package/dist/group.js +8 -0
  58. package/dist/group.js.map +1 -0
  59. package/dist/index.d.ts +13 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +12 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/middleware.d.ts +16 -0
  64. package/dist/middleware.d.ts.map +1 -0
  65. package/dist/middleware.js +6 -0
  66. package/dist/middleware.js.map +1 -0
  67. package/dist/module.d.ts +54 -0
  68. package/dist/module.d.ts.map +1 -0
  69. package/dist/module.js +37 -0
  70. package/dist/module.js.map +1 -0
  71. package/dist/route.d.ts +48 -0
  72. package/dist/route.d.ts.map +1 -0
  73. package/dist/route.js +14 -0
  74. package/dist/route.js.map +1 -0
  75. package/dist/storage.d.ts +5 -0
  76. package/dist/storage.d.ts.map +1 -0
  77. package/dist/storage.js +6 -0
  78. package/dist/storage.js.map +1 -0
  79. package/dist/store.d.ts +14 -0
  80. package/dist/store.d.ts.map +1 -0
  81. package/dist/store.js +6 -0
  82. package/dist/store.js.map +1 -0
  83. package/dist/success.d.ts +21 -0
  84. package/dist/success.d.ts.map +1 -0
  85. package/dist/success.js +7 -0
  86. package/dist/success.js.map +1 -0
  87. package/dist/types/conditionally-omit.d.ts +7 -0
  88. package/dist/types/conditionally-omit.d.ts.map +1 -0
  89. package/dist/types/conditionally-omit.js +2 -0
  90. package/dist/types/conditionally-omit.js.map +1 -0
  91. package/dist/types/conditionally-optional.d.ts +6 -0
  92. package/dist/types/conditionally-optional.d.ts.map +1 -0
  93. package/dist/types/conditionally-optional.js +2 -0
  94. package/dist/types/conditionally-optional.js.map +1 -0
  95. package/dist/types/extends-type.d.ts +4 -0
  96. package/dist/types/extends-type.d.ts.map +1 -0
  97. package/dist/types/extends-type.js +2 -0
  98. package/dist/types/extends-type.js.map +1 -0
  99. package/dist/types/extract-content.d.ts +2 -0
  100. package/dist/types/extract-content.d.ts.map +1 -0
  101. package/dist/types/extract-content.js +2 -0
  102. package/dist/types/extract-content.js.map +1 -0
  103. package/dist/types/extract-url-params.d.ts +7 -0
  104. package/dist/types/extract-url-params.d.ts.map +1 -0
  105. package/dist/types/extract-url-params.js +2 -0
  106. package/dist/types/extract-url-params.js.map +1 -0
  107. package/dist/types/generator-sse.d.ts +9 -0
  108. package/dist/types/generator-sse.d.ts.map +1 -0
  109. package/dist/types/generator-sse.js +2 -0
  110. package/dist/types/generator-sse.js.map +1 -0
  111. package/dist/types/http-method.d.ts +2 -0
  112. package/dist/types/http-method.d.ts.map +1 -0
  113. package/dist/types/http-method.js +2 -0
  114. package/dist/types/http-method.js.map +1 -0
  115. package/dist/types/index.d.ts +14 -0
  116. package/dist/types/index.d.ts.map +1 -0
  117. package/dist/types/index.js +2 -0
  118. package/dist/types/index.js.map +1 -0
  119. package/dist/types/maybe-promise.d.ts +2 -0
  120. package/dist/types/maybe-promise.d.ts.map +1 -0
  121. package/dist/types/maybe-promise.js +2 -0
  122. package/dist/types/maybe-promise.js.map +1 -0
  123. package/dist/types/merge-paths.d.ts +4 -0
  124. package/dist/types/merge-paths.d.ts.map +1 -0
  125. package/dist/types/merge-paths.js +2 -0
  126. package/dist/types/merge-paths.js.map +1 -0
  127. package/dist/types/merge.d.ts +2 -0
  128. package/dist/types/merge.d.ts.map +1 -0
  129. package/dist/types/merge.js +2 -0
  130. package/dist/types/merge.js.map +1 -0
  131. package/dist/types/required-keys.d.ts +4 -0
  132. package/dist/types/required-keys.d.ts.map +1 -0
  133. package/dist/types/required-keys.js +2 -0
  134. package/dist/types/required-keys.js.map +1 -0
  135. package/dist/types/value-of.d.ts +2 -0
  136. package/dist/types/value-of.d.ts.map +1 -0
  137. package/dist/types/value-of.js +2 -0
  138. package/dist/types/value-of.js.map +1 -0
  139. package/dist/types/ws.d.ts +2 -0
  140. package/dist/types/ws.d.ts.map +1 -0
  141. package/dist/types/ws.js +2 -0
  142. package/dist/types/ws.js.map +1 -0
  143. package/dist/utils/empty.d.ts +2 -0
  144. package/dist/utils/empty.d.ts.map +1 -0
  145. package/dist/utils/empty.js +4 -0
  146. package/dist/utils/empty.js.map +1 -0
  147. package/dist/utils/file.d.ts +2 -0
  148. package/dist/utils/file.d.ts.map +1 -0
  149. package/dist/utils/file.js +4 -0
  150. package/dist/utils/file.js.map +1 -0
  151. package/dist/utils/get-cookies.d.ts +2 -0
  152. package/dist/utils/get-cookies.d.ts.map +1 -0
  153. package/dist/utils/get-cookies.js +15 -0
  154. package/dist/utils/get-cookies.js.map +1 -0
  155. package/dist/utils/merge.d.ts +2 -0
  156. package/dist/utils/merge.d.ts.map +1 -0
  157. package/dist/utils/merge.js +8 -0
  158. package/dist/utils/merge.js.map +1 -0
  159. package/dist/utils/regexp.d.ts +11 -0
  160. package/dist/utils/regexp.d.ts.map +1 -0
  161. package/dist/utils/regexp.js +41 -0
  162. package/dist/utils/regexp.js.map +1 -0
  163. package/dist/validator.d.ts +57 -0
  164. package/dist/validator.d.ts.map +1 -0
  165. package/dist/validator.js +11 -0
  166. package/dist/validator.js.map +1 -0
  167. package/package.json +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-keys.js","sourceRoot":"","sources":["../../src/types/required-keys.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type ValueOf<Type extends Record<PropertyKey, unknown>> = Type[keyof Type];
2
+ //# sourceMappingURL=value-of.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-of.d.ts","sourceRoot":"","sources":["../../src/types/value-of.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=value-of.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-of.js","sourceRoot":"","sources":["../../src/types/value-of.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type WSData = Record<"close" | "drain" | "message" | "open", ((...options: any[]) => any) | undefined> | undefined;
2
+ //# sourceMappingURL=ws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/types/ws.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GACf,MAAM,CACN,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,EACtC,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS,CACvC,GACD,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../src/types/ws.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare const Empty: new () => Record<PropertyKey, unknown>;
2
+ //# sourceMappingURL=empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../src/utils/empty.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,EAAgC,UAAU,MAAM,CACjE,WAAW,EACX,OAAO,CACP,CAAC"}
@@ -0,0 +1,4 @@
1
+ // biome-ignore lint/complexity/useArrowFunction:
2
+ export const Empty = function () { };
3
+ Empty.prototype = Object.create(null);
4
+ //# sourceMappingURL=empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.js","sourceRoot":"","sources":["../../src/utils/empty.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,MAAM,CAAC,MAAM,KAAK,GAAG,cAAa,CAGjC,CAAC;AAEF,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const isFile: (value: unknown) => value is import("buffer").Blob | import("buffer").File;
2
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,UAAW,OAAO,2DAEpC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const isFile = (value) => {
2
+ return value instanceof File || value instanceof Blob;
3
+ };
4
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;IACxC,OAAO,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC;AACvD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const getCookies: (headers: Request["headers"]) => Record<string, string>;
2
+ //# sourceMappingURL=get-cookies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-cookies.d.ts","sourceRoot":"","sources":["../../src/utils/get-cookies.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,YAAa,OAAO,CAAC,SAAS,CAAC,2BAiBrD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Empty } from "../utils/empty";
2
+ export const getCookies = (headers) => {
3
+ const splittedCookies = headers.get("cookie")?.split(";");
4
+ const cookies = new Empty();
5
+ for (let i = 0; i < (splittedCookies?.length ?? 0); i++) {
6
+ const cookie = splittedCookies?.[i].trim();
7
+ if (!cookie) {
8
+ continue;
9
+ }
10
+ const [name, value] = cookie.split("=");
11
+ cookies[name] = value;
12
+ }
13
+ return cookies;
14
+ };
15
+ //# sourceMappingURL=get-cookies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-cookies.js","sourceRoot":"","sources":["../../src/utils/get-cookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAA2B,EAAE,EAAE;IACzD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,KAAK,EAA4B,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,SAAS;QACV,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const merge: (object1: Record<PropertyKey, unknown>, object2: Record<PropertyKey, unknown>) => Record<PropertyKey, unknown>;
2
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/utils/merge.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,YACR,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,WAC5B,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,iCASrC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const merge = (object1, object2) => {
2
+ const keys = Object.keys(object2);
3
+ for (let i = 0; i < keys.length; i++) {
4
+ object1[keys[i]] = object2[keys[i]];
5
+ }
6
+ return object1;
7
+ };
8
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/utils/merge.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CACpB,OAAqC,EACrC,OAAqC,EACpC,EAAE;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const endsWithQuestionMarkRegexp: RegExp;
2
+ export declare const getUrlQueryRegexp: RegExp;
3
+ export declare const startsWithColonRegexp: RegExp;
4
+ export declare const startsWithEllipsisRegexp: RegExp;
5
+ export declare const useContextBodyRegexp: RegExp;
6
+ export declare const useContextCookiesRegexp: RegExp;
7
+ export declare const useContextHeadersRegexp: RegExp;
8
+ export declare const useContextParamsRegexp: RegExp;
9
+ export declare const useContextQueryRegexp: RegExp;
10
+ export declare const pathToRegexp: (path: string, captureParamGroups?: boolean) => string;
11
+ //# sourceMappingURL=regexp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regexp.d.ts","sourceRoot":"","sources":["../../src/utils/regexp.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAChD,eAAO,MAAM,iBAAiB,QAA2B,CAAC;AAC1D,eAAO,MAAM,qBAAqB,QAAO,CAAC;AAC1C,eAAO,MAAM,wBAAwB,QAAW,CAAC;AACjD,eAAO,MAAM,oBAAoB,QAAqC,CAAC;AACvE,eAAO,MAAM,uBAAuB,QAA2C,CAAC;AAChF,eAAO,MAAM,uBAAuB,QAA2C,CAAC;AAChF,eAAO,MAAM,sBAAsB,QAAyC,CAAC;AAC7E,eAAO,MAAM,qBAAqB,QAAuC,CAAC;AAE1E,eAAO,MAAM,YAAY,SAAU,MAAM,yCAsCxC,CAAC"}
@@ -0,0 +1,41 @@
1
+ export const endsWithQuestionMarkRegexp = /\?$/;
2
+ export const getUrlQueryRegexp = /[?&]([^=#]+)=([^&#]*)/g;
3
+ export const startsWithColonRegexp = /^:/;
4
+ export const startsWithEllipsisRegexp = /^\.{3}/;
5
+ export const useContextBodyRegexp = /\{[^}]*\bbody\b[^}]*\}|\.body\b/m;
6
+ export const useContextCookiesRegexp = /\{[^}]*\bcookies\b[^}]*\}|\.cookies\b/m;
7
+ export const useContextHeadersRegexp = /\{[^}]*\bheaders\b[^}]*\}|\.headers\b/m;
8
+ export const useContextParamsRegexp = /\{[^}]*\bparams\b[^}]*\}|\.params\b/m;
9
+ export const useContextQueryRegexp = /\{[^}]*\bquery\b[^}]*\}|\.query\b/m;
10
+ export const pathToRegexp = (path, captureParamGroups = false) => {
11
+ let pattern = "()";
12
+ if (path === "/") {
13
+ return `${pattern}\\/`;
14
+ }
15
+ const segments = path.split("/");
16
+ for (let i = 0; i < segments.length; i++) {
17
+ let segment = segments[i];
18
+ if (!segment) {
19
+ continue;
20
+ }
21
+ const isOptional = endsWithQuestionMarkRegexp.test(segment);
22
+ if (isOptional) {
23
+ segment = segment.slice(0, -1);
24
+ }
25
+ if (startsWithColonRegexp.test(segment)) {
26
+ segment = `\\/${captureParamGroups ? `(?<${segment.slice(1)}>` : ""}[^/\\s?#]+${captureParamGroups ? ")" : ""}`;
27
+ }
28
+ else if (startsWithEllipsisRegexp.test(segment)) {
29
+ segment = `\\/${captureParamGroups ? `(?<${segment.slice(3)}>` : ""}(?:[^/\\s?#]+/)*(?:[^/\\s?#]+)${captureParamGroups ? ")" : ""}`;
30
+ }
31
+ else {
32
+ segment = `/${segment}`;
33
+ }
34
+ if (isOptional) {
35
+ segment = `(?:${segment})?`;
36
+ }
37
+ pattern = `${pattern}${segment}`;
38
+ }
39
+ return pattern;
40
+ };
41
+ //# sourceMappingURL=regexp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regexp.js","sourceRoot":"","sources":["../../src/utils/regexp.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,wCAAwC,CAAC;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,wCAAwC,CAAC;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG,sCAAsC,CAAC;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,oCAAoC,CAAC;AAE1E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE;IACxE,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAClB,OAAO,GAAG,OAAO,KAAK,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,SAAS;QACV,CAAC;QAED,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,GAAG,MAAM,kBAAkB,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACjH,CAAC;aAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,OAAO,GAAG,MAAM,kBAAkB,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,iCAAiC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrI,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,GAAG,MAAM,OAAO,IAAI,CAAC;QAC7B,CAAC;QAED,OAAO,GAAG,GAAG,OAAO,GAAG,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { App } from "./app";
2
+ import type { Error } from "./error";
3
+ import type { ConditionallyOmit, ExtendsType, MaybePromise } from "./types";
4
+ import type { InferValidatorError, InferValidatorInput, InferValidatorOutput } from "@cudenix/cudenix";
5
+ export type ValidatorConfigValidator = (schema: any, input: unknown, type: keyof ValidatorRequest) => MaybePromise<{
6
+ content: unknown;
7
+ success: boolean;
8
+ }>;
9
+ export type DeepInferValidatorError<Type extends Record<PropertyKey, unknown>> = {
10
+ [Key in keyof Type]: InferValidatorError<Type[Key]>;
11
+ };
12
+ export type DeepInferValidatorInput<Type extends Record<PropertyKey, unknown>> = {
13
+ [Key in keyof Type]: InferValidatorInput<Type[Key]>;
14
+ };
15
+ export type DeepInferValidatorOutput<Type extends Record<PropertyKey, unknown>> = {
16
+ [Key in keyof Type]: InferValidatorOutput<Type[Key]>;
17
+ };
18
+ export type ValidatorErrorDetails<Type> = {
19
+ [Key in keyof Type]: {
20
+ details: [Type[Key]];
21
+ type: Key;
22
+ };
23
+ }[keyof Type];
24
+ export interface TransformValidatorError<ValidatorError extends Record<PropertyKey, unknown>> {
25
+ 422: Error<[{
26
+ details: [ValidatorErrorDetails<ValidatorError>];
27
+ }], 422>;
28
+ }
29
+ export type MergeInferValidatorRequest<FirstType extends Record<PropertyKey, unknown>, SecondType extends Record<PropertyKey, unknown>> = ConditionallyOmit<{
30
+ body: ExtendsType<SecondType["body"], unknown, FirstType["body"]>;
31
+ cookies: ExtendsType<SecondType["cookies"], unknown, FirstType["cookies"]>;
32
+ headers: ExtendsType<SecondType["headers"], unknown, FirstType["headers"]>;
33
+ params: ExtendsType<SecondType["params"], unknown, FirstType["params"]>;
34
+ query: ExtendsType<SecondType["query"], unknown, FirstType["query"]>;
35
+ }, unknown>;
36
+ export interface ValidatorRequest<Body = unknown, Cookies = unknown, Headers = unknown, Params = unknown, Query = unknown> {
37
+ body: Body;
38
+ cookies: Cookies;
39
+ headers: Headers;
40
+ params: Params;
41
+ query: Query;
42
+ }
43
+ export interface Validator<Request extends Partial<ValidatorRequest>> {
44
+ request: Request;
45
+ type: "VALIDATOR";
46
+ }
47
+ export type AnyValidator = Validator<any>;
48
+ export interface ValidatorOptions<Request extends Partial<ValidatorRequest>> {
49
+ request: Request;
50
+ }
51
+ export type AnyValidatorOptions = ValidatorOptions<any>;
52
+ type Constructor = new (options: AnyValidatorOptions) => AnyValidator;
53
+ export declare const Validator: Constructor;
54
+ export declare const validator: <const Request extends Partial<ValidatorRequest>>(options: ValidatorOptions<Request>) => Validator<Request>;
55
+ export declare function validatorConfig(validator: ValidatorConfigValidator): (this: App) => void;
56
+ export {};
57
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,KAAK,EACX,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,wBAAwB,GAAG,CACtC,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,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACnD,CAAC;AAEH,MAAM,MAAM,uBAAuB,CAAC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAC5E;KACE,GAAG,IAAI,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACnD,CAAC;AAEH,MAAM,MAAM,wBAAwB,CACnC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IACtC;KACF,GAAG,IAAI,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,IAAI,IAAI;KACxC,GAAG,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;CACxD,CAAC,MAAM,IAAI,CAAC,CAAC;AAEd,MAAM,WAAW,uBAAuB,CACvC,cAAc,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC;IAEnD,GAAG,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAA;KAAE,CAAC,EAAE,GAAG,CAAC,CAAC;CACxE;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,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,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;CAClB;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,EAMN,WAAW,CAAC;AAE5B,eAAO,MAAM,SAAS,SAAU,OAAO,SAAS,OAAO,CAAC,gBAAgB,CAAC,WAC/D,gBAAgB,CAAC,OAAO,CAAC,KACJ,SAAS,CAAC,OAAO,CAAC,CAAC;AAElD,wBAAgB,eAAe,CAAC,SAAS,EAAE,wBAAwB,UAC3C,GAAG,UAG1B"}
@@ -0,0 +1,11 @@
1
+ export const Validator = function ({ request }) {
2
+ this.request = request;
3
+ this.type = "VALIDATOR";
4
+ };
5
+ export const validator = (options) => new Validator(options);
6
+ export function validatorConfig(validator) {
7
+ return function () {
8
+ this.memory.set("validator", validator);
9
+ };
10
+ }
11
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAuFA,MAAM,CAAC,MAAM,SAAS,GAAG,UAExB,EAAE,OAAO,EAAuB;IAEhC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;AACzB,CAA2B,CAAC;AAE5B,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,OAAkC,EACjC,EAAE,CAAC,IAAI,SAAS,CAAC,OAAO,CAAuB,CAAC;AAElD,MAAM,UAAU,eAAe,CAAC,SAAmC;IAClE,OAAO;QACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "author": "cudenix <contact@cudenix.com> (https://cudenix.com)",
3
+ "bugs": {
4
+ "email": "security@cudenix.com",
5
+ "url": "https://github.com/cudenix/cudenix/issues"
6
+ },
7
+ "description": "cudenix",
8
+ "devDependencies": {
9
+ "@biomejs/biome": "1.9.2",
10
+ "@types/bun": "1.1.10",
11
+ "tsc-alias": "1.8.10",
12
+ "typescript": "5.6.2"
13
+ },
14
+ "exports": {
15
+ "./package.json": "./package.json",
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js"
19
+ },
20
+ "./client": {
21
+ "types": "./dist/ecosystem/client/index.d.ts",
22
+ "import": "./dist/ecosystem/client/index.js"
23
+ },
24
+ "./cluster": {
25
+ "types": "./dist/ecosystem/cluster/index.d.ts",
26
+ "import": "./dist/ecosystem/cluster/index.js"
27
+ },
28
+ "./events": {
29
+ "types": "./dist/ecosystem/events/index.d.ts",
30
+ "import": "./dist/ecosystem/events/index.js"
31
+ },
32
+ "./i18n": {
33
+ "types": "./dist/ecosystem/i18n/index.d.ts",
34
+ "import": "./dist/ecosystem/i18n/index.js"
35
+ }
36
+ },
37
+ "files": ["dist"],
38
+ "homepage": "https://github.com/cudenix/cudenix",
39
+ "keywords": [
40
+ "api",
41
+ "bun",
42
+ "framework",
43
+ "http",
44
+ "server",
45
+ "sse",
46
+ "typescript",
47
+ "web",
48
+ "websocket"
49
+ ],
50
+ "license": "MIT",
51
+ "main": "dist/index.js",
52
+ "module": "dist/index.js",
53
+ "name": "@cudenix/cudenix",
54
+ "publishConfig": {
55
+ "access": "public",
56
+ "registry": "https://registry.npmjs.org"
57
+ },
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "git+https://github.com/cudenix/cudenix.git"
61
+ },
62
+ "scripts": {
63
+ "build": "bun clear:build && bun format && bun lint && tsc && tsc-alias",
64
+ "clear": "bun clear:build && bun clear:install",
65
+ "clear:build": "rm -rf dist",
66
+ "clear:install": "rm -rf node_modules && rm -rf bun.lockb",
67
+ "format": "biome format --fix",
68
+ "lint": "biome lint --diagnostic-level=error",
69
+ "reinstall": "bun clear:install && bun install"
70
+ },
71
+ "sideEffects": false,
72
+ "type": "module",
73
+ "types": "dist/index.d.ts",
74
+ "version": "0.0.1"
75
+ }