Release v1.0.0 under Apache-2.0 license

This commit is contained in:
2026-04-15 18:14:28 +02:00
parent 6a48c12449
commit 701674399a
84 changed files with 309 additions and 71 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright (c) 2026, Pim van Pelt <pim@ipng.ch>
// SPDX-License-Identifier: Apache-2.0
package main
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright (c) 2026, Pim van Pelt <pim@ipng.ch>
// SPDX-License-Identifier: Apache-2.0
package main
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright (c) 2026, Pim van Pelt <pim@ipng.ch>
// SPDX-License-Identifier: Apache-2.0
package main
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright (c) 2026, Pim van Pelt <pim@ipng.ch>
// SPDX-License-Identifier: Apache-2.0
package main
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright (c) 2026, Pim van Pelt <pim@ipng.ch>
// SPDX-License-Identifier: Apache-2.0
package main
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright (c) 2026, Pim van Pelt <pim@ipng.ch>
// SPDX-License-Identifier: Apache-2.0
package main
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright (c) 2026, Pim van Pelt <pim@ipng.ch>
// SPDX-License-Identifier: Apache-2.0
package main
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { Show, createSignal, onMount, type Component } from "solid-js";
import { fetchAllState, fetchVersion } from "./api/rest";
import { openEventStream } from "./api/sse";
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import type { BackendSnapshot, FrontendSnapshot } from "../types";
export type BackendAction = "pause" | "resume" | "enable" | "disable";
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import type { MaglevdInfo, StateSnapshot, VersionInfo } from "../types";
async function getJSON<T>(path: string): Promise<T> {
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import type {
BackendEventPayload,
BrowserEvent,
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { For, Show, createEffect, createSignal, onCleanup, type Component } from "solid-js";
import { runBackendAction, setBackendWeight, type BackendAction } from "../api/admin";
import Modal from "./Modal";
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createEffect, createMemo, on, type Component, type JSX } from "solid-js";
type Props = {
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createEffect, onCleanup, type Component, type JSX } from "solid-js";
import { Portal } from "solid-js/web";
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createEffect, createSignal, onCleanup, type Component } from "solid-js";
import { events } from "../stores/events";
import type { LogEventPayload } from "../types";
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { For, type Component } from "solid-js";
import { scope, setScope } from "../stores/scope";
import { state } from "../stores/state";
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import type { Component } from "solid-js";
type Props = { state: string; label?: string };
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import type { Component, JSX } from "solid-js";
import { isZippyOpen, setZippyOpen } from "../stores/zippy";
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
/// <reference types="vite/client" />
declare module "*.svg" {
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
/* @refresh reload */
import { render } from "solid-js/web";
import App from "./App";
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createSignal } from "solid-js";
import type { BrowserEvent } from "../types";
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
// isAdmin is fixed at page-load based on the URL. The SAME App.tsx
// drives both /view/* and /admin/* — importing this constant lets any
// component render admin-only affordances (e.g. the backend actions
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createSignal } from "solid-js";
// Persisted selection of which maglevd the SPA is currently scoped to.
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createStore, produce } from "solid-js/store";
import type {
BackendEventPayload,
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createSignal } from "solid-js";
// Global 5-second ticker used by relative-time helpers so their output
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createSignal } from "solid-js";
// Persistence layer for collapsible (Zippy) panels. The cookie is a
+2
View File
@@ -1,3 +1,5 @@
/* SPDX-License-Identifier: Apache-2.0 */
*,
*::before,
*::after {
+2
View File
@@ -1,3 +1,5 @@
/* SPDX-License-Identifier: Apache-2.0 */
:root {
--bg: #fafafa;
--bg-soft: #f0f0f0;
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
// TS mirror of cmd/frontend/types.go — keep in sync.
export type MaglevdInfo = {
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { Show, createMemo, type Component } from "solid-js";
import type { BackendSnapshot, PoolBackendSnapshot } from "../types";
import StatusBadge from "../components/StatusBadge";
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { For, createEffect, createMemo, createSignal, type Component } from "solid-js";
import Zippy from "../components/Zippy";
import { events } from "../stores/events";
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { For, Show, type Component } from "solid-js";
import type { FrontendSnapshot, StateSnapshot } from "../types";
import BackendRow from "./BackendRow";
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { For, Show, type Component } from "solid-js";
import { scope } from "../stores/scope";
import { state } from "../stores/state";
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { Show, createEffect, createSignal, onCleanup, type Component } from "solid-js";
import Zippy from "../components/Zippy";
import Flash from "../components/Flash";
+2
View File
@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { defineConfig } from "vite";
import solid from "vite-plugin-solid";