deskssh 0.0.1 → 0.1.0
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.
- package/README.md +26 -55
- package/bin/deskssh.js +36 -0
- package/dist/server.js +851 -0
- package/dist/web/assets/index-Bf6XF_tt.css +32 -0
- package/dist/web/assets/index-D17lV7-E.js +234 -0
- package/{packages/web/dist → dist/web}/index.html +3 -2
- package/package.json +34 -38
- package/.eslintrc.cjs +0 -21
- package/.github/workflows/ci.yml +0 -40
- package/.prettierignore +0 -5
- package/.prettierrc.json +0 -6
- package/CONTRIBUTING.md +0 -59
- package/LICENSE +0 -661
- package/packages/cli/README.md +0 -11
- package/packages/cli/bin/deskssh.js +0 -12
- package/packages/cli/package.json +0 -37
- package/packages/core/dist/index.d.ts +0 -2
- package/packages/core/dist/index.d.ts.map +0 -1
- package/packages/core/dist/index.js +0 -6
- package/packages/core/dist/index.js.map +0 -1
- package/packages/core/package.json +0 -22
- package/packages/core/src/index.test.ts +0 -8
- package/packages/core/src/index.ts +0 -6
- package/packages/core/tsconfig.json +0 -9
- package/packages/server/dist/index.d.ts +0 -3
- package/packages/server/dist/index.d.ts.map +0 -1
- package/packages/server/dist/index.js +0 -7
- package/packages/server/dist/index.js.map +0 -1
- package/packages/server/package.json +0 -19
- package/packages/server/src/index.ts +0 -8
- package/packages/server/tsconfig.json +0 -10
- package/packages/web/dist/assets/index-DNUNZ8WK.js +0 -65
- package/packages/web/index.html +0 -12
- package/packages/web/node_modules/.bin/browserslist +0 -17
- package/packages/web/node_modules/.bin/vite +0 -17
- package/packages/web/package.json +0 -27
- package/packages/web/src/App.tsx +0 -17
- package/packages/web/src/i18n/en.ts +0 -8
- package/packages/web/src/i18n/es.ts +0 -7
- package/packages/web/src/i18n/index.ts +0 -27
- package/packages/web/src/main.tsx +0 -12
- package/packages/web/tsconfig.json +0 -14
- package/packages/web/vite.config.ts +0 -6
- package/pnpm-workspace.yaml +0 -2
- package/specs/001-core/plan.md +0 -246
- package/specs/001-core/spec.md +0 -206
- package/specs/001-core/tasks.md +0 -110
- package/specs/constitution.md +0 -110
- package/specs/glossary.md +0 -35
- package/specs/vision.md +0 -145
- package/tsconfig.base.json +0 -23
- package/tsconfig.json +0 -4
- package/vitest.config.ts +0 -7
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
2
|
+
<html lang="en" class="dark">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>DeskSSH</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-D17lV7-E.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Bf6XF_tt.css">
|
|
8
9
|
</head>
|
|
9
10
|
<body>
|
|
10
11
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,51 +1,47 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deskssh",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"
|
|
5
|
-
"description": "A graphical desktop over plain SSH — workspace root",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "A graphical desktop over plain SSH — run it locally and manage your servers from the browser.",
|
|
6
5
|
"license": "AGPL-3.0-or-later",
|
|
7
6
|
"type": "module",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
},
|
|
11
|
-
"packageManager": "pnpm@9.15.9",
|
|
12
|
-
"scripts": {
|
|
13
|
-
"build": "pnpm -r build",
|
|
14
|
-
"test": "vitest run",
|
|
15
|
-
"test:watch": "vitest",
|
|
16
|
-
"typecheck": "tsc -b",
|
|
17
|
-
"lint": "eslint .",
|
|
18
|
-
"format": "prettier --write .",
|
|
19
|
-
"format:check": "prettier --check ."
|
|
20
|
-
},
|
|
21
|
-
"devDependencies": {
|
|
22
|
-
"@types/node": "^20.14.0",
|
|
23
|
-
"@typescript-eslint/eslint-plugin": "^7.13.0",
|
|
24
|
-
"@typescript-eslint/parser": "^7.13.0",
|
|
25
|
-
"eslint": "^8.57.0",
|
|
26
|
-
"eslint-config-prettier": "^9.1.0",
|
|
27
|
-
"prettier": "^3.3.2",
|
|
28
|
-
"typescript": "^5.4.5",
|
|
29
|
-
"vitest": "^1.6.0"
|
|
30
|
-
},
|
|
31
|
-
"main": "index.js",
|
|
32
|
-
"dependencies": {
|
|
33
|
-
"eslint-scope": "^7.2.2",
|
|
34
|
-
"eslint-visitor-keys": "^3.4.3"
|
|
35
|
-
},
|
|
36
|
-
"repository": {
|
|
37
|
-
"type": "git",
|
|
38
|
-
"url": "git+https://github.com/nestorrguez/DeskSSH.git"
|
|
7
|
+
"bin": {
|
|
8
|
+
"deskssh": "bin/deskssh.js"
|
|
39
9
|
},
|
|
10
|
+
"files": [
|
|
11
|
+
"bin",
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
40
15
|
"keywords": [
|
|
41
16
|
"ssh",
|
|
42
|
-
"
|
|
17
|
+
"sftp",
|
|
43
18
|
"gui",
|
|
44
|
-
"
|
|
19
|
+
"desktop",
|
|
20
|
+
"sysadmin",
|
|
21
|
+
"devops",
|
|
22
|
+
"agentless"
|
|
45
23
|
],
|
|
46
|
-
"
|
|
24
|
+
"homepage": "https://github.com/nestorrguez/DeskSSH",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/nestorrguez/DeskSSH.git"
|
|
28
|
+
},
|
|
47
29
|
"bugs": {
|
|
48
30
|
"url": "https://github.com/nestorrguez/DeskSSH/issues"
|
|
49
31
|
},
|
|
50
|
-
"
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=20"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "true",
|
|
37
|
+
"bundle": "node build.mjs",
|
|
38
|
+
"prepack": "node build.mjs"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"ssh2": "^1.15.0",
|
|
42
|
+
"ws": "^8.21.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"esbuild": "^0.28.1"
|
|
46
|
+
}
|
|
51
47
|
}
|
package/.eslintrc.cjs
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/* eslint-env node */
|
|
2
|
-
module.exports = {
|
|
3
|
-
root: true,
|
|
4
|
-
parser: '@typescript-eslint/parser',
|
|
5
|
-
parserOptions: {
|
|
6
|
-
ecmaVersion: 2022,
|
|
7
|
-
sourceType: 'module',
|
|
8
|
-
ecmaFeatures: { jsx: true },
|
|
9
|
-
},
|
|
10
|
-
plugins: ['@typescript-eslint'],
|
|
11
|
-
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
|
|
12
|
-
env: {
|
|
13
|
-
es2022: true,
|
|
14
|
-
node: true,
|
|
15
|
-
browser: true,
|
|
16
|
-
},
|
|
17
|
-
ignorePatterns: ['dist', 'node_modules', '*.cjs'],
|
|
18
|
-
rules: {
|
|
19
|
-
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
|
20
|
-
},
|
|
21
|
-
};
|
package/.github/workflows/ci.yml
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [main]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
build:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
steps:
|
|
13
|
-
- uses: actions/checkout@v4
|
|
14
|
-
|
|
15
|
-
- name: Setup pnpm
|
|
16
|
-
uses: pnpm/action-setup@v4
|
|
17
|
-
|
|
18
|
-
- name: Setup Node.js
|
|
19
|
-
uses: actions/setup-node@v4
|
|
20
|
-
with:
|
|
21
|
-
node-version: 22
|
|
22
|
-
cache: pnpm
|
|
23
|
-
|
|
24
|
-
- name: Install dependencies
|
|
25
|
-
run: pnpm install --frozen-lockfile
|
|
26
|
-
|
|
27
|
-
- name: Format check
|
|
28
|
-
run: pnpm format:check
|
|
29
|
-
|
|
30
|
-
- name: Lint
|
|
31
|
-
run: pnpm lint
|
|
32
|
-
|
|
33
|
-
- name: Typecheck
|
|
34
|
-
run: pnpm typecheck && pnpm --filter @deskssh/web typecheck
|
|
35
|
-
|
|
36
|
-
- name: Test
|
|
37
|
-
run: pnpm test
|
|
38
|
-
|
|
39
|
-
- name: Build
|
|
40
|
-
run: pnpm build
|
package/.prettierignore
DELETED
package/.prettierrc.json
DELETED
package/CONTRIBUTING.md
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# Contributing to DeskSSH
|
|
2
|
-
|
|
3
|
-
Thanks for your interest in DeskSSH! This project is built with **Spec-Driven
|
|
4
|
-
Development (SDD)**: design decisions are made in `specs/` **before** they reach the
|
|
5
|
-
code. That keeps the project coherent and lets anyone understand _why_ things are
|
|
6
|
-
the way they are.
|
|
7
|
-
|
|
8
|
-
## Ground rules
|
|
9
|
-
|
|
10
|
-
- **English only** in the repository (code, comments, docs, commit messages, specs).
|
|
11
|
-
The repo is public and international.
|
|
12
|
-
- **Read the specs first.** Start with [`specs/vision.md`](specs/vision.md) and
|
|
13
|
-
[`specs/constitution.md`](specs/constitution.md). The constitution lists
|
|
14
|
-
**non-negotiable** principles — if a change conflicts with one, it won't be
|
|
15
|
-
accepted unless the constitution is explicitly amended.
|
|
16
|
-
- **Spec before code.** No behavior change lands without the spec being updated
|
|
17
|
-
first. For a non-trivial change, open a discussion/PR on the relevant document in
|
|
18
|
-
`specs/` before writing code.
|
|
19
|
-
- **Traceability.** Functional requirements have IDs (`FR-XXX`). Reference the
|
|
20
|
-
`FR-`/Article a change serves in the spec, tasks and PR description.
|
|
21
|
-
|
|
22
|
-
## Project layout
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
specs/ Source of truth (vision, constitution, glossary, 001-core/*)
|
|
26
|
-
packages/
|
|
27
|
-
core/ Frontend-agnostic core (SSH sessions, adapters, contract)
|
|
28
|
-
server/ Web gateway (keeps SSH sessions, exposes the API)
|
|
29
|
-
web/ Browser UI (desktop shell + app views)
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Local development
|
|
33
|
-
|
|
34
|
-
Requirements: **Node.js >= 20** and **pnpm 9** (`corepack enable pnpm` or
|
|
35
|
-
`npm i -g pnpm@9`).
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
pnpm install # install all workspaces
|
|
39
|
-
pnpm typecheck # type-check core + server
|
|
40
|
-
pnpm lint # ESLint
|
|
41
|
-
pnpm test # Vitest
|
|
42
|
-
pnpm build # build all packages
|
|
43
|
-
pnpm format # apply Prettier
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
CI runs format-check, lint, typecheck, test and build on every push/PR — please make
|
|
47
|
-
sure they pass locally first.
|
|
48
|
-
|
|
49
|
-
## Commits & pull requests
|
|
50
|
-
|
|
51
|
-
- Keep commits focused; write clear messages in English.
|
|
52
|
-
- Describe **what** and **why**, and reference the `FR-`/Article involved.
|
|
53
|
-
- Be kind and constructive. DeskSSH aims to be a welcoming, accessibility-first
|
|
54
|
-
project.
|
|
55
|
-
|
|
56
|
-
## License
|
|
57
|
-
|
|
58
|
-
By contributing, you agree that your contributions are licensed under
|
|
59
|
-
**AGPL-3.0-or-later**, the project's license.
|