mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-19 13:36:48 +00:00
9ce33921d2
Round out the author experience so the loop is create -> dev -> release/submit without hand-work or a round-trip through registry review. - `dev`: run a plugin locally with a real request loop and hot reload — no full TREK. Injects a ctx that enforces the manifest's granted permissions (an ungranted call throws, so you catch a missing grant), backs db:own with a real SQLite file (node:sqlite), serves routes under /api and page/widget UI at /ui, and reloads on save. Dependency-free (node:http + built-ins). - `preflight`: run the registry CI checks locally over the network (tag->commit, manifest parity, artifact sha256/size, native scan, README quality gate) so a green run predicts a green CI. - `submit`: fork TREK-Plugins, branch off current main, write/merge the entry, push, and open the PR — the last manual publishing step, automated. - `keygen`/`sign` + `--sign` on entry/release/submit: dependency-free Ed25519 author signatures over the artifact bytes, verified 1:1 against the server's TOFU check. Fills authorPublicKey + signature and guards against a key change. - `create` gains an interactive wizard (id/type/author/permissions) and flags. - README + Development/Publishing/Permissions wikis document the new flow. 24 tests pass (sign round-trips through a server-shaped verifier; zip reader; scaffold options; entry signing + key-change guard).
38 lines
1.3 KiB
JSON
38 lines
1.3 KiB
JSON
{
|
|
"name": "trek-plugin-sdk",
|
|
"version": "1.1.0",
|
|
"description": "SDK for building TREK plugins: types, definePlugin, a mock host, manifest validation, and the create-trek-plugin / trek-plugin CLIs.",
|
|
"type": "module",
|
|
"license": "MIT",
|
|
"author": "mauriceboe",
|
|
"homepage": "https://github.com/mauriceboe/TREK/wiki/Plugin-Development",
|
|
"repository": { "type": "git", "url": "git+https://github.com/mauriceboe/TREK.git", "directory": "plugin-sdk" },
|
|
"bugs": { "url": "https://github.com/mauriceboe/TREK/issues" },
|
|
"engines": { "node": ">=18" },
|
|
"publishConfig": { "access": "public" },
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" },
|
|
"./testing": { "types": "./dist/mock-host.d.ts", "import": "./dist/mock-host.js" }
|
|
},
|
|
"bin": {
|
|
"trek-plugin-sdk": "./dist/cli/trek-plugin.js",
|
|
"trek-plugin": "./dist/cli/trek-plugin.js",
|
|
"create-trek-plugin": "./dist/cli/create.js"
|
|
},
|
|
"files": ["dist"],
|
|
"scripts": {
|
|
"build": "tsc -p tsconfig.json",
|
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
"test": "vitest run",
|
|
"prepublishOnly": "npm run build && npm test"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.0.0",
|
|
"typescript": "^5.6.0",
|
|
"vitest": "^2.1.0"
|
|
},
|
|
"keywords": ["trek", "plugin", "sdk"]
|
|
}
|