sshler 0.7.2__tar.gz → 0.7.3__tar.gz

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 (129) hide show
  1. {sshler-0.7.2/sshler.egg-info → sshler-0.7.3}/PKG-INFO +1 -1
  2. {sshler-0.7.2 → sshler-0.7.3}/pyproject.toml +1 -1
  3. {sshler-0.7.2 → sshler-0.7.3}/sshler/cli.py +9 -1
  4. {sshler-0.7.2 → sshler-0.7.3/sshler.egg-info}/PKG-INFO +1 -1
  5. {sshler-0.7.2 → sshler-0.7.3}/LICENSE +0 -0
  6. {sshler-0.7.2 → sshler-0.7.3}/MANIFEST.in +0 -0
  7. {sshler-0.7.2 → sshler-0.7.3}/README.md +0 -0
  8. {sshler-0.7.2 → sshler-0.7.3}/scripts/check_frontend_dist.py +0 -0
  9. {sshler-0.7.2 → sshler-0.7.3}/setup.cfg +0 -0
  10. {sshler-0.7.2 → sshler-0.7.3}/sshler/__init__.py +0 -0
  11. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/__init__.py +0 -0
  12. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/archive.py +0 -0
  13. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/auth.py +0 -0
  14. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/batch.py +0 -0
  15. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/boxes.py +0 -0
  16. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/config.py +0 -0
  17. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/dependencies.py +0 -0
  18. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/files.py +0 -0
  19. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/grep.py +0 -0
  20. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/helpers.py +0 -0
  21. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/models.py +0 -0
  22. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/rate_limiting.py +0 -0
  23. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/recovery.py +0 -0
  24. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/search.py +0 -0
  25. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/sessions.py +0 -0
  26. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/snippets.py +0 -0
  27. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/terminal.py +0 -0
  28. {sshler-0.7.2 → sshler-0.7.3}/sshler/api/tunnels.py +0 -0
  29. {sshler-0.7.2 → sshler-0.7.3}/sshler/auth.py +0 -0
  30. {sshler-0.7.2 → sshler-0.7.3}/sshler/config.py +0 -0
  31. {sshler-0.7.2 → sshler-0.7.3}/sshler/config_cache.py +0 -0
  32. {sshler-0.7.2 → sshler-0.7.3}/sshler/rate_limit.py +0 -0
  33. {sshler-0.7.2 → sshler-0.7.3}/sshler/scripts/install-sshler-task.ps1 +0 -0
  34. {sshler-0.7.2 → sshler-0.7.3}/sshler/scripts/remove-sshler-task.ps1 +0 -0
  35. {sshler-0.7.2 → sshler-0.7.3}/sshler/scripts/run-sshler.ps1 +0 -0
  36. {sshler-0.7.2 → sshler-0.7.3}/sshler/session.py +0 -0
  37. {sshler-0.7.2 → sshler-0.7.3}/sshler/settings.py +0 -0
  38. {sshler-0.7.2 → sshler-0.7.3}/sshler/snapshot.py +0 -0
  39. {sshler-0.7.2 → sshler-0.7.3}/sshler/spa.py +0 -0
  40. {sshler-0.7.2 → sshler-0.7.3}/sshler/ssh.py +0 -0
  41. {sshler-0.7.2 → sshler-0.7.3}/sshler/ssh_config.py +0 -0
  42. {sshler-0.7.2 → sshler-0.7.3}/sshler/ssh_pool.py +0 -0
  43. {sshler-0.7.2 → sshler-0.7.3}/sshler/state.py +0 -0
  44. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/base.js +0 -0
  45. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/command-palette.js +0 -0
  46. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/Alert-C0caXY3O.js +0 -0
  47. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/BoxesView-Cw5NiFP6.css +0 -0
  48. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/BoxesView-DCsH8F6Q.js +0 -0
  49. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/DirectoryPickerModal-CVB_AH0M.css +0 -0
  50. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/DirectoryPickerModal-DlIkiyp1.js +0 -0
  51. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/FilesView-BFEnr1Va.css +0 -0
  52. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/FilesView-jrF0GwSm.js +0 -0
  53. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/Grid-B_OzHEym.js +0 -0
  54. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/InputNumber-XDnEotgL.js +0 -0
  55. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/LoginView-BLrnakeI.css +0 -0
  56. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/LoginView-C2biy_5H.js +0 -0
  57. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/MultiTerminalView-C8x4yNn3.js +0 -0
  58. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/MultiTerminalView-UnOQ5utL.css +0 -0
  59. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/NotFoundView-DYaoqkDb.css +0 -0
  60. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/NotFoundView-D_GMBtkq.js +0 -0
  61. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/OverviewView-BSwVX2Hs.js +0 -0
  62. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/OverviewView-SxVVVBkg.css +0 -0
  63. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/PhCircle.vue-BD-yU_HB.js +0 -0
  64. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/PhHouse.vue-BwwabvLx.js +0 -0
  65. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/PhPlus.vue-ChJ-UG0M.js +0 -0
  66. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/PhPushPinSimple.vue-DBP-0k94.js +0 -0
  67. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/PhTrash.vue-N4dJGebi.js +0 -0
  68. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/SettingsView-DCCByJuu.js +0 -0
  69. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/SettingsView-xrtebMdI.css +0 -0
  70. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/Spin-13rKpfWM.js +0 -0
  71. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/Switch-DsrNJCg_.js +0 -0
  72. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/TerminalView--aIl3nME.js +0 -0
  73. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/TerminalView-DKOHtH_z.css +0 -0
  74. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/favorites-CJMYgFyA.js +0 -0
  75. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/index-BCipBsn9.js +0 -0
  76. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/assets/index-Cwi9_lHU.css +0 -0
  77. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/favicon.png +0 -0
  78. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/fonts/MonaspaceNeon-Bold.woff2 +0 -0
  79. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/fonts/MonaspaceNeon-Regular.woff2 +0 -0
  80. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/fonts/MonaspaceNeon-Variable.woff2 +0 -0
  81. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/icon-192.png +0 -0
  82. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/icon-512-maskable.png +0 -0
  83. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/icon-512.png +0 -0
  84. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/index.html +0 -0
  85. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/logo.png +0 -0
  86. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/dist/manifest.webmanifest +0 -0
  87. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/favicon-terminal-local.svg +0 -0
  88. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/favicon-terminal.svg +0 -0
  89. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/favicon.png +0 -0
  90. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/favicon.svg +0 -0
  91. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/file-browser.js +0 -0
  92. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/file-edit.js +0 -0
  93. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/file-view.js +0 -0
  94. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/logo.png +0 -0
  95. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/manifest.json +0 -0
  96. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/multi-session.js +0 -0
  97. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/style.css +0 -0
  98. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/sw.js +0 -0
  99. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/term.js +0 -0
  100. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/vendor/xterm/xterm-addon-fit.js +0 -0
  101. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/vendor/xterm/xterm-addon-search.js +0 -0
  102. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/vendor/xterm/xterm.css +0 -0
  103. {sshler-0.7.2 → sshler-0.7.3}/sshler/static/vendor/xterm/xterm.js +0 -0
  104. {sshler-0.7.2 → sshler-0.7.3}/sshler/validation.py +0 -0
  105. {sshler-0.7.2 → sshler-0.7.3}/sshler/webapp.py +0 -0
  106. {sshler-0.7.2 → sshler-0.7.3}/sshler.egg-info/SOURCES.txt +0 -0
  107. {sshler-0.7.2 → sshler-0.7.3}/sshler.egg-info/dependency_links.txt +0 -0
  108. {sshler-0.7.2 → sshler-0.7.3}/sshler.egg-info/entry_points.txt +0 -0
  109. {sshler-0.7.2 → sshler-0.7.3}/sshler.egg-info/requires.txt +0 -0
  110. {sshler-0.7.2 → sshler-0.7.3}/sshler.egg-info/top_level.txt +0 -0
  111. {sshler-0.7.2 → sshler-0.7.3}/tests/test_api_v1.py +0 -0
  112. {sshler-0.7.2 → sshler-0.7.3}/tests/test_archive.py +0 -0
  113. {sshler-0.7.2 → sshler-0.7.3}/tests/test_basic.py +0 -0
  114. {sshler-0.7.2 → sshler-0.7.3}/tests/test_batch_ops.py +0 -0
  115. {sshler-0.7.2 → sshler-0.7.3}/tests/test_command_injection.py +0 -0
  116. {sshler-0.7.2 → sshler-0.7.3}/tests/test_config.py +0 -0
  117. {sshler-0.7.2 → sshler-0.7.3}/tests/test_database_indexes.py +0 -0
  118. {sshler-0.7.2 → sshler-0.7.3}/tests/test_dev_workflow.py +0 -0
  119. {sshler-0.7.2 → sshler-0.7.3}/tests/test_grep.py +0 -0
  120. {sshler-0.7.2 → sshler-0.7.3}/tests/test_handshake_status.py +0 -0
  121. {sshler-0.7.2 → sshler-0.7.3}/tests/test_httpx_ws.py +0 -0
  122. {sshler-0.7.2 → sshler-0.7.3}/tests/test_path_validation.py +0 -0
  123. {sshler-0.7.2 → sshler-0.7.3}/tests/test_rate_limit.py +0 -0
  124. {sshler-0.7.2 → sshler-0.7.3}/tests/test_search.py +0 -0
  125. {sshler-0.7.2 → sshler-0.7.3}/tests/test_session_auth.py +0 -0
  126. {sshler-0.7.2 → sshler-0.7.3}/tests/test_snippets.py +0 -0
  127. {sshler-0.7.2 → sshler-0.7.3}/tests/test_ssh.py +0 -0
  128. {sshler-0.7.2 → sshler-0.7.3}/tests/test_tunnels.py +0 -0
  129. {sshler-0.7.2 → sshler-0.7.3}/tests/test_websocket.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sshler
