@suveren/gateway 0.7.4 → 0.7.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 (171) hide show
  1. package/dist/control-plane/index.mjs +248 -58
  2. package/dist/mcp-server/http.mjs +408 -65
  3. package/dist/ui/assets/{index-CkWaRck1.css → index-BYVb_0oG.css} +1 -1
  4. package/dist/ui/assets/index-CsrM6RQr.js +110 -0
  5. package/dist/ui/index.html +2 -2
  6. package/node_modules/@hap/core/dist/index.d.mts +258 -9
  7. package/node_modules/@hap/core/dist/index.d.ts +258 -9
  8. package/node_modules/@hap/core/dist/index.js +227 -5
  9. package/node_modules/@hap/core/dist/index.mjs +213 -4
  10. package/node_modules/@hap/core/package.json +3 -2
  11. package/node_modules/@hap/core/src/did-key.ts +126 -0
  12. package/node_modules/@hap/core/src/identity.ts +21 -5
  13. package/node_modules/@hap/core/src/index.ts +3 -0
  14. package/node_modules/@hap/core/src/mandate.ts +207 -0
  15. package/node_modules/@hap/core/src/receipt.ts +74 -0
  16. package/node_modules/@hap/core/src/types.ts +81 -5
  17. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/lib/accept.js +54 -0
  18. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/lib/charset.js +10 -34
  19. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/lib/encoding.js +9 -30
  20. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/lib/language.js +15 -36
  21. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/lib/mediaType.js +16 -134
  22. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/node_modules/content-type/LICENSE +22 -0
  23. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/node_modules/content-type/README.md +71 -0
  24. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +46 -0
  25. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/node_modules/content-type/dist/index.js +176 -0
  26. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/node_modules/content-type/dist/index.js.map +1 -0
  27. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/node_modules/content-type/package.json +52 -0
  28. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/package.json +16 -10
  29. package/node_modules/@types/node/README.md +1 -1
  30. package/node_modules/@types/node/buffer.buffer.d.ts +5 -5
  31. package/node_modules/@types/node/crypto.d.ts +2 -2
  32. package/node_modules/@types/node/http.d.ts +16 -0
  33. package/node_modules/@types/node/http2.d.ts +10 -2
  34. package/node_modules/@types/node/package.json +2 -2
  35. package/node_modules/@types/node/process.d.ts +52 -0
  36. package/node_modules/@types/node/quic.d.ts +210 -28
  37. package/node_modules/@types/node/sqlite.d.ts +6 -2
  38. package/node_modules/@types/node/test.d.ts +36 -0
  39. package/node_modules/fast-uri/index.js +201 -48
  40. package/node_modules/fast-uri/lib/schemes.js +9 -4
  41. package/node_modules/fast-uri/lib/utils.js +388 -91
  42. package/node_modules/fast-uri/package.json +1 -1
  43. package/node_modules/fast-uri/test/component-safe-serialization.test.js +105 -0
  44. package/node_modules/fast-uri/test/equal.test.js +31 -3
  45. package/node_modules/fast-uri/test/fixtures/uri-js-parse.json +2 -0
  46. package/node_modules/fast-uri/test/ipv6-canonical.test.js +34 -0
  47. package/node_modules/fast-uri/test/ipv6-validation.test.js +90 -0
  48. package/node_modules/fast-uri/test/malformed-percent.test.js +77 -0
  49. package/node_modules/fast-uri/test/malformed-urn.test.js +61 -0
  50. package/node_modules/fast-uri/test/parse.test.js +7 -3
  51. package/node_modules/fast-uri/test/query-fragment-normalization.test.js +33 -0
  52. package/node_modules/fast-uri/test/reserved-path-normalization.test.js +109 -0
  53. package/node_modules/fast-uri/test/scheme-validation.test.js +124 -0
  54. package/node_modules/fast-uri/test/security-normalization.test.js +101 -0
  55. package/node_modules/fast-uri/test/security.test.js +75 -3
  56. package/node_modules/fast-uri/test/urn-full-input.test.js +29 -0
  57. package/node_modules/fast-uri/test/websocket-query-preservation.test.js +24 -0
  58. package/node_modules/hono/dist/cjs/client/client.js +25 -11
  59. package/node_modules/hono/dist/cjs/client/utils.js +4 -1
  60. package/node_modules/hono/dist/cjs/context.js +4 -0
  61. package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +36 -2
  62. package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +1 -1
  63. package/node_modules/hono/dist/cjs/helper/ssg/utils.js +30 -10
  64. package/node_modules/hono/dist/cjs/jsx/dom/render.js +2 -0
  65. package/node_modules/hono/dist/cjs/middleware/cache/index.js +1 -1
  66. package/node_modules/hono/dist/cjs/middleware/cors/index.js +1 -1
  67. package/node_modules/hono/dist/cjs/middleware/csrf/index.js +1 -1
  68. package/node_modules/hono/dist/cjs/middleware/etag/digest.js +1 -1
  69. package/node_modules/hono/dist/cjs/middleware/etag/index.js +3 -3
  70. package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +3 -1
  71. package/node_modules/hono/dist/cjs/request.js +8 -4
  72. package/node_modules/hono/dist/cjs/router/linear-router/router.js +7 -2
  73. package/node_modules/hono/dist/cjs/router/pattern-router/router.js +3 -9
  74. package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +10 -3
  75. package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +47 -83
  76. package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +2 -1
  77. package/node_modules/hono/dist/cjs/router/trie-router/node.js +46 -69
  78. package/node_modules/hono/dist/cjs/router/trie-router/router.js +3 -11
  79. package/node_modules/hono/dist/cjs/router/utils.js +27 -0
  80. package/node_modules/hono/dist/cjs/utils/body.js +15 -3
  81. package/node_modules/hono/dist/cjs/utils/cookie.js +1 -1
  82. package/node_modules/hono/dist/cjs/utils/ipaddr.js +5 -3
  83. package/node_modules/hono/dist/cjs/utils/stream.js +7 -1
  84. package/node_modules/hono/dist/cjs/utils/url.js +9 -1
  85. package/node_modules/hono/dist/client/client.js +25 -11
  86. package/node_modules/hono/dist/client/utils.js +4 -1
  87. package/node_modules/hono/dist/context.js +4 -0
  88. package/node_modules/hono/dist/helper/accepts/accepts.js +36 -2
  89. package/node_modules/hono/dist/helper/ssg/ssg.js +1 -1
  90. package/node_modules/hono/dist/helper/ssg/utils.js +30 -10
  91. package/node_modules/hono/dist/jsx/dom/render.js +2 -0
  92. package/node_modules/hono/dist/middleware/cache/index.js +1 -1
  93. package/node_modules/hono/dist/middleware/cors/index.js +1 -1
  94. package/node_modules/hono/dist/middleware/csrf/index.js +1 -1
  95. package/node_modules/hono/dist/middleware/etag/digest.js +1 -1
  96. package/node_modules/hono/dist/middleware/etag/index.js +3 -3
  97. package/node_modules/hono/dist/middleware/pretty-json/index.js +3 -1
  98. package/node_modules/hono/dist/request.js +8 -4
  99. package/node_modules/hono/dist/router/linear-router/router.js +7 -2
  100. package/node_modules/hono/dist/router/pattern-router/router.js +3 -9
  101. package/node_modules/hono/dist/router/reg-exp-router/node.js +6 -2
  102. package/node_modules/hono/dist/router/reg-exp-router/router.js +53 -84
  103. package/node_modules/hono/dist/router/reg-exp-router/trie.js +2 -1
  104. package/node_modules/hono/dist/router/trie-router/node.js +46 -69
  105. package/node_modules/hono/dist/router/trie-router/router.js +3 -11
  106. package/node_modules/hono/dist/router/utils.js +5 -0
  107. package/node_modules/hono/dist/types/context.d.ts +4 -0
  108. package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +3 -0
  109. package/node_modules/hono/dist/types/router/trie-router/node.d.ts +1 -2
  110. package/node_modules/hono/dist/types/router/trie-router/router.d.ts +0 -1
  111. package/node_modules/hono/dist/types/router/utils.d.ts +1 -0
  112. package/node_modules/hono/dist/types/utils/url.d.ts +4 -0
  113. package/node_modules/hono/dist/utils/body.js +15 -3
  114. package/node_modules/hono/dist/utils/cookie.js +1 -1
  115. package/node_modules/hono/dist/utils/ipaddr.js +5 -3
  116. package/node_modules/hono/dist/utils/stream.js +7 -1
  117. package/node_modules/hono/dist/utils/url.js +9 -1
  118. package/node_modules/hono/package.json +1 -1
  119. package/node_modules/is-plain-object/README.md +39 -95
  120. package/node_modules/is-plain-object/dist/is-plain-object.js +0 -2
  121. package/node_modules/is-plain-object/is-plain-object.d.ts +6 -1
  122. package/node_modules/is-plain-object/package.json +8 -34
  123. package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +4 -3
  124. package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +4 -3
  125. package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +4 -3
  126. package/node_modules/jose/dist/types/jwks/remote.d.ts +4 -4
  127. package/node_modules/jose/dist/types/jws/general/verify.d.ts +3 -3
  128. package/node_modules/jose/dist/types/jwt/encrypt.d.ts +12 -17
  129. package/node_modules/jose/dist/types/jwt/sign.d.ts +8 -14
  130. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +9 -15
  131. package/node_modules/jose/dist/types/types.d.ts +4 -2
  132. package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +30 -8
  133. package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +8 -4
  134. package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +6 -13
  135. package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +19 -19
  136. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +32 -21
  137. package/node_modules/jose/dist/webapi/jwk/embedded.js +15 -1
  138. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +11 -5
  139. package/node_modules/jose/dist/webapi/jwks/local.js +45 -53
  140. package/node_modules/jose/dist/webapi/jwks/remote.js +82 -103
  141. package/node_modules/jose/dist/webapi/jws/compact/sign.js +10 -9
  142. package/node_modules/jose/dist/webapi/jws/flattened/sign.js +2 -1
  143. package/node_modules/jose/dist/webapi/jws/flattened/verify.js +8 -7
  144. package/node_modules/jose/dist/webapi/jws/general/sign.js +5 -3
  145. package/node_modules/jose/dist/webapi/jws/general/verify.js +51 -21
  146. package/node_modules/jose/dist/webapi/jwt/decrypt.js +7 -9
  147. package/node_modules/jose/dist/webapi/jwt/encrypt.js +21 -50
  148. package/node_modules/jose/dist/webapi/jwt/sign.js +8 -41
  149. package/node_modules/jose/dist/webapi/jwt/unsecured.js +21 -42
  150. package/node_modules/jose/dist/webapi/key/generate_key_pair.js +6 -2
  151. package/node_modules/jose/dist/webapi/key/generate_secret.js +7 -6
  152. package/node_modules/jose/dist/webapi/key/import.js +16 -12
  153. package/node_modules/jose/dist/webapi/lib/asn1.js +7 -2
  154. package/node_modules/jose/dist/webapi/lib/content_encryption.js +7 -15
  155. package/node_modules/jose/dist/webapi/lib/deflate.js +8 -0
  156. package/node_modules/jose/dist/webapi/lib/helpers.js +1 -1
  157. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +85 -28
  158. package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +45 -13
  159. package/node_modules/jose/dist/webapi/lib/jwk_metadata.js +20 -0
  160. package/node_modules/jose/dist/webapi/lib/jws_sign.js +47 -36
  161. package/node_modules/jose/dist/webapi/lib/jws_verify.js +77 -45
  162. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +82 -47
  163. package/node_modules/jose/dist/webapi/lib/key.js +24 -9
  164. package/node_modules/jose/dist/webapi/lib/key_management.js +10 -4
  165. package/node_modules/jose/dist/webapi/lib/key_options.js +6 -0
  166. package/node_modules/jose/dist/webapi/lib/options.js +26 -0
  167. package/node_modules/jose/dist/webapi/lib/type_checks.js +11 -13
  168. package/node_modules/jose/package.json +1 -1
  169. package/package.json +2 -2
  170. package/dist/ui/assets/index-0Q2eNytX.js +0 -110
  171. package/node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/HISTORY.md +0 -114
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ /*!
3
+ * content-type
4
+ * Copyright(c) 2015 Douglas Christopher Wilson
5
+ * MIT Licensed
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.format = format;
9
+ exports.parse = parse;
10
+ const TEXT_REGEXP = /^[\u0009\u0020-\u007e\u0080-\u00ff]*$/;
11
+ const TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
12
+ /**
13
+ * RegExp to match chars that must be quoted-pair in RFC 9110 sec 5.6.4
14
+ */
15
+ const QUOTE_REGEXP = /[\\"]/g;
16
+ /**
17
+ * RegExp to match type in RFC 9110 sec 8.3.1
18
+ *
19
+ * media-type = type "/" subtype
20
+ * type = token
21
+ * subtype = token
22
+ */
23
+ const TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
24
+ /**
25
+ * Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.
26
+ */
27
+ const NullObject = /* @__PURE__ */ (() => {
28
+ const C = function () { };
29
+ C.prototype = Object.create(null);
30
+ return C;
31
+ })();
32
+ /**
33
+ * Format an object into a `Content-Type` header.
34
+ */
35
+ function format(obj) {
36
+ const { type, parameters } = obj;
37
+ if (!type || !TYPE_REGEXP.test(type)) {
38
+ throw new TypeError(`Invalid type: ${type}`);
39
+ }
40
+ let result = type;
41
+ if (parameters) {
42
+ for (const param of Object.keys(parameters)) {
43
+ if (!TOKEN_REGEXP.test(param)) {
44
+ throw new TypeError(`Invalid parameter name: ${param}`);
45
+ }
46
+ result += `; ${param}=${qstring(parameters[param])}`;
47
+ }
48
+ }
49
+ return result;
50
+ }
51
+ /**
52
+ * Parse a `Content-Type` header.
53
+ */
54
+ function parse(header, options) {
55
+ const stopChar = options?.comma === true ? COMMA : 65536; // Sentinel for "no stop char".
56
+ const len = header.length;
57
+ let index = skipOWS(header, options?.start ?? 0, len);
58
+ const valueStart = index;
59
+ index = skipValue(header, index, len, stopChar);
60
+ const valueEnd = trailingOWS(header, valueStart, index);
61
+ const type = header.slice(valueStart, valueEnd).toLowerCase();
62
+ if (options?.parameters === false) {
63
+ return { type, index, parameters: new NullObject() };
64
+ }
65
+ return parseParameters(header, type, index, len, stopChar);
66
+ }
67
+ const SP = 32; // " "
68
+ const HTAB = 9; // "\t"
69
+ const SEMI = 59; // ";"
70
+ const EQ = 61; // "="
71
+ const DQUOTE = 34; // '"'
72
+ const BSLASH = 92; // "\\"
73
+ const COMMA = 44; // ","
74
+ /**
75
+ * Parses the parameters of a `Content-Type` header starting at the given index.
76
+ */
77
+ function parseParameters(header, type, index, len, stopChar) {
78
+ const parameters = new NullObject();
79
+ parameter: while (index < len) {
80
+ if (header.charCodeAt(index) === stopChar)
81
+ break;
82
+ index = skipOWS(header, index + 1 /* Skip over ; */, len);
83
+ const keyStart = index;
84
+ while (index < len) {
85
+ const code = header.charCodeAt(index);
86
+ if (code === stopChar)
87
+ break parameter;
88
+ if (code === SEMI)
89
+ continue parameter;
90
+ if (code === EQ) {
91
+ const keyEnd = trailingOWS(header, keyStart, index);
92
+ const key = header.slice(keyStart, keyEnd).toLowerCase();
93
+ index = skipOWS(header, index + 1, len);
94
+ if (index < len && header.charCodeAt(index) === DQUOTE) {
95
+ index++;
96
+ let value = "";
97
+ while (index < len) {
98
+ const code = header.charCodeAt(index++);
99
+ if (code === DQUOTE) {
100
+ index = skipValue(header, index, len, stopChar);
101
+ if (parameters[key] === undefined)
102
+ parameters[key] = value;
103
+ break;
104
+ }
105
+ if (code === BSLASH && index < len) {
106
+ value += header[index++];
107
+ continue;
108
+ }
109
+ value += String.fromCharCode(code);
110
+ }
111
+ continue parameter;
112
+ }
113
+ const valueStart = index;
114
+ index = skipValue(header, index, len, stopChar);
115
+ if (parameters[key] === undefined) {
116
+ const valueEnd = trailingOWS(header, valueStart, index);
117
+ parameters[key] = header.slice(valueStart, valueEnd);
118
+ }
119
+ continue parameter;
120
+ }
121
+ index++;
122
+ }
123
+ }
124
+ return { type, index, parameters };
125
+ }
126
+ /**
127
+ * Skip over characters until a semicolon or other exit character.
128
+ */
129
+ function skipValue(str, index, len, stopChar) {
130
+ while (index < len) {
131
+ const code = str.charCodeAt(index);
132
+ if (code === SEMI || code === stopChar)
133
+ break;
134
+ index++;
135
+ }
136
+ return index;
137
+ }
138
+ /**
139
+ * Skip optional whitespace (OWS) in an HTTP header value.
140
+ *
141
+ * OWS is defined in RFC 9110 sec 5.6.3 as SP (" ") or HTAB ("\t").
142
+ */
143
+ function skipOWS(header, index, len) {
144
+ while (index < len) {
145
+ const char = header.charCodeAt(index);
146
+ if (char !== SP && char !== HTAB)
147
+ break;
148
+ index++;
149
+ }
150
+ return index;
151
+ }
152
+ /**
153
+ * Trim optional whitespace (OWS) from the end of a substring.
154
+ *
155
+ * OWS is defined in RFC 9110 sec 5.6.3 as SP (" ") or HTAB ("\t").
156
+ */
157
+ function trailingOWS(header, start, end) {
158
+ while (end > start) {
159
+ const char = header.charCodeAt(end - 1);
160
+ if (char !== SP && char !== HTAB)
161
+ break;
162
+ end--;
163
+ }
164
+ return end;
165
+ }
166
+ /**
167
+ * Serialize a parameter value.
168
+ */
169
+ function qstring(str) {
170
+ if (TOKEN_REGEXP.test(str))
171
+ return str;
172
+ if (TEXT_REGEXP.test(str))
173
+ return `"${str.replace(QUOTE_REGEXP, "\\$&")}"`;
174
+ throw new TypeError(`Invalid parameter value: ${str}`);
175
+ }
176
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\nconst TEXT_REGEXP = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]*$/;\nconst TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 9110 sec 5.6.4\n */\nconst QUOTE_REGEXP = /[\\\\\"]/g;\n\n/**\n * RegExp to match type in RFC 9110 sec 8.3.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nconst TYPE_REGEXP =\n /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n\n/**\n * Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.\n */\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () {};\n C.prototype = Object.create(null);\n return C;\n})() as unknown as { new (): any };\n\n/**\n * The content type object contains a type string and optional parameters.\n */\nexport interface ContentType {\n type: string;\n index: number;\n parameters: Record<string, string>;\n}\n\n/**\n * Format an object into a `Content-Type` header.\n */\nexport function format(obj: Partial<ContentType>): string {\n const { type, parameters } = obj;\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError(`Invalid type: ${type}`);\n }\n\n let result = type;\n\n if (parameters) {\n for (const param of Object.keys(parameters)) {\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError(`Invalid parameter name: ${param}`);\n }\n\n result += `; ${param}=${qstring(parameters[param])}`;\n }\n }\n\n return result;\n}\n\n/**\n * Options for parsing a `Content-Type` header.\n */\nexport interface ParseOptions {\n /**\n * Exit early on the first semicolon, returning only the type.\n * This is useful for parsing the MIME from `Content-Type` headers.\n *\n * @default false\n */\n parameters?: boolean;\n /**\n * Exits early on a comma, returning the first value and parameters.\n * This is useful for parsing `Accept` headers.\n *\n * @default false\n */\n comma?: boolean;\n /**\n * The index to start parsing from.\n *\n * @default 0\n */\n start?: number;\n}\n\n/**\n * Parse a `Content-Type` header.\n */\nexport function parse(header: string, options?: ParseOptions): ContentType {\n const stopChar = options?.comma === true ? COMMA : 65_536; // Sentinel for \"no stop char\".\n const len = header.length;\n let index = skipOWS(header, options?.start ?? 0, len);\n\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n const valueEnd = trailingOWS(header, valueStart, index);\n const type = header.slice(valueStart, valueEnd).toLowerCase();\n\n if (options?.parameters === false) {\n return { type, index, parameters: new NullObject() };\n }\n\n return parseParameters(header, type, index, len, stopChar);\n}\n\nconst SP = 32; // \" \"\nconst HTAB = 9; // \"\\t\"\nconst SEMI = 59; // \";\"\nconst EQ = 61; // \"=\"\nconst DQUOTE = 34; // '\"'\nconst BSLASH = 92; // \"\\\\\"\nconst COMMA = 44; // \",\"\n\n/**\n * Parses the parameters of a `Content-Type` header starting at the given index.\n */\nfunction parseParameters(\n header: string,\n type: string,\n index: number,\n len: number,\n stopChar: number,\n): ContentType {\n const parameters: Record<string, string> = new NullObject();\n\n parameter: while (index < len) {\n if (header.charCodeAt(index) === stopChar) break;\n\n index = skipOWS(header, index + 1 /* Skip over ; */, len);\n\n const keyStart = index;\n\n while (index < len) {\n const code = header.charCodeAt(index);\n if (code === stopChar) break parameter;\n\n if (code === SEMI) continue parameter;\n\n if (code === EQ) {\n const keyEnd = trailingOWS(header, keyStart, index);\n const key = header.slice(keyStart, keyEnd).toLowerCase();\n\n index = skipOWS(header, index + 1, len);\n\n if (index < len && header.charCodeAt(index) === DQUOTE) {\n index++;\n\n let value = \"\";\n while (index < len) {\n const code = header.charCodeAt(index++);\n if (code === DQUOTE) {\n index = skipValue(header, index, len, stopChar);\n if (parameters[key] === undefined) parameters[key] = value;\n break;\n }\n\n if (code === BSLASH && index < len) {\n value += header[index++];\n continue;\n }\n\n value += String.fromCharCode(code);\n }\n\n continue parameter;\n }\n\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n\n if (parameters[key] === undefined) {\n const valueEnd = trailingOWS(header, valueStart, index);\n parameters[key] = header.slice(valueStart, valueEnd);\n }\n\n continue parameter;\n }\n\n index++;\n }\n }\n\n return { type, index, parameters };\n}\n\n/**\n * Skip over characters until a semicolon or other exit character.\n */\nfunction skipValue(\n str: string,\n index: number,\n len: number,\n stopChar: number,\n): number {\n while (index < len) {\n const code = str.charCodeAt(index);\n if (code === SEMI || code === stopChar) break;\n index++;\n }\n return index;\n}\n\n/**\n * Skip optional whitespace (OWS) in an HTTP header value.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction skipOWS(header: string, index: number, len: number): number {\n while (index < len) {\n const char = header.charCodeAt(index);\n if (char !== SP && char !== HTAB) break;\n index++;\n }\n return index;\n}\n\n/**\n * Trim optional whitespace (OWS) from the end of a substring.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction trailingOWS(header: string, start: number, end: number): number {\n while (end > start) {\n const char = header.charCodeAt(end - 1);\n if (char !== SP && char !== HTAB) break;\n end--;\n }\n return end;\n}\n\n/**\n * Serialize a parameter value.\n */\nfunction qstring(str: string): string {\n if (TOKEN_REGEXP.test(str)) return str;\n if (TEXT_REGEXP.test(str)) return `\"${str.replace(QUOTE_REGEXP, \"\\\\$&\")}\"`;\n\n throw new TypeError(`Invalid parameter value: ${str}`);\n}\n"]}
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "content-type",
3
+ "version": "2.1.0",
4
+ "description": "Create and parse HTTP Content-Type header",
5
+ "keywords": [
6
+ "content-type",
7
+ "http",
8
+ "req",
9
+ "res",
10
+ "rfc7231",
11
+ "rfc9110"
12
+ ],
13
+ "repository": "jshttp/content-type",
14
+ "funding": {
15
+ "type": "opencollective",
16
+ "url": "https://opencollective.com/express"
17
+ },
18
+ "license": "MIT",
19
+ "author": "Douglas Christopher Wilson <doug@somethingdoug.com>",
20
+ "type": "commonjs",
21
+ "exports": "./dist/index.js",
22
+ "main": "./dist/index.js",
23
+ "typings": "./dist/index.d.ts",
24
+ "files": [
25
+ "dist/"
26
+ ],
27
+ "scripts": {
28
+ "bench": "vitest bench",
29
+ "build": "ts-scripts build",
30
+ "format": "ts-scripts format",
31
+ "prepare": "ts-scripts install && npm run build",
32
+ "specs": "ts-scripts specs",
33
+ "test": "ts-scripts test"
34
+ },
35
+ "devDependencies": {
36
+ "@borderless/ts-scripts": "^0.15.0",
37
+ "@vitest/coverage-v8": "^3.0.5",
38
+ "typescript": "^5.7.3",
39
+ "vitest": "^3.2.4"
40
+ },
41
+ "engines": {
42
+ "node": ">=18"
43
+ },
44
+ "ts-scripts": {
45
+ "dist": [
46
+ "dist"
47
+ ],
48
+ "project": [
49
+ "tsconfig.build.json"
50
+ ]
51
+ }
52
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "negotiator",
3
3
  "description": "HTTP content negotiation",
