bantou 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. package/.output/nitro.json +13 -0
  2. package/.output/public/_nuxt/BmGsA4i2.js +1 -0
  3. package/.output/public/_nuxt/D_G6gzEa.js +1 -0
  4. package/.output/public/_nuxt/builds/latest.json +1 -0
  5. package/.output/public/_nuxt/builds/meta/9a6f6e29-92f1-40d0-84d5-974a9154d48f.json +1 -0
  6. package/.output/public/_nuxt/entry.CZSvzYhH.css +1 -0
  7. package/.output/public/_nuxt/error-404.C3wqHTJz.css +1 -0
  8. package/.output/public/_nuxt/error-500.D6rBzoDj.css +1 -0
  9. package/.output/public/_nuxt/pdFQkwM_.js +4 -0
  10. package/.output/server/chunks/_/error-500.mjs +20 -0
  11. package/.output/server/chunks/_/error-500.mjs.map +1 -0
  12. package/.output/server/chunks/nitro/nitro.mjs +5858 -0
  13. package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
  14. package/.output/server/chunks/routes/mcp.mjs +22 -0
  15. package/.output/server/chunks/routes/mcp.mjs.map +1 -0
  16. package/.output/server/chunks/routes/renderer.mjs +462 -0
  17. package/.output/server/chunks/routes/renderer.mjs.map +1 -0
  18. package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  19. package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  20. package/.output/server/chunks/virtual/precomputed.mjs +4 -0
  21. package/.output/server/chunks/virtual/precomputed.mjs.map +1 -0
  22. package/.output/server/index.mjs +18 -0
  23. package/.output/server/index.mjs.map +1 -0
  24. package/.output/server/node_modules/@babel/parser/lib/index.js +14657 -0
  25. package/.output/server/node_modules/@babel/parser/package.json +50 -0
  26. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js +64 -0
  27. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js +16 -0
  28. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js +32 -0
  29. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js +246 -0
  30. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/package.json +1 -0
  31. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +41 -0
  32. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +429 -0
  33. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +971 -0
  34. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/requestBody.js +58 -0
  35. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js +13 -0
  36. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js +961 -0
  37. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +228 -0
  38. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +51 -0
  39. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js +57 -0
  40. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +1137 -0
  41. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +92 -0
  42. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uriTemplate.js +239 -0
  43. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +2065 -0
  44. package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +87 -0
  45. package/.output/server/node_modules/@modelcontextprotocol/sdk/package.json +165 -0
  46. package/.output/server/node_modules/@parcel/watcher-wasm/index.mjs +349 -0
  47. package/.output/server/node_modules/@parcel/watcher-wasm/package.json +44 -0
  48. package/.output/server/node_modules/@parcel/watcher-wasm/watcher.wasm +0 -0
  49. package/.output/server/node_modules/@parcel/watcher-wasm/wrapper.js +88 -0
  50. package/.output/server/node_modules/@unagents/messenger-broker/dist/index.mjs +12 -0
  51. package/.output/server/node_modules/@unagents/messenger-broker/dist/shared/messenger-broker.B8W77sqB.mjs +1177 -0
  52. package/.output/server/node_modules/@unagents/messenger-broker/package.json +37 -0
  53. package/.output/server/node_modules/@unagents/messenger-client/dist/index.mjs +9 -0
  54. package/.output/server/node_modules/@unagents/messenger-client/dist/shared/messenger-client.CfQVmH_Z.mjs +975 -0
  55. package/.output/server/node_modules/@unagents/messenger-client/dist/shared/messenger-client.CoDKzubj.mjs +1000 -0
  56. package/.output/server/node_modules/@unagents/messenger-client/package.json +37 -0
  57. package/.output/server/node_modules/@unagents/messenger-protocol/dist/index.mjs +103 -0
  58. package/.output/server/node_modules/@unagents/messenger-protocol/package.json +29 -0
  59. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6802 -0
  60. package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  61. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +729 -0
  62. package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  63. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1420 -0
  64. package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  65. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1933 -0
  66. package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  67. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +7085 -0
  68. package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  69. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1917 -0
  70. package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  71. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +951 -0
  72. package/.output/server/node_modules/@vue/server-renderer/package.json +53 -0
  73. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +655 -0
  74. package/.output/server/node_modules/@vue/shared/package.json +47 -0
  75. package/.output/server/node_modules/ajv/dist/ajv.js +50 -0
  76. package/.output/server/node_modules/ajv/dist/compile/codegen/code.js +156 -0
  77. package/.output/server/node_modules/ajv/dist/compile/codegen/index.js +697 -0
  78. package/.output/server/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  79. package/.output/server/node_modules/ajv/dist/compile/errors.js +123 -0
  80. package/.output/server/node_modules/ajv/dist/compile/index.js +242 -0
  81. package/.output/server/node_modules/ajv/dist/compile/names.js +28 -0
  82. package/.output/server/node_modules/ajv/dist/compile/ref_error.js +12 -0
  83. package/.output/server/node_modules/ajv/dist/compile/resolve.js +155 -0
  84. package/.output/server/node_modules/ajv/dist/compile/rules.js +26 -0
  85. package/.output/server/node_modules/ajv/dist/compile/util.js +178 -0
  86. package/.output/server/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
  87. package/.output/server/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  88. package/.output/server/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
  89. package/.output/server/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  90. package/.output/server/node_modules/ajv/dist/compile/validate/index.js +520 -0
  91. package/.output/server/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
  92. package/.output/server/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
  93. package/.output/server/node_modules/ajv/dist/core.js +618 -0
  94. package/.output/server/node_modules/ajv/dist/refs/data.json +13 -0
  95. package/.output/server/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
  96. package/.output/server/node_modules/ajv/dist/runtime/equal.js +7 -0
  97. package/.output/server/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
  98. package/.output/server/node_modules/ajv/dist/runtime/uri.js +6 -0
  99. package/.output/server/node_modules/ajv/dist/runtime/validation_error.js +11 -0
  100. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
  101. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
  102. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
  103. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
  104. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
  105. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
  106. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  107. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
  108. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
  109. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
  110. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
  111. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
  112. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
  113. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
  114. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  115. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
  116. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
  117. package/.output/server/node_modules/ajv/dist/vocabularies/code.js +131 -0
  118. package/.output/server/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
  119. package/.output/server/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
  120. package/.output/server/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
  121. package/.output/server/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
  122. package/.output/server/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
  123. package/.output/server/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
  124. package/.output/server/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
  125. package/.output/server/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
  126. package/.output/server/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
  127. package/.output/server/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
  128. package/.output/server/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
  129. package/.output/server/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
  130. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
  131. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
  132. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
  133. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
  134. package/.output/server/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
  135. package/.output/server/node_modules/ajv/dist/vocabularies/validation/pattern.js +33 -0
  136. package/.output/server/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
  137. package/.output/server/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
  138. package/.output/server/node_modules/ajv/package.json +126 -0
  139. package/.output/server/node_modules/ajv-formats/dist/formats.js +208 -0
  140. package/.output/server/node_modules/ajv-formats/dist/index.js +37 -0
  141. package/.output/server/node_modules/ajv-formats/dist/limit.js +69 -0
  142. package/.output/server/node_modules/ajv-formats/package.json +74 -0
  143. package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
  144. package/.output/server/node_modules/consola/dist/core.mjs +512 -0
  145. package/.output/server/node_modules/consola/dist/index.mjs +651 -0
  146. package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  147. package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  148. package/.output/server/node_modules/consola/dist/utils.mjs +54 -0
  149. package/.output/server/node_modules/consola/package.json +136 -0
  150. package/.output/server/node_modules/content-type/index.js +225 -0
  151. package/.output/server/node_modules/content-type/package.json +42 -0
  152. package/.output/server/node_modules/cookie-es/dist/index.mjs +268 -0
  153. package/.output/server/node_modules/cookie-es/package.json +46 -0
  154. package/.output/server/node_modules/crossws/dist/_chunks/_request.mjs +83 -0
  155. package/.output/server/node_modules/crossws/dist/_chunks/adapter.mjs +234 -0
  156. package/.output/server/node_modules/crossws/dist/_chunks/error.mjs +7 -0
  157. package/.output/server/node_modules/crossws/dist/_chunks/libs/ws.mjs +6 -0
  158. package/.output/server/node_modules/crossws/dist/_chunks/node.mjs +220 -0
  159. package/.output/server/node_modules/crossws/dist/_chunks/peer.mjs +208 -0
  160. package/.output/server/node_modules/crossws/dist/adapters/node.mjs +1 -0
  161. package/.output/server/node_modules/crossws/package.json +115 -0
  162. package/.output/server/node_modules/defu/dist/defu.mjs +69 -0
  163. package/.output/server/node_modules/defu/package.json +48 -0
  164. package/.output/server/node_modules/destr/dist/index.mjs +72 -0
  165. package/.output/server/node_modules/destr/package.json +47 -0
  166. package/.output/server/node_modules/devalue/index.js +17 -0
  167. package/.output/server/node_modules/devalue/package.json +39 -0
  168. package/.output/server/node_modules/devalue/src/base64.js +60 -0
  169. package/.output/server/node_modules/devalue/src/constants.js +12 -0
  170. package/.output/server/node_modules/devalue/src/operations.js +221 -0
  171. package/.output/server/node_modules/devalue/src/parse.js +279 -0
  172. package/.output/server/node_modules/devalue/src/stringify.js +433 -0
  173. package/.output/server/node_modules/devalue/src/uneval.js +698 -0
  174. package/.output/server/node_modules/devalue/src/utils.js +190 -0
  175. package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  176. package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  177. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  178. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  179. package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  180. package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  181. package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
  182. package/.output/server/node_modules/entities/package.json +120 -0
  183. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  184. package/.output/server/node_modules/estree-walker/package.json +37 -0
  185. package/.output/server/node_modules/fast-deep-equal/index.js +46 -0
  186. package/.output/server/node_modules/fast-deep-equal/package.json +61 -0
  187. package/.output/server/node_modules/fast-uri/index.js +711 -0
  188. package/.output/server/node_modules/fast-uri/lib/schemes.js +272 -0
  189. package/.output/server/node_modules/fast-uri/lib/utils.js +799 -0
  190. package/.output/server/node_modules/fast-uri/package.json +68 -0
  191. package/.output/server/node_modules/get-port-please/dist/index.mjs +430 -0
  192. package/.output/server/node_modules/get-port-please/package.json +39 -0
  193. package/.output/server/node_modules/h3/dist/index.mjs +2498 -0
  194. package/.output/server/node_modules/h3/package.json +75 -0
  195. package/.output/server/node_modules/hookable/dist/index.mjs +257 -0
  196. package/.output/server/node_modules/hookable/package.json +54 -0
  197. package/.output/server/node_modules/http-shutdown/index.js +85 -0
  198. package/.output/server/node_modules/http-shutdown/package.json +32 -0
  199. package/.output/server/node_modules/iron-webcrypto/dist/index.js +298 -0
  200. package/.output/server/node_modules/iron-webcrypto/package.json +72 -0
  201. package/.output/server/node_modules/is-extglob/index.js +20 -0
  202. package/.output/server/node_modules/is-extglob/package.json +69 -0
  203. package/.output/server/node_modules/is-glob/index.js +150 -0
  204. package/.output/server/node_modules/is-glob/package.json +81 -0
  205. package/.output/server/node_modules/jiti/dist/jiti.cjs +1 -0
  206. package/.output/server/node_modules/jiti/lib/jiti.mjs +29 -0
  207. package/.output/server/node_modules/jiti/package.json +146 -0
  208. package/.output/server/node_modules/json-schema-traverse/index.js +93 -0
  209. package/.output/server/node_modules/json-schema-traverse/package.json +43 -0
  210. package/.output/server/node_modules/listhen/dist/chunks/xdg-open.mjs +1069 -0
  211. package/.output/server/node_modules/listhen/dist/index.mjs +19 -0
  212. package/.output/server/node_modules/listhen/dist/shared/listhen.tqe5I1Rl.mjs +1040 -0
  213. package/.output/server/node_modules/listhen/package.json +84 -0
  214. package/.output/server/node_modules/napi-wasm/index.mjs +1371 -0
  215. package/.output/server/node_modules/napi-wasm/package.json +33 -0
  216. package/.output/server/node_modules/node-forge/lib/aes.js +1091 -0
  217. package/.output/server/node_modules/node-forge/lib/aesCipherSuites.js +282 -0
  218. package/.output/server/node_modules/node-forge/lib/asn1-validator.js +91 -0
  219. package/.output/server/node_modules/node-forge/lib/asn1.js +1522 -0
  220. package/.output/server/node_modules/node-forge/lib/baseN.js +186 -0
  221. package/.output/server/node_modules/node-forge/lib/cipher.js +230 -0
  222. package/.output/server/node_modules/node-forge/lib/cipherModes.js +1027 -0
  223. package/.output/server/node_modules/node-forge/lib/des.js +496 -0
  224. package/.output/server/node_modules/node-forge/lib/ed25519.js +1091 -0
  225. package/.output/server/node_modules/node-forge/lib/forge.js +13 -0
  226. package/.output/server/node_modules/node-forge/lib/hmac.js +146 -0
  227. package/.output/server/node_modules/node-forge/lib/index.js +33 -0
  228. package/.output/server/node_modules/node-forge/lib/jsbn.js +1294 -0
  229. package/.output/server/node_modules/node-forge/lib/kem.js +168 -0
  230. package/.output/server/node_modules/node-forge/lib/log.js +319 -0
  231. package/.output/server/node_modules/node-forge/lib/md.all.js +13 -0
  232. package/.output/server/node_modules/node-forge/lib/md.js +11 -0
  233. package/.output/server/node_modules/node-forge/lib/md5.js +289 -0
  234. package/.output/server/node_modules/node-forge/lib/mgf.js +12 -0
  235. package/.output/server/node_modules/node-forge/lib/mgf1.js +57 -0
  236. package/.output/server/node_modules/node-forge/lib/oids.js +180 -0
  237. package/.output/server/node_modules/node-forge/lib/pbe.js +1029 -0
  238. package/.output/server/node_modules/node-forge/lib/pbkdf2.js +211 -0
  239. package/.output/server/node_modules/node-forge/lib/pem.js +413 -0
  240. package/.output/server/node_modules/node-forge/lib/pkcs1.js +276 -0
  241. package/.output/server/node_modules/node-forge/lib/pkcs12.js +1081 -0
  242. package/.output/server/node_modules/node-forge/lib/pkcs7.js +1260 -0
  243. package/.output/server/node_modules/node-forge/lib/pkcs7asn1.js +410 -0
  244. package/.output/server/node_modules/node-forge/lib/pki.js +102 -0
  245. package/.output/server/node_modules/node-forge/lib/prime.js +297 -0
  246. package/.output/server/node_modules/node-forge/lib/prng.js +419 -0
  247. package/.output/server/node_modules/node-forge/lib/pss.js +241 -0
  248. package/.output/server/node_modules/node-forge/lib/random.js +191 -0
  249. package/.output/server/node_modules/node-forge/lib/rc2.js +410 -0
  250. package/.output/server/node_modules/node-forge/lib/rsa.js +2014 -0
  251. package/.output/server/node_modules/node-forge/lib/sha1.js +319 -0
  252. package/.output/server/node_modules/node-forge/lib/sha256.js +327 -0
  253. package/.output/server/node_modules/node-forge/lib/sha512.js +561 -0
  254. package/.output/server/node_modules/node-forge/lib/ssh.js +236 -0
  255. package/.output/server/node_modules/node-forge/lib/tls.js +4334 -0
  256. package/.output/server/node_modules/node-forge/lib/util.js +2652 -0
  257. package/.output/server/node_modules/node-forge/lib/x509.js +3257 -0
  258. package/.output/server/node_modules/node-forge/package.json +123 -0
  259. package/.output/server/node_modules/node-mock-http/dist/_polyfill/buffer/node.mjs +1 -0
  260. package/.output/server/node_modules/node-mock-http/dist/_polyfill/events/node.mjs +1 -0
  261. package/.output/server/node_modules/node-mock-http/dist/index.mjs +1 -0
  262. package/.output/server/node_modules/node-mock-http/package.json +63 -0
  263. package/.output/server/node_modules/nostics/dist/formatters/ansi.mjs +19 -0
  264. package/.output/server/node_modules/nostics/dist/index.mjs +194 -0
  265. package/.output/server/node_modules/nostics/package.json +126 -0
  266. package/.output/server/node_modules/pathe/dist/index.mjs +19 -0
  267. package/.output/server/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs +249 -0
  268. package/.output/server/node_modules/pathe/package.json +61 -0
  269. package/.output/server/node_modules/picomatch/index.js +17 -0
  270. package/.output/server/node_modules/picomatch/lib/constants.js +184 -0
  271. package/.output/server/node_modules/picomatch/lib/parse.js +1425 -0
  272. package/.output/server/node_modules/picomatch/lib/picomatch.js +361 -0
  273. package/.output/server/node_modules/picomatch/lib/scan.js +403 -0
  274. package/.output/server/node_modules/picomatch/lib/utils.js +72 -0
  275. package/.output/server/node_modules/picomatch/package.json +83 -0
  276. package/.output/server/node_modules/radix3/dist/index.mjs +262 -0
  277. package/.output/server/node_modules/radix3/package.json +52 -0
  278. package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  279. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  280. package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  281. package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  282. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  283. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +141 -0
  284. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1236 -0
  285. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +446 -0
  286. package/.output/server/node_modules/source-map-js/lib/source-node.js +420 -0
  287. package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  288. package/.output/server/node_modules/source-map-js/package.json +71 -0
  289. package/.output/server/node_modules/source-map-js/source-map.js +8 -0
  290. package/.output/server/node_modules/std-env/dist/index.mjs +1 -0
  291. package/.output/server/node_modules/std-env/package.json +43 -0
  292. package/.output/server/node_modules/tinyclip/dist/index.js +143 -0
  293. package/.output/server/node_modules/tinyclip/package.json +48 -0
  294. package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
  295. package/.output/server/node_modules/ufo/package.json +48 -0
  296. package/.output/server/node_modules/uncrypto/dist/crypto.node.mjs +16 -0
  297. package/.output/server/node_modules/uncrypto/package.json +60 -0
  298. package/.output/server/node_modules/unhead/dist/client.mjs +22 -0
  299. package/.output/server/node_modules/unhead/dist/legacy.mjs +33 -0
  300. package/.output/server/node_modules/unhead/dist/minify.mjs +183 -0
  301. package/.output/server/node_modules/unhead/dist/parser.mjs +518 -0
  302. package/.output/server/node_modules/unhead/dist/plugins.mjs +782 -0
  303. package/.output/server/node_modules/unhead/dist/server.mjs +99 -0
  304. package/.output/server/node_modules/unhead/dist/shared/unhead.BEmVMkeA.mjs +673 -0
  305. package/.output/server/node_modules/unhead/dist/shared/unhead.Bf_fPVYA.mjs +6 -0
  306. package/.output/server/node_modules/unhead/dist/shared/unhead.Bm4Y6XQI.mjs +17 -0
  307. package/.output/server/node_modules/unhead/dist/shared/unhead.C5Bksi2B.mjs +49 -0
  308. package/.output/server/node_modules/unhead/dist/shared/unhead.CGPOfp5O.mjs +32 -0
  309. package/.output/server/node_modules/unhead/dist/shared/unhead.CHEy9ana.mjs +7 -0
  310. package/.output/server/node_modules/unhead/dist/shared/unhead.C_7zwq8E.mjs +11 -0
  311. package/.output/server/node_modules/unhead/dist/shared/unhead.CaeaMM5q.mjs +19 -0
  312. package/.output/server/node_modules/unhead/dist/shared/unhead.D7HkBzZn.mjs +59 -0
  313. package/.output/server/node_modules/unhead/dist/shared/unhead.D9VfQWNo.mjs +240 -0
  314. package/.output/server/node_modules/unhead/dist/shared/unhead.DD4N5B4k.mjs +224 -0
  315. package/.output/server/node_modules/unhead/dist/shared/unhead.DGl9jcjg.mjs +196 -0
  316. package/.output/server/node_modules/unhead/dist/shared/unhead.DJuZwX9c.mjs +400 -0
  317. package/.output/server/node_modules/unhead/dist/shared/unhead.DkxnqlHC.mjs +264 -0
  318. package/.output/server/node_modules/unhead/dist/shared/unhead.DspMpm6y.mjs +48 -0
  319. package/.output/server/node_modules/unhead/dist/shared/unhead.o8j9utSy.mjs +208 -0
  320. package/.output/server/node_modules/unhead/dist/stream/client.mjs +33 -0
  321. package/.output/server/node_modules/unhead/dist/stream/iife.mjs +2 -0
  322. package/.output/server/node_modules/unhead/dist/stream/server.mjs +446 -0
  323. package/.output/server/node_modules/unhead/dist/utils.mjs +7 -0
  324. package/.output/server/node_modules/unhead/package.json +179 -0
  325. package/.output/server/node_modules/untun/dist/_chunks/cloudflared.mjs +179 -0
  326. package/.output/server/node_modules/untun/dist/_chunks/log.mjs +27 -0
  327. package/.output/server/node_modules/untun/dist/index.mjs +47 -0
  328. package/.output/server/node_modules/untun/package.json +44 -0
  329. package/.output/server/node_modules/uqr/dist/index.mjs +739 -0
  330. package/.output/server/node_modules/uqr/package.json +69 -0
  331. package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  332. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  333. package/.output/server/node_modules/vue/index.js +7 -0
  334. package/.output/server/node_modules/vue/index.mjs +1 -0
  335. package/.output/server/node_modules/vue/package.json +112 -0
  336. package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  337. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +687 -0
  338. package/.output/server/node_modules/vue-bundle-renderer/package.json +66 -0
  339. package/.output/server/node_modules/zod/index.js +7 -0
  340. package/.output/server/node_modules/zod/package.json +147 -0
  341. package/.output/server/node_modules/zod/v3/ZodError.js +143 -0
  342. package/.output/server/node_modules/zod/v3/errors.js +9 -0
  343. package/.output/server/node_modules/zod/v3/external.js +6 -0
  344. package/.output/server/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  345. package/.output/server/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  346. package/.output/server/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  347. package/.output/server/node_modules/zod/v3/helpers/util.js +133 -0
  348. package/.output/server/node_modules/zod/v3/index.js +4 -0
  349. package/.output/server/node_modules/zod/v3/locales/en.js +109 -0
  350. package/.output/server/node_modules/zod/v3/package.json +7 -0
  351. package/.output/server/node_modules/zod/v3/types.js +3697 -0
  352. package/.output/server/node_modules/zod/v4/classic/checks.js +1 -0
  353. package/.output/server/node_modules/zod/v4/classic/coerce.js +17 -0
  354. package/.output/server/node_modules/zod/v4/classic/compat.js +31 -0
  355. package/.output/server/node_modules/zod/v4/classic/deep-partial.js +13 -0
  356. package/.output/server/node_modules/zod/v4/classic/errors.js +57 -0
  357. package/.output/server/node_modules/zod/v4/classic/external.js +17 -0
  358. package/.output/server/node_modules/zod/v4/classic/from-json-schema.js +881 -0
  359. package/.output/server/node_modules/zod/v4/classic/in-out.js +36 -0
  360. package/.output/server/node_modules/zod/v4/classic/index.js +4 -0
  361. package/.output/server/node_modules/zod/v4/classic/iso.js +15 -0
  362. package/.output/server/node_modules/zod/v4/classic/package.json +7 -0
  363. package/.output/server/node_modules/zod/v4/classic/parse.js +16 -0
  364. package/.output/server/node_modules/zod/v4/classic/schemas.js +1535 -0
  365. package/.output/server/node_modules/zod/v4/core/api.js +1107 -0
  366. package/.output/server/node_modules/zod/v4/core/checks.js +516 -0
  367. package/.output/server/node_modules/zod/v4/core/compile.js +1866 -0
  368. package/.output/server/node_modules/zod/v4/core/core.js +141 -0
  369. package/.output/server/node_modules/zod/v4/core/doc.js +38 -0
  370. package/.output/server/node_modules/zod/v4/core/errors.js +267 -0
  371. package/.output/server/node_modules/zod/v4/core/index.js +19 -0
  372. package/.output/server/node_modules/zod/v4/core/json-schema-generator.js +99 -0
  373. package/.output/server/node_modules/zod/v4/core/json-schema-processors.js +843 -0
  374. package/.output/server/node_modules/zod/v4/core/json-schema.js +1 -0
  375. package/.output/server/node_modules/zod/v4/core/memoizer.js +311 -0
  376. package/.output/server/node_modules/zod/v4/core/package.json +7 -0
  377. package/.output/server/node_modules/zod/v4/core/parse.js +175 -0
  378. package/.output/server/node_modules/zod/v4/core/regexes.js +156 -0
  379. package/.output/server/node_modules/zod/v4/core/registries.js +51 -0
  380. package/.output/server/node_modules/zod/v4/core/schemas.js +2636 -0
  381. package/.output/server/node_modules/zod/v4/core/to-json-schema.js +651 -0
  382. package/.output/server/node_modules/zod/v4/core/util.js +873 -0
  383. package/.output/server/node_modules/zod/v4/core/versions.js +5 -0
  384. package/.output/server/node_modules/zod/v4/core/visit.js +169 -0
  385. package/.output/server/node_modules/zod/v4/index.js +4 -0
  386. package/.output/server/node_modules/zod/v4/locales/ar.js +111 -0
  387. package/.output/server/node_modules/zod/v4/locales/az.js +110 -0
  388. package/.output/server/node_modules/zod/v4/locales/be.js +168 -0
  389. package/.output/server/node_modules/zod/v4/locales/bg.js +125 -0
  390. package/.output/server/node_modules/zod/v4/locales/bn.js +113 -0
  391. package/.output/server/node_modules/zod/v4/locales/ca.js +112 -0
  392. package/.output/server/node_modules/zod/v4/locales/ckb.js +133 -0
  393. package/.output/server/node_modules/zod/v4/locales/cs.js +116 -0
  394. package/.output/server/node_modules/zod/v4/locales/da.js +120 -0
  395. package/.output/server/node_modules/zod/v4/locales/de.js +113 -0
  396. package/.output/server/node_modules/zod/v4/locales/el.js +112 -0
  397. package/.output/server/node_modules/zod/v4/locales/en.js +125 -0
  398. package/.output/server/node_modules/zod/v4/locales/eo.js +114 -0
  399. package/.output/server/node_modules/zod/v4/locales/es.js +136 -0
  400. package/.output/server/node_modules/zod/v4/locales/fa.js +119 -0
  401. package/.output/server/node_modules/zod/v4/locales/fi.js +117 -0
  402. package/.output/server/node_modules/zod/v4/locales/fr-CA.js +112 -0
  403. package/.output/server/node_modules/zod/v4/locales/fr.js +129 -0
  404. package/.output/server/node_modules/zod/v4/locales/gu.js +113 -0
  405. package/.output/server/node_modules/zod/v4/locales/he.js +221 -0
  406. package/.output/server/node_modules/zod/v4/locales/hi.js +111 -0
  407. package/.output/server/node_modules/zod/v4/locales/hr.js +126 -0
  408. package/.output/server/node_modules/zod/v4/locales/hu.js +113 -0
  409. package/.output/server/node_modules/zod/v4/locales/hy.js +158 -0
  410. package/.output/server/node_modules/zod/v4/locales/id.js +111 -0
  411. package/.output/server/node_modules/zod/v4/locales/index.js +63 -0
  412. package/.output/server/node_modules/zod/v4/locales/is.js +114 -0
  413. package/.output/server/node_modules/zod/v4/locales/it.js +113 -0
  414. package/.output/server/node_modules/zod/v4/locales/ja.js +112 -0
  415. package/.output/server/node_modules/zod/v4/locales/ka.js +117 -0
  416. package/.output/server/node_modules/zod/v4/locales/kh.js +5 -0
  417. package/.output/server/node_modules/zod/v4/locales/km.js +115 -0
  418. package/.output/server/node_modules/zod/v4/locales/kn.js +116 -0
  419. package/.output/server/node_modules/zod/v4/locales/ko.js +116 -0
  420. package/.output/server/node_modules/zod/v4/locales/lt.js +207 -0
  421. package/.output/server/node_modules/zod/v4/locales/mk.js +114 -0
  422. package/.output/server/node_modules/zod/v4/locales/ms.js +112 -0
  423. package/.output/server/node_modules/zod/v4/locales/ne.js +111 -0
  424. package/.output/server/node_modules/zod/v4/locales/nl.js +115 -0
  425. package/.output/server/node_modules/zod/v4/locales/nn.js +113 -0
  426. package/.output/server/node_modules/zod/v4/locales/no.js +113 -0
  427. package/.output/server/node_modules/zod/v4/locales/ota.js +114 -0
  428. package/.output/server/node_modules/zod/v4/locales/package.json +7 -0
  429. package/.output/server/node_modules/zod/v4/locales/pl.js +114 -0
  430. package/.output/server/node_modules/zod/v4/locales/ps.js +119 -0
  431. package/.output/server/node_modules/zod/v4/locales/pt-BR.js +143 -0
  432. package/.output/server/node_modules/zod/v4/locales/pt.js +142 -0
  433. package/.output/server/node_modules/zod/v4/locales/ro.js +122 -0
  434. package/.output/server/node_modules/zod/v4/locales/ru.js +168 -0
  435. package/.output/server/node_modules/zod/v4/locales/sk.js +116 -0
  436. package/.output/server/node_modules/zod/v4/locales/sl.js +114 -0
  437. package/.output/server/node_modules/zod/v4/locales/sv.js +115 -0
  438. package/.output/server/node_modules/zod/v4/locales/ta.js +115 -0
  439. package/.output/server/node_modules/zod/v4/locales/tg.js +117 -0
  440. package/.output/server/node_modules/zod/v4/locales/th.js +115 -0
  441. package/.output/server/node_modules/zod/v4/locales/tk.js +107 -0
  442. package/.output/server/node_modules/zod/v4/locales/tr.js +110 -0
  443. package/.output/server/node_modules/zod/v4/locales/ua.js +5 -0
  444. package/.output/server/node_modules/zod/v4/locales/uk.js +113 -0
  445. package/.output/server/node_modules/zod/v4/locales/ur.js +115 -0
  446. package/.output/server/node_modules/zod/v4/locales/uz.js +113 -0
  447. package/.output/server/node_modules/zod/v4/locales/vi.js +113 -0
  448. package/.output/server/node_modules/zod/v4/locales/yo.js +112 -0
  449. package/.output/server/node_modules/zod/v4/locales/zh-CN.js +114 -0
  450. package/.output/server/node_modules/zod/v4/locales/zh-TW.js +112 -0
  451. package/.output/server/node_modules/zod/v4/mini/checks.js +1 -0
  452. package/.output/server/node_modules/zod/v4/mini/coerce.js +22 -0
  453. package/.output/server/node_modules/zod/v4/mini/deep-partial.js +13 -0
  454. package/.output/server/node_modules/zod/v4/mini/external.js +16 -0
  455. package/.output/server/node_modules/zod/v4/mini/in-out.js +36 -0
  456. package/.output/server/node_modules/zod/v4/mini/iso.js +34 -0
  457. package/.output/server/node_modules/zod/v4/mini/package.json +7 -0
  458. package/.output/server/node_modules/zod/v4/mini/parse.js +1 -0
  459. package/.output/server/node_modules/zod/v4/mini/schemas.js +1002 -0
  460. package/.output/server/node_modules/zod/v4/package.json +7 -0
  461. package/.output/server/node_modules/zod/v4-mini/index.js +3 -0
  462. package/.output/server/node_modules/zod/v4-mini/package.json +7 -0
  463. package/.output/server/node_modules/zod-to-json-schema/dist/esm/Options.js +46 -0
  464. package/.output/server/node_modules/zod-to-json-schema/dist/esm/Refs.js +22 -0
  465. package/.output/server/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +14 -0
  466. package/.output/server/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +8 -0
  467. package/.output/server/node_modules/zod-to-json-schema/dist/esm/index.js +40 -0
  468. package/.output/server/node_modules/zod-to-json-schema/dist/esm/package.json +1 -0
  469. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parseDef.js +62 -0
  470. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parseTypes.js +1 -0
  471. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +17 -0
  472. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +26 -0
  473. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +49 -0
  474. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +5 -0
  475. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +4 -0
  476. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +4 -0
  477. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +46 -0
  478. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +7 -0
  479. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +7 -0
  480. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +6 -0
  481. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +52 -0
  482. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +21 -0
  483. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +26 -0
  484. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +16 -0
  485. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +11 -0
  486. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +10 -0
  487. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +33 -0
  488. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +52 -0
  489. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +72 -0
  490. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +21 -0
  491. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +20 -0
  492. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +4 -0
  493. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +4 -0
  494. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +61 -0
  495. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +20 -0
  496. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +352 -0
  497. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +32 -0
  498. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +6 -0
  499. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +80 -0
  500. package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +4 -0
  501. package/.output/server/node_modules/zod-to-json-schema/dist/esm/selectParser.js +105 -0
  502. package/.output/server/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +87 -0
  503. package/.output/server/node_modules/zod-to-json-schema/package.json +85 -0
  504. package/.output/server/package.json +64 -0
  505. package/README.md +226 -23
  506. package/bin/bantou.mjs +33 -0
  507. package/package.json +18 -8
  508. package/protocol/PROTOCOL.md +26 -0
  509. package/protocol/protocol.json +92 -0
  510. package/dist/cap.js +0 -7
  511. package/dist/cli.js +0 -27
  512. package/dist/config.js +0 -23
  513. package/dist/daemon.js +0 -23
  514. package/dist/session.js +0 -7
  515. package/dist/workspace.js +0 -8
