feat: Phase 1 — extract the client (web SPA + desktop) to dtoro/oikos-web
Problem: the hexagonal refactor churns the backend tree for nine more phases; the UI delivery stack (web/ SPA, cmd/desktop Wails wrapper, compose/web image) must move to its own repo first so doc/layout rewrites land once on a backend-only tree. Change: - New repo git.hubris.network/dtoro/oikos-web (v0.33.0): web/, desktop/ (updateURL repointed to oikos-web releases), compose/, own CI (web + desktop jobs), own deploy script (CI-green gate, TOCTOU guard, version-tagged images, prune-to-3), own webhook receiver on :9798 + launchd unit, own compose project publishing the same 8091:80. - Cutover executed on mac-mini in order: oikos stack's web service stopped+removed, oikos-web project brought up on 8091; outer Caddy untouched (targets the published port) — serving + Authentik flow + /wails 404 quirk verified post-cutover. - Stripped from oikos: web/, cmd/desktop/, compose/web/, desktop CI workflow, ci.yml web job, Makefile ui/desktop/desktop-package/install targets, the compose web service, oikos-web from deploy.sh's fallback prune list; wails + go-keyring dropped from go.mod, vendor synced. - README / CONTRIBUTING / AGENTS.md / .agents dev+operations docs now point at the new repo; mbse + mascot design docs carry a path note. Risk: production SPA serving depends on the new pipeline now; rollback is versioned-image re-up of the old web service from a pre-split checkout (port 8091). Desktop builds installed before the split still check dtoro/oikos releases — one manual reinstall, noted in the oikos-web release notes. Verification: go vet, make test (race), make generate-check, golangci (no new findings; baseline down 400→365); post-cutover curls — localhost:8091 200, /wails/runtime.js 404, outer Caddy 302 Authentik.
This commit is contained in:
284
web/node_modules/@surdeddd/wmkit/package.json
generated
vendored
Normal file
284
web/node_modules/@surdeddd/wmkit/package.json
generated
vendored
Normal file
@@ -0,0 +1,284 @@
|
||||
{
|
||||
"name": "@surdeddd/wmkit",
|
||||
"version": "0.3.0",
|
||||
"description": "Headless, framework-agnostic window manager for the web — draggable, resizable, snappable windows with first-class accessibility and 60fps performance",
|
||||
"keywords": [
|
||||
"window-manager",
|
||||
"windows",
|
||||
"draggable",
|
||||
"resizable",
|
||||
"floating",
|
||||
"snap",
|
||||
"headless",
|
||||
"desktop",
|
||||
"taskbar",
|
||||
"react",
|
||||
"vue",
|
||||
"svelte",
|
||||
"solid"
|
||||
],
|
||||
"license": "MIT",
|
||||
"author": "Maksim Kravcov (https://github.com/Surdeddd)",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/Surdeddd/wmkit.git"
|
||||
},
|
||||
"homepage": "https://surdeddd.github.io/wmkit/",
|
||||
"bugs": "https://github.com/Surdeddd/wmkit/issues",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"provenance": true
|
||||
},
|
||||
"type": "module",
|
||||
"sideEffects": [
|
||||
"**/*.css"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
},
|
||||
"packageManager": "pnpm@10.32.1",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"main": "./dist/index.cjs",
|
||||
"module": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"import": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"default": "./dist/index.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/index.d.cts",
|
||||
"default": "./dist/index.cjs"
|
||||
}
|
||||
},
|
||||
"./react": {
|
||||
"import": {
|
||||
"types": "./dist/react.d.ts",
|
||||
"default": "./dist/react.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/react.d.cts",
|
||||
"default": "./dist/react.cjs"
|
||||
}
|
||||
},
|
||||
"./vue": {
|
||||
"import": {
|
||||
"types": "./dist/vue.d.ts",
|
||||
"default": "./dist/vue.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/vue.d.cts",
|
||||
"default": "./dist/vue.cjs"
|
||||
}
|
||||
},
|
||||
"./svelte": {
|
||||
"import": {
|
||||
"types": "./dist/svelte.d.ts",
|
||||
"default": "./dist/svelte.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/svelte.d.cts",
|
||||
"default": "./dist/svelte.cjs"
|
||||
}
|
||||
},
|
||||
"./solid": {
|
||||
"import": {
|
||||
"types": "./dist/solid.d.ts",
|
||||
"default": "./dist/solid.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/solid.d.cts",
|
||||
"default": "./dist/solid.cjs"
|
||||
}
|
||||
},
|
||||
"./angular": {
|
||||
"import": {
|
||||
"types": "./dist/angular.d.ts",
|
||||
"default": "./dist/angular.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/angular.d.cts",
|
||||
"default": "./dist/angular.cjs"
|
||||
}
|
||||
},
|
||||
"./persist": {
|
||||
"import": {
|
||||
"types": "./dist/persist.d.ts",
|
||||
"default": "./dist/persist.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/persist.d.cts",
|
||||
"default": "./dist/persist.cjs"
|
||||
}
|
||||
},
|
||||
"./popout": {
|
||||
"import": {
|
||||
"types": "./dist/popout.d.ts",
|
||||
"default": "./dist/popout.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/popout.d.cts",
|
||||
"default": "./dist/popout.cjs"
|
||||
}
|
||||
},
|
||||
"./themes/*": "./dist/themes/*",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsup",
|
||||
"dev": "vite site",
|
||||
"site:build": "vite build site",
|
||||
"site:preview": "vite preview site",
|
||||
"test": "vitest run",
|
||||
"test:watch": "vitest",
|
||||
"test:coverage": "vitest run --coverage",
|
||||
"test:e2e": "playwright test",
|
||||
"lint": "biome check .",
|
||||
"lint:fix": "biome check --write .",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"size": "size-limit",
|
||||
"attw": "attw --pack .",
|
||||
"publint": "publint",
|
||||
"prepublishOnly": "pnpm build",
|
||||
"verify": "pnpm lint && pnpm typecheck && pnpm test:coverage && pnpm build && pnpm size && pnpm publint && pnpm attw && pnpm test:e2e",
|
||||
"release": "semantic-release",
|
||||
"bench": "vitest bench --run"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@angular/core": ">=16",
|
||||
"react": ">=18",
|
||||
"solid-js": ">=1.8",
|
||||
"svelte": ">=4",
|
||||
"vue": ">=3.3"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"react": {
|
||||
"optional": true
|
||||
},
|
||||
"solid-js": {
|
||||
"optional": true
|
||||
},
|
||||
"svelte": {
|
||||
"optional": true
|
||||
},
|
||||
"vue": {
|
||||
"optional": true
|
||||
},
|
||||
"@angular/core": {
|
||||
"optional": true
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular/core": "^20.3.26",
|
||||
"@arethetypeswrong/cli": "^0.18.2",
|
||||
"@axe-core/playwright": "^4.10.2",
|
||||
"@biomejs/biome": "^2.0.0",
|
||||
"@playwright/test": "^1.53.2",
|
||||
"@semantic-release/changelog": "^6.0.3",
|
||||
"@semantic-release/git": "^10.0.1",
|
||||
"@size-limit/preset-small-lib": "^11.2.0",
|
||||
"@testing-library/react": "^16.3.0",
|
||||
"@types/node": "^24.0.0",
|
||||
"@types/react": "^19.1.8",
|
||||
"@types/react-dom": "^19.1.6",
|
||||
"@vitest/coverage-v8": "^3.2.4",
|
||||
"jsdom": "^26.1.0",
|
||||
"publint": "^0.3.12",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0",
|
||||
"semantic-release": "^25.0.6",
|
||||
"size-limit": "^11.2.0",
|
||||
"solid-js": "^1.9.7",
|
||||
"svelte": "^5.35.2",
|
||||
"tsup": "^8.5.0",
|
||||
"typescript": "^5.8.3",
|
||||
"vite": "^6.3.5",
|
||||
"vitest": "^3.2.4",
|
||||
"vue": "^3.5.17"
|
||||
},
|
||||
"size-limit": [
|
||||
{
|
||||
"name": "core",
|
||||
"path": "dist/index.js",
|
||||
"limit": "10 kB"
|
||||
},
|
||||
{
|
||||
"name": "react adapter",
|
||||
"path": "dist/react.js",
|
||||
"limit": "10 kB",
|
||||
"ignore": [
|
||||
"react"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "vue adapter",
|
||||
"path": "dist/vue.js",
|
||||
"limit": "10 kB",
|
||||
"ignore": [
|
||||
"vue"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "svelte adapter",
|
||||
"path": "dist/svelte.js",
|
||||
"limit": "10 kB",
|
||||
"ignore": [
|
||||
"svelte"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "solid adapter",
|
||||
"path": "dist/solid.js",
|
||||
"limit": "10 kB",
|
||||
"ignore": [
|
||||
"solid-js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "angular adapter",
|
||||
"path": "dist/angular.js",
|
||||
"limit": "10 kB",
|
||||
"ignore": [
|
||||
"@angular/core"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "persist plugin",
|
||||
"path": "dist/persist.js",
|
||||
"limit": "1 kB"
|
||||
},
|
||||
{
|
||||
"name": "popout plugin",
|
||||
"path": "dist/popout.js",
|
||||
"limit": "1 kB"
|
||||
}
|
||||
],
|
||||
"typesVersions": {
|
||||
"*": {
|
||||
"react": [
|
||||
"./dist/react.d.ts"
|
||||
],
|
||||
"vue": [
|
||||
"./dist/vue.d.ts"
|
||||
],
|
||||
"svelte": [
|
||||
"./dist/svelte.d.ts"
|
||||
],
|
||||
"solid": [
|
||||
"./dist/solid.d.ts"
|
||||
],
|
||||
"persist": [
|
||||
"./dist/persist.d.ts"
|
||||
],
|
||||
"popout": [
|
||||
"./dist/popout.d.ts"
|
||||
],
|
||||
"angular": [
|
||||
"./dist/angular.d.ts"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user