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,698 @@
1
+ import { MAX_ARRAY_INDEX } from './constants.js';
2
+ import {
3
+ DevalueError,
4
+ enumerable_symbols,
5
+ escaped,
6
+ get_type,
7
+ is_buffer,
8
+ is_plain_object,
9
+ is_primitive,
10
+ stringify_key,
11
+ stringify_string,
12
+ valid_array_indices
13
+ } from './utils.js';
14
+
15
+ const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$';
16
+ // Short strings have bounded escaping/output costs per reference, so they cannot
17
+ // cause quadratic expansion. Keep them on the original fast path rather than
18
+ // paying for deduplication on common values such as names, IDs and status fields.
19
+ const MIN_STRING_LENGTH = 128;
20
+ const unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g;
21
+ const reserved =
22
+ /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/;
23
+
24
+ /**
25
+ * Turn a value into the JavaScript that creates an equivalent value
26
+ * @param {any} value
27
+ * @param {(value: any, uneval: (value: any) => string) => string | void} [replacer]
28
+ */
29
+ export function uneval(value, replacer) {
30
+ const counts = new Map();
31
+
32
+ /** @type {string[]} */
33
+ const keys = [];
34
+
35
+ const custom = new Map();
36
+
37
+ // Only allocate a literal cache when we need to reuse an expensive primitive,
38
+ // including long Map keys rendered in error paths during the walk.
39
+ /** @type {Map<string | bigint, string> | undefined} */
40
+ let primitives;
41
+
42
+ /** @param {any} thing */
43
+ function stringify_cached_primitive(thing) {
44
+ if (
45
+ (typeof thing === 'string' && thing.length >= MIN_STRING_LENGTH) ||
46
+ typeof thing === 'bigint'
47
+ ) {
48
+ primitives ??= new Map();
49
+ let literal = primitives.get(thing);
50
+ if (literal === undefined) {
51
+ literal = stringify_primitive(thing);
52
+ primitives.set(thing, literal);
53
+ }
54
+ return literal;
55
+ }
56
+ return stringify_primitive(thing);
57
+ }
58
+
59
+ /** @param {any} thing */
60
+ function walk(thing) {
61
+ if (!is_primitive(thing)) {
62
+ if (counts.has(thing)) {
63
+ counts.set(thing, counts.get(thing) + 1);
64
+ return;
65
+ }
66
+
67
+ counts.set(thing, 1);
68
+
69
+ if (replacer) {
70
+ const str = replacer(thing, (value) => uneval(value, replacer));
71
+
72
+ if (typeof str === 'string') {
73
+ custom.set(thing, str);
74
+ return;
75
+ }
76
+ }
77
+
78
+ if (typeof thing === 'function') {
79
+ throw new DevalueError(`Cannot stringify a function`, keys, thing, value);
80
+ }
81
+
82
+ const type = get_type(thing);
83
+
84
+ switch (type) {
85
+ case 'BigInt':
86
+ case 'String':
87
+ walk(thing.valueOf());
88
+ return;
89
+
90
+ case 'Number':
91
+ case 'Boolean':
92
+ case 'Date':
93
+ case 'RegExp':
94
+ case 'URL':
95
+ case 'URLSearchParams':
96
+ return;
97
+
98
+ case 'Array':
99
+ // forEach scans the logical length of dictionary-backed sparse
100
+ // arrays. Visit own enumerable indices without doing work for
101
+ // every hole.
102
+ for (const i of valid_array_indices(thing)) {
103
+ keys.push(`[${i}]`);
104
+ walk(thing[i]);
105
+ keys.pop();
106
+ }
107
+ break;
108
+
109
+ case 'Set':
110
+ Array.from(thing).forEach(walk);
111
+ break;
112
+
113
+ case 'Map':
114
+ for (const [key, value] of thing) {
115
+ keys.push(`.get(${is_primitive(key) ? stringify_cached_primitive(key) : '...'})`);
116
+ walk(key);
117
+ walk(value);
118
+ keys.pop();
119
+ }
120
+ break;
121
+
122
+ case 'Int8Array':
123
+ case 'Uint8Array':
124
+ case 'Uint8ClampedArray':
125
+ case 'Int16Array':
126
+ case 'Uint16Array':
127
+ case 'Float16Array':
128
+ case 'Int32Array':
129
+ case 'Uint32Array':
130
+ case 'Float32Array':
131
+ case 'Float64Array':
132
+ case 'BigInt64Array':
133
+ case 'BigUint64Array':
134
+ case 'DataView':
135
+ // A Node Buffer's backing store may be a shared pool. It must
136
+ // never be visited or hoisted just because a Buffer uses it.
137
+ if (!is_buffer(thing)) walk(thing.buffer);
138
+ return;
139
+
140
+ case 'ArrayBuffer':
141
+ return;
142
+
143
+ case 'Temporal.Duration':
144
+ case 'Temporal.Instant':
145
+ case 'Temporal.PlainDate':
146
+ case 'Temporal.PlainTime':
147
+ case 'Temporal.PlainDateTime':
148
+ case 'Temporal.PlainMonthDay':
149
+ case 'Temporal.PlainYearMonth':
150
+ case 'Temporal.ZonedDateTime':
151
+ return;
152
+
153
+ default:
154
+ if (!is_plain_object(thing)) {
155
+ throw new DevalueError(`Cannot stringify arbitrary non-POJOs`, keys, thing, value);
156
+ }
157
+
158
+ if (enumerable_symbols(thing).length > 0) {
159
+ throw new DevalueError(`Cannot stringify POJOs with symbolic keys`, keys, thing, value);
160
+ }
161
+
162
+ for (const key of Object.keys(thing)) {
163
+ if (key === '__proto__') {
164
+ throw new DevalueError(
165
+ `Cannot stringify objects with __proto__ keys`,
166
+ keys,
167
+ thing,
168
+ value
169
+ );
170
+ }
171
+
172
+ keys.push(stringify_key(key));
173
+ walk(thing[key]);
174
+ keys.pop();
175
+ }
176
+ }
177
+ } else if (typeof thing === 'symbol') {
178
+ throw new DevalueError(`Cannot stringify a Symbol primitive`, keys, thing, value);
179
+ } else if (
180
+ (typeof thing === 'string' && thing.length >= MIN_STRING_LENGTH) ||
181
+ typeof thing === 'bigint'
182
+ ) {
183
+ counts.set(thing, (counts.get(thing) || 0) + 1);
184
+ }
185
+ }
186
+
187
+ walk(value);
188
+
189
+ const names = new Map();
190
+
191
+ /** @type {Array<[any, number]>} */
192
+ const repeated = [];
193
+ // Avoid allocating entries for all the values that will never be hoisted.
194
+ counts.forEach((count, thing) => {
195
+ if (count > 1) repeated.push([thing, count]);
196
+ });
197
+
198
+ repeated
199
+ .sort((a, b) => b[1] - a[1])
200
+ .forEach(([thing, count]) => {
201
+ const name = get_name(names.size);
202
+
203
+ if (is_primitive(thing)) {
204
+ const length = stringify_cached_primitive(thing).length;
205
+ // Hoisting costs one literal, a parameter and a reference per occurrence.
206
+ // Allow for the IIFE wrapper and separators even if one already exists,
207
+ // so inexpensive repetitions stay inline.
208
+ if (length * count <= length + (count + 1) * name.length + 25) return;
209
+ }
210
+
211
+ names.set(thing, name);
212
+ });
213
+
214
+ /**
215
+ * @param {any} thing
216
+ * @returns {string}
217
+ */
218
+ function stringify(thing) {
219
+ if (names.has(thing)) {
220
+ return names.get(thing);
221
+ }
222
+
223
+ if (is_primitive(thing)) {
224
+ return stringify_primitive(thing);
225
+ }
226
+
227
+ if (custom.has(thing)) {
228
+ return custom.get(thing);
229
+ }
230
+
231
+ const type = get_type(thing);
232
+
233
+ switch (type) {
234
+ case 'Number':
235
+ case 'String':
236
+ case 'Boolean':
237
+ case 'BigInt':
238
+ return `Object(${stringify(thing.valueOf())})`;
239
+
240
+ case 'RegExp':
241
+ const { source, flags } = thing;
242
+ return flags
243
+ ? `new RegExp(${stringify_string(source)},"${flags}")`
244
+ : `new RegExp(${stringify_string(source)})`;
245
+
246
+ case 'Date':
247
+ return `new Date(${thing.getTime()})`;
248
+
249
+ case 'URL':
250
+ return `new URL(${stringify_string(thing.toString())})`;
251
+
252
+ case 'URLSearchParams':
253
+ return `new URLSearchParams(${stringify_string(thing.toString())})`;
254
+
255
+ case 'Array': {
256
+ // For dense arrays (no holes), we iterate normally.
257
+ // When we encounter the first hole, we collect own indices
258
+ // to determine the sparseness, then decide between:
259
+ // - Array literal with holes: [,"a",,] (default)
260
+ // - Object.assign with a sparse-safe allocator (for very sparse arrays)
261
+ // Only the Object.assign path avoids iterating every slot, which
262
+ // is what protects against the DoS of e.g. `arr[1000000] = 1`.
263
+ let has_holes = false;
264
+
265
+ let result = '[';
266
+
267
+ for (let i = 0; i < thing.length; i += 1) {
268
+ if (i > 0) result += ',';
269
+
270
+ if (Object.hasOwn(thing, i)) {
271
+ result += stringify(thing[i]);
272
+ } else if (!has_holes) {
273
+ // Decide between array literal and Object.assign.
274
+ //
275
+ // Array literal: holes are consecutive commas.
276
+ // For example, [, "a", ,] is written as [,"a",,].
277
+ // Each hole costs 1 char (a comma).
278
+ //
279
+ // Object.assign: populated indices are listed explicitly.
280
+ // For example, [, "a", ,] would be written as
281
+ // Object.assign(sparse(3),{1:"a"}), where sparse(n) stands
282
+ // for the expression emitted by stringify_sparse_array(n).
283
+ // This avoids paying per-hole, but has a large fixed
284
+ // overhead for the allocator and Object.assign wrapper,
285
+ // and each element costs extra chars for its index and colon.
286
+ //
287
+ // The serialized values are the same size either way, so
288
+ // the choice comes down to the structural overhead:
289
+ //
290
+ // Array literal overhead:
291
+ // 1 char per element or hole (comma separators)
292
+ // + 2 chars for "[" and "]"
293
+ // = L + 2
294
+ //
295
+ // Object.assign overhead:
296
+ // "Object.assign(" — 14 chars
297
+ // + allocator expression — A chars
298
+ // + ",{" — 2 chars
299
+ // + for each populated element:
300
+ // index + ":" + "," — (d + 2) chars
301
+ // + "})" — 2 chars
302
+ // = (18 + A) + P * (d + 2)
303
+ //
304
+ // where L is the array length, P is the number of
305
+ // populated elements, A is the allocator expression's
306
+ // length, and d is the number of digits in L (an upper
307
+ // bound on the digits in any index).
308
+ //
309
+ // Object.assign is cheaper when:
310
+ // (18 + A) + P * (d + 2) < L + 2
311
+ const populated_keys = valid_array_indices(thing);
312
+ const population = populated_keys.length;
313
+ const d = String(thing.length).length;
314
+ const array = stringify_sparse_array(thing.length);
315
+
316
+ const hole_cost = thing.length + 2;
317
+ const sparse_cost = array.length + 18 + population * (d + 2);
318
+
319
+ if (hole_cost > sparse_cost) {
320
+ const entries = populated_keys.map((k) => `${k}:${stringify(thing[k])}`).join(',');
321
+ return `Object.assign(${array},{${entries}})`;
322
+ }
323
+
324
+ has_holes = true;
325
+ }
326
+ // else: already decided on array literal, hole is just an empty slot
327
+ // (the comma separator is all we need — no content for this position)
328
+ }
329
+
330
+ const tail = thing.length === 0 || Object.hasOwn(thing, thing.length - 1) ? '' : ',';
331
+ return result + tail + ']';
332
+ }
333
+
334
+ case 'Set':
335
+ case 'Map':
336
+ return `new ${type}([${Array.from(thing).map(stringify).join(',')}])`;
337
+
338
+ case 'Int8Array':
339
+ case 'Uint8Array':
340
+ case 'Uint8ClampedArray':
341
+ case 'Int16Array':
342
+ case 'Uint16Array':
343
+ case 'Float16Array':
344
+ case 'Int32Array':
345
+ case 'Uint32Array':
346
+ case 'Float32Array':
347
+ case 'Float64Array':
348
+ case 'BigInt64Array':
349
+ case 'BigUint64Array': {
350
+ if (is_buffer(thing)) thing = new Uint8Array(thing);
351
+
352
+ let str = `new ${type}`;
353
+
354
+ if (!names.has(thing.buffer)) {
355
+ str += `([${stringify_typed_array_elements(type, thing.buffer)}])`;
356
+ } else {
357
+ str += `(${stringify(thing.buffer)})`;
358
+ }
359
+
360
+ // handle subarrays
361
+ if (thing.byteLength !== thing.buffer.byteLength) {
362
+ const start = thing.byteOffset / thing.BYTES_PER_ELEMENT;
363
+ const end = start + thing.length;
364
+ str += `.subarray(${start},${end})`;
365
+ }
366
+
367
+ return str;
368
+ }
369
+
370
+ case 'DataView': {
371
+ let str = `new DataView`;
372
+
373
+ if (!names.has(thing.buffer)) {
374
+ str += `(new Uint8Array([${new Uint8Array(thing.buffer)}]).buffer`;
375
+ } else {
376
+ str += `(${stringify(thing.buffer)}`;
377
+ }
378
+
379
+ // handle subviews
380
+ if (thing.byteLength !== thing.buffer.byteLength) {
381
+ str += `,${thing.byteOffset},${thing.byteLength}`;
382
+ }
383
+
384
+ return str + ')';
385
+ }
386
+
387
+ case 'ArrayBuffer': {
388
+ const ui8 = new Uint8Array(thing);
389
+ return `new Uint8Array([${ui8.toString()}]).buffer`;
390
+ }
391
+
392
+ case 'Temporal.Duration':
393
+ case 'Temporal.Instant':
394
+ case 'Temporal.PlainDate':
395
+ case 'Temporal.PlainTime':
396
+ case 'Temporal.PlainDateTime':
397
+ case 'Temporal.PlainMonthDay':
398
+ case 'Temporal.PlainYearMonth':
399
+ case 'Temporal.ZonedDateTime':
400
+ return `${type}.from(${stringify_string(thing.toString())})`;
401
+
402
+ default:
403
+ const keys = Object.keys(thing);
404
+ const obj = keys.map((key) => `${safe_key(key)}:${stringify(thing[key])}`).join(',');
405
+ const proto = Object.getPrototypeOf(thing);
406
+ if (proto === null) {
407
+ return keys.length > 0 ? `{${obj},__proto__:null}` : `{__proto__:null}`;
408
+ }
409
+
410
+ return `{${obj}}`;
411
+ }
412
+ }
413
+
414
+ const str = stringify(value);
415
+
416
+ if (names.size) {
417
+ /** @type {string[]} */
418
+ const params = [];
419
+
420
+ /** @type {string[]} */
421
+ const statements = [];
422
+
423
+ /** @type {string[]} */
424
+ const values = [];
425
+
426
+ // Reconstructions (e.g. `b = new Uint8Array(...)`) reassign a placeholder
427
+ // parameter. They must run before the `statements` that reference them,
428
+ // otherwise those statements capture the placeholder. They only depend on
429
+ // IIFE arguments (never on each other), so emitting them first is safe.
430
+ /** @type {string[]} */
431
+ const reconstructions = [];
432
+
433
+ names.forEach((name, thing) => {
434
+ params.push(name);
435
+
436
+ if (custom.has(thing)) {
437
+ values.push(/** @type {string} */ (custom.get(thing)));
438
+ return;
439
+ }
440
+
441
+ if (is_primitive(thing)) {
442
+ values.push(stringify_cached_primitive(thing));
443
+ return;
444
+ }
445
+
446
+ const type = get_type(thing);
447
+
448
+ switch (type) {
449
+ case 'Number':
450
+ case 'String':
451
+ case 'Boolean':
452
+ case 'BigInt': {
453
+ const primitive = thing.valueOf();
454
+ if (names.has(primitive)) {
455
+ // A hoisted primitive is only in scope inside the IIFE, not in
456
+ // its arguments. Reconstruct the box before assigning references.
457
+ values.push('{}');
458
+ reconstructions.push(`${name}=Object(${stringify(primitive)})`);
459
+ } else {
460
+ values.push(`Object(${stringify(primitive)})`);
461
+ }
462
+ break;
463
+ }
464
+
465
+ case 'RegExp':
466
+ const { source, flags } = thing;
467
+ const regexp = flags
468
+ ? `new RegExp(${stringify_string(source)},"${flags}")`
469
+ : `new RegExp(${stringify_string(source)})`
470
+ values.push(regexp);
471
+ break;
472
+
473
+ case 'Date':
474
+ values.push(`new Date(${thing.getTime()})`);
475
+ break;
476
+
477
+ case 'URL':
478
+ values.push(`new URL(${stringify_string(thing.toString())})`);
479
+ break;
480
+
481
+ case 'URLSearchParams':
482
+ values.push(`new URLSearchParams(${stringify_string(thing.toString())})`);
483
+ break;
484
+
485
+ case 'Array': {
486
+ const populated_keys = valid_array_indices(thing);
487
+ // Only preallocate when the length is bounded by the number
488
+ // of populated elements, plus a small constant for short arrays.
489
+ values.push(
490
+ thing.length > 32 + 2 * populated_keys.length
491
+ ? stringify_sparse_array(thing.length)
492
+ : `Array(${thing.length})`
493
+ );
494
+ for (const i of populated_keys) {
495
+ statements.push(`${name}[${i}]=${stringify(thing[i])}`);
496
+ }
497
+ break;
498
+ }
499
+
500
+ case 'Set': {
501
+ values.push(`new Set`);
502
+ const adds = Array.from(thing).map((v) => `.add(${stringify(v)})`);
503
+ // An empty Set is fully built by `new Set`; a chained statement would
504
+ // otherwise be a dangling `name.`.
505
+ if (adds.length > 0) statements.push(name + adds.join(''));
506
+ break;
507
+ }
508
+
509
+ case 'Map': {
510
+ values.push(`new Map`);
511
+ const sets = Array.from(thing).map(
512
+ ([k, v]) => `.set(${stringify(k)}, ${stringify(v)})`
513
+ );
514
+ if (sets.length > 0) statements.push(name + sets.join(''));
515
+ break;
516
+ }
517
+
518
+ case 'Int8Array':
519
+ case 'Uint8Array':
520
+ case 'Uint8ClampedArray':
521
+ case 'Int16Array':
522
+ case 'Uint16Array':
523
+ case 'Float16Array':
524
+ case 'Int32Array':
525
+ case 'Uint32Array':
526
+ case 'Float32Array':
527
+ case 'Float64Array':
528
+ case 'BigInt64Array':
529
+ case 'BigUint64Array': {
530
+ if (is_buffer(thing)) thing = new Uint8Array(thing);
531
+
532
+ let str = `new ${type}`;
533
+
534
+ if (!names.has(thing.buffer)) {
535
+ str += `([${stringify_typed_array_elements(type, thing.buffer)}])`;
536
+ } else {
537
+ str += `(${stringify(thing.buffer)})`;
538
+ }
539
+
540
+ // handle subarrays
541
+ if (thing.byteLength !== thing.buffer.byteLength) {
542
+ const start = thing.byteOffset / thing.BYTES_PER_ELEMENT;
543
+ const end = start + thing.length;
544
+ str += `.subarray(${start},${end})`;
545
+ }
546
+
547
+ values.push(`{}`);
548
+ reconstructions.push(`${name}=${str}`);
549
+ break;
550
+ }
551
+
552
+ case 'DataView': {
553
+ let str = `new DataView`;
554
+
555
+ if (!names.has(thing.buffer)) {
556
+ str += `(new Uint8Array([${new Uint8Array(thing.buffer)}]).buffer`;
557
+ } else {
558
+ str += `(${stringify(thing.buffer)}`;
559
+ }
560
+
561
+ // handle subviews
562
+ if (thing.byteLength !== thing.buffer.byteLength) {
563
+ str += `,${thing.byteOffset},${thing.byteLength}`;
564
+ }
565
+
566
+ str += ')';
567
+
568
+ values.push(`{}`);
569
+ reconstructions.push(`${name}=${str}`);
570
+ break;
571
+ }
572
+
573
+ case 'ArrayBuffer':
574
+ values.push(`new Uint8Array([${new Uint8Array(thing)}]).buffer`);
575
+ break;
576
+
577
+ case 'Temporal.Duration':
578
+ case 'Temporal.Instant':
579
+ case 'Temporal.PlainDate':
580
+ case 'Temporal.PlainTime':
581
+ case 'Temporal.PlainDateTime':
582
+ case 'Temporal.PlainMonthDay':
583
+ case 'Temporal.PlainYearMonth':
584
+ case 'Temporal.ZonedDateTime':
585
+ values.push(`${type}.from(${stringify_string(thing.toString())})`);
586
+ break;
587
+
588
+ default:
589
+ values.push(Object.getPrototypeOf(thing) === null ? 'Object.create(null)' : '{}');
590
+ Object.keys(thing).forEach((key) => {
591
+ statements.push(`${name}${safe_prop(key)}=${stringify(thing[key])}`);
592
+ });
593
+ }
594
+ });
595
+
596
+ statements.push(`return ${str}`);
597
+
598
+ const body = [...reconstructions, ...statements].join(';');
599
+ // A function may have at most 65535 parameters (and a call at most that
600
+ // many arguments). For very large graphs, pass the hoisted values as a
601
+ // single array argument and destructure them into the placeholder names,
602
+ // so the emitted code stays within the engine limit (#93).
603
+ if (params.length > 65534) {
604
+ return `(function(){var[${params.join(',')}]=arguments[0];${body}}([${values.join(',')}]))`;
605
+ }
606
+
607
+ return `(function(${params.join(',')}){${body}}(${values.join(',')}))`;
608
+ } else {
609
+ return str;
610
+ }
611
+ }
612
+
613
+ /**
614
+ * Emit an array whose storage is not proportional to its declared length.
615
+ * As in the default parse operations, touching and deleting the largest valid
616
+ * index forces V8 into dictionary-elements mode before setting the length.
617
+ * Merely starting with [] and assigning .length still eagerly allocates.
618
+ * @param {number} length
619
+ */
620
+ function stringify_sparse_array(length) {
621
+ return `(function(a){a[${MAX_ARRAY_INDEX}]=0;delete a[${MAX_ARRAY_INDEX}];a.length=${length};return a}([]))`;
622
+ }
623
+
624
+ /**
625
+ * Serialize the elements of `buffer`, read as `type`, as a comma-separated list.
626
+ * The view is created from `type` rather than from the serialized value's own
627
+ * constructor, which may be a subclass like Node's `Buffer` whose `toString`
628
+ * decodes the bytes instead of listing them.
629
+ * `BigInt64Array`/`BigUint64Array` elements are bigints and must be written
630
+ * with an `n` suffix, otherwise the emitted `new BigInt64Array([...])` throws.
631
+ * @param {string} type
632
+ * @param {ArrayBufferLike} buffer
633
+ */
634
+ function stringify_typed_array_elements(type, buffer) {
635
+ const array = new (/** @type {any} */ (globalThis)[type])(buffer);
636
+
637
+ if (type === 'BigInt64Array' || type === 'BigUint64Array') {
638
+ return Array.from(array, (element) => `${element}n`).join(',');
639
+ }
640
+
641
+ // Float arrays can hold `-0`, which `toString()` collapses to `"0"`, silently
642
+ // losing the sign on round-trip. Emit `-0` explicitly for those elements.
643
+ if (
644
+ array instanceof Float32Array ||
645
+ array instanceof Float64Array ||
646
+ (typeof Float16Array !== 'undefined' && array instanceof Float16Array)
647
+ ) {
648
+ return Array.from(array, (element) => (Object.is(element, -0) ? '-0' : `${element}`)).join(',');
649
+ }
650
+
651
+ return array.toString();
652
+ }
653
+
654
+ /** @param {number} num */
655
+ function get_name(num) {
656
+ let name = '';
657
+
658
+ do {
659
+ name = chars[num % chars.length] + name;
660
+ num = ~~(num / chars.length) - 1;
661
+ } while (num >= 0);
662
+
663
+ return reserved.test(name) ? `${name}0` : name;
664
+ }
665
+
666
+ /** @param {string} c */
667
+ function escape_unsafe_char(c) {
668
+ return escaped[c] || c;
669
+ }
670
+
671
+ /** @param {string} str */
672
+ function escape_unsafe_chars(str) {
673
+ return str.replace(unsafe_chars, escape_unsafe_char);
674
+ }
675
+
676
+ /** @param {string} key */
677
+ function safe_key(key) {
678
+ return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) ? key : escape_unsafe_chars(JSON.stringify(key));
679
+ }
680
+
681
+ /** @param {string} key */
682
+ function safe_prop(key) {
683
+ return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key)
684
+ ? `.${key}`
685
+ : `[${escape_unsafe_chars(JSON.stringify(key))}]`;
686
+ }
687
+
688
+ /** @param {any} thing */
689
+ function stringify_primitive(thing) {
690
+ const type = typeof thing;
691
+ if (type === 'string') return stringify_string(thing);
692
+ if (thing === void 0) return 'void 0';
693
+ if (thing === 0 && 1 / thing < 0) return '-0';
694
+ const str = String(thing);
695
+ if (type === 'number') return str.replace(/^(-)?0\./, '$1.');
696
+ if (type === 'bigint') return thing + 'n';
697
+ return str;
698
+ }