hermium 0.1.9 → 0.2.0

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 (209) hide show
  1. package/README.md +56 -0
  2. package/bin/hermium.mjs +185 -164
  3. package/dist/api.mjs +3513 -0
  4. package/dist/public/assets/css/index-Dfs9RUU9.css +1 -0
  5. package/dist/public/assets/css/styles-B8p6jk5Z.css +1 -0
  6. package/dist/public/assets/js/ChatInputBlock-Bw7AL70H.js +1 -0
  7. package/dist/public/assets/js/MarkdownMessage-8d7Y6VL-.js +1 -0
  8. package/dist/public/assets/js/base-ui-BvQbAt_1.js +1 -0
  9. package/dist/public/assets/js/chat._sessionId-BG6lVraH.js +1 -0
  10. package/dist/public/assets/js/chat.index-D2zdMPTT.js +1 -0
  11. package/dist/public/assets/js/index-C0AK45FU.js +60 -0
  12. package/dist/public/assets/js/index-Cx5En4FK.js +1 -0
  13. package/dist/public/assets/js/memory-CeSRdTkW.js +3 -0
  14. package/dist/public/assets/js/router-8uDKazL-.js +1 -0
  15. package/dist/public/assets/js/settings-Bc3Y5zXO.js +1 -0
  16. package/dist/public/assets/js/skills-DZv7sA_5.js +1 -0
  17. package/dist/public/assets/js/theme-CPkdkpaj.js +1 -0
  18. package/dist/public/assets/js/usage-DXQsT9_b.js +1 -0
  19. package/dist/public/assets/woff2/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  20. package/dist/public/assets/woff2/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  21. package/dist/public/assets/woff2/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  22. package/dist/public/assets/woff2/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  23. package/dist/public/assets/woff2/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  24. package/dist/public/favicon.ico +0 -0
  25. package/dist/public/logo.png +0 -0
  26. package/package.json +1 -1
  27. package/dist/public/assets/IconAlertCircle-BHkmI3j7.js +0 -1
  28. package/dist/public/assets/IconAlertTriangle-wCJudlVg.js +0 -1
  29. package/dist/public/assets/IconCheck-CFuEh_p7.js +0 -1
  30. package/dist/public/assets/IconLoader2-BIx3OuF9.js +0 -1
  31. package/dist/public/assets/IconRefresh-Dgm93w3T.js +0 -1
  32. package/dist/public/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
  33. package/dist/public/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
  34. package/dist/public/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
  35. package/dist/public/assets/index-Bbz3abmO.js +0 -14
  36. package/dist/public/assets/index-CWUaRwcE.js +0 -1
  37. package/dist/public/assets/index-CinLq3cd.js +0 -1
  38. package/dist/public/assets/index-CrQs9n6q.js +0 -29
  39. package/dist/public/assets/index-CtacpN3I.js +0 -1
  40. package/dist/public/assets/index-DY7aE-9s.js +0 -2
  41. package/dist/public/assets/index-DkYGodJj.js +0 -94
  42. package/dist/public/assets/index-DvDLadUx.js +0 -1
  43. package/dist/public/assets/index-U6RcWedt.js +0 -1
  44. package/dist/public/assets/index-_6iFZ0fh.js +0 -1
  45. package/dist/public/assets/index-enFS26SU.js +0 -1
  46. package/dist/public/assets/input-eNcwlDHp.js +0 -1
  47. package/dist/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  48. package/dist/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  49. package/dist/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  50. package/dist/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  51. package/dist/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  52. package/dist/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  53. package/dist/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  54. package/dist/public/assets/queries-iHRgZzw2.js +0 -1
  55. package/dist/public/assets/styles-KcflDlA_.css +0 -1
  56. package/dist/public/assets/switch-B1DcZLwL.js +0 -1
  57. package/dist/public/assets/syntax-highlighter-DWPF-A_h.js +0 -6
  58. package/dist/public/assets/textarea-Di_syYTS.js +0 -1
  59. package/dist/public/favicon.png +0 -0
  60. package/dist/public/nous-logo.png +0 -0
  61. package/dist/server/index.mjs +0 -244
  62. package/dist/web-server/__23tanstack-start-plugin-adapters-Cwee5PKy.mjs +0 -6
  63. package/dist/web-server/_chunks/ssr-renderer.mjs +0 -22
  64. package/dist/web-server/_libs/babel__runtime.mjs +0 -237
  65. package/dist/web-server/_libs/bail.mjs +0 -8
  66. package/dist/web-server/_libs/base-ui__react.mjs +0 -9554
  67. package/dist/web-server/_libs/base-ui__utils.mjs +0 -1101
  68. package/dist/web-server/_libs/ccount.mjs +0 -16
  69. package/dist/web-server/_libs/character-entities-legacy.mjs +0 -111
  70. package/dist/web-server/_libs/character-entities.mjs +0 -2130
  71. package/dist/web-server/_libs/character-reference-invalid.mjs +0 -33
  72. package/dist/web-server/_libs/class-variance-authority.mjs +0 -44
  73. package/dist/web-server/_libs/clsx.mjs +0 -16
  74. package/dist/web-server/_libs/comma-separated-tokens.mjs +0 -31
  75. package/dist/web-server/_libs/cookie-es.mjs +0 -44
  76. package/dist/web-server/_libs/croner.mjs +0 -1
  77. package/dist/web-server/_libs/crossws.mjs +0 -1
  78. package/dist/web-server/_libs/decode-named-character-reference+[...].mjs +0 -8
  79. package/dist/web-server/_libs/devlop.mjs +0 -8
  80. package/dist/web-server/_libs/escape-string-regexp.mjs +0 -9
  81. package/dist/web-server/_libs/estree-util-is-identifier-name.mjs +0 -11
  82. package/dist/web-server/_libs/extend.mjs +0 -97
  83. package/dist/web-server/_libs/fault.mjs +0 -1
  84. package/dist/web-server/_libs/floating-ui__core.mjs +0 -663
  85. package/dist/web-server/_libs/floating-ui__dom.mjs +0 -624
  86. package/dist/web-server/_libs/floating-ui__react-dom.mjs +0 -279
  87. package/dist/web-server/_libs/floating-ui__utils.mjs +0 -322
  88. package/dist/web-server/_libs/format.mjs +0 -1
  89. package/dist/web-server/_libs/h3.mjs +0 -408
  90. package/dist/web-server/_libs/hast-util-parse-selector.mjs +0 -39
  91. package/dist/web-server/_libs/hast-util-to-jsx-runtime.mjs +0 -388
  92. package/dist/web-server/_libs/hast-util-whitespace.mjs +0 -10
  93. package/dist/web-server/_libs/hastscript.mjs +0 -200
  94. package/dist/web-server/_libs/highlight.js.mjs +0 -1
  95. package/dist/web-server/_libs/hookable.mjs +0 -1
  96. package/dist/web-server/_libs/html-url-attributes.mjs +0 -26
  97. package/dist/web-server/_libs/inline-style-parser.mjs +0 -142
  98. package/dist/web-server/_libs/is-alphabetical.mjs +0 -7
  99. package/dist/web-server/_libs/is-alphanumerical.mjs +0 -8
  100. package/dist/web-server/_libs/is-decimal.mjs +0 -7
  101. package/dist/web-server/_libs/is-hexadecimal.mjs +0 -7
  102. package/dist/web-server/_libs/is-plain-obj.mjs +0 -10
  103. package/dist/web-server/_libs/isbot.mjs +0 -21
  104. package/dist/web-server/_libs/longest-streak.mjs +0 -25
  105. package/dist/web-server/_libs/lowlight.mjs +0 -1
  106. package/dist/web-server/_libs/markdown-table.mjs +0 -142
  107. package/dist/web-server/_libs/mdast-util-find-and-replace.mjs +0 -109
  108. package/dist/web-server/_libs/mdast-util-from-markdown.mjs +0 -717
  109. package/dist/web-server/_libs/mdast-util-gfm-autolink-literal+[...].mjs +0 -156
  110. package/dist/web-server/_libs/mdast-util-gfm-footnote.mjs +0 -117
  111. package/dist/web-server/_libs/mdast-util-gfm-strikethrough.mjs +0 -54
  112. package/dist/web-server/_libs/mdast-util-gfm-table.mjs +0 -157
  113. package/dist/web-server/_libs/mdast-util-gfm-task-list-item.mjs +0 -77
  114. package/dist/web-server/_libs/mdast-util-gfm.mjs +0 -29
  115. package/dist/web-server/_libs/mdast-util-phrasing.mjs +0 -30
  116. package/dist/web-server/_libs/mdast-util-to-hast.mjs +0 -710
  117. package/dist/web-server/_libs/mdast-util-to-markdown.mjs +0 -798
  118. package/dist/web-server/_libs/mdast-util-to-string.mjs +0 -38
  119. package/dist/web-server/_libs/micromark-core-commonmark.mjs +0 -2259
  120. package/dist/web-server/_libs/micromark-extension-gfm-autolink-literal+[...].mjs +0 -344
  121. package/dist/web-server/_libs/micromark-extension-gfm-footnote+[...].mjs +0 -279
  122. package/dist/web-server/_libs/micromark-extension-gfm-strikethrough+[...].mjs +0 -98
  123. package/dist/web-server/_libs/micromark-extension-gfm-table.mjs +0 -491
  124. package/dist/web-server/_libs/micromark-extension-gfm-tagfilter+[...].mjs +0 -1
  125. package/dist/web-server/_libs/micromark-extension-gfm-task-list-item+[...].mjs +0 -77
  126. package/dist/web-server/_libs/micromark-extension-gfm.mjs +0 -18
  127. package/dist/web-server/_libs/micromark-factory-destination.mjs +0 -94
  128. package/dist/web-server/_libs/micromark-factory-label.mjs +0 -63
  129. package/dist/web-server/_libs/micromark-factory-space.mjs +0 -24
  130. package/dist/web-server/_libs/micromark-factory-title.mjs +0 -65
  131. package/dist/web-server/_libs/micromark-factory-whitespace.mjs +0 -22
  132. package/dist/web-server/_libs/micromark-util-character.mjs +0 -44
  133. package/dist/web-server/_libs/micromark-util-chunked.mjs +0 -36
  134. package/dist/web-server/_libs/micromark-util-classify-character+[...].mjs +0 -12
  135. package/dist/web-server/_libs/micromark-util-combine-extensions+[...].mjs +0 -41
  136. package/dist/web-server/_libs/micromark-util-decode-numeric-character-reference+[...].mjs +0 -19
  137. package/dist/web-server/_libs/micromark-util-decode-string.mjs +0 -21
  138. package/dist/web-server/_libs/micromark-util-encode.mjs +0 -1
  139. package/dist/web-server/_libs/micromark-util-html-tag-name.mjs +0 -69
  140. package/dist/web-server/_libs/micromark-util-normalize-identifier+[...].mjs +0 -6
  141. package/dist/web-server/_libs/micromark-util-resolve-all.mjs +0 -15
  142. package/dist/web-server/_libs/micromark-util-sanitize-uri.mjs +0 -41
  143. package/dist/web-server/_libs/micromark-util-subtokenize.mjs +0 -346
  144. package/dist/web-server/_libs/micromark.mjs +0 -906
  145. package/dist/web-server/_libs/ocache.mjs +0 -1
  146. package/dist/web-server/_libs/ohash.mjs +0 -1
  147. package/dist/web-server/_libs/parse-entities.mjs +0 -245
  148. package/dist/web-server/_libs/property-information.mjs +0 -1210
  149. package/dist/web-server/_libs/react-dom.mjs +0 -10779
  150. package/dist/web-server/_libs/react-markdown.mjs +0 -147
  151. package/dist/web-server/_libs/react-syntax-highlighter.mjs +0 -941
  152. package/dist/web-server/_libs/react.mjs +0 -513
  153. package/dist/web-server/_libs/refractor.mjs +0 -2425
  154. package/dist/web-server/_libs/remark-gfm.mjs +0 -20
  155. package/dist/web-server/_libs/remark-parse.mjs +0 -19
  156. package/dist/web-server/_libs/remark-rehype.mjs +0 -21
  157. package/dist/web-server/_libs/reselect.mjs +0 -1
  158. package/dist/web-server/_libs/rou3.mjs +0 -8
  159. package/dist/web-server/_libs/seroval-plugins.mjs +0 -58
  160. package/dist/web-server/_libs/seroval.mjs +0 -1775
  161. package/dist/web-server/_libs/space-separated-tokens.mjs +0 -11
  162. package/dist/web-server/_libs/srvx.mjs +0 -781
  163. package/dist/web-server/_libs/style-to-js.mjs +0 -72
  164. package/dist/web-server/_libs/style-to-object.mjs +0 -38
  165. package/dist/web-server/_libs/tabler__icons-react.mjs +0 -230
  166. package/dist/web-server/_libs/tanstack__history.mjs +0 -204
  167. package/dist/web-server/_libs/tanstack__query-core.mjs +0 -2552
  168. package/dist/web-server/_libs/tanstack__react-query.mjs +0 -190
  169. package/dist/web-server/_libs/tanstack__react-router.mjs +0 -1120
  170. package/dist/web-server/_libs/tanstack__react-store.mjs +0 -2
  171. package/dist/web-server/_libs/tanstack__router-core.mjs +0 -4288
  172. package/dist/web-server/_libs/tanstack__store.mjs +0 -1
  173. package/dist/web-server/_libs/trim-lines.mjs +0 -41
  174. package/dist/web-server/_libs/trough.mjs +0 -85
  175. package/dist/web-server/_libs/ufo.mjs +0 -54
  176. package/dist/web-server/_libs/unctx.mjs +0 -1
  177. package/dist/web-server/_libs/ungap__structured-clone.mjs +0 -224
  178. package/dist/web-server/_libs/unified.mjs +0 -661
  179. package/dist/web-server/_libs/unist-util-is.mjs +0 -100
  180. package/dist/web-server/_libs/unist-util-position.mjs +0 -27
  181. package/dist/web-server/_libs/unist-util-stringify-position.mjs +0 -27
  182. package/dist/web-server/_libs/unist-util-visit-parents.mjs +0 -83
  183. package/dist/web-server/_libs/unist-util-visit.mjs +0 -24
  184. package/dist/web-server/_libs/unstorage.mjs +0 -1
  185. package/dist/web-server/_libs/use-sync-external-store.mjs +0 -139
  186. package/dist/web-server/_libs/vfile-message.mjs +0 -138
  187. package/dist/web-server/_libs/vfile.mjs +0 -467
  188. package/dist/web-server/_libs/zod.mjs +0 -3915
  189. package/dist/web-server/_libs/zustand.mjs +0 -343
  190. package/dist/web-server/_libs/zwitch.mjs +0 -1
  191. package/dist/web-server/_ssr/index-0n2Z3BPQ.mjs +0 -369
  192. package/dist/web-server/_ssr/index-6itDALOw.mjs +0 -339
  193. package/dist/web-server/_ssr/index-BIRTrOmp.mjs +0 -449
  194. package/dist/web-server/_ssr/index-BPzfADac.mjs +0 -66
  195. package/dist/web-server/_ssr/index-BQE3bF14.mjs +0 -1870
  196. package/dist/web-server/_ssr/index-C5HpvlUP.mjs +0 -190
  197. package/dist/web-server/_ssr/index-C_ZxnypN.mjs +0 -213
  198. package/dist/web-server/_ssr/index-Ca8JFH8f.mjs +0 -612
  199. package/dist/web-server/_ssr/index-DNVESZiA.mjs +0 -513
  200. package/dist/web-server/_ssr/index.mjs +0 -1558
  201. package/dist/web-server/_ssr/input-CqXjTRQg.mjs +0 -20
  202. package/dist/web-server/_ssr/queries-3H_19mUt.mjs +0 -16
  203. package/dist/web-server/_ssr/router-sbsNus0Y.mjs +0 -2093
  204. package/dist/web-server/_ssr/start-HYkvq4Ni.mjs +0 -4
  205. package/dist/web-server/_ssr/switch-usf2F1UM.mjs +0 -33
  206. package/dist/web-server/_ssr/syntax-highlighter-5vezNTce.mjs +0 -62
  207. package/dist/web-server/_ssr/textarea-DfRheWY0.mjs +0 -18
  208. package/dist/web-server/_tanstack-start-manifest_v-DqW-pKEH.mjs +0 -4
  209. package/dist/web-server/index.mjs +0 -597
