feat: Phase 1 — extract the client (web SPA + desktop) to dtoro/oikos-web
Some checks failed
ci / build-test (push) Has been cancelled
ci / docker-build (push) Has been cancelled

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:
2026-08-15 22:27:52 +02:00
parent e074f04bdf
commit d4d99a7473
18854 changed files with 2615729 additions and 173735 deletions

191
web/node_modules/xmlchars/xmlchars.js generated vendored Normal file
View File

@@ -0,0 +1,191 @@
"use strict";
/**
* Character classes for XML.
*
* @deprecated since 1.3.0. Import from the ``xml`` and ``xmlns`` hierarchies
* instead.
*
* @author Louis-Dominique Dubeau
* @license MIT
* @copyright Louis-Dominique Dubeau
*/
Object.defineProperty(exports, "__esModule", { value: true });
var ed4 = require("./xml/1.0/ed4");
var ed5 = require("./xml/1.0/ed5");
var nsed3 = require("./xmlns/1.0/ed3");
// tslint:disable-next-line:no-console
console.warn("DEPRECATION WARNING: the xmlchar *module* is deprecated: please \
replace e.g. require('xmlchars') with require('xmlchars/xml/...')");
/**
* Character class utilities for XML 1.0.
*/
// tslint:disable-next-line:no-namespace
var XML_1_0;
(function (XML_1_0) {
/**
* Fifth edition.
*/
var ED5;
(function (ED5) {
/**
* Regular expression fragments. These fragments are designed to be included
* inside square brackets in a regular expression.
*/
var fragments;
(function (fragments) {
fragments.CHAR = ed5.CHAR;
fragments.S = ed5.S;
fragments.NAME_START_CHAR = ed5.NAME_START_CHAR;
fragments.NAME_CHAR = ed5.NAME_CHAR;
})(fragments = ED5.fragments || (ED5.fragments = {}));
/**
* Regular expression. These correspond to the productions of the same name
* in the specification.
*/
var regexes;
(function (regexes) {
regexes.CHAR = ed5.CHAR_RE;
regexes.S = ed5.S_RE;
regexes.NAME_START_CHAR = ed5.NAME_START_CHAR_RE;
regexes.NAME_CHAR = ed5.NAME_CHAR_RE;
regexes.NAME = ed5.NAME_RE;
regexes.NMTOKEN = ed5.NMTOKEN_RE;
})(regexes = ED5.regexes || (ED5.regexes = {}));
/**
* Lists of characters.
*
* The names defined in this namespace are arrays of codepoints which
* contain the set of codepoints that an XML production encompasses. Note
* that many productions are too large to be reasonably represented as sets.
*/
var lists;
(function (lists) {
lists.S = ed5.S_LIST;
})(lists = ED5.lists || (ED5.lists = {}));
/**
* Determines whether a codepoint matches the ``CHAR`` production.
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches ``CHAR``.
*/
ED5.isChar = ed5.isChar;
/**
* Determines whether a codepoint matches the ``S`` (space) production.
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches ``S``.
*/
ED5.isS = ed5.isS;
/**
* Determines whether a codepoint matches the ``NAME_START_CHAR``
* production.
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.
*/
ED5.isNameStartChar = ed5.isNameStartChar;
/**
* Determines whether a codepoint matches the ``NAME_CHAR`` production.
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches ``NAME_CHAR``.
*/
ED5.isNameChar = ed5.isNameChar;
})(ED5 = XML_1_0.ED5 || (XML_1_0.ED5 = {}));
/**
* Fourth edition. These are deprecated in the 5th edition but some of the
* standards related to XML 1.0 (e.g. XML Schema 1.0) refer to these. So they
* are still generally useful.
*/
var ED4;
(function (ED4) {
/**
* Regular expression fragments. These fragments are designed to be included
* inside square brackets in a regular expression.
*/
var fragments;
(function (fragments) {
fragments.CHAR = ed4.CHAR;
fragments.S = ed4.S;
fragments.BASE_CHAR = ed4.BASE_CHAR;
fragments.IDEOGRAPHIC = ed4.IDEOGRAPHIC;
fragments.COMBINING_CHAR = ed4.COMBINING_CHAR;
fragments.DIGIT = ed4.DIGIT;
fragments.EXTENDER = ed4.EXTENDER;
fragments.LETTER = ed4.LETTER;
fragments.NAME_CHAR = ed4.NAME_CHAR;
})(fragments = ED4.fragments || (ED4.fragments = {}));
/**
* Regular expression. These correspond to the productions of the same
* name in the specification.
*/
var regexes;
(function (regexes) {
regexes.CHAR = ed4.CHAR_RE;
regexes.S = ed4.S_RE;
regexes.BASE_CHAR = ed4.BASE_CHAR_RE;
regexes.IDEOGRAPHIC = ed4.IDEOGRAPHIC_RE;
regexes.COMBINING_CHAR = ed4.COMBINING_CHAR_RE;
regexes.DIGIT = ed4.DIGIT_RE;
regexes.EXTENDER = ed4.EXTENDER_RE;
regexes.LETTER = ed4.LETTER_RE;
regexes.NAME_CHAR = ed4.NAME_CHAR_RE;
regexes.NAME = ed4.NAME_RE;
regexes.NMTOKEN = ed4.NMTOKEN_RE;
})(regexes = ED4.regexes || (ED4.regexes = {}));
})(ED4 = XML_1_0.ED4 || (XML_1_0.ED4 = {}));
})(XML_1_0 = exports.XML_1_0 || (exports.XML_1_0 = {}));
/**
* Character class utilities for XML NS 1.0.
*/
// tslint:disable-next-line:no-namespace
var XMLNS_1_0;
(function (XMLNS_1_0) {
/**
* Third edition.
*/
var ED3;
(function (ED3) {
/**
* Regular expression fragments. These fragments are designed to be included
* inside square brackets in a regular expression.
*/
var fragments;
(function (fragments) {
fragments.NC_NAME_START_CHAR = nsed3.NC_NAME_START_CHAR;
fragments.NC_NAME_CHAR = nsed3.NC_NAME_CHAR;
})(fragments = ED3.fragments || (ED3.fragments = {}));
/**
* Regular expression. These correspond to the productions of the same name
* in the specification.
*/
var regexes;
(function (regexes) {
regexes.NC_NAME_START_CHAR = nsed3.NC_NAME_START_CHAR_RE;
regexes.NC_NAME_CHAR = nsed3.NC_NAME_CHAR_RE;
regexes.NC_NAME = nsed3.NC_NAME_RE;
})(regexes = ED3.regexes || (ED3.regexes = {}));
/**
* Determines whether a codepoint matches
* [[regexes.NC_NAME_START_CHAR]].
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches.
*/
ED3.isNCNameStartChar = nsed3.isNCNameStartChar;
/**
* Determines whether a codepoint matches [[regexes.NC_NAME_CHAR]].
*
* @param c The code point.
*
* @returns ``true`` if the codepoint matches.
*/
ED3.isNCNameChar = nsed3.isNCNameChar;
})(ED3 = XMLNS_1_0.ED3 || (XMLNS_1_0.ED3 = {}));
})(XMLNS_1_0 = exports.XMLNS_1_0 || (exports.XMLNS_1_0 = {}));
//# sourceMappingURL=xmlchars.js.map