9router 0.3.48 → 0.3.49

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 (348) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +41 -41
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/_global-error.html +2 -2
  20. package/app/.next/server/app/_global-error.rsc +1 -1
  21. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  22. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  23. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  24. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  25. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  26. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  27. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/_not-found.html +1 -1
  29. package/app/.next/server/app/_not-found.rsc +3 -3
  30. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  31. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  32. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  33. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  34. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  35. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  36. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/models/route.js +1 -1
  58. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  62. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  63. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/providers/route.js +1 -1
  80. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  93. package/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/translator/console-logs/stream/route.js +1 -1
  95. package/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  101. package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  103. package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  105. package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  107. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  111. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/usage/stream/route.js +1 -1
  116. package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  118. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  120. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  122. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  125. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  128. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  131. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/version/route.js +1 -1
  134. package/app/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/callback.html +1 -1
  137. package/app/.next/server/app/callback.rsc +3 -3
  138. package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
  139. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  140. package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
  141. package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  142. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  143. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  144. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  145. package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
  146. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  147. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  148. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  149. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  150. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  151. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  152. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  153. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  154. package/app/.next/server/app/dashboard/combos.html +1 -1
  155. package/app/.next/server/app/dashboard/combos.rsc +5 -5
  156. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  157. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  158. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  159. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  160. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  161. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  162. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  163. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  164. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  165. package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
  166. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  167. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  168. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  169. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  170. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  171. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  172. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  173. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  174. package/app/.next/server/app/dashboard/mitm.html +1 -1
  175. package/app/.next/server/app/dashboard/mitm.rsc +5 -5
  176. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  177. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  178. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  179. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  180. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  181. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  182. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  183. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  184. package/app/.next/server/app/dashboard/profile.html +1 -1
  185. package/app/.next/server/app/dashboard/profile.rsc +5 -5
  186. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  187. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  188. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  189. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  190. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  191. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  192. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  193. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  194. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  195. package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
  196. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  197. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  198. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  199. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  200. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  201. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  202. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  203. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  204. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  205. package/app/.next/server/app/dashboard/providers.html +1 -1
  206. package/app/.next/server/app/dashboard/providers.rsc +5 -5
  207. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  208. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  209. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  210. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  211. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  212. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  213. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  214. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  215. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  216. package/app/.next/server/app/dashboard/proxy-pools.rsc +5 -5
  217. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  218. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  219. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  220. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  221. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  222. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  223. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  224. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  225. package/app/.next/server/app/dashboard/quota.html +2 -2
  226. package/app/.next/server/app/dashboard/quota.rsc +4 -4
  227. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +1 -1
  228. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  229. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  230. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  231. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +4 -4
  232. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  233. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  234. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  235. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  236. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  237. package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
  238. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  239. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  240. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  241. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  242. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  243. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  244. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  245. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  246. package/app/.next/server/app/dashboard/translator.html +1 -1
  247. package/app/.next/server/app/dashboard/translator.rsc +5 -5
  248. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  249. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  250. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  251. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  252. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  253. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  254. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  255. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  256. package/app/.next/server/app/dashboard/usage.html +1 -1
  257. package/app/.next/server/app/dashboard/usage.rsc +5 -5
  258. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  259. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  260. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  261. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  262. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  263. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  264. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  265. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  266. package/app/.next/server/app/dashboard.html +1 -1
  267. package/app/.next/server/app/dashboard.rsc +5 -5
  268. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  269. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  270. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  271. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  272. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  273. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  274. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  275. package/app/.next/server/app/index.html +1 -1
  276. package/app/.next/server/app/index.rsc +3 -3
  277. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  278. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  279. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  280. package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
  281. package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  282. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  283. package/app/.next/server/app/landing.html +1 -1
  284. package/app/.next/server/app/landing.rsc +3 -3
  285. package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
  286. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  287. package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
  288. package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  289. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  290. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  291. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  292. package/app/.next/server/app/login.html +1 -1
  293. package/app/.next/server/app/login.rsc +4 -4
  294. package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
  295. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  296. package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
  297. package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  298. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  299. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  300. package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  301. package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  302. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  303. package/app/.next/server/app-paths-manifest.json +41 -41
  304. package/app/.next/server/chunks/1114.js +1 -1
  305. package/app/.next/server/chunks/1424.js +1 -1
  306. package/app/.next/server/chunks/289.js +1 -1
  307. package/app/.next/server/chunks/318.js +5 -5
  308. package/app/.next/server/chunks/4989.js +2 -2
  309. package/app/.next/server/chunks/5297.js +1 -1
  310. package/app/.next/server/chunks/6182.js +4 -4
  311. package/app/.next/server/chunks/8590.js +1 -1
  312. package/app/.next/server/chunks/8895.js +3 -3
  313. package/app/.next/server/chunks/9201.js +1 -1
  314. package/app/.next/server/chunks/9609.js +1 -1
  315. package/app/.next/server/pages/404.html +1 -1
  316. package/app/.next/server/pages/500.html +2 -2
  317. package/app/.next/server/server-reference-manifest.js +1 -1
  318. package/app/.next/server/server-reference-manifest.json +1 -1
  319. package/app/.next/static/chunks/{5497-e51ea33e5c739a33.js → 5497-612d09a8bc2fb0ac.js} +1 -1
  320. package/app/.next/static/chunks/{619-4c970716a5102dc3.js → 619-c4c101a6a78feeb4.js} +1 -1
  321. package/app/.next/static/chunks/app/{layout-8f69df46423ca2cf.js → layout-facb48b90c716570.js} +1 -1
  322. package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  323. package/app/node_modules/better-sqlite3/lib/database.js +90 -0
  324. package/app/node_modules/better-sqlite3/lib/index.js +3 -0
  325. package/app/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  326. package/app/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  327. package/app/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  328. package/app/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  329. package/app/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  330. package/app/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  331. package/app/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  332. package/app/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  333. package/app/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  334. package/app/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  335. package/app/node_modules/better-sqlite3/lib/util.js +12 -0
  336. package/app/node_modules/better-sqlite3/package.json +59 -0
  337. package/app/node_modules/bindings/bindings.js +221 -0
  338. package/app/node_modules/bindings/package.json +28 -0
  339. package/app/node_modules/file-uri-to-path/index.js +66 -0
  340. package/app/node_modules/file-uri-to-path/package.json +32 -0
  341. package/app/package.json +2 -1
  342. package/app/src/mitm/manager.js +59 -0
  343. package/app/src/mitm/server.js +1 -1
  344. package/app/src/mitm/{server copy.js → server2.js} +188 -35
  345. package/cli.js +97 -56
  346. package/package.json +1 -1
  347. /package/app/.next/static/{eVGIe8IcaLlfBhBZM9a5U → I7Z75b-mEq-yr9pvEanD-}/_buildManifest.js +0 -0
  348. /package/app/.next/static/{eVGIe8IcaLlfBhBZM9a5U → I7Z75b-mEq-yr9pvEanD-}/_ssgManifest.js +0 -0
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ exports.getBooleanOption = (options, key) => {
4
+ let value = false;
5
+ if (key in options && typeof (value = options[key]) !== 'boolean') {
6
+ throw new TypeError(`Expected the "${key}" option to be a boolean`);
7
+ }
8
+ return value;
9
+ };
10
+
11
+ exports.cppdb = Symbol();
12
+ exports.inspect = Symbol.for('nodejs.util.inspect.custom');
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "better-sqlite3",
3
+ "version": "12.6.2",
4
+ "description": "The fastest and simplest library for SQLite in Node.js.",
5
+ "homepage": "http://github.com/WiseLibs/better-sqlite3",
6
+ "author": "Joshua Wise <joshuathomaswise@gmail.com>",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git://github.com/WiseLibs/better-sqlite3.git"
10
+ },
11
+ "main": "lib/index.js",
12
+ "files": [
13
+ "binding.gyp",
14
+ "src/**/*.[ch]pp",
15
+ "lib/**",
16
+ "deps/**"
17
+ ],
18
+ "engines": {
19
+ "node": "20.x || 22.x || 23.x || 24.x || 25.x"
20
+ },
21
+ "dependencies": {
22
+ "bindings": "^1.5.0",
23
+ "prebuild-install": "^7.1.1"
24
+ },
25
+ "overrides": {
26
+ "prebuild": {
27
+ "node-abi": "^4.25.0"
28
+ }
29
+ },
30
+ "devDependencies": {
31
+ "chai": "^4.3.8",
32
+ "cli-color": "^2.0.3",
33
+ "fs-extra": "^11.1.1",
34
+ "mocha": "^10.2.0",
35
+ "nodemark": "^0.3.0",
36
+ "prebuild": "^13.0.1",
37
+ "sqlite": "^5.0.1",
38
+ "sqlite3": "^5.1.6"
39
+ },
40
+ "scripts": {
41
+ "install": "prebuild-install || node-gyp rebuild --release",
42
+ "build-release": "node-gyp rebuild --release",
43
+ "build-debug": "node-gyp rebuild --debug",
44
+ "test": "mocha --exit --slow=75 --timeout=5000",
45
+ "benchmark": "node benchmark",
46
+ "download": "bash ./deps/download.sh"
47
+ },
48
+ "license": "MIT",
49
+ "keywords": [
50
+ "sql",
51
+ "sqlite",
52
+ "sqlite3",
53
+ "transactions",
54
+ "user-defined functions",
55
+ "aggregate functions",
56
+ "window functions",
57
+ "database"
58
+ ]
59
+ }
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Module dependencies.
3
+ */
4
+
5
+ var fs = require('fs'),
6
+ path = require('path'),
7
+ fileURLToPath = require('file-uri-to-path'),
8
+ join = path.join,
9
+ dirname = path.dirname,
10
+ exists =
11
+ (fs.accessSync &&
12
+ function(path) {
13
+ try {
14
+ fs.accessSync(path);
15
+ } catch (e) {
16
+ return false;
17
+ }
18
+ return true;
19
+ }) ||
20
+ fs.existsSync ||
21
+ path.existsSync,
22
+ defaults = {
23
+ arrow: process.env.NODE_BINDINGS_ARROW || ' → ',
24
+ compiled: process.env.NODE_BINDINGS_COMPILED_DIR || 'compiled',
25
+ platform: process.platform,
26
+ arch: process.arch,
27
+ nodePreGyp:
28
+ 'node-v' +
29
+ process.versions.modules +
30
+ '-' +
31
+ process.platform +
32
+ '-' +
33
+ process.arch,
34
+ version: process.versions.node,
35
+ bindings: 'bindings.node',
36
+ try: [
37
+ // node-gyp's linked version in the "build" dir
38
+ ['module_root', 'build', 'bindings'],
39
+ // node-waf and gyp_addon (a.k.a node-gyp)
40
+ ['module_root', 'build', 'Debug', 'bindings'],
41
+ ['module_root', 'build', 'Release', 'bindings'],
42
+ // Debug files, for development (legacy behavior, remove for node v0.9)
43
+ ['module_root', 'out', 'Debug', 'bindings'],
44
+ ['module_root', 'Debug', 'bindings'],
45
+ // Release files, but manually compiled (legacy behavior, remove for node v0.9)
46
+ ['module_root', 'out', 'Release', 'bindings'],
47
+ ['module_root', 'Release', 'bindings'],
48
+ // Legacy from node-waf, node <= 0.4.x
49
+ ['module_root', 'build', 'default', 'bindings'],
50
+ // Production "Release" buildtype binary (meh...)
51
+ ['module_root', 'compiled', 'version', 'platform', 'arch', 'bindings'],
52
+ // node-qbs builds
53
+ ['module_root', 'addon-build', 'release', 'install-root', 'bindings'],
54
+ ['module_root', 'addon-build', 'debug', 'install-root', 'bindings'],
55
+ ['module_root', 'addon-build', 'default', 'install-root', 'bindings'],
56
+ // node-pre-gyp path ./lib/binding/{node_abi}-{platform}-{arch}
57
+ ['module_root', 'lib', 'binding', 'nodePreGyp', 'bindings']
58
+ ]
59
+ };
60
+
61
+ /**
62
+ * The main `bindings()` function loads the compiled bindings for a given module.
63
+ * It uses V8's Error API to determine the parent filename that this function is
64
+ * being invoked from, which is then used to find the root directory.
65
+ */
66
+
67
+ function bindings(opts) {
68
+ // Argument surgery
69
+ if (typeof opts == 'string') {
70
+ opts = { bindings: opts };
71
+ } else if (!opts) {
72
+ opts = {};
73
+ }
74
+
75
+ // maps `defaults` onto `opts` object
76
+ Object.keys(defaults).map(function(i) {
77
+ if (!(i in opts)) opts[i] = defaults[i];
78
+ });
79
+
80
+ // Get the module root
81
+ if (!opts.module_root) {
82
+ opts.module_root = exports.getRoot(exports.getFileName());
83
+ }
84
+
85
+ // Ensure the given bindings name ends with .node
86
+ if (path.extname(opts.bindings) != '.node') {
87
+ opts.bindings += '.node';
88
+ }
89
+
90
+ // https://github.com/webpack/webpack/issues/4175#issuecomment-342931035
91
+ var requireFunc =
92
+ typeof __webpack_require__ === 'function'
93
+ ? __non_webpack_require__
94
+ : require;
95
+
96
+ var tries = [],
97
+ i = 0,
98
+ l = opts.try.length,
99
+ n,
100
+ b,
101
+ err;
102
+
103
+ for (; i < l; i++) {
104
+ n = join.apply(
105
+ null,
106
+ opts.try[i].map(function(p) {
107
+ return opts[p] || p;
108
+ })
109
+ );
110
+ tries.push(n);
111
+ try {
112
+ b = opts.path ? requireFunc.resolve(n) : requireFunc(n);
113
+ if (!opts.path) {
114
+ b.path = n;
115
+ }
116
+ return b;
117
+ } catch (e) {
118
+ if (e.code !== 'MODULE_NOT_FOUND' &&
119
+ e.code !== 'QUALIFIED_PATH_RESOLUTION_FAILED' &&
120
+ !/not find/i.test(e.message)) {
121
+ throw e;
122
+ }
123
+ }
124
+ }
125
+
126
+ err = new Error(
127
+ 'Could not locate the bindings file. Tried:\n' +
128
+ tries
129
+ .map(function(a) {
130
+ return opts.arrow + a;
131
+ })
132
+ .join('\n')
133
+ );
134
+ err.tries = tries;
135
+ throw err;
136
+ }
137
+ module.exports = exports = bindings;
138
+
139
+ /**
140
+ * Gets the filename of the JavaScript file that invokes this function.
141
+ * Used to help find the root directory of a module.
142
+ * Optionally accepts an filename argument to skip when searching for the invoking filename
143
+ */
144
+
145
+ exports.getFileName = function getFileName(calling_file) {
146
+ var origPST = Error.prepareStackTrace,
147
+ origSTL = Error.stackTraceLimit,
148
+ dummy = {},
149
+ fileName;
150
+
151
+ Error.stackTraceLimit = 10;
152
+
153
+ Error.prepareStackTrace = function(e, st) {
154
+ for (var i = 0, l = st.length; i < l; i++) {
155
+ fileName = st[i].getFileName();
156
+ if (fileName !== __filename) {
157
+ if (calling_file) {
158
+ if (fileName !== calling_file) {
159
+ return;
160
+ }
161
+ } else {
162
+ return;
163
+ }
164
+ }
165
+ }
166
+ };
167
+
168
+ // run the 'prepareStackTrace' function above
169
+ Error.captureStackTrace(dummy);
170
+ dummy.stack;
171
+
172
+ // cleanup
173
+ Error.prepareStackTrace = origPST;
174
+ Error.stackTraceLimit = origSTL;
175
+
176
+ // handle filename that starts with "file://"
177
+ var fileSchema = 'file://';
178
+ if (fileName.indexOf(fileSchema) === 0) {
179
+ fileName = fileURLToPath(fileName);
180
+ }
181
+
182
+ return fileName;
183
+ };
184
+
185
+ /**
186
+ * Gets the root directory of a module, given an arbitrary filename
187
+ * somewhere in the module tree. The "root directory" is the directory
188
+ * containing the `package.json` file.
189
+ *
190
+ * In: /home/nate/node-native-module/lib/index.js
191
+ * Out: /home/nate/node-native-module
192
+ */
193
+
194
+ exports.getRoot = function getRoot(file) {
195
+ var dir = dirname(file),
196
+ prev;
197
+ while (true) {
198
+ if (dir === '.') {
199
+ // Avoids an infinite loop in rare cases, like the REPL
200
+ dir = process.cwd();
201
+ }
202
+ if (
203
+ exists(join(dir, 'package.json')) ||
204
+ exists(join(dir, 'node_modules'))
205
+ ) {
206
+ // Found the 'package.json' file or 'node_modules' dir; we're done
207
+ return dir;
208
+ }
209
+ if (prev === dir) {
210
+ // Got to the top
211
+ throw new Error(
212
+ 'Could not find module root given file: "' +
213
+ file +
214
+ '". Do you have a `package.json` file? '
215
+ );
216
+ }
217
+ // Try the parent dir next
218
+ prev = dir;
219
+ dir = join(dir, '..');
220
+ }
221
+ };
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "bindings",
3
+ "description": "Helper module for loading your native module's .node file",
4
+ "keywords": [
5
+ "native",
6
+ "addon",
7
+ "bindings",
8
+ "gyp",
9
+ "waf",
10
+ "c",
11
+ "c++"
12
+ ],
13
+ "version": "1.5.0",
14
+ "author": "Nathan Rajlich <nathan@tootallnate.net> (http://tootallnate.net)",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git://github.com/TooTallNate/node-bindings.git"
18
+ },
19
+ "main": "./bindings.js",
20
+ "bugs": {
21
+ "url": "https://github.com/TooTallNate/node-bindings/issues"
22
+ },
23
+ "homepage": "https://github.com/TooTallNate/node-bindings",
24
+ "license": "MIT",
25
+ "dependencies": {
26
+ "file-uri-to-path": "1.0.0"
27
+ }
28
+ }
@@ -0,0 +1,66 @@
1
+
2
+ /**
3
+ * Module dependencies.
4
+ */
5
+
6
+ var sep = require('path').sep || '/';
7
+
8
+ /**
9
+ * Module exports.
10
+ */
11
+
12
+ module.exports = fileUriToPath;
13
+
14
+ /**
15
+ * File URI to Path function.
16
+ *
17
+ * @param {String} uri
18
+ * @return {String} path
19
+ * @api public
20
+ */
21
+
22
+ function fileUriToPath (uri) {
23
+ if ('string' != typeof uri ||
24
+ uri.length <= 7 ||
25
+ 'file://' != uri.substring(0, 7)) {
26
+ throw new TypeError('must pass in a file:// URI to convert to a file path');
27
+ }
28
+
29
+ var rest = decodeURI(uri.substring(7));
30
+ var firstSlash = rest.indexOf('/');
31
+ var host = rest.substring(0, firstSlash);
32
+ var path = rest.substring(firstSlash + 1);
33
+
34
+ // 2. Scheme Definition
35
+ // As a special case, <host> can be the string "localhost" or the empty
36
+ // string; this is interpreted as "the machine from which the URL is
37
+ // being interpreted".
38
+ if ('localhost' == host) host = '';
39
+
40
+ if (host) {
41
+ host = sep + sep + host;
42
+ }
43
+
44
+ // 3.2 Drives, drive letters, mount points, file system root
45
+ // Drive letters are mapped into the top of a file URI in various ways,
46
+ // depending on the implementation; some applications substitute
47
+ // vertical bar ("|") for the colon after the drive letter, yielding
48
+ // "file:///c|/tmp/test.txt". In some cases, the colon is left
49
+ // unchanged, as in "file:///c:/tmp/test.txt". In other cases, the
50
+ // colon is simply omitted, as in "file:///c/tmp/test.txt".
51
+ path = path.replace(/^(.+)\|/, '$1:');
52
+
53
+ // for Windows, we need to invert the path separators from what a URI uses
54
+ if (sep == '\\') {
55
+ path = path.replace(/\//g, '\\');
56
+ }
57
+
58
+ if (/^.+\:/.test(path)) {
59
+ // has Windows drive at beginning of path
60
+ } else {
61
+ // unix path…
62
+ path = sep + path;
63
+ }
64
+
65
+ return host + path;
66
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "file-uri-to-path",
3
+ "version": "1.0.0",
4
+ "description": "Convert a file: URI to a file path",
5
+ "main": "index.js",
6
+ "types": "index.d.ts",
7
+ "directories": {
8
+ "test": "test"
9
+ },
10
+ "scripts": {
11
+ "test": "mocha --reporter spec"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git://github.com/TooTallNate/file-uri-to-path.git"
16
+ },
17
+ "keywords": [
18
+ "file",
19
+ "uri",
20
+ "convert",
21
+ "path"
22
+ ],
23
+ "author": "Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)",
24
+ "license": "MIT",
25
+ "bugs": {
26
+ "url": "https://github.com/TooTallNate/file-uri-to-path/issues"
27
+ },
28
+ "homepage": "https://github.com/TooTallNate/file-uri-to-path",
29
+ "devDependencies": {
30
+ "mocha": "3"
31
+ }
32
+ }
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router-app",
3
- "version": "0.3.48",
3
+ "version": "0.3.49",
4
4
  "description": "9Router web dashboard",
5
5
  "private": true,
6
6
  "scripts": {
@@ -15,6 +15,7 @@
15
15
  "@monaco-editor/react": "^4.7.0",
16
16
  "@xyflow/react": "^12.10.1",
17
17
  "bcryptjs": "^3.0.3",
18
+ "better-sqlite3": "^12.6.2",
18
19
  "confbox": "^0.2.4",
19
20
  "express": "^5.2.1",
20
21
  "fs": "^0.0.1-security",
@@ -16,6 +16,14 @@ const MITM_PORT = 443;
16
16
  const MITM_WIN_NODE_PORT = 8443;
17
17
  const PID_FILE = path.join(MITM_DIR, ".mitm.pid");
18
18
 
19
+ const MITM_MAX_RESTARTS = 5;
20
+ const MITM_RESTART_DELAYS_MS = [5000, 10000, 20000, 30000, 60000];
21
+ const MITM_RESTART_RESET_MS = 60000;
22
+
23
+ let mitmRestartCount = 0;
24
+ let mitmLastStartTime = 0;
25
+ let mitmIsRestarting = false;
26
+
19
27
  function resolveServerPath() {
20
28
  if (process.env.MITM_SERVER_PATH) return process.env.MITM_SERVER_PATH;
21
29
  const sibling = path.join(__dirname, "server.js");
@@ -273,6 +281,50 @@ async function getMitmStatus() {
273
281
  return { running, pid, certExists, dnsStatus };
274
282
  }
275
283
 
284
+ async function scheduleMitmRestart(apiKey) {
285
+ if (mitmIsRestarting) return;
286
+
287
+ const aliveMs = Date.now() - mitmLastStartTime;
288
+ if (aliveMs >= MITM_RESTART_RESET_MS) mitmRestartCount = 0;
289
+
290
+ if (mitmRestartCount >= MITM_MAX_RESTARTS) {
291
+ console.error("[MITM] Max restart attempts reached. Giving up.");
292
+ return;
293
+ }
294
+
295
+ const attempt = mitmRestartCount;
296
+ const delay = MITM_RESTART_DELAYS_MS[Math.min(attempt, MITM_RESTART_DELAYS_MS.length - 1)];
297
+ mitmRestartCount++;
298
+ mitmIsRestarting = true;
299
+
300
+ console.log(`[MITM] Restarting in ${delay / 1000}s... (${mitmRestartCount}/${MITM_MAX_RESTARTS})`);
301
+ await new Promise((r) => setTimeout(r, delay));
302
+
303
+ try {
304
+ const settings = _getSettings ? await _getSettings() : null;
305
+ if (settings && !settings.mitmEnabled) {
306
+ console.log("[MITM] MITM disabled, skipping restart");
307
+ mitmIsRestarting = false;
308
+ return;
309
+ }
310
+ const password = getCachedPassword() || await loadEncryptedPassword();
311
+ if (!password && !IS_WIN) {
312
+ console.error("[MITM] No cached password, cannot auto-restart");
313
+ mitmIsRestarting = false;
314
+ return;
315
+ }
316
+ await startServer(apiKey, password);
317
+ console.log("[MITM] Restarted successfully");
318
+ mitmRestartCount = 0;
319
+ mitmIsRestarting = false;
320
+ } catch (err) {
321
+ console.error(`[MITM] Restart attempt ${mitmRestartCount}/${MITM_MAX_RESTARTS} failed:`, err.message);
322
+ mitmIsRestarting = false;
323
+ // Schedule next retry
324
+ scheduleMitmRestart(apiKey);
325
+ }
326
+ }
327
+
276
328
  /**
277
329
  * Start MITM server only (cert + server, no DNS)
278
330
  */
@@ -378,6 +430,7 @@ async function startServer(apiKey, sudoPassword) {
378
430
  if (!IS_WIN && serverProcess) {
379
431
  serverPid = serverProcess.pid;
380
432
  fs.writeFileSync(PID_FILE, String(serverPid));
433
+ mitmLastStartTime = Date.now();
381
434
  }
382
435
 
383
436
  let startError = null;
@@ -397,6 +450,8 @@ async function startServer(apiKey, sudoPassword) {
397
450
  serverProcess = null;
398
451
  serverPid = null;
399
452
  try { fs.unlinkSync(PID_FILE); } catch { /* ignore */ }
453
+ // Auto-restart on unexpected exit
454
+ if (code !== 0 && !mitmIsRestarting) scheduleMitmRestart(apiKey);
400
455
  });
401
456
  }
402
457
 
@@ -425,6 +480,9 @@ async function startServer(apiKey, sudoPassword) {
425
480
  * Stop MITM server — removes ALL tool DNS entries first, then kills server
426
481
  */
427
482
  async function stopServer(sudoPassword) {
483
+ // Prevent auto-restart from triggering on intentional stop
484
+ mitmIsRestarting = true;
485
+ mitmRestartCount = 0;
428
486
  console.log("[MITM] Stopping server...");
429
487
 
430
488
  // Kill server process
@@ -476,6 +534,7 @@ async function stopServer(sudoPassword) {
476
534
 
477
535
  try { fs.unlinkSync(PID_FILE); } catch { /* ignore */ }
478
536
  await saveMitmSettings(false, null);
537
+ mitmIsRestarting = false;
479
538
 
480
539
  return { running: false, pid: null };
481
540
  }
@@ -85,7 +85,7 @@ const ANTIGRAVITY_URL_PATTERNS = [":generateContent", ":streamGenerateContent"];
85
85
  // Copilot: OpenAI-compatible + Anthropic endpoints
86
86
  const COPILOT_URL_PATTERNS = ["/chat/completions", "/v1/messages", "/responses"];
87
87
 
88
- const LOG_DIR = path.join(__dirname, "../../logs/mitm");
88
+ const LOG_DIR = path.join(DATA_DIR, "logs", "mitm");
89
89
  if (ENABLE_FILE_LOG && !fs.existsSync(LOG_DIR)) fs.mkdirSync(LOG_DIR, { recursive: true });
90
90
 
91
91
  function saveRequestLog(url, bodyBuffer) {