Files
oikos/web/node_modules/@surdeddd/wmkit/package.json
dtoro d4d99a7473
Some checks failed
ci / build-test (push) Has been cancelled
ci / docker-build (push) Has been cancelled
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.
2026-08-15 22:27:52 +02:00

285 lines
6.3 KiB
JSON

{
"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"
]
}
}
}