bantou 0.1.0 → 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 +227 -24
  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,211 @@
1
+ /**
2
+ * Password-Based Key-Derivation Function #2 implementation.
3
+ *
4
+ * See RFC 2898 for details.
5
+ *
6
+ * @author Dave Longley
7
+ *
8
+ * Copyright (c) 2010-2013 Digital Bazaar, Inc.
9
+ */
10
+ var forge = require('./forge');
11
+ require('./hmac');
12
+ require('./md');
13
+ require('./util');
14
+
15
+ var pkcs5 = forge.pkcs5 = forge.pkcs5 || {};
16
+
17
+ var crypto;
18
+ if(forge.util.isNodejs && !forge.options.usePureJavaScript) {
19
+ crypto = require('crypto');
20
+ }
21
+
22
+ /**
23
+ * Derives a key from a password.
24
+ *
25
+ * @param p the password as a binary-encoded string of bytes.
26
+ * @param s the salt as a binary-encoded string of bytes.
27
+ * @param c the iteration count, a positive integer.
28
+ * @param dkLen the intended length, in bytes, of the derived key,
29
+ * (max: 2^32 - 1) * hash length of the PRF.
30
+ * @param [md] the message digest (or algorithm identifier as a string) to use
31
+ * in the PRF, defaults to SHA-1.
32
+ * @param [callback(err, key)] presence triggers asynchronous version, called
33
+ * once the operation completes.
34
+ *
35
+ * @return the derived key, as a binary-encoded string of bytes, for the
36
+ * synchronous version (if no callback is specified).
37
+ */
38
+ module.exports = forge.pbkdf2 = pkcs5.pbkdf2 = function(
39
+ p, s, c, dkLen, md, callback) {
40
+ if(typeof md === 'function') {
41
+ callback = md;
42
+ md = null;
43
+ }
44
+
45
+ // use native implementation if possible and not disabled, note that
46
+ // some node versions only support SHA-1, others allow digest to be changed
47
+ if(forge.util.isNodejs && !forge.options.usePureJavaScript &&
48
+ crypto.pbkdf2 && (md === null || typeof md !== 'object') &&
49
+ (crypto.pbkdf2Sync.length > 4 || (!md || md === 'sha1'))) {
50
+ if(typeof md !== 'string') {
51
+ // default prf to SHA-1
52
+ md = 'sha1';
53
+ }
54
+ p = Buffer.from(p, 'binary');
55
+ s = Buffer.from(s, 'binary');
56
+ if(!callback) {
57
+ if(crypto.pbkdf2Sync.length === 4) {
58
+ return crypto.pbkdf2Sync(p, s, c, dkLen).toString('binary');
59
+ }
60
+ return crypto.pbkdf2Sync(p, s, c, dkLen, md).toString('binary');
61
+ }
62
+ if(crypto.pbkdf2Sync.length === 4) {
63
+ return crypto.pbkdf2(p, s, c, dkLen, function(err, key) {
64
+ if(err) {
65
+ return callback(err);
66
+ }
67
+ callback(null, key.toString('binary'));
68
+ });
69
+ }
70
+ return crypto.pbkdf2(p, s, c, dkLen, md, function(err, key) {
71
+ if(err) {
72
+ return callback(err);
73
+ }
74
+ callback(null, key.toString('binary'));
75
+ });
76
+ }
77
+
78
+ if(typeof md === 'undefined' || md === null) {
79
+ // default prf to SHA-1
80
+ md = 'sha1';
81
+ }
82
+ if(typeof md === 'string') {
83
+ if(!(md in forge.md.algorithms)) {
84
+ throw new Error('Unknown hash algorithm: ' + md);
85
+ }
86
+ md = forge.md[md].create();
87
+ }
88
+
89
+ var hLen = md.digestLength;
90
+
91
+ /* 1. If dkLen > (2^32 - 1) * hLen, output "derived key too long" and
92
+ stop. */
93
+ if(dkLen > (0xFFFFFFFF * hLen)) {
94
+ var err = new Error('Derived key is too long.');
95
+ if(callback) {
96
+ return callback(err);
97
+ }
98
+ throw err;
99
+ }
100
+
101
+ /* 2. Let len be the number of hLen-octet blocks in the derived key,
102
+ rounding up, and let r be the number of octets in the last
103
+ block:
104
+
105
+ len = CEIL(dkLen / hLen),
106
+ r = dkLen - (len - 1) * hLen. */
107
+ var len = Math.ceil(dkLen / hLen);
108
+ var r = dkLen - (len - 1) * hLen;
109
+
110
+ /* 3. For each block of the derived key apply the function F defined
111
+ below to the password P, the salt S, the iteration count c, and
112
+ the block index to compute the block:
113
+
114
+ T_1 = F(P, S, c, 1),
115
+ T_2 = F(P, S, c, 2),
116
+ ...
117
+ T_len = F(P, S, c, len),
118
+
119
+ where the function F is defined as the exclusive-or sum of the
120
+ first c iterates of the underlying pseudorandom function PRF
121
+ applied to the password P and the concatenation of the salt S
122
+ and the block index i:
123
+
124
+ F(P, S, c, i) = u_1 XOR u_2 XOR ... XOR u_c
125
+
126
+ where
127
+
128
+ u_1 = PRF(P, S || INT(i)),
129
+ u_2 = PRF(P, u_1),
130
+ ...
131
+ u_c = PRF(P, u_{c-1}).
132
+
133
+ Here, INT(i) is a four-octet encoding of the integer i, most
134
+ significant octet first. */
135
+ var prf = forge.hmac.create();
136
+ prf.start(md, p);
137
+ var dk = '';
138
+ var xor, u_c, u_c1;
139
+
140
+ // sync version
141
+ if(!callback) {
142
+ for(var i = 1; i <= len; ++i) {
143
+ // PRF(P, S || INT(i)) (first iteration)
144
+ prf.start(null, null);
145
+ prf.update(s);
146
+ prf.update(forge.util.int32ToBytes(i));
147
+ xor = u_c1 = prf.digest().getBytes();
148
+
149
+ // PRF(P, u_{c-1}) (other iterations)
150
+ for(var j = 2; j <= c; ++j) {
151
+ prf.start(null, null);
152
+ prf.update(u_c1);
153
+ u_c = prf.digest().getBytes();
154
+ // F(p, s, c, i)
155
+ xor = forge.util.xorBytes(xor, u_c, hLen);
156
+ u_c1 = u_c;
157
+ }
158
+
159
+ /* 4. Concatenate the blocks and extract the first dkLen octets to
160
+ produce a derived key DK:
161
+
162
+ DK = T_1 || T_2 || ... || T_len<0..r-1> */
163
+ dk += (i < len) ? xor : xor.substr(0, r);
164
+ }
165
+ /* 5. Output the derived key DK. */
166
+ return dk;
167
+ }
168
+
169
+ // async version
170
+ var i = 1, j;
171
+ function outer() {
172
+ if(i > len) {
173
+ // done
174
+ return callback(null, dk);
175
+ }
176
+
177
+ // PRF(P, S || INT(i)) (first iteration)
178
+ prf.start(null, null);
179
+ prf.update(s);
180
+ prf.update(forge.util.int32ToBytes(i));
181
+ xor = u_c1 = prf.digest().getBytes();
182
+
183
+ // PRF(P, u_{c-1}) (other iterations)
184
+ j = 2;
185
+ inner();
186
+ }
187
+
188
+ function inner() {
189
+ if(j <= c) {
190
+ prf.start(null, null);
191
+ prf.update(u_c1);
192
+ u_c = prf.digest().getBytes();
193
+ // F(p, s, c, i)
194
+ xor = forge.util.xorBytes(xor, u_c, hLen);
195
+ u_c1 = u_c;
196
+ ++j;
197
+ return forge.util.setImmediate(inner);
198
+ }
199
+
200
+ /* 4. Concatenate the blocks and extract the first dkLen octets to
201
+ produce a derived key DK:
202
+
203
+ DK = T_1 || T_2 || ... || T_len<0..r-1> */
204
+ dk += (i < len) ? xor : xor.substr(0, r);
205
+
206
+ ++i;
207
+ outer();
208
+ }
209
+
210
+ outer();
211
+ };
@@ -0,0 +1,413 @@
1
+ /**
2
+ * Javascript implementation of basic PEM (Privacy Enhanced Mail) algorithms.
3
+ *
4
+ * See: RFC 1421.
5
+ *
6
+ * @author Dave Longley
7
+ *
8
+ * Copyright (c) 2013-2014 Digital Bazaar, Inc.
9
+ *
10
+ * A Forge PEM object has the following fields:
11
+ *
12
+ * type: identifies the type of message (eg: "RSA PRIVATE KEY").
13
+ *
14
+ * procType: identifies the type of processing performed on the message,
15
+ * it has two subfields: version and type, eg: 4,ENCRYPTED.
16
+ *
17
+ * contentDomain: identifies the type of content in the message, typically
18
+ * only uses the value: "RFC822".
19
+ *
20
+ * dekInfo: identifies the message encryption algorithm and mode and includes
21
+ * any parameters for the algorithm, it has two subfields: algorithm and
22
+ * parameters, eg: DES-CBC,F8143EDE5960C597.
23
+ *
24
+ * headers: contains all other PEM encapsulated headers -- where order is
25
+ * significant (for pairing data like recipient ID + key info).
26
+ *
27
+ * body: the binary-encoded body.
28
+ */
29
+ var forge = require('./forge');
30
+ require('./util');
31
+
32
+ // shortcut for pem API
33
+ var pem = module.exports = forge.pem = forge.pem || {};
34
+
35
+ /**
36
+ * Encodes (serializes) the given PEM object.
37
+ *
38
+ * @param msg the PEM message object to encode.
39
+ * @param options the options to use:
40
+ * maxline the maximum characters per line for the body, (default: 64).
41
+ *
42
+ * @return the PEM-formatted string.
43
+ */
44
+ pem.encode = function(msg, options) {
45
+ options = options || {};
46
+ var rval = '-----BEGIN ' + msg.type + '-----\r\n';
47
+
48
+ // encode special headers
49
+ var header;
50
+ if(msg.procType) {
51
+ header = {
52
+ name: 'Proc-Type',
53
+ values: [String(msg.procType.version), msg.procType.type]
54
+ };
55
+ rval += foldHeader(header);
56
+ }
57
+ if(msg.contentDomain) {
58
+ header = {name: 'Content-Domain', values: [msg.contentDomain]};
59
+ rval += foldHeader(header);
60
+ }
61
+ if(msg.dekInfo) {
62
+ header = {name: 'DEK-Info', values: [msg.dekInfo.algorithm]};
63
+ if(msg.dekInfo.parameters) {
64
+ header.values.push(msg.dekInfo.parameters);
65
+ }
66
+ rval += foldHeader(header);
67
+ }
68
+
69
+ if(msg.headers) {
70
+ // encode all other headers
71
+ for(var i = 0; i < msg.headers.length; ++i) {
72
+ rval += foldHeader(msg.headers[i]);
73
+ }
74
+ }
75
+
76
+ // terminate header
77
+ if(msg.procType) {
78
+ rval += '\r\n';
79
+ }
80
+
81
+ // add body
82
+ rval += forge.util.encode64(msg.body, options.maxline || 64) + '\r\n';
83
+
84
+ rval += '-----END ' + msg.type + '-----\r\n';
85
+ return rval;
86
+ };
87
+
88
+ /**
89
+ * Decodes (deserializes) all PEM messages found in the given string.
90
+ *
91
+ * @param str the PEM-formatted string to decode.
92
+ *
93
+ * @return the PEM message objects in an array.
94
+ */
95
+ pem.decode = function(str) {
96
+ var rval = [];
97
+
98
+ // convert non-strings like a Buffer as the previous regex search did
99
+ str = String(str);
100
+
101
+ // split string into PEM messages (be lenient w/EOF on BEGIN line)
102
+ var messages = _pemMessageScanner(str);
103
+ // the name must start at the beginning of a run of printable chars, which
104
+ // gives the same match as an unanchored search without quadratic retries
105
+ var rHeader = /(?:^|[^\x21-\x7e])([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/;
106
+ var rCRLF = /\r?\n/;
107
+ var match;
108
+ while(true) {
109
+ match = messages.next();
110
+ if(!match) {
111
+ break;
112
+ }
113
+
114
+ // accept "NEW CERTIFICATE REQUEST" as "CERTIFICATE REQUEST"
115
+ // https://datatracker.ietf.org/doc/html/rfc7468#section-7
116
+ var type = match[1];
117
+ if(type === 'NEW CERTIFICATE REQUEST') {
118
+ type = 'CERTIFICATE REQUEST';
119
+ }
120
+
121
+ var msg = {
122
+ type: type,
123
+ procType: null,
124
+ contentDomain: null,
125
+ dekInfo: null,
126
+ headers: [],
127
+ body: forge.util.decode64(match[3])
128
+ };
129
+ rval.push(msg);
130
+
131
+ // no headers
132
+ if(!match[2]) {
133
+ continue;
134
+ }
135
+
136
+ // parse headers
137
+ var lines = match[2].split(rCRLF);
138
+ var li = 0;
139
+ while(match && li < lines.length) {
140
+ // get line, trim any rhs whitespace
141
+ var line = rtrim(lines[li]);
142
+
143
+ // RFC2822 unfold any following folded lines
144
+ for(var nl = li + 1; nl < lines.length; ++nl) {
145
+ var next = lines[nl];
146
+ if(!/\s/.test(next[0])) {
147
+ break;
148
+ }
149
+ line += next;
150
+ li = nl;
151
+ }
152
+
153
+ // parse header
154
+ match = line.match(rHeader);
155
+ if(match) {
156
+ var header = {name: match[1], values: []};
157
+ var values = match[2].split(',');
158
+ for(var vi = 0; vi < values.length; ++vi) {
159
+ header.values.push(ltrim(values[vi]));
160
+ }
161
+
162
+ // Proc-Type must be the first header
163
+ if(!msg.procType) {
164
+ if(header.name !== 'Proc-Type') {
165
+ throw new Error('Invalid PEM formatted message. The first ' +
166
+ 'encapsulated header must be "Proc-Type".');
167
+ } else if(header.values.length !== 2) {
168
+ throw new Error('Invalid PEM formatted message. The "Proc-Type" ' +
169
+ 'header must have two subfields.');
170
+ }
171
+ msg.procType = {version: values[0], type: values[1]};
172
+ } else if(!msg.contentDomain && header.name === 'Content-Domain') {
173
+ // special-case Content-Domain
174
+ msg.contentDomain = values[0] || '';
175
+ } else if(!msg.dekInfo && header.name === 'DEK-Info') {
176
+ // special-case DEK-Info
177
+ if(header.values.length === 0) {
178
+ throw new Error('Invalid PEM formatted message. The "DEK-Info" ' +
179
+ 'header must have at least one subfield.');
180
+ }
181
+ msg.dekInfo = {algorithm: values[0], parameters: values[1] || null};
182
+ } else {
183
+ msg.headers.push(header);
184
+ }
185
+ }
186
+
187
+ ++li;
188
+ }
189
+
190
+ if(msg.procType === 'ENCRYPTED' && !msg.dekInfo) {
191
+ throw new Error('Invalid PEM formatted message. The "DEK-Info" ' +
192
+ 'header must be present if "Proc-Type" is "ENCRYPTED".');
193
+ }
194
+ }
195
+
196
+ if(rval.length === 0) {
197
+ throw new Error('Invalid PEM formatted message.');
198
+ }
199
+
200
+ return rval;
201
+ };
202
+
203
+ function foldHeader(header) {
204
+ var rval = header.name + ': ';
205
+
206
+ // ensure values with CRLF are folded
207
+ var values = [];
208
+ var insertSpace = function(match, $1) {
209
+ return ' ' + $1;
210
+ };
211
+ for(var i = 0; i < header.values.length; ++i) {
212
+ values.push(header.values[i].replace(/^(\S+\r\n)/, insertSpace));
213
+ }
214
+ rval += values.join(',') + '\r\n';
215
+
216
+ // do folding
217
+ var length = 0;
218
+ var candidate = -1;
219
+ for(var i = 0; i < rval.length; ++i, ++length) {
220
+ if(length > 65 && candidate !== -1) {
221
+ var insert = rval[candidate];
222
+ if(insert === ',') {
223
+ ++candidate;
224
+ rval = rval.substr(0, candidate) + '\r\n ' + rval.substr(candidate);
225
+ } else {
226
+ rval = rval.substr(0, candidate) +
227
+ '\r\n' + insert + rval.substr(candidate + 1);
228
+ }
229
+ length = (i - candidate - 1);
230
+ candidate = -1;
231
+ ++i;
232
+ } else if(rval[i] === ' ' || rval[i] === '\t' || rval[i] === ',') {
233
+ candidate = i;
234
+ }
235
+ }
236
+
237
+ return rval;
238
+ }
239
+
240
+ function ltrim(str) {
241
+ return str.replace(/^\s+/, '');
242
+ }
243
+
244
+ // a loop, since /\s+$/ is quadratic on whitespace followed by non-whitespace
245
+ function rtrim(str) {
246
+ var end = str.length;
247
+ while(end > 0 && /\s/.test(str.charAt(end - 1))) {
248
+ --end;
249
+ }
250
+ return str.substring(0, end);
251
+ }
252
+
253
+ /**
254
+ * Creates a scanner for the PEM messages in a string. It finds the same
255
+ * matches as this regular expression, except that only the shortest label
256
+ * followed by '-----' is tried (RFC 7468 labels can't contain '--'):
257
+ *
258
+ * /\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?
259
+ * ([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g
260
+ *
261
+ * The regular expression takes polynomial time on input without a matching
262
+ * END line. The scanner indexes the END lines once instead, so each BEGIN
263
+ * line is matched without rescanning the input.
264
+ *
265
+ * @param str the string to scan.
266
+ *
267
+ * @return an object whose next() returns the next match as
268
+ * [match, label, headers, body] (headers may be undefined), or null.
269
+ */
270
+ function _pemMessageScanner(str) {
271
+ var rBody = /[:A-Za-z0-9+\/=\s]/;
272
+ var rNotBody = /[^:A-Za-z0-9+\/=\s]/g;
273
+ var rNotHeader = /[^\x21-\x7e\s]/g;
274
+ var rLabel = /[A-Z0-9- ]/;
275
+
276
+ // index of the first char at or after i matched by a global regex
277
+ function indexOfRegex(regex, i) {
278
+ regex.lastIndex = i;
279
+ var match = regex.exec(str);
280
+ return match ? match.index : str.length;
281
+ }
282
+
283
+ // shortest label at i followed by '-----', or null
284
+ function labelAt(i) {
285
+ for(var j = i; j < str.length && rLabel.test(str.charAt(j)); ++j) {
286
+ if(j > i && str.substr(j, 5) === '-----') {
287
+ return str.substring(i, j);
288
+ }
289
+ }
290
+ return null;
291
+ }
292
+
293
+ // end of a blank line (\r?\n\r?\n) starting at i, or -1
294
+ function blankLineEnd(i) {
295
+ if(str.charAt(i) === '\r') {
296
+ ++i;
297
+ }
298
+ if(str.charAt(i) !== '\n') {
299
+ return -1;
300
+ }
301
+ if(str.charAt(++i) === '\r') {
302
+ ++i;
303
+ }
304
+ return str.charAt(i) === '\n' ? i + 1 : -1;
305
+ }
306
+
307
+ // first i in [start, end) where a blank line ends before end, or -1
308
+ function firstBlankLine(start, end) {
309
+ for(var i = start; i < end; ++i) {
310
+ var v = blankLineEnd(i);
311
+ if(v !== -1 && v < end) {
312
+ return i;
313
+ }
314
+ }
315
+ return -1;
316
+ }
317
+
318
+ // the headers group ends at a blank line inside the run of body chars
319
+ // before an END line; index END lines by label, with the first such
320
+ // blank line
321
+ var ends = {};
322
+ for(var end = str.indexOf('-----END '); end !== -1;
323
+ end = str.indexOf('-----END ', end + 1)) {
324
+ var endLabel = labelAt(end + 9);
325
+ var start = end;
326
+ while(start > 0 && rBody.test(str.charAt(start - 1))) {
327
+ --start;
328
+ }
329
+ var blank = firstBlankLine(start, end);
330
+ if(endLabel !== null && blank !== -1) {
331
+ var key = '$' + endLabel;
332
+ (ends[key] = ends[key] || []).push({end: end, blank: blank});
333
+ }
334
+ }
335
+
336
+ var pos = 0;
337
+ var headerEnd = -1;
338
+ return {
339
+ next: function() {
340
+ var begin;
341
+ while((begin = str.indexOf('-----BEGIN ', pos)) !== -1) {
342
+ pos = begin + 1;
343
+ var label = labelAt(begin + 11);
344
+ if(label === null) {
345
+ continue;
346
+ }
347
+ var q = begin + 16 + label.length;
348
+
349
+ // the body is the run of body chars that ends at a matching END line
350
+ var bodyEnd = indexOfRegex(rNotBody, q);
351
+ var bodyEndOk = str.substr(bodyEnd, 9) === '-----END ' &&
352
+ labelAt(bodyEnd + 9) === label;
353
+ // headers chars end here (q never decreases between BEGIN lines)
354
+ if(q > headerEnd) {
355
+ headerEnd = indexOfRegex(rNotHeader, q);
356
+ }
357
+ // first later matching END line with a blank line before it
358
+ var later = null;
359
+ var list = ends['$' + label];
360
+ if(list) {
361
+ var lo = 0;
362
+ var hi = list.length;
363
+ while(lo < hi) {
364
+ var mid = (lo + hi) >> 1;
365
+ if(list[mid].end > bodyEnd) {
366
+ hi = mid;
367
+ } else {
368
+ lo = mid + 1;
369
+ }
370
+ }
371
+ later = list[lo] || null;
372
+ }
373
+
374
+ // \r?\n? tries to consume as much as possible first
375
+ var starts = [];
376
+ if(str.charAt(q) === '\r') {
377
+ if(str.charAt(q + 1) === '\n') {
378
+ starts.push(q + 2);
379
+ }
380
+ starts.push(q + 1);
381
+ } else if(str.charAt(q) === '\n') {
382
+ starts.push(q + 1);
383
+ }
384
+ starts.push(q);
385
+
386
+ for(var i = 0; i < starts.length; ++i) {
387
+ var t = starts[i];
388
+ // optional headers: up to the first blank line that a non-empty
389
+ // body and the END line follow
390
+ var blank = bodyEndOk ? firstBlankLine(t + 1, bodyEnd) : -1;
391
+ var end = bodyEnd;
392
+ if(blank === -1 && later) {
393
+ blank = later.blank;
394
+ end = later.end;
395
+ }
396
+ if(blank !== -1 && blank <= headerEnd) {
397
+ var v = blankLineEnd(blank);
398
+ pos = end + 14 + label.length;
399
+ return [str.substring(begin, pos), label,
400
+ str.substring(t, v), str.substring(v, end)];
401
+ }
402
+ // no headers
403
+ if(bodyEndOk && t < bodyEnd) {
404
+ pos = bodyEnd + 14 + label.length;
405
+ return [str.substring(begin, pos), label,
406
+ undefined, str.substring(t, bodyEnd)];
407
+ }
408
+ }
409
+ }
410
+ return null;
411
+ }
412
+ };
413
+ }