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

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";

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";

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> {

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import type {
BackendEventPayload,
BrowserEvent,

View File

@@ -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";

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createEffect, createMemo, on, type Component, type JSX } from "solid-js";
type Props = {

View File

@@ -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";

View File

@@ -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";

View File

@@ -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";

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import type { Component } from "solid-js";
type Props = { state: string; label?: string };

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import type { Component, JSX } from "solid-js";
import { isZippyOpen, setZippyOpen } from "../stores/zippy";

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
/// <reference types="vite/client" />
declare module "*.svg" {

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
/* @refresh reload */
import { render } from "solid-js/web";
import App from "./App";

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createSignal } from "solid-js";
import type { BrowserEvent } from "../types";

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

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.

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { createStore, produce } from "solid-js/store";
import type {
BackendEventPayload,

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

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

View File

@@ -1,3 +1,5 @@
/* SPDX-License-Identifier: Apache-2.0 */
*,
*::before,
*::after {

View File

@@ -1,3 +1,5 @@
/* SPDX-License-Identifier: Apache-2.0 */
:root {
--bg: #fafafa;
--bg-soft: #f0f0f0;

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 = {

View File

@@ -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";

View File

@@ -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";

View File

@@ -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";

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";

View File

@@ -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";

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
import { defineConfig } from "vite";
import solid from "vite-plugin-solid";