@@ -1,408 +0,0 @@
1
- import { N as NullProtoObj } from "./rou3.mjs";
2
- import { F as FastURL, N as NodeResponse } from "./srvx.mjs";
3
- function decodePathname(pathname) {
4
- return decodeURI(pathname.includes("%25") ? pathname.replace(/%25/g, "%2525") : pathname);
5
- }
6
- const kEventNS = "h3.internal.event.";
7
- const kEventRes = /* @__PURE__ */ Symbol.for(`${kEventNS}res`);
8
- const kEventResHeaders = /* @__PURE__ */ Symbol.for(`${kEventNS}res.headers`);
9
- const kEventResErrHeaders = /* @__PURE__ */ Symbol.for(`${kEventNS}res.err.headers`);
10
- var H3Event = class {
11
- app;
12
- req;
13
- url;
14
- context;
15
- static __is_event__ = true;
16
- constructor(req, context, app) {
17
- this.context = context || req.context || new NullProtoObj();
18
- this.req = req;
19
- this.app = app;
20
- const _url = req._url;
21
- const url = _url && _url instanceof URL ? _url : new FastURL(req.url);
22
- if (url.pathname.includes("%")) url.pathname = decodePathname(url.pathname);
23
- this.url = url;
24
- }
25
- get res() {
26
- return this[kEventRes] ||= new H3EventResponse();
27
- }
28
- get runtime() {
29
- return this.req.runtime;
30
- }
31
- waitUntil(promise) {
32
- this.req.waitUntil?.(promise);
33
- }
34
- toString() {
35
- return `[${this.req.method}] ${this.req.url}`;
36
- }
37
- toJSON() {
38
- return this.toString();
39
- }
40
- get node() {
41
- return this.req.runtime?.node;
42
- }
43
- get headers() {
44
- return this.req.headers;
45
- }
46
- get path() {
47
- return this.url.pathname + this.url.search;
48
- }
49
- get method() {
50
- return this.req.method;
51
- }
52
- };
53
- var H3EventResponse = class {
54
- status;
55
- statusText;
56
- get headers() {
57
- return this[kEventResHeaders] ||= new Headers();
58
- }
59
- get errHeaders() {
60
- return this[kEventResErrHeaders] ||= new Headers();
61
- }
62
- };
63
- const DISALLOWED_STATUS_CHARS = /[^\u0009\u0020-\u007E]/g;
64
- function sanitizeStatusMessage(statusMessage = "") {
65
- return statusMessage.replace(DISALLOWED_STATUS_CHARS, "");
66
- }
67
- function sanitizeStatusCode(statusCode, defaultStatusCode = 200) {
68
- if (!statusCode) return defaultStatusCode;
69
- if (typeof statusCode === "string") statusCode = +statusCode;
70
- if (statusCode < 100 || statusCode > 599) return defaultStatusCode;
71
- return statusCode;
72
- }
73
- var HTTPError = class HTTPError2 extends Error {
74
- get name() {
75
- return "HTTPError";
76
- }
77
- status;
78
- statusText;
79
- headers;
80
- cause;
81
- data;
82
- body;
83
- unhandled;
84
- static isError(input) {
85
- return input instanceof Error && input?.name === "HTTPError";
86
- }
87
- static status(status, statusText, details) {
88
- return new HTTPError2({
89
- ...details,
90
- statusText,
91
- status
92
- });
93
- }
94
- constructor(arg1, arg2) {
95
- let messageInput;
96
- let details;
97
- if (typeof arg1 === "string") {
98
- messageInput = arg1;
99
- details = arg2;
100
- } else details = arg1;
101
- const status = sanitizeStatusCode(details?.status || details?.statusCode || details?.cause?.status || details?.cause?.statusCode, 500);
102
- const statusText = sanitizeStatusMessage(details?.statusText || details?.statusMessage || details?.cause?.statusText || details?.cause?.statusMessage);
103
- const message = messageInput || details?.message || details?.cause?.message || details?.statusText || details?.statusMessage || [
104
- "HTTPError",
105
- status,
106
- statusText
107
- ].filter(Boolean).join(" ");
108
- super(message, { cause: details });
109
- this.cause = details;
110
- this.status = status;
111
- this.statusText = statusText || void 0;
112
- const rawHeaders = details?.headers || details?.cause?.headers;
113
- this.headers = rawHeaders ? new Headers(rawHeaders) : void 0;
114
- this.unhandled = details?.unhandled ?? details?.cause?.unhandled ?? void 0;
115
- this.data = details?.data;
116
- this.body = details?.body;
117
- }
118
- get statusCode() {
119
- return this.status;
120
- }
121
- get statusMessage() {
122
- return this.statusText;
123
- }
124
- toJSON() {
125
- const unhandled = this.unhandled;
126
- return {
127
- status: this.status,
128
- statusText: this.statusText,
129
- unhandled,
130
- message: unhandled ? "HTTPError" : this.message,
131
- data: unhandled ? void 0 : this.data,
132
- ...unhandled ? void 0 : this.body
133
- };
134
- }
135
- };
136
- function isJSONSerializable(value, _type) {
137
- if (value === null || value === void 0) return true;
138
- if (_type !== "object") return _type === "boolean" || _type === "number" || _type === "string";
139
- if (typeof value.toJSON === "function") return true;
140
- if (Array.isArray(value)) return true;
141
- if (typeof value.pipe === "function" || typeof value.pipeTo === "function") return false;
142
- if (value instanceof NullProtoObj) return true;
143
- const proto = Object.getPrototypeOf(value);
144
- return proto === Object.prototype || proto === null;
145
- }
146
- const kNotFound = /* @__PURE__ */ Symbol.for("h3.notFound");
147
- const kHandled = /* @__PURE__ */ Symbol.for("h3.handled");
148
- function toResponse(val, event, config = {}) {
149
- if (typeof val?.then === "function") return val.then((resolvedVal) => toResponse(resolvedVal, event, config), (r) => toResponse(typeof r === "number" ? new HTTPError({ status: r }) : r, event, config));
150
- const response = prepareResponse(val, event, config);
151
- if (typeof response?.then === "function") return toResponse(response, event, config);
152
- const { onResponse } = config;
153
- return onResponse ? Promise.resolve(onResponse(response, event)).then(() => response) : response;
154
- }
155
- var HTTPResponse = class {
156
- #headers;
157
- #init;
158
- body;
159
- constructor(body, init) {
160
- this.body = body;
161
- this.#init = init;
162
- }
163
- get status() {
164
- return this.#init?.status || 200;
165
- }
166
- get statusText() {
167
- return this.#init?.statusText || "OK";
168
- }
169
- get headers() {
170
- return this.#headers ||= new Headers(this.#init?.headers);
171
- }
172
- };
173
- function prepareResponse(val, event, config, nested) {
174
- if (val === kHandled) return new NodeResponse(null);
175
- if (val === kNotFound) val = new HTTPError({
176
- status: 404,
177
- message: `Cannot find any route matching [${event.req.method}] ${event.url}`
178
- });
179
- if (val && val instanceof Error) {
180
- const isHTTPError = HTTPError.isError(val);
181
- const error = isHTTPError ? val : new HTTPError(val);
182
- if (!isHTTPError) {
183
- error.unhandled = true;
184
- if (val?.stack) error.stack = val.stack;
185
- }
186
- if (error.unhandled && !config.silent) console.error(error);
187
- const { onError } = config;
188
- const errHeaders = event[kEventRes]?.[kEventResErrHeaders];
189
- return onError && !nested ? Promise.resolve(onError(error, event)).catch((error2) => error2).then((newVal) => prepareResponse(newVal ?? val, event, config, true)) : errorResponse(error, config.debug, errHeaders);
190
- }
191
- const preparedRes = event[kEventRes];
192
- const preparedHeaders = preparedRes?.[kEventResHeaders];
193
- event[kEventRes] = void 0;
194
- if (!(val instanceof Response)) {
195
- const res = prepareResponseBody(val, event, config);
196
- const status = res.status || preparedRes?.status;
197
- return new NodeResponse(nullBody(event.req.method, status) ? null : res.body, {
198
- status,
199
- statusText: res.statusText || preparedRes?.statusText,
200
- headers: res.headers && preparedHeaders ? mergeHeaders$1(res.headers, preparedHeaders) : res.headers || preparedHeaders
201
- });
202
- }
203
- if (!preparedHeaders || nested || !val.ok) return val;
204
- try {
205
- mergeHeaders$1(val.headers, preparedHeaders, val.headers);
206
- return val;
207
- } catch {
208
- return new NodeResponse(nullBody(event.req.method, val.status) ? null : val.body, {
209
- status: val.status,
210
- statusText: val.statusText,
211
- headers: mergeHeaders$1(val.headers, preparedHeaders)
212
- });
213
- }
214
- }
215
- function mergeHeaders$1(base, overrides, target = new Headers(base)) {
216
- for (const [name, value] of overrides) if (name === "set-cookie") target.append(name, value);
217
- else target.set(name, value);
218
- return target;
219
- }
220
- const frozen = (name) => (...args) => {
221
- throw new Error(`Headers are frozen (${name} ${args.join(", ")})`);
222
- };
223
- var FrozenHeaders = class extends Headers {
224
- set = frozen("set");
225
- append = frozen("append");
226
- delete = frozen("delete");
227
- };
228
- const emptyHeaders = /* @__PURE__ */ new FrozenHeaders({ "content-length": "0" });
229
- const jsonHeaders = /* @__PURE__ */ new FrozenHeaders({ "content-type": "application/json;charset=UTF-8" });
230
- function prepareResponseBody(val, event, config) {
231
- if (val === null || val === void 0) return {
232
- body: "",
233
- headers: emptyHeaders
234
- };
235
- const valType = typeof val;
236
- if (valType === "string") return { body: val };
237
- if (val instanceof Uint8Array) {
238
- event.res.headers.set("content-length", val.byteLength.toString());
239
- return { body: val };
240
- }
241
- if (val instanceof HTTPResponse || val?.constructor?.name === "HTTPResponse") return val;
242
- if (isJSONSerializable(val, valType)) return {
243
- body: JSON.stringify(val, void 0, config.debug ? 2 : void 0),
244
- headers: jsonHeaders
245
- };
246
- if (valType === "bigint") return {
247
- body: val.toString(),
248
- headers: jsonHeaders
249
- };
250
- if (val instanceof Blob) {
251
- const headers = new Headers({
252
- "content-type": val.type,
253
- "content-length": val.size.toString()
254
- });
255
- let filename = val.name;
256
- if (filename) {
257
- filename = encodeURIComponent(filename);
258
- headers.set("content-disposition", `filename="${filename}"; filename*=UTF-8''${filename}`);
259
- }
260
- return {
261
- body: val.stream(),
262
- headers
263
- };
264
- }
265
- if (valType === "symbol") return { body: val.toString() };
266
- if (valType === "function") return { body: `${val.name}()` };
267
- return { body: val };
268
- }
269
- function nullBody(method, status) {
270
- return method === "HEAD" || status === 100 || status === 101 || status === 102 || status === 204 || status === 205 || status === 304;
271
- }
272
- function errorResponse(error, debug, errHeaders) {
273
- let headers = error.headers ? mergeHeaders$1(jsonHeaders, error.headers) : new Headers(jsonHeaders);
274
- if (errHeaders) headers = mergeHeaders$1(headers, errHeaders);
275
- return new NodeResponse(JSON.stringify({
276
- ...error.toJSON(),
277
- stack: debug && error.stack ? error.stack.split("\n").map((l) => l.trim()) : void 0
278
- }, void 0, debug ? 2 : void 0), {
279
- status: error.status,
280
- statusText: error.statusText,
281
- headers
282
- });
283
- }
284
- function callMiddleware(event, middleware, handler, index = 0) {
285
- if (index === middleware.length) return handler(event);
286
- const fn = middleware[index];
287
- let nextCalled;
288
- let nextResult;
289
- const next = () => {
290
- if (nextCalled) return nextResult;
291
- nextCalled = true;
292
- nextResult = callMiddleware(event, middleware, handler, index + 1);
293
- return nextResult;
294
- };
295
- const ret = fn(event, next);
296
- return isUnhandledResponse(ret) ? next() : typeof ret?.then === "function" ? ret.then((resolved) => isUnhandledResponse(resolved) ? next() : resolved) : ret;
297
- }
298
- function isUnhandledResponse(val) {
299
- return val === void 0 || val === kNotFound;
300
- }
301
- function toRequest(input, options) {
302
- if (typeof input === "string") {
303
- let url = input;
304
- if (url[0] === "/") {
305
- const host = "localhost";
306
- url = `${"http"}://${host}${url}`;
307
- }
308
- return new Request(url, options);
309
- } else if (input instanceof URL) return new Request(input, options);
310
- return input;
311
- }
312
- function defineHandler(input) {
313
- if (typeof input === "function") return handlerWithFetch(input);
314
- const handler = input.handler || (input.fetch ? function _fetchHandler(event) {
315
- return input.fetch(event.req);
316
- } : NoHandler);
317
- return Object.assign(handlerWithFetch(input.middleware?.length ? function _handlerMiddleware(event) {
318
- return callMiddleware(event, input.middleware, handler);
319
- } : handler), input);
320
- }
321
- function handlerWithFetch(handler) {
322
- if ("fetch" in handler) return handler;
323
- return Object.assign(handler, { fetch: (req) => {
324
- if (typeof req === "string") req = new URL(req, "http://_");
325
- if (req instanceof URL) req = new Request(req);
326
- const event = new H3Event(req);
327
- try {
328
- return Promise.resolve(toResponse(handler(event), event));
329
- } catch (error) {
330
- return Promise.resolve(toResponse(error, event));
331
- }
332
- } });
333
- }
334
- function defineLazyEventHandler(loader) {
335
- let handler;
336
- let promise;
337
- return defineHandler(function lazyHandler(event) {
338
- return handler ? handler(event) : (promise ??= Promise.resolve(loader()).then(function resolveLazyHandler(r) {
339
- handler = toEventHandler(r) || toEventHandler(r.default);
340
- if (typeof handler !== "function") throw new TypeError("Invalid lazy handler", { cause: { resolved: r } });
341
- return handler;
342
- })).then((r) => r(event));
343
- });
344
- }
345
- function toEventHandler(handler) {
346
- if (typeof handler === "function") return handler;
347
- if (typeof handler?.handler === "function" && handler.constructor?.["~h3"]) return handler.handler;
348
- if (typeof handler?.fetch === "function") return function _fetchHandler(event) {
349
- return handler.fetch(event.req);
350
- };
351
- }
352
- const NoHandler = () => kNotFound;
353
- var H3Core = class {
354
- static "~h3" = true;
355
- config;
356
- "~middleware";
357
- "~routes" = [];
358
- constructor(config = {}) {
359
- this["~middleware"] = [];
360
- this.config = config;
361
- this.fetch = this.fetch.bind(this);
362
- this.handler = this.handler.bind(this);
363
- }
364
- fetch(request) {
365
- return this["~request"](request);
366
- }
367
- handler(event) {
368
- const route = this["~findRoute"](event);
369
- if (route) {
370
- event.context.params = route.params;
371
- event.context.matchedRoute = route.data;
372
- }
373
- const routeHandler = route?.data.handler || NoHandler;
374
- const middleware = this["~getMiddleware"](event, route);
375
- return middleware.length > 0 ? callMiddleware(event, middleware, routeHandler) : routeHandler(event);
376
- }
377
- "~request"(request, context) {
378
- const event = new H3Event(request, context, this);
379
- let handlerRes;
380
- try {
381
- if (this.config.onRequest) {
382
- const hookRes = this.config.onRequest(event);
383
- handlerRes = typeof hookRes?.then === "function" ? hookRes.then(() => this.handler(event)) : this.handler(event);
384
- } else handlerRes = this.handler(event);
385
- } catch (error) {
386
- handlerRes = Promise.reject(error);
387
- }
388
- return toResponse(handlerRes, event, this.config);
389
- }
390
- "~findRoute"(_event) {
391
- }
392
- "~addRoute"(_route) {
393
- this["~routes"].push(_route);
394
- }
395
- "~getMiddleware"(_event, route) {
396
- const routeMiddleware = route?.data.middleware;
397
- const globalMiddleware = this["~middleware"];
398
- return routeMiddleware ? [...globalMiddleware, ...routeMiddleware] : globalMiddleware;
399
- }
400
- };
401
- export {
402
- HTTPError as H,
403
- defineLazyEventHandler as a,
404
- H3Core as b,
405
- toRequest as c,
406
- defineHandler as d,
407
- toEventHandler as t
408
- };
@@ -1,39 +0,0 @@
1
- const search = /[#.]/g;
2
- function parseSelector(selector, defaultTagName) {
3
- const value = selector || "";
4
- const props = {};
5
- let start = 0;
6
- let previous;
7
- let tagName;
8
- while (start < value.length) {
9
- search.lastIndex = start;
10
- const match = search.exec(value);
11
- const subvalue = value.slice(start, match ? match.index : value.length);
12
- if (subvalue) {
13
- if (!previous) {
14
- tagName = subvalue;
15
- } else if (previous === "#") {
16
- props.id = subvalue;
17
- } else if (Array.isArray(props.className)) {
18
- props.className.push(subvalue);
19
- } else {
20
- props.className = [subvalue];
21
- }
22
- start += subvalue.length;
23
- }
24
- if (match) {
25
- previous = match[0];
26
- start++;
27
- }
28
- }
29
- return {
30
- type: "element",
31
- // @ts-expect-error: tag name is parsed.
32
- tagName: tagName || defaultTagName || "div",
33
- properties: props,
34
- children: []
35
- };
36
- }
37
- export {
38
- parseSelector as p
39
- };