@cudenix/cudenix 0.0.57 → 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 (179) 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 +4 -3
  10. package/dist/core/context.d.ts.map +1 -1
  11. package/dist/core/context.js +145 -75
  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 +37 -15
  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 -53
  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/utils/cookies/get/cookies.d.ts +0 -2
  175. package/dist/utils/cookies/get/cookies.d.ts.map +0 -1
  176. package/dist/utils/cookies/get/cookies.js +0 -18
  177. package/dist/utils/cookies/get/cookies.js.map +0 -1
  178. /package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.d.ts +0 -0
  179. /package/dist/ecosystem/{modules → plugins}/global-request-context/global-request-context.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/cors/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../../../ecosystem/plugins/cors/cors.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/cors/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/events/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC,IAC/D,YAAY,CAAC,MAAM,CAAC,CAAC;AAEtB,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAElC,KAAK,WAAW,GAAG,UAAU,QAAQ,CAAC;AAEtC,eAAO,MAAM,KAAK,EAEF,WAAW,CAAC;AAK5B,eAAO,MAAM,KAAK,GACjB,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,OAEpD,KAAK,CAAC,MAAM,CAClC,CAAC;AAEF,eAAO,MAAM,MAAM,4BAAU,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/events/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC,IAC/D,YAAY,CAAC,MAAM,CAAC,CAAC;AAEtB,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAElC,KAAK,WAAW,GAAG,UAAU,QAAQ,CAAC;AAEtC,eAAO,MAAM,KAAK,EAEF,WAAW,CAAC;AAE5B,eAAO,MAAM,KAAK,GACjB,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,OAEpD,KAAK,CAAC,MAAM,CAClC,CAAC;AAEF,eAAO,MAAM,MAAM,4BAAU,CAAC"}
@@ -2,8 +2,6 @@ import { EventEmitter } from "node:events";
2
2
  export const Event = function () {
3
3
  return new EventEmitter();
4
4
  };
5
- Event.prototype = Object.create(EventEmitter.prototype);
6
- Event.prototype.constructor = Event;
7
5
  export const event = () => {
8
6
  return new Event();
9
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/events/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAS3C,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,OAAO,IAAI,YAAY,EAAE,CAAC;AAC3B,CAA2B,CAAC;AAE5B,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AACxD,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,KAAK,GAAG,GAEjB,EAAE;IACL,OAAO,IAAI,KAAK,EAAmB,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/events/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAS3C,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,OAAO,IAAI,YAAY,EAAE,CAAC;AAC3B,CAA2B,CAAC;AAE5B,MAAM,CAAC,MAAM,KAAK,GAAG,GAEjB,EAAE;IACL,OAAO,IAAI,KAAK,EAAmB,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "../../../ecosystem/plugins/events/events.js";
2
+ export type * from "../../../ecosystem/plugins/events/types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,mBAAmB,kCAAkC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../../../ecosystem/plugins/events/events.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"global-request-context.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/modules/global-request-context/global-request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,eAAO,MAAM,iBAAiB,wCAA+C,CAAC;AAE9E,eAAO,MAAM,iBAAiB,uCAE7B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;EAIhC,CAAC"}
1
+ {"version":3,"file":"global-request-context.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/global-request-context/global-request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,eAAO,MAAM,iBAAiB,wCAA+C,CAAC;AAE9E,eAAO,MAAM,iBAAiB,uCAE7B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;EAIhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"global-request-context.js","sourceRoot":"","sources":["../../../../src/ecosystem/modules/global-request-context/global-request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAuB,CAAC;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACrC,OAAO,iBAAiB,CAAC,QAAQ,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACxC,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAClD,MAAM,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"global-request-context.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/global-request-context/global-request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAuB,CAAC;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACrC,OAAO,iBAAiB,CAAC,QAAQ,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACxC,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAClD,MAAM,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../../../ecosystem/plugins/global-request-context/global-request-context.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/global-request-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,mEAAmE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../../../ecosystem/plugins/global-request-context/global-request-context.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/global-request-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,mEAAmE,CAAC"}
@@ -2,7 +2,7 @@ export type DeepPaths<Type extends Record<PropertyKey, unknown>> = {
2
2
  [Key in keyof Type]: Key extends string ? Type[Key] extends Record<PropertyKey, unknown> ? `${Key}` | `${Key}.${DeepPaths<Type[Key]>}` : `${Key}` : never;
3
3
  }[keyof Type];
4
4
  export type DeepValue<Type extends Record<PropertyKey, unknown>, Path extends string> = Path extends `${infer Key}.${infer Rest}` ? Key extends keyof Type ? Type[Key] extends Record<PropertyKey, unknown> ? DeepValue<Type[Key], Rest> : never : never : Path extends keyof Type ? Type[Path] : never;
5
- export type ExtractPlaceholders<String extends string> = String extends `${infer _Start}\${${infer Param}}${infer Rest}` ? Param | ExtractPlaceholders<Rest> : never;
5
+ export type ExtractPlaceholders<String extends string, Acc extends string = never> = String extends `${infer _Start}\${${infer Param}}${infer Rest}` ? ExtractPlaceholders<Rest, Acc | Param> : Acc;
6
6
  export interface Translation {
7
7
  [key: string]: string | Translation | (string | Translation)[];
8
8
  }
@@ -13,19 +13,20 @@ export interface TranslateOptions<Translation> {
13
13
  } : undefined;
14
14
  }
