9router 0.4.26 → 0.4.28

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 (778) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +5 -4
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/required-server-files.json +4 -1
  5. package/app/.next/routes-manifest.json +6 -0
  6. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  7. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  13. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  16. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  19. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  22. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  25. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  28. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  31. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  34. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  37. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  40. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +4 -2
  43. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  46. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  49. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  52. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  55. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  58. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  61. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  64. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/_global-error/page.js +2 -2
  67. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/_global-error.html +1 -1
  69. package/app/.next/server/app/_global-error.rsc +1 -1
  70. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  71. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  72. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  73. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  74. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  75. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  76. package/app/.next/server/app/_not-found/page.js +2 -2
  77. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  78. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/_not-found.html +1 -1
  80. package/app/.next/server/app/_not-found.rsc +4 -4
  81. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  82. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  83. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  84. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  85. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  86. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  87. package/app/.next/server/app/api/auth/login/route.js +1 -1
  88. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  89. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  90. package/app/.next/server/app/api/cli-tools/all-statuses/route.js +2 -2
  91. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  92. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  93. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  94. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  95. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  96. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  97. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  98. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  99. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  100. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  101. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  102. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  103. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  104. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  105. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  106. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  107. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  108. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  109. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  110. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  112. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  114. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  115. package/app/.next/server/app/api/combos/route.js +1 -1
  116. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/health/route.js +1 -1
  118. package/app/.next/server/app/api/init/route.js +1 -1
  119. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  120. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  121. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/keys/route.js +1 -1
  123. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/locale/route.js +1 -1
  125. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  126. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  128. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  129. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  130. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  132. package/app/.next/server/app/api/models/alias/route.js +1 -1
  133. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/models/availability/route.js +1 -1
  135. package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/models/custom/route.js +1 -1
  137. package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  139. package/app/.next/server/app/api/models/disabled/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/models/route.js +1 -1
  141. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  142. package/app/.next/server/app/api/models/test/route.js +1 -1
  143. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  145. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  147. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  148. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  150. package/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  152. package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  153. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  154. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  155. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  157. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  158. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  159. package/app/.next/server/app/api/pricing/route.js +1 -1
  160. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  161. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  162. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  164. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  166. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  167. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  168. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  169. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  170. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  171. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  172. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  173. package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/providers/client/route.js +1 -1
  175. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  176. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  177. package/app/.next/server/app/api/providers/route.js +1 -1
  178. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  180. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  181. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  183. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  184. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  185. package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  186. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  187. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  189. package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
  190. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  191. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/settings/database/route.js +1 -1
  193. package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  195. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  196. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/settings/route.js +1 -1
  198. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  199. package/app/.next/server/app/api/shutdown/route.js +1 -1
  200. package/app/.next/server/app/api/tags/route.js +1 -1
  201. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  202. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  203. package/app/.next/server/app/api/translator/load/route.js +1 -1
  204. package/app/.next/server/app/api/translator/save/route.js +1 -1
  205. package/app/.next/server/app/api/translator/send/route.js +1 -1
  206. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  207. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  208. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  210. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  211. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  212. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  214. package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
  215. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +2 -2
  216. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  217. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  218. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  219. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  220. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
  221. package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  222. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +2 -2
  223. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  224. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  225. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  226. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  227. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  228. package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/usage/history/route.js +1 -1
  230. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  232. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  234. package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  236. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  237. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  238. package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  239. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  240. package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  241. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  242. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  243. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  244. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  246. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  247. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
  248. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  249. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  250. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  251. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  252. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  253. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  254. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  255. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  256. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  258. package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  259. package/app/.next/server/app/api/v1/models/info/route.js +1 -1
  260. package/app/.next/server/app/api/v1/models/route.js +1 -1
  261. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  262. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  263. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  264. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  265. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  266. package/app/.next/server/app/api/v1/route.js +1 -1
  267. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  268. package/app/.next/server/app/api/v1/search/route.js +1 -1
  269. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  270. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  271. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  272. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  273. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  274. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  275. package/app/.next/server/app/api/version/route.js +1 -1
  276. package/app/.next/server/app/api/version/shutdown/route.js +1 -0
  277. package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -0
  278. package/app/.next/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -0
  279. package/app/.next/server/app/api/version/update/route.js +1 -1
  280. package/app/.next/server/app/callback/page.js +2 -2
  281. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  282. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  283. package/app/.next/server/app/callback.html +1 -1
  284. package/app/.next/server/app/callback.rsc +4 -4
  285. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  286. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  287. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  288. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  289. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  290. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  291. package/app/.next/server/app/dashboard/basic-chat.html +1 -1
  292. package/app/.next/server/app/dashboard/basic-chat.rsc +6 -6
  293. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  294. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  295. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  296. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  297. package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  298. package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  299. package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  300. package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  301. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  302. package/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
  303. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  304. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  305. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  306. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  307. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  308. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  309. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  310. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  311. package/app/.next/server/app/dashboard/combos.html +1 -1
  312. package/app/.next/server/app/dashboard/combos.rsc +6 -6
  313. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  314. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  315. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  316. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  317. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  318. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  319. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  320. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  321. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  322. package/app/.next/server/app/dashboard/endpoint.rsc +6 -6
  323. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  324. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  325. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  326. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  327. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  328. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  329. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  330. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  331. package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
  332. package/app/.next/server/app/dashboard/media-providers/web.rsc +6 -6
  333. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  334. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  335. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  336. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  337. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  338. package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  339. package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  340. package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  341. package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  342. package/app/.next/server/app/dashboard/mitm.html +1 -1
  343. package/app/.next/server/app/dashboard/mitm.rsc +6 -6
  344. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  345. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  346. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  347. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  348. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  349. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  350. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  351. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  352. package/app/.next/server/app/dashboard/profile.html +1 -1
  353. package/app/.next/server/app/dashboard/profile.rsc +6 -6
  354. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  355. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  356. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  357. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  358. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  359. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  360. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  361. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  362. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  363. package/app/.next/server/app/dashboard/providers/new.rsc +6 -6
  364. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  365. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  366. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  367. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  368. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  369. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  370. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  371. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  372. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  373. package/app/.next/server/app/dashboard/providers.html +1 -1
  374. package/app/.next/server/app/dashboard/providers.rsc +6 -6
  375. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  376. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  377. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  378. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  379. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  380. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  381. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  382. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  383. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  384. package/app/.next/server/app/dashboard/proxy-pools.rsc +6 -6
  385. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  386. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  387. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  388. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  389. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  390. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  391. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  392. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  393. package/app/.next/server/app/dashboard/quota.html +2 -2
  394. package/app/.next/server/app/dashboard/quota.rsc +7 -7
  395. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  396. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  397. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  398. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  399. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  400. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  401. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  402. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  403. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  404. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  405. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  406. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  407. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  408. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  409. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  410. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  411. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  412. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  413. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  414. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  415. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  416. package/app/.next/server/app/dashboard/skills.html +1 -1
  417. package/app/.next/server/app/dashboard/skills.rsc +6 -6
  418. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  419. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  420. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  421. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  422. package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  423. package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  424. package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  425. package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  426. package/app/.next/server/app/dashboard/translator.html +1 -1
  427. package/app/.next/server/app/dashboard/translator.rsc +6 -6
  428. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  429. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  430. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  431. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  432. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  433. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  434. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  435. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  436. package/app/.next/server/app/dashboard/usage.html +1 -1
  437. package/app/.next/server/app/dashboard/usage.rsc +6 -6
  438. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  439. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  440. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  441. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  442. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  443. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  444. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  445. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  446. package/app/.next/server/app/dashboard.html +1 -1
  447. package/app/.next/server/app/dashboard.rsc +6 -6
  448. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  449. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  450. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  451. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -6
  452. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  453. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
  454. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  455. package/app/.next/server/app/favicon.ico/route.js +1 -1
  456. package/app/.next/server/app/index.html +1 -1
  457. package/app/.next/server/app/index.rsc +4 -4
  458. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  459. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  460. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  461. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  462. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  463. package/app/.next/server/app/landing/page.js +2 -2
  464. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  465. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  466. package/app/.next/server/app/landing.html +1 -1
  467. package/app/.next/server/app/landing.rsc +5 -5
  468. package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
  469. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  470. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  471. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  472. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  473. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  474. package/app/.next/server/app/login/page.js +2 -2
  475. package/app/.next/server/app/login/page.js.nft.json +1 -1
  476. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  477. package/app/.next/server/app/login.html +1 -1
  478. package/app/.next/server/app/login.rsc +5 -5
  479. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  480. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  481. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  482. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  483. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  484. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  485. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  486. package/app/.next/server/app/page.js +2 -2
  487. package/app/.next/server/app/page.js.nft.json +1 -1
  488. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  489. package/app/.next/server/app-paths-manifest.json +5 -4
  490. package/app/.next/server/chunks/1444.js +9 -0
  491. package/app/.next/server/chunks/1574.js +2 -2
  492. package/app/.next/server/chunks/2049.js +1 -1
  493. package/app/.next/server/chunks/3774.js +3 -3
  494. package/app/.next/server/chunks/450.js +1 -1
  495. package/app/.next/server/chunks/4892.js +2 -2
  496. package/app/.next/server/chunks/499.js +9 -0
  497. package/app/.next/server/chunks/6263.js +1 -1
  498. package/app/.next/server/chunks/6283.js +1 -1
  499. package/app/.next/server/chunks/6502.js +2 -2
  500. package/app/.next/server/chunks/6890.js +1 -1
  501. package/app/.next/server/chunks/7061.js +2 -2
  502. package/app/.next/server/chunks/7292.js +9 -0
  503. package/app/.next/server/chunks/7810.js +1 -1
  504. package/app/.next/server/chunks/8035.js +1 -1
  505. package/app/.next/server/chunks/8367.js +2 -2
  506. package/app/.next/server/chunks/8495.js +9 -0
  507. package/app/.next/server/middleware-build-manifest.js +1 -1
  508. package/app/.next/server/middleware.js +3 -3
  509. package/app/.next/server/pages/404.html +1 -1
  510. package/app/.next/server/pages/500.html +1 -1
  511. package/app/.next/static/chunks/{1939-5f1c000b260c0698.js → 1939-d9b80a9e484ae21d.js} +1 -1
  512. package/app/.next/static/chunks/{4156-773921135dfe2c75.js → 4156-3a7b60c65001de9a.js} +3 -3
  513. package/app/.next/static/chunks/505-34993b83fbc3f56a.js +1 -0
  514. package/app/.next/static/chunks/8035-b43a2fdebf8069b1.js +3 -0
  515. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-7890b74e481f9d92.js → page-29ce6662637d64e4.js} +1 -1
  516. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-597b5dde6cf827f1.js +3 -0
  517. package/app/.next/static/chunks/app/_global-error/page-5ea305bd1a1dc348.js +1 -0
  518. package/app/.next/static/chunks/app/api/auth/login/route-5ea305bd1a1dc348.js +1 -0
  519. package/app/.next/static/chunks/app/api/auth/logout/route-5ea305bd1a1dc348.js +1 -0
  520. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-5ea305bd1a1dc348.js +1 -0
  521. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-5ea305bd1a1dc348.js +1 -0
  522. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-5ea305bd1a1dc348.js +1 -0
  523. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-5ea305bd1a1dc348.js +1 -0
  524. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-5ea305bd1a1dc348.js +1 -0
  525. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-5ea305bd1a1dc348.js +1 -0
  526. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-5ea305bd1a1dc348.js +1 -0
  527. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-5ea305bd1a1dc348.js +1 -0
  528. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-5ea305bd1a1dc348.js +1 -0
  529. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-5ea305bd1a1dc348.js +1 -0
  530. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-5ea305bd1a1dc348.js +1 -0
  531. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-5ea305bd1a1dc348.js +1 -0
  532. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-5ea305bd1a1dc348.js +1 -0
  533. package/app/.next/static/chunks/app/api/cloud/auth/route-5ea305bd1a1dc348.js +1 -0
  534. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-5ea305bd1a1dc348.js +1 -0
  535. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-5ea305bd1a1dc348.js +1 -0
  536. package/app/.next/static/chunks/app/api/cloud/models/alias/route-5ea305bd1a1dc348.js +1 -0
  537. package/app/.next/static/chunks/app/api/combos/[id]/route-5ea305bd1a1dc348.js +1 -0
  538. package/app/.next/static/chunks/app/api/combos/route-5ea305bd1a1dc348.js +1 -0
  539. package/app/.next/static/chunks/app/api/health/route-5ea305bd1a1dc348.js +1 -0
  540. package/app/.next/static/chunks/app/api/init/route-5ea305bd1a1dc348.js +1 -0
  541. package/app/.next/static/chunks/app/api/keys/[id]/route-5ea305bd1a1dc348.js +1 -0
  542. package/app/.next/static/chunks/app/api/keys/route-5ea305bd1a1dc348.js +1 -0
  543. package/app/.next/static/chunks/app/api/locale/route-5ea305bd1a1dc348.js +1 -0
  544. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-5ea305bd1a1dc348.js +1 -0
  545. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-5ea305bd1a1dc348.js +1 -0
  546. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-5ea305bd1a1dc348.js +1 -0
  547. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-5ea305bd1a1dc348.js +1 -0
  548. package/app/.next/static/chunks/app/api/models/alias/route-5ea305bd1a1dc348.js +1 -0
  549. package/app/.next/static/chunks/app/api/models/availability/route-5ea305bd1a1dc348.js +1 -0
  550. package/app/.next/static/chunks/app/api/models/custom/route-5ea305bd1a1dc348.js +1 -0
  551. package/app/.next/static/chunks/app/api/models/disabled/route-5ea305bd1a1dc348.js +1 -0
  552. package/app/.next/static/chunks/app/api/models/route-5ea305bd1a1dc348.js +1 -0
  553. package/app/.next/static/chunks/app/api/models/test/route-5ea305bd1a1dc348.js +1 -0
  554. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-5ea305bd1a1dc348.js +1 -0
  555. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-5ea305bd1a1dc348.js +1 -0
  556. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-5ea305bd1a1dc348.js +1 -0
  557. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-5ea305bd1a1dc348.js +1 -0
  558. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-5ea305bd1a1dc348.js +1 -0
  559. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-5ea305bd1a1dc348.js +1 -0
  560. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-5ea305bd1a1dc348.js +1 -0
  561. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-5ea305bd1a1dc348.js +1 -0
  562. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-5ea305bd1a1dc348.js +1 -0
  563. package/app/.next/static/chunks/app/api/pricing/route-5ea305bd1a1dc348.js +1 -0
  564. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-5ea305bd1a1dc348.js +1 -0
  565. package/app/.next/static/chunks/app/api/provider-nodes/route-5ea305bd1a1dc348.js +1 -0
  566. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-5ea305bd1a1dc348.js +1 -0
  567. package/app/.next/static/chunks/app/api/providers/[id]/models/route-5ea305bd1a1dc348.js +1 -0
  568. package/app/.next/static/chunks/app/api/providers/[id]/route-5ea305bd1a1dc348.js +1 -0
  569. package/app/.next/static/chunks/app/api/providers/[id]/test/route-5ea305bd1a1dc348.js +1 -0
  570. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-5ea305bd1a1dc348.js +1 -0
  571. package/app/.next/static/chunks/app/api/providers/client/route-5ea305bd1a1dc348.js +1 -0
  572. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-5ea305bd1a1dc348.js +1 -0
  573. package/app/.next/static/chunks/app/api/providers/route-5ea305bd1a1dc348.js +1 -0
  574. package/app/.next/static/chunks/app/api/providers/suggested-models/route-5ea305bd1a1dc348.js +1 -0
  575. package/app/.next/static/chunks/app/api/providers/test-batch/route-5ea305bd1a1dc348.js +1 -0
  576. package/app/.next/static/chunks/app/api/providers/validate/route-5ea305bd1a1dc348.js +1 -0
  577. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-5ea305bd1a1dc348.js +1 -0
  578. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-5ea305bd1a1dc348.js +1 -0
  579. package/app/.next/static/chunks/app/api/proxy-pools/route-5ea305bd1a1dc348.js +1 -0
  580. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-5ea305bd1a1dc348.js +1 -0
  581. package/app/.next/static/chunks/app/api/settings/database/route-5ea305bd1a1dc348.js +1 -0
  582. package/app/.next/static/chunks/app/api/settings/proxy-test/route-5ea305bd1a1dc348.js +1 -0
  583. package/app/.next/static/chunks/app/api/settings/require-login/route-5ea305bd1a1dc348.js +1 -0
  584. package/app/.next/static/chunks/app/api/settings/route-5ea305bd1a1dc348.js +1 -0
  585. package/app/.next/static/chunks/app/api/shutdown/route-5ea305bd1a1dc348.js +1 -0
  586. package/app/.next/static/chunks/app/api/tags/route-5ea305bd1a1dc348.js +1 -0
  587. package/app/.next/static/chunks/app/api/translator/console-logs/route-5ea305bd1a1dc348.js +1 -0
  588. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-5ea305bd1a1dc348.js +1 -0
  589. package/app/.next/static/chunks/app/api/translator/load/route-5ea305bd1a1dc348.js +1 -0
  590. package/app/.next/static/chunks/app/api/translator/save/route-5ea305bd1a1dc348.js +1 -0
  591. package/app/.next/static/chunks/app/api/translator/send/route-5ea305bd1a1dc348.js +1 -0
  592. package/app/.next/static/chunks/app/api/translator/translate/route-5ea305bd1a1dc348.js +1 -0
  593. package/app/.next/static/chunks/app/api/tunnel/disable/route-5ea305bd1a1dc348.js +1 -0
  594. package/app/.next/static/chunks/app/api/tunnel/enable/route-5ea305bd1a1dc348.js +1 -0
  595. package/app/.next/static/chunks/app/api/tunnel/status/route-5ea305bd1a1dc348.js +1 -0
  596. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-5ea305bd1a1dc348.js +1 -0
  597. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-5ea305bd1a1dc348.js +1 -0
  598. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-5ea305bd1a1dc348.js +1 -0
  599. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-5ea305bd1a1dc348.js +1 -0
  600. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-5ea305bd1a1dc348.js +1 -0
  601. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-5ea305bd1a1dc348.js +1 -0
  602. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-5ea305bd1a1dc348.js +1 -0
  603. package/app/.next/static/chunks/app/api/usage/chart/route-5ea305bd1a1dc348.js +1 -0
  604. package/app/.next/static/chunks/app/api/usage/history/route-5ea305bd1a1dc348.js +1 -0
  605. package/app/.next/static/chunks/app/api/usage/providers/route-5ea305bd1a1dc348.js +1 -0
  606. package/app/.next/static/chunks/app/api/usage/request-details/route-5ea305bd1a1dc348.js +1 -0
  607. package/app/.next/static/chunks/app/api/usage/request-logs/route-5ea305bd1a1dc348.js +1 -0
  608. package/app/.next/static/chunks/app/api/usage/stats/route-5ea305bd1a1dc348.js +1 -0
  609. package/app/.next/static/chunks/app/api/usage/stream/route-5ea305bd1a1dc348.js +1 -0
  610. package/app/.next/static/chunks/app/api/v1/api/chat/route-5ea305bd1a1dc348.js +1 -0
  611. package/app/.next/static/chunks/app/api/v1/audio/speech/route-5ea305bd1a1dc348.js +1 -0
  612. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-5ea305bd1a1dc348.js +1 -0
  613. package/app/.next/static/chunks/app/api/v1/audio/voices/route-5ea305bd1a1dc348.js +1 -0
  614. package/app/.next/static/chunks/app/api/v1/chat/completions/route-5ea305bd1a1dc348.js +1 -0
  615. package/app/.next/static/chunks/app/api/v1/embeddings/route-5ea305bd1a1dc348.js +1 -0
  616. package/app/.next/static/chunks/app/api/v1/images/generations/route-5ea305bd1a1dc348.js +1 -0
  617. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-5ea305bd1a1dc348.js +1 -0
  618. package/app/.next/static/chunks/app/api/v1/messages/route-5ea305bd1a1dc348.js +1 -0
  619. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-5ea305bd1a1dc348.js +1 -0
  620. package/app/.next/static/chunks/app/api/v1/models/info/route-5ea305bd1a1dc348.js +1 -0
  621. package/app/.next/static/chunks/app/api/v1/models/route-5ea305bd1a1dc348.js +1 -0
  622. package/app/.next/static/chunks/app/api/v1/responses/compact/route-5ea305bd1a1dc348.js +1 -0
  623. package/app/.next/static/chunks/app/api/v1/responses/route-5ea305bd1a1dc348.js +1 -0
  624. package/app/.next/static/chunks/app/api/v1/route-5ea305bd1a1dc348.js +1 -0
  625. package/app/.next/static/chunks/app/api/v1/search/route-5ea305bd1a1dc348.js +1 -0
  626. package/app/.next/static/chunks/app/api/v1/web/fetch/route-5ea305bd1a1dc348.js +1 -0
  627. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-5ea305bd1a1dc348.js +1 -0
  628. package/app/.next/static/chunks/app/api/v1beta/models/route-5ea305bd1a1dc348.js +1 -0
  629. package/app/.next/static/chunks/app/api/version/route-5ea305bd1a1dc348.js +1 -0
  630. package/app/.next/static/chunks/app/api/version/shutdown/route-5ea305bd1a1dc348.js +1 -0
  631. package/app/.next/static/chunks/app/api/version/update/route-5ea305bd1a1dc348.js +1 -0
  632. package/app/.next/static/chunks/app/landing/{page-34e119eac6b7e1a4.js → page-0084367666bd9046.js} +1 -1
  633. package/app/.next/static/chunks/app/manifest.webmanifest/route-5ea305bd1a1dc348.js +1 -0
  634. package/app/.next/static/chunks/app/page-5ea305bd1a1dc348.js +1 -0
  635. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-5ea305bd1a1dc348.js +1 -0
  636. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-5ea305bd1a1dc348.js +1 -0
  637. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-5ea305bd1a1dc348.js +1 -0
  638. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-5ea305bd1a1dc348.js +1 -0
  639. package/app/.next/static/css/8c050f20c62e3425.css +1 -0
  640. package/app/.next/static/zRbzYKfSwZoKLIJvdVXO-/_buildManifest.js +1 -0
  641. package/app/node_modules/sql.js/dist/sql-wasm.js +185 -0
  642. package/app/node_modules/sql.js/package.json +58 -0
  643. package/app/package.json +2 -2
  644. package/app/server.js +1 -1
  645. package/app/src/lib/db/adapters/bunSqliteAdapter.js +63 -0
  646. package/app/src/lib/db/adapters/nodeSqliteAdapter.js +84 -0
  647. package/app/src/lib/db/adapters/sqljsAdapter.js +4 -3
  648. package/app/src/lib/updater/updater.js +25 -0
  649. package/app/src/mitm/server.js +1 -1
  650. package/cli.js +15 -13
  651. package/hooks/sqliteRuntime.js +14 -27
  652. package/package.json +1 -1
  653. package/app/.next/static/chunks/505-47d92a147b3d6af5.js +0 -1
  654. package/app/.next/static/chunks/8035-c87b74c7e1a7cf78.js +0 -3
  655. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b150970e241c5c7b.js +0 -1
  656. package/app/.next/static/chunks/app/_global-error/page-20fa0affdf8859be.js +0 -1
  657. package/app/.next/static/chunks/app/api/auth/login/route-20fa0affdf8859be.js +0 -1
  658. package/app/.next/static/chunks/app/api/auth/logout/route-20fa0affdf8859be.js +0 -1
  659. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-20fa0affdf8859be.js +0 -1
  660. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-20fa0affdf8859be.js +0 -1
  661. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-20fa0affdf8859be.js +0 -1
  662. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-20fa0affdf8859be.js +0 -1
  663. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-20fa0affdf8859be.js +0 -1
  664. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-20fa0affdf8859be.js +0 -1
  665. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-20fa0affdf8859be.js +0 -1
  666. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-20fa0affdf8859be.js +0 -1
  667. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-20fa0affdf8859be.js +0 -1
  668. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-20fa0affdf8859be.js +0 -1
  669. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-20fa0affdf8859be.js +0 -1
  670. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-20fa0affdf8859be.js +0 -1
  671. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-20fa0affdf8859be.js +0 -1
  672. package/app/.next/static/chunks/app/api/cloud/auth/route-20fa0affdf8859be.js +0 -1
  673. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-20fa0affdf8859be.js +0 -1
  674. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-20fa0affdf8859be.js +0 -1
  675. package/app/.next/static/chunks/app/api/cloud/models/alias/route-20fa0affdf8859be.js +0 -1
  676. package/app/.next/static/chunks/app/api/combos/[id]/route-20fa0affdf8859be.js +0 -1
  677. package/app/.next/static/chunks/app/api/combos/route-20fa0affdf8859be.js +0 -1
  678. package/app/.next/static/chunks/app/api/health/route-20fa0affdf8859be.js +0 -1
  679. package/app/.next/static/chunks/app/api/init/route-20fa0affdf8859be.js +0 -1
  680. package/app/.next/static/chunks/app/api/keys/[id]/route-20fa0affdf8859be.js +0 -1
  681. package/app/.next/static/chunks/app/api/keys/route-20fa0affdf8859be.js +0 -1
  682. package/app/.next/static/chunks/app/api/locale/route-20fa0affdf8859be.js +0 -1
  683. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-20fa0affdf8859be.js +0 -1
  684. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-20fa0affdf8859be.js +0 -1
  685. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-20fa0affdf8859be.js +0 -1
  686. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-20fa0affdf8859be.js +0 -1
  687. package/app/.next/static/chunks/app/api/models/alias/route-20fa0affdf8859be.js +0 -1
  688. package/app/.next/static/chunks/app/api/models/availability/route-20fa0affdf8859be.js +0 -1
  689. package/app/.next/static/chunks/app/api/models/custom/route-20fa0affdf8859be.js +0 -1
  690. package/app/.next/static/chunks/app/api/models/disabled/route-20fa0affdf8859be.js +0 -1
  691. package/app/.next/static/chunks/app/api/models/route-20fa0affdf8859be.js +0 -1
  692. package/app/.next/static/chunks/app/api/models/test/route-20fa0affdf8859be.js +0 -1
  693. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-20fa0affdf8859be.js +0 -1
  694. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-20fa0affdf8859be.js +0 -1
  695. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-20fa0affdf8859be.js +0 -1
  696. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-20fa0affdf8859be.js +0 -1
  697. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-20fa0affdf8859be.js +0 -1
  698. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-20fa0affdf8859be.js +0 -1
  699. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-20fa0affdf8859be.js +0 -1
  700. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-20fa0affdf8859be.js +0 -1
  701. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-20fa0affdf8859be.js +0 -1
  702. package/app/.next/static/chunks/app/api/pricing/route-20fa0affdf8859be.js +0 -1
  703. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-20fa0affdf8859be.js +0 -1
  704. package/app/.next/static/chunks/app/api/provider-nodes/route-20fa0affdf8859be.js +0 -1
  705. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-20fa0affdf8859be.js +0 -1
  706. package/app/.next/static/chunks/app/api/providers/[id]/models/route-20fa0affdf8859be.js +0 -1
  707. package/app/.next/static/chunks/app/api/providers/[id]/route-20fa0affdf8859be.js +0 -1
  708. package/app/.next/static/chunks/app/api/providers/[id]/test/route-20fa0affdf8859be.js +0 -1
  709. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-20fa0affdf8859be.js +0 -1
  710. package/app/.next/static/chunks/app/api/providers/client/route-20fa0affdf8859be.js +0 -1
  711. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-20fa0affdf8859be.js +0 -1
  712. package/app/.next/static/chunks/app/api/providers/route-20fa0affdf8859be.js +0 -1
  713. package/app/.next/static/chunks/app/api/providers/suggested-models/route-20fa0affdf8859be.js +0 -1
  714. package/app/.next/static/chunks/app/api/providers/test-batch/route-20fa0affdf8859be.js +0 -1
  715. package/app/.next/static/chunks/app/api/providers/validate/route-20fa0affdf8859be.js +0 -1
  716. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-20fa0affdf8859be.js +0 -1
  717. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-20fa0affdf8859be.js +0 -1
  718. package/app/.next/static/chunks/app/api/proxy-pools/route-20fa0affdf8859be.js +0 -1
  719. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-20fa0affdf8859be.js +0 -1
  720. package/app/.next/static/chunks/app/api/settings/database/route-20fa0affdf8859be.js +0 -1
  721. package/app/.next/static/chunks/app/api/settings/proxy-test/route-20fa0affdf8859be.js +0 -1
  722. package/app/.next/static/chunks/app/api/settings/require-login/route-20fa0affdf8859be.js +0 -1
  723. package/app/.next/static/chunks/app/api/settings/route-20fa0affdf8859be.js +0 -1
  724. package/app/.next/static/chunks/app/api/shutdown/route-20fa0affdf8859be.js +0 -1
  725. package/app/.next/static/chunks/app/api/tags/route-20fa0affdf8859be.js +0 -1
  726. package/app/.next/static/chunks/app/api/translator/console-logs/route-20fa0affdf8859be.js +0 -1
  727. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-20fa0affdf8859be.js +0 -1
  728. package/app/.next/static/chunks/app/api/translator/load/route-20fa0affdf8859be.js +0 -1
  729. package/app/.next/static/chunks/app/api/translator/save/route-20fa0affdf8859be.js +0 -1
  730. package/app/.next/static/chunks/app/api/translator/send/route-20fa0affdf8859be.js +0 -1
  731. package/app/.next/static/chunks/app/api/translator/translate/route-20fa0affdf8859be.js +0 -1
  732. package/app/.next/static/chunks/app/api/tunnel/disable/route-20fa0affdf8859be.js +0 -1
  733. package/app/.next/static/chunks/app/api/tunnel/enable/route-20fa0affdf8859be.js +0 -1
  734. package/app/.next/static/chunks/app/api/tunnel/status/route-20fa0affdf8859be.js +0 -1
  735. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-20fa0affdf8859be.js +0 -1
  736. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-20fa0affdf8859be.js +0 -1
  737. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-20fa0affdf8859be.js +0 -1
  738. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-20fa0affdf8859be.js +0 -1
  739. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-20fa0affdf8859be.js +0 -1
  740. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-20fa0affdf8859be.js +0 -1
  741. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-20fa0affdf8859be.js +0 -1
  742. package/app/.next/static/chunks/app/api/usage/chart/route-20fa0affdf8859be.js +0 -1
  743. package/app/.next/static/chunks/app/api/usage/history/route-20fa0affdf8859be.js +0 -1
  744. package/app/.next/static/chunks/app/api/usage/providers/route-20fa0affdf8859be.js +0 -1
  745. package/app/.next/static/chunks/app/api/usage/request-details/route-20fa0affdf8859be.js +0 -1
  746. package/app/.next/static/chunks/app/api/usage/request-logs/route-20fa0affdf8859be.js +0 -1
  747. package/app/.next/static/chunks/app/api/usage/stats/route-20fa0affdf8859be.js +0 -1
  748. package/app/.next/static/chunks/app/api/usage/stream/route-20fa0affdf8859be.js +0 -1
  749. package/app/.next/static/chunks/app/api/v1/api/chat/route-20fa0affdf8859be.js +0 -1
  750. package/app/.next/static/chunks/app/api/v1/audio/speech/route-20fa0affdf8859be.js +0 -1
  751. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-20fa0affdf8859be.js +0 -1
  752. package/app/.next/static/chunks/app/api/v1/audio/voices/route-20fa0affdf8859be.js +0 -1
  753. package/app/.next/static/chunks/app/api/v1/chat/completions/route-20fa0affdf8859be.js +0 -1
  754. package/app/.next/static/chunks/app/api/v1/embeddings/route-20fa0affdf8859be.js +0 -1
  755. package/app/.next/static/chunks/app/api/v1/images/generations/route-20fa0affdf8859be.js +0 -1
  756. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-20fa0affdf8859be.js +0 -1
  757. package/app/.next/static/chunks/app/api/v1/messages/route-20fa0affdf8859be.js +0 -1
  758. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-20fa0affdf8859be.js +0 -1
  759. package/app/.next/static/chunks/app/api/v1/models/info/route-20fa0affdf8859be.js +0 -1
  760. package/app/.next/static/chunks/app/api/v1/models/route-20fa0affdf8859be.js +0 -1
  761. package/app/.next/static/chunks/app/api/v1/responses/compact/route-20fa0affdf8859be.js +0 -1
  762. package/app/.next/static/chunks/app/api/v1/responses/route-20fa0affdf8859be.js +0 -1
  763. package/app/.next/static/chunks/app/api/v1/route-20fa0affdf8859be.js +0 -1
  764. package/app/.next/static/chunks/app/api/v1/search/route-20fa0affdf8859be.js +0 -1
  765. package/app/.next/static/chunks/app/api/v1/web/fetch/route-20fa0affdf8859be.js +0 -1
  766. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-20fa0affdf8859be.js +0 -1
  767. package/app/.next/static/chunks/app/api/v1beta/models/route-20fa0affdf8859be.js +0 -1
  768. package/app/.next/static/chunks/app/api/version/route-20fa0affdf8859be.js +0 -1
  769. package/app/.next/static/chunks/app/api/version/update/route-20fa0affdf8859be.js +0 -1
  770. package/app/.next/static/chunks/app/manifest.webmanifest/route-20fa0affdf8859be.js +0 -1
  771. package/app/.next/static/chunks/app/page-20fa0affdf8859be.js +0 -1
  772. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-20fa0affdf8859be.js +0 -1
  773. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-20fa0affdf8859be.js +0 -1
  774. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-20fa0affdf8859be.js +0 -1
  775. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-20fa0affdf8859be.js +0 -1
  776. package/app/.next/static/css/5d8cd780e73c8876.css +0 -1
  777. package/app/.next/static/gkZl0mznmfSjxMQgK_CRr/_buildManifest.js +0 -1
  778. /package/app/.next/static/{gkZl0mznmfSjxMQgK_CRr → zRbzYKfSwZoKLIJvdVXO-}/_ssgManifest.js +0 -0
