bantou 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/1a8fc623-6671-445b-bdd3-c3d073520a3a.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 +5870 -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,673 @@
1
+ const URL_META_KEYS = /* @__PURE__ */ new Set([
2
+ "og:url",
3
+ "og:image",
4
+ "og:image:url",
5
+ "og:image:secure_url",
6
+ "og:video",
7
+ "og:video:url",
8
+ "og:video:secure_url",
9
+ "og:audio",
10
+ "og:audio:url",
11
+ "og:audio:secure_url",
12
+ "twitter:image",
13
+ "twitter:image:src",
14
+ "twitter:player",
15
+ "twitter:player:stream",
16
+ "payment:success_url"
17
+ ]);
18
+ const KNOWN_META_PROPERTIES = /* @__PURE__ */ new Set([
19
+ "article:author",
20
+ "article:expiration_time",
21
+ "article:modified_time",
22
+ "article:published_time",
23
+ "article:section",
24
+ "article:tag",
25
+ "book:author",
26
+ "book:isbn",
27
+ "book:release_date",
28
+ "book:tag",
29
+ "fb:app_id",
30
+ "og:audio",
31
+ "og:audio:secure_url",
32
+ "og:audio:type",
33
+ "og:audio:url",
34
+ "og:description",
35
+ "og:determiner",
36
+ "og:image",
37
+ "og:image:alt",
38
+ "og:image:height",
39
+ "og:image:secure_url",
40
+ "og:image:type",
41
+ "og:image:url",
42
+ "og:image:width",
43
+ "og:locale",
44
+ "og:locale:alternate",
45
+ "og:site_name",
46
+ "og:title",
47
+ "og:type",
48
+ "og:url",
49
+ "og:video",
50
+ "og:video:alt",
51
+ "og:video:duration",
52
+ "og:video:height",
53
+ "og:video:secure_url",
54
+ "og:video:type",
55
+ "og:video:url",
56
+ "og:video:width",
57
+ "payment:amount",
58
+ "payment:currency",
59
+ "payment:description",
60
+ "payment:expires_at",
61
+ "payment:id",
62
+ "payment:status",
63
+ "payment:success_url",
64
+ "profile:first_name",
65
+ "profile:gender",
66
+ "profile:last_name",
67
+ "profile:username"
68
+ ]);
69
+ const KNOWN_META_NAMES = /* @__PURE__ */ new Set([
70
+ "apple-itunes-app",
71
+ "apple-mobile-web-app-capable",
72
+ "apple-mobile-web-app-status-bar-style",
73
+ "apple-mobile-web-app-title",
74
+ "application-name",
75
+ "author",
76
+ "color-scheme",
77
+ "creator",
78
+ "description",
79
+ "fb:app_id",
80
+ "fediverse:creator",
81
+ "format-detection",
82
+ "generator",
83
+ "google-site-verification",
84
+ "google",
85
+ "googlebot",
86
+ "keywords",
87
+ "mobile-web-app-capable",
88
+ "msapplication-config",
89
+ "msapplication-tilecolor",
90
+ "msapplication-tileimage",
91
+ "publisher",
92
+ "rating",
93
+ "referrer",
94
+ "robots",
95
+ "theme-color",
96
+ "viewport",
97
+ "twitter:app:id:googleplay",
98
+ "twitter:app:id:ipad",
99
+ "twitter:app:id:iphone",
100
+ "twitter:app:name:googleplay",
101
+ "twitter:app:name:ipad",
102
+ "twitter:app:name:iphone",
103
+ "twitter:app:url:googleplay",
104
+ "twitter:app:url:ipad",
105
+ "twitter:app:url:iphone",
106
+ "twitter:card",
107
+ "twitter:creator",
108
+ "twitter:creator:id",
109
+ "twitter:data:1",
110
+ "twitter:data:2",
111
+ "twitter:description",
112
+ "twitter:image",
113
+ "twitter:image:alt",
114
+ "twitter:label:1",
115
+ "twitter:label:2",
116
+ "twitter:player",
117
+ "twitter:player:height",
118
+ "twitter:player:stream",
119
+ "twitter:player:width",
120
+ "twitter:site",
121
+ "twitter:site:id",
122
+ "twitter:title"
123
+ ]);
124
+ const TAG_PRIORITY_ALIASES = ["critical", "high", "low"];
125
+ const DEPRECATED_PROPS = {
126
+ children: { replacement: "innerHTML", ruleId: "deprecated-prop-children" },
127
+ hid: { replacement: "key", ruleId: "deprecated-prop-hid-vmid" },
128
+ vmid: { replacement: "key", ruleId: "deprecated-prop-hid-vmid" },
129
+ body: { replacement: "tagPosition: 'bodyClose'", ruleId: "deprecated-prop-body" }
130
+ };
131
+
132
+ function levenshtein(a, b) {
133
+ const m = a.length;
134
+ const n = b.length;
135
+ const d = Array.from({ length: n + 1 }, (_, i) => i);
136
+ for (let i = 1; i <= m; i++) {
137
+ let prev = i - 1;
138
+ d[0] = i;
139
+ for (let j = 1; j <= n; j++) {
140
+ const tmp = d[j];
141
+ d[j] = a[i - 1] === b[j - 1] ? prev : 1 + Math.min(prev, d[j], d[j - 1]);
142
+ prev = tmp;
143
+ }
144
+ }
145
+ return d[n];
146
+ }
147
+ function findClosestMatch(value, knownSet) {
148
+ const threshold = value.length <= 8 ? 2 : 3;
149
+ let best;
150
+ let bestDist = threshold + 1;
151
+ for (const known of knownSet) {
152
+ if (Math.abs(known.length - value.length) > threshold)
153
+ continue;
154
+ const dist = levenshtein(value, known);
155
+ if (dist < bestDist) {
156
+ bestDist = dist;
157
+ best = known;
158
+ }
159
+ }
160
+ return best;
161
+ }
162
+
163
+ const emptyMetaContent = (tag) => {
164
+ if (tag.tagType !== "meta")
165
+ return [];
166
+ if (!tag.keys.has("content"))
167
+ return [];
168
+ if (tag.props.content !== "")
169
+ return [];
170
+ const key = typeof tag.props.name === "string" && tag.props.name || typeof tag.props.property === "string" && tag.props.property || "meta";
171
+ const diag = {
172
+ ruleId: "empty-meta-content",
173
+ message: `Meta tag "${key}" has empty content.`,
174
+ at: { kind: "prop", key: "content" }
175
+ };
176
+ return [diag];
177
+ };
178
+
179
+ const RESOLVABLE_OBJECT = ["boolean", "function", "null", "object"];
180
+ const RESOLVABLE_TAG_LIST = ["array", "boolean", "function", "null"];
181
+ const RESOLVABLE_TITLE = ["boolean", "function", "null", "number", "object", "string"];
182
+ const ATTRIBUTE_SCALAR = ["boolean", "function", "null", "number", "string"];
183
+ const ATTRIBUTE_STRUCTURED = ["array", "boolean", "function", "null", "number", "object", "string"];
184
+ const INPUT_SHAPE_FIELDS = {
185
+ base: {
186
+ canonical: "base",
187
+ contexts: { head: RESOLVABLE_OBJECT }
188
+ },
189
+ bodyattrs: {
190
+ canonical: "bodyAttrs",
191
+ contexts: { head: RESOLVABLE_OBJECT }
192
+ },
193
+ class: {
194
+ canonical: "class",
195
+ contexts: {
196
+ bodyAttrs: ATTRIBUTE_STRUCTURED,
197
+ htmlAttrs: ATTRIBUTE_STRUCTURED
198
+ }
199
+ },
200
+ htmlattrs: {
201
+ canonical: "htmlAttrs",
202
+ contexts: { head: RESOLVABLE_OBJECT }
203
+ },
204
+ link: {
205
+ canonical: "link",
206
+ contexts: { head: RESOLVABLE_TAG_LIST }
207
+ },
208
+ meta: {
209
+ canonical: "meta",
210
+ contexts: { head: RESOLVABLE_TAG_LIST }
211
+ },
212
+ noscript: {
213
+ canonical: "noscript",
214
+ contexts: { head: RESOLVABLE_TAG_LIST }
215
+ },
216
+ script: {
217
+ canonical: "script",
218
+ contexts: { head: RESOLVABLE_TAG_LIST }
219
+ },
220
+ style: {
221
+ canonical: "style",
222
+ contexts: {
223
+ bodyAttrs: ATTRIBUTE_STRUCTURED,
224
+ head: RESOLVABLE_TAG_LIST,
225
+ htmlAttrs: ATTRIBUTE_STRUCTURED
226
+ }
227
+ },
228
+ templateparams: {
229
+ canonical: "templateParams",
230
+ contexts: { head: ["object"] }
231
+ },
232
+ title: {
233
+ canonical: "title",
234
+ contexts: {
235
+ bodyAttrs: ATTRIBUTE_SCALAR,
236
+ head: RESOLVABLE_TITLE,
237
+ htmlAttrs: ATTRIBUTE_SCALAR,
238
+ seoMeta: RESOLVABLE_TITLE
239
+ }
240
+ },
241
+ titletemplate: {
242
+ canonical: "titleTemplate",
243
+ contexts: {
244
+ head: ["function", "null", "object", "string"],
245
+ seoMeta: ["function", "null", "object", "string"]
246
+ }
247
+ }
248
+ };
249
+ function includes(kinds, kind) {
250
+ return kinds?.includes(kind) === true;
251
+ }
252
+ function formatKinds(kinds) {
253
+ return kinds.join(", ");
254
+ }
255
+ function invalidKnownHeadField(input, key, shape, kind) {
256
+ const expected = shape.contexts[input.context];
257
+ if (includes(expected, kind))
258
+ return void 0;
259
+ if ((input.context === "htmlAttrs" || input.context === "bodyAttrs") && kind === "null")
260
+ return void 0;
261
+ if (input.context === "head") {
262
+ return {
263
+ ruleId: "invalid-input-shape",
264
+ message: `"${shape.canonical}" in a head input must be one of: ${formatKinds(expected || [])}. Received ${kind}.`,
265
+ at: { kind: "prop-value", key }
266
+ };
267
+ }
268
+ if (includes(shape.contexts.head, kind)) {
269
+ return {
270
+ ruleId: "invalid-input-shape",
271
+ message: `"${shape.canonical}" has a head input shape but appears in ${input.context}. Move it to the top-level head input.`,
272
+ at: { kind: "prop-value", key }
273
+ };
274
+ }
275
+ }
276
+ function invalidAttributeField(input, key, kind) {
277
+ if (includes(ATTRIBUTE_SCALAR, kind))
278
+ return void 0;
279
+ return {
280
+ ruleId: "invalid-input-shape",
281
+ message: `"${key}" in ${input.context} must resolve to a scalar attribute value. Received ${kind}.`,
282
+ at: { kind: "prop-value", key }
283
+ };
284
+ }
285
+ function validateInputShape(input) {
286
+ const diagnostics = [];
287
+ const isAttributes = input.context === "htmlAttrs" || input.context === "bodyAttrs";
288
+ for (const key of input.keys) {
289
+ const kind = input.valueKinds.get(key) ?? "unknown";
290
+ if (kind === "unknown")
291
+ continue;
292
+ const shape = INPUT_SHAPE_FIELDS[key.toLowerCase()];
293
+ const knownDiagnostic = shape ? invalidKnownHeadField(input, key, shape, kind) : void 0;
294
+ if (knownDiagnostic) {
295
+ diagnostics.push(knownDiagnostic);
296
+ continue;
297
+ }
298
+ if (isAttributes && !shape?.contexts[input.context]) {
299
+ const attributeDiagnostic = invalidAttributeField(input, key, kind);
300
+ if (attributeDiagnostic)
301
+ diagnostics.push(attributeDiagnostic);
302
+ }
303
+ }
304
+ return diagnostics;
305
+ }
306
+
307
+ const noDeprecatedProps = (tag) => {
308
+ const out = [];
309
+ for (const key of tag.keys) {
310
+ if (!(key in DEPRECATED_PROPS))
311
+ continue;
312
+ const { replacement } = DEPRECATED_PROPS[key];
313
+ if (key === "body") {
314
+ if (tag.props.body !== true)
315
+ continue;
316
+ const fix2 = tag.keys.has("tagPosition") ? void 0 : { type: "replace-prop", key: "body", newSource: `tagPosition: 'bodyClose'` };
317
+ out.push({
318
+ ruleId: "deprecated-prop-body",
319
+ message: `"body" was removed in v3 of unhead. Use "${replacement}" instead.`,
320
+ at: { kind: "prop", key },
321
+ fix: fix2
322
+ });
323
+ continue;
324
+ }
325
+ const newKey = key === "children" ? "innerHTML" : "key";
326
+ const fix = tag.keys.has(newKey) ? void 0 : { type: "rename-prop", key, newKey };
327
+ out.push({
328
+ ruleId: key === "children" ? "deprecated-prop-children" : "deprecated-prop-hid-vmid",
329
+ message: `"${key}" was removed in v3 of unhead. Use "${replacement}" instead.`,
330
+ at: { kind: "prop", key },
331
+ fix
332
+ });
333
+ }
334
+ return out;
335
+ };
336
+
337
+ const HTML_CHARS_RE = /[<>]/;
338
+ const noHtmlInTitle = (input) => {
339
+ const title = input.props.title;
340
+ if (typeof title !== "string" || !HTML_CHARS_RE.test(title))
341
+ return [];
342
+ const diag = {
343
+ ruleId: "html-in-title",
344
+ message: `Title contains HTML characters which will be escaped, not rendered: "${title}".`,
345
+ at: { kind: "prop-value", key: "title" }
346
+ };
347
+ return [diag];
348
+ };
349
+
350
+ const OG_PREFIX_RE = /^(?:og|article|book|profile|fb):/;
351
+ const noUnknownMeta = (tag) => {
352
+ if (tag.tagType !== "meta")
353
+ return [];
354
+ const out = [];
355
+ const property = tag.props.property;
356
+ if (typeof property === "string" && !KNOWN_META_PROPERTIES.has(property) && OG_PREFIX_RE.test(property)) {
357
+ const suggestion = findClosestMatch(property, KNOWN_META_PROPERTIES);
358
+ if (suggestion) {
359
+ out.push({
360
+ ruleId: "possible-typo",
361
+ message: `Unknown meta property "${property}". Did you mean "${suggestion}"?`,
362
+ at: { kind: "prop-value", key: "property" },
363
+ fix: { type: "replace-prop-value", key: "property", newSource: `'${suggestion}'` }
364
+ });
365
+ }
366
+ }
367
+ const name = tag.props.name;
368
+ if (typeof name === "string") {
369
+ const lower = name.toLowerCase();
370
+ if (!KNOWN_META_NAMES.has(lower) && (lower.startsWith("twitter:") || lower.startsWith("fediverse:") || !lower.includes(":"))) {
371
+ const suggestion = findClosestMatch(lower, KNOWN_META_NAMES);
372
+ if (suggestion) {
373
+ out.push({
374
+ ruleId: "possible-typo",
375
+ message: `Unknown meta name "${name}". Did you mean "${suggestion}"?`,
376
+ at: { kind: "prop-value", key: "name" },
377
+ fix: { type: "replace-prop-value", key: "name", newSource: `'${suggestion}'` }
378
+ });
379
+ }
380
+ }
381
+ }
382
+ return out;
383
+ };
384
+
385
+ function isAbsolute(url) {
386
+ return url.startsWith("http://") || url.startsWith("https://");
387
+ }
388
+ const nonAbsoluteCanonical = (tag) => {
389
+ if (tag.tagType !== "link")
390
+ return [];
391
+ if (tag.props.rel !== "canonical")
392
+ return [];
393
+ const href = tag.props.href;
394
+ if (typeof href !== "string")
395
+ return [];
396
+ if (isAbsolute(href))
397
+ return [];
398
+ const diag = {
399
+ ruleId: "non-absolute-canonical",
400
+ message: `Canonical URL should be absolute, received "${href}".`,
401
+ at: { kind: "prop-value", key: "href" }
402
+ };
403
+ return [diag];
404
+ };
405
+
406
+ const ALIASES = ["critical", "high", "low"];
407
+ const numericTagPriority = (tag) => {
408
+ const value = tag.props.tagPriority;
409
+ if (typeof value !== "number")
410
+ return [];
411
+ const diag = {
412
+ ruleId: "numeric-tag-priority",
413
+ message: `Numeric tagPriority (${value}) is brittle. Prefer an alias ('critical' | 'high' | 'low') or 'before:<key>' / 'after:<key>'.`,
414
+ at: { kind: "prop-value", key: "tagPriority" },
415
+ suggestions: ALIASES.map((alias) => ({
416
+ message: `Replace with '${alias}'`,
417
+ fix: { type: "replace-prop-value", key: "tagPriority", newSource: `'${alias}'` }
418
+ }))
419
+ };
420
+ return [diag];
421
+ };
422
+
423
+ const TAG_TO_HELPER = {
424
+ link: "defineLink",
425
+ script: "defineScript"
426
+ };
427
+ const preferDefineHelpers = (tag, ctx) => {
428
+ if (!tag.inArray)
429
+ return [];
430
+ const helper = TAG_TO_HELPER[tag.tagType];
431
+ if (!helper)
432
+ return [];
433
+ const localName = ctx?.importedHelpers?.get(helper);
434
+ const imported = localName !== void 0;
435
+ const fix = { type: "wrap-tag", wrapWith: localName ?? helper };
436
+ const diag = {
437
+ ruleId: "prefer-define-helpers",
438
+ message: `Wrap this ${tag.tagType} entry in \`${helper}()\` so unhead can narrow its type.`,
439
+ fix: imported ? fix : void 0,
440
+ suggestions: imported ? void 0 : [{ message: `Wrap in \`${helper}()\` (you may need to import it).`, fix: { type: "wrap-tag", wrapWith: helper } }]
441
+ };
442
+ return [diag];
443
+ };
444
+
445
+ const preloadMissingAs = (tag) => {
446
+ if (tag.tagType !== "link")
447
+ return [];
448
+ if (tag.props.rel !== "preload")
449
+ return [];
450
+ if (tag.keys.has("as"))
451
+ return [];
452
+ const diag = {
453
+ ruleId: "preload-missing-as",
454
+ message: 'Preload link is missing the required "as" attribute.'
455
+ };
456
+ return [diag];
457
+ };
458
+ const preloadFontCrossorigin = (tag) => {
459
+ if (tag.tagType !== "link")
460
+ return [];
461
+ if (tag.props.rel !== "preload")
462
+ return [];
463
+ if (tag.props.as !== "font")
464
+ return [];
465
+ if (tag.keys.has("crossorigin"))
466
+ return [];
467
+ const diag = {
468
+ ruleId: "preload-font-crossorigin",
469
+ message: 'Font preload requires "crossorigin" \u2014 without it the font will be fetched twice.',
470
+ fix: { type: "insert-after-prop", afterKey: "as", insert: `, crossorigin: 'anonymous'` }
471
+ };
472
+ return [diag];
473
+ };
474
+
475
+ const robotsConflict = (tag) => {
476
+ if (tag.tagType !== "meta")
477
+ return [];
478
+ if (tag.props.name !== "robots")
479
+ return [];
480
+ const content = tag.props.content;
481
+ if (typeof content !== "string")
482
+ return [];
483
+ const directives = content.toLowerCase().split(",").map((d) => d.trim());
484
+ const out = [];
485
+ if (directives.includes("index") && directives.includes("noindex")) {
486
+ out.push({
487
+ ruleId: "robots-conflict",
488
+ message: 'Robots meta has conflicting "index" and "noindex" directives.'
489
+ });
490
+ }
491
+ if (directives.includes("follow") && directives.includes("nofollow")) {
492
+ out.push({
493
+ ruleId: "robots-conflict",
494
+ message: 'Robots meta has conflicting "follow" and "nofollow" directives.'
495
+ });
496
+ }
497
+ return out;
498
+ };
499
+
500
+ const deferOnModuleScript = (tag) => {
501
+ if (tag.tagType !== "script")
502
+ return [];
503
+ if (tag.props.type !== "module")
504
+ return [];
505
+ if (tag.props.defer !== true)
506
+ return [];
507
+ const diag = {
508
+ ruleId: "defer-on-module-script",
509
+ message: '"defer" is redundant on module scripts. Modules are deferred by default.',
510
+ at: { kind: "prop", key: "defer" },
511
+ fix: { type: "remove-prop", key: "defer" }
512
+ };
513
+ return [diag];
514
+ };
515
+ const scriptSrcWithContent = (tag) => {
516
+ if (tag.tagType !== "script")
517
+ return [];
518
+ if (typeof tag.props.src !== "string")
519
+ return [];
520
+ const hasInner = tag.keys.has("innerHTML") && tag.props.innerHTML !== "" || tag.keys.has("textContent") && tag.props.textContent !== "";
521
+ if (!hasInner)
522
+ return [];
523
+ const diag = {
524
+ ruleId: "script-src-with-content",
525
+ message: 'Script has both "src" and inline content. The browser will ignore the inline content.'
526
+ };
527
+ return [diag];
528
+ };
529
+
530
+ const NUMERIC_RE = /^\d+$/;
531
+ const twitterHandleMissingAt = (tag) => {
532
+ if (tag.tagType !== "meta")
533
+ return [];
534
+ const name = tag.props.name;
535
+ if (name !== "twitter:site" && name !== "twitter:creator")
536
+ return [];
537
+ const content = tag.props.content;
538
+ if (typeof content !== "string")
539
+ return [];
540
+ if (content.startsWith("@") || NUMERIC_RE.test(content))
541
+ return [];
542
+ const fixedSource = JSON.stringify(`@${content}`);
543
+ const diag = {
544
+ ruleId: "twitter-handle-missing-at",
545
+ message: `${name} should start with "@", received "${content}".`,
546
+ at: { kind: "prop-value", key: "content" },
547
+ fix: { type: "replace-prop-value", key: "content", newSource: fixedSource }
548
+ };
549
+ return [diag];
550
+ };
551
+
552
+ const USER_SCALABLE_NO_RE = /user-scalable\s*=\s*(?:no|0|false)(?:[\s,;]|$)/i;
553
+ const MAX_SCALE_RE = /maximum-scale\s*=\s*1(?:\.\d+)?(?:[\s,;]|$)/i;
554
+ const viewportUserScalable = (tag) => {
555
+ if (tag.tagType !== "meta")
556
+ return [];
557
+ if (tag.props.name !== "viewport")
558
+ return [];
559
+ const content = tag.props.content;
560
+ if (typeof content !== "string")
561
+ return [];
562
+ const out = [];
563
+ if (USER_SCALABLE_NO_RE.test(content)) {
564
+ out.push({
565
+ ruleId: "viewport-user-scalable",
566
+ message: 'viewport "user-scalable=no" prevents zooming and harms accessibility.'
567
+ });
568
+ }
569
+ if (MAX_SCALE_RE.test(content)) {
570
+ out.push({
571
+ ruleId: "viewport-user-scalable",
572
+ message: 'viewport "maximum-scale=1" limits zooming and may harm accessibility.'
573
+ });
574
+ }
575
+ return out;
576
+ };
577
+
578
+ const TAG_TYPES = /* @__PURE__ */ new Set(["meta", "link", "script", "noscript", "style"]);
579
+ function valueKind(value) {
580
+ if (value === null)
581
+ return "null";
582
+ if (Array.isArray(value))
583
+ return "array";
584
+ const kind = typeof value;
585
+ if (kind === "boolean" || kind === "function" || kind === "number" || kind === "object" || kind === "string")
586
+ return kind;
587
+ return "unknown";
588
+ }
589
+ function inputShapeFromRuntime(context, input) {
590
+ const keys = /* @__PURE__ */ new Set();
591
+ const valueKinds = /* @__PURE__ */ new Map();
592
+ for (const [key, value] of Object.entries(input)) {
593
+ keys.add(key);
594
+ valueKinds.set(key, valueKind(value));
595
+ }
596
+ return { context, keys, valueKinds };
597
+ }
598
+ function tagInputFromRuntime(tag) {
599
+ if (!TAG_TYPES.has(tag.tag))
600
+ return void 0;
601
+ const props = {};
602
+ const keys = /* @__PURE__ */ new Set();
603
+ for (const [k, v] of Object.entries(tag.props)) {
604
+ keys.add(k);
605
+ if (v == null) {
606
+ if (tag.tag === "meta" && k === "content")
607
+ props[k] = "";
608
+ continue;
609
+ }
610
+ if (typeof v === "string" || typeof v === "number" || typeof v === "boolean") {
611
+ if (tag.tag === "meta" && k === "name" && typeof v === "string")
612
+ props[k] = v.toLowerCase();
613
+ else
614
+ props[k] = v;
615
+ } else {
616
+ props[k] = String(v);
617
+ }
618
+ }
619
+ if (tag.tag === "script" || tag.tag === "style" || tag.tag === "noscript") {
620
+ if (tag.innerHTML != null && tag.innerHTML !== "") {
621
+ keys.add("innerHTML");
622
+ }
623
+ if (tag.textContent != null && tag.textContent !== "") {
624
+ keys.add("textContent");
625
+ }
626
+ }
627
+ if (tag.tagPriority != null) {
628
+ keys.add("tagPriority");
629
+ if (typeof tag.tagPriority === "string" || typeof tag.tagPriority === "number")
630
+ props.tagPriority = tag.tagPriority;
631
+ }
632
+ return {
633
+ tagType: tag.tag,
634
+ props,
635
+ keys
636
+ };
637
+ }
638
+ function titleInputFromRuntime(titleTag) {
639
+ if (titleTag.tag !== "title")
640
+ return void 0;
641
+ const text = titleTag.textContent ?? titleTag.innerHTML ?? "";
642
+ return {
643
+ callee: "runtime",
644
+ props: { title: text },
645
+ keys: /* @__PURE__ */ new Set(["title"])
646
+ };
647
+ }
648
+
649
+ const tagPredicates = {
650
+ "defer-on-module-script": deferOnModuleScript,
651
+ "empty-meta-content": emptyMetaContent,
652
+ "no-deprecated-props": noDeprecatedProps,
653
+ "no-unknown-meta": noUnknownMeta,
654
+ "non-absolute-canonical": nonAbsoluteCanonical,
655
+ "numeric-tag-priority": numericTagPriority,
656
+ "preload-font-crossorigin": preloadFontCrossorigin,
657
+ "preload-missing-as": preloadMissingAs,
658
+ "robots-conflict": robotsConflict,
659
+ "script-src-with-content": scriptSrcWithContent,
660
+ "twitter-handle-missing-at": twitterHandleMissingAt,
661
+ "viewport-user-scalable": viewportUserScalable
662
+ };
663
+ const inputShapePredicates = {
664
+ "invalid-input-shape": validateInputShape
665
+ };
666
+ const migrationTagPredicates = {
667
+ "prefer-define-helpers": preferDefineHelpers
668
+ };
669
+ const headInputPredicates = {
670
+ "no-html-in-title": noHtmlInTitle
671
+ };
672
+
673
+ export { DEPRECATED_PROPS as D, INPUT_SHAPE_FIELDS as I, KNOWN_META_NAMES as K, TAG_PRIORITY_ALIASES as T, URL_META_KEYS as U, KNOWN_META_PROPERTIES as a, inputShapePredicates as b, noHtmlInTitle as c, deferOnModuleScript as d, emptyMetaContent as e, findClosestMatch as f, noUnknownMeta as g, headInputPredicates as h, inputShapeFromRuntime as i, nonAbsoluteCanonical as j, numericTagPriority as k, levenshtein as l, migrationTagPredicates as m, noDeprecatedProps as n, preloadFontCrossorigin as o, preferDefineHelpers as p, preloadMissingAs as q, robotsConflict as r, scriptSrcWithContent as s, tagInputFromRuntime as t, tagPredicates as u, titleInputFromRuntime as v, twitterHandleMissingAt as w, validateInputShape as x, viewportUserScalable as y };
@@ -0,0 +1,6 @@
1
+ const hasOwnProperty = Object.prototype.hasOwnProperty;
2
+ function hasOwn(object, key) {
3
+ return hasOwnProperty.call(object, key);
4
+ }
5
+
6
+ export { hasOwn as h };
@@ -0,0 +1,17 @@
1
+ import { HookableCore } from 'hookable';
2
+
3
+ function createHooks(hooks) {
4
+ const instance = new HookableCore();
5
+ for (const key in hooks || {}) {
6
+ instance.hook(key, hooks[key]);
7
+ }
8
+ return instance;
9
+ }
10
+ function callHook(head, hook, ctx) {
11
+ const hooks = head.hooks?._hooks?.[hook];
12
+ if (!hooks?.length)
13
+ return;
14
+ return head.hooks?.callHook(hook, ctx);
15
+ }
16
+
17
+ export { callHook as a, createHooks as c };