Files
legion_kk/package.json
self 77ca13f17a refactor: finish actor model cleanup
Collapse provider persistence forwarding into direct store dependencies and pass broker/persistence services through the resource actor stack.\n\nRemove stale renderer tabs, old review artifacts, Structurizr leftovers, and per-file unit npm scripts. Update architecture docs and statecharts to match the final actor model cut.
2026-06-12 19:28:25 +02:00

127 lines
6.7 KiB
JSON

{
"name": "legion-kk",
"version": "0.3.0",
"description": "Tribes cloud deployment manager",
"author": "Steffen Beyer <steffen@beyer.io>",
"repository": {
"type": "git",
"url": "https://git.teralink.net/tribes/legion_kk.git"
},
"private": true,
"main": "./out/main/index.js",
"scripts": {
"fetch:hcloud-spec": "node scripts/fetch-hcloud-spec.mjs",
"generate:hcloud-client": "npx @hey-api/openapi-ts -i hey-api/backend/hcloud.json -o src/client/hcloud",
"update:hcloud-client": "npm run fetch:hcloud-spec && npm run generate:hcloud-client",
"fetch:serverspace-spec": "node scripts/fetch-serverspace-spec.mjs",
"generate:serverspace-client": "npx @hey-api/openapi-ts -i hey-api/backend/serverspace.json -o src/client/serverspace",
"update:serverspace-client": "npm run fetch:serverspace-spec && npm run generate:serverspace-client",
"fetch:provider-catalogs": "node --import tsx scripts/fetch-provider-catalogs.ts",
"update:provider-catalogs": "npm run fetch:provider-catalogs",
"fetch:cascadia-fonts": "node --import tsx scripts/fetch-cascadia-fonts.ts",
"update:cascadia-fonts": "npm run fetch:cascadia-fonts",
"generate:icons": "node --import tsx scripts/generate-app-icons.ts",
"generate:guix-base-channel": "node --import tsx scripts/generate-guix-base-channel.ts",
"generate:world-map": "bash ./scripts/generate-world-map.sh",
"update:kexec-installer-pin": "node --import tsx scripts/update-kexec-installer-pin.ts",
"build:kexec-image": "bash ./scripts/build-kexec-image.sh",
"format": "prettier --write .",
"format:check": "prettier --check .",
"lint": "eslint --cache .",
"lint:fix": "eslint --cache . --fix",
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
"svelte-check": "svelte-check --tsconfig ./tsconfig.json",
"typecheck": "npm run typecheck:node && npm run svelte-check",
"check": "npm run typecheck",
"docs:diagrams": "node --import tsx scripts/render-doc-diagram-svgs.ts",
"docs": "npm run docs:diagrams",
"precommit": "npm run lint:fix && npm run format && npm run typecheck && npm test",
"test": "npm run test:unit && npm run test:integration:mock",
"test:unit": "node --import tsx --test \"tests/unit/**/*.test.ts\"",
"test:unit:slow": "LEGION_RUN_SLOW_TESTS=1 node --import tsx --test tests/unit/bootstrap-crypto.test.ts tests/unit/persistence-supervisor.test.ts tests/unit/tribes-admin-api.test.ts",
"test:integration:mock": "npm run test:integration:materialize",
"test:integration:materialize": "node --import tsx --test tests/integration/provisioning.materialize.mock.test.ts",
"test:integration:live": "npm run test:integration:hcloud && npm run test:integration:hcloud:resize && npm run test:integration:ovh && npm run test:integration:scaleway",
"test:integration:hcloud": "node --import tsx --test tests/integration/hcloud.catalog.test.ts",
"test:integration:hcloud:resize": "node --import tsx --test tests/integration/hcloud.resize-policy.test.ts",
"test:integration:ovh": "node --import tsx --test tests/integration/ovh.smoke.test.ts",
"test:integration:ovh:domain": "node --import tsx --test tests/integration/ovh.domain-live.test.ts",
"test:integration:ovh:domain-purchase:manual": "node --import tsx --test tests/integration/ovh.domain-purchase.manual.test.ts",
"test:integration:scaleway": "node --import tsx --test tests/integration/scaleway.smoke.test.ts",
"test:gui": "npm run build && playwright test",
"test:billed": "npm run test:billed:smoke && npm run test:billed:e2e",
"test:billed:smoke": "npm run test:billed:smoke:hetzner && npm run test:billed:smoke:scaleway && npm run test:billed:smoke:ovh",
"test:billed:smoke:hetzner": "node --import tsx --test tests/billed/smoke/hetzner-provisioning.test.ts",
"test:billed:smoke:scaleway": "node --import tsx --test tests/billed/smoke/scaleway-provisioning.test.ts",
"test:billed:smoke:ovh": "node --import tsx --test tests/billed/smoke/ovh-provisioning.test.ts",
"test:billed:e2e": "npm run test:billed:e2e:hetzner-cli && npm run test:billed:e2e:ovh-cli && npm run test:billed:e2e:scaleway-cli",
"test:billed:e2e:hetzner-cli": "npm run build && node --import tsx --test tests/billed/e2e/hetzner-cli.test.ts",
"test:billed:e2e:ovh-cli": "npm run build && node --import tsx --test tests/billed/e2e/ovh-cli.test.ts",
"test:billed:e2e:scaleway-cli": "npm run build && node --import tsx --test tests/billed/e2e/scaleway-cli.test.ts",
"start": "electron-vite preview",
"dev": "electron-vite dev",
"dev:de": "VITE_LOCALE=de-DE npm run dev",
"dev:en": "VITE_LOCALE=en-GB npm run dev",
"dev:es": "VITE_LOCALE=es-ES npm run dev",
"build": "npm run generate:guix-base-channel && npm run typecheck && electron-vite build",
"postinstall": "electron-builder install-app-deps",
"build:unpack": "npm run build && electron-builder --dir",
"build:win": "npm run build && electron-builder --win",
"build:mac": "npm run build && electron-builder --mac",
"build:linux": "npm run build && electron-builder --linux",
"cli": "./bin/legion-dev",
"legion:cli": "./bin/legion-dev"
},
"dependencies": {
"@electron-toolkit/preload": "^3.0.2",
"@electron-toolkit/utils": "^4.0.0",
"@fontsource/nova-round": "^5.2.7",
"@node-rs/argon2": "^2.0.2",
"@ovhcloud/node-ovh": "^3.0.0",
"@peculiar/x509": "^2.0.0",
"@scaleway/sdk": "^3.4.3",
"@xterm/addon-fit": "^0.11.0",
"@xterm/xterm": "^6.0.0",
"cli-table3": "^0.6.5",
"echarts": "^6.1.0",
"electron-updater": "^6.3.9",
"maplibre-gl": "^5.24.0",
"nostr-tools": "^2.23.3",
"pmtiles": "^4.4.1",
"reflect-metadata": "^0.2.2",
"ssh2": "^1.17.0",
"typesafe-i18n": "^5.27.1",
"valibot": "^1.3.1",
"xstate": "^5.28.0"
},
"devDependencies": {
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
"@electron-toolkit/eslint-config-ts": "^3.1.0",
"@electron-toolkit/tsconfig": "^2.0.0",
"@hey-api/openapi-ts": "0.88.2",
"@iconify-json/lucide": "^1.2.98",
"@iconify/tailwind4": "^1.2.3",
"@playwright/test": "^1.58.2",
"@sveltejs/vite-plugin-svelte": "^6.2.0",
"@tailwindcss/vite": "^4.2.1",
"@types/node": "^22.19.1",
"daisyui": "^5.5.19",
"electron": "^42.2.0",
"electron-builder": "^26.0.12",
"electron-vite": "^5.0.0",
"eslint": "^9.39.1",
"eslint-plugin-svelte": "^3.13.1",
"prettier": "^3.7.4",
"prettier-plugin-jsdoc": "^1.8.0",
"prettier-plugin-svelte": "^3.4.0",
"prettier-plugin-tailwindcss": "^0.7.2",
"svelte": "^5.45.6",
"svelte-check": "^4.3.4",
"tailwindcss": "^4.2.1",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"vite": "^7.2.6"
},
"packageManager": "npm@11.6.2"
}