@@ -0,0 +1,185 @@
1
+
2
+ // We are modularizing this manually because the current modularize setting in Emscripten has some issues:
3
+ // https://github.com/kripken/emscripten/issues/5820
4
+ // In addition, When you use emcc's modularization, it still expects to export a global object called `Module`,
5
+ // which is able to be used/called before the WASM is loaded.
6
+ // The modularization below exports a promise that loads and resolves to the actual sql.js module.
7
+ // That way, this module can't be used before the WASM is finished loading.
8
+
9
+ // We are going to define a function that a user will call to start loading initializing our Sql.js library
10
+ // However, that function might be called multiple times, and on subsequent calls, we don't actually want it to instantiate a new instance of the Module
11
+ // Instead, we want to return the previously loaded module
12
+
13
+ // TODO: Make this not declare a global if used in the browser
14
+ var initSqlJsPromise = undefined;
15
+
16
+ var initSqlJs = function (moduleConfig) {
17
+
18
+ if (initSqlJsPromise){
19
+ return initSqlJsPromise;
20
+ }
21
+ // If we're here, we've never called this function before
22
+ initSqlJsPromise = new Promise(function (resolveModule, reject) {
23
+
24
+ // We are modularizing this manually because the current modularize setting in Emscripten has some issues:
25
+ // https://github.com/kripken/emscripten/issues/5820
26
+
27
+ // The way to affect the loading of emcc compiled modules is to create a variable called `Module` and add
28
+ // properties to it, like `preRun`, `postRun`, etc
29
+ // We are using that to get notified when the WASM has finished loading.
30
+ // Only then will we return our promise
31
+
32
+ // If they passed in a moduleConfig object, use that
33
+ // Otherwise, initialize Module to the empty object
34
+ var Module = typeof moduleConfig !== 'undefined' ? moduleConfig : {};
35
+
36
+ // EMCC only allows for a single onAbort function (not an array of functions)
37
+ // So if the user defined their own onAbort function, we remember it and call it
38
+ var originalOnAbortFunction = Module['onAbort'];
39
+ Module['onAbort'] = function (errorThatCausedAbort) {
40
+ reject(new Error(errorThatCausedAbort));
41
+ if (originalOnAbortFunction){
42
+ originalOnAbortFunction(errorThatCausedAbort);
43
+ }
44
+ };
45
+
46
+ Module['postRun'] = Module['postRun'] || [];
47
+ Module['postRun'].push(function () {
48
+ // When Emscripted calls postRun, this promise resolves with the built Module
49
+ resolveModule(Module);
50
+ });
51
+
52
+ // There is a section of code in the emcc-generated code below that looks like this:
53
+ // (Note that this is lowercase `module`)
54
+ // if (typeof module !== 'undefined') {
55
+ // module['exports'] = Module;
56
+ // }
57
+ // When that runs, it's going to overwrite our own modularization export efforts in shell-post.js!
58
+ // The only way to tell emcc not to emit it is to pass the MODULARIZE=1 or MODULARIZE_INSTANCE=1 flags,
59
+ // but that carries with it additional unnecessary baggage/bugs we don't want either.
60
+ // So, we have three options:
61
+ // 1) We undefine `module`
62
+ // 2) We remember what `module['exports']` was at the beginning of this function and we restore it later
63
+ // 3) We write a script to remove those lines of code as part of the Make process.
64
+ //
65
+ // Since those are the only lines of code that care about module, we will undefine it. It's the most straightforward
66
+ // of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future.
67
+ // That's a nice side effect since we're handling the modularization efforts ourselves
68
+ module = undefined;
69
+
70
+ // The emcc-generated code and shell-post.js code goes below,
71
+ // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort
72
+ var k;k||=typeof Module != 'undefined' ? Module : {};var aa=!!globalThis.window,ba=!!globalThis.WorkerGlobalScope,ca=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type;
73
+ k.onRuntimeInitialized=function(){function a(f,l){switch(typeof l){case "boolean":bc(f,l?1:0);break;case "number":cc(f,l);break;case "string":dc(f,l,-1,-1);break;case "object":if(null===l)lb(f);else if(null!=l.length){var n=da(l.length);m.set(l,n);ec(f,n,l.length,-1);ea(n)}else sa(f,"Wrong API use : tried to return a value of an unknown type ("+l+").",-1);break;default:lb(f)}}function b(f,l){for(var n=[],p=0;p<f;p+=1){var u=r(l+4*p,"i32"),v=fc(u);if(1===v||2===v)u=gc(u);else if(3===v)u=hc(u);else if(4===
74
+ v){v=u;u=ic(v);v=jc(v);for(var K=new Uint8Array(u),I=0;I<u;I+=1)K[I]=m[v+I];u=K}else u=null;n.push(u)}return n}function c(f,l){this.Qa=f;this.db=l;this.Oa=1;this.mb=[]}function d(f,l){this.db=l;this.fb=fa(f);if(null===this.fb)throw Error("Unable to allocate memory for the SQL string");this.lb=this.fb;this.$a=this.sb=null}function e(f){this.filename="dbfile_"+(4294967295*Math.random()>>>0);if(null!=f){var l=this.filename,n="/",p=l;n&&(n="string"==typeof n?n:ha(n),p=l?ia(n+"/"+l):n);l=ja(!0,!0);p=ka(p,
75
+ l);if(f){if("string"==typeof f){n=Array(f.length);for(var u=0,v=f.length;u<v;++u)n[u]=f.charCodeAt(u);f=n}la(p,l|146);n=ma(p,577);na(n,f,0,f.length,0);oa(n);la(p,l)}}this.handleError(q(this.filename,g));this.db=r(g,"i32");ob(this.db);this.gb={};this.Sa={}}var g=y(4),h=k.cwrap,q=h("sqlite3_open","number",["string","number"]),w=h("sqlite3_close_v2","number",["number"]),t=h("sqlite3_exec","number",["number","string","number","number","number"]),x=h("sqlite3_changes","number",["number"]),D=h("sqlite3_prepare_v2",
76
+ "number",["number","string","number","number","number"]),pb=h("sqlite3_sql","string",["number"]),lc=h("sqlite3_normalized_sql","string",["number"]),qb=h("sqlite3_prepare_v2","number",["number","number","number","number","number"]),mc=h("sqlite3_bind_text","number",["number","number","number","number","number"]),rb=h("sqlite3_bind_blob","number",["number","number","number","number","number"]),nc=h("sqlite3_bind_double","number",["number","number","number"]),oc=h("sqlite3_bind_int","number",["number",
77
+ "number","number"]),pc=h("sqlite3_bind_parameter_index","number",["number","string"]),qc=h("sqlite3_step","number",["number"]),rc=h("sqlite3_errmsg","string",["number"]),sc=h("sqlite3_column_count","number",["number"]),tc=h("sqlite3_data_count","number",["number"]),uc=h("sqlite3_column_double","number",["number","number"]),sb=h("sqlite3_column_text","string",["number","number"]),vc=h("sqlite3_column_blob","number",["number","number"]),wc=h("sqlite3_column_bytes","number",["number","number"]),xc=h("sqlite3_column_type",
78
+ "number",["number","number"]),yc=h("sqlite3_column_name","string",["number","number"]),zc=h("sqlite3_reset","number",["number"]),Ac=h("sqlite3_clear_bindings","number",["number"]),Bc=h("sqlite3_finalize","number",["number"]),tb=h("sqlite3_create_function_v2","number","number string number number number number number number number".split(" ")),fc=h("sqlite3_value_type","number",["number"]),ic=h("sqlite3_value_bytes","number",["number"]),hc=h("sqlite3_value_text","string",["number"]),jc=h("sqlite3_value_blob",
79
+ "number",["number"]),gc=h("sqlite3_value_double","number",["number"]),cc=h("sqlite3_result_double","",["number","number"]),lb=h("sqlite3_result_null","",["number"]),dc=h("sqlite3_result_text","",["number","string","number","number"]),ec=h("sqlite3_result_blob","",["number","number","number","number"]),bc=h("sqlite3_result_int","",["number","number"]),sa=h("sqlite3_result_error","",["number","string","number"]),ub=h("sqlite3_aggregate_context","number",["number","number"]),ob=h("RegisterExtensionFunctions",
80
+ "number",["number"]),vb=h("sqlite3_update_hook","number",["number","number","number"]);c.prototype.bind=function(f){if(!this.Qa)throw"Statement closed";this.reset();return Array.isArray(f)?this.Gb(f):null!=f&&"object"===typeof f?this.Hb(f):!0};c.prototype.step=function(){if(!this.Qa)throw"Statement closed";this.Oa=1;var f=qc(this.Qa);switch(f){case 100:return!0;case 101:return!1;default:throw this.db.handleError(f);}};c.prototype.Ab=function(f){null==f&&(f=this.Oa,this.Oa+=1);return uc(this.Qa,f)};
81
+ c.prototype.Ob=function(f){null==f&&(f=this.Oa,this.Oa+=1);f=sb(this.Qa,f);if("function"!==typeof BigInt)throw Error("BigInt is not supported");return BigInt(f)};c.prototype.Tb=function(f){null==f&&(f=this.Oa,this.Oa+=1);return sb(this.Qa,f)};c.prototype.getBlob=function(f){null==f&&(f=this.Oa,this.Oa+=1);var l=wc(this.Qa,f);f=vc(this.Qa,f);for(var n=new Uint8Array(l),p=0;p<l;p+=1)n[p]=m[f+p];return n};c.prototype.get=function(f,l){l=l||{};null!=f&&this.bind(f)&&this.step();f=[];for(var n=tc(this.Qa),
82
+ p=0;p<n;p+=1)switch(xc(this.Qa,p)){case 1:var u=l.useBigInt?this.Ob(p):this.Ab(p);f.push(u);break;case 2:f.push(this.Ab(p));break;case 3:f.push(this.Tb(p));break;case 4:f.push(this.getBlob(p));break;default:f.push(null)}return f};c.prototype.qb=function(){for(var f=[],l=sc(this.Qa),n=0;n<l;n+=1)f.push(yc(this.Qa,n));return f};c.prototype.zb=function(f,l){f=this.get(f,l);l=this.qb();for(var n={},p=0;p<l.length;p+=1)n[l[p]]=f[p];return n};c.prototype.Sb=function(){return pb(this.Qa)};c.prototype.Pb=
83
+ function(){return lc(this.Qa)};c.prototype.run=function(f){null!=f&&this.bind(f);this.step();return this.reset()};c.prototype.wb=function(f,l){null==l&&(l=this.Oa,this.Oa+=1);f=fa(f);this.mb.push(f);this.db.handleError(mc(this.Qa,l,f,-1,0))};c.prototype.Fb=function(f,l){null==l&&(l=this.Oa,this.Oa+=1);var n=da(f.length);m.set(f,n);this.mb.push(n);this.db.handleError(rb(this.Qa,l,n,f.length,0))};c.prototype.vb=function(f,l){null==l&&(l=this.Oa,this.Oa+=1);this.db.handleError((f===(f|0)?oc:nc)(this.Qa,
84
+ l,f))};c.prototype.Ib=function(f){null==f&&(f=this.Oa,this.Oa+=1);rb(this.Qa,f,0,0,0)};c.prototype.xb=function(f,l){null==l&&(l=this.Oa,this.Oa+=1);switch(typeof f){case "string":this.wb(f,l);return;case "number":this.vb(f,l);return;case "bigint":this.wb(f.toString(),l);return;case "boolean":this.vb(f+0,l);return;case "object":if(null===f){this.Ib(l);return}if(null!=f.length){this.Fb(f,l);return}}throw"Wrong API use : tried to bind a value of an unknown type ("+f+").";};c.prototype.Hb=function(f){var l=
85
+ this;Object.keys(f).forEach(function(n){var p=pc(l.Qa,n);0!==p&&l.xb(f[n],p)});return!0};c.prototype.Gb=function(f){for(var l=0;l<f.length;l+=1)this.xb(f[l],l+1);return!0};c.prototype.reset=function(){this.freemem();return 0===Ac(this.Qa)&&0===zc(this.Qa)};c.prototype.freemem=function(){for(var f;void 0!==(f=this.mb.pop());)ea(f)};c.prototype.Ya=function(){this.freemem();var f=0===Bc(this.Qa);delete this.db.gb[this.Qa];this.Qa=0;return f};d.prototype.next=function(){if(null===this.fb)return{done:!0};
86
+ null!==this.$a&&(this.$a.Ya(),this.$a=null);if(!this.db.db)throw this.ob(),Error("Database closed");var f=pa(),l=y(4);qa(g);qa(l);try{this.db.handleError(qb(this.db.db,this.lb,-1,g,l));this.lb=r(l,"i32");var n=r(g,"i32");if(0===n)return this.ob(),{done:!0};this.$a=new c(n,this.db);this.db.gb[n]=this.$a;return{value:this.$a,done:!1}}catch(p){throw this.sb=z(this.lb),this.ob(),p;}finally{ra(f)}};d.prototype.ob=function(){ea(this.fb);this.fb=null};d.prototype.Qb=function(){return null!==this.sb?this.sb:
87
+ z(this.lb)};"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator&&(d.prototype[Symbol.iterator]=function(){return this});e.prototype.run=function(f,l){if(!this.db)throw"Database closed";if(l){f=this.tb(f,l);try{f.step()}finally{f.Ya()}}else this.handleError(t(this.db,f,0,0,g));return this};e.prototype.exec=function(f,l,n){if(!this.db)throw"Database closed";var p=null,u=null,v=null;try{v=u=fa(f);var K=y(4);for(f=[];0!==r(v,"i8");){qa(g);qa(K);this.handleError(qb(this.db,v,-1,g,K));var I=r(g,
88
+ "i32");v=r(K,"i32");if(0!==I){var H=null;p=new c(I,this);for(null!=l&&p.bind(l);p.step();)null===H&&(H={columns:p.qb(),values:[]},f.push(H)),H.values.push(p.get(null,n));p.Ya()}}return f}catch(L){throw p&&p.Ya(),L;}finally{u&&ea(u)}};e.prototype.Mb=function(f,l,n,p,u){"function"===typeof l&&(p=n,n=l,l=void 0);f=this.tb(f,l);try{for(;f.step();)n(f.zb(null,u))}finally{f.Ya()}if("function"===typeof p)return p()};e.prototype.tb=function(f,l){qa(g);this.handleError(D(this.db,f,-1,g,0));f=r(g,"i32");if(0===
89
+ f)throw"Nothing to prepare";var n=new c(f,this);null!=l&&n.bind(l);return this.gb[f]=n};e.prototype.Ub=function(f){return new d(f,this)};e.prototype.Nb=function(){Object.values(this.gb).forEach(function(l){l.Ya()});Object.values(this.Sa).forEach(A);this.Sa={};this.handleError(w(this.db));var f=ta(this.filename);this.handleError(q(this.filename,g));this.db=r(g,"i32");ob(this.db);return f};e.prototype.close=function(){null!==this.db&&(Object.values(this.gb).forEach(function(f){f.Ya()}),Object.values(this.Sa).forEach(A),
90
+ this.Sa={},this.Za&&(A(this.Za),this.Za=void 0),this.handleError(w(this.db)),ua("/"+this.filename),this.db=null)};e.prototype.handleError=function(f){if(0===f)return null;f=rc(this.db);throw Error(f);};e.prototype.Rb=function(){return x(this.db)};e.prototype.Kb=function(f,l){Object.prototype.hasOwnProperty.call(this.Sa,f)&&(A(this.Sa[f]),delete this.Sa[f]);var n=va(function(p,u,v){u=b(u,v);try{var K=l.apply(null,u)}catch(I){sa(p,I,-1);return}a(p,K)},"viii");this.Sa[f]=n;this.handleError(tb(this.db,
91
+ f,l.length,1,0,n,0,0,0));return this};e.prototype.Jb=function(f,l){var n=l.init||function(){return null},p=l.finalize||function(H){return H},u=l.step;if(!u)throw"An aggregate function must have a step function in "+f;var v={};Object.hasOwnProperty.call(this.Sa,f)&&(A(this.Sa[f]),delete this.Sa[f]);l=f+"__finalize";Object.hasOwnProperty.call(this.Sa,l)&&(A(this.Sa[l]),delete this.Sa[l]);var K=va(function(H,L,Pa){var V=ub(H,1);Object.hasOwnProperty.call(v,V)||(v[V]=n());L=b(L,Pa);L=[v[V]].concat(L);
92
+ try{v[V]=u.apply(null,L)}catch(Dc){delete v[V],sa(H,Dc,-1)}},"viii"),I=va(function(H){var L=ub(H,1);try{var Pa=p(v[L])}catch(V){delete v[L];sa(H,V,-1);return}a(H,Pa);delete v[L]},"vi");this.Sa[f]=K;this.Sa[l]=I;this.handleError(tb(this.db,f,u.length-1,1,0,0,K,I,0));return this};e.prototype.Zb=function(f){this.Za&&(vb(this.db,0,0),A(this.Za),this.Za=void 0);if(!f)return this;this.Za=va(function(l,n,p,u,v){switch(n){case 18:l="insert";break;case 23:l="update";break;case 9:l="delete";break;default:throw"unknown operationCode in updateHook callback: "+
93
+ n;}p=z(p);u=z(u);if(v>Number.MAX_SAFE_INTEGER)throw"rowId too big to fit inside a Number";f(l,p,u,Number(v))},"viiiij");vb(this.db,this.Za,0);return this};c.prototype.bind=c.prototype.bind;c.prototype.step=c.prototype.step;c.prototype.get=c.prototype.get;c.prototype.getColumnNames=c.prototype.qb;c.prototype.getAsObject=c.prototype.zb;c.prototype.getSQL=c.prototype.Sb;c.prototype.getNormalizedSQL=c.prototype.Pb;c.prototype.run=c.prototype.run;c.prototype.reset=c.prototype.reset;c.prototype.freemem=
94
+ c.prototype.freemem;c.prototype.free=c.prototype.Ya;d.prototype.next=d.prototype.next;d.prototype.getRemainingSQL=d.prototype.Qb;e.prototype.run=e.prototype.run;e.prototype.exec=e.prototype.exec;e.prototype.each=e.prototype.Mb;e.prototype.prepare=e.prototype.tb;e.prototype.iterateStatements=e.prototype.Ub;e.prototype["export"]=e.prototype.Nb;e.prototype.close=e.prototype.close;e.prototype.handleError=e.prototype.handleError;e.prototype.getRowsModified=e.prototype.Rb;e.prototype.create_function=e.prototype.Kb;
95
+ e.prototype.create_aggregate=e.prototype.Jb;e.prototype.updateHook=e.prototype.Zb;k.Database=e};var wa="./this.program",xa=(a,b)=>{throw b;},ya=globalThis.document?.currentScript?.src;"undefined"!=typeof __filename?ya=__filename:ba&&(ya=self.location.href);var za="",Aa,Ba;
96
+ if(ca){var fs=require("node:fs");za=__dirname+"/";Ba=a=>{a=Ca(a)?new URL(a):a;return fs.readFileSync(a)};Aa=async a=>{a=Ca(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(wa=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);"undefined"!=typeof module&&(module.exports=k);xa=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||ba){try{za=(new URL(".",ya)).href}catch{}ba&&(Ba=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});
97
+ Aa=async a=>{if(Ca(a))return new Promise((c,d)=>{var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=()=>{200==e.status||0==e.status&&e.response?c(e.response):d(e.status)};e.onerror=d;e.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}var Da=console.log.bind(console),B=console.error.bind(console),Ea,Fa=!1,Ga,Ca=a=>a.startsWith("file://"),m,C,Ha,E,F,Ia,Ja,G;
98
+ function Ka(){var a=La.buffer;m=new Int8Array(a);Ha=new Int16Array(a);C=new Uint8Array(a);new Uint16Array(a);E=new Int32Array(a);F=new Uint32Array(a);Ia=new Float32Array(a);Ja=new Float64Array(a);G=new BigInt64Array(a);new BigUint64Array(a)}function Ma(a){k.onAbort?.(a);a="Aborted("+a+")";B(a);Fa=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}var Na;
99
+ async function Oa(a){if(!Ea)try{var b=await Aa(a);return new Uint8Array(b)}catch{}if(a==Na&&Ea)a=new Uint8Array(Ea);else if(Ba)a=Ba(a);else throw"both async and sync fetching of the wasm failed";return a}async function Qa(a,b){try{var c=await Oa(a);return await WebAssembly.instantiate(c,b)}catch(d){B(`failed to asynchronously prepare wasm: ${d}`),Ma(d)}}
100
+ async function Ra(a){var b=Na;if(!Ea&&!Ca(b)&&!ca)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){B(`wasm streaming compile failed: ${d}`),B("falling back to ArrayBuffer instantiation")}return Qa(b,a)}class Sa{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var Ta=a=>{for(;0<a.length;)a.shift()(k)},Ua=[],Va=[],Wa=()=>{var a=k.preRun.shift();Va.push(a)},J=0,Xa=null;
101
+ function r(a,b="i8"){b.endsWith("*")&&(b="*");switch(b){case "i1":return m[a];case "i8":return m[a];case "i16":return Ha[a>>1];case "i32":return E[a>>2];case "i64":return G[a>>3];case "float":return Ia[a>>2];case "double":return Ja[a>>3];case "*":return F[a>>2];default:Ma(`invalid type for getValue: ${b}`)}}var Ya=!0;
102
+ function qa(a){var b="i32";b.endsWith("*")&&(b="*");switch(b){case "i1":m[a]=0;break;case "i8":m[a]=0;break;case "i16":Ha[a>>1]=0;break;case "i32":E[a>>2]=0;break;case "i64":G[a>>3]=BigInt(0);break;case "float":Ia[a>>2]=0;break;case "double":Ja[a>>3]=0;break;case "*":F[a>>2]=0;break;default:Ma(`invalid type for setValue: ${b}`)}}
103
+ var Za=new TextDecoder,$a=(a,b,c,d)=>{c=b+c;if(d)return c;for(;a[b]&&!(b>=c);)++b;return b},z=(a,b,c)=>a?Za.decode(C.subarray(a,$a(C,a,b,c))):"",ab=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},ia=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);(a=ab(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},bb=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);
104
+ a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.slice(0,-1);return a+b},cb=a=>a&&a.match(/([^\/]+|\/)\/*$/)[1],db=()=>{if(ca){var a=require("node:crypto");return b=>a.randomFillSync(b)}return b=>crypto.getRandomValues(b)},eb=a=>{(eb=db())(a)},fb=(...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){c=0<=d?a[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=ab(b.split("/").filter(e=>!!e),!c).join("/");return(c?"/":
105
+ "")+b||"."},gb=a=>{var b=$a(a,0);return Za.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},hb=[],ib=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},M=(a,b,c,d)=>{if(!(0<d))return 0;var e=c;d=c+d-1;for(var g=0;g<a.length;++g){var h=a.codePointAt(g);if(127>=h){if(c>=d)break;b[c++]=h}else if(2047>=h){if(c+1>=d)break;b[c++]=192|h>>6;b[c++]=128|h&63}else if(65535>=h){if(c+2>=d)break;b[c++]=224|h>>12;b[c++]=128|
106
+ h>>6&63;b[c++]=128|h&63}else{if(c+3>=d)break;b[c++]=240|h>>18;b[c++]=128|h>>12&63;b[c++]=128|h>>6&63;b[c++]=128|h&63;g++}}b[c]=0;return c-e},jb=[];function kb(a,b){jb[a]={input:[],output:[],eb:b};mb(a,nb)}
107
+ var nb={open(a){var b=jb[a.node.rdev];if(!b)throw new N(43);a.tty=b;a.seekable=!1},close(a){a.tty.eb.fsync(a.tty)},fsync(a){a.tty.eb.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.eb.Bb)throw new N(60);for(var e=0,g=0;g<d;g++){try{var h=a.tty.eb.Bb(a.tty)}catch(q){throw new N(29);}if(void 0===h&&0===e)throw new N(6);if(null===h||void 0===h)break;e++;b[c+g]=h}e&&(a.node.atime=Date.now());return e},write(a,b,c,d){if(!a.tty||!a.tty.eb.ub)throw new N(60);try{for(var e=0;e<d;e++)a.tty.eb.ub(a.tty,b[c+e])}catch(g){throw new N(29);
108
+ }d&&(a.node.mtime=a.node.ctime=Date.now());return e}},wb={Bb(){a:{if(!hb.length){var a=null;if(ca){var b=Buffer.alloc(256),c=0,d=process.stdin.fd;try{c=fs.readSync(d,b,0,256)}catch(e){if(e.toString().includes("EOF"))c=0;else throw e;}0<c&&(a=b.slice(0,c).toString("utf-8"))}else globalThis.window?.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){a=null;break a}b=Array(ib(a)+1);a=M(a,b,0,b.length);b.length=a;hb=b}a=hb.shift()}return a},ub(a,b){null===b||10===b?(Da(gb(a.output)),a.output=
109
+ []):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&(Da(gb(a.output)),a.output=[])},hc(){return{bc:25856,dc:5,ac:191,cc:35387,$b:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ic(){return 0},jc(){return[24,80]}},xb={ub(a,b){null===b||10===b?(B(gb(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&(B(gb(a.output)),a.output=[])}},O={Wa:null,Xa(){return O.createNode(null,"/",16895,0)},createNode(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new N(63);
110
+ O.Wa||(O.Wa={dir:{node:{Ta:O.La.Ta,Ua:O.La.Ua,lookup:O.La.lookup,ib:O.La.ib,rename:O.La.rename,unlink:O.La.unlink,rmdir:O.La.rmdir,readdir:O.La.readdir,symlink:O.La.symlink},stream:{Va:O.Ma.Va}},file:{node:{Ta:O.La.Ta,Ua:O.La.Ua},stream:{Va:O.Ma.Va,read:O.Ma.read,write:O.Ma.write,jb:O.Ma.jb,kb:O.Ma.kb}},link:{node:{Ta:O.La.Ta,Ua:O.La.Ua,readlink:O.La.readlink},stream:{}},yb:{node:{Ta:O.La.Ta,Ua:O.La.Ua},stream:yb}});c=zb(a,b,c,d);P(c.mode)?(c.La=O.Wa.dir.node,c.Ma=O.Wa.dir.stream,c.Na={}):32768===
111
+ (c.mode&61440)?(c.La=O.Wa.file.node,c.Ma=O.Wa.file.stream,c.Ra=0,c.Na=null):40960===(c.mode&61440)?(c.La=O.Wa.link.node,c.Ma=O.Wa.link.stream):8192===(c.mode&61440)&&(c.La=O.Wa.yb.node,c.Ma=O.Wa.yb.stream);c.atime=c.mtime=c.ctime=Date.now();a&&(a.Na[b]=c,a.atime=a.mtime=a.ctime=c.atime);return c},fc(a){return a.Na?a.Na.subarray?a.Na.subarray(0,a.Ra):new Uint8Array(a.Na):new Uint8Array(0)},La:{Ta(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=
112
+ a.rdev;P(a.mode)?b.size=4096:32768===(a.mode&61440)?b.size=a.Ra:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.atime=new Date(a.atime);b.mtime=new Date(a.mtime);b.ctime=new Date(a.ctime);b.blksize=4096;b.blocks=Math.ceil(b.size/b.blksize);return b},Ua(a,b){for(var c of["mode","atime","mtime","ctime"])null!=b[c]&&(a[c]=b[c]);void 0!==b.size&&(b=b.size,a.Ra!=b&&(0==b?(a.Na=null,a.Ra=0):(c=a.Na,a.Na=new Uint8Array(b),c&&a.Na.set(c.subarray(0,Math.min(b,a.Ra))),a.Ra=b)))},lookup(){O.nb||(O.nb=
113
+ new N(44),O.nb.stack="<generic error, no stack>");throw O.nb;},ib(a,b,c,d){return O.createNode(a,b,c,d)},rename(a,b,c){try{var d=Q(b,c)}catch(g){}if(d){if(P(a.mode))for(var e in d.Na)throw new N(55);Ab(d)}delete a.parent.Na[a.name];b.Na[c]=a;a.name=c;b.ctime=b.mtime=a.parent.ctime=a.parent.mtime=Date.now()},unlink(a,b){delete a.Na[b];a.ctime=a.mtime=Date.now()},rmdir(a,b){var c=Q(a,b),d;for(d in c.Na)throw new N(55);delete a.Na[b];a.ctime=a.mtime=Date.now()},readdir(a){return[".","..",...Object.keys(a.Na)]},
114
+ symlink(a,b,c){a=O.createNode(a,b,41471,0);a.link=c;return a},readlink(a){if(40960!==(a.mode&61440))throw new N(28);return a.link}},Ma:{read(a,b,c,d,e){var g=a.node.Na;if(e>=a.node.Ra)return 0;a=Math.min(a.node.Ra-e,d);if(8<a&&g.subarray)b.set(g.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=g[e+d];return a},write(a,b,c,d,e,g){b.buffer===m.buffer&&(g=!1);if(!d)return 0;a=a.node;a.mtime=a.ctime=Date.now();if(b.subarray&&(!a.Na||a.Na.subarray)){if(g)return a.Na=b.subarray(c,c+d),a.Ra=d;if(0===a.Ra&&
115
+ 0===e)return a.Na=b.slice(c,c+d),a.Ra=d;if(e+d<=a.Ra)return a.Na.set(b.subarray(c,c+d),e),d}g=e+d;var h=a.Na?a.Na.length:0;h>=g||(g=Math.max(g,h*(1048576>h?2:1.125)>>>0),0!=h&&(g=Math.max(g,256)),h=a.Na,a.Na=new Uint8Array(g),0<a.Ra&&a.Na.set(h.subarray(0,a.Ra),0));if(a.Na.subarray&&b.subarray)a.Na.set(b.subarray(c,c+d),e);else for(g=0;g<d;g++)a.Na[e+g]=b[c+g];a.Ra=Math.max(a.Ra,e+d);return d},Va(a,b,c){1===c?b+=a.position:2===c&&32768===(a.node.mode&61440)&&(b+=a.node.Ra);if(0>b)throw new N(28);
116
+ return b},jb(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new N(43);a=a.node.Na;if(e&2||!a||a.buffer!==m.buffer){e=!0;d=65536*Math.ceil(b/65536);var g=Bb(65536,d);g&&C.fill(0,g,g+d);d=g;if(!d)throw new N(48);if(a){if(0<c||c+b<a.length)a.subarray?a=a.subarray(c,c+b):a=Array.prototype.slice.call(a,c,c+b);m.set(a,d)}}else e=!1,d=a.byteOffset;return{Xb:d,Eb:e}},kb(a,b,c,d){O.Ma.write(a,b,0,d,c,!1);return 0}}},ja=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},Cb=null,Db={},Eb=[],Fb=1,R=null,Gb=!1,
117
+ Hb=!0,N=class{name="ErrnoError";constructor(a){this.Pa=a}},Ib=class{hb={};node=null;get flags(){return this.hb.flags}set flags(a){this.hb.flags=a}get position(){return this.hb.position}set position(a){this.hb.position=a}},Jb=class{La={};Ma={};bb=null;constructor(a,b,c,d){a||=this;this.parent=a;this.Xa=a.Xa;this.id=Fb++;this.name=b;this.mode=c;this.rdev=d;this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146===
118
+ (this.mode&146)}set write(a){a?this.mode|=146:this.mode&=-147}};
119
+ function S(a,b={}){if(!a)throw new N(44);b.pb??(b.pb=!0);"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(q=>!!q);for(var d=Cb,e="/",g=0;g<a.length;g++){var h=g===a.length-1;if(h&&b.parent)break;if("."!==a[g])if(".."===a[g])if(e=bb(e),d===d.parent){a=e+"/"+a.slice(g+1).join("/");c--;continue a}else d=d.parent;else{e=ia(e+"/"+a[g]);try{d=Q(d,a[g])}catch(q){if(44===q?.Pa&&h&&b.Wb)return{path:e};throw q;}!d.bb||h&&!b.pb||(d=d.bb.root);if(40960===(d.mode&61440)&&(!h||b.ab)){if(!d.La.readlink)throw new N(52);
120
+ d=d.La.readlink(d);"/"===d.charAt(0)||(d=bb(e)+"/"+d);a=d+"/"+a.slice(g+1).join("/");continue a}}}return{path:e,node:d}}throw new N(32);}function ha(a){for(var b;;){if(a===a.parent)return a=a.Xa.Db,b?"/"!==a[a.length-1]?`${a}/${b}`:a+b:a;b=b?`${a.name}/${b}`:a.name;a=a.parent}}function Kb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%R.length}
121
+ function Ab(a){var b=Kb(a.parent.id,a.name);if(R[b]===a)R[b]=a.cb;else for(b=R[b];b;){if(b.cb===a){b.cb=a.cb;break}b=b.cb}}function Q(a,b){var c=P(a.mode)?(c=Lb(a,"x"))?c:a.La.lookup?0:2:54;if(c)throw new N(c);for(c=R[Kb(a.id,b)];c;c=c.cb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.La.lookup(a,b)}function zb(a,b,c,d){a=new Jb(a,b,c,d);b=Kb(a.parent.id,a.name);a.cb=R[b];return R[b]=a}function P(a){return 16384===(a&61440)}
122
+ function Lb(a,b){return Hb?0:b.includes("r")&&!(a.mode&292)||b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73)?2:0}function Mb(a,b){if(!P(a.mode))return 54;try{return Q(a,b),20}catch(c){}return Lb(a,"wx")}function Nb(a,b,c){try{var d=Q(a,b)}catch(e){return e.Pa}if(a=Lb(a,"wx"))return a;if(c){if(!P(d.mode))return 54;if(d===d.parent||"/"===ha(d))return 10}else if(P(d.mode))return 31;return 0}function Ob(a){if(!a)throw new N(63);return a}
123
+ function T(a){a=Eb[a];if(!a)throw new N(8);return a}function Pb(a,b=-1){a=Object.assign(new Ib,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!Eb[b])break a;throw new N(33);}a.fd=b;return Eb[b]=a}function Qb(a,b=-1){a=Pb(a,b);a.Ma?.ec?.(a);return a}function Rb(a,b,c){var d=a?.Ma.Ua;a=d?a:b;d??=b.La.Ua;Ob(d);d(a,c)}var yb={open(a){a.Ma=Db[a.node.rdev].Ma;a.Ma.open?.(a)},Va(){throw new N(70);}};function mb(a,b){Db[a]={Ma:b}}
124
+ function Sb(a,b){var c="/"===b;if(c&&Cb)throw new N(10);if(!c&&b){var d=S(b,{pb:!1});b=d.path;d=d.node;if(d.bb)throw new N(10);if(!P(d.mode))throw new N(54);}b={type:a,kc:{},Db:b,Vb:[]};a=a.Xa(b);a.Xa=b;b.root=a;c?Cb=a:d&&(d.bb=b,d.Xa&&d.Xa.Vb.push(b))}function Tb(a,b,c){var d=S(a,{parent:!0}).node;a=cb(a);if(!a)throw new N(28);if("."===a||".."===a)throw new N(20);var e=Mb(d,a);if(e)throw new N(e);if(!d.La.ib)throw new N(63);return d.La.ib(d,a,b,c)}
125
+ function ka(a,b=438){return Tb(a,b&4095|32768,0)}function U(a,b=511){return Tb(a,b&1023|16384,0)}function Ub(a,b,c){"undefined"==typeof c&&(c=b,b=438);Tb(a,b|8192,c)}function Vb(a,b){if(!fb(a))throw new N(44);var c=S(b,{parent:!0}).node;if(!c)throw new N(44);b=cb(b);var d=Mb(c,b);if(d)throw new N(d);if(!c.La.symlink)throw new N(63);c.La.symlink(c,b,a)}
126
+ function Wb(a){var b=S(a,{parent:!0}).node;a=cb(a);var c=Q(b,a),d=Nb(b,a,!0);if(d)throw new N(d);if(!b.La.rmdir)throw new N(63);if(c.bb)throw new N(10);b.La.rmdir(b,a);Ab(c)}function ua(a){var b=S(a,{parent:!0}).node;if(!b)throw new N(44);a=cb(a);var c=Q(b,a),d=Nb(b,a,!1);if(d)throw new N(d);if(!b.La.unlink)throw new N(63);if(c.bb)throw new N(10);b.La.unlink(b,a);Ab(c)}function Xb(a,b){a=S(a,{ab:!b}).node;return Ob(a.La.Ta)(a)}
127
+ function Yb(a,b,c,d){Rb(a,b,{mode:c&4095|b.mode&-4096,ctime:Date.now(),Lb:d})}function la(a,b){a="string"==typeof a?S(a,{ab:!0}).node:a;Yb(null,a,b)}function Zb(a,b,c){if(P(b.mode))throw new N(31);if(32768!==(b.mode&61440))throw new N(28);var d=Lb(b,"w");if(d)throw new N(d);Rb(a,b,{size:c,timestamp:Date.now()})}
128
+ function ma(a,b,c=438){if(""===a)throw new N(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof d)throw Error(`Unknown file open mode: ${b}`);b=d}c=b&64?c&4095|32768:0;if("object"==typeof a)d=a;else{var e=a.endsWith("/");var g=S(a,{ab:!(b&131072),Wb:!0});d=g.node;a=g.path}g=!1;if(b&64)if(d){if(b&128)throw new N(20);}else{if(e)throw new N(31);d=Tb(a,c|511,0);g=!0}if(!d)throw new N(44);8192===(d.mode&61440)&&(b&=-513);if(b&65536&&!P(d.mode))throw new N(54);
129
+ if(!g&&(d?40960===(d.mode&61440)?e=32:(e=["r","w","rw"][b&3],b&512&&(e+="w"),e=P(d.mode)&&("r"!==e||b&576)?31:Lb(d,e)):e=44,e))throw new N(e);b&512&&!g&&(e=d,e="string"==typeof e?S(e,{ab:!0}).node:e,Zb(null,e,0));b=Pb({node:d,path:ha(d),flags:b&-131713,seekable:!0,position:0,Ma:d.Ma,Yb:[],error:!1});b.Ma.open&&b.Ma.open(b);g&&la(d,c&511);return b}function oa(a){if(null===a.fd)throw new N(8);a.rb&&(a.rb=null);try{a.Ma.close&&a.Ma.close(a)}catch(b){throw b;}finally{Eb[a.fd]=null}a.fd=null}
130
+ function $b(a,b,c){if(null===a.fd)throw new N(8);if(!a.seekable||!a.Ma.Va)throw new N(70);if(0!=c&&1!=c&&2!=c)throw new N(28);a.position=a.Ma.Va(a,b,c);a.Yb=[]}function ac(a,b,c,d,e){if(0>d||0>e)throw new N(28);if(null===a.fd)throw new N(8);if(1===(a.flags&2097155))throw new N(8);if(P(a.node.mode))throw new N(31);if(!a.Ma.read)throw new N(28);var g="undefined"!=typeof e;if(!g)e=a.position;else if(!a.seekable)throw new N(70);b=a.Ma.read(a,b,c,d,e);g||(a.position+=b);return b}
131
+ function na(a,b,c,d,e){if(0>d||0>e)throw new N(28);if(null===a.fd)throw new N(8);if(0===(a.flags&2097155))throw new N(8);if(P(a.node.mode))throw new N(31);if(!a.Ma.write)throw new N(28);a.seekable&&a.flags&1024&&$b(a,0,2);var g="undefined"!=typeof e;if(!g)e=a.position;else if(!a.seekable)throw new N(70);b=a.Ma.write(a,b,c,d,e,void 0);g||(a.position+=b);return b}
132
+ function ta(a){var b=b||0;var c="binary";"utf8"!==c&&"binary"!==c&&Ma(`Invalid encoding type "${c}"`);b=ma(a,b);a=Xb(a).size;var d=new Uint8Array(a);ac(b,d,0,a,0);"utf8"===c&&(d=gb(d));oa(b);return d}
133
+ function W(a,b,c){a=ia("/dev/"+a);var d=ja(!!b,!!c);W.Cb??(W.Cb=64);var e=W.Cb++<<8|0;mb(e,{open(g){g.seekable=!1},close(){c?.buffer?.length&&c(10)},read(g,h,q,w){for(var t=0,x=0;x<w;x++){try{var D=b()}catch(pb){throw new N(29);}if(void 0===D&&0===t)throw new N(6);if(null===D||void 0===D)break;t++;h[q+x]=D}t&&(g.node.atime=Date.now());return t},write(g,h,q,w){for(var t=0;t<w;t++)try{c(h[q+t])}catch(x){throw new N(29);}w&&(g.node.mtime=g.node.ctime=Date.now());return t}});Ub(a,d,e)}var X={};
134
+ function Y(a,b,c){if("/"===b.charAt(0))return b;a=-100===a?"/":T(a).path;if(0==b.length){if(!c)throw new N(44);return a}return a+"/"+b}
135
+ function kc(a,b){F[a>>2]=b.dev;F[a+4>>2]=b.mode;F[a+8>>2]=b.nlink;F[a+12>>2]=b.uid;F[a+16>>2]=b.gid;F[a+20>>2]=b.rdev;G[a+24>>3]=BigInt(b.size);E[a+32>>2]=4096;E[a+36>>2]=b.blocks;var c=b.atime.getTime(),d=b.mtime.getTime(),e=b.ctime.getTime();G[a+40>>3]=BigInt(Math.floor(c/1E3));F[a+48>>2]=c%1E3*1E6;G[a+56>>3]=BigInt(Math.floor(d/1E3));F[a+64>>2]=d%1E3*1E6;G[a+72>>3]=BigInt(Math.floor(e/1E3));F[a+80>>2]=e%1E3*1E6;G[a+88>>3]=BigInt(b.ino);return 0}
136
+ var Cc=void 0,Ec=()=>{var a=E[+Cc>>2];Cc+=4;return a},Fc=0,Gc=[0,31,60,91,121,152,182,213,244,274,305,335],Hc=[0,31,59,90,120,151,181,212,243,273,304,334],Ic={},Jc=a=>{Ga=a;Ya||0<Fc||(k.onExit?.(a),Fa=!0);xa(a,new Sa(a))},Kc=a=>{if(!Fa)try{a()}catch(b){b instanceof Sa||"unwind"==b||xa(1,b)}finally{if(!(Ya||0<Fc))try{Ga=a=Ga,Jc(a)}catch(b){b instanceof Sa||"unwind"==b||xa(1,b)}}},Lc={},Nc=()=>{if(!Mc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??
137
+ "C").replace("-","_")+".UTF-8",_:wa||"./this.program"},b;for(b in Lc)void 0===Lc[b]?delete a[b]:a[b]=Lc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Mc=c}return Mc},Mc,Oc=(a,b,c,d)=>{var e={string:t=>{var x=0;if(null!==t&&void 0!==t&&0!==t){x=ib(t)+1;var D=y(x);M(t,C,D,x);x=D}return x},array:t=>{var x=y(t.length);m.set(t,x);return x}};a=k["_"+a];var g=[],h=0;if(d)for(var q=0;q<d.length;q++){var w=e[c[q]];w?(0===h&&(h=pa()),g[q]=w(d[q])):g[q]=d[q]}c=a(...g);return c=function(t){0!==h&&ra(h);return"string"===
138
+ b?z(t):"boolean"===b?!!t:t}(c)},fa=a=>{var b=ib(a)+1,c=da(b);c&&M(a,C,c,b);return c},Pc,Qc=[],A=a=>{Pc.delete(Z.get(a));Z.set(a,null);Qc.push(a)},Rc=a=>{const b=a.length;return[b%128|128,b>>7,...a]},Sc={i:127,p:127,j:126,f:125,d:124,e:111},Tc=a=>Rc(Array.from(a,b=>Sc[b])),va=(a,b)=>{if(!Pc){Pc=new WeakMap;var c=Z.length;if(Pc)for(var d=0;d<0+c;d++){var e=Z.get(d);e&&Pc.set(e,d)}}if(c=Pc.get(a)||0)return c;c=Qc.length?Qc.pop():Z.grow(1);try{Z.set(c,a)}catch(g){if(!(g instanceof TypeError))throw g;
139
+ b=Uint8Array.of(0,97,115,109,1,0,0,0,1,...Rc([1,96,...Tc(b.slice(1)),...Tc("v"===b[0]?"":b[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(b);b=(new WebAssembly.Instance(b,{e:{f:a}})).exports.f;Z.set(c,b)}Pc.set(a,c);return c};R=Array(4096);Sb(O,"/");U("/tmp");U("/home");U("/home/web_user");
140
+ (function(){U("/dev");mb(259,{read:()=>0,write:(d,e,g,h)=>h,Va:()=>0});Ub("/dev/null",259);kb(1280,wb);kb(1536,xb);Ub("/dev/tty",1280);Ub("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(eb(a),b=a.byteLength);return a[--b]};W("random",c);W("urandom",c);U("/dev/shm");U("/dev/shm/tmp")})();
141
+ (function(){U("/proc");var a=U("/proc/self");U("/proc/self/fd");Sb({Xa(){var b=zb(a,"fd",16895,73);b.Ma={Va:O.Ma.Va};b.La={lookup(c,d){c=+d;var e=T(c);c={parent:null,Xa:{Db:"fake"},La:{readlink:()=>e.path},id:c+1};return c.parent=c},readdir(){return Array.from(Eb.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();k.noExitRuntime&&(Ya=k.noExitRuntime);k.print&&(Da=k.print);k.printErr&&(B=k.printErr);k.wasmBinary&&(Ea=k.wasmBinary);k.thisProgram&&(wa=k.thisProgram);
142
+ if(k.preInit)for("function"==typeof k.preInit&&(k.preInit=[k.preInit]);0<k.preInit.length;)k.preInit.shift()();k.stackSave=()=>pa();k.stackRestore=a=>ra(a);k.stackAlloc=a=>y(a);k.cwrap=(a,b,c,d)=>{var e=!c||c.every(g=>"number"===g||"boolean"===g);return"string"!==b&&e&&!d?k["_"+a]:(...g)=>Oc(a,b,c,g)};k.addFunction=va;k.removeFunction=A;k.UTF8ToString=z;k.stringToNewUTF8=fa;k.writeArrayToMemory=(a,b)=>{m.set(a,b)};
143
+ var da,ea,Bb,Uc,ra,y,pa,La,Z,Vc={a:(a,b,c,d)=>Ma(`Assertion failed: ${z(a)}, at: `+[b?z(b):"unknown filename",c,d?z(d):"unknown function"]),i:function(a,b){try{return a=z(a),la(a,b),0}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return-c.Pa}},L:function(a,b,c){try{b=z(b);b=Y(a,b);if(c&-8)return-28;var d=S(b,{ab:!0}).node;if(!d)return-44;a="";c&4&&(a+="r");c&2&&(a+="w");c&1&&(a+="x");return a&&Lb(d,a)?-2:0}catch(e){if("undefined"==typeof X||"ErrnoError"!==e.name)throw e;return-e.Pa}},
144
+ j:function(a,b){try{var c=T(a);Yb(c,c.node,b,!1);return 0}catch(d){if("undefined"==typeof X||"ErrnoError"!==d.name)throw d;return-d.Pa}},h:function(a){try{var b=T(a);Rb(b,b.node,{timestamp:Date.now(),Lb:!1});return 0}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return-c.Pa}},b:function(a,b,c){Cc=c;try{var d=T(a);switch(b){case 0:var e=Ec();if(0>e)break;for(;Eb[e];)e++;return Qb(d,e).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=Ec(),d.flags|=e,0;case 12:return e=
145
+ Ec(),Ha[e+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(g){if("undefined"==typeof X||"ErrnoError"!==g.name)throw g;return-g.Pa}},g:function(a,b){try{var c=T(a),d=c.node,e=c.Ma.Ta;a=e?c:d;e??=d.La.Ta;Ob(e);var g=e(a);return kc(b,g)}catch(h){if("undefined"==typeof X||"ErrnoError"!==h.name)throw h;return-h.Pa}},H:function(a,b){b=-9007199254740992>b||9007199254740992<b?NaN:Number(b);try{if(isNaN(b))return-61;var c=T(a);if(0>b||0===(c.flags&2097155))throw new N(28);Zb(c,c.node,b);return 0}catch(d){if("undefined"==
146
+ typeof X||"ErrnoError"!==d.name)throw d;return-d.Pa}},G:function(a,b){try{if(0===b)return-28;var c=ib("/")+1;if(b<c)return-68;M("/",C,a,b);return c}catch(d){if("undefined"==typeof X||"ErrnoError"!==d.name)throw d;return-d.Pa}},K:function(a,b){try{return a=z(a),kc(b,Xb(a,!0))}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return-c.Pa}},C:function(a,b,c){try{return b=z(b),b=Y(a,b),U(b,c),0}catch(d){if("undefined"==typeof X||"ErrnoError"!==d.name)throw d;return-d.Pa}},J:function(a,
147
+ b,c,d){try{b=z(b);var e=d&256;b=Y(a,b,d&4096);return kc(c,e?Xb(b,!0):Xb(b))}catch(g){if("undefined"==typeof X||"ErrnoError"!==g.name)throw g;return-g.Pa}},x:function(a,b,c,d){Cc=d;try{b=z(b);b=Y(a,b);var e=d?Ec():0;return ma(b,c,e).fd}catch(g){if("undefined"==typeof X||"ErrnoError"!==g.name)throw g;return-g.Pa}},v:function(a,b,c,d){try{b=z(b);b=Y(a,b);if(0>=d)return-28;var e=S(b).node;if(!e)throw new N(44);if(!e.La.readlink)throw new N(28);var g=e.La.readlink(e);var h=Math.min(d,ib(g)),q=m[c+h];M(g,
148
+ C,c,d+1);m[c+h]=q;return h}catch(w){if("undefined"==typeof X||"ErrnoError"!==w.name)throw w;return-w.Pa}},u:function(a){try{return a=z(a),Wb(a),0}catch(b){if("undefined"==typeof X||"ErrnoError"!==b.name)throw b;return-b.Pa}},f:function(a,b){try{return a=z(a),kc(b,Xb(a))}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return-c.Pa}},r:function(a,b,c){try{b=z(b);b=Y(a,b);if(c)if(512===c)Wb(b);else return-28;else ua(b);return 0}catch(d){if("undefined"==typeof X||"ErrnoError"!==d.name)throw d;
149
+ return-d.Pa}},q:function(a,b,c){try{b=z(b);b=Y(a,b,!0);var d=Date.now(),e,g;if(c){var h=F[c>>2]+4294967296*E[c+4>>2],q=E[c+8>>2];1073741823==q?e=d:1073741822==q?e=null:e=1E3*h+q/1E6;c+=16;h=F[c>>2]+4294967296*E[c+4>>2];q=E[c+8>>2];1073741823==q?g=d:1073741822==q?g=null:g=1E3*h+q/1E6}else g=e=d;if(null!==(g??e)){a=e;var w=S(b,{ab:!0}).node;Ob(w.La.Ua)(w,{atime:a,mtime:g})}return 0}catch(t){if("undefined"==typeof X||"ErrnoError"!==t.name)throw t;return-t.Pa}},m:()=>Ma(""),l:()=>{Ya=!1;Fc=0},A:function(a,
150
+ b){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);a=new Date(1E3*a);E[b>>2]=a.getSeconds();E[b+4>>2]=a.getMinutes();E[b+8>>2]=a.getHours();E[b+12>>2]=a.getDate();E[b+16>>2]=a.getMonth();E[b+20>>2]=a.getFullYear()-1900;E[b+24>>2]=a.getDay();var c=a.getFullYear();E[b+28>>2]=(0!==c%4||0===c%100&&0!==c%400?Hc:Gc)[a.getMonth()]+a.getDate()-1|0;E[b+36>>2]=-(60*a.getTimezoneOffset());c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();
151
+ E[b+32>>2]=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0},y:function(a,b,c,d,e,g,h){e=-9007199254740992>e||9007199254740992<e?NaN:Number(e);try{var q=T(d);if(0!==(b&2)&&0===(c&2)&&2!==(q.flags&2097155))throw new N(2);if(1===(q.flags&2097155))throw new N(2);if(!q.Ma.jb)throw new N(43);if(!a)throw new N(28);var w=q.Ma.jb(q,a,e,b,c);var t=w.Xb;E[g>>2]=w.Eb;F[h>>2]=t;return 0}catch(x){if("undefined"==typeof X||"ErrnoError"!==x.name)throw x;return-x.Pa}},z:function(a,b,c,d,e,g){g=-9007199254740992>g||
152
+ 9007199254740992<g?NaN:Number(g);try{var h=T(e);if(c&2){c=g;if(32768!==(h.node.mode&61440))throw new N(43);if(!(d&2)){var q=C.slice(a,a+b);h.Ma.kb&&h.Ma.kb(h,q,c,b,d)}}}catch(w){if("undefined"==typeof X||"ErrnoError"!==w.name)throw w;return-w.Pa}},n:(a,b)=>{Ic[a]&&(clearTimeout(Ic[a].id),delete Ic[a]);if(!b)return 0;var c=setTimeout(()=>{delete Ic[a];Kc(()=>Uc(a,performance.now()))},b);Ic[a]={id:c,lc:b};return 0},B:(a,b,c,d)=>{var e=(new Date).getFullYear(),g=(new Date(e,0,1)).getTimezoneOffset();
153
+ e=(new Date(e,6,1)).getTimezoneOffset();F[a>>2]=60*Math.max(g,e);E[b>>2]=Number(g!=e);b=h=>{var q=Math.abs(h);return`UTC${0<=h?"-":"+"}${String(Math.floor(q/60)).padStart(2,"0")}${String(q%60).padStart(2,"0")}`};a=b(g);b=b(e);e<g?(M(a,C,c,17),M(b,C,d,17)):(M(a,C,d,17),M(b,C,c,17))},d:()=>Date.now(),s:()=>2147483648,c:()=>performance.now(),o:a=>{var b=C.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,
154
+ d)/65536))-La.buffer.byteLength+65535)/65536|0;try{La.grow(d);Ka();var e=1;break a}catch(g){}e=void 0}if(e)return!0}return!1},E:(a,b)=>{var c=0,d=0,e;for(e of Nc()){var g=b+c;F[a+d>>2]=g;c+=M(e,C,g,Infinity)+1;d+=4}return 0},F:(a,b)=>{var c=Nc();F[a>>2]=c.length;a=0;for(var d of c)a+=ib(d)+1;F[b>>2]=a;return 0},e:function(a){try{var b=T(a);oa(b);return 0}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return c.Pa}},p:function(a,b){try{var c=T(a);m[b]=c.tty?2:P(c.mode)?3:40960===(c.mode&
155
+ 61440)?7:4;Ha[b+2>>1]=0;G[b+8>>3]=BigInt(0);G[b+16>>3]=BigInt(0);return 0}catch(d){if("undefined"==typeof X||"ErrnoError"!==d.name)throw d;return d.Pa}},w:function(a,b,c,d){try{a:{var e=T(a);a=b;for(var g,h=b=0;h<c;h++){var q=F[a>>2],w=F[a+4>>2];a+=8;var t=ac(e,m,q,w,g);if(0>t){var x=-1;break a}b+=t;if(t<w)break;"undefined"!=typeof g&&(g+=t)}x=b}F[d>>2]=x;return 0}catch(D){if("undefined"==typeof X||"ErrnoError"!==D.name)throw D;return D.Pa}},D:function(a,b,c,d){b=-9007199254740992>b||9007199254740992<
156
+ b?NaN:Number(b);try{if(isNaN(b))return 61;var e=T(a);$b(e,b,c);G[d>>3]=BigInt(e.position);e.rb&&0===b&&0===c&&(e.rb=null);return 0}catch(g){if("undefined"==typeof X||"ErrnoError"!==g.name)throw g;return g.Pa}},I:function(a){try{var b=T(a);return b.Ma?.fsync?.(b)}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return c.Pa}},t:function(a,b,c,d){try{a:{var e=T(a);a=b;for(var g,h=b=0;h<c;h++){var q=F[a>>2],w=F[a+4>>2];a+=8;var t=na(e,m,q,w,g);if(0>t){var x=-1;break a}b+=t;if(t<w)break;
157
+ "undefined"!=typeof g&&(g+=t)}x=b}F[d>>2]=x;return 0}catch(D){if("undefined"==typeof X||"ErrnoError"!==D.name)throw D;return D.Pa}},k:Jc};
158
+ function Wc(){function a(){k.calledRun=!0;if(!Fa){if(!k.noFSInit&&!Gb){var b,c;Gb=!0;b??=k.stdin;c??=k.stdout;d??=k.stderr;b?W("stdin",b):Vb("/dev/tty","/dev/stdin");c?W("stdout",null,c):Vb("/dev/tty","/dev/stdout");d?W("stderr",null,d):Vb("/dev/tty1","/dev/stderr");ma("/dev/stdin",0);ma("/dev/stdout",1);ma("/dev/stderr",1)}Xc.N();Hb=!1;k.onRuntimeInitialized?.();if(k.postRun)for("function"==typeof k.postRun&&(k.postRun=[k.postRun]);k.postRun.length;){var d=k.postRun.shift();Ua.push(d)}Ta(Ua)}}if(0<
159
+ J)Xa=Wc;else{if(k.preRun)for("function"==typeof k.preRun&&(k.preRun=[k.preRun]);k.preRun.length;)Wa();Ta(Va);0<J?Xa=Wc:k.setStatus?(k.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>k.setStatus(""),1);a()},1)):a()}}var Xc;
160
+ (async function(){function a(c){c=Xc=c.exports;k._sqlite3_free=c.P;k._sqlite3_value_text=c.Q;k._sqlite3_prepare_v2=c.R;k._sqlite3_step=c.S;k._sqlite3_reset=c.T;k._sqlite3_exec=c.U;k._sqlite3_finalize=c.V;k._sqlite3_column_name=c.W;k._sqlite3_column_text=c.X;k._sqlite3_column_type=c.Y;k._sqlite3_errmsg=c.Z;k._sqlite3_clear_bindings=c._;k._sqlite3_value_blob=c.$;k._sqlite3_value_bytes=c.aa;k._sqlite3_value_double=c.ba;k._sqlite3_value_int=c.ca;k._sqlite3_value_type=c.da;k._sqlite3_result_blob=c.ea;
161
+ k._sqlite3_result_double=c.fa;k._sqlite3_result_error=c.ga;k._sqlite3_result_int=c.ha;k._sqlite3_result_int64=c.ia;k._sqlite3_result_null=c.ja;k._sqlite3_result_text=c.ka;k._sqlite3_aggregate_context=c.la;k._sqlite3_column_count=c.ma;k._sqlite3_data_count=c.na;k._sqlite3_column_blob=c.oa;k._sqlite3_column_bytes=c.pa;k._sqlite3_column_double=c.qa;k._sqlite3_bind_blob=c.ra;k._sqlite3_bind_double=c.sa;k._sqlite3_bind_int=c.ta;k._sqlite3_bind_text=c.ua;k._sqlite3_bind_parameter_index=c.va;k._sqlite3_sql=
162
+ c.wa;k._sqlite3_normalized_sql=c.xa;k._sqlite3_changes=c.ya;k._sqlite3_close_v2=c.za;k._sqlite3_create_function_v2=c.Aa;k._sqlite3_update_hook=c.Ba;k._sqlite3_open=c.Ca;da=k._malloc=c.Da;ea=k._free=c.Ea;k._RegisterExtensionFunctions=c.Fa;Bb=c.Ga;Uc=c.Ha;ra=c.Ia;y=c.Ja;pa=c.Ka;La=c.M;Z=c.O;Ka();J--;k.monitorRunDependencies?.(J);0==J&&Xa&&(c=Xa,Xa=null,c());return Xc}J++;k.monitorRunDependencies?.(J);var b={a:Vc};if(k.instantiateWasm)return new Promise(c=>{k.instantiateWasm(b,(d,e)=>{c(a(d,e))})});
163
+ Na??=k.locateFile?k.locateFile("sql-wasm.wasm",za):za+"sql-wasm.wasm";return a((await Ra(b)).instance)})();Wc();
164
+
165
+
166
+ // The shell-pre.js and emcc-generated code goes above
167
+ return Module;
168
+ }); // The end of the promise being returned
169
+
170
+ return initSqlJsPromise;
171
+ } // The end of our initSqlJs function
172
+
173
+ // This bit below is copied almost exactly from what you get when you use the MODULARIZE=1 flag with emcc
174
+ // However, we don't want to use the emcc modularization. See shell-pre.js
175
+ if (typeof exports === 'object' && typeof module === 'object'){
176
+ module.exports = initSqlJs;
177
+ // This will allow the module to be used in ES6 or CommonJS
178
+ module.exports.default = initSqlJs;
179
+ }
180
+ else if (typeof define === 'function' && define['amd']) {
181
+ define([], function() { return initSqlJs; });
182
+ }
183
+ else if (typeof exports === 'object'){
184
+ exports["Module"] = initSqlJs;
185
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "sql.js",
3
+ "version": "1.14.1",
4
+ "description": "SQLite library with support for opening and writing databases, prepared statements, and more. This SQLite library is in pure javascript (compiled with emscripten).",
5
+ "keywords": [
6
+ "sql",
7
+ "sqlite",
8
+ "stand-alone",
9
+ "relational",
10
+ "database",
11
+ "RDBMS",
12
+ "data",
13
+ "query",
14
+ "statement",
15
+ "emscripten",
16
+ "asm",
17
+ "asm.js"
18
+ ],
19
+ "license": "MIT",
20
+ "main": "./dist/sql-wasm.js",
21
+ "exports": {
22
+ ".": {
23
+ "browser": "./dist/sql-wasm-browser.js",
24
+ "default": "./dist/sql-wasm.js"
25
+ },
26
+ "./dist/*": "./dist/*"
27
+ },
28
+ "scripts": {
29
+ "build": "make",
30
+ "rebuild": "npm run clean && npm run build",
31
+ "clean": "make clean",
32
+ "test": "npm run lint && npm run test-asm && npm run test-asm-debug && npm run test-wasm && npm run test-wasm-debug && npm run test-wasm-browser && npm run test-asm-memory-growth",
33
+ "lint": "eslint .",
34
+ "prettify": "eslint . --fix",
35
+ "test-asm": "node --unhandled-rejections=strict test/all.js asm",
36
+ "test-asm-debug": "node --unhandled-rejections=strict test/all.js asm-debug",
37
+ "test-asm-memory-growth": "node --unhandled-rejections=strict test/all.js asm-memory-growth",
38
+ "test-wasm": "node --unhandled-rejections=strict test/all.js wasm",
39
+ "test-wasm-debug": "node --unhandled-rejections=strict test/all.js wasm-debug",
40
+ "test-wasm-browser": "node --unhandled-rejections=strict test/all.js wasm-browser",
41
+ "doc": "jsdoc -c .jsdoc.config.json"
42
+ },
43
+ "homepage": "http://github.com/sql-js/sql.js",
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "http://github.com/sql-js/sql.js.git"
47
+ },
48
+ "bugs": {
49
+ "url": "https://github.com/sql-js/sql.js/issues"
50
+ },
51
+ "devDependencies": {
52
+ "@eslint/js": "^10.0.0",
53
+ "clean-jsdoc-theme": "^4.2.0",
54
+ "eslint": "^10.0.0",
55
+ "globals": "^16.4.0",
56
+ "jsdoc": "^4.0.2"
57
+ }
58
+ }
package/app/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "9router-app",
3
- "version": "0.4.26",
3
+ "version": "0.4.28",
4
4
  "description": "9Router web dashboard",
5
5
  "private": true,
6
6
  "scripts": {
7
- "dev": "next dev --webpack --hostname 127.0.0.1 --port 20128",
7
+ "dev": "next dev --webpack --port 20128",
8
8
  "build": "NODE_ENV=production next build --webpack",
9
9
  "start": "NODE_ENV=production next start",
10
10
  "dev:bun": "bun --bun next dev --webpack --port 20128",
package/app/server.js CHANGED
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
9
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
10
 
11
11
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/Working/router4","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":7,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","serverExternalPackages":["better-sqlite3"],"turbopack":{"root":"/Users/Working/router4"},"distDirRoot":".next","_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/v1/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1/v1","destination":"/api/v1"},{"source":"/codex/:path*","destination":"/api/v1/responses"},{"source":"/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1","destination":"/api/v1"}],"fallback":[]}}
12
+ const nextConfig = {"env":{},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/Working/router4","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":7,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","serverExternalPackages":["better-sqlite3","sql.js","node:sqlite","bun:sqlite"],"turbopack":{"root":"/Users/Working/router4"},"distDirRoot":".next","_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/v1/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1/v1","destination":"/api/v1"},{"source":"/codex/:path*","destination":"/api/v1/responses"},{"source":"/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1","destination":"/api/v1"}],"fallback":[]}}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
@@ -0,0 +1,63 @@
1
+ // Bun runtime adapter — uses built-in bun:sqlite (native, fastest under Bun).
2
+ // Loaded only when process.versions.bun is present.
3
+ import { PRAGMA_SQL } from "../schema.js";
4
+
5
+ const CHECKPOINT_INTERVAL_MS = 60 * 1000;
6
+
7
+ export async function createBunSqliteAdapter(filePath) {
8
+ // Dynamic import — only resolves under Bun runtime
9
+ const { Database } = await import("bun:sqlite");
10
+ const db = new Database(filePath, { create: true });
11
+ db.exec(PRAGMA_SQL);
12
+
13
+ const stmtCache = new Map();
14
+ function prepare(sql) {
15
+ let stmt = stmtCache.get(sql);
16
+ if (!stmt) {
17
+ stmt = db.prepare(sql);
18
+ stmtCache.set(sql, stmt);
19
+ }
20
+ return stmt;
21
+ }
22
+
23
+ const checkpointTimer = setInterval(() => {
24
+ try { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); } catch {}
25
+ }, CHECKPOINT_INTERVAL_MS);
26
+ if (typeof checkpointTimer.unref === "function") checkpointTimer.unref();
27
+
28
+ function gracefulClose() {
29
+ try { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); } catch {}
30
+ try { stmtCache.clear(); } catch {}
31
+ try { db.close(); } catch {}
32
+ }
33
+ const onShutdown = () => gracefulClose();
34
+ process.once("beforeExit", onShutdown);
35
+ process.once("SIGINT", () => { onShutdown(); process.exit(0); });
36
+ process.once("SIGTERM", () => { onShutdown(); process.exit(0); });
37
+
38
+ return {
39
+ driver: "bun:sqlite",
40
+ run(sql, params = []) {
41
+ const r = prepare(sql).run(...params);
42
+ return { changes: Number(r.changes ?? 0), lastInsertRowid: Number(r.lastInsertRowid ?? 0) };
43
+ },
44
+ get(sql, params = []) {
45
+ return prepare(sql).get(...params);
46
+ },
47
+ all(sql, params = []) {
48
+ return prepare(sql).all(...params);
49
+ },
50
+ exec(sql) { return db.exec(sql); },
51
+ transaction(fn) {
52
+ // bun:sqlite has db.transaction() API (similar to better-sqlite3)
53
+ const tx = db.transaction(fn);
54
+ return tx();
55
+ },
56
+ checkpoint() { try { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); } catch {} },
57
+ close() {
58
+ clearInterval(checkpointTimer);
59
+ gracefulClose();
60
+ },
61
+ raw: db,
62
+ };
63
+ }
@@ -0,0 +1,84 @@
1
+ // Built-in node:sqlite adapter — available in Node >= 22.5.0.
2
+ // No native build, no npm install. API mirrors betterSqliteAdapter.
3
+ import { PRAGMA_SQL } from "../schema.js";
4
+
5
+ const CHECKPOINT_INTERVAL_MS = 60 * 1000;
6
+
7
+ export async function createNodeSqliteAdapter(filePath) {
8
+ // Suppress "ExperimentalWarning: SQLite is an experimental feature" from node:sqlite.
9
+ // Stable enough for production use as of Node 22.x (RC quality).
10
+ const origEmit = process.emit;
11
+ process.emit = function (name, data, ...rest) {
12
+ if (name === "warning" && data?.name === "ExperimentalWarning" && /SQLite/i.test(data.message || "")) {
13
+ return false;
14
+ }
15
+ return origEmit.call(process, name, data, ...rest);
16
+ };
17
+
18
+ // Dynamic import — fails on Node < 22.5 → driver.js falls back to sql.js
19
+ const sqlite = await import("node:sqlite");
20
+ const Database = sqlite.DatabaseSync;
21
+ const db = new Database(filePath);
22
+
23
+ db.exec(PRAGMA_SQL);
24
+
25
+ const stmtCache = new Map();
26
+ function prepare(sql) {
27
+ let stmt = stmtCache.get(sql);
28
+ if (!stmt) {
29
+ stmt = db.prepare(sql);
30
+ stmtCache.set(sql, stmt);
31
+ }
32
+ return stmt;
33
+ }
34
+
35
+ // Periodic WAL checkpoint to keep -wal/-shm small
36
+ const checkpointTimer = setInterval(() => {
37
+ try { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); } catch {}
38
+ }, CHECKPOINT_INTERVAL_MS);
39
+ if (typeof checkpointTimer.unref === "function") checkpointTimer.unref();
40
+
41
+ function gracefulClose() {
42
+ try { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); } catch {}
43
+ try { stmtCache.clear(); } catch {}
44
+ try { db.close(); } catch {}
45
+ }
46
+ const onShutdown = () => gracefulClose();
47
+ process.once("beforeExit", onShutdown);
48
+ process.once("SIGINT", () => { onShutdown(); process.exit(0); });
49
+ process.once("SIGTERM", () => { onShutdown(); process.exit(0); });
50
+
51
+ return {
52
+ driver: "node:sqlite",
53
+ run(sql, params = []) {
54
+ const r = prepare(sql).run(...params);
55
+ return { changes: Number(r.changes ?? 0), lastInsertRowid: Number(r.lastInsertRowid ?? 0) };
56
+ },
57
+ get(sql, params = []) {
58
+ return prepare(sql).get(...params);
59
+ },
60
+ all(sql, params = []) {
61
+ return prepare(sql).all(...params);
62
+ },
63
+ exec(sql) { return db.exec(sql); },
64
+ transaction(fn) {
65
+ // node:sqlite has no transaction wrapper. Use SAVEPOINT for nested support.
66
+ const sp = `sp_${Math.random().toString(36).slice(2)}`;
67
+ db.exec(`SAVEPOINT ${sp}`);
68
+ try {
69
+ const r = fn();
70
+ db.exec(`RELEASE ${sp}`);
71
+ return r;
72
+ } catch (e) {
73
+ try { db.exec(`ROLLBACK TO ${sp}`); db.exec(`RELEASE ${sp}`); } catch {}
74
+ throw e;
75
+ }
76
+ },
77
+ checkpoint() { try { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); } catch {} },
78
+ close() {
79
+ clearInterval(checkpointTimer);
80
+ gracefulClose();
81
+ },
82
+ raw: db,
83
+ };
84
+ }
@@ -86,14 +86,15 @@ export async function createSqlJsAdapter(filePath) {
86
86
  }
87
87
 
88
88
  function transaction(fn) {
89
- db.exec("BEGIN");
89
+ const sp = `sp_${Math.random().toString(36).slice(2)}`;
90
+ db.exec(`SAVEPOINT ${sp}`);
90
91
  try {
91
92
  const result = fn();
92
- db.exec("COMMIT");
93
+ db.exec(`RELEASE ${sp}`);
93
94
  scheduleSave();
94
95
  return result;
95
96
  } catch (e) {
96
- db.exec("ROLLBACK");
97
+ try { db.exec(`ROLLBACK TO ${sp}`); db.exec(`RELEASE ${sp}`); } catch {}
97
98
  throw e;
98
99
  }
99
100
  }
@@ -172,6 +172,29 @@ function runInstall() {
172
172
  });
173
173
  }
174
174
 
175
+ function openBrowser(url) {
176
+ const platform = process.platform;
177
+ const cmd = platform === "darwin" ? `open "${url}"`
178
+ : platform === "win32" ? `start "" "${url}"`
179
+ : `xdg-open "${url}"`;
180
+ try { spawn(cmd, { shell: true, detached: true, stdio: "ignore" }).unref(); } catch { /* ignore */ }
181
+ }
182
+
183
+ // Wait until app port is listening (server alive again), then open dashboard
184
+ async function waitForAppAndOpenBrowser() {
185
+ const deadline = Date.now() + 30000;
186
+ while (Date.now() < deadline) {
187
+ const busy = await isAppPortBusy();
188
+ if (busy) {
189
+ openBrowser(`http://localhost:${appPort}/dashboard`);
190
+ pushLog(`[updater] app ready, opened dashboard`);
191
+ return;
192
+ }
193
+ await sleep(1000);
194
+ }
195
+ pushLog(`[updater] app not responding within 30s, skip browser open`);
196
+ }
197
+
175
198
  function relaunchApp() {
176
199
  if (process.env.UPDATER_RELAUNCH !== "1") return;
177
200
  const cmd = process.env.UPDATER_RELAUNCH_CMD;
@@ -189,6 +212,8 @@ function relaunchApp() {
189
212
  });
190
213
  child.unref();
191
214
  pushLog(`[updater] relaunched: ${cmd} ${args.join(" ")} (pid=${child.pid})`);
215
+ // Wait for new app to come up, then auto-open browser so user sees the result
216
+ waitForAppAndOpenBrowser();
192
217
  } catch (e) {
193
218
  pushLog(`[updater] relaunch failed: ${e.message}`);
194
219
  }