@@ -0,0 +1,711 @@
1
+ 'use strict'
2
+
3
+ const { normalizeIPv6, removeDotSegments, removeDotSegmentsRelative, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require('./lib/utils')
4
+ const { SCHEMES, getSchemeHandler } = require('./lib/schemes')
5
+
6
+ const VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u
7
+ const MALFORMED_SCHEME_ERROR = 'URI scheme is malformed.'
8
+ const MALFORMED_HOST_ERROR = 'URI host is malformed.'
9
+ // ASCII characters outside the RFC 3986 reg-name set (unreserved, sub-delims
10
+ // and "%" for pct-encoded): C0 controls, space, DEL, and "#/:<>?@[\]^`{|}.
11
+ const FORBIDDEN_DOMAIN_HOST_CHARACTER = /[\0-\x20"#/:<>?@[\\\]^`{|}\x7F]/u
12
+
13
+ /**
14
+ * RFC 3986 section 3.1 does not allow percent-encoding in a scheme, so the
15
+ * scheme is validated as-is and never decoded. Decoding would let inert input
16
+ * such as `%6Aavascript:` become a live `javascript:` scheme.
17
+ *
18
+ * @param {string} scheme
19
+ * @returns {string}
20
+ */
21
+ function validateScheme (scheme) {
22
+ const stringScheme = String(scheme)
23
+ if (!VALID_SCHEME.test(stringScheme)) {
24
+ throw new TypeError(MALFORMED_SCHEME_ERROR)
25
+ }
26
+ return stringScheme
27
+ }
28
+
29
+ /**
30
+ * @template {import('./types/index').URIComponent|string} T
31
+ * @param {T} uri
32
+ * @param {import('./types/index').Options} [options]
33
+ * @returns {T}
34
+ */
35
+ function normalize (uri, options) {
36
+ if (typeof uri === 'string') {
37
+ uri = /** @type {T} */ (normalizeString(uri, options))
38
+ } else if (typeof uri === 'object') {
39
+ uri = /** @type {T} */ (parse(serialize(uri, options), options))
40
+ }
41
+ return uri
42
+ }
43
+
44
+ /**
45
+ * @param {string} baseURI
46
+ * @param {string} relativeURI
47
+ * @param {import('./types/index').Options} [options]
48
+ * @returns {string}
49
+ */
50
+ function resolve (baseURI, relativeURI, options) {
51
+ const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }
52
+ const {
53
+ parsed: baseParsed,
54
+ malformedAuthorityOrPort: baseMalformed,
55
+ malformedPercentEncoding: baseMalformedPercentEncoding,
56
+ malformedSchemeSpecific: baseMalformedSchemeSpecific,
57
+ malformedHost: baseMalformedHost,
58
+ malformedScheme: baseMalformedScheme
59
+ } = parseWithStatus(baseURI, schemelessOptions)
60
+ const {
61
+ parsed: relativeParsed,
62
+ malformedAuthorityOrPort: relativeMalformed,
63
+ malformedPercentEncoding: relativeMalformedPercentEncoding,
64
+ malformedSchemeSpecific: relativeMalformedSchemeSpecific,
65
+ malformedHost: relativeMalformedHost,
66
+ malformedScheme: relativeMalformedScheme
67
+ } = parseWithStatus(relativeURI, schemelessOptions)
68
+ if (
69
+ baseMalformed ||
70
+ relativeMalformed ||
71
+ baseMalformedPercentEncoding ||
72
+ relativeMalformedPercentEncoding ||
73
+ baseMalformedSchemeSpecific ||
74
+ relativeMalformedSchemeSpecific ||
75
+ baseMalformedHost ||
76
+ relativeMalformedHost ||
77
+ baseMalformedScheme ||
78
+ relativeMalformedScheme
79
+ ) {
80
+ throw new Error(baseParsed.error || relativeParsed.error || 'URI is malformed.')
81
+ }
82
+ const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true)
83
+ const resolvedSchemeHandler = getSchemeHandler((options && options.scheme) || resolved.scheme)
84
+ const resolvedHost = resolved.host
85
+ const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== '' &&
86
+ (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6)
87
+ // Inputs are parsed scheme-neutrally, so delimiters and controls in a domain
88
+ // host are only detected here, once the final scheme is known. They always
89
+ // fail closed, including in percent-encoded hosts.
90
+ if (hasForbiddenDomainHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP)) {
91
+ throw new Error(MALFORMED_HOST_ERROR)
92
+ }
93
+ canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP)
94
+ // Percent escapes in an ASCII reg-name are encoded data. The WHATWG hostname
95
+ // parser can reject them even though fast-uri preserves them safely as RFC
96
+ // 3986 data. A raw non-ASCII host must still fail closed if conversion fails.
97
+ const encodedASCIIHost = resolvedHost && resolvedHost.indexOf('%') !== -1 &&
98
+ !/\P{ASCII}/u.test(resolvedHost)
99
+ if (resolved.error && !encodedASCIIHost) {
100
+ throw new Error(resolved.error)
101
+ }
102
+ schemelessOptions.skipEscape = true
103
+ return serialize(resolved, schemelessOptions)
104
+ }
105
+
106
+ /**
107
+ * @param {import ('./types/index').URIComponent} base
108
+ * @param {import ('./types/index').URIComponent} relative
109
+ * @param {import('./types/index').Options} [options]
110
+ * @param {boolean} [skipNormalization=false]
111
+ * @returns {import ('./types/index').URIComponent}
112
+ */
113
+ function resolveComponent (base, relative, options, skipNormalization) {
114
+ /** @type {import('./types/index').URIComponent} */
115
+ const target = {}
116
+ if (!skipNormalization) {
117
+ base = parse(serialize(base, options), options) // normalize base component
118
+ relative = parse(serialize(relative, options), options) // normalize relative component
119
+ }
120
+ options = options || {}
121
+
122
+ if (!options.tolerant && relative.scheme) {
123
+ target.scheme = relative.scheme
124
+ // target.authority = relative.authority;
125
+ target.userinfo = relative.userinfo
126
+ target.host = relative.host
127
+ target.port = relative.port
128
+ target.path = removeDotSegments(relative.path || '')
129
+ target.query = relative.query
130
+ } else {
131
+ if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {
132
+ // target.authority = relative.authority;
133
+ target.userinfo = relative.userinfo
134
+ target.host = relative.host
135
+ target.port = relative.port
136
+ target.path = removeDotSegments(relative.path || '')
137
+ target.query = relative.query
138
+ } else {
139
+ if (!relative.path) {
140
+ target.path = base.path
141
+ if (relative.query !== undefined) {
142
+ target.query = relative.query
143
+ } else {
144
+ target.query = base.query
145
+ }
146
+ } else {
147
+ if (relative.path[0] === '/') {
148
+ target.path = removeDotSegments(relative.path)
149
+ } else {
150
+ const baseHasAuthority = base.userinfo !== undefined || base.host !== undefined || base.port !== undefined
151
+ if (baseHasAuthority && !base.path) {
152
+ target.path = '/' + relative.path
153
+ } else if (!base.path) {
154
+ target.path = relative.path
155
+ } else {
156
+ target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path
157
+ }
158
+ target.path = base.scheme === undefined && !baseHasAuthority && target.path[0] !== '/'
159
+ ? removeDotSegmentsRelative(target.path)
160
+ : removeDotSegments(target.path)
161
+ }
162
+ target.query = relative.query
163
+ }
164
+ // target.authority = base.authority;
165
+ target.userinfo = base.userinfo
166
+ target.host = base.host
167
+ target.port = base.port
168
+ }
169
+ target.scheme = base.scheme
170
+ }
171
+
172
+ target.fragment = relative.fragment
173
+
174
+ return target
175
+ }
176
+
177
+ /**
178
+ * @param {import ('./types/index').URIComponent|string} uriA
179
+ * @param {import ('./types/index').URIComponent|string} uriB
180
+ * @param {import ('./types/index').Options} options
181
+ * @returns {boolean}
182
+ */
183
+ function equal (uriA, uriB, options) {
184
+ const normalizedA = normalizeComparableURI(uriA, options)
185
+ const normalizedB = normalizeComparableURI(uriB, options)
186
+
187
+ return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB
188
+ }
189
+
190
+ /**
191
+ * @param {Readonly<import('./types/index').URIComponent>} cmpts
192
+ * @param {import('./types/index').Options} [opts]
193
+ * @returns {string}
194
+ */
195
+ function serialize (cmpts, opts) {
196
+ const component = {
197
+ host: cmpts.host,
198
+ scheme: cmpts.scheme,
199
+ userinfo: cmpts.userinfo,
200
+ port: cmpts.port,
201
+ path: cmpts.path,
202
+ query: cmpts.query,
203
+ nid: cmpts.nid,
204
+ nss: cmpts.nss,
205
+ uuid: cmpts.uuid,
206
+ fragment: cmpts.fragment,
207
+ reference: cmpts.reference,
208
+ resourceName: cmpts.resourceName,
209
+ secure: cmpts.secure,
210
+ error: ''
211
+ }
212
+ const options = Object.assign({}, opts)
213
+ const uriTokens = []
214
+
215
+ if (component.scheme) {
216
+ component.scheme = validateScheme(component.scheme)
217
+ }
218
+
219
+ // find scheme handler
220
+ const schemeHandler = getSchemeHandler(options.scheme || component.scheme)
221
+
222
+ // perform scheme specific serialization
223
+ if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)
224
+
225
+ const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined
226
+ // A reference with no emitted scheme is path-noscheme: a bare ':' in its
227
+ // first path segment would reparse as a scheme (RFC 3986 3.3/4.2). Enforced
228
+ // under skipEscape too (resolve()), so the reapply below gates on this flag.
229
+ const schemelessReference = (component.scheme === undefined || options.reference === 'suffix') && !hasAuthority
230
+ const pathNoScheme = !options.skipEscape && schemelessReference
231
+
232
+ if (component.path !== undefined) {
233
+ if (!options.skipEscape) {
234
+ component.path = serializePathEncoding(component.path, pathNoScheme)
235
+ } else {
236
+ component.path = normalizePercentEncoding(component.path)
237
+ }
238
+ }
239
+
240
+ if (options.reference !== 'suffix' && component.scheme) {
241
+ // Scheme handlers may replace the scheme during serialization.
242
+ component.scheme = validateScheme(component.scheme)
243
+ uriTokens.push(component.scheme, ':')
244
+ }
245
+
246
+ const authority = recomposeAuthority(component)
247
+ if (authority !== undefined) {
248
+ if (options.reference !== 'suffix') {
249
+ uriTokens.push('//')
250
+ }
251
+
252
+ uriTokens.push(authority)
253
+
254
+ if (component.path && component.path[0] !== '/') {
255
+ uriTokens.push('/')
256
+ }
257
+ }
258
+ if (component.path !== undefined) {
259
+ let s = component.path
260
+
261
+ if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
262
+ // A relative-path reference keeps its unresolvable leading ".." segments
263
+ // and must never become root-relative (RFC 3986 section 5.2.4 applies to
264
+ // merged target paths, not to the reference itself).
265
+ s = schemelessReference && s[0] !== '/'
266
+ ? removeDotSegmentsRelative(s)
267
+ : removeDotSegments(s)
268
+ }
269
+
270
+ // Dot-segment removal can expose a colon that was not originally in the
271
+ // first segment (for example, "./a:b"). Reapply path-noscheme encoding so
272
+ // the serialized relative reference cannot be reparsed as a URI scheme.
273
+ if (schemelessReference) {
274
+ s = serializePathEncoding(s, true)
275
+ }
276
+
277
+ if (
278
+ authority === undefined &&
279
+ s[0] === '/' &&
280
+ s[1] === '/'
281
+ ) {
282
+ // don't allow the path to start with "//"
283
+ s = '/%2F' + s.slice(2)
284
+ }
285
+
286
+ uriTokens.push(s)
287
+ }
288
+
289
+ if (component.query !== undefined) {
290
+ uriTokens.push('?', encodeQuery(component.query))
291
+ }
292
+
293
+ if (component.fragment !== undefined) {
294
+ uriTokens.push('#', encodeFragment(component.fragment))
295
+ }
296
+ return uriTokens.join('')
297
+ }
298
+
299
+ const URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u
300
+
301
+ // Captures the authority component (between "//" and the next "/", "?" or "#"),
302
+ // with or without a scheme prefix, for the literal-backslash rejection below.
303
+ const AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/
304
+
305
+ // Captures the leading authority-introducer region after an optional scheme: a
306
+ // run of forward slashes, backslashes, and the characters the WHATWG URL parser
307
+ // removes before parsing (TAB U+0009, LF U+000A, CR U+000D). A valid introducer
308
+ // is exactly "//". Node treats "\" as "/" on special schemes and strips those
309
+ // characters first, so forms like "\\", "/\", "\/", "/<TAB>/", or a leading
310
+ // "<TAB>//" reach an authority in Node while fast-uri's URI_PARSE folds them into
311
+ // the path group (host confusion / SSRF / redirect bypass).
312
+ const AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\t\n\r]*)/
313
+
314
+ /**
315
+ * @param {import('./types/index').URIComponent} parsed
316
+ * @param {RegExpMatchArray} matches
317
+ * @returns {string|undefined}
318
+ */
319
+ function getParseError (parsed, matches) {
320
+ if (matches[2] !== undefined && parsed.path && parsed.path[0] !== '/') {
321
+ return 'URI path must start with "/" when authority is present.'
322
+ }
323
+
324
+ if (typeof parsed.port === 'number' && (parsed.port < 0 || parsed.port > 65535)) {
325
+ return 'URI port is malformed.'
326
+ }
327
+
328
+ return undefined
329
+ }
330
+
331
+ /**
332
+ * Checks percent syntax without decoding the represented octets. RFC 3986
333
+ * percent-encoding is byte-oriented, so sequences such as `%FF` are valid even
334
+ * though they are not independently valid UTF-8.
335
+ *
336
+ * @param {string|undefined} component
337
+ * @returns {boolean}
338
+ */
339
+ function hasMalformedPercentEncoding (component) {
340
+ if (component === undefined) return false
341
+
342
+ let percent = component.indexOf('%')
343
+ while (percent !== -1) {
344
+ if (percent + 2 >= component.length || !/^[\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {
345
+ return true
346
+ }
347
+ percent = component.indexOf('%', percent + 3)
348
+ }
349
+
350
+ return false
351
+ }
352
+
353
+ /**
354
+ * Whether the host is a bracketed IP literal (RFC 3986 `IP-literal`).
355
+ * An unterminated `[` is not a literal, so it must still be validated as a
356
+ * reg-name instead of being waved through as an IP.
357
+ *
358
+ * @param {string} host
359
+ * @returns {boolean}
360
+ */
361
+ function isIPLiteral (host) {
362
+ return host[0] === '[' && host[host.length - 1] === ']'
363
+ }
364
+
365
+ /**
366
+ * @param {RegExpMatchArray} matches
367
+ * @returns {boolean}
368
+ */
369
+ function hasMalformedComponentPercentEncoding (matches) {
370
+ // Bracketed IP literals use a raw "%" as the zone separator for historical
371
+ // compatibility. Their parsing is intentionally left to normalizeIPv6.
372
+ const host = matches[4]
373
+ return hasMalformedPercentEncoding(matches[3]) ||
374
+ (host !== undefined && !isIPLiteral(host) && hasMalformedPercentEncoding(host)) ||
375
+ hasMalformedPercentEncoding(matches[6]) ||
376
+ hasMalformedPercentEncoding(matches[7]) ||
377
+ hasMalformedPercentEncoding(matches[8])
378
+ }
379
+
380
+ /**
381
+ * @param {import('./types/index').URIComponent} parsed
382
+ * @param {import('./types/index').Options} options
383
+ * @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler
384
+ * @param {boolean} isIP
385
+ * @returns {boolean} whether host conversion failed
386
+ */
387
+ function canonicalizeHost (parsed, options, schemeHandler, isIP) {
388
+ if (hasForbiddenDomainHost(parsed, options, schemeHandler, isIP)) {
389
+ parsed.error = parsed.error || MALFORMED_HOST_ERROR
390
+ return true
391
+ }
392
+
393
+ if (
394
+ !options.unicodeSupport &&
395
+ (!schemeHandler || !schemeHandler.unicodeSupport) &&
396
+ parsed.host &&
397
+ !isIPLiteral(parsed.host) &&
398
+ (options.domainHost || (schemeHandler && schemeHandler.domainHost)) &&
399
+ isIP === false &&
400
+ nonSimpleDomain(parsed.host)
401
+ ) {
402
+ let url
403
+ try {
404
+ url = new URL('http://' + parsed.host)
405
+ } catch (e) {
406
+ parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e
407
+ return true
408
+ }
409
+ // The WHATWG parser must have read the whole input as a host. Anything
410
+ // else means it found a delimiter fast-uri did not, so its hostname would
411
+ // describe a different authority.
412
+ if (!isHostOnlyURL(url)) {
413
+ parsed.error = parsed.error || MALFORMED_HOST_ERROR
414
+ return true
415
+ }
416
+ parsed.host = url.hostname
417
+ }
418
+ return false
419
+ }
420
+
421
+ /**
422
+ * Whether a domain host contains an ASCII character that RFC 3986 does not
423
+ * allow in a reg-name (unreserved, sub-delims, or pct-encoded). Such a host is
424
+ * rejected instead of being handed to the WHATWG URL parser, which would treat
425
+ * "@" as a userinfo delimiter (silently dropping the data before it) and strip
426
+ * TAB, LF, and CR. Non-ASCII characters remain allowed for IDNs.
427
+ *
428
+ * @param {import('./types/index').URIComponent} parsed
429
+ * @param {import('./types/index').Options} options
430
+ * @param {{ domainHost?: boolean }|undefined} schemeHandler
431
+ * @param {boolean} isIP
432
+ * @returns {boolean}
433
+ */
434
+ function hasForbiddenDomainHost (parsed, options, schemeHandler, isIP) {
435
+ return Boolean(
436
+ parsed.host &&
437
+ isIP === false &&
438
+ !isIPLiteral(parsed.host) &&
439
+ (options.domainHost || (schemeHandler && schemeHandler.domainHost)) &&
440
+ FORBIDDEN_DOMAIN_HOST_CHARACTER.test(parsed.host)
441
+ )
442
+ }
443
+
444
+ /**
445
+ * @param {URL} url
446
+ * @returns {boolean}
447
+ */
448
+ function isHostOnlyURL (url) {
449
+ return url.username === '' &&
450
+ url.password === '' &&
451
+ url.port === '' &&
452
+ url.pathname === '/' &&
453
+ url.search === '' &&
454
+ url.hash === '' &&
455
+ url.hostname !== ''
456
+ }
457
+
458
+ /**
459
+ * @param {string} uri
460
+ * @param {import('./types/index').Options} [opts]
461
+ * @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}
462
+ */
463
+ function parseWithStatus (uri, opts) {
464
+ const options = Object.assign({}, opts)
465
+ /** @type {import('./types/index').URIComponent} */
466
+ const parsed = {
467
+ scheme: undefined,
468
+ userinfo: undefined,
469
+ host: '',
470
+ port: undefined,
471
+ path: '',
472
+ query: undefined,
473
+ fragment: undefined
474
+ }
475
+
476
+ let malformedAuthorityOrPort = false
477
+ let malformedPercentEncoding = false
478
+ let malformedSchemeSpecific = false
479
+ let malformedHost = false
480
+ let malformedIPLiteral = false
481
+ let malformedScheme = false
482
+
483
+ let isIP = false
484
+ if (options.reference === 'suffix') {
485
+ if (options.scheme) {
486
+ uri = options.scheme + ':' + uri
487
+ } else {
488
+ uri = '//' + uri
489
+ }
490
+ }
491
+
492
+ // A literal backslash (U+005C) is not a valid RFC 3986 URI character and is
493
+ // not an authority delimiter. Reject it in the authority rather than
494
+ // rewriting it: normalizing "\" -> "/" (WHATWG error recovery) could silently
495
+ // change the resource identified by an otherwise-invalid input, and lets "\"
496
+ // act as a host delimiter here while Node's native URL parses a different
497
+ // host (SSRF / redirect / origin-allowlist bypass). Percent-encoded %5C is
498
+ // untouched and remains valid encoded data.
499
+ const authorityMatch = uri.match(AUTHORITY_PREFIX)
500
+ if (authorityMatch !== null && authorityMatch[1].indexOf('\\') !== -1) {
501
+ parsed.error = 'URI authority must not contain a literal backslash.'
502
+ malformedAuthorityOrPort = true
503
+ }
504
+
505
+ // Reject a malformed or whitespace-smuggled authority introducer. fast-uri
506
+ // only recognizes a literal "//"; anything else in the leading separator run
507
+ // (a backslash, or a "//" that appears only after removing the TAB/LF/CR that
508
+ // Node strips) means the authority fast-uri parses differs from the one Node's
509
+ // URL resolves. Reject rather than rewrite, mirroring the literal-backslash
510
+ // guard above. Percent-encoded forms (%5C, %09) are untouched, valid data.
511
+ const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION)
512
+ if (introducerMatch !== null) {
513
+ const region = introducerMatch[1]
514
+ const normalizedRegion = region.replace(/[\t\n\r]/g, '')
515
+ // Two or more leading separators introduce an authority.
516
+ if (normalizedRegion.length >= 2) {
517
+ if (normalizedRegion.slice(0, 2) !== '//') {
518
+ parsed.error = parsed.error || 'URI authority must not contain a literal backslash.'
519
+ malformedAuthorityOrPort = true
520
+ } else if (region.length !== normalizedRegion.length) {
521
+ parsed.error = parsed.error || 'URI authority introducer must not contain whitespace.'
522
+ malformedAuthorityOrPort = true
523
+ }
524
+ }
525
+ }
526
+
527
+ const matches = uri.match(URI_PARSE)
528
+
529
+ if (matches) {
530
+ // store each component
531
+ parsed.scheme = matches[1]
532
+ parsed.userinfo = matches[3]
533
+ parsed.host = matches[4]
534
+ parsed.port = parseInt(matches[5], 10)
535
+ parsed.path = matches[6] || ''
536
+ parsed.query = matches[7]
537
+ parsed.fragment = matches[8]
538
+
539
+ if (parsed.scheme !== undefined) {
540
+ if (VALID_SCHEME.test(parsed.scheme)) {
541
+ parsed.scheme = parsed.scheme.toLowerCase()
542
+ } else {
543
+ parsed.error = parsed.error || MALFORMED_SCHEME_ERROR
544
+ malformedScheme = true
545
+ }
546
+ }
547
+
548
+ malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches)
549
+ if (malformedPercentEncoding) {
550
+ parsed.error = parsed.error || 'URI contains malformed percent-encoding.'
551
+ }
552
+
553
+ // fix port number
554
+ if (isNaN(parsed.port)) {
555
+ parsed.port = matches[5]
556
+ }
557
+
558
+ const parseError = getParseError(parsed, matches)
559
+ if (parseError !== undefined) {
560
+ parsed.error = parsed.error || parseError
561
+ malformedAuthorityOrPort = true
562
+ }
563
+
564
+ if (parsed.host) {
565
+ const ipv4result = isIPv4(parsed.host)
566
+ if (ipv4result === false) {
567
+ const bracketedIPLiteral = isIPLiteral(parsed.host)
568
+ const hasIPLiteralBracket = parsed.host.indexOf('[') !== -1 || parsed.host.indexOf(']') !== -1
569
+ const ipv6result = normalizeIPv6(parsed.host)
570
+ isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true
571
+ malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true)
572
+ parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase()
573
+
574
+ if (malformedIPLiteral) {
575
+ parsed.error = parsed.error || MALFORMED_HOST_ERROR
576
+ malformedAuthorityOrPort = true
577
+ }
578
+ } else {
579
+ isIP = true
580
+ }
581
+ }
582
+ if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {
583
+ parsed.reference = 'same-document'
584
+ } else if (parsed.scheme === undefined) {
585
+ parsed.reference = 'relative'
586
+ } else if (parsed.fragment === undefined) {
587
+ parsed.reference = 'absolute'
588
+ } else {
589
+ parsed.reference = 'uri'
590
+ }
591
+
592
+ // check for reference errors
593
+ if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {
594
+ parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'
595
+ }
596
+
597
+ // find scheme handler
598
+ const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)
599
+
600
+ // convert Unicode IDN -> ASCII IDN when the effective scheme uses domain hosts
601
+ if (!malformedIPLiteral) {
602
+ malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP)
603
+ }
604
+
605
+ if (uri.indexOf('%') !== -1 && parsed.host !== undefined && !malformedIPLiteral) {
606
+ let host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true)
607
+ if (!isIP) {
608
+ // Fold reg-name case after decoding unreserved octets. The second
609
+ // pass only restores uppercase hex in escapes that remain encoded.
610
+ host = normalizePercentEncoding(host.toLowerCase())
611
+ }
612
+ // Resolution parses both inputs with the internal `null` scheme before
613
+ // the effective scheme is known. Keep raw host delimiters for that step
614
+ // so resolve() can reject them for domain-host schemes; the resolved
615
+ // authority is encoded when it is serialized.
616
+ parsed.host = isIP || options.scheme !== 'null' ? reescapeHostDelimiters(host, isIP) : host
617
+ }
618
+
619
+ if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {
620
+ if (parsed.path) {
621
+ parsed.path = normalizePathEncoding(parsed.path)
622
+ }
623
+ if (parsed.query) {
624
+ parsed.query = normalizeQueryFragmentEncoding(parsed.query)
625
+ }
626
+ if (parsed.fragment) {
627
+ parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment)
628
+ }
629
+ }
630
+
631
+ // perform scheme specific parsing
632
+ if (schemeHandler && schemeHandler.parse) {
633
+ schemeHandler.parse(parsed, options)
634
+ if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {
635
+ malformedSchemeSpecific = true
636
+ }
637
+ }
638
+ } else {
639
+ parsed.error = parsed.error || 'URI can not be parsed.'
640
+ }
641
+ return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme }
642
+ }
643
+
644
+ /**
645
+ * @param {string} uri
646
+ * @param {import('./types/index').Options} [opts]
647
+ * @returns
648
+ */
649
+ function parse (uri, opts) {
650
+ return parseWithStatus(uri, opts).parsed
651
+ }
652
+
653
+ /**
654
+ * @param {string} uri
655
+ * @param {import('./types/index').Options} [opts]
656
+ * @returns {string}
657
+ */
658
+ function normalizeString (uri, opts) {
659
+ return normalizeStringWithStatus(uri, opts).normalized
660
+ }
661
+
662
+ /**
663
+ * @param {string} uri
664
+ * @param {import('./types/index').Options} [opts]
665
+ * @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}
666
+ */
667
+ function normalizeStringWithStatus (uri, opts) {
668
+ const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts)
669
+ return {
670
+ normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),
671
+ malformedAuthorityOrPort,
672
+ malformedPercentEncoding,
673
+ malformedSchemeSpecific,
674
+ malformedHost,
675
+ malformedScheme
676
+ }
677
+ }
678
+
679
+ /**
680
+ * @param {import ('./types/index').URIComponent|string} uri
681
+ * @param {import('./types/index').Options} [opts]
682
+ * @returns {string|undefined}
683
+ */
684
+ function normalizeComparableURI (uri, opts) {
685
+ if (typeof uri !== 'string' && typeof uri !== 'object') {
686
+ return undefined
687
+ }
688
+
689
+ let value
690
+ try {
691
+ value = typeof uri === 'string' ? uri : serialize(uri, opts)
692
+ } catch {
693
+ return undefined
694
+ }
695
+ const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts)
696
+ return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized
697
+ }
698
+
699
+ const fastUri = {
700
+ SCHEMES,
701
+ normalize,
702
+ resolve,
703
+ resolveComponent,
704
+ equal,
705
+ serialize,
706
+ parse
707
+ }
708
+
709
+ module.exports = fastUri
710
+ module.exports.default = fastUri
711
+ module.exports.fastUri = fastUri