4
- "version": "1.0.0",
4
+ "version": "1.1.0",
5
5
  "contributors": [
6
6
  "Douglas Christopher Wilson <doug@somethingdoug.com>",
7
7
  "Federico Romero <federico.romero@outboxlabs.com>",
@@ -17,27 +17,33 @@
17
17
  "accept-charset"
18
18
  ],
19
19
  "repository": "jshttp/negotiator",
20
+ "funding": {
21
+ "type": "opencollective",
22
+ "url": "https://opencollective.com/express"
23
+ },
24
+ "dependencies": {
25
+ "content-type": "^2.1.0"
26
+ },
20
27
  "devDependencies": {
21
28
  "eslint": "7.32.0",
22
29
  "eslint-plugin-markdown": "2.2.1",
23
- "mocha": "9.1.3",
24
- "nyc": "15.1.0"
30
+ "mocha": "^11.7.0",
31
+ "nyc": "^17.1.0",
32
+ "vitest": "3.2.4"
25
33
  },
26
34
  "files": [
27
35
  "lib/",
28
- "HISTORY.md",
29
- "LICENSE",
30
- "index.js",
31
- "README.md"
36
+ "index.js"
32
37
  ],
33
38
  "engines": {
34
- "node": ">= 0.6"
39
+ "node": ">=18"
35
40
  },
