mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-29 14:45:24 +00:00
feat: harden plugin api for separate repos, signed updates and generic external login
This commit is contained in:
1 parent
fb9c168b6b
commit
80944301dd
310 files changed
+6577
-4927
No files matched your search
@@ -20,7 +20,8 @@
|
||||
"files:own",
|
||||
"network:serve",
|
||||
"ui:surface",
|
||||
"events:core"
|
||||
"events:core",
|
||||
"db:core-refs"
|
||||
],
|
||||
"provides": [
|
||||
{
|
||||
@@ -71,7 +72,8 @@
|
||||
"key": "enableSessionRecording",
|
||||
"labelKey": "hosts.enableSessionRecording",
|
||||
"editorTab": "general"
|
||||
}
|
||||
},
|
||||
"uses": ["terminal.toolbarStatus"]
|
||||
},
|
||||
"locales": "locales",
|
||||
"platforms": ["linux", "win32", "darwin"]
|
||||
|
||||
@@ -6,10 +6,34 @@
|
||||
"scripts": {
|
||||
"build": "termix-plugin build",
|
||||
"test": "termix-plugin test",
|
||||
"typecheck": "tsc -b ../../tsconfig.plugins.backend.json ../../tsconfig.plugins.frontend.json",
|
||||
"typecheck": "tsc -p .",
|
||||
"validate": "termix-plugin validate"
|
||||
},
|
||||
"dependencies": {
|
||||
"@xterm/addon-fit": "^0.11.0",
|
||||
"@xterm/xterm": "^6.0.0",
|
||||
"guacamole-common-js": "^1.5.0",
|
||||
"lucide-react": "^1.33.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@termix/plugin-sdk": "*"
|
||||
"@termix/plugin-sdk": "^1.0.0",
|
||||
"@types/node": "^26.2.0",
|
||||
"@types/react": "^19.2.18",
|
||||
"@types/react-dom": "^19.2.4",
|
||||
"better-sqlite3": "^13.0.3",
|
||||
"jsdom": "^30.0.1",
|
||||
"vitest": "^4.1.11"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@termix/plugin-sdk": "^1.0.0",
|
||||
"drizzle-orm": "^0.45.2",
|
||||
"express": "^5.2.1",
|
||||
"react": "^19.2.8"
|
||||
},
|
||||
"termix": {
|
||||
"patches": [
|
||||
"xterm-android-ime",
|
||||
"guacamole-common-js-flush"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -50,7 +50,11 @@ async function setup() {
|
||||
.run("user-1", "alice");
|
||||
db.sqlite.prepare("INSERT INTO ssh_data (id) VALUES (?)").run(7);
|
||||
const table = await db.database.define(sessionRecordings);
|
||||
return createSessionRecordingRepository(db.database, table, fakeHosts);
|
||||
return createSessionRecordingRepository(
|
||||
db.database,
|
||||
table,
|
||||
fakeHosts as never,
|
||||
);
|
||||
}
|
||||
|
||||
describe("session recording repository", () => {
|
||||
|
||||
@@ -59,7 +59,11 @@ async function setup(): Promise<{
|
||||
trackSession: () => () => {},
|
||||
recordActivity: async () => {},
|
||||
};
|
||||
const repo = createSessionRecordingRepository(db.database, table, hosts);
|
||||
const repo = createSessionRecordingRepository(
|
||||
db.database,
|
||||
table,
|
||||
hosts as never,
|
||||
);
|
||||
|
||||
const mock = createMockCtx({
|
||||
pluginId: manifest.id,
|
||||
|
||||
Reference in new issue
Block a user