3
- Version: 0.7.2
3
+ Version: 0.7.3
4
4
  Summary: A local FastAPI-powered SSH multiplexer for tmux-in-browser — from your laptop only.
5
5
  Author-email: Gabu <gabu@gabu.quest>
6
6
  License-Expression: MIT
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "sshler"
8
- version = "0.7.2"
8
+ version = "0.7.3"
9
9
  description = "A local FastAPI-powered SSH multiplexer for tmux-in-browser — from your laptop only."
10
10
  readme = "README.md"
11
11
  requires-python = ">=3.12"
@@ -358,8 +358,16 @@ def serve(
358
358
  指定したホストとポートでリクエスト受付を開始します。
359
359
  """
360
360
 
361
+ # Auto-add the actual listening address to allowed origins
362
+ # so origin checks pass regardless of custom port
363
+ auto_origins = list(allow_origins or [])
364
+ listen_origins = {f"http://{host}:{port}", f"http://localhost:{port}", f"http://127.0.0.1:{port}"}
365
+ for o in listen_origins:
366
+ if o not in auto_origins:
367
+ auto_origins.append(o)
368
+
361
369
  settings = ServerSettings(
362
- allow_origins=allow_origins or [],
370
+ allow_origins=auto_origins,
363
371
  csrf_token=token or secrets.token_urlsafe(32),
364
372
  max_upload_bytes=max_upload_mb * 1024 * 1024,
365
373
  allow_ssh_alias=allow_ssh_alias,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sshler
3
- Version: 0.7.2
3
+ Version: 0.7.3
4
4
  Summary: A local FastAPI-powered SSH multiplexer for tmux-in-browser — from your laptop only.
5
5
  Author-email: Gabu <gabu@gabu.quest>
6
6
  License-Expression: MIT
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes