hono 4.12.4 → 4.12.6

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 (203) hide show
  1. package/dist/adapter/aws-lambda/handler.js +2 -2
  2. package/dist/adapter/lambda-edge/handler.js +2 -1
  3. package/dist/cjs/adapter/aws-lambda/conninfo.js +0 -1
  4. package/dist/cjs/adapter/aws-lambda/handler.js +2 -3
  5. package/dist/cjs/adapter/aws-lambda/index.js +0 -1
  6. package/dist/cjs/adapter/aws-lambda/types.js +0 -1
  7. package/dist/cjs/adapter/bun/conninfo.js +0 -1
  8. package/dist/cjs/adapter/bun/index.js +0 -1
  9. package/dist/cjs/adapter/bun/serve-static.js +0 -1
  10. package/dist/cjs/adapter/bun/server.js +0 -1
  11. package/dist/cjs/adapter/bun/ssg.js +0 -1
  12. package/dist/cjs/adapter/bun/websocket.js +0 -1
  13. package/dist/cjs/adapter/cloudflare-pages/conninfo.js +0 -1
  14. package/dist/cjs/adapter/cloudflare-pages/handler.js +0 -1
  15. package/dist/cjs/adapter/cloudflare-pages/index.js +0 -1
  16. package/dist/cjs/adapter/cloudflare-workers/conninfo.js +0 -1
  17. package/dist/cjs/adapter/cloudflare-workers/index.js +0 -1
  18. package/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +0 -1
  19. package/dist/cjs/adapter/cloudflare-workers/serve-static.js +0 -1
  20. package/dist/cjs/adapter/cloudflare-workers/utils.js +0 -1
  21. package/dist/cjs/adapter/cloudflare-workers/websocket.js +0 -1
  22. package/dist/cjs/adapter/deno/conninfo.js +0 -1
  23. package/dist/cjs/adapter/deno/deno.d.js +0 -1
  24. package/dist/cjs/adapter/deno/index.js +0 -1
  25. package/dist/cjs/adapter/deno/serve-static.js +0 -1
  26. package/dist/cjs/adapter/deno/ssg.js +0 -1
  27. package/dist/cjs/adapter/deno/websocket.js +0 -1
  28. package/dist/cjs/adapter/lambda-edge/conninfo.js +0 -1
  29. package/dist/cjs/adapter/lambda-edge/handler.js +2 -2
  30. package/dist/cjs/adapter/lambda-edge/index.js +0 -1
  31. package/dist/cjs/adapter/netlify/conninfo.js +0 -1
  32. package/dist/cjs/adapter/netlify/handler.js +0 -1
  33. package/dist/cjs/adapter/netlify/index.js +0 -1
  34. package/dist/cjs/adapter/netlify/mod.js +0 -1
  35. package/dist/cjs/adapter/service-worker/handler.js +0 -1
  36. package/dist/cjs/adapter/service-worker/index.js +0 -1
  37. package/dist/cjs/adapter/service-worker/types.js +0 -1
  38. package/dist/cjs/adapter/vercel/conninfo.js +0 -1
  39. package/dist/cjs/adapter/vercel/handler.js +0 -1
  40. package/dist/cjs/adapter/vercel/index.js +0 -1
  41. package/dist/cjs/client/client.js +0 -1
  42. package/dist/cjs/client/fetch-result-please.js +0 -1
  43. package/dist/cjs/client/index.js +0 -1
  44. package/dist/cjs/client/types.js +0 -1
  45. package/dist/cjs/client/utils.js +0 -1
  46. package/dist/cjs/compose.js +0 -1
  47. package/dist/cjs/context.js +0 -1
  48. package/dist/cjs/helper/accepts/accepts.js +0 -1
  49. package/dist/cjs/helper/accepts/index.js +0 -1
  50. package/dist/cjs/helper/adapter/index.js +0 -1
  51. package/dist/cjs/helper/conninfo/index.js +0 -1
  52. package/dist/cjs/helper/conninfo/types.js +0 -1
  53. package/dist/cjs/helper/cookie/index.js +0 -1
  54. package/dist/cjs/helper/css/common.js +0 -1
  55. package/dist/cjs/helper/css/index.js +0 -1
  56. package/dist/cjs/helper/dev/index.js +0 -1
  57. package/dist/cjs/helper/factory/index.js +0 -1
  58. package/dist/cjs/helper/html/index.js +0 -1
  59. package/dist/cjs/helper/proxy/index.js +0 -1
  60. package/dist/cjs/helper/route/index.js +0 -1
  61. package/dist/cjs/helper/ssg/index.js +0 -1
  62. package/dist/cjs/helper/ssg/middleware.js +0 -1
  63. package/dist/cjs/helper/ssg/plugins.js +0 -1
  64. package/dist/cjs/helper/ssg/ssg.js +0 -1
  65. package/dist/cjs/helper/ssg/utils.js +0 -1
  66. package/dist/cjs/helper/streaming/index.js +0 -1
  67. package/dist/cjs/helper/streaming/sse.js +0 -1
  68. package/dist/cjs/helper/streaming/stream.js +0 -1
  69. package/dist/cjs/helper/streaming/text.js +0 -1
  70. package/dist/cjs/helper/streaming/utils.js +0 -1
  71. package/dist/cjs/helper/testing/index.js +0 -1
  72. package/dist/cjs/helper/websocket/index.js +0 -1
  73. package/dist/cjs/hono-base.js +0 -1
  74. package/dist/cjs/hono.js +0 -1
  75. package/dist/cjs/http-exception.js +0 -1
  76. package/dist/cjs/index.js +0 -1
  77. package/dist/cjs/jsx/base.js +0 -1
  78. package/dist/cjs/jsx/children.js +0 -1
  79. package/dist/cjs/jsx/components.js +0 -1
  80. package/dist/cjs/jsx/constants.js +0 -1
  81. package/dist/cjs/jsx/context.js +0 -1
  82. package/dist/cjs/jsx/dom/client.js +0 -1
  83. package/dist/cjs/jsx/dom/components.js +0 -1
  84. package/dist/cjs/jsx/dom/context.js +0 -1
  85. package/dist/cjs/jsx/dom/css.js +0 -1
  86. package/dist/cjs/jsx/dom/hooks/index.js +0 -1
  87. package/dist/cjs/jsx/dom/index.js +0 -1
  88. package/dist/cjs/jsx/dom/intrinsic-element/components.js +40 -10
  89. package/dist/cjs/jsx/dom/jsx-dev-runtime.js +0 -1
  90. package/dist/cjs/jsx/dom/jsx-runtime.js +0 -1
  91. package/dist/cjs/jsx/dom/render.js +0 -1
  92. package/dist/cjs/jsx/dom/server.js +0 -1
  93. package/dist/cjs/jsx/dom/utils.js +0 -1
  94. package/dist/cjs/jsx/hooks/index.js +0 -1
  95. package/dist/cjs/jsx/index.js +0 -1
  96. package/dist/cjs/jsx/intrinsic-element/common.js +13 -3
  97. package/dist/cjs/jsx/intrinsic-element/components.js +18 -12
  98. package/dist/cjs/jsx/intrinsic-elements.js +0 -1
  99. package/dist/cjs/jsx/jsx-dev-runtime.js +0 -1
  100. package/dist/cjs/jsx/jsx-runtime.js +0 -1
  101. package/dist/cjs/jsx/streaming.js +13 -4
  102. package/dist/cjs/jsx/types.js +0 -1
  103. package/dist/cjs/jsx/utils.js +0 -1
  104. package/dist/cjs/middleware/basic-auth/index.js +0 -1
  105. package/dist/cjs/middleware/bearer-auth/index.js +0 -1
  106. package/dist/cjs/middleware/body-limit/index.js +0 -1
  107. package/dist/cjs/middleware/cache/index.js +0 -1
  108. package/dist/cjs/middleware/combine/index.js +0 -1
  109. package/dist/cjs/middleware/compress/index.js +0 -1
  110. package/dist/cjs/middleware/context-storage/index.js +0 -1
  111. package/dist/cjs/middleware/cors/index.js +0 -1
  112. package/dist/cjs/middleware/csrf/index.js +0 -1
  113. package/dist/cjs/middleware/etag/digest.js +0 -1
  114. package/dist/cjs/middleware/etag/index.js +0 -1
  115. package/dist/cjs/middleware/ip-restriction/index.js +0 -1
  116. package/dist/cjs/middleware/jsx-renderer/index.js +1 -1
  117. package/dist/cjs/middleware/jwk/index.js +0 -1
  118. package/dist/cjs/middleware/jwk/jwk.js +0 -1
  119. package/dist/cjs/middleware/jwt/index.js +0 -1
  120. package/dist/cjs/middleware/jwt/jwt.js +0 -1
  121. package/dist/cjs/middleware/language/index.js +0 -1
  122. package/dist/cjs/middleware/language/language.js +0 -1
  123. package/dist/cjs/middleware/logger/index.js +0 -1
  124. package/dist/cjs/middleware/method-override/index.js +0 -1
  125. package/dist/cjs/middleware/powered-by/index.js +0 -1
  126. package/dist/cjs/middleware/pretty-json/index.js +0 -1
  127. package/dist/cjs/middleware/request-id/index.js +0 -1
  128. package/dist/cjs/middleware/request-id/request-id.js +0 -1
  129. package/dist/cjs/middleware/secure-headers/index.js +0 -1
  130. package/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -1
  131. package/dist/cjs/middleware/secure-headers/secure-headers.js +0 -1
  132. package/dist/cjs/middleware/serve-static/index.js +0 -1
  133. package/dist/cjs/middleware/serve-static/path.js +0 -1
  134. package/dist/cjs/middleware/timeout/index.js +0 -1
  135. package/dist/cjs/middleware/timing/index.js +0 -1
  136. package/dist/cjs/middleware/timing/timing.js +0 -1
  137. package/dist/cjs/middleware/trailing-slash/index.js +0 -1
  138. package/dist/cjs/preset/quick.js +0 -1
  139. package/dist/cjs/preset/tiny.js +0 -1
  140. package/dist/cjs/request/constants.js +0 -1
  141. package/dist/cjs/request.js +0 -1
  142. package/dist/cjs/router/linear-router/index.js +0 -1
  143. package/dist/cjs/router/linear-router/router.js +0 -1
  144. package/dist/cjs/router/pattern-router/index.js +0 -1
  145. package/dist/cjs/router/pattern-router/router.js +0 -1
  146. package/dist/cjs/router/reg-exp-router/index.js +0 -1
  147. package/dist/cjs/router/reg-exp-router/matcher.js +0 -1
  148. package/dist/cjs/router/reg-exp-router/node.js +0 -1
  149. package/dist/cjs/router/reg-exp-router/prepared-router.js +0 -1
  150. package/dist/cjs/router/reg-exp-router/router.js +0 -1
  151. package/dist/cjs/router/reg-exp-router/trie.js +0 -1
  152. package/dist/cjs/router/smart-router/index.js +0 -1
  153. package/dist/cjs/router/smart-router/router.js +0 -1
  154. package/dist/cjs/router/trie-router/index.js +0 -1
  155. package/dist/cjs/router/trie-router/node.js +0 -1
  156. package/dist/cjs/router/trie-router/router.js +0 -1
  157. package/dist/cjs/router.js +0 -1
  158. package/dist/cjs/types.js +0 -1
  159. package/dist/cjs/utils/accept.js +188 -29
  160. package/dist/cjs/utils/basic-auth.js +0 -1
  161. package/dist/cjs/utils/body.js +0 -1
  162. package/dist/cjs/utils/buffer.js +0 -1
  163. package/dist/cjs/utils/color.js +0 -1
  164. package/dist/cjs/utils/compress.js +0 -1
  165. package/dist/cjs/utils/concurrent.js +0 -1
  166. package/dist/cjs/utils/constants.js +0 -1
  167. package/dist/cjs/utils/cookie.js +0 -1
  168. package/dist/cjs/utils/crypto.js +0 -1
  169. package/dist/cjs/utils/encode.js +0 -1
  170. package/dist/cjs/utils/filepath.js +0 -1
  171. package/dist/cjs/utils/handler.js +0 -1
  172. package/dist/cjs/utils/headers.js +0 -1
  173. package/dist/cjs/utils/html.js +0 -1
  174. package/dist/cjs/utils/http-status.js +0 -1
  175. package/dist/cjs/utils/ipaddr.js +0 -1
  176. package/dist/cjs/utils/jwt/index.js +0 -1
  177. package/dist/cjs/utils/jwt/jwa.js +0 -1
  178. package/dist/cjs/utils/jwt/jws.js +0 -1
  179. package/dist/cjs/utils/jwt/jwt.js +11 -6
  180. package/dist/cjs/utils/jwt/types.js +0 -1
  181. package/dist/cjs/utils/jwt/utf8.js +0 -1
  182. package/dist/cjs/utils/mime.js +0 -1
  183. package/dist/cjs/utils/stream.js +0 -1
  184. package/dist/cjs/utils/types.js +0 -1
  185. package/dist/cjs/utils/url.js +0 -1
  186. package/dist/cjs/validator/index.js +0 -1
  187. package/dist/cjs/validator/utils.js +0 -1
  188. package/dist/cjs/validator/validator.js +0 -1
  189. package/dist/jsx/dom/intrinsic-element/components.js +47 -10
  190. package/dist/jsx/intrinsic-element/common.js +10 -1
  191. package/dist/jsx/intrinsic-element/components.js +24 -12
  192. package/dist/jsx/streaming.js +13 -3
  193. package/dist/middleware/jsx-renderer/index.js +1 -0
  194. package/dist/tsconfig.build.tsbuildinfo +1 -0
  195. package/dist/types/adapter/aws-lambda/handler.d.ts +2 -2
  196. package/dist/types/jsx/intrinsic-element/common.d.ts +3 -0
  197. package/dist/types/jsx/types.d.ts +1 -1
  198. package/dist/types/middleware/jsx-renderer/index.d.ts +1 -1
  199. package/dist/types/request.d.ts +1 -1
  200. package/dist/types/utils/accept.d.ts +0 -5
  201. package/dist/utils/accept.js +188 -28
  202. package/dist/utils/jwt/jwt.js +11 -5
  203. package/package.json +4 -3
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
package/dist/cjs/types.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -21,32 +20,199 @@ __export(accept_exports, {
21
20
  parseAccept: () => parseAccept
22
21
  });
