@ironmussa/funny 0.1.10 → 0.1.12

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 (88) hide show
  1. package/README.md +15 -3
  2. package/bin/funny.js +8 -1
  3. package/package.json +2 -2
  4. package/packages/client/dist/assets/{AcceptInvitePage-CwYQtIVI.js → AcceptInvitePage-BUKE6WCw.js} +1 -1
  5. package/packages/client/dist/assets/{ActivityPane-BqtiKQoc.js → ActivityPane-pJYdJQxB.js} +1 -1
  6. package/packages/client/dist/assets/{AddProjectView-BTUbNCf5.js → AddProjectView-DNJ7WOSb.js} +1 -1
  7. package/packages/client/dist/assets/{AllThreadsView-SgG-25oj.js → AllThreadsView-75xghTZ-.js} +1 -1
  8. package/packages/client/dist/assets/{AnalyticsView--eEfsZ7M.js → AnalyticsView-D_ycgNFH.js} +1 -1
  9. package/packages/client/dist/assets/{App-DD7u4SAw.js → App-KP41GkQ0.js} +3 -3
  10. package/packages/client/dist/assets/{AutomationInboxView-By8MsYYO.js → AutomationInboxView-B4Oq79kA.js} +1 -1
  11. package/packages/client/dist/assets/{BrowserPanel-Cq089yp_.js → BrowserPanel-bx8ruJ_6.js} +1 -1
  12. package/packages/client/dist/assets/{BrowserPreview-REscPcXd.js → BrowserPreview-5q9BemRl.js} +1 -1
  13. package/packages/client/dist/assets/{CircuitBreakerDialog-CsddJfvm.js → CircuitBreakerDialog-BlbH2uEn.js} +1 -1
  14. package/packages/client/dist/assets/{CommandPalette-CI9t7rz5.js → CommandPalette-Bdo7QCpa.js} +1 -1
  15. package/packages/client/dist/assets/{CommentsPane-BFha7ll9.js → CommentsPane-CEGyGbDX.js} +1 -1
  16. package/packages/client/dist/assets/{CsvTable-HqueUd-d.js → CsvTable-Dy3AE8Cr.js} +1 -1
  17. package/packages/client/dist/assets/{FileSearchDialog-BBLwpk_T.js → FileSearchDialog-Dcnqepse.js} +1 -1
  18. package/packages/client/dist/assets/{FileTree-0rn6jPHG.js → FileTree-DSnax0_n.js} +1 -1
  19. package/packages/client/dist/assets/{FolderPicker-NfYl0JOO.js → FolderPicker-D2DBvfRc.js} +1 -1
  20. package/packages/client/dist/assets/{GeneralSettingsView-CTrMytqS.js → GeneralSettingsView-DKdBC6iy.js} +2 -2
  21. package/packages/client/dist/assets/{GitProgressModal-DZRRb0Wv.js → GitProgressModal-Bq679LKT.js} +1 -1
  22. package/packages/client/dist/assets/{LiveColumnsView-DayolaGm.js → LiveColumnsView-Dp-1uCsv.js} +1 -1
  23. package/packages/client/dist/assets/{LoginPage-BM8wco-G.js → LoginPage-C2hVl37G.js} +1 -1
  24. package/packages/client/dist/assets/{MediaPreview-Boc_Efcs.js → MediaPreview-DBXYDfxB.js} +1 -1
  25. package/packages/client/dist/assets/{MediaPreviewDialog-BvgtE3i6.js → MediaPreviewDialog-QFlKTQ3C.js} +1 -1
  26. package/packages/client/dist/assets/{MermaidBlock-XIvP1J5s.js → MermaidBlock-OJZ-FI8E.js} +1 -1
  27. package/packages/client/dist/assets/{MobilePage-528TrvBe.js → MobilePage-0UAo-8L9.js} +2 -2
  28. package/packages/client/dist/assets/{MonacoEditorDialog-PIV1zMvf.js → MonacoEditorDialog-BG4G9Wsp.js} +1 -1
  29. package/packages/client/dist/assets/{OrchestratorView-DyGhY-_D.js → OrchestratorView-AxIyLArU.js} +1 -1
  30. package/packages/client/dist/assets/{PreferencesPanel-BWEoYcWd.js → PreferencesPanel-Rjpt0e9O.js} +1 -1
  31. package/packages/client/dist/assets/{PreviewBrowser-CMOLaONB.js → PreviewBrowser--xcqBXbg.js} +1 -1
  32. package/packages/client/dist/assets/{ProjectFilesPane-6h4yPJAD.js → ProjectFilesPane-DLDyjc7v.js} +1 -1
  33. package/packages/client/dist/assets/{ProjectHeader-CMxS5sHZ.js → ProjectHeader-CYIVp_zs.js} +1 -1
  34. package/packages/client/dist/assets/{ProjectHooksSettings-CVJ-nm6H.js → ProjectHooksSettings-Bily5alg.js} +1 -1
  35. package/packages/client/dist/assets/{ReviewPane-BzRzkCjt.js → ReviewPane-DGkH-MGa.js} +1 -1
  36. package/packages/client/dist/assets/{SearchablePicker-BjX782MP.js → SearchablePicker-CPtCNnSU.js} +1 -1
  37. package/packages/client/dist/assets/{SettingsDetailView-DNPOyp0D.js → SettingsDetailView-BGmUa9S8.js} +1 -1
  38. package/packages/client/dist/assets/{SettingsPageContent-S-wTMLuj.js → SettingsPageContent-BTnP6S5E.js} +3 -3
  39. package/packages/client/dist/assets/{SetupWizard-fmU23YxJ.js → SetupWizard-DsKXOmx_.js} +1 -1
  40. package/packages/client/dist/assets/{Sidebar-Bw2Ioplc.js → Sidebar-CsZA8Nvj.js} +1 -1
  41. package/packages/client/dist/assets/{StashTab-Cg0Maipz.js → StashTab-jMPqSqYK.js} +1 -1
  42. package/packages/client/dist/assets/{TestRunnerPane-Bmx-1-73.js → TestRunnerPane-DYIpv_WI.js} +1 -1
  43. package/packages/client/dist/assets/{TextSearchDialog-HKGHYT_o.js → TextSearchDialog-CsH0CicI.js} +1 -1
  44. package/packages/client/dist/assets/{ThreadPowerline-JsNrt5F9.js → ThreadPowerline-BR51LRbw.js} +1 -1
  45. package/packages/client/dist/assets/{ThreadStatusPin-R_yWmCoT.js → ThreadStatusPin-3jsnriNM.js} +1 -1
  46. package/packages/client/dist/assets/{ThreadView-BDULTg_h.js → ThreadView-BvpGiKaU.js} +1 -1
  47. package/packages/client/dist/assets/{app-store-zHVd_RAl.js → app-store-BuunUOY_.js} +1 -1
  48. package/packages/client/dist/assets/{automation-store-5RQ6ZEv3.js → automation-store-Ds7mJbGL.js} +1 -1
  49. package/packages/client/dist/assets/{browser-panel-store-CfH8N_j3.js → browser-panel-store-BR-ZItRU.js} +2 -2
  50. package/packages/client/dist/assets/{button-QOkjXCsI.js → button-CQHm_9BV.js} +1 -1
  51. package/packages/client/dist/assets/{combine-BILvIlmd.js → combine-CMqMbzKi.js} +1 -1
  52. package/packages/client/dist/assets/{comment-store-DLNudBAH.js → comment-store-DClJHlTW.js} +1 -1
  53. package/packages/client/dist/assets/{diff-parse-ChUK9GaG.js → diff-parse-DkLbRKa4.js} +1 -1
  54. package/packages/client/dist/assets/{element-9KNKtLXh.js → element-DAFmEtit.js} +1 -1
  55. package/packages/client/dist/assets/{go-to-thread-D6Trf864.js → go-to-thread-DlrKtI6z.js} +1 -1
  56. package/packages/client/dist/assets/{index-CAhq2HfW.js → index-D-mwsIAR.js} +2 -2
  57. package/packages/client/dist/assets/{input-6aKHjE5F.js → input-D5rI8d1M.js} +1 -1
  58. package/packages/client/dist/assets/{items-CQJpN5w7.js → items-DdnLxiXs.js} +1 -1
  59. package/packages/client/dist/assets/{job-store-CMznU474.js → job-store-DFdItRRl.js} +1 -1
  60. package/packages/client/dist/assets/{kbd-CfA3upXH.js → kbd-BdQjAqN0.js} +1 -1
  61. package/packages/client/dist/assets/{loading-state-CiP7DrB8.js → loading-state-6ABy3I6Q.js} +1 -1
  62. package/packages/client/dist/assets/{markdown-components-CaozR9zQ.js → markdown-components-CO4Xjgw8.js} +1 -1
  63. package/packages/client/dist/assets/{native-git-store-1aY8koIG.js → native-git-store-Dey8IDeE.js} +1 -1
  64. package/packages/client/dist/assets/{orchestrator-store-B3cSUPy-.js → orchestrator-store-vo6of4Js.js} +1 -1
  65. package/packages/client/dist/assets/{pipeline-approval-store-DDI5MtT0.js → pipeline-approval-store-D9Z3rsQx.js} +1 -1
  66. package/packages/client/dist/assets/{pr-detail-store-b2ZoxQFv.js → pr-detail-store-uP3CsTyk.js} +1 -1
  67. package/packages/client/dist/assets/{providers-CXnyofPN.js → providers-sConjr-y.js} +1 -1
  68. package/packages/client/dist/assets/{sidebar-chsp_x2A.js → sidebar-BXu1Tj5X.js} +1 -1
  69. package/packages/client/dist/assets/{tabs-DEUV5jFu.js → tabs-Dq37qnSx.js} +1 -1
  70. package/packages/client/dist/assets/{test-store-BDiRn2yK.js → test-store-D3m7zumm.js} +1 -1
  71. package/packages/client/dist/assets/{tooltip-icon-button-B5IohTsG.js → tooltip-icon-button-DWrjjKng.js} +1 -1
  72. package/packages/client/dist/assets/use-active-thread-id-BTdzSrpf.js +1 -0
  73. package/packages/client/dist/assets/{use-branch-switch-BGT_u9P1.js → use-branch-switch-BvI_5QL7.js} +1 -1
  74. package/packages/client/dist/assets/{use-image-lightbox-9mwEVC_V.js → use-image-lightbox-Gkl5e_F-.js} +1 -1
  75. package/packages/client/dist/assets/{use-stable-navigate-BxdZa-Ti.js → use-stable-navigate-xr8fTYTn.js} +1 -1
  76. package/packages/client/dist/assets/{use-terminal-scope-CiW1SN3R.js → use-terminal-scope-Dn5qv7F0.js} +1 -1
  77. package/packages/client/dist/assets/{use-thread-creation-DOTmwLZD.js → use-thread-creation-Bjd9PkP_.js} +1 -1
  78. package/packages/client/dist/assets/{use-thread-search-BndwYsGw.js → use-thread-search-BDzx7Xti.js} +1 -1
  79. package/packages/client/dist/assets/{use-todo-panel-CnifRS4_.js → use-todo-panel-YIn8Cx1Z.js} +1 -1
  80. package/packages/client/dist/assets/{use-unified-prompt-model-groups-BgMV8ZK5.js → use-unified-prompt-model-groups-CKxnKHWp.js} +1 -1
  81. package/packages/client/dist/assets/{use-ws-XNYpFLUp.js → use-ws-DVs_O9qd.js} +3 -3
  82. package/packages/client/dist/assets/{visualizer-loader-LOQJ8YOT.js → visualizer-loader-Cv0jsCMA.js} +1 -1
  83. package/packages/client/dist/assets/{watcher-store-Dzhw8Q9b.js → watcher-store-B9POA6JS.js} +1 -1
  84. package/packages/client/dist/index.html +1 -1
  85. package/packages/runtime/dist/index.js +2 -2
  86. package/packages/runtime/dist/index.js.map +1 -1
  87. package/packages/server/dist/index.js +46 -10
  88. package/packages/client/dist/assets/use-active-thread-id-CegcpJuJ.js +0 -1
