Commit Graph

1296 Commits

Author SHA1 Message Date
Mike Sawka
01b5d71709
new wshrpc mechanism (#112)
lots of changes. new wshrpc implementation. unify websocket, web,
blockcontroller, domain sockets, and terminal inputs to all use the new
rpc system.

lots of moving files around to deal with circular dependencies

use new wshrpc as a client in wsh cmd
2024-07-17 15:24:43 -07:00
Sylvie Crowe
b178434c0a
Directory Formatting (#109)
Mostly small style changes so far.
- allow scrolling the table horizontally
- minimum sizes on columns
- datetime format changes
- left/right justify on some columns
2024-07-16 13:24:04 -07:00
Sylvie Crowe
3385608b4a
SSH Port (#111)
This enables basic ssh for connections using publickey auth without a
passphrase. It can be established by creating a widget with the "meta"
property set to
```
{
    "connection": "<user>@<host>:<port>"
}
```
where the :<port> is optional.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-07-15 18:00:10 -07:00
Red J Adaya
e140076801
webview controls (#110) 2024-07-15 09:40:28 -07:00
Jarek Ceborski
e012cc16e6 Added window transparency ans styles 2024-07-12 21:12:34 +02:00
Red J Adaya
7bd0b743f4
dynamic csvview height (#101) 2024-07-10 15:06:19 -07:00
Sylvia Crowe
13f68c0cb8 fix: remove x overflow on directory view
The header wasn't moving along with the rows when they were scrolled, so
the scroll bar has been removed.
2024-07-10 02:36:41 -07:00
Sylvie Crowe
cb77c2047e
More Directory Formatting (#108)
This makes the following changes
- allow directory rows to overflow their container on resize (allowing
scroll as a temporary test)
- fix directory width to account for resizer width
- add ellipsis to name column on table resize
- add the rightmost resizer back (more as a temporary test)
- do not search when the filtered contents are empty
- cap the index to the end of the list of the number of entries becomes
less than the current index
- do not redo backend call on filter or search of directory results
- add letter spacing on header row
2024-07-10 02:21:29 -07:00
Red J Adaya
ff8fe94b1c
use flexbox for responsive waveai (#107) 2024-07-09 18:15:37 -07:00
sawka
be392ee755 start unix domain socket server. fix a couple small bugs 2024-07-09 14:31:16 -07:00
sawka
fa3a670603 split web server into a listen and serve call 2024-07-09 13:47:39 -07:00
sawka
f3b649aef1 optional 2nd arg to wsh getmeta to get a specific metadata key 2024-07-09 11:50:52 -07:00
sawka
edf4c45a6d remove height calculation (flex seems to work), also synchronize meta.url with the real url 2024-07-09 11:42:24 -07:00
Mike Sawka
4be8a1e37e
move codeedit to directory. new useLongClick hook. show quick navig… (#105)
move codeedit to directory. new useLongClick hook. show quick navigation for directoryview on longclick of folder icon. lots more generic
stuff for header
new fitaddon for xtermjs
more fixes for xtermjs scrollbars
2024-07-08 23:13:12 -07:00
Red J Adaya
6d6102b912
fix blocks blurry border (#104) 2024-07-08 22:31:38 -07:00
sawka
c57c7ea220 useAtomValueSafe 2024-07-08 18:30:11 -07:00
Sylvie Crowe
f4702cca29
More Directory Formatting (#103)
This change is to make general directory formatting match the current
designs in figma. It doesn't change the resize behavior yet, but that
will be added very soon.
2024-07-08 16:42:01 -07:00
sawka
b97802b1ac modifying viewmodel to be more flexible -- preicon button and endiconbuttons 2024-07-08 16:36:30 -07:00
sawka
3b01234914 POC to get new context menu items from the viewmodel -> settings 2024-07-08 15:32:10 -07:00
sawka
68db3d4757 fix object-fit 2024-07-08 15:20:52 -07:00
Mike Sawka
848a9af9a0
dynamic header updates (#102) 2024-07-08 15:04:48 -07:00
Red J Adaya
0cb9b8940b
new tabs design 2 (#100) 2024-07-08 15:02:52 -07:00
Red J Adaya
186ca686e3
use useParentHeight hook in waveai (#97) 2024-07-05 20:02:49 -07:00
Red J Adaya
1d83062507
new tabs design (#99) 2024-07-05 19:54:28 -07:00
sawka
b0ca64f3cb null check 2024-07-05 16:20:36 -07:00
sawka
15cc681b4b testing new default header 2024-07-05 15:47:35 -07:00
sawka
a382d5d41e fix inter font for variable weight 2024-07-05 14:57:11 -07:00
sawka
85d8bd35c7 switch to use hacknerdmono font 2024-07-05 14:23:39 -07:00
sawka
11a4e4b2e1 switch to inter font 2024-07-05 14:09:27 -07:00
Red J Adaya
9b3042829c
ai chat enhancements (#96) 2024-07-04 09:07:29 -07:00
Red J Adaya
d8ff2cb806
height adjuster (#94)
This hook observes and returns the current height of a component.
2024-07-04 09:07:06 -07:00
Red J Adaya
cbd8512ed6
remove duplicate css vars (#95) 2024-07-04 09:04:59 -07:00
Evan Simkowitz
449f8bf7ef
Fix error where resize handle doesn't work after creating new block 2024-07-03 15:31:39 -07:00
sawka
741ea2d0ae null pointer defense for widgets. log settings.json at startup in console 2024-07-03 14:44:48 -07:00
Evan Simkowitz
d892bbc372
update yarn version 2024-07-03 14:36:38 -07:00
Sylvie Crowe
8a28a48c4e
Directory Formatting Changes (#92)
This make the following changes:
- widen column resize handles
- pin the `..` directory to the top row when it is visible
- add some clarification to datetime format
- fix arrow keys for directory parsing to only be local
- switch to using keyutil for keypresses
- only use the block's dummy focus if another focus element doesn't
exist
- add a gray background to directory nav buttons when they are focused
- typing into search box works as long as the focus is in the directory
view block
- add a popup in the table to notify when searching/filtering
- remove original search box
2024-07-03 14:34:55 -07:00
Red J Adaya
1f973b3fdc
WaveAI (#93) 2024-07-03 14:32:55 -07:00
Evan Simkowitz
75c9e211d9
Add resize handles to the layout system (#66)
Adds resizability to the layout system.

Hovering in the margins of a block will highlight the available resize
handle and show a cursor indicating its resize direction. Dragging will
cause the resizing nodes to blur out and be replaced by an outline.
Releasing the handle will commit the new resize operation and cause the
underlying nodes to update to their new sizes.

We'll want to refactor this in the future to move all layout and resize
logic into a shared model that the TileLayout code can talk to, but
that's a future improvement. For now, this makes some compromises,
mainly that the logic is kind of distributed around.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-07-03 14:31:02 -07:00
sawka
b2cdd441d1 keydownWrapper 2024-06-28 17:53:35 -07:00
Evan Simkowitz
50a4074c39
Fix new window from menu bar (#91)
Fixes the New Window menu item so that it shows the new window after it
loads and captures any errors that occur. Also adds a keyboard shortcut
for new window and uses the native shortcut for close window.
2024-06-28 16:24:40 -07:00
Red J Adaya
4c45bca56b
webview fixes (#88)
- Added restart button
- Handle localhost URLs
- Handle in-page navigation(SPA)
2024-06-28 14:53:50 -07:00
dependabot[bot]
e162960c9e
Bump ws from 8.17.0 to 8.17.1 in the npm_and_yarn group across 1 directory (#90)
Bumps the npm_and_yarn group with 1 update in the / directory:
[ws](https://github.com/websockets/ws).

Updates `ws` from 8.17.0 to 8.17.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/websockets/ws/releases">ws's
releases</a>.</em></p>
<blockquote>
<h2>8.17.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixed a DoS vulnerability (<a
href="https://redirect.github.com/websockets/ws/issues/2231">#2231</a>).</li>
</ul>
<p>A request with a number of headers exceeding
the[<code>server.maxHeadersCount</code>][]
threshold could be used to crash a ws server.</p>
<pre lang="js"><code>const http = require('http');
const WebSocket = require('ws');
<p>const wss = new WebSocket.Server({ port: 0 }, function () {
const chars =
&quot;!#$%&amp;'*+-.0123456789abcdefghijklmnopqrstuvwxyz^_`|~&quot;.split('');
const headers = {};
let count = 0;</p>
<p>for (let i = 0; i &lt; chars.length; i++) {
if (count === 2000) break;</p>
<pre><code>for (let j = 0; j &amp;lt; chars.length; j++) {
  const key = chars[i] + chars[j];
  headers[key] = 'x';

  if (++count === 2000) break;
}
</code></pre>
<p>}</p>
<p>headers.Connection = 'Upgrade';
headers.Upgrade = 'websocket';
headers['Sec-WebSocket-Key'] = 'dGhlIHNhbXBsZSBub25jZQ==';
headers['Sec-WebSocket-Version'] = '13';</p>
<p>const request = http.request({
headers: headers,
host: '127.0.0.1',
port: wss.address().port
});</p>
<p>request.end();
});
</code></pre></p>
<p>The vulnerability was reported by <a
href="https://github.com/rrlapointe">Ryan LaPointe</a> in <a
href="https://redirect.github.com/websockets/ws/issues/2230">websockets/ws#2230</a>.</p>
<p>In vulnerable versions of ws, the issue can be mitigated in the
following ways:</p>
<ol>
<li>Reduce the maximum allowed length of the request headers using the
[<code>--max-http-header-size=size</code>][] and/or the
[<code>maxHeaderSize</code>][] options so
that no more headers than the <code>server.maxHeadersCount</code> limit
can be sent.</li>
</ol>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3c56601092"><code>3c56601</code></a>
[dist] 8.17.1</li>
<li><a
href="e55e5106f1"><code>e55e510</code></a>
[security] Fix crash when the Upgrade header cannot be read (<a
href="https://redirect.github.com/websockets/ws/issues/2231">#2231</a>)</li>
<li><a
href="6a00029edd"><code>6a00029</code></a>
[test] Increase code coverage</li>
<li><a
href="ddfe4a804d"><code>ddfe4a8</code></a>
[perf] Reduce the amount of <code>crypto.randomFillSync()</code>
calls</li>
<li>See full diff in <a
href="https://github.com/websockets/ws/compare/8.17.0...8.17.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ws&package-manager=npm_and_yarn&previous-version=8.17.0&new-version=8.17.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/wavetermdev/thenextwave/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-28 14:52:50 -07:00
Evan Simkowitz
8831029e87
Add CodeQL action 2024-06-28 11:21:43 -07:00
Sylvie Crowe
ecd2464bbf
Hidden Files (#86)
Adds the following changes
- rename "Permissions" to "Perm"
- use a "-" if the mimetype is unknown
- add a button to hide and show hidden files
- fix the datetime to format based on how far in the past the date is
2024-06-27 18:13:42 -07:00
Red J Adaya
4d4e026749
webview fixes (#83) 2024-06-27 18:09:30 -07:00
Evan Simkowitz
f1c8d63ab2
Make the drag preview always use the tech frame (#87)
Overrides the frameless block frame if generating a drag preview. Also
fixes a type issue with BlockFrame_Tech
2024-06-27 15:26:40 -07:00
Evan Simkowitz
c9cf88eb5e
Use translate3d for layout transforms to trick browser into using GPU acceleration (#85) 2024-06-27 14:36:58 -07:00
Sylvie Crowe
23e1c8797d
Search Fixes (#84)
This change:
- now clears the search box when entering a new directory
- fixes some styling issues
- adds a .. to the path
- uses the correct path (except on the initial start of the directory
widget)
2024-06-27 12:30:08 -07:00
Sylvia Crowe
76c909114e refactor: clean up debug log messages 2024-06-26 17:01:12 -07:00
Sylvie Crowe
5da3257031
Directory Search (#82)
This adds a frontend directory search by filtering out files that don't
match. It also allows navigation of the directory using the arrow keys
while maintaining focus on the search box.
2024-06-26 16:59:45 -07:00