@hilbras/omnihilbras 2.9.5 → 2.9.7

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 (1076) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +16 -15
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +23 -23
  5. package/app/.next-cli-build/react-loadable-manifest.json +1 -1
  6. package/app/.next-cli-build/routes-manifest.json +8 -0
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  77. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  85. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  88. package/app/.next-cli-build/server/app/_not-found.rsc +7 -7
  89. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +7 -7
  90. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +7 -7
  91. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  92. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +2 -2
  115. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  117. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  121. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  131. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  133. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  139. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
  141. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js +2 -2
  149. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  151. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  153. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  157. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  159. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
  163. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +2 -2
  165. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  193. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  195. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  197. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  201. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/models/chat/route.js +1 -1
  211. package/app/.next-cli-build/server/app/api/models/chat/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/models/test-batch/route.js +2 -2
  221. package/app/.next-cli-build/server/app/api/models/test-batch/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  251. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js +1 -1
  253. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +2 -2
  257. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/providers/[id]/refresh/route.js +1 -0
  273. package/app/.next-cli-build/server/app/api/providers/[id]/refresh/route.js.nft.json +1 -0
  274. package/app/.next-cli-build/server/app/api/providers/[id]/refresh/route_client-reference-manifest.js +1 -0
  275. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/providers/web-session/[id]/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/providers/web-session/[id]/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  300. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  302. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js +2 -2
  304. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  310. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  312. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  314. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  316. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  318. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  320. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  322. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  324. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/settings/route.js +2 -2
  332. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  334. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  338. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  340. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  352. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  360. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  362. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  364. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  366. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  367. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  368. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  369. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  370. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  371. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  372. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  373. package/app/.next-cli-build/server/app/api/usage/rate-limit/route.js +1 -1
  374. package/app/.next-cli-build/server/app/api/usage/rate-limit/route.js.nft.json +1 -1
  375. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  376. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  377. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  378. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  379. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  380. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  381. package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  382. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  383. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  384. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  385. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  386. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  387. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  388. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  390. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  392. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  394. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  395. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +3 -3
  396. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  397. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  398. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  400. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  401. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  402. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  411. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  412. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  413. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  414. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  415. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  416. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  418. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  419. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  420. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  421. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  422. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  423. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  424. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  425. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  426. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  427. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  428. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  429. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  430. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  431. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  432. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  433. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  434. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  435. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  436. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  437. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  438. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  439. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  440. package/app/.next-cli-build/server/app/callback.html +1 -1
  441. package/app/.next-cli-build/server/app/callback.rsc +7 -7
  442. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +7 -7
  443. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  444. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +7 -7
  445. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +12 -12
  447. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +12 -12
  448. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +12 -12
  449. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  450. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  451. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +12 -12
  452. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +12 -12
  453. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +12 -12
  454. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  455. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  456. package/app/.next-cli-build/server/app/dashboard/combos.rsc +12 -12
  457. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +12 -12
  458. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +12 -12
  459. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  460. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  461. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +12 -12
  462. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +12 -12
  463. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +12 -12
  464. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  465. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  466. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +12 -12
  467. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +12 -12
  468. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +12 -12
  469. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  470. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +12 -12
  472. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +12 -12
  473. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +12 -12
  474. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  475. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  476. package/app/.next-cli-build/server/app/dashboard/profile.rsc +12 -12
  477. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +12 -12
  478. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +12 -12
  479. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  480. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  481. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +12 -12
  482. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +12 -12
  483. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +12 -12
  484. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  485. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  486. package/app/.next-cli-build/server/app/dashboard/providers.rsc +12 -12
  487. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +12 -12
  488. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +12 -12
  489. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  490. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  491. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +12 -12
  492. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +12 -12
  493. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +12 -12
  494. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  495. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  496. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +12 -12
  497. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +12 -12
  498. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +12 -12
  499. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  500. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  501. package/app/.next-cli-build/server/app/dashboard/quota.rsc +13 -13
  502. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +13 -13
  503. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +13 -13
  504. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  505. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  506. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  507. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  508. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  509. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
  510. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  511. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  512. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
  513. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  514. package/app/.next-cli-build/server/app/dashboard/skills.rsc +12 -12
  515. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +12 -12
  516. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +12 -12
  517. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  518. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  519. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +12 -12
  520. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +12 -12
  521. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +12 -12
  522. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  523. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  524. package/app/.next-cli-build/server/app/dashboard/translator.rsc +12 -12
  525. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +12 -12
  526. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +12 -12
  527. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  528. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  529. package/app/.next-cli-build/server/app/dashboard/usage.rsc +12 -12
  530. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +12 -12
  531. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +12 -12
  532. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  533. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  534. package/app/.next-cli-build/server/app/dashboard.rsc +12 -12
  535. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +12 -12
  536. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +12 -12
  537. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  538. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  539. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  540. package/app/.next-cli-build/server/app/index.html +1 -1
  541. package/app/.next-cli-build/server/app/index.rsc +7 -7
  542. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +7 -7
  543. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +7 -7
  544. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  545. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  546. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  547. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  548. package/app/.next-cli-build/server/app/landing.html +1 -1
  549. package/app/.next-cli-build/server/app/landing.rsc +7 -7
  550. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +7 -7
  551. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  552. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +7 -7
  553. package/app/.next-cli-build/server/app/login/page.js +1 -1
  554. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  555. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  556. package/app/.next-cli-build/server/app/login.html +1 -1
  557. package/app/.next-cli-build/server/app/login.rsc +9 -9
  558. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +9 -9
  559. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  560. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +9 -9
  561. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  562. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  563. package/app/.next-cli-build/server/app/page.js +1 -1
  564. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  565. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  566. package/app/.next-cli-build/server/app-paths-manifest.json +16 -15
  567. package/app/.next-cli-build/server/chunks/1133.js +1 -1
  568. package/app/.next-cli-build/server/chunks/1220.js +3 -0
  569. package/app/.next-cli-build/server/chunks/1329.js +1 -1
  570. package/app/.next-cli-build/server/chunks/1772.js +1 -0
  571. package/app/.next-cli-build/server/chunks/24.js +1 -1
  572. package/app/.next-cli-build/server/chunks/2617.js +1 -1
  573. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  574. package/app/.next-cli-build/server/chunks/412.js +1 -1
  575. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  576. package/app/.next-cli-build/server/chunks/4125.js +1 -1
  577. package/app/.next-cli-build/server/chunks/4199.js +1 -1
  578. package/app/.next-cli-build/server/chunks/436.js +1 -1
  579. package/app/.next-cli-build/server/chunks/5615.js +1 -1
  580. package/app/.next-cli-build/server/chunks/5942.js +1 -0
  581. package/app/.next-cli-build/server/chunks/5961.js +2 -2
  582. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  583. package/app/.next-cli-build/server/chunks/615.js +1 -1
  584. package/app/.next-cli-build/server/chunks/6500.js +1 -0
  585. package/app/.next-cli-build/server/chunks/6503.js +1 -1
  586. package/app/.next-cli-build/server/chunks/6723.js +1 -1
  587. package/app/.next-cli-build/server/chunks/7066.js +1 -1
  588. package/app/.next-cli-build/server/chunks/7073.js +1 -1
  589. package/app/.next-cli-build/server/chunks/7121.js +1 -1
  590. package/app/.next-cli-build/server/chunks/7211.js +1 -1
  591. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  592. package/app/.next-cli-build/server/chunks/7431.js +2 -2
  593. package/app/.next-cli-build/server/chunks/7716.js +1 -1
  594. package/app/.next-cli-build/server/chunks/{5330.js → 7803.js} +5 -3
  595. package/app/.next-cli-build/server/chunks/7911.js +1 -1
  596. package/app/.next-cli-build/server/chunks/8064.js +14 -0
  597. package/app/.next-cli-build/server/chunks/820.js +1 -1
  598. package/app/.next-cli-build/server/chunks/8251.js +1 -1
  599. package/app/.next-cli-build/server/chunks/8287.js +1 -1
  600. package/app/.next-cli-build/server/chunks/8326.js +1 -0
  601. package/app/.next-cli-build/server/chunks/8401.js +1 -1
  602. package/app/.next-cli-build/server/chunks/8402.js +1 -1
  603. package/app/.next-cli-build/server/chunks/8525.js +1 -1
  604. package/app/.next-cli-build/server/chunks/8895.js +4 -4
  605. package/app/.next-cli-build/server/chunks/8910.js +1 -1
  606. package/app/.next-cli-build/server/chunks/{8499.js → 8932.js} +3 -3
  607. package/app/.next-cli-build/server/chunks/9300.js +1 -0
  608. package/app/.next-cli-build/server/chunks/9696.js +7 -0
  609. package/app/.next-cli-build/server/chunks/9771.js +1 -0
  610. package/app/.next-cli-build/server/instrumentation.js +1 -1
  611. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  612. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  613. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  614. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  615. package/app/.next-cli-build/server/pages/404.html +1 -1
  616. package/app/.next-cli-build/server/pages/500.html +1 -1
  617. package/app/.next-cli-build/static/chunks/2723-8f1ccbe51396e593.js +1 -0
  618. package/app/.next-cli-build/static/chunks/{5497-ff9981be1db3d2b6.js → 5497-df32bda6e3c66c2a.js} +2 -2
  619. package/app/.next-cli-build/static/chunks/6535-297e67715d4abb85.js +1 -0
  620. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-be58ffbf710a5dec.js → page-87b0b2766b21ede6.js} +1 -1
  621. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-2ee3f149ace63801.js → page-a0ef255d83660350.js} +1 -1
  622. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-033b10da013937e4.js → page-d5de86da01fac9bd.js} +1 -1
  623. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/{page-90317ba3e66b73c8.js → page-14edc70fcece9047.js} +1 -1
  624. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-4773b0af283b77f7.js → page-70c28fbe58e17b0d.js} +1 -1
  625. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-c229336f166fc37b.js +1 -0
  626. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/{error-abf20f892d461b85.js → error-94a0159f99210870.js} +1 -1
  627. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-4431f9b1cc053b18.js → page-5fdea9fd546e0063.js} +1 -1
  628. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-509dda0d0869b182.js → page-d7c1a50fa922ca83.js} +1 -1
  629. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-40f87ec4dfb87552.js → page-046a406b20197530.js} +1 -1
  630. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-a4ab01f328185628.js → page-b50499e48b6a099c.js} +1 -1
  631. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-268b6a5d47d71042.js → page-3bba8935dd92bee4.js} +1 -1
  632. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-ca2960067152743b.js +1 -0
  633. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-7b0e605f98432f1c.js → page-e6c7197f9c81efc3.js} +1 -1
  634. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-9504fe975ef84185.js → page-a1bacf350c4ae077.js} +5 -5
  635. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-4284719a1858706e.js → page-304a66b044fd4ff5.js} +1 -1
  636. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-9c31829dd643cc3e.js → page-e69cdb11bcd71898.js} +1 -1
  637. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-f4cd8f5657152167.js → page-9f64fe08cd8dac8b.js} +1 -1
  638. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-fbd06481ffdbb573.js → page-62e09cbc67d2d4f5.js} +1 -1
  639. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/{page-76c864ae857eec68.js → page-1cc460b62cf32862.js} +1 -1
  640. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-6d6e4ef9ef854866.js → page-c53f4e20cf7b3120.js} +1 -1
  641. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-277d1751a4a9a74b.js → page-541bcf5af0d03fb1.js} +1 -1
  642. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-7f602deed988a26d.js → page-5fab622f98217611.js} +1 -1
  643. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/{page-219ebab18ab5b82b.js → page-ae08604ee21ac8cf.js} +1 -1
  644. package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-c10319f075f1df9e.js → layout-af385a4b868c2a9d.js} +1 -1
  645. package/app/.next-cli-build/static/chunks/app/_global-error/{page-706c2ea1969b3c65.js → page-d2a5c6f6bbaeade2.js} +1 -1
  646. package/app/.next-cli-build/static/chunks/app/api/auth/login/{route-706c2ea1969b3c65.js → route-d2a5c6f6bbaeade2.js} +1 -1
  647. package/app/.next-cli-build/static/chunks/app/api/auth/logout/{route-706c2ea1969b3c65.js → route-d2a5c6f6bbaeade2.js} +1 -1
  648. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/{route-706c2ea1969b3c65.js → route-d2a5c6f6bbaeade2.js} +1 -1
  649. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-d2a5c6f6bbaeade2.js +1 -0
  650. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-d2a5c6f6bbaeade2.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-d2a5c6f6bbaeade2.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-d2a5c6f6bbaeade2.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-d2a5c6f6bbaeade2.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-d2a5c6f6bbaeade2.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-d2a5c6f6bbaeade2.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-d2a5c6f6bbaeade2.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-d2a5c6f6bbaeade2.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d2a5c6f6bbaeade2.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-d2a5c6f6bbaeade2.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-d2a5c6f6bbaeade2.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-d2a5c6f6bbaeade2.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codewhale-settings/route-d2a5c6f6bbaeade2.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-d2a5c6f6bbaeade2.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-d2a5c6f6bbaeade2.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d2a5c6f6bbaeade2.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-d2a5c6f6bbaeade2.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-d2a5c6f6bbaeade2.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/cli-tools/crush-settings/route-d2a5c6f6bbaeade2.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-d2a5c6f6bbaeade2.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-d2a5c6f6bbaeade2.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-d2a5c6f6bbaeade2.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/cli-tools/forge-settings/route-d2a5c6f6bbaeade2.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-d2a5c6f6bbaeade2.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-profiles/route-d2a5c6f6bbaeade2.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-d2a5c6f6bbaeade2.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-d2a5c6f6bbaeade2.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-d2a5c6f6bbaeade2.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-d2a5c6f6bbaeade2.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-d2a5c6f6bbaeade2.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-d2a5c6f6bbaeade2.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-d2a5c6f6bbaeade2.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/cli-tools/smelt-settings/route-d2a5c6f6bbaeade2.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-d2a5c6f6bbaeade2.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/combos/presets/route-d2a5c6f6bbaeade2.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/combos/route-d2a5c6f6bbaeade2.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-d2a5c6f6bbaeade2.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-d2a5c6f6bbaeade2.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-d2a5c6f6bbaeade2.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-d2a5c6f6bbaeade2.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-d2a5c6f6bbaeade2.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-d2a5c6f6bbaeade2.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/health/route-d2a5c6f6bbaeade2.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/init/route-d2a5c6f6bbaeade2.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-d2a5c6f6bbaeade2.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/keys/route-d2a5c6f6bbaeade2.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/locale/route-d2a5c6f6bbaeade2.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-d2a5c6f6bbaeade2.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-d2a5c6f6bbaeade2.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d2a5c6f6bbaeade2.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d2a5c6f6bbaeade2.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-d2a5c6f6bbaeade2.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-d2a5c6f6bbaeade2.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-d2a5c6f6bbaeade2.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-d2a5c6f6bbaeade2.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/models/chat/route-d2a5c6f6bbaeade2.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-d2a5c6f6bbaeade2.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-d2a5c6f6bbaeade2.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/models/route-d2a5c6f6bbaeade2.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/models/test/route-d2a5c6f6bbaeade2.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/models/test-batch/route-d2a5c6f6bbaeade2.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-d2a5c6f6bbaeade2.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-d2a5c6f6bbaeade2.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-d2a5c6f6bbaeade2.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-d2a5c6f6bbaeade2.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-d2a5c6f6bbaeade2.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-d2a5c6f6bbaeade2.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-d2a5c6f6bbaeade2.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-d2a5c6f6bbaeade2.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-d2a5c6f6bbaeade2.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-d2a5c6f6bbaeade2.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-d2a5c6f6bbaeade2.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-d2a5c6f6bbaeade2.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-d2a5c6f6bbaeade2.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-d2a5c6f6bbaeade2.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-d2a5c6f6bbaeade2.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/start/route-d2a5c6f6bbaeade2.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/status/route-d2a5c6f6bbaeade2.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-d2a5c6f6bbaeade2.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-d2a5c6f6bbaeade2.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/pricing/route-d2a5c6f6bbaeade2.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-d2a5c6f6bbaeade2.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-d2a5c6f6bbaeade2.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-d2a5c6f6bbaeade2.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-d2a5c6f6bbaeade2.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/overrides/route-d2a5c6f6bbaeade2.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/refresh/route-d2a5c6f6bbaeade2.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-d2a5c6f6bbaeade2.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-d2a5c6f6bbaeade2.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-d2a5c6f6bbaeade2.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-d2a5c6f6bbaeade2.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-d2a5c6f6bbaeade2.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/providers/route-d2a5c6f6bbaeade2.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-d2a5c6f6bbaeade2.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-d2a5c6f6bbaeade2.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-d2a5c6f6bbaeade2.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/providers/web-session/[id]/route-d2a5c6f6bbaeade2.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-d2a5c6f6bbaeade2.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-d2a5c6f6bbaeade2.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-d2a5c6f6bbaeade2.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-d2a5c6f6bbaeade2.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/netlify-deploy/route-d2a5c6f6bbaeade2.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-d2a5c6f6bbaeade2.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-d2a5c6f6bbaeade2.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-d2a5c6f6bbaeade2.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-d2a5c6f6bbaeade2.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-d2a5c6f6bbaeade2.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-d2a5c6f6bbaeade2.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-d2a5c6f6bbaeade2.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-d2a5c6f6bbaeade2.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-d2a5c6f6bbaeade2.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-d2a5c6f6bbaeade2.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-d2a5c6f6bbaeade2.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-d2a5c6f6bbaeade2.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-d2a5c6f6bbaeade2.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/settings/route-d2a5c6f6bbaeade2.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-d2a5c6f6bbaeade2.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-d2a5c6f6bbaeade2.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-d2a5c6f6bbaeade2.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-d2a5c6f6bbaeade2.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-d2a5c6f6bbaeade2.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-d2a5c6f6bbaeade2.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-d2a5c6f6bbaeade2.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-d2a5c6f6bbaeade2.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-d2a5c6f6bbaeade2.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-d2a5c6f6bbaeade2.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-d2a5c6f6bbaeade2.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-d2a5c6f6bbaeade2.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-d2a5c6f6bbaeade2.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-d2a5c6f6bbaeade2.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-d2a5c6f6bbaeade2.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-d2a5c6f6bbaeade2.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-d2a5c6f6bbaeade2.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-d2a5c6f6bbaeade2.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-d2a5c6f6bbaeade2.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-d2a5c6f6bbaeade2.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/usage/rate-limit/route-d2a5c6f6bbaeade2.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-d2a5c6f6bbaeade2.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-d2a5c6f6bbaeade2.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-d2a5c6f6bbaeade2.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-d2a5c6f6bbaeade2.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-d2a5c6f6bbaeade2.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-d2a5c6f6bbaeade2.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-d2a5c6f6bbaeade2.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-d2a5c6f6bbaeade2.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-d2a5c6f6bbaeade2.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-d2a5c6f6bbaeade2.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-d2a5c6f6bbaeade2.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-d2a5c6f6bbaeade2.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-d2a5c6f6bbaeade2.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-d2a5c6f6bbaeade2.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-d2a5c6f6bbaeade2.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-d2a5c6f6bbaeade2.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-d2a5c6f6bbaeade2.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-d2a5c6f6bbaeade2.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/v1/route-d2a5c6f6bbaeade2.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-d2a5c6f6bbaeade2.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-d2a5c6f6bbaeade2.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-d2a5c6f6bbaeade2.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-d2a5c6f6bbaeade2.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-d2a5c6f6bbaeade2.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-d2a5c6f6bbaeade2.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-d2a5c6f6bbaeade2.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-d2a5c6f6bbaeade2.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-d2a5c6f6bbaeade2.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/version/route-d2a5c6f6bbaeade2.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-d2a5c6f6bbaeade2.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/version/update/route-d2a5c6f6bbaeade2.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/login/{page-5b2e90e19afaec82.js → page-1e43af53f6214671.js} +1 -1
  819. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-d2a5c6f6bbaeade2.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/page-d2a5c6f6bbaeade2.js +1 -0
  821. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-d2a5c6f6bbaeade2.js +1 -0
  822. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-d2a5c6f6bbaeade2.js +1 -0
  823. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-d2a5c6f6bbaeade2.js +1 -0
  824. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-d2a5c6f6bbaeade2.js +1 -0
  825. package/app/.next-cli-build/static/chunks/{webpack-075fa8a8c2879e61.js → webpack-cec594678b7a1aaa.js} +1 -1
  826. package/app/.next-cli-build/static/css/73729572c2967c28.css +1 -0
  827. package/app/node_modules/node-forge/LICENSE +331 -0
  828. package/app/node_modules/node-forge/README.md +2071 -0
  829. package/app/node_modules/node-forge/dist/forge.all.min.js +2 -0
  830. package/app/node_modules/node-forge/dist/forge.all.min.js.map +1 -0
  831. package/app/node_modules/node-forge/dist/forge.min.js +2 -0
  832. package/app/node_modules/node-forge/dist/forge.min.js.map +1 -0
  833. package/app/node_modules/node-forge/dist/prime.worker.min.js +2 -0
  834. package/app/node_modules/node-forge/dist/prime.worker.min.js.map +1 -0
  835. package/app/node_modules/node-forge/flash/swf/SocketPool.swf +0 -0
  836. package/app/node_modules/node-forge/lib/aes.js +1091 -0
  837. package/app/node_modules/node-forge/lib/aesCipherSuites.js +282 -0
  838. package/app/node_modules/node-forge/lib/asn1-validator.js +91 -0
  839. package/app/node_modules/node-forge/lib/asn1.js +1520 -0
  840. package/app/node_modules/node-forge/lib/baseN.js +186 -0
  841. package/app/node_modules/node-forge/lib/cipher.js +230 -0
  842. package/app/node_modules/node-forge/lib/cipherModes.js +999 -0
  843. package/app/node_modules/node-forge/lib/des.js +496 -0
  844. package/app/node_modules/node-forge/lib/ed25519.js +1091 -0
  845. package/app/node_modules/node-forge/lib/forge.js +13 -0
  846. package/app/node_modules/node-forge/lib/form.js +149 -0
  847. package/app/node_modules/node-forge/lib/hmac.js +146 -0
  848. package/app/node_modules/node-forge/lib/http.js +1346 -0
  849. package/app/node_modules/node-forge/lib/index.all.js +16 -0
  850. package/app/node_modules/node-forge/lib/index.js +33 -0
  851. package/app/node_modules/node-forge/lib/jsbn.js +1294 -0
  852. package/app/node_modules/node-forge/lib/kem.js +168 -0
  853. package/app/node_modules/node-forge/lib/log.js +319 -0
  854. package/app/node_modules/node-forge/lib/md.all.js +13 -0
  855. package/app/node_modules/node-forge/lib/md.js +11 -0
  856. package/app/node_modules/node-forge/lib/md5.js +289 -0
  857. package/app/node_modules/node-forge/lib/mgf.js +12 -0
  858. package/app/node_modules/node-forge/lib/mgf1.js +57 -0
  859. package/app/node_modules/node-forge/lib/oids.js +180 -0
  860. package/app/node_modules/node-forge/lib/pbe.js +1023 -0
  861. package/app/node_modules/node-forge/lib/pbkdf2.js +211 -0
  862. package/app/node_modules/node-forge/lib/pem.js +237 -0
  863. package/app/node_modules/node-forge/lib/pkcs1.js +276 -0
  864. package/app/node_modules/node-forge/lib/pkcs12.js +1078 -0
  865. package/app/node_modules/node-forge/lib/pkcs7.js +1260 -0
  866. package/app/node_modules/node-forge/lib/pkcs7asn1.js +410 -0
  867. package/app/node_modules/node-forge/lib/pki.js +102 -0
  868. package/app/node_modules/node-forge/lib/prime.js +297 -0
  869. package/app/node_modules/node-forge/lib/prime.worker.js +168 -0
  870. package/app/node_modules/node-forge/lib/prng.js +419 -0
  871. package/app/node_modules/node-forge/lib/pss.js +241 -0
  872. package/app/node_modules/node-forge/lib/random.js +191 -0
  873. package/app/node_modules/node-forge/lib/rc2.js +410 -0
  874. package/app/node_modules/node-forge/lib/rsa.js +1968 -0
  875. package/app/node_modules/node-forge/lib/sha1.js +319 -0
  876. package/app/node_modules/node-forge/lib/sha256.js +327 -0
  877. package/app/node_modules/node-forge/lib/sha512.js +561 -0
  878. package/app/node_modules/node-forge/lib/socket.js +287 -0
  879. package/app/node_modules/node-forge/lib/ssh.js +236 -0
  880. package/app/node_modules/node-forge/lib/tls.js +4282 -0
  881. package/app/node_modules/node-forge/lib/tlssocket.js +249 -0
  882. package/app/node_modules/node-forge/lib/util.js +2652 -0
  883. package/app/node_modules/node-forge/lib/x509.js +3251 -0
  884. package/app/node_modules/node-forge/lib/xhr.js +738 -0
  885. package/app/node_modules/node-forge/package.json +123 -0
  886. package/app/package.json +6 -3
  887. package/app/src/mitm/server.js +27 -27
  888. package/hooks/postinstall.js +22 -0
  889. package/package.json +3 -2
  890. package/app/.next-cli-build/server/chunks/1375.js +0 -1
  891. package/app/.next-cli-build/server/chunks/2066.js +0 -1
  892. package/app/.next-cli-build/server/chunks/2712.js +0 -3
  893. package/app/.next-cli-build/server/chunks/2881.js +0 -1
  894. package/app/.next-cli-build/server/chunks/6908.js +0 -10
  895. package/app/.next-cli-build/server/chunks/7914.js +0 -1
  896. package/app/.next-cli-build/static/chunks/246-0bbd2c1424911b5c.js +0 -1
  897. package/app/.next-cli-build/static/chunks/2723-d221ebfdd8e24af9.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-22bd9a3196952cf5.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-631c216c13c7bd3d.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-706c2ea1969b3c65.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-706c2ea1969b3c65.js +0 -1
  902. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-706c2ea1969b3c65.js +0 -1
  903. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-706c2ea1969b3c65.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-706c2ea1969b3c65.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-706c2ea1969b3c65.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-706c2ea1969b3c65.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-706c2ea1969b3c65.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-706c2ea1969b3c65.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-706c2ea1969b3c65.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-706c2ea1969b3c65.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-706c2ea1969b3c65.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-706c2ea1969b3c65.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codewhale-settings/route-706c2ea1969b3c65.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-706c2ea1969b3c65.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-706c2ea1969b3c65.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-706c2ea1969b3c65.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-706c2ea1969b3c65.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-706c2ea1969b3c65.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/cli-tools/crush-settings/route-706c2ea1969b3c65.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-706c2ea1969b3c65.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-706c2ea1969b3c65.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-706c2ea1969b3c65.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/cli-tools/forge-settings/route-706c2ea1969b3c65.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-706c2ea1969b3c65.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-profiles/route-706c2ea1969b3c65.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-706c2ea1969b3c65.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-706c2ea1969b3c65.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-706c2ea1969b3c65.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-706c2ea1969b3c65.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-706c2ea1969b3c65.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-706c2ea1969b3c65.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-706c2ea1969b3c65.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/cli-tools/smelt-settings/route-706c2ea1969b3c65.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-706c2ea1969b3c65.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/combos/presets/route-706c2ea1969b3c65.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/combos/route-706c2ea1969b3c65.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-706c2ea1969b3c65.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-706c2ea1969b3c65.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-706c2ea1969b3c65.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-706c2ea1969b3c65.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-706c2ea1969b3c65.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-706c2ea1969b3c65.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/health/route-706c2ea1969b3c65.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/init/route-706c2ea1969b3c65.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-706c2ea1969b3c65.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/keys/route-706c2ea1969b3c65.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/locale/route-706c2ea1969b3c65.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-706c2ea1969b3c65.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-706c2ea1969b3c65.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-706c2ea1969b3c65.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-706c2ea1969b3c65.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-706c2ea1969b3c65.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-706c2ea1969b3c65.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-706c2ea1969b3c65.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-706c2ea1969b3c65.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/models/chat/route-706c2ea1969b3c65.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-706c2ea1969b3c65.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-706c2ea1969b3c65.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/models/route-706c2ea1969b3c65.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/models/test/route-706c2ea1969b3c65.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/models/test-batch/route-706c2ea1969b3c65.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-706c2ea1969b3c65.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-706c2ea1969b3c65.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-706c2ea1969b3c65.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-706c2ea1969b3c65.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-706c2ea1969b3c65.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-706c2ea1969b3c65.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-706c2ea1969b3c65.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-706c2ea1969b3c65.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-706c2ea1969b3c65.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-706c2ea1969b3c65.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-706c2ea1969b3c65.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-706c2ea1969b3c65.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-706c2ea1969b3c65.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-706c2ea1969b3c65.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-706c2ea1969b3c65.js +0 -1
  977. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/start/route-706c2ea1969b3c65.js +0 -1
  978. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/status/route-706c2ea1969b3c65.js +0 -1
  979. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-706c2ea1969b3c65.js +0 -1
  980. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-706c2ea1969b3c65.js +0 -1
  981. package/app/.next-cli-build/static/chunks/app/api/pricing/route-706c2ea1969b3c65.js +0 -1
  982. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-706c2ea1969b3c65.js +0 -1
  983. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-706c2ea1969b3c65.js +0 -1
  984. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-706c2ea1969b3c65.js +0 -1
  985. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-706c2ea1969b3c65.js +0 -1
  986. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/overrides/route-706c2ea1969b3c65.js +0 -1
  987. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-706c2ea1969b3c65.js +0 -1
  988. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-706c2ea1969b3c65.js +0 -1
  989. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-706c2ea1969b3c65.js +0 -1
  990. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-706c2ea1969b3c65.js +0 -1
  991. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-706c2ea1969b3c65.js +0 -1
  992. package/app/.next-cli-build/static/chunks/app/api/providers/route-706c2ea1969b3c65.js +0 -1
  993. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-706c2ea1969b3c65.js +0 -1
  994. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-706c2ea1969b3c65.js +0 -1
  995. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-706c2ea1969b3c65.js +0 -1
  996. package/app/.next-cli-build/static/chunks/app/api/providers/web-session/[id]/route-706c2ea1969b3c65.js +0 -1
  997. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-706c2ea1969b3c65.js +0 -1
  998. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-706c2ea1969b3c65.js +0 -1
  999. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-706c2ea1969b3c65.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-706c2ea1969b3c65.js +0 -1
  1001. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/netlify-deploy/route-706c2ea1969b3c65.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-706c2ea1969b3c65.js +0 -1
  1003. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-706c2ea1969b3c65.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-706c2ea1969b3c65.js +0 -1
  1005. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-706c2ea1969b3c65.js +0 -1
  1006. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-706c2ea1969b3c65.js +0 -1
  1007. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-706c2ea1969b3c65.js +0 -1
  1008. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-706c2ea1969b3c65.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-706c2ea1969b3c65.js +0 -1
  1010. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-706c2ea1969b3c65.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-706c2ea1969b3c65.js +0 -1
  1012. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-706c2ea1969b3c65.js +0 -1
  1013. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-706c2ea1969b3c65.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-706c2ea1969b3c65.js +0 -1
  1015. package/app/.next-cli-build/static/chunks/app/api/settings/route-706c2ea1969b3c65.js +0 -1
  1016. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-706c2ea1969b3c65.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-706c2ea1969b3c65.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-706c2ea1969b3c65.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-706c2ea1969b3c65.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-706c2ea1969b3c65.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-706c2ea1969b3c65.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-706c2ea1969b3c65.js +0 -1
  1023. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-706c2ea1969b3c65.js +0 -1
  1024. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-706c2ea1969b3c65.js +0 -1
  1025. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-706c2ea1969b3c65.js +0 -1
  1026. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-706c2ea1969b3c65.js +0 -1
  1027. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-706c2ea1969b3c65.js +0 -1
  1028. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-706c2ea1969b3c65.js +0 -1
  1029. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-706c2ea1969b3c65.js +0 -1
  1030. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-706c2ea1969b3c65.js +0 -1
  1031. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-706c2ea1969b3c65.js +0 -1
  1032. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-706c2ea1969b3c65.js +0 -1
  1033. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-706c2ea1969b3c65.js +0 -1
  1034. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-706c2ea1969b3c65.js +0 -1
  1035. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-706c2ea1969b3c65.js +0 -1
  1036. package/app/.next-cli-build/static/chunks/app/api/usage/rate-limit/route-706c2ea1969b3c65.js +0 -1
  1037. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-706c2ea1969b3c65.js +0 -1
  1038. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-706c2ea1969b3c65.js +0 -1
  1039. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-706c2ea1969b3c65.js +0 -1
  1040. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-706c2ea1969b3c65.js +0 -1
  1041. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-706c2ea1969b3c65.js +0 -1
  1042. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-706c2ea1969b3c65.js +0 -1
  1043. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-706c2ea1969b3c65.js +0 -1
  1044. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-706c2ea1969b3c65.js +0 -1
  1045. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-706c2ea1969b3c65.js +0 -1
  1046. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-706c2ea1969b3c65.js +0 -1
  1047. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-706c2ea1969b3c65.js +0 -1
  1048. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-706c2ea1969b3c65.js +0 -1
  1049. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-706c2ea1969b3c65.js +0 -1
  1050. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-706c2ea1969b3c65.js +0 -1
  1051. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-706c2ea1969b3c65.js +0 -1
  1052. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-706c2ea1969b3c65.js +0 -1
  1053. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-706c2ea1969b3c65.js +0 -1
  1054. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-706c2ea1969b3c65.js +0 -1
  1055. package/app/.next-cli-build/static/chunks/app/api/v1/route-706c2ea1969b3c65.js +0 -1
  1056. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-706c2ea1969b3c65.js +0 -1
  1057. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-706c2ea1969b3c65.js +0 -1
  1058. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-706c2ea1969b3c65.js +0 -1
  1059. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-706c2ea1969b3c65.js +0 -1
  1060. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-706c2ea1969b3c65.js +0 -1
  1061. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-706c2ea1969b3c65.js +0 -1
  1062. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-706c2ea1969b3c65.js +0 -1
  1063. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-706c2ea1969b3c65.js +0 -1
  1064. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-706c2ea1969b3c65.js +0 -1
  1065. package/app/.next-cli-build/static/chunks/app/api/version/route-706c2ea1969b3c65.js +0 -1
  1066. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-706c2ea1969b3c65.js +0 -1
  1067. package/app/.next-cli-build/static/chunks/app/api/version/update/route-706c2ea1969b3c65.js +0 -1
  1068. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-706c2ea1969b3c65.js +0 -1
  1069. package/app/.next-cli-build/static/chunks/app/page-706c2ea1969b3c65.js +0 -1
  1070. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-706c2ea1969b3c65.js +0 -1
  1071. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-706c2ea1969b3c65.js +0 -1
  1072. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-706c2ea1969b3c65.js +0 -1
  1073. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-706c2ea1969b3c65.js +0 -1
  1074. package/app/.next-cli-build/static/css/e8a9dbb2db708090.css +0 -1
  1075. /package/app/.next-cli-build/static/{6r83antfTY0m1gUj5v4UM → 0D7NGZMreo6dajRbh_Yfz}/_buildManifest.js +0 -0
  1076. /package/app/.next-cli-build/static/{6r83antfTY0m1gUj5v4UM → 0D7NGZMreo6dajRbh_Yfz}/_ssgManifest.js +0 -0
@@ -0,0 +1,1260 @@
1
+ /**
2
+ * Javascript implementation of PKCS#7 v1.5.
3
+ *
4
+ * @author Stefan Siegl
5
+ * @author Dave Longley
6
+ *
7
+ * Copyright (c) 2012 Stefan Siegl <stesie@brokenpipe.de>
8
+ * Copyright (c) 2012-2015 Digital Bazaar, Inc.
9
+ *
10
+ * Currently this implementation only supports ContentType of EnvelopedData,
11
+ * EncryptedData, or SignedData at the root level. The top level elements may
12
+ * contain only a ContentInfo of ContentType Data, i.e. plain data. Further
13
+ * nesting is not (yet) supported.
14
+ *
15
+ * The Forge validators for PKCS #7's ASN.1 structures are available from
16
+ * a separate file pkcs7asn1.js, since those are referenced from other
17
+ * PKCS standards like PKCS #12.
18
+ */
19
+ var forge = require('./forge');
20
+ require('./aes');
21
+ require('./asn1');
22
+ require('./des');
23
+ require('./oids');
24
+ require('./pem');
25
+ require('./pkcs7asn1');
26
+ require('./random');
27
+ require('./util');
28
+ require('./x509');
29
+
30
+ // shortcut for ASN.1 API
31
+ var asn1 = forge.asn1;
32
+
33
+ // shortcut for PKCS#7 API
34
+ var p7 = module.exports = forge.pkcs7 = forge.pkcs7 || {};
35
+
36
+ /**
37
+ * Converts a PKCS#7 message from PEM format.
38
+ *
39
+ * @param pem the PEM-formatted PKCS#7 message.
40
+ *
41
+ * @return the PKCS#7 message.
42
+ */
43
+ p7.messageFromPem = function(pem) {
44
+ var msg = forge.pem.decode(pem)[0];
45
+
46
+ if(msg.type !== 'PKCS7') {
47
+ var error = new Error('Could not convert PKCS#7 message from PEM; PEM ' +
48
+ 'header type is not "PKCS#7".');
49
+ error.headerType = msg.type;
50
+ throw error;
51
+ }
52
+ if(msg.procType && msg.procType.type === 'ENCRYPTED') {
53
+ throw new Error('Could not convert PKCS#7 message from PEM; PEM is encrypted.');
54
+ }
55
+
56
+ // convert DER to ASN.1 object
57
+ var obj = asn1.fromDer(msg.body);
58
+
59
+ return p7.messageFromAsn1(obj);
60
+ };
61
+
62
+ /**
63
+ * Converts a PKCS#7 message to PEM format.
64
+ *
65
+ * @param msg The PKCS#7 message object
66
+ * @param maxline The maximum characters per line, defaults to 64.
67
+ *
68
+ * @return The PEM-formatted PKCS#7 message.
69
+ */
70
+ p7.messageToPem = function(msg, maxline) {
71
+ // convert to ASN.1, then DER, then PEM-encode
72
+ var pemObj = {
73
+ type: 'PKCS7',
74
+ body: asn1.toDer(msg.toAsn1()).getBytes()
75
+ };
76
+ return forge.pem.encode(pemObj, {maxline: maxline});
77
+ };
78
+
79
+ /**
80
+ * Converts a PKCS#7 message from an ASN.1 object.
81
+ *
82
+ * @param obj the ASN.1 representation of a ContentInfo.
83
+ *
84
+ * @return the PKCS#7 message.
85
+ */
86
+ p7.messageFromAsn1 = function(obj) {
87
+ // validate root level ContentInfo and capture data
88
+ var capture = {};
89
+ var errors = [];
90
+ if(!asn1.validate(obj, p7.asn1.contentInfoValidator, capture, errors)) {
91
+ var error = new Error('Cannot read PKCS#7 message. ' +
92
+ 'ASN.1 object is not an PKCS#7 ContentInfo.');
93
+ error.errors = errors;
94
+ throw error;
95
+ }
96
+
97
+ var contentType = asn1.derToOid(capture.contentType);
98
+ var msg;
99
+
100
+ switch(contentType) {
101
+ case forge.pki.oids.envelopedData:
102
+ msg = p7.createEnvelopedData();
103
+ break;
104
+
105
+ case forge.pki.oids.encryptedData:
106
+ msg = p7.createEncryptedData();
107
+ break;
108
+
109
+ case forge.pki.oids.signedData:
110
+ msg = p7.createSignedData();
111
+ break;
112
+
113
+ default:
114
+ throw new Error('Cannot read PKCS#7 message. ContentType with OID ' +
115
+ contentType + ' is not (yet) supported.');
116
+ }
117
+
118
+ msg.fromAsn1(capture.content.value[0]);
119
+ return msg;
120
+ };
121
+
122
+ p7.createSignedData = function() {
123
+ var msg = null;
124
+ msg = {
125
+ type: forge.pki.oids.signedData,
126
+ version: 1,
127
+ certificates: [],
128
+ crls: [],
129
+ // TODO: add json-formatted signer stuff here?
130
+ signers: [],
131
+ // populated during sign()
132
+ digestAlgorithmIdentifiers: [],
133
+ contentInfo: null,
134
+ signerInfos: [],
135
+
136
+ fromAsn1: function(obj) {
137
+ // validate SignedData content block and capture data.
138
+ _fromAsn1(msg, obj, p7.asn1.signedDataValidator);
139
+ msg.certificates = [];
140
+ msg.crls = [];
141
+ msg.digestAlgorithmIdentifiers = [];
142
+ msg.contentInfo = null;
143
+ msg.signerInfos = [];
144
+
145
+ if(msg.rawCapture.certificates) {
146
+ var certs = msg.rawCapture.certificates.value;
147
+ for(var i = 0; i < certs.length; ++i) {
148
+ msg.certificates.push(forge.pki.certificateFromAsn1(certs[i]));
149
+ }
150
+ }
151
+
152
+ // TODO: parse crls
153
+ },
154
+
155
+ toAsn1: function() {
156
+ // degenerate case with no content
157
+ if(!msg.contentInfo) {
158
+ msg.sign();
159
+ }
160
+
161
+ var certs = [];
162
+ for(var i = 0; i < msg.certificates.length; ++i) {
163
+ certs.push(forge.pki.certificateToAsn1(msg.certificates[i]));
164
+ }
165
+
166
+ var crls = [];
167
+ // TODO: implement CRLs
168
+
169
+ // [0] SignedData
170
+ var signedData = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [
171
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
172
+ // Version
173
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,
174
+ asn1.integerToDer(msg.version).getBytes()),
175
+ // DigestAlgorithmIdentifiers
176
+ asn1.create(
177
+ asn1.Class.UNIVERSAL, asn1.Type.SET, true,
178
+ msg.digestAlgorithmIdentifiers),
179
+ // ContentInfo
180
+ msg.contentInfo
181
+ ])
182
+ ]);
183
+ if(certs.length > 0) {
184
+ // [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL
185
+ signedData.value[0].value.push(
186
+ asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, certs));
187
+ }
188
+ if(crls.length > 0) {
189
+ // [1] IMPLICIT CertificateRevocationLists OPTIONAL
190
+ signedData.value[0].value.push(
191
+ asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, crls));
192
+ }
193
+ // SignerInfos
194
+ signedData.value[0].value.push(
195
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true,
196
+ msg.signerInfos));
197
+
198
+ // ContentInfo
199
+ return asn1.create(
200
+ asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
201
+ // ContentType
202
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
203
+ asn1.oidToDer(msg.type).getBytes()),
204
+ // [0] SignedData
205
+ signedData
206
+ ]);
207
+ },
208
+
209
+ /**
210
+ * Add (another) entity to list of signers.
211
+ *
212
+ * Note: If authenticatedAttributes are provided, then, per RFC 2315,
213
+ * they must include at least two attributes: content type and
214
+ * message digest. The message digest attribute value will be
215
+ * auto-calculated during signing and will be ignored if provided.
216
+ *
217
+ * Here's an example of providing these two attributes:
218
+ *
219
+ * forge.pkcs7.createSignedData();
220
+ * p7.addSigner({
221
+ * issuer: cert.issuer.attributes,
222
+ * serialNumber: cert.serialNumber,
223
+ * key: privateKey,
224
+ * digestAlgorithm: forge.pki.oids.sha1,
225
+ * authenticatedAttributes: [{
226
+ * type: forge.pki.oids.contentType,
227
+ * value: forge.pki.oids.data
228
+ * }, {
229
+ * type: forge.pki.oids.messageDigest
230
+ * }]
231
+ * });
232
+ *
233
+ * TODO: Support [subjectKeyIdentifier] as signer's ID.
234
+ *
235
+ * @param signer the signer information:
236
+ * key the signer's private key.
237
+ * [certificate] a certificate containing the public key
238
+ * associated with the signer's private key; use this option as
239
+ * an alternative to specifying signer.issuer and
240
+ * signer.serialNumber.
241
+ * [issuer] the issuer attributes (eg: cert.issuer.attributes).
242
+ * [serialNumber] the signer's certificate's serial number in
243
+ * hexadecimal (eg: cert.serialNumber).
244
+ * [digestAlgorithm] the message digest OID, as a string, to use
245
+ * (eg: forge.pki.oids.sha1).
246
+ * [authenticatedAttributes] an optional array of attributes
247
+ * to also sign along with the content.
248
+ */
249
+ addSigner: function(signer) {
250
+ var issuer = signer.issuer;
251
+ var serialNumber = signer.serialNumber;
252
+ if(signer.certificate) {
253
+ var cert = signer.certificate;
254
+ if(typeof cert === 'string') {
255
+ cert = forge.pki.certificateFromPem(cert);
256
+ }
257
+ issuer = cert.issuer.attributes;
258
+ serialNumber = cert.serialNumber;
259
+ }
260
+ var key = signer.key;
261
+ if(!key) {
262
+ throw new Error(
263
+ 'Could not add PKCS#7 signer; no private key specified.');
264
+ }
265
+ if(typeof key === 'string') {
266
+ key = forge.pki.privateKeyFromPem(key);
267
+ }
268
+
269
+ // ensure OID known for digest algorithm
270
+ var digestAlgorithm = signer.digestAlgorithm || forge.pki.oids.sha1;
271
+ switch(digestAlgorithm) {
272
+ case forge.pki.oids.sha1:
273
+ case forge.pki.oids.sha256:
274
+ case forge.pki.oids.sha384:
275
+ case forge.pki.oids.sha512:
276
+ case forge.pki.oids.md5:
277
+ break;
278
+ default:
279
+ throw new Error(
280
+ 'Could not add PKCS#7 signer; unknown message digest algorithm: ' +
281
+ digestAlgorithm);
282
+ }
283
+
284
+ // if authenticatedAttributes is present, then the attributes
285
+ // must contain at least PKCS #9 content-type and message-digest
286
+ var authenticatedAttributes = signer.authenticatedAttributes || [];
287
+ if(authenticatedAttributes.length > 0) {
288
+ var contentType = false;
289
+ var messageDigest = false;
290
+ for(var i = 0; i < authenticatedAttributes.length; ++i) {
291
+ var attr = authenticatedAttributes[i];
292
+ if(!contentType && attr.type === forge.pki.oids.contentType) {
293
+ contentType = true;
294
+ if(messageDigest) {
295
+ break;
296
+ }
297
+ continue;
298
+ }
299
+ if(!messageDigest && attr.type === forge.pki.oids.messageDigest) {
300
+ messageDigest = true;
301
+ if(contentType) {
302
+ break;
303
+ }
304
+ continue;
305
+ }
306
+ }
307
+
308
+ if(!contentType || !messageDigest) {
309
+ throw new Error('Invalid signer.authenticatedAttributes. If ' +
310
+ 'signer.authenticatedAttributes is specified, then it must ' +
311
+ 'contain at least two attributes, PKCS #9 content-type and ' +
312
+ 'PKCS #9 message-digest.');
313
+ }
314
+ }
315
+
316
+ msg.signers.push({
317
+ key: key,
318
+ version: 1,
319
+ issuer: issuer,
320
+ serialNumber: serialNumber,
321
+ digestAlgorithm: digestAlgorithm,
322
+ signatureAlgorithm: forge.pki.oids.rsaEncryption,
323
+ signature: null,
324
+ authenticatedAttributes: authenticatedAttributes,
325
+ unauthenticatedAttributes: []
326
+ });
327
+ },
328
+
329
+ /**
330
+ * Signs the content.
331
+ * @param options Options to apply when signing:
332
+ * [detached] boolean. If signing should be done in detached mode. Defaults to false.
333
+ */
334
+ sign: function(options) {
335
+ options = options || {};
336
+ // auto-generate content info
337
+ if(typeof msg.content !== 'object' || msg.contentInfo === null) {
338
+ // use Data ContentInfo
339
+ msg.contentInfo = asn1.create(
340
+ asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
341
+ // ContentType
342
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
343
+ asn1.oidToDer(forge.pki.oids.data).getBytes())
344
+ ]);
345
+
346
+ // add actual content, if present
347
+ if('content' in msg) {
348
+ var content;
349
+ if(msg.content instanceof forge.util.ByteBuffer) {
350
+ content = msg.content.bytes();
351
+ } else if(typeof msg.content === 'string') {
352
+ content = forge.util.encodeUtf8(msg.content);
353
+ }
354
+
355
+ if (options.detached) {
356
+ msg.detachedContent = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, content);
357
+ } else {
358
+ msg.contentInfo.value.push(
359
+ // [0] EXPLICIT content
360
+ asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [
361
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,
362
+ content)
363
+ ]));
364
+ }
365
+ }
366
+ }
367
+
368
+ // no signers, return early (degenerate case for certificate container)
369
+ if(msg.signers.length === 0) {
370
+ return;
371
+ }
372
+
373
+ // generate digest algorithm identifiers
374
+ var mds = addDigestAlgorithmIds();
375
+
376
+ // generate signerInfos
377
+ addSignerInfos(mds);
378
+ },
379
+
380
+ verify: function() {
381
+ throw new Error('PKCS#7 signature verification not yet implemented.');
382
+ },
383
+
384
+ /**
385
+ * Add a certificate.
386
+ *
387
+ * @param cert the certificate to add.
388
+ */
389
+ addCertificate: function(cert) {
390
+ // convert from PEM
391
+ if(typeof cert === 'string') {
392
+ cert = forge.pki.certificateFromPem(cert);
393
+ }
394
+ msg.certificates.push(cert);
395
+ },
396
+
397
+ /**
398
+ * Add a certificate revokation list.
399
+ *
400
+ * @param crl the certificate revokation list to add.
401
+ */
402
+ addCertificateRevokationList: function(crl) {
403
+ throw new Error('PKCS#7 CRL support not yet implemented.');
404
+ }
405
+ };
406
+ return msg;
407
+
408
+ function addDigestAlgorithmIds() {
409
+ var mds = {};
410
+
411
+ for(var i = 0; i < msg.signers.length; ++i) {
412
+ var signer = msg.signers[i];
413
+ var oid = signer.digestAlgorithm;
414
+ if(!(oid in mds)) {
415
+ // content digest
416
+ mds[oid] = forge.md[forge.pki.oids[oid]].create();
417
+ }
418
+ if(signer.authenticatedAttributes.length === 0) {
419
+ // no custom attributes to digest; use content message digest
420
+ signer.md = mds[oid];
421
+ } else {
422
+ // custom attributes to be digested; use own message digest
423
+ // TODO: optimize to just copy message digest state if that
424
+ // feature is ever supported with message digests
425
+ signer.md = forge.md[forge.pki.oids[oid]].create();
426
+ }
427
+ }
428
+
429
+ // add unique digest algorithm identifiers
430
+ msg.digestAlgorithmIdentifiers = [];
431
+ for(var oid in mds) {
432
+ msg.digestAlgorithmIdentifiers.push(
433
+ // AlgorithmIdentifier
434
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
435
+ // algorithm
436
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
437
+ asn1.oidToDer(oid).getBytes()),
438
+ // parameters (null)
439
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')
440
+ ]));
441
+ }
442
+
443
+ return mds;
444
+ }
445
+
446
+ function addSignerInfos(mds) {
447
+ var content;
448
+
449
+ if (msg.detachedContent) {
450
+ // Signature has been made in detached mode.
451
+ content = msg.detachedContent;
452
+ } else {
453
+ // Note: ContentInfo is a SEQUENCE with 2 values, second value is
454
+ // the content field and is optional for a ContentInfo but required here
455
+ // since signers are present
456
+ // get ContentInfo content
457
+ content = msg.contentInfo.value[1];
458
+ // skip [0] EXPLICIT content wrapper
459
+ content = content.value[0];
460
+ }
461
+
462
+ if(!content) {
463
+ throw new Error(
464
+ 'Could not sign PKCS#7 message; there is no content to sign.');
465
+ }
466
+
467
+ // get ContentInfo content type
468
+ var contentType = asn1.derToOid(msg.contentInfo.value[0].value);
469
+
470
+ // serialize content
471
+ var bytes = asn1.toDer(content);
472
+
473
+ // skip identifier and length per RFC 2315 9.3
474
+ // skip identifier (1 byte)
475
+ bytes.getByte();
476
+ // read and discard length bytes
477
+ asn1.getBerValueLength(bytes);
478
+ bytes = bytes.getBytes();
479
+
480
+ // digest content DER value bytes
481
+ for(var oid in mds) {
482
+ mds[oid].start().update(bytes);
483
+ }
484
+
485
+ // sign content
486
+ var signingTime = new Date();
487
+ for(var i = 0; i < msg.signers.length; ++i) {
488
+ var signer = msg.signers[i];
489
+
490
+ if(signer.authenticatedAttributes.length === 0) {
491
+ // if ContentInfo content type is not "Data", then
492
+ // authenticatedAttributes must be present per RFC 2315
493
+ if(contentType !== forge.pki.oids.data) {
494
+ throw new Error(
495
+ 'Invalid signer; authenticatedAttributes must be present ' +
496
+ 'when the ContentInfo content type is not PKCS#7 Data.');
497
+ }
498
+ } else {
499
+ // process authenticated attributes
500
+ // [0] IMPLICIT
501
+ signer.authenticatedAttributesAsn1 = asn1.create(
502
+ asn1.Class.CONTEXT_SPECIFIC, 0, true, []);
503
+
504
+ // per RFC 2315, attributes are to be digested using a SET container
505
+ // not the above [0] IMPLICIT container
506
+ var attrsAsn1 = asn1.create(
507
+ asn1.Class.UNIVERSAL, asn1.Type.SET, true, []);
508
+
509
+ for(var ai = 0; ai < signer.authenticatedAttributes.length; ++ai) {
510
+ var attr = signer.authenticatedAttributes[ai];
511
+ if(attr.type === forge.pki.oids.messageDigest) {
512
+ // use content message digest as value
513
+ attr.value = mds[signer.digestAlgorithm].digest();
514
+ } else if(attr.type === forge.pki.oids.signingTime) {
515
+ // auto-populate signing time if not already set
516
+ if(!attr.value) {
517
+ attr.value = signingTime;
518
+ }
519
+ }
520
+
521
+ // convert to ASN.1 and push onto Attributes SET (for signing) and
522
+ // onto authenticatedAttributesAsn1 to complete SignedData ASN.1
523
+ // TODO: optimize away duplication
524
+ attrsAsn1.value.push(_attributeToAsn1(attr));
525
+ signer.authenticatedAttributesAsn1.value.push(_attributeToAsn1(attr));
526
+ }
527
+
528
+ // DER-serialize and digest SET OF attributes only
529
+ bytes = asn1.toDer(attrsAsn1).getBytes();
530
+ signer.md.start().update(bytes);
531
+ }
532
+
533
+ // sign digest
534
+ signer.signature = signer.key.sign(signer.md, 'RSASSA-PKCS1-V1_5');
535
+ }
536
+
537
+ // add signer info
538
+ msg.signerInfos = _signersToAsn1(msg.signers);
539
+ }
540
+ };
541
+
542
+ /**
543
+ * Creates an empty PKCS#7 message of type EncryptedData.
544
+ *
545
+ * @return the message.
546
+ */
547
+ p7.createEncryptedData = function() {
548
+ var msg = null;
549
+ msg = {
550
+ type: forge.pki.oids.encryptedData,
551
+ version: 0,
552
+ encryptedContent: {
553
+ algorithm: forge.pki.oids['aes256-CBC']
554
+ },
555
+
556
+ /**
557
+ * Reads an EncryptedData content block (in ASN.1 format)
558
+ *
559
+ * @param obj The ASN.1 representation of the EncryptedData content block
560
+ */
561
+ fromAsn1: function(obj) {
562
+ // Validate EncryptedData content block and capture data.
563
+ _fromAsn1(msg, obj, p7.asn1.encryptedDataValidator);
564
+ },
565
+
566
+ /**
567
+ * Decrypt encrypted content
568
+ *
569
+ * @param key The (symmetric) key as a byte buffer
570
+ */
571
+ decrypt: function(key) {
572
+ if(key !== undefined) {
573
+ msg.encryptedContent.key = key;
574
+ }
575
+ _decryptContent(msg);
576
+ }
577
+ };
578
+ return msg;
579
+ };
580
+
581
+ /**
582
+ * Creates an empty PKCS#7 message of type EnvelopedData.
583
+ *
584
+ * @return the message.
585
+ */
586
+ p7.createEnvelopedData = function() {
587
+ var msg = null;
588
+ msg = {
589
+ type: forge.pki.oids.envelopedData,
590
+ version: 0,
591
+ recipients: [],
592
+ encryptedContent: {
593
+ algorithm: forge.pki.oids['aes256-CBC']
594
+ },
595
+
596
+ /**
597
+ * Reads an EnvelopedData content block (in ASN.1 format)
598
+ *
599
+ * @param obj the ASN.1 representation of the EnvelopedData content block.
600
+ */
601
+ fromAsn1: function(obj) {
602
+ // validate EnvelopedData content block and capture data
603
+ var capture = _fromAsn1(msg, obj, p7.asn1.envelopedDataValidator);
604
+ msg.recipients = _recipientsFromAsn1(capture.recipientInfos.value);
605
+ },
606
+
607
+ toAsn1: function() {
608
+ // ContentInfo
609
+ return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
610
+ // ContentType
611
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
612
+ asn1.oidToDer(msg.type).getBytes()),
613
+ // [0] EnvelopedData
614
+ asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [
615
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
616
+ // Version
617
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,
618
+ asn1.integerToDer(msg.version).getBytes()),
619
+ // RecipientInfos
620
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true,
621
+ _recipientsToAsn1(msg.recipients)),
622
+ // EncryptedContentInfo
623
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true,
624
+ _encryptedContentToAsn1(msg.encryptedContent))
625
+ ])
626
+ ])
627
+ ]);
628
+ },
629
+
630
+ /**
631
+ * Find recipient by X.509 certificate's issuer.
632
+ *
633
+ * @param cert the certificate with the issuer to look for.
634
+ *
635
+ * @return the recipient object.
636
+ */
637
+ findRecipient: function(cert) {
638
+ var sAttr = cert.issuer.attributes;
639
+
640
+ for(var i = 0; i < msg.recipients.length; ++i) {
641
+ var r = msg.recipients[i];
642
+ var rAttr = r.issuer;
643
+
644
+ if(r.serialNumber !== cert.serialNumber) {
645
+ continue;
646
+ }
647
+
648
+ if(rAttr.length !== sAttr.length) {
649
+ continue;
650
+ }
651
+
652
+ var match = true;
653
+ for(var j = 0; j < sAttr.length; ++j) {
654
+ if(rAttr[j].type !== sAttr[j].type ||
655
+ rAttr[j].value !== sAttr[j].value) {
656
+ match = false;
657
+ break;
658
+ }
659
+ }
660
+
661
+ if(match) {
662
+ return r;
663
+ }
664
+ }
665
+
666
+ return null;
667
+ },
668
+
669
+ /**
670
+ * Decrypt enveloped content
671
+ *
672
+ * @param recipient The recipient object related to the private key
673
+ * @param privKey The (RSA) private key object
674
+ */
675
+ decrypt: function(recipient, privKey) {
676
+ if(msg.encryptedContent.key === undefined && recipient !== undefined &&
677
+ privKey !== undefined) {
678
+ switch(recipient.encryptedContent.algorithm) {
679
+ case forge.pki.oids.rsaEncryption:
680
+ case forge.pki.oids.desCBC:
681
+ var key = privKey.decrypt(recipient.encryptedContent.content);
682
+ msg.encryptedContent.key = forge.util.createBuffer(key);
683
+ break;
684
+
685
+ default:
686
+ throw new Error('Unsupported asymmetric cipher, ' +
687
+ 'OID ' + recipient.encryptedContent.algorithm);
688
+ }
689
+ }
690
+
691
+ _decryptContent(msg);
692
+ },
693
+
694
+ /**
695
+ * Add (another) entity to list of recipients.
696
+ *
697
+ * @param cert The certificate of the entity to add.
698
+ */
699
+ addRecipient: function(cert) {
700
+ msg.recipients.push({
701
+ version: 0,
702
+ issuer: cert.issuer.attributes,
703
+ serialNumber: cert.serialNumber,
704
+ encryptedContent: {
705
+ // We simply assume rsaEncryption here, since forge.pki only
706
+ // supports RSA so far. If the PKI module supports other
707
+ // ciphers one day, we need to modify this one as well.
708
+ algorithm: forge.pki.oids.rsaEncryption,
709
+ key: cert.publicKey
710
+ }
711
+ });
712
+ },
713
+
714
+ /**
715
+ * Encrypt enveloped content.
716
+ *
717
+ * This function supports two optional arguments, cipher and key, which
718
+ * can be used to influence symmetric encryption. Unless cipher is
719
+ * provided, the cipher specified in encryptedContent.algorithm is used
720
+ * (defaults to AES-256-CBC). If no key is provided, encryptedContent.key
721
+ * is (re-)used. If that one's not set, a random key will be generated
722
+ * automatically.
723
+ *
724
+ * @param [key] The key to be used for symmetric encryption.
725
+ * @param [cipher] The OID of the symmetric cipher to use.
726
+ */
727
+ encrypt: function(key, cipher) {
728
+ // Part 1: Symmetric encryption
729
+ if(msg.encryptedContent.content === undefined) {
730
+ cipher = cipher || msg.encryptedContent.algorithm;
731
+ key = key || msg.encryptedContent.key;
732
+
733
+ var keyLen, ivLen, ciphFn;
734
+ switch(cipher) {
735
+ case forge.pki.oids['aes128-CBC']:
736
+ keyLen = 16;
737
+ ivLen = 16;
738
+ ciphFn = forge.aes.createEncryptionCipher;
739
+ break;
740
+
741
+ case forge.pki.oids['aes192-CBC']:
742
+ keyLen = 24;
743
+ ivLen = 16;
744
+ ciphFn = forge.aes.createEncryptionCipher;
745
+ break;
746
+
747
+ case forge.pki.oids['aes256-CBC']:
748
+ keyLen = 32;
749
+ ivLen = 16;
750
+ ciphFn = forge.aes.createEncryptionCipher;
751
+ break;
752
+
753
+ case forge.pki.oids['des-EDE3-CBC']:
754
+ keyLen = 24;
755
+ ivLen = 8;
756
+ ciphFn = forge.des.createEncryptionCipher;
757
+ break;
758
+
759
+ default:
760
+ throw new Error('Unsupported symmetric cipher, OID ' + cipher);
761
+ }
762
+
763
+ if(key === undefined) {
764
+ key = forge.util.createBuffer(forge.random.getBytes(keyLen));
765
+ } else if(key.length() != keyLen) {
766
+ throw new Error('Symmetric key has wrong length; ' +
767
+ 'got ' + key.length() + ' bytes, expected ' + keyLen + '.');
768
+ }
769
+
770
+ // Keep a copy of the key & IV in the object, so the caller can
771
+ // use it for whatever reason.
772
+ msg.encryptedContent.algorithm = cipher;
773
+ msg.encryptedContent.key = key;
774
+ msg.encryptedContent.parameter = forge.util.createBuffer(
775
+ forge.random.getBytes(ivLen));
776
+
777
+ var ciph = ciphFn(key);
778
+ ciph.start(msg.encryptedContent.parameter.copy());
779
+ ciph.update(msg.content);
780
+
781
+ // The finish function does PKCS#7 padding by default, therefore
782
+ // no action required by us.
783
+ if(!ciph.finish()) {
784
+ throw new Error('Symmetric encryption failed.');
785
+ }
786
+
787
+ msg.encryptedContent.content = ciph.output;
788
+ }
789
+
790
+ // Part 2: asymmetric encryption for each recipient
791
+ for(var i = 0; i < msg.recipients.length; ++i) {
792
+ var recipient = msg.recipients[i];
793
+
794
+ // Nothing to do, encryption already done.
795
+ if(recipient.encryptedContent.content !== undefined) {
796
+ continue;
797
+ }
798
+
799
+ switch(recipient.encryptedContent.algorithm) {
800
+ case forge.pki.oids.rsaEncryption:
801
+ recipient.encryptedContent.content =
802
+ recipient.encryptedContent.key.encrypt(
803
+ msg.encryptedContent.key.data);
804
+ break;
805
+
806
+ default:
807
+ throw new Error('Unsupported asymmetric cipher, OID ' +
808
+ recipient.encryptedContent.algorithm);
809
+ }
810
+ }
811
+ }
812
+ };
813
+ return msg;
814
+ };
815
+
816
+ /**
817
+ * Converts a single recipient from an ASN.1 object.
818
+ *
819
+ * @param obj the ASN.1 RecipientInfo.
820
+ *
821
+ * @return the recipient object.
822
+ */
823
+ function _recipientFromAsn1(obj) {
824
+ // validate EnvelopedData content block and capture data
825
+ var capture = {};
826
+ var errors = [];
827
+ if(!asn1.validate(obj, p7.asn1.recipientInfoValidator, capture, errors)) {
828
+ var error = new Error('Cannot read PKCS#7 RecipientInfo. ' +
829
+ 'ASN.1 object is not an PKCS#7 RecipientInfo.');
830
+ error.errors = errors;
831
+ throw error;
832
+ }
833
+
834
+ return {
835
+ version: capture.version.charCodeAt(0),
836
+ issuer: forge.pki.RDNAttributesAsArray(capture.issuer),
837
+ serialNumber: forge.util.createBuffer(capture.serial).toHex(),
838
+ encryptedContent: {
839
+ algorithm: asn1.derToOid(capture.encAlgorithm),
840
+ parameter: capture.encParameter ? capture.encParameter.value : undefined,
841
+ content: capture.encKey
842
+ }
843
+ };
844
+ }
845
+
846
+ /**
847
+ * Converts a single recipient object to an ASN.1 object.
848
+ *
849
+ * @param obj the recipient object.
850
+ *
851
+ * @return the ASN.1 RecipientInfo.
852
+ */
853
+ function _recipientToAsn1(obj) {
854
+ return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
855
+ // Version
856
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,
857
+ asn1.integerToDer(obj.version).getBytes()),
858
+ // IssuerAndSerialNumber
859
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
860
+ // Name
861
+ forge.pki.distinguishedNameToAsn1({attributes: obj.issuer}),
862
+ // Serial
863
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,
864
+ forge.util.hexToBytes(obj.serialNumber))
865
+ ]),
866
+ // KeyEncryptionAlgorithmIdentifier
867
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
868
+ // Algorithm
869
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
870
+ asn1.oidToDer(obj.encryptedContent.algorithm).getBytes()),
871
+ // Parameter, force NULL, only RSA supported for now.
872
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')
873
+ ]),
874
+ // EncryptedKey
875
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,
876
+ obj.encryptedContent.content)
877
+ ]);
878
+ }
879
+
880
+ /**
881
+ * Map a set of RecipientInfo ASN.1 objects to recipient objects.
882
+ *
883
+ * @param infos an array of ASN.1 representations RecipientInfo (i.e. SET OF).
884
+ *
885
+ * @return an array of recipient objects.
886
+ */
887
+ function _recipientsFromAsn1(infos) {
888
+ var ret = [];
889
+ for(var i = 0; i < infos.length; ++i) {
890
+ ret.push(_recipientFromAsn1(infos[i]));
891
+ }
892
+ return ret;
893
+ }
894
+
895
+ /**
896
+ * Map an array of recipient objects to ASN.1 RecipientInfo objects.
897
+ *
898
+ * @param recipients an array of recipientInfo objects.
899
+ *
900
+ * @return an array of ASN.1 RecipientInfos.
901
+ */
902
+ function _recipientsToAsn1(recipients) {
903
+ var ret = [];
904
+ for(var i = 0; i < recipients.length; ++i) {
905
+ ret.push(_recipientToAsn1(recipients[i]));
906
+ }
907
+ return ret;
908
+ }
909
+
910
+ /**
911
+ * Converts a single signer from an ASN.1 object.
912
+ *
913
+ * @param obj the ASN.1 representation of a SignerInfo.
914
+ *
915
+ * @return the signer object.
916
+ */
917
+ function _signerFromAsn1(obj) {
918
+ // validate EnvelopedData content block and capture data
919
+ var capture = {};
920
+ var errors = [];
921
+ if(!asn1.validate(obj, p7.asn1.signerInfoValidator, capture, errors)) {
922
+ var error = new Error('Cannot read PKCS#7 SignerInfo. ' +
923
+ 'ASN.1 object is not an PKCS#7 SignerInfo.');
924
+ error.errors = errors;
925
+ throw error;
926
+ }
927
+
928
+ var rval = {
929
+ version: capture.version.charCodeAt(0),
930
+ issuer: forge.pki.RDNAttributesAsArray(capture.issuer),
931
+ serialNumber: forge.util.createBuffer(capture.serial).toHex(),
932
+ digestAlgorithm: asn1.derToOid(capture.digestAlgorithm),
933
+ signatureAlgorithm: asn1.derToOid(capture.signatureAlgorithm),
934
+ signature: capture.signature,
935
+ authenticatedAttributes: [],
936
+ unauthenticatedAttributes: []
937
+ };
938
+
939
+ // TODO: convert attributes
940
+ var authenticatedAttributes = capture.authenticatedAttributes || [];
941
+ var unauthenticatedAttributes = capture.unauthenticatedAttributes || [];
942
+
943
+ return rval;
944
+ }
945
+
946
+ /**
947
+ * Converts a single signerInfo object to an ASN.1 object.
948
+ *
949
+ * @param obj the signerInfo object.
950
+ *
951
+ * @return the ASN.1 representation of a SignerInfo.
952
+ */
953
+ function _signerToAsn1(obj) {
954
+ // SignerInfo
955
+ var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
956
+ // version
957
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,
958
+ asn1.integerToDer(obj.version).getBytes()),
959
+ // issuerAndSerialNumber
960
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
961
+ // name
962
+ forge.pki.distinguishedNameToAsn1({attributes: obj.issuer}),
963
+ // serial
964
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,
965
+ forge.util.hexToBytes(obj.serialNumber))
966
+ ]),
967
+ // digestAlgorithm
968
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
969
+ // algorithm
970
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
971
+ asn1.oidToDer(obj.digestAlgorithm).getBytes()),
972
+ // parameters (null)
973
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')
974
+ ])
975
+ ]);
976
+
977
+ // authenticatedAttributes (OPTIONAL)
978
+ if(obj.authenticatedAttributesAsn1) {
979
+ // add ASN.1 previously generated during signing
980
+ rval.value.push(obj.authenticatedAttributesAsn1);
981
+ }
982
+
983
+ // digestEncryptionAlgorithm
984
+ rval.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
985
+ // algorithm
986
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
987
+ asn1.oidToDer(obj.signatureAlgorithm).getBytes()),
988
+ // parameters (null)
989
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')
990
+ ]));
991
+
992
+ // encryptedDigest
993
+ rval.value.push(asn1.create(
994
+ asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, obj.signature));
995
+
996
+ // unauthenticatedAttributes (OPTIONAL)
997
+ if(obj.unauthenticatedAttributes.length > 0) {
998
+ // [1] IMPLICIT
999
+ var attrsAsn1 = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, []);
1000
+ for(var i = 0; i < obj.unauthenticatedAttributes.length; ++i) {
1001
+ var attr = obj.unauthenticatedAttributes[i];
1002
+ attrsAsn1.values.push(_attributeToAsn1(attr));
1003
+ }
1004
+ rval.value.push(attrsAsn1);
1005
+ }
1006
+
1007
+ return rval;
1008
+ }
1009
+
1010
+ /**
1011
+ * Map a set of SignerInfo ASN.1 objects to an array of signer objects.
1012
+ *
1013
+ * @param signerInfoAsn1s an array of ASN.1 SignerInfos (i.e. SET OF).
1014
+ *
1015
+ * @return an array of signers objects.
1016
+ */
1017
+ function _signersFromAsn1(signerInfoAsn1s) {
1018
+ var ret = [];
1019
+ for(var i = 0; i < signerInfoAsn1s.length; ++i) {
1020
+ ret.push(_signerFromAsn1(signerInfoAsn1s[i]));
1021
+ }
1022
+ return ret;
1023
+ }
1024
+
1025
+ /**
1026
+ * Map an array of signer objects to ASN.1 objects.
1027
+ *
1028
+ * @param signers an array of signer objects.
1029
+ *
1030
+ * @return an array of ASN.1 SignerInfos.
1031
+ */
1032
+ function _signersToAsn1(signers) {
1033
+ var ret = [];
1034
+ for(var i = 0; i < signers.length; ++i) {
1035
+ ret.push(_signerToAsn1(signers[i]));
1036
+ }
1037
+ return ret;
1038
+ }
1039
+
1040
+ /**
1041
+ * Convert an attribute object to an ASN.1 Attribute.
1042
+ *
1043
+ * @param attr the attribute object.
1044
+ *
1045
+ * @return the ASN.1 Attribute.
1046
+ */
1047
+ function _attributeToAsn1(attr) {
1048
+ var value;
1049
+
1050
+ // TODO: generalize to support more attributes
1051
+ if(attr.type === forge.pki.oids.contentType) {
1052
+ value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
1053
+ asn1.oidToDer(attr.value).getBytes());
1054
+ } else if(attr.type === forge.pki.oids.messageDigest) {
1055
+ value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,
1056
+ attr.value.bytes());
1057
+ } else if(attr.type === forge.pki.oids.signingTime) {
1058
+ /* Note per RFC 2985: Dates between 1 January 1950 and 31 December 2049
1059
+ (inclusive) MUST be encoded as UTCTime. Any dates with year values
1060
+ before 1950 or after 2049 MUST be encoded as GeneralizedTime. [Further,]
1061
+ UTCTime values MUST be expressed in Greenwich Mean Time (Zulu) and MUST
1062
+ include seconds (i.e., times are YYMMDDHHMMSSZ), even where the
1063
+ number of seconds is zero. Midnight (GMT) must be represented as
1064
+ "YYMMDD000000Z". */
1065
+ // TODO: make these module-level constants
1066
+ var jan_1_1950 = new Date('1950-01-01T00:00:00Z');
1067
+ var jan_1_2050 = new Date('2050-01-01T00:00:00Z');
1068
+ var date = attr.value;
1069
+ if(typeof date === 'string') {
1070
+ // try to parse date
1071
+ var timestamp = Date.parse(date);
1072
+ if(!isNaN(timestamp)) {
1073
+ date = new Date(timestamp);
1074
+ } else if(date.length === 13) {
1075
+ // YYMMDDHHMMSSZ (13 chars for UTCTime)
1076
+ date = asn1.utcTimeToDate(date);
1077
+ } else {
1078
+ // assume generalized time
1079
+ date = asn1.generalizedTimeToDate(date);
1080
+ }
1081
+ }
1082
+
1083
+ if(date >= jan_1_1950 && date < jan_1_2050) {
1084
+ value = asn1.create(
1085
+ asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false,
1086
+ asn1.dateToUtcTime(date));
1087
+ } else {
1088
+ value = asn1.create(
1089
+ asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false,
1090
+ asn1.dateToGeneralizedTime(date));
1091
+ }
1092
+ }
1093
+
1094
+ // TODO: expose as common API call
1095
+ // create a RelativeDistinguishedName set
1096
+ // each value in the set is an AttributeTypeAndValue first
1097
+ // containing the type (an OID) and second the value
1098
+ return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
1099
+ // AttributeType
1100
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
1101
+ asn1.oidToDer(attr.type).getBytes()),
1102
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [
1103
+ // AttributeValue
1104
+ value
1105
+ ])
1106
+ ]);
1107
+ }
1108
+
1109
+ /**
1110
+ * Map messages encrypted content to ASN.1 objects.
1111
+ *
1112
+ * @param ec The encryptedContent object of the message.
1113
+ *
1114
+ * @return ASN.1 representation of the encryptedContent object (SEQUENCE).
1115
+ */
1116
+ function _encryptedContentToAsn1(ec) {
1117
+ return [
1118
+ // ContentType, always Data for the moment
1119
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
1120
+ asn1.oidToDer(forge.pki.oids.data).getBytes()),
1121
+ // ContentEncryptionAlgorithmIdentifier
1122
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [
1123
+ // Algorithm
1124
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,
1125
+ asn1.oidToDer(ec.algorithm).getBytes()),
1126
+ // Parameters (IV)
1127
+ !ec.parameter ?
1128
+ undefined :
1129
+ asn1.create(
1130
+ asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,
1131
+ ec.parameter.getBytes())
1132
+ ]),
1133
+ // [0] EncryptedContent
1134
+ asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [
1135
+ asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,
1136
+ ec.content.getBytes())
1137
+ ])
1138
+ ];
1139
+ }
1140
+
1141
+ /**
1142
+ * Reads the "common part" of an PKCS#7 content block (in ASN.1 format)
1143
+ *
1144
+ * This function reads the "common part" of the PKCS#7 content blocks
1145
+ * EncryptedData and EnvelopedData, i.e. version number and symmetrically
1146
+ * encrypted content block.
1147
+ *
1148
+ * The result of the ASN.1 validate and capture process is returned
1149
+ * to allow the caller to extract further data, e.g. the list of recipients
1150
+ * in case of a EnvelopedData object.
1151
+ *
1152
+ * @param msg the PKCS#7 object to read the data to.
1153
+ * @param obj the ASN.1 representation of the content block.
1154
+ * @param validator the ASN.1 structure validator object to use.
1155
+ *
1156
+ * @return the value map captured by validator object.
1157
+ */
1158
+ function _fromAsn1(msg, obj, validator) {
1159
+ var capture = {};
1160
+ var errors = [];
1161
+ if(!asn1.validate(obj, validator, capture, errors)) {
1162
+ var error = new Error('Cannot read PKCS#7 message. ' +
1163
+ 'ASN.1 object is not a supported PKCS#7 message.');
1164
+ error.errors = error;
1165
+ throw error;
1166
+ }
1167
+
1168
+ // Check contentType, so far we only support (raw) Data.
1169
+ var contentType = asn1.derToOid(capture.contentType);
1170
+ if(contentType !== forge.pki.oids.data) {
1171
+ throw new Error('Unsupported PKCS#7 message. ' +
1172
+ 'Only wrapped ContentType Data supported.');
1173
+ }
1174
+
1175
+ if(capture.encryptedContent) {
1176
+ var content = '';
1177
+ if(forge.util.isArray(capture.encryptedContent)) {
1178
+ for(var i = 0; i < capture.encryptedContent.length; ++i) {
1179
+ if(capture.encryptedContent[i].type !== asn1.Type.OCTETSTRING) {
1180
+ throw new Error('Malformed PKCS#7 message, expecting encrypted ' +
1181
+ 'content constructed of only OCTET STRING objects.');
1182
+ }
1183
+ content += capture.encryptedContent[i].value;
1184
+ }
1185
+ } else {
1186
+ content = capture.encryptedContent;
1187
+ }
1188
+ msg.encryptedContent = {
1189
+ algorithm: asn1.derToOid(capture.encAlgorithm),
1190
+ parameter: forge.util.createBuffer(capture.encParameter.value),
1191
+ content: forge.util.createBuffer(content)
1192
+ };
1193
+ }
1194
+
1195
+ if(capture.content) {
1196
+ var content = '';
1197
+ if(forge.util.isArray(capture.content)) {
1198
+ for(var i = 0; i < capture.content.length; ++i) {
1199
+ if(capture.content[i].type !== asn1.Type.OCTETSTRING) {
1200
+ throw new Error('Malformed PKCS#7 message, expecting ' +
1201
+ 'content constructed of only OCTET STRING objects.');
1202
+ }
1203
+ content += capture.content[i].value;
1204
+ }
1205
+ } else {
1206
+ content = capture.content;
1207
+ }
1208
+ msg.content = forge.util.createBuffer(content);
1209
+ }
1210
+
1211
+ msg.version = capture.version.charCodeAt(0);
1212
+ msg.rawCapture = capture;
1213
+
1214
+ return capture;
1215
+ }
1216
+
1217
+ /**
1218
+ * Decrypt the symmetrically encrypted content block of the PKCS#7 message.
1219
+ *
1220
+ * Decryption is skipped in case the PKCS#7 message object already has a
1221
+ * (decrypted) content attribute. The algorithm, key and cipher parameters
1222
+ * (probably the iv) are taken from the encryptedContent attribute of the
1223
+ * message object.
1224
+ *
1225
+ * @param The PKCS#7 message object.
1226
+ */
1227
+ function _decryptContent(msg) {
1228
+ if(msg.encryptedContent.key === undefined) {
1229
+ throw new Error('Symmetric key not available.');
1230
+ }
1231
+
1232
+ if(msg.content === undefined) {
1233
+ var ciph;
1234
+
1235
+ switch(msg.encryptedContent.algorithm) {
1236
+ case forge.pki.oids['aes128-CBC']:
1237
+ case forge.pki.oids['aes192-CBC']:
1238
+ case forge.pki.oids['aes256-CBC']:
1239
+ ciph = forge.aes.createDecryptionCipher(msg.encryptedContent.key);
1240
+ break;
1241
+
1242
+ case forge.pki.oids['desCBC']:
1243
+ case forge.pki.oids['des-EDE3-CBC']:
1244
+ ciph = forge.des.createDecryptionCipher(msg.encryptedContent.key);
1245
+ break;
1246
+
1247
+ default:
1248
+ throw new Error('Unsupported symmetric cipher, OID ' +
1249
+ msg.encryptedContent.algorithm);
1250
+ }
1251
+ ciph.start(msg.encryptedContent.parameter);
1252
+ ciph.update(msg.encryptedContent.content);
1253
+
1254
+ if(!ciph.finish()) {
1255
+ throw new Error('Symmetric decryption failed.');
1256
+ }
1257
+
1258
+ msg.content = ciph.output;
1259
+ }
1260
+ }