15
15
  export interface I18n {
16
- path: string;
17
16
  cookie?: string;
18
17
  header?: string;
19
18
  language: string;
20
19
  languages: string[];
20
+ path: string;
21
21
  translations: Translation;
22
22
  }
23
- export declare const replace: <Translation extends string>(translation: Translation, replace: { [Key in ExtractPlaceholders<Translation>]?: string; }) => Translation;
24
- export declare const load: (path: string, language: string, options?: Pick<I18n, "cookie" | "header"> & {
23
+ export declare const loadTranslations: (directory: string) => Promise<Translation>;
24
+ export declare const replace: <Translation extends string>(translation: Translation, replacements: { [Key in ExtractPlaceholders<Translation>]?: string; }) => Translation;
25
+ export declare const load: (path: string, language: string, { cookie, header, types, }?: Pick<I18n, "cookie" | "header"> & {
25
26
  types: boolean;
26
27
  }) => Promise<void>;
27
28
  export declare const getLanguage: () => string;
28
- export declare const translate: <const Path extends DeepPaths<Cudenix.i18n.Translations>>(path: Path, { language, replace, }?: TranslateOptions<DeepValue<Cudenix.i18n.Translations, Path>>) => DeepValue<Cudenix.i18n.Translations, Path>;
29
+ export declare const translate: <const Path extends DeepPaths<Cudenix.i18n.Translations>>(path: Path, { language, replace: replacements, }?: TranslateOptions<DeepValue<Cudenix.i18n.Translations, Path>>) => DeepValue<Cudenix.i18n.Translations, Path>;
29
30
  export declare const i18n: () => import("../../../core/module.js").Module<import("../../../index.js").MergeErrors<{}, import("../../../index.js").TransformError<never>>, "/", {}, {}, import("../../../index.js").MergeSuccesses<{}, import("../../../index.js").TransformSuccess<never>>, {
30
31
  inputs: NonNullable<unknown>;
31
32
  outputs: NonNullable<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/i18n/i18n.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,SAAS,CAAC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI;KACjE,GAAG,IAAI,MAAM,IAAI,GAAG,GAAG,SAAS,MAAM,GACpC,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAC7C,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAC3C,GAAG,GAAG,EAAE,GACT,KAAK;CACR,CAAC,MAAM,IAAI,CAAC,CAAC;AAEd,MAAM,MAAM,SAAS,CACpB,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EACzC,IAAI,SAAS,MAAM,IAChB,IAAI,SAAS,GAAG,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GAC1C,GAAG,SAAS,MAAM,IAAI,GACrB,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAC7C,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAC1B,KAAK,GACN,KAAK,GACN,IAAI,SAAS,MAAM,IAAI,GACtB,IAAI,CAAC,IAAI,CAAC,GACV,KAAK,CAAC;AAEV,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,MAAM,IACpD,MAAM,SAAS,GAAG,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GAC5D,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,GACjC,KAAK,CAAC;AAEV,MAAM,WAAW,WAAW;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;CAC/D;AAED,MAAM,WAAW,gBAAgB,CAAC,WAAW;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,SAAS,MAAM,GACjC;SACC,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM;KAClD,GACA,SAAS,CAAC;CACb;AAED,MAAM,WAAW,IAAI;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,WAAW,CAAC;CAC1B;AA0CD,eAAO,MAAM,OAAO,GAAI,WAAW,SAAS,MAAM,EACjD,aAAa,WAAW,EACxB,SAAS,GACP,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAClD,KAmBkB,WACnB,CAAC;AAEF,eAAO,MAAM,IAAI,GAChB,MAAM,MAAM,EACZ,UAAU,MAAM,EAChB,UAAU,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG;IAC3C,KAAK,EAAE,OAAO,CAAC;CACf,kBAuCD,CAAC;AAEF,eAAO,MAAM,WAAW,cAKvB,CAAC;AAEF,eAAO,MAAM,SAAS,GACrB,KAAK,CAAC,IAAI,SAAS,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAEvD,MAAM,IAAI,EACV,yBAGG,gBAAgB,CAClB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAC5B,KACb,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAuC3C,CAAC;AAEF,eAAO,MAAM,IAAI;;;EAgBhB,CAAC"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/i18n/i18n.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,SAAS,CAAC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI;KACjE,GAAG,IAAI,MAAM,IAAI,GAAG,GAAG,SAAS,MAAM,GACpC,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAC7C,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAC3C,GAAG,GAAG,EAAE,GACT,KAAK;CACR,CAAC,MAAM,IAAI,CAAC,CAAC;AAEd,MAAM,MAAM,SAAS,CACpB,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EACzC,IAAI,SAAS,MAAM,IAChB,IAAI,SAAS,GAAG,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GAC1C,GAAG,SAAS,MAAM,IAAI,GACrB,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAC7C,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAC1B,KAAK,GACN,KAAK,GACN,IAAI,SAAS,MAAM,IAAI,GACtB,IAAI,CAAC,IAAI,CAAC,GACV,KAAK,CAAC;AAEV,MAAM,MAAM,mBAAmB,CAC9B,MAAM,SAAS,MAAM,EACrB,GAAG,SAAS,MAAM,GAAG,KAAK,IACvB,MAAM,SAAS,GAAG,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GAChE,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,CAAC,GACtC,GAAG,CAAC;AAEP,MAAM,WAAW,WAAW;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;CAC/D;AAED,MAAM,WAAW,gBAAgB,CAAC,WAAW;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,SAAS,MAAM,GACjC;SACC,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM;KAClD,GACA,SAAS,CAAC;CACb;AAED,MAAM,WAAW,IAAI;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,WAAW,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,GAAU,WAAW,MAAM,yBAgDvD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,WAAW,SAAS,MAAM,EACjD,aAAa,WAAW,EACxB,cAAc,GACZ,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAClD,KA8CgB,WACjB,CAAC;AAEF,eAAO,MAAM,IAAI,GAChB,MAAM,MAAM,EACZ,UAAU,MAAM,EAChB,6BAIG,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG;IACpC,KAAK,EAAE,OAAO,CAAC;CACM,kBA+CtB,CAAC;AAEF,eAAO,MAAM,WAAW,cAKvB,CAAC;AAEF,eAAO,MAAM,SAAS,GACrB,KAAK,CAAC,IAAI,SAAS,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAEvD,MAAM,IAAI,EACV,uCAGG,gBAAgB,CAClB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAC5B,+CAiCf,CAAC;AAEF,eAAO,MAAM,IAAI;;;EAuBhB,CAAC"}
@@ -1,15 +1,16 @@
1
1
  import { readdir } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { module } from "../../../core/module.js";
4
- import { getRequestContext } from "../../../ecosystem/modules/global-request-context/global-request-context.js";
5
- import { getCookies } from "../../../utils/cookies/get/cookies.js";
6
- import { Empty } from "../../../utils/objects/empty.js";
7
- const store = new Empty();
8
- const loadTranslations = async (directory) => {
4
+ import { getRequestContext } from "../../../ecosystem/plugins/global-request-context/global-request-context.js";
5
+ import { selectHeader } from "../../../utils/headers/select.js";
6
+ import { Empty, FreezeEmpty } from "../../../utils/objects/empty.js";
7
+ const STORE = new Empty();
8
+ export const loadTranslations = async (directory) => {
9
9
  const result = new Empty();
10
10
  const entries = await readdir(directory, {
11
11
  withFileTypes: true,
12
12
  });
13
+ const promises = [];
13
14
  for (let i = 0; i < entries.length; i++) {
14
15
  const entry = entries[i];
15
16
  if (!entry) {
@@ -17,33 +18,61 @@ const loadTranslations = async (directory) => {
17
18
  }
18
19
  const fullPath = join(directory, entry.name);
19
20
  if (entry.isDirectory()) {
20
- result[entry.name] = await loadTranslations(fullPath);
21
+ promises.push(loadTranslations(fullPath).then((data) => {
22
+ result[entry.name] = data;
23
+ }));
21
24
  continue;
22
25
  }
23
26
  if (entry.isFile() && entry.name.endsWith(".json")) {
24
- const data = await Bun.file(fullPath).json();
25
- if (entry.name === "index.json") {
26
- Object.assign(result, data);
27
- continue;
28
- }
29
- result[entry.name.slice(0, -5)] = data;
27
+ promises.push(Bun.file(fullPath)
28
+ .json()
29
+ .then((data) => {
30
+ if (entry.name === "index.json") {
31
+ Object.assign(result, data);
32
+ return;
33
+ }
34
+ result[entry.name.slice(0, -5)] = data;
35
+ }));
30
36
  }
31
37
  }
38
+ await Promise.all(promises);
32
39
  return result;
33
40
  };
34
- export const replace = (translation, replace) => {
35
- const keys = Object.keys(replace);
36
- let replaced = translation;
37
- for (let i = 0; i < keys.length; i++) {
38
- const key = keys[i];
39
- if (!key) {
40
- continue;
41
+ export const replace = (translation, replacements) => {
42
+ const length = translation.length;
43
+ let result = "";
44
+ let i = 0;
45
+ while (i < length) {
46
+ if (translation.charCodeAt(i) === 0x24 &&
47
+ i + 1 < length &&
48
+ translation.charCodeAt(i + 1) === 0x7b) {
49
+ const start = i + 2;
50
+ const closingIdx = translation.indexOf("}", start);
51
+ if (closingIdx !== -1 && closingIdx !== start) {
52
+ const key = translation.slice(start, closingIdx);
53
+ const value = replacements[key];
54
+ if (value !== undefined) {
55
+ result += value;
56
+ i = closingIdx + 1;
57
+ continue;
58
+ }
59
+ }
60
+ result += translation[i];
61
+ i++;
62
+ }
63
+ else {
64
+ const nextDollar = translation.indexOf("${", i);
65
+ if (nextDollar === -1) {
66
+ result += translation.slice(i);
67
+ break;
68
+ }
69
+ result += translation.slice(i, nextDollar);
70
+ i = nextDollar;
41
71
  }
42
- replaced = replaced.replaceAll(`\${${key}}`, replace[key] ?? "");
43
72
  }
44
- return replaced;
73
+ return result;
45
74
  };
46
- export const load = async (path, language, options) => {
75
+ export const load = async (path, language, { cookie, header, types, } = FreezeEmpty) => {
47
76
  const directories = await readdir(path, {
48
77
  withFileTypes: true,
49
78
  });
@@ -54,29 +83,35 @@ export const load = async (path, language, options) => {
54
83
  .map((directory) => {
55
84
  return directory.name;
56
85
  });
57
- store.cookie = options?.cookie;
58
- store.header = options?.header;
59
- store.language = language;
60
- store.languages = languages;
61
- store.path = path;
62
- store.translations = new Empty();
86
+ Object.assign(STORE, {
87
+ cookie,
88
+ header,
89
+ language,
90
+ languages,
91
+ path,
92
+ translations: new Empty(),
93
+ });
94
+ const promises = [];
63
95
  for (let i = 0; i < languages.length; i++) {
64
96
  const language = languages[i];
65
97
  if (!language) {
66
98
  continue;
67
99
  }
68
- store.translations[language] = await loadTranslations(join(path, language));
100
+ promises.push(loadTranslations(join(path, language)).then((translations) => {
101
+ STORE.translations[language] = translations;
102
+ }));
69
103
  }
70
- if (options?.types !== false) {
71
- await Bun.write(join(path, "types.d.ts"), `namespace Cudenix.i18n { interface Translations ${JSON.stringify(store.translations[language])}; };`);
104
+ await Promise.all(promises);
105
+ if (types !== false) {
106
+ await Bun.write(join(path, "types.d.ts"), `namespace Cudenix.i18n { interface Translations ${JSON.stringify(STORE.translations[language])}; };`);
72
107
  }
73
108
  };
74
109
  export const getLanguage = () => {
75
- return (getRequestContext()?.store.i18n
76
- ?.language ?? store.language);
110
+ return (getRequestContext()?.store.i18n?.language ??
111
+ STORE.language);
77
112
  };
78
- export const translate = (path, { language, replace, } = new Empty()) => {
79
- const translations = store.translations[language ?? getLanguage()];
113
+ export const translate = (path, { language, replace: replacements, } = FreezeEmpty) => {
114
+ const translations = STORE.translations[language ?? getLanguage()];
80
115
  if (!translations) {
81
116
  return path;
82
117
  }
@@ -87,29 +122,27 @@ export const translate = (path, { language, replace, } = new Empty()) => {
87
122
  if (!key) {
88
123
  continue;
89
124
  }
90
- translation = translation[key] ?? "";
91
- }
92
- if (replace) {
93
- const keys = Object.keys(replace);
94
- for (let i = 0; i < keys.length; i++) {
95
- const key = keys[i];
96
- if (!key) {
97
- continue;
98
- }
99
- translation = translation.replaceAll(`\${${key}}`, replace[key] ?? "");
125
+ const next = translation[key];
126
+ if (next === undefined) {
127
+ return path;
100
128
  }
129
+ translation = next;
130
+ }
131
+ if (replacements && typeof translation === "string") {
132
+ translation = replace(translation, replacements);
101
133
  }
102
134
  return translation;
103
135
  };
104
136
  export const i18n = () => {
105
- return module().middleware(({ request: { raw }, store: _store }, next) => {
106
- const language = getCookies(raw.headers)[store.cookie ?? "Accept-Language"] ??
107
- raw.headers.get(store.header ?? "Accept-Language") ??
108
- getLanguage();
109
- _store.i18n = {
110
- language: store.languages.indexOf(language) !== -1
111
- ? language
112
- : getLanguage(),
137
+ return module().middleware(({ request: { raw }, response: { cookies }, store }, next) => {
138
+ store.i18n = {
139
+ language: STORE.languages.length <= 1
140
+ ? STORE.language
141
+ : (selectHeader((STORE.cookie
142
+ ? cookies.get(STORE.cookie)
143
+ : undefined) ??
144
+ raw.headers.get(STORE.header ?? "accept-language") ??
145
+ STORE.language, STORE.languages, true) ?? STORE.language),
113
146
  };
114
147
  return next();
115
148
  });
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/i18n/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/i18n/i18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "../../../ecosystem/plugins/i18n/i18n.js";
2
+ export type * from "../../../ecosystem/plugins/i18n/types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/i18n/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,mBAAmB,gCAAgC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../../../ecosystem/plugins/i18n/i18n.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/i18n/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "../../../ecosystem/plugins/openapi/openapi.js";
2
+ export * from "../../../ecosystem/plugins/openapi/scalar.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/openapi/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "../../../ecosystem/plugins/openapi/openapi.js";
2
+ export * from "../../../ecosystem/plugins/openapi/scalar.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/openapi/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import type { App } from "../../../core/app.js";
2
- export interface OpenapiPluginOptions {
2
+ interface OpenapiPluginOptions {
3
3
  description?: string;
4
4
  title?: string;
5
5
  version?: string;
6
6
  }
7
- export interface OpenapiModuleOptions {
7
+ interface OpenapiModuleOptions {
8
8
  path?: `/${string}`;
9
9
  }
10
10
  export declare const plugin: (toJsonSchema: (schema: any) => Record<string, any>, { description, title, version, }?: OpenapiPluginOptions) => (this: App) => string;
@@ -24,7 +24,7 @@ export declare const openapi: ({ path }?: OpenapiModuleOptions) => import("../..
24
24
  method: "GET";
25
25
  path: `/${string}/json`;
26
26
  request: import("../../../index.js").MergeInferValidatorRequest<{}, import("../../../index.js").DeepInferValidatorInput<Partial<import("../../../index.js").ValidatorRequest<unknown, unknown, unknown, unknown, unknown>>>>;
27
- response: import("../../../core/success.js").Success<unknown, 200, true>;
27
+ response: import("../../../core/success.js").Success<string, 200, false>;
28
28
  };
29
29
  };
30
30
  };
@@ -32,4 +32,5 @@ export declare const openapi: ({ path }?: OpenapiModuleOptions) => import("../..
32
32
  inputs: NonNullable<unknown>;
33
33
  outputs: NonNullable<unknown>;
34
34
  }>;
35
+ export {};
35
36
  //# sourceMappingURL=openapi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/openapi/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAMtC,MAAM,WAAW,oBAAoB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;CACpB;AAaD,eAAO,MAAM,MAAM,GAClB,cAAc,CAAC,MAAM,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClD,mCAIG,oBAAkC,MAEpB,MAAM,GAAG,WAuN1B,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,WAAU,oBAAkC;;;;;;;;;;;;;;;;;;;;;;;EAuBnE,CAAC"}
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../../../src/ecosystem/plugins/openapi/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAYtC,UAAU,oBAAoB;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC7B,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,MAAM,GAClB,cAAc,CAAC,MAAM,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClD,mCAIG,oBAAkC,MAEpB,MAAM,GAAG,WAyN1B,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,WAAU,oBAAkC;;;;;;;;;;;;;;;;;;;;;;;EAmCnE,CAAC"}
@@ -1,42 +1,30 @@
1
1
  import { module } from "../../../core/module.js";
2
2
  import { success } from "../../../core/success.js";
3
3
  import { scalar } from "../../../ecosystem/plugins/openapi/scalar.js";
4
- import { Empty } from "../../../utils/objects/empty.js";
5
- const endsWithQuestionMarkRegexp = /\?$/;
6
- const endsWithSRegexp = /s$/;
7
- const startsWithEllipsisRegexp = /^\.{3}/;
8
- const startsWithSlashRegexp = /^\/{/;
9
- const contentTypes = [
4
+ import { Empty, FreezeEmpty } from "../../../utils/objects/empty.js";
5
+ const CONTENT_TYPES = [
10
6
  "application/json",
11
7
  "multipart/form-data",
12
8
  "text/plain",
13
9
  ];
14
- export const plugin = (toJsonSchema, { description = "Cudenix Documentation", title = "Cudenix Documentation", version = "0.0.1", } = new Empty()) => {
10
+ export const plugin = (toJsonSchema, { description = "Cudenix Documentation", title = "Cudenix Documentation", version = "0.0.1", } = FreezeEmpty) => {
15
11
  return function () {
16
12
  const paths = new Empty();
17
- const methods = Array.from(this.endpoints.keys());
18
13
  const tags = new Set();
19
- for (let i = 0; i < methods.length; i++) {
20
- const method = methods[i];
21
- if (!method) {
14
+ for (const [method, methodData] of this.methods) {
15
+ if (!methodData) {
22
16
  continue;
23
17
  }
24
- const endpoints = this.endpoints.get(method);
25
- if (!endpoints) {
26
- continue;
27
- }
28
- for (let j = 0; j < endpoints.length; j++) {
29
- const endpoint = endpoints[j];
18
+ for (let j = 0; j < methodData.endpoints.length; j++) {
19
+ const endpoint = methodData.endpoints[j];
30
20
  if (!endpoint) {
31
21
  continue;
32
22
  }
33
- const path = endpoint.path
34
- .replaceAll(/:(\w+)/g, "{$1}")
35
- .replaceAll(/\.{3}(\w+)/g, "{$1}");
23
+ const path = endpoint.path.replaceAll(/(?::|\.{3})(\w+)\??/g, "{$1}");
36
24
  const operation = new Empty();
37
25
  for (let k = 0; k < endpoint.chain.length; k++) {
38
26
  const link = endpoint.chain[k];
39
- if (link?.type !== "VALIDATOR") {
27
+ if (!link || link.type !== "VALIDATOR") {
40
28
  continue;
41
29
  }
42
30
  const keys = Object.keys(link.request);
@@ -46,7 +34,11 @@ export const plugin = (toJsonSchema, { description = "Cudenix Documentation", ti
46
34
  continue;
47
35
  }
48
36
  if (key !== "body") {
49
- const _in = key.replace(endsWithSRegexp, "");
37
+ const _in = key === "params"
38
+ ? "path"
39
+ : key.endsWith("s")
40
+ ? key.slice(0, -1)
41
+ : key;
50
42
  const schema = toJsonSchema(link.request[key]);
51
43
  operation.parameters ??= [];
52
44
  if (schema.type === "object") {
@@ -60,7 +52,7 @@ export const plugin = (toJsonSchema, { description = "Cudenix Documentation", ti
60
52
  operation.parameters.push({
61
53
  in: _in,
62
54
  name: key,
63
- required: schema.required?.includes(key) ?? false,
55
+ required: (schema.required?.indexOf(key) ?? -1) !== -1,
64
56
  schema: property,
65
57
  });
66
58
  }
@@ -75,13 +67,14 @@ export const plugin = (toJsonSchema, { description = "Cudenix Documentation", ti
75
67
  operation.requestBody ??= {
76
68
  content: new Empty(),
77
69
  };
78
- for (let m = 0; m < contentTypes.length; m++) {
79
- const contentType = contentTypes[m];
70
+ const bodySchema = toJsonSchema(link.request[key]);
71
+ for (let m = 0; m < CONTENT_TYPES.length; m++) {
72
+ const contentType = CONTENT_TYPES[m];
80
73
  if (!contentType) {
81
74
  continue;
82
75
  }
83
76
  operation.requestBody.content[contentType] = {
84
- schema: toJsonSchema(link.request[key]),
77
+ schema: bodySchema,
85
78
  };
86
79
  }
87
80
  }
@@ -93,9 +86,9 @@ export const plugin = (toJsonSchema, { description = "Cudenix Documentation", ti
93
86
  if (!param) {
94
87
  continue;
95
88
  }
96
- const name = param
97
- .replaceAll(/^[:.]*/g, "")
98
- .replace("?", "");
89
+ const name = param.slice(param.charCodeAt(0) === 46 ? 3 : 1, param.charCodeAt(param.length - 1) === 63
90
+ ? param.length - 1
91
+ : param.length);
99
92
  if (operation.parameters?.some((parameter) => {
100
93
  return (parameter.in === "path" &&
101
94
  parameter.name === name);
@@ -106,9 +99,9 @@ export const plugin = (toJsonSchema, { description = "Cudenix Documentation", ti
106
99
  operation.parameters.push({
107
100
  in: "path",
108
101
  name,
109
- required: !endsWithQuestionMarkRegexp.test(param),
102
+ required: !param.endsWith("?"),
110
103
  schema: {
111
- pattern: startsWithEllipsisRegexp.test(param)
104
+ pattern: param.startsWith("...")
112
105
  ? ".*"
113
106
  : undefined,
114
107
  type: "string",
@@ -116,13 +109,12 @@ export const plugin = (toJsonSchema, { description = "Cudenix Documentation", ti
116
109
  });
117
110
  }
118
111
  }
119
- if (!startsWithSlashRegexp.test(path)) {
112
+ if (!path.startsWith("/{")) {
120
113
  const tag = path.split("/")[1];
121
- if (!tag) {
122
- continue;
114
+ if (tag) {
115
+ operation.tags = [tag];
116
+ tags.add(tag);
123
117
  }
124
- operation.tags = [tag];
125
- tags.add(tag);
126
118
  }
127
119
  paths[path] ??= new Empty();
128
120
  paths[path][method.toLowerCase()] =
@@ -137,24 +129,37 @@ export const plugin = (toJsonSchema, { description = "Cudenix Documentation", ti
137
129
  },
138
130
  openapi: "3.1.0",
139
131
  paths,
140
- tags: Array.from(tags).map((tag) => ({
141
- name: tag,
142
- })),
132
+ tags: Array.from(tags, (tag) => {
133
+ return {
134
+ name: tag,
135
+ };
136
+ }),
143
137
  });
144
138
  return "openapi";
145
139
  };
146
140
  };
147
- export const openapi = ({ path } = new Empty()) => {
148
- const url = `${path ?? "/openapi"}`;
141
+ export const openapi = ({ path } = FreezeEmpty) => {
142
+ const url = (path ?? "/openapi");
143
+ let cachedHtml;
144
+ let cachedJson;
149
145
  return module()
150
146
  .route("GET", url, ({ memory, response: { headers } }) => {
151
147
  headers.set("Content-Type", "text/html");
152
- return success(scalar("Cudenix Documentation", JSON.stringify(memory.get("openapi")), JSON.stringify({})), {
148
+ if (!cachedHtml) {
149
+ cachedJson ??= JSON.stringify(memory.get("openapi"));
150
+ cachedHtml = scalar("Cudenix Documentation", cachedJson, JSON.stringify({}));
151
+ }
152
+ return success(cachedHtml, {
153
153
  transform: false,
154
154
  });
155
155
  })
156
156
  .route("GET", `${url}/json`, ({ memory }) => {
157
- return success(memory.get("openapi"));
157
+ if (!cachedJson) {
158
+ cachedJson = JSON.stringify(memory.get("openapi"));
159
+ }
160
+ return success(cachedJson, {
161
+ transform: false,
162
+ });
158
163
  });
159
164
  };
160
165
  //# sourceMappingURL=openapi.js.map