36
41
  "scripts": {
42
+ "bench": "vitest bench",
37
43
  "lint": "eslint .",
38
- "test": "mocha --reporter spec --check-leaks --bail test/",
44
+ "test": "mocha --reporter spec --check-leaks test/",
39
45
  "test:debug": "mocha --reporter spec --check-leaks --inspect --inspect-brk test/",
40
- "test-ci": "nyc --reporter=lcov --reporter=text npm test",
46
+ "test-ci": "nyc --reporter=lcovonly --reporter=text npm test",
41
47
  "test-cov": "nyc --reporter=html --reporter=text npm test"
42
48
  }
43
49
  }
@@ -8,7 +8,7 @@ This package contains type definitions for node (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Fri, 07 Aug 2026 17:46:44 GMT
11
+ * Last updated: Mon, 24 Aug 2026 19:40:21 GMT
12
12
  * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
13
13
 
14
14
  # Credits
@@ -316,11 +316,11 @@ declare module "node:buffer" {
316
316
  * such `Buffer` instances with zeroes.
317
317
  *
318
318
  * When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances,
319
- * allocations under 4 KiB are sliced from a single pre-allocated `Buffer`. This
320
- * allows applications to avoid the garbage collection overhead of creating many
321
- * individually allocated `Buffer` instances. This approach improves both
322
- * performance and memory usage by eliminating the need to track and clean up as
323
- * many individual `ArrayBuffer` objects.
319
+ * allocations less than `Buffer.poolSize >>> 1` (32KiB when default poolSize is used) are sliced
320
+ * from a single pre-allocated `Buffer`. This allows applications to avoid the
321
+ * garbage collection overhead of creating many individually allocated `Buffer`
322
+ * instances. This approach improves both performance and memory usage by
323
+ * eliminating the need to track and clean up as many individual `ArrayBuffer` objects.
324
324
  *
325
325
  * However, in the case where a developer may need to retain a small chunk of
326
326
  * memory from a pool for an indeterminate amount of time, it may be appropriate
@@ -3742,7 +3742,7 @@ declare module "node:crypto" {
3742
3742
  ciphertext: NodeJS.BufferSource,
3743
3743
  sharedKeyAlgorithm: AlgorithmIdentifier | HmacImportParams | AesDerivedKeyParams | KmacImportParams,
3744
3744
  extractable: boolean,
3745
- usages: KeyUsage[],
3745
+ keyUsages: KeyUsage[],
3746
3746
  ): Promise<CryptoKey>;
3747
3747
  decrypt(
3748
3748
  algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AeadParams,
@@ -3774,7 +3774,7 @@ declare module "node:crypto" {
3774
3774
  encapsulationKey: CryptoKey,
3775
3775
  sharedKeyAlgorithm: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | KmacImportParams,
3776
3776
  extractable: boolean,
3777
- usages: KeyUsage[],
3777
+ keyUsages: KeyUsage[],
3778
3778
  ): Promise<EncapsulatedKey>;
3779
3779
  encrypt(
3780
3780
  algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AeadParams,
@@ -175,6 +175,7 @@ declare module "node:http" {
175
175
  headers?: OutgoingHttpHeaders | readonly string[] | undefined;
176
176
  host?: string | null | undefined;
177
177
  hostname?: string | null | undefined;
178
+ httpValidation?: "strict" | "relaxed" | "insecure" | undefined;
178
179
  insecureHTTPParser?: boolean | undefined;
179
180
  localAddress?: string | undefined;
180
181
  localPort?: number | undefined;
@@ -254,6 +255,21 @@ declare module "node:http" {
254
255
  * @since v20.1.0
255
256
  */
256
257
  highWaterMark?: number | undefined;
258
+ /**
259
+ * Controls HTTP header value validation strictness
260
+ * for incoming requests. Accepted values are:
261
+ * * `'strict'`: Strictest validation; rejects any non-ASCII or control
262
+ * characters in header values.
263
+ * * `'relaxed'`: Allows a limited set of non-ASCII characters in header
264
+ * values, aligning with the
265
+ * [Fetch specification](https://fetch.spec.whatwg.org/).
266
+ * * `'insecure'`: Disables all header value validation (equivalent to
267
+ * `insecureHTTPParser: true`).
268
+ *
269
+ * Cannot be used together with `insecureHTTPParser`. **Default:** `'strict'`.
270
+ * @since v26.3.0
271
+ */
272
+ httpValidation?: "strict" | "relaxed" | "insecure" | undefined;
257
273
  /**
258
274
  * Use an insecure HTTP parser that accepts invalid HTTP headers when `true`.
259
275
  * Using the insecure parser should be avoided.
@@ -840,9 +840,12 @@ declare module "node:http2" {
840
840
  * HTTP/2 request to the connected server.
841
841
  *
842
842
  * When a `ClientHttp2Session` is first created, the socket may not yet be
843
- * connected. if `clienthttp2session.request()` is called during this time, the
843
+ * connected. If `clienthttp2session.request()` is called during this time, the
844
844
  * actual request will be deferred until the socket is ready to go.
845
- * If the `session` is closed before the actual request be executed, an `ERR_HTTP2_GOAWAY_SESSION` is thrown.
845
+ *
846
+ * If the session becomes unavailable before the request can be created, the
847
+ * returned stream will emit `ERR_HTTP2_GOAWAY_SESSION` or
848
+ * `ERR_HTTP2_INVALID_SESSION` asynchronously.
846
849
  *
847
850
  * This method is only available if `http2session.type` is equal to `http2.constants.NGHTTP2_SESSION_CLIENT`.
848
851
  *
@@ -1166,6 +1169,11 @@ declare module "node:http2" {
1166
1169
  * @default 128
1167
1170
  */
1168
1171
  maxHeaderListPairs?: number | undefined;
1172
+ /**
1173
+ * Sets the maximum number of uniq origin the sever
1174
+ * can send via ORIGIN frames. **Default:** `128`.
1175
+ */
1176
+ maxOriginSetSize?: number | undefined;
1169
1177
  /**
1170
1178
  * Sets the maximum number of outstanding, unacknowledged pings.
1171
1179
  * @default 10
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "26.2.0",
3
+ "version": "26.3.0",
4
4
  "description": "TypeScript definitions for node",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -150,6 +150,6 @@
150
150
  "undici-types": "~8.3.0"
151
151
  },
152
152
  "peerDependencies": {},
153
- "typesPublisherContentHash": "e8c7e12bafdd8ff8648e4d416be7af2d4373bffe17a7498d815e251898739e7c",
153
+ "typesPublisherContentHash": "125032099e1f7132c95bf327b36f694c396de965952f7cb9632ac916bbad47e9",
154
154
  "typeScriptVersion": "5.6"
155
155
  }
@@ -549,6 +549,58 @@ declare module "node:process" {
549
549
  * @since v20.0.0
550
550
  */
551
551
  has(scope: string, reference?: string): boolean;
552
+ /**
553
+ * Drops the specified permission from the current process. This operation is
554
+ * **irreversible** — once a permission is dropped, it cannot be restored through
555
+ * any Node.js API.
556
+ *
557
+ * If no reference is provided, the entire scope is dropped. For example,
558
+ * `process.permission.drop('fs.read')` will revoke ALL file system read
559
+ * permissions.
560
+ *
561
+ * When a reference is provided, only the permission for that specific resource
562
+ * is dropped. For example, `process.permission.drop('fs.read', '/etc/myapp')`
563
+ * will revoke read access to that directory while keeping other read
564
+ * permissions intact.
565
+ *
566
+ * **Important:** You can only drop the exact resource that was explicitly
567
+ * granted. The reference passed to `drop()` must match the original grant:
568
+ *
569
+ * * If a permission was granted using a wildcard (`*`), such as
570
+ * `--allow-fs-read=*`, individual paths cannot be dropped - only the entire
571
+ * scope can be dropped (by calling `drop()` without a reference).
572
+ * * If a directory was granted (e.g. `--allow-fs-read=/my/folder`), you cannot
573
+ * drop access to individual files inside it. You must drop the same directory
574
+ * that was granted. Any remaining grants continue to apply.
575
+ *
576
+ * The available scopes are the same as [`process.permission.has()`][]:
577
+ *
578
+ * `fs` - All File System (drops both read and write)
579
+ * * `fs.read` - File System read operations
580
+ * * `fs.write` - File System write operations
581
+ * * `child` - Child process spawning operations
582
+ * * `worker` - Worker thread spawning operation
583
+ * * `net` - Network operations
584
+ * * `inspector` - Inspector operations
585
+ * * `wasi` - WASI operations
586
+ * * `addon` - Native addon operations
587
+ *
588
+ * ```js
589
+ * const fs = require('node:fs');
590
+ *
591
+ * // Read configuration during startup
592
+ * const config = fs.readFileSync('/etc/myapp/config.json', 'utf8');
593
+ *
594
+ * // Drop read access to the config directory after initialization
595
+ * process.permission.drop('fs.read', '/etc/myapp');
596
+ *
597
+ * // This will now throw ERR_ACCESS_DENIED
598
+ * fs.readFileSync('/etc/myapp/config.json');
599
+ * ```
600
+ * @since v26.3.0
601
+ * @experimental
602
+ */
603
+ drop(scope: string, reference?: string): void;
552
604
  }
553
605
  interface ProcessReport {
554
606
  /**