@@ -64,6 +64,20 @@ var __export = (target, all) => {
64
64
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
65
65
  var __require = import.meta.require;
66
66
 
67
+ // src/lib/cors-origins.ts
68
+ function resolveCorsOrigins(env = process.env) {
69
+ const devClientPort = env.VITE_PORT || "5173";
70
+ const serverPort = env.PORT || "3001";
71
+ const defaultOrigins = [
72
+ `http://localhost:${devClientPort}`,
73
+ `http://127.0.0.1:${devClientPort}`,
74
+ `http://localhost:${serverPort}`,
75
+ `http://127.0.0.1:${serverPort}`
76
+ ];
77
+ const configuredOrigins = env.CORS_ORIGIN?.split(",").map((s) => s.trim()).filter(Boolean) ?? [];
78
+ return Array.from(new Set([...defaultOrigins, ...configuredOrigins]));
79
+ }
80
+
67
81
  // ../../node_modules/.bun/logform@2.7.0/node_modules/logform/format.js
68
82
  var require_format = __commonJS((exports, module) => {
69
83
  class InvalidFormatError extends Error {
@@ -39018,7 +39032,7 @@ async function initBetterAuth() {
39018
39032
  });
39019
39033
  }
39020
39034
  }
39021
- var SECRET_PATH, statement, ac, member3, viewer, adminRole, owner, DEV_CLIENT_PORT, corsOrigins, PORT, _auth = null, auth;
39035
+ var SECRET_PATH, statement, ac, member3, viewer, adminRole, owner, corsOrigins, PORT, _auth = null, auth;
39022
39036
  var init_auth = __esm(() => {
39023
39037
  init_db();
39024
39038
  init_audit();
@@ -39056,8 +39070,7 @@ var init_auth = __esm(() => {
39056
39070
  member: ["create", "update", "delete"],
39057
39071
  invitation: ["create", "cancel"]
39058
39072
  });
39059
- DEV_CLIENT_PORT = process.env.VITE_PORT || "5173";
39060
- corsOrigins = process.env.CORS_ORIGIN ? process.env.CORS_ORIGIN.split(",").map((s) => s.trim()) : [`http://localhost:${DEV_CLIENT_PORT}`, `http://127.0.0.1:${DEV_CLIENT_PORT}`];
39073
+ corsOrigins = resolveCorsOrigins();
39061
39074
  PORT = parseInt(process.env.PORT || "3001", 10);
39062
39075
  auth = new Proxy({}, {
39063
39076
  get(_target, prop) {
@@ -41925,6 +41938,18 @@ async function proxyToRunnerImpl(c, deps) {
41925
41938
  }
41926
41939
  const tunnelPath = `${path}${url2.search}`;
41927
41940
  const tunnelActive = deps.isRunnerConnected(runnerId);
41941
+ const preferDirectHttp = httpUrl2 ? isLoopbackRunnerUrl(httpUrl2) : false;
41942
+ if (preferDirectHttp && httpUrl2) {
41943
+ try {
41944
+ return await directHttpFetch(c, httpUrl2, path, url2.search, forwardedHeaders, body, deps.directFetch);
41945
+ } catch (httpErr) {
41946
+ log.warn("Direct HTTP to local runner failed; trying tunnel", {
41947
+ namespace: "proxy",
41948
+ runnerId,
41949
+ error: httpErr.message
41950
+ });
41951
+ }
41952
+ }
41928
41953
  if (tunnelActive) {
41929
41954
  try {
41930
41955
  const tunnelResp = await deps.tunnelFetch(runnerId, {
@@ -41969,6 +41994,14 @@ async function proxyToRunnerImpl(c, deps) {
41969
41994
  }
41970
41995
  return c.json({ error: "No runner connected. Check that your runner is online." }, 502);
41971
41996
  }
41997
+ function isLoopbackRunnerUrl(rawUrl) {
41998
+ try {
41999
+ const { hostname: hostname3 } = new URL(rawUrl);
42000
+ return hostname3 === "localhost" || hostname3 === "127.0.0.1" || hostname3 === "::1" || hostname3 === "[::1]";
42001
+ } catch {
42002
+ return false;
42003
+ }
42004
+ }
41972
42005
  async function directHttpFetch(c, httpUrl2, path, search, forwardedHeaders, body, fetchImpl) {
41973
42006
  const targetUrl = `${httpUrl2}${path}${search}`;
41974
42007
  const headers = new Headers;
@@ -65834,21 +65867,25 @@ function registerSocketHandlersWithSchema(socket, spec) {
65834
65867
  }
65835
65868
  function registerSocketRpc(socket, eventName, spec) {
65836
65869
  socket.on(eventName, async (data, ack) => {
65837
- if (typeof ack !== "function")
65870
+ const schema = spec.payloadSchema ?? socketObjectPayloadSchema;
65871
+ const payload = parseSocketPayload(schema, data);
65872
+ const requestId = data != null && typeof data === "object" && !Array.isArray(data) && typeof data._requestId === "string" ? data._requestId : null;
65873
+ const respond = typeof ack === "function" ? ack : requestId ? (response) => {
65874
+ socket.emit("data:response", { requestId, response });
65875
+ } : null;
65876
+ if (!respond)
65838
65877
  return;
65839
65878
  const ctx2 = { socket, eventName };
65840
65879
  for (const mw of spec.middleware ?? []) {
65841
65880
  if (!await mw(ctx2, data))
65842
65881
  return;
65843
65882
  }
65844
- const schema = spec.payloadSchema ?? socketObjectPayloadSchema;
65845
- const payload = parseSocketPayload(schema, data);
65846
65883
  if (payload === null) {
65847
65884
  if (spec.invalidPayloadResponse !== undefined)
65848
- ack(spec.invalidPayloadResponse);
65885
+ respond(spec.invalidPayloadResponse);
65849
65886
  return;
65850
65887
  }
65851
- await spec.handler(ctx2, ack, payload);
65888
+ await spec.handler(ctx2, respond, payload);
65852
65889
  });
65853
65890
  }
65854
65891
  var init_router = __esm(() => {
@@ -67442,8 +67479,7 @@ var { purgeAllRunners: purgeAllRunners2, purgeStaleRunners: purgeStaleRunners2 }
67442
67479
  await purgeAllRunners2();
67443
67480
  await purgeStaleRunners2();
67444
67481
  var app = new Hono24;
67445
- var devClientPort = process.env.VITE_PORT || "5173";
67446
- var corsOrigins2 = process.env.CORS_ORIGIN ? process.env.CORS_ORIGIN.split(",").map((s) => s.trim()) : [`http://localhost:${devClientPort}`, `http://127.0.0.1:${devClientPort}`];
67482
+ var corsOrigins2 = resolveCorsOrigins();
67447
67483
  app.use("*", cors({ origin: corsOrigins2, credentials: true }));
67448
67484
  app.use("*", csrf({ origin: corsOrigins2 }));
67449
67485
  app.use("*", secureHeaders({
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{zr as t}from"./icons-sqwAEN28.js";import{gt as n}from"./index-CAhq2HfW.js";import{M as r}from"./items-CQJpN5w7.js";var i=e(t(),1);function a(){let{pathname:e}=n();return(0,i.useMemo)(()=>r(e).threadId??null,[e])}export{a as t};