23
22
  module.exports = __toCommonJS(accept_exports);
23
+ const isWhitespace = (char) => char === 32 || char === 9 || char === 10 || char === 13;
24
+ const consumeWhitespace = (acceptHeader, startIndex) => {
25
+ while (startIndex < acceptHeader.length) {
26
+ if (!isWhitespace(acceptHeader.charCodeAt(startIndex))) {
27
+ break;
28
+ }
29
+ startIndex++;
30
+ }
31
+ return startIndex;
32
+ };
33
+ const ignoreTrailingWhitespace = (acceptHeader, startIndex) => {
34
+ while (startIndex > 0) {
35
+ if (!isWhitespace(acceptHeader.charCodeAt(startIndex - 1))) {
36
+ break;
37
+ }
38
+ startIndex--;
39
+ }
40
+ return startIndex;
41
+ };
42
+ const skipInvalidParam = (acceptHeader, startIndex) => {
43
+ while (startIndex < acceptHeader.length) {
44
+ const char = acceptHeader.charCodeAt(startIndex);
45
+ if (char === 59) {
46
+ return [startIndex + 1, true];
47
+ }
48
+ if (char === 44) {
49
+ return [startIndex + 1, false];
50
+ }
51
+ startIndex++;
52
+ }
53
+ return [startIndex, false];
54
+ };
55
+ const skipInvalidAcceptValue = (acceptHeader, startIndex) => {
56
+ let i = startIndex;
57
+ let inQuotes = false;
58
+ while (i < acceptHeader.length) {
59
+ const char = acceptHeader.charCodeAt(i);
60
+ if (inQuotes && char === 92) {
61
+ i++;
62
+ } else if (char === 34) {
63
+ inQuotes = !inQuotes;
64
+ } else if (!inQuotes && char === 44) {
65
+ return i + 1;
66
+ }
67
+ i++;
68
+ }
69
+ return i;
70
+ };
71
+ const getNextParam = (acceptHeader, startIndex) => {
72
+ startIndex = consumeWhitespace(acceptHeader, startIndex);
73
+ let i = startIndex;
74
+ let key;
75
+ let value;
76
+ let hasNext = false;
77
+ while (i < acceptHeader.length) {
78
+ const char = acceptHeader.charCodeAt(i);
79
+ if (char === 61) {
80
+ key = acceptHeader.slice(startIndex, ignoreTrailingWhitespace(acceptHeader, i));
81
+ i++;
82
+ break;
83
+ }
84
+ if (char === 59) {
85
+ return [i + 1, void 0, void 0, true];
86
+ }
87
+ if (char === 44) {
88
+ return [i + 1, void 0, void 0, false];
89
+ }
90
+ i++;
91
+ }
92
+ if (key === void 0) {
93
+ return [i, void 0, void 0, false];
94
+ }
95
+ i = consumeWhitespace(acceptHeader, i);
96
+ if (acceptHeader.charCodeAt(i) === 61) {
97
+ const skipResult = skipInvalidParam(acceptHeader, i + 1);
98
+ return [skipResult[0], key, void 0, skipResult[1]];
99
+ }
100
+ let inQuotes = false;
101
+ const paramStartIndex = i;
102
+ while (i < acceptHeader.length) {
103
+ const char = acceptHeader.charCodeAt(i);
104
+ if (inQuotes && char === 92) {
105
+ i++;
106
+ } else if (char === 34) {
107
+ if (inQuotes) {
108
+ let nextIndex = consumeWhitespace(acceptHeader, i + 1);
109
+ const nextChar = acceptHeader.charCodeAt(nextIndex);
110
+ if (nextIndex < acceptHeader.length && !(nextChar === 59 || nextChar === 44)) {
111
+ const skipResult = skipInvalidParam(acceptHeader, nextIndex);
112
+ return [skipResult[0], key, void 0, skipResult[1]];
113
+ }
114
+ value = acceptHeader.slice(paramStartIndex + 1, i);
115
+ if (value.includes("\\")) {
116
+ value = value.replace(/\\(.)/g, "$1");
117
+ }
118
+ if (nextChar === 44) {
119
+ return [nextIndex + 1, key, value, false];
120
+ }
121
+ if (nextChar === 59) {
122
+ hasNext = true;
123
+ nextIndex++;
124
+ }
125
+ i = nextIndex;
126
+ break;
127
+ }
128
+ inQuotes = true;
129
+ } else if (!inQuotes && (char === 59 || char === 44)) {
130
+ value = acceptHeader.slice(paramStartIndex, ignoreTrailingWhitespace(acceptHeader, i));
131
+ if (char === 59) {
132
+ hasNext = true;
133
+ }
134
+ i++;
135
+ break;
136
+ }
137
+ i++;
138
+ }
139
+ return [
140
+ i,
141
+ key,
142
+ value ?? acceptHeader.slice(paramStartIndex, ignoreTrailingWhitespace(acceptHeader, i)),
143
+ hasNext
144
+ ];
145
+ };
146
+ const getNextAcceptValue = (acceptHeader, startIndex) => {
147
+ const accept = {
148
+ type: "",
149
+ params: {},
150
+ q: 1
151
+ };
152
+ startIndex = consumeWhitespace(acceptHeader, startIndex);
153
+ let i = startIndex;
154
+ while (i < acceptHeader.length) {
155
+ const char = acceptHeader.charCodeAt(i);
156
+ if (char === 59 || char === 44) {
157
+ accept.type = acceptHeader.slice(startIndex, ignoreTrailingWhitespace(acceptHeader, i));
158
+ i++;
159
+ if (char === 44) {
160
+ return [i, accept.type ? accept : void 0];
161
+ }
162
+ if (!accept.type) {
163
+ return [skipInvalidAcceptValue(acceptHeader, i), void 0];
164
+ }
165
+ break;
166
+ }
167
+ i++;
168
+ }
169
+ if (!accept.type) {
170
+ accept.type = acceptHeader.slice(
171
+ startIndex,
172
+ ignoreTrailingWhitespace(acceptHeader, acceptHeader.length)
173
+ );
174
+ return [acceptHeader.length, accept.type ? accept : void 0];
175
+ }
176
+ let param;
177
+ let value;
178
+ let hasNext;
179
+ while (i < acceptHeader.length) {
180
+ ;
181
+ [i, param, value, hasNext] = getNextParam(acceptHeader, i);
182
+ if (param && value) {
183
+ accept.params[param] = value;
184
+ }
185
+ if (!hasNext) {
186
+ break;
187
+ }
188
+ }
189
+ return [i, accept];
190
+ };
24
191
  const parseAccept = (acceptHeader) => {
25
192
  if (!acceptHeader) {
26
193
  return [];
27
194
  }
28
- const acceptValues = acceptHeader.split(",").map((value, index) => ({ value, index }));
29
- return acceptValues.map(parseAcceptValue).filter((item) => Boolean(item)).sort(sortByQualityAndIndex).map(({ type, params, q }) => ({ type, params, q }));
30
- };
31
- const parseAcceptValueRegex = /;(?=(?:(?:[^"]*"){2})*[^"]*$)/;
32
- const parseAcceptValue = ({ value, index }) => {
33
- const parts = value.trim().split(parseAcceptValueRegex).map((s) => s.trim());
34
- const type = parts[0];
35
- if (!type) {
36
- return null;
37
- }
38
- const params = parseParams(parts.slice(1));
39
- const q = parseQuality(params.q);
40
- return { type, params, q, index };
41
- };
42
- const parseParams = (paramParts) => {
43
- return paramParts.reduce((acc, param) => {
44
- const [key, val] = param.split("=").map((s) => s.trim());
45
- if (key && val) {
46
- acc[key] = val;
195
+ const values = [];
196
+ let i = 0;
197
+ let accept;
198
+ let requiresSort = false;
199
+ let lastAccept;
200
+ while (i < acceptHeader.length) {
201
+ ;
202
+ [i, accept] = getNextAcceptValue(acceptHeader, i);
203
+ if (accept) {
204
+ accept.q = parseQuality(accept.params.q);
205
+ values.push(accept);
206
+ if (lastAccept && lastAccept.q < accept.q) {
207
+ requiresSort = true;
208
+ }
209
+ lastAccept = accept;
47
210
  }
48
- return acc;
49
- }, {});
211
+ }
212
+ if (requiresSort) {
213
+ values.sort((a, b) => b.q - a.q);
214
+ }
215
+ return values;
50
216
  };
51
217
  const parseQuality = (qVal) => {
52
218
  if (qVal === void 0) {
@@ -73,13 +239,6 @@ const parseQuality = (qVal) => {
73
239
  }
74
240
  return num;
75
241
  };
76
- const sortByQualityAndIndex = (a, b) => {
77
- const qDiff = b.q - a.q;
78
- if (qDiff !== 0) {
79
- return qDiff;
80
- }
81
- return a.index - b.index;
82
- };
83
242
  // Annotate the CommonJS export names for ESM import in node:
84
243
  0 && (module.exports = {
85
244
  parseAccept
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -177,10 +176,13 @@ const verifyWithJwks = async (token, options, init) => {
177
176
  });
178
177
  };
179
178
  const decode = (token) => {
179
+ const parts = token.split(".");
180
+ if (parts.length !== 3) {
181
+ throw new import_types.JwtTokenInvalid(token);
182
+ }
180
183
  try {
181
- const [h, p] = token.split(".");
182
- const header = decodeJwtPart(h);
183
- const payload = decodeJwtPart(p);
184
+ const header = decodeJwtPart(parts[0]);
185
+ const payload = decodeJwtPart(parts[1]);
184
186
  return {
185
187
  header,
186
188
  payload
@@ -190,9 +192,12 @@ const decode = (token) => {
190
192
  }
191
193
  };
192
194
  const decodeHeader = (token) => {
195
+ const parts = token.split(".");
196
+ if (parts.length !== 3) {
197
+ throw new import_types.JwtTokenInvalid(token);
198
+ }
193
199
  try {
194
- const [h] = token.split(".");
195
- return decodeJwtPart(h);
200
+ return decodeJwtPart(parts[0]);
196
201
  } catch {
197
202
  throw new import_types.JwtTokenInvalid(token);
198
203
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -1,7 +1,13 @@
1
1
  // src/jsx/dom/intrinsic-element/components.ts
2
2
  import { useContext } from "../../context.js";
3
3
  import { use, useCallback, useMemo, useState } from "../../hooks/index.js";
4
- import { dataPrecedenceAttr, deDupeKeyMap, domRenderers } from "../../intrinsic-element/common.js";
4
+ import {
5
+ dataPrecedenceAttr,
6
+ deDupeKeyMap,
7
+ domRenderers,
8
+ isStylesheetLinkWithPrecedence,
9
+ shouldDeDupeByKey
10
+ } from "../../intrinsic-element/common.js";
5
11
  import { FormContext, registerAction } from "../hooks/index.js";
6
12
  import { createPortal, getNameSpaceContext } from "../render.js";
7
13
  var clearCache = () => {
@@ -49,11 +55,16 @@ var documentMetadataTag = (tag, props, preserveNodeType, supportSort, supportBlo
49
55
  let element = null;
50
56
  let created = false;
51
57
  const deDupeKeys = deDupeKeyMap[tag];
58
+ const deDupeByKey = shouldDeDupeByKey(tag, supportSort);
59
+ const isDeDupeCandidateLink = (e) => e.getAttribute("rel") === "stylesheet" && e.getAttribute(dataPrecedenceAttr) !== null;
52
60
  let existingElements = void 0;
53
- if (deDupeKeys.length > 0) {
61
+ if (deDupeByKey) {
54
62
  const tags = head.querySelectorAll(tag);
55
63
  LOOP: for (const e of tags) {
56
- for (const key of deDupeKeyMap[tag]) {
64
+ if (tag === "link" && !isDeDupeCandidateLink(e)) {
65
+ continue;
66
+ }
67
+ for (const key of deDupeKeys) {
57
68
  if (e.getAttribute(key) === props[key]) {
58
69
  element = e;
59
70
  break LOOP;
@@ -72,9 +83,9 @@ var documentMetadataTag = (tag, props, preserveNodeType, supportSort, supportBlo
72
83
  if (props[key] !== void 0) {
73
84
  e.setAttribute(key, props[key]);
74
85
  }
75
- if (props.rel) {
76
- e.setAttribute("rel", props.rel);
77
- }
86
+ }
87
+ if (props.rel) {
88
+ e.setAttribute("rel", props.rel);
78
89
  }
79
90
  return e;
80
91
  })();
@@ -88,7 +99,26 @@ var documentMetadataTag = (tag, props, preserveNodeType, supportSort, supportBlo
88
99
  }
89
100
  const insert = useCallback(
90
101
  (e) => {
91
- if (deDupeKeys.length > 0) {
102
+ if (deDupeByKey) {
103
+ if (tag === "link" && precedence !== void 0) {
104
+ let found2 = false;
105
+ for (const existingElement of head.querySelectorAll(tag)) {
106
+ const existingPrecedence = existingElement.getAttribute(dataPrecedenceAttr);
107
+ if (existingPrecedence === null) {
108
+ head.insertBefore(e, existingElement);
109
+ return;
110
+ }
111
+ if (found2 && existingPrecedence !== precedence) {
112
+ head.insertBefore(e, existingElement);
113
+ return;
114
+ }
115
+ if (existingPrecedence === precedence) {
116
+ found2 = true;
117
+ }
118
+ }
119
+ head.appendChild(e);
120
+ return;
121
+ }
92
122
  let found = false;
93
123
  for (const existingElement of head.querySelectorAll(tag)) {
94
124
  if (found && existingElement.getAttribute(dataPrecedenceAttr) !== precedence) {
@@ -100,6 +130,10 @@ var documentMetadataTag = (tag, props, preserveNodeType, supportSort, supportBlo
100
130
  }
101
131
  }
102
132
  head.appendChild(e);
133
+ } else if (tag === "link") {
134
+ if (!head.contains(e)) {
135
+ head.appendChild(e);
136
+ }
103
137
  } else if (existingElements) {
104
138
  let found = false;
105
139
  for (const existingElement of existingElements) {
@@ -117,7 +151,7 @@ var documentMetadataTag = (tag, props, preserveNodeType, supportSort, supportBlo
117
151
  existingElements = void 0;
118
152
  }
119
153
  },
120
- [precedence]
154
+ [deDupeByKey, precedence, tag]
121
155
  );
122
156
  const ref = composeRef(props.ref, (e) => {
123
157
  const key = deDupeKeys[0];
@@ -130,6 +164,9 @@ var documentMetadataTag = (tag, props, preserveNodeType, supportSort, supportBlo
130
164
  if (!onError && !onLoad) {
131
165
  return;
132
166
  }
167
+ if (!key) {
168
+ return;
169
+ }
133
170
  let promise = blockingPromiseMap[e.getAttribute(key)] ||= new Promise(
134
171
  (resolve, reject) => {
135
172
  e.addEventListener("load", resolve);
@@ -147,7 +184,7 @@ var documentMetadataTag = (tag, props, preserveNodeType, supportSort, supportBlo
147
184
  });
148
185
  if (supportBlocking && blocking === "render") {
149
186
  const key = deDupeKeyMap[tag][0];
150
- if (props[key]) {
187
+ if (key && props[key]) {
151
188
  const value = props[key];
152
189
  const promise = blockingPromiseMap[value] ||= new Promise((resolve, reject) => {
153
190
  insert(element);
@@ -223,7 +260,7 @@ var link = (props) => {
223
260
  ref: props.ref
224
261
  };
225
262
  }
226
- return documentMetadataTag("link", props, 1, "precedence" in props, true);
263
+ return documentMetadataTag("link", props, 1, isStylesheetLinkWithPrecedence(props), true);
227
264
  };
228
265
  var meta = (props) => {
229
266
  return documentMetadataTag("meta", props, void 0, false, false);
@@ -8,8 +8,17 @@ var deDupeKeyMap = {
8
8
  };
9
9
  var domRenderers = {};
10
10
  var dataPrecedenceAttr = "data-precedence";
11
+ var isStylesheetLinkWithPrecedence = (props) => props.rel === "stylesheet" && "precedence" in props;
12
+ var shouldDeDupeByKey = (tagName, supportSort) => {
13
+ if (tagName === "link") {
14
+ return supportSort;
15
+ }
16
+ return deDupeKeyMap[tagName].length > 0;
17
+ };
11
18
  export {
12
19
  dataPrecedenceAttr,
13
20
  deDupeKeyMap,
14
- domRenderers
21
+ domRenderers,
22
+ isStylesheetLinkWithPrecedence,
23
+ shouldDeDupeByKey
15
24
  };