Chore: add organize imports to pre-commit (#5104)

This commit is contained in:
shamoon 2025-03-30 21:40:03 -07:00 committed by GitHub
parent 954ab54493
commit eda06965fa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
285 changed files with 601 additions and 576 deletions

View File

@ -9,11 +9,14 @@ repos:
- id: check-yaml
exclude: "(^mkdocs\\.yml$)"
- id: check-added-large-files
- repo: https://github.com/pre-commit/mirrors-prettier
rev: 'v3.0.3'
- repo: https://github.com/rbubley/mirrors-prettier
rev: 'v3.3.3'
hooks:
- id: prettier
types_or:
- javascript
- markdown
- jsx
additional_dependencies:
- prettier@3.3.3
- 'prettier-plugin-organize-imports@4.1.0'

View File

@ -1 +0,0 @@
{}

5
.prettierrc.js Normal file
View File

@ -0,0 +1,5 @@
const config = {
plugins: [require("prettier-plugin-organize-imports")],
};
module.exports = config;

View File

@ -131,8 +131,8 @@ module.exports = {
? BIBIT_UNITS
: BIT_UNITS
: options.binary
? BIBYTE_UNITS
: BYTE_UNITS;
? BIBYTE_UNITS
: BYTE_UNITS;
if (value === 0) return `0 ${sizes[0]}/s`;

View File

@ -56,6 +56,7 @@
"eslint-plugin-react-hooks": "^5.1.0",
"postcss": "^8.5.2",
"prettier": "^3.5.2",
"prettier-plugin-organize-imports": "^4.1.0",
"tailwind-scrollbar": "^4.0.1",
"tailwindcss": "^4.0.9",
"typescript": "^5.7.3"

26
pnpm-lock.yaml generated
View File

@ -101,10 +101,6 @@ importers:
xml-js:
specifier: ^1.6.11
version: 1.6.11
optionalDependencies:
osx-temperature-sensor:
specifier: ^1.0.8
version: 1.0.8
devDependencies:
'@tailwindcss/forms':
specifier: ^0.5.10
@ -142,6 +138,9 @@ importers:
prettier:
specifier: ^3.5.2
version: 3.5.2
prettier-plugin-organize-imports:
specifier: ^4.1.0
version: 4.1.0(prettier@3.5.2)(typescript@5.7.3)
tailwind-scrollbar:
specifier: ^4.0.1
version: 4.0.1(react@18.3.1)(tailwindcss@4.0.9)
@ -151,6 +150,10 @@ importers:
typescript:
specifier: ^5.7.3
version: 5.7.3
optionalDependencies:
osx-temperature-sensor:
specifier: ^1.0.8
version: 1.0.8
packages:
@ -2144,6 +2147,16 @@ packages:
resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
engines: {node: '>=6.0.0'}
prettier-plugin-organize-imports@4.1.0:
resolution: {integrity: sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==}
peerDependencies:
prettier: '>=2.0'
typescript: '>=2.9'
vue-tsc: ^2.1.0
peerDependenciesMeta:
vue-tsc:
optional: true
prettier@3.5.2:
resolution: {integrity: sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==}
engines: {node: '>=14'}
@ -4883,6 +4896,11 @@ snapshots:
dependencies:
fast-diff: 1.3.0
prettier-plugin-organize-imports@4.1.0(prettier@3.5.2)(typescript@5.7.3):
dependencies:
prettier: 3.5.2
typescript: 5.7.3
prettier@3.5.2: {}
pretty-bytes@6.1.1: {}

View File

@ -1,10 +1,10 @@
import { useRef, useEffect } from "react";
import classNames from "classnames";
import { Disclosure, Transition } from "@headlessui/react";
import { MdKeyboardArrowDown } from "react-icons/md";
import ErrorBoundary from "components/errorboundry";
import classNames from "classnames";
import List from "components/bookmarks/list";
import ErrorBoundary from "components/errorboundry";
import ResolvedIcon from "components/resolvedicon";
import { useEffect, useRef } from "react";
import { MdKeyboardArrowDown } from "react-icons/md";
export default function BookmarksGroup({
bookmarks,

View File

@ -1,7 +1,7 @@
import { useContext } from "react";
import classNames from "classnames";
import { SettingsContext } from "utils/contexts/settings";
import ResolvedIcon from "components/resolvedicon";
import { useContext } from "react";
import { SettingsContext } from "utils/contexts/settings";
export default function Item({ bookmark, iconOnly = false }) {
const description = bookmark.description ?? new URL(bookmark.href).hostname;

View File

@ -1,6 +1,6 @@
/* eslint-disable @next/next/no-img-element */
/* eslint-disable jsx-a11y/alt-text */
import { useRef, useEffect, useContext } from "react";
import { useContext, useEffect, useRef } from "react";
import { ColorContext } from "utils/contexts/color";
import themes from "utils/styles/themes";

View File

@ -1,6 +1,6 @@
import { useTranslation } from "react-i18next";
import { useEffect, useState, useRef, useCallback, useContext } from "react";
import classNames from "classnames";
import { useCallback, useContext, useEffect, useRef, useState } from "react";
import { useTranslation } from "react-i18next";
import useSWR from "swr";
import { SettingsContext } from "utils/contexts/settings";
@ -53,7 +53,7 @@ export default function QuickLaunch({ servicesAndBookmarks, searchString, setSea
const result = results[currentItemIndex];
window.open(
result.href,
newWindow ? "_blank" : result.target ?? searchProvider?.target ?? settings.target ?? "_blank",
newWindow ? "_blank" : (result.target ?? searchProvider?.target ?? settings.target ?? "_blank"),
"noreferrer",
);
}

View File

@ -1,5 +1,5 @@
import { useContext } from "react";
import Image from "next/image";
import { useContext } from "react";
import { SettingsContext } from "utils/contexts/settings";
import { ThemeContext } from "utils/contexts/theme";

View File

@ -1,7 +1,7 @@
import { Fragment } from "react";
import { Menu, Transition } from "@headlessui/react";
import { BiCog } from "react-icons/bi";
import classNames from "classnames";
import { Fragment } from "react";
import { BiCog } from "react-icons/bi";
export default function Dropdown({ options, value, setValue }) {
return (

View File

@ -1,9 +1,9 @@
import { useRef, useEffect } from "react";
import classNames from "classnames";
import { Disclosure, Transition } from "@headlessui/react";
import { MdKeyboardArrowDown } from "react-icons/md";
import List from "components/services/list";
import classNames from "classnames";
import ResolvedIcon from "components/resolvedicon";
import List from "components/services/list";
import { useEffect, useRef } from "react";
import { MdKeyboardArrowDown } from "react-icons/md";
import { columnMap } from "../../utils/layout/columns";

View File

@ -1,15 +1,15 @@
import classNames from "classnames";
import ResolvedIcon from "components/resolvedicon";
import { useContext, useState } from "react";
import { SettingsContext } from "utils/contexts/settings";
import Docker from "widgets/docker/component";
import Kubernetes from "widgets/kubernetes/component";
import { SettingsContext } from "utils/contexts/settings";
import ResolvedIcon from "components/resolvedicon";
import Status from "./status";
import Widget from "./widget";
import KubernetesStatus from "./kubernetes-status";
import Ping from "./ping";
import SiteMonitor from "./site-monitor";
import KubernetesStatus from "./kubernetes-status";
import Status from "./status";
import Widget from "./widget";
export default function Item({ service, groupName, useEqualHeights }) {
const hasLink = service.href && service.href !== "#";

View File

@ -1,5 +1,5 @@
import useSWR from "swr";
import { t } from "i18next";
import useSWR from "swr";
export default function KubernetesStatus({ service, style }) {
const podSelectorString = service.podSelector !== undefined ? `podSelector=${service.podSelector}` : "";

View File

@ -1,5 +1,5 @@
import { useTranslation } from "next-i18next";
import ErrorBoundary from "components/errorboundry";
import { useTranslation } from "next-i18next";
import components from "widgets/components";

View File

@ -1,5 +1,5 @@
import { useTranslation } from "next-i18next";
import classNames from "classnames";
import { useTranslation } from "next-i18next";
export default function Block({ value, label }) {
const { t } = useTranslation();

View File

@ -1,5 +1,5 @@
import { useContext } from "react";
import classNames from "classnames";
import { useContext } from "react";
import { TabContext } from "utils/contexts/tab";
function slugify(tabName) {

View File

@ -1,7 +1,7 @@
import { useContext, Fragment } from "react";
import { IoColorPalette } from "react-icons/io5";
import { Popover, Transition } from "@headlessui/react";
import classNames from "classnames";
import { Fragment, useContext } from "react";
import { IoColorPalette } from "react-icons/io5";
import { ColorContext } from "utils/contexts/color";
const colors = [

View File

@ -1,8 +1,8 @@
import { compareVersions, validate } from "compare-versions";
import cache from "memory-cache";
import { useTranslation } from "next-i18next";
import useSWR from "swr";
import { compareVersions, validate } from "compare-versions";
import { MdNewReleases } from "react-icons/md";
import useSWR from "swr";
const LATEST_RELEASE_CACHE_KEY = "latestRelease";

View File

@ -1,5 +1,5 @@
import { useState, useEffect } from "react";
import { useTranslation } from "next-i18next";
import { useEffect, useState } from "react";
import Container from "../widget/container";
import Raw from "../widget/raw";

View File

@ -1,9 +1,9 @@
import useSWR from "swr";
import classNames from "classnames";
import { useTranslation } from "next-i18next";
import { useContext } from "react";
import { FaMemory, FaRegClock, FaThermometerHalf } from "react-icons/fa";
import { FiCpu, FiHardDrive } from "react-icons/fi";
import { useTranslation } from "next-i18next";
import classNames from "classnames";
import useSWR from "swr";
import { SettingsContext } from "utils/contexts/settings";
import Error from "../widget/error";

View File

@ -1,8 +1,8 @@
import useSWR from "swr";
import { useTranslation } from "next-i18next";
import useSWR from "swr";
import Error from "../widget/error";
import Container from "../widget/container";
import Error from "../widget/error";
import Raw from "../widget/raw";
import Node from "./node";

View File

@ -1,7 +1,7 @@
import { useTranslation } from "next-i18next";
import { FaMemory } from "react-icons/fa";
import { FiAlertTriangle, FiCpu, FiServer } from "react-icons/fi";
import { SiKubernetes } from "react-icons/si";
import { useTranslation } from "next-i18next";
import UsageBar from "../resources/usage-bar";

View File

@ -1,7 +1,7 @@
import useSWR from "swr";
import Error from "../widget/error";
import Container from "../widget/container";
import Error from "../widget/error";
import Raw from "../widget/raw";
import Node from "./node";

View File

@ -1,16 +1,16 @@
import useSWR from "swr";
import { useState } from "react";
import { WiCloudDown } from "react-icons/wi";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { useTranslation } from "next-i18next";
import { useState } from "react";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { WiCloudDown } from "react-icons/wi";
import useSWR from "swr";
import Error from "../widget/error";
import mapIcon from "../../../utils/weather/openmeteo-condition-map";
import Container from "../widget/container";
import ContainerButton from "../widget/container_button";
import WidgetIcon from "../widget/widget_icon";
import Error from "../widget/error";
import PrimaryText from "../widget/primary_text";
import SecondaryText from "../widget/secondary_text";
import mapIcon from "../../../utils/weather/openmeteo-condition-map";
import WidgetIcon from "../widget/widget_icon";
function Widget({ options }) {
const { t } = useTranslation();

View File

@ -1,16 +1,16 @@
import useSWR from "swr";
import { useState } from "react";
import { WiCloudDown } from "react-icons/wi";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { useTranslation } from "next-i18next";
import { useState } from "react";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { WiCloudDown } from "react-icons/wi";
import useSWR from "swr";
import Error from "../widget/error";
import mapIcon from "../../../utils/weather/owm-condition-map";
import Container from "../widget/container";
import ContainerButton from "../widget/container_button";
import Error from "../widget/error";
import PrimaryText from "../widget/primary_text";
import SecondaryText from "../widget/secondary_text";
import WidgetIcon from "../widget/widget_icon";
import mapIcon from "../../../utils/weather/owm-condition-map";
function Widget({ options }) {
const { t, i18n } = useTranslation();

View File

@ -1,9 +1,9 @@
import useSWR from "swr";
import { FiCpu } from "react-icons/fi";
import { useTranslation } from "next-i18next";
import { FiCpu } from "react-icons/fi";
import useSWR from "swr";
import Resource from "../widget/resource";
import Error from "../widget/error";
import Resource from "../widget/resource";
export default function Cpu({ expanded, refresh = 1500 }) {
const { t } = useTranslation();

View File

@ -1,9 +1,9 @@
import useSWR from "swr";
import { FaThermometerHalf } from "react-icons/fa";
import { useTranslation } from "next-i18next";
import { FaThermometerHalf } from "react-icons/fa";
import useSWR from "swr";
import Resource from "../widget/resource";
import Error from "../widget/error";
import Resource from "../widget/resource";
function convertToFahrenheit(t) {
return (t * 9) / 5 + 32;

View File

@ -1,9 +1,9 @@
import useSWR from "swr";
import { FiHardDrive } from "react-icons/fi";
import { useTranslation } from "next-i18next";
import { FiHardDrive } from "react-icons/fi";
import useSWR from "swr";
import Resource from "../widget/resource";
import Error from "../widget/error";
import Resource from "../widget/resource";
export default function Disk({ options, expanded, diskUnits, refresh = 1500 }) {
const { t } = useTranslation();

View File

@ -1,9 +1,9 @@
import useSWR from "swr";
import { FaMemory } from "react-icons/fa";
import { useTranslation } from "next-i18next";
import { FaMemory } from "react-icons/fa";
import useSWR from "swr";
import Resource from "../widget/resource";
import Error from "../widget/error";
import Resource from "../widget/resource";
export default function Memory({ expanded, refresh = 1500 }) {
const { t } = useTranslation();

View File

@ -1,9 +1,9 @@
import useSWR from "swr";
import { FaNetworkWired } from "react-icons/fa";
import { useTranslation } from "next-i18next";
import { FaNetworkWired } from "react-icons/fa";
import useSWR from "swr";
import Resource from "../widget/resource";
import Error from "../widget/error";
import Resource from "../widget/resource";
export default function Network({ options, refresh = 1500 }) {
const { t } = useTranslation();

View File

@ -1,12 +1,12 @@
import Container from "../widget/container";
import Raw from "../widget/raw";
import Disk from "./disk";
import Cpu from "./cpu";
import Memory from "./memory";
import CpuTemp from "./cputemp";
import Uptime from "./uptime";
import Disk from "./disk";
import Memory from "./memory";
import Network from "./network";
import Uptime from "./uptime";
export default function Resources({ options }) {
const { expanded, units, diskUnits, tempmin, tempmax } = options;

View File

@ -1,9 +1,9 @@
import useSWR from "swr";
import { FaRegClock } from "react-icons/fa";
import { useTranslation } from "next-i18next";
import { FaRegClock } from "react-icons/fa";
import useSWR from "swr";
import Resource from "../widget/resource";
import Error from "../widget/error";
import Resource from "../widget/resource";
export default function Uptime({ refresh = 1500 }) {
const { t } = useTranslation();

View File

@ -1,10 +1,10 @@
import { useState, useEffect, Fragment } from "react";
import { useTranslation } from "next-i18next";
import { FiSearch } from "react-icons/fi";
import { SiDuckduckgo, SiGoogle, SiBaidu, SiBrave } from "react-icons/si";
import { BiLogoBing } from "react-icons/bi";
import { Listbox, Transition, Combobox } from "@headlessui/react";
import { Combobox, Listbox, Transition } from "@headlessui/react";
import classNames from "classnames";
import { useTranslation } from "next-i18next";
import { Fragment, useEffect, useState } from "react";
import { BiLogoBing } from "react-icons/bi";
import { FiSearch } from "react-icons/fi";
import { SiBaidu, SiBrave, SiDuckduckgo, SiGoogle } from "react-icons/si";
import ContainerForm from "../widget/container_form";
import Raw from "../widget/raw";

View File

@ -1,13 +1,13 @@
import useSWR from "swr";
import { useState } from "react";
import { useTranslation } from "next-i18next";
import { useState } from "react";
import { FaChartLine } from "react-icons/fa6";
import useSWR from "swr";
import Error from "../widget/error";
import Container from "../widget/container";
import Error from "../widget/error";
import PrimaryText from "../widget/primary_text";
import WidgetIcon from "../widget/widget_icon";
import Raw from "../widget/raw";
import WidgetIcon from "../widget/widget_icon";
export default function Widget({ options }) {
const { t, i18n } = useTranslation();

View File

@ -1,13 +1,13 @@
import { BiError, BiWifi, BiCheckCircle, BiXCircle, BiNetworkChart } from "react-icons/bi";
import { MdSettingsEthernet } from "react-icons/md";
import { useTranslation } from "next-i18next";
import { BiCheckCircle, BiError, BiNetworkChart, BiWifi, BiXCircle } from "react-icons/bi";
import { MdSettingsEthernet } from "react-icons/md";
import { SiUbiquiti } from "react-icons/si";
import Error from "../widget/error";
import Container from "../widget/container";
import Error from "../widget/error";
import PrimaryText from "../widget/primary_text";
import Raw from "../widget/raw";
import WidgetIcon from "../widget/widget_icon";
import PrimaryText from "../widget/primary_text";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,16 +1,16 @@
import useSWR from "swr";
import { useState } from "react";
import { WiCloudDown } from "react-icons/wi";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { useTranslation } from "next-i18next";
import { useState } from "react";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { WiCloudDown } from "react-icons/wi";
import useSWR from "swr";
import Error from "../widget/error";
import mapIcon from "../../../utils/weather/condition-map";
import Container from "../widget/container";
import ContainerButton from "../widget/container_button";
import Error from "../widget/error";
import PrimaryText from "../widget/primary_text";
import SecondaryText from "../widget/secondary_text";
import WidgetIcon from "../widget/widget_icon";
import ContainerButton from "../widget/container_button";
import mapIcon from "../../../utils/weather/condition-map";
function Widget({ options }) {
const { t, i18n } = useTranslation();

View File

@ -1,5 +1,5 @@
import dynamic from "next/dynamic";
import ErrorBoundary from "components/errorboundry";
import dynamic from "next/dynamic";
const widgetMappings = {
weatherapi: dynamic(() => import("components/widgets/weather/weather")),

View File

@ -2,10 +2,10 @@ import classNames from "classnames";
import { useContext } from "react";
import { SettingsContext } from "utils/contexts/settings";
import WidgetIcon from "./widget_icon";
import PrimaryText from "./primary_text";
import SecondaryText from "./secondary_text";
import Raw from "./raw";
import SecondaryText from "./secondary_text";
import WidgetIcon from "./widget_icon";
export function getAllClasses(options, additionalClassNames = "") {
if (options?.style?.header === "boxedWidgets") {

View File

@ -1,4 +1,4 @@
import { getAllClasses, getInnerBlock, getBottomBlock } from "./container";
import { getAllClasses, getBottomBlock, getInnerBlock } from "./container";
export default function ContainerButton({ children = [], options, additionalClassNames = "", callback }) {
return (

View File

@ -1,4 +1,4 @@
import { getAllClasses, getInnerBlock, getBottomBlock } from "./container";
import { getAllClasses, getBottomBlock, getInnerBlock } from "./container";
export default function ContainerForm({ children = [], options, additionalClassNames = "", callback }) {
return (

View File

@ -1,4 +1,4 @@
import { getAllClasses, getInnerBlock, getBottomBlock } from "./container";
import { getAllClasses, getBottomBlock, getInnerBlock } from "./container";
export default function ContainerLink({ children = [], options, additionalClassNames = "", target }) {
return (

View File

@ -1,8 +1,8 @@
import classNames from "classnames";
import ContainerLink from "./container_link";
import Resource from "./resource";
import Raw from "./raw";
import Resource from "./resource";
import WidgetLabel from "./widget_label";
export default function Resources({ options, children, target, additionalClassNames }) {

View File

@ -1,14 +1,14 @@
/* eslint-disable react/jsx-props-no-spreading */
import { SWRConfig } from "swr";
import { appWithTranslation } from "next-i18next";
import Head from "next/head";
import "styles/globals.css";
import "styles/theme.css";
import "styles/manrope.css";
import "styles/theme.css";
import { SWRConfig } from "swr";
import { ColorProvider } from "utils/contexts/color";
import { ThemeProvider } from "utils/contexts/theme";
import { SettingsProvider } from "utils/contexts/settings";
import { TabProvider } from "utils/contexts/tab";
import { ThemeProvider } from "utils/contexts/theme";
import nextI18nextConfig from "../../next-i18next.config";

View File

@ -1,4 +1,4 @@
import { Html, Head, Main, NextScript } from "next/document";
import { Head, Html, Main, NextScript } from "next/document";
export default function Document() {
return (

View File

@ -1,5 +1,5 @@
import path from "path";
import fs from "fs";
import path from "path";
import { CONF_DIR } from "utils/config/config";
import createLogger from "utils/logger";

View File

@ -1,6 +1,6 @@
import { join } from "path";
import { createHash } from "crypto";
import { readFileSync } from "fs";
import { join } from "path";
import checkAndCopyConfig, { CONF_DIR } from "utils/config/config";

View File

@ -1,5 +1,5 @@
import { cachedRequest } from "utils/proxy/http";
import createLogger from "utils/logger";
import { cachedRequest } from "utils/proxy/http";
const logger = createLogger("releases");

View File

@ -1,8 +1,8 @@
import { searchProviders } from "components/widgets/search/search";
import { getSettings } from "utils/config/config";
import { cachedRequest } from "utils/proxy/http";
import { widgetsFromConfig } from "utils/config/widget-helpers";
import { cachedRequest } from "utils/proxy/http";
export default async function handler(req, res) {
const { query, providerName } = req.query;

View File

@ -1,9 +1,9 @@
import { formatApiCall } from "utils/proxy/api-helpers";
import createLogger from "utils/logger";
import genericProxyHandler from "utils/proxy/handlers/generic";
import widgets from "widgets/widgets";
import calendarProxyHandler from "widgets/calendar/proxy";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
import { formatApiCall } from "utils/proxy/api-helpers";
import genericProxyHandler from "utils/proxy/handlers/generic";
import calendarProxyHandler from "widgets/calendar/proxy";
import widgets from "widgets/widgets";
const logger = createLogger("servicesProxy");

View File

@ -1,6 +1,6 @@
import { httpProxy } from "utils/proxy/http";
import createLogger from "utils/logger";
import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
import createLogger from "utils/logger";
import { httpProxy } from "utils/proxy/http";
const logger = createLogger("glances");

View File

@ -1,6 +1,6 @@
import { httpProxy } from "../../../utils/proxy/http";
import createLogger from "../../../utils/logger";
import { getSettings } from "../../../utils/config/config";
import createLogger from "../../../utils/logger";
import { httpProxy } from "../../../utils/proxy/http";
const logger = createLogger("longhorn");

View File

@ -1,6 +1,6 @@
import { cachedRequest } from "utils/proxy/http";
import { getSettings } from "utils/config/config";
import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
import { cachedRequest } from "utils/proxy/http";
export default async function handler(req, res) {
const { latitude, longitude, units, provider, cache, lang, index } = req.query;

View File

@ -1,6 +1,6 @@
import { cachedRequest } from "utils/proxy/http";
import { getSettings } from "utils/config/config";
import createLogger from "utils/logger";
import { cachedRequest } from "utils/proxy/http";
const logger = createLogger("stocks");

View File

@ -1,6 +1,6 @@
import { cachedRequest } from "utils/proxy/http";
import { getSettings } from "utils/config/config";
import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
import { cachedRequest } from "utils/proxy/http";
export default async function handler(req, res) {
const { latitude, longitude, provider, cache, lang, index } = req.query;

View File

@ -1,31 +1,31 @@
/* eslint-disable react/no-array-index-key */
import useSWR, { SWRConfig } from "swr";
import Head from "next/head";
import Script from "next/script";
import dynamic from "next/dynamic";
import classNames from "classnames";
import { useTranslation } from "next-i18next";
import { useEffect, useContext, useState, useMemo } from "react";
import { BiError } from "react-icons/bi";
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
import { useRouter } from "next/router";
import Tab, { slugifyAndEncode } from "components/tab";
import ServicesGroup from "components/services/group";
import BookmarksGroup from "components/bookmarks/group";
import Widget from "components/widgets/widget";
import Revalidate from "components/toggles/revalidate";
import { ColorContext } from "utils/contexts/color";
import { ThemeContext } from "utils/contexts/theme";
import { SettingsContext } from "utils/contexts/settings";
import { TabContext } from "utils/contexts/tab";
import ErrorBoundary from "components/errorboundry";
import QuickLaunch from "components/quicklaunch";
import ServicesGroup from "components/services/group";
import Tab, { slugifyAndEncode } from "components/tab";
import Revalidate from "components/toggles/revalidate";
import Widget from "components/widgets/widget";
import { useTranslation } from "next-i18next";
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
import dynamic from "next/dynamic";
import Head from "next/head";
import { useRouter } from "next/router";
import Script from "next/script";
import { useContext, useEffect, useMemo, useState } from "react";
import { BiError } from "react-icons/bi";
import useSWR, { SWRConfig } from "swr";
import { ColorContext } from "utils/contexts/color";
import { SettingsContext } from "utils/contexts/settings";
import { TabContext } from "utils/contexts/tab";
import { ThemeContext } from "utils/contexts/theme";
import { bookmarksResponse, servicesResponse, widgetsResponse } from "utils/config/api-response";
import themes from "utils/styles/themes";
import { getSettings } from "utils/config/config";
import useWindowFocus from "utils/hooks/window-focus";
import createLogger from "utils/logger";
import themes from "utils/styles/themes";
const ThemeToggle = dynamic(() => import("components/toggles/theme"), {
ssr: false,

View File

@ -4,13 +4,13 @@ import path from "path";
import yaml from "js-yaml";
import checkAndCopyConfig, { getSettings, substituteEnvironmentVars, CONF_DIR } from "utils/config/config";
import checkAndCopyConfig, { CONF_DIR, getSettings, substituteEnvironmentVars } from "utils/config/config";
import {
cleanServiceGroups,
findGroupByName,
servicesFromConfig,
servicesFromDocker,
cleanServiceGroups,
servicesFromKubernetes,
findGroupByName,
} from "utils/config/service-helpers";
import { cleanWidgetGroups, widgetsFromConfig } from "utils/config/widget-helpers";

View File

@ -1,9 +1,9 @@
/* eslint-disable no-console */
import { join } from "path";
import { copyFileSync, existsSync, mkdirSync, readFileSync } from "fs";
import { join } from "path";
import cache from "memory-cache";
import yaml from "js-yaml";
import cache from "memory-cache";
const cacheKey = "homepageEnvironmentVariables";
const homepageVarPrefix = "HOMEPAGE_VAR_";

View File

@ -1,5 +1,5 @@
import path from "path";
import { readFileSync } from "fs";
import path from "path";
import yaml from "js-yaml";

View File

@ -1,8 +1,8 @@
import path from "path";
import { readFileSync } from "fs";
import path from "path";
import { ApiextensionsV1Api, KubeConfig } from "@kubernetes/client-node";
import yaml from "js-yaml";
import { KubeConfig, ApiextensionsV1Api } from "@kubernetes/client-node";
import checkAndCopyConfig, { CONF_DIR, substituteEnvironmentVars } from "utils/config/config";

View File

@ -1,15 +1,15 @@
import { promises as fs } from "fs";
import path from "path";
import yaml from "js-yaml";
import Docker from "dockerode";
import yaml from "js-yaml";
import createLogger from "utils/logger";
import checkAndCopyConfig, { CONF_DIR, getSettings, substituteEnvironmentVars } from "utils/config/config";
import getDockerArguments from "utils/config/docker";
import kubernetes from "utils/kubernetes/export";
import { getKubeConfig } from "utils/config/kubernetes";
import * as shvl from "utils/config/shvl";
import kubernetes from "utils/kubernetes/export";
import createLogger from "utils/logger";
const logger = createLogger("service-helpers");

View File

@ -1,4 +1,4 @@
import { createContext, useState, useEffect, useMemo } from "react";
import { createContext, useEffect, useMemo, useState } from "react";
let lastColor = false;

View File

@ -1,4 +1,4 @@
import { createContext, useState, useMemo } from "react";
import { createContext, useMemo, useState } from "react";
export const SettingsContext = createContext();

View File

@ -1,4 +1,4 @@
import { createContext, useState, useMemo } from "react";
import { createContext, useMemo, useState } from "react";
export const TabContext = createContext();

View File

@ -1,4 +1,4 @@
import { createContext, useState, useEffect, useMemo } from "react";
import { createContext, useEffect, useMemo, useState } from "react";
const getInitialTheme = () => {
if (typeof window !== "undefined" && window.localStorage) {

View File

@ -1,4 +1,4 @@
import { useState, useEffect } from "react";
import { useEffect, useState } from "react";
const hasFocus = () => typeof document !== "undefined" && document.hasFocus();

View File

@ -1,7 +1,7 @@
import listIngress from "utils/kubernetes/ingress-list";
import listTraefikIngress from "utils/kubernetes/traefik-list";
import listHttpRoute from "utils/kubernetes/httproute-list";
import { isDiscoverable, constructedServiceFromResource } from "utils/kubernetes/resource-helpers";
import listIngress from "utils/kubernetes/ingress-list";
import { constructedServiceFromResource, isDiscoverable } from "utils/kubernetes/resource-helpers";
import listTraefikIngress from "utils/kubernetes/traefik-list";
const kubernetes = {
listIngress,

View File

@ -1,6 +1,6 @@
import { NetworkingV1Api } from "@kubernetes/client-node";
import { getKubernetes, getKubeConfig } from "utils/config/kubernetes";
import { getKubeConfig, getKubernetes } from "utils/config/kubernetes";
import createLogger from "utils/logger";
const logger = createLogger("ingress-list");

View File

@ -1,15 +1,15 @@
import { CustomObjectsApi } from "@kubernetes/client-node";
import { substituteEnvironmentVars } from "utils/config/config";
import {
getKubeConfig,
ANNOTATION_BASE,
ANNOTATION_WIDGET_BASE,
getKubeConfig,
HTTPROUTE_API_GROUP,
HTTPROUTE_API_VERSION,
} from "utils/config/kubernetes";
import { substituteEnvironmentVars } from "utils/config/config";
import createLogger from "utils/logger";
import * as shvl from "utils/config/shvl";
import createLogger from "utils/logger";
const logger = createLogger("resource-helpers");
const kc = getKubeConfig();

View File

@ -1,6 +1,6 @@
import { CustomObjectsApi } from "@kubernetes/client-node";
import { getKubernetes, getKubeConfig, checkCRD, ANNOTATION_BASE } from "utils/config/kubernetes";
import { ANNOTATION_BASE, checkCRD, getKubeConfig, getKubernetes } from "utils/config/kubernetes";
import createLogger from "utils/logger";
const logger = createLogger("traefik-list");

View File

@ -1,9 +1,9 @@
import getServiceWidget from "utils/config/service-helpers";
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
import validateWidgetData from "utils/proxy/validate-widget-data";
import { httpProxy } from "utils/proxy/http";
import createLogger from "utils/logger";
import { getSettings } from "utils/config/config";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
import { httpProxy } from "utils/proxy/http";
import validateWidgetData from "utils/proxy/validate-widget-data";
import widgets from "widgets/widgets";
const logger = createLogger("credentialedProxyHandler");

View File

@ -1,8 +1,8 @@
import getServiceWidget from "utils/config/service-helpers";
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
import validateWidgetData from "utils/proxy/validate-widget-data";
import { httpProxy } from "utils/proxy/http";
import createLogger from "utils/logger";
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
import { httpProxy } from "utils/proxy/http";
import validateWidgetData from "utils/proxy/validate-widget-data";
import widgets from "widgets/widgets";
const logger = createLogger("genericProxyHandler");

View File

@ -1,9 +1,9 @@
import { JSONRPCClient, JSONRPCErrorException } from "json-rpc-2.0";
import { formatApiCall } from "utils/proxy/api-helpers";
import { httpProxy } from "utils/proxy/http";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
import { formatApiCall } from "utils/proxy/api-helpers";
import { httpProxy } from "utils/proxy/http";
import widgets from "widgets/widgets";
const logger = createLogger("jsonrpcProxyHandler");

View File

@ -1,9 +1,9 @@
import cache from "memory-cache";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
import { asJson, formatApiCall } from "utils/proxy/api-helpers";
import { httpProxy } from "utils/proxy/http";
import createLogger from "utils/logger";
import widgets from "widgets/widgets";
const INFO_ENDPOINT = "{url}/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query";

View File

@ -5,8 +5,8 @@ import { createUnzip, constants as zlibConstants } from "node:zlib";
import { http, https } from "follow-redirects";
import cache from "memory-cache";
import { addCookieToJar, setCookieHeader } from "./cookie-jar";
import { sanitizeErrorURL } from "./api-helpers";
import { addCookieToJar, setCookieHeader } from "./cookie-jar";
import createLogger from "utils/logger";

View File

@ -1,6 +1,6 @@
/* eslint-disable no-console */
import widgets from "widgets/widgets";
import createLogger from "utils/logger";
import widgets from "widgets/widgets";
const logger = createLogger("validateWidgetData");

View File

@ -1,6 +1,6 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import { useTranslation } from "next-i18next";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,5 +1,5 @@
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,5 +1,5 @@
import net from "node:net";
import { Buffer } from "node:buffer";
import net from "node:net";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";

View File

@ -1,5 +1,5 @@
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,6 +1,6 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import { useTranslation } from "next-i18next";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,6 +1,6 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import { useTranslation } from "next-i18next";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,7 +1,7 @@
import { httpProxy } from "utils/proxy/http";
import { formatApiCall } from "utils/proxy/api-helpers";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
import { formatApiCall } from "utils/proxy/api-helpers";
import { httpProxy } from "utils/proxy/http";
import widgets from "widgets/widgets";
const proxyName = "audiobookshelfProxyHandler";

View File

@ -1,6 +1,6 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import { useTranslation } from "next-i18next";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,6 +1,6 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import { useTranslation } from "next-i18next";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,6 +1,6 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import { useTranslation } from "next-i18next";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,6 +1,6 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import { useTranslation } from "next-i18next";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,5 +1,5 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
import { asJson } from "utils/proxy/api-helpers";
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/api/{endpoint}/wanted?apikey={key}",

View File

@ -1,6 +1,6 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import { useTranslation } from "next-i18next";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,10 +1,10 @@
import cache from "memory-cache";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
import { formatApiCall } from "utils/proxy/api-helpers";
import { httpProxy } from "utils/proxy/http";
import widgets from "widgets/widgets";
import createLogger from "utils/logger";
const proxyName = "beszelProxyHandler";
const tokenCacheKey = `${proxyName}__token`;

View File

@ -1,6 +1,6 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import Container from "components/services/widget/container";
import { useTranslation } from "next-i18next";
import useWidgetAPI from "utils/proxy/use-widget-api";

View File

@ -1,5 +1,5 @@
import { DateTime } from "luxon";
import classNames from "classnames";
import { DateTime } from "luxon";
import { useTranslation } from "next-i18next";
import Event, { compareDateTimezone } from "./event";

View File

@ -1,12 +1,12 @@
import { useEffect, useMemo, useState, useContext } from "react";
import dynamic from "next/dynamic";
import Container from "components/services/widget/container";
import { DateTime } from "luxon";
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import dynamic from "next/dynamic";
import { useContext, useEffect, useMemo, useState } from "react";
import { SettingsContext } from "utils/contexts/settings";
import Monthly from "./monthly";
import Agenda from "./agenda";
import Monthly from "./monthly";
const colorVariants = {
// https://tailwindcss.com/docs/content-configuration#dynamic-class-names

View File

@ -1,7 +1,7 @@
import { useState } from "react";
import { useTranslation } from "next-i18next";
import { DateTime } from "luxon";
import classNames from "classnames";
import { DateTime } from "luxon";
import { useTranslation } from "next-i18next";
import { useState } from "react";
import { IoMdCheckmarkCircleOutline } from "react-icons/io";
export default function Event({ event, colorVariants, showDate = false, showTime = false, showDateColumn = true }) {

View File

@ -1,11 +1,11 @@
import { DateTime } from "luxon";
import { parseString } from "cal-parser";
import { useEffect } from "react";
import { DateTime } from "luxon";
import { useTranslation } from "next-i18next";
import { useEffect } from "react";
import { RRule } from "rrule";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
import Error from "../../../components/services/widget/error";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
// https://gist.github.com/jlevy/c246006675becc446360a798e2b2d781
function simpleHash(str) {

View File

@ -1,8 +1,8 @@
import { DateTime } from "luxon";
import { useEffect } from "react";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
import Error from "../../../components/services/widget/error";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
export default function Integration({ config, params, setEvents, hideErrors = false }) {
const { data: lidarrData, error: lidarrError } = useWidgetAPI(config, "calendar", {

View File

@ -1,9 +1,9 @@
import { DateTime } from "luxon";
import { useEffect } from "react";
import { useTranslation } from "next-i18next";
import { useEffect } from "react";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
import Error from "../../../components/services/widget/error";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
export default function Integration({ config, params, setEvents, hideErrors = false }) {
const { t } = useTranslation();

View File

@ -1,8 +1,8 @@
import { DateTime } from "luxon";
import { useEffect } from "react";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
import Error from "../../../components/services/widget/error";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
export default function Integration({ config, params, setEvents, hideErrors = false }) {
const { data: readarrData, error: readarrError } = useWidgetAPI(config, "calendar", {

View File

@ -1,8 +1,8 @@
import { DateTime } from "luxon";
import { useEffect } from "react";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
import Error from "../../../components/services/widget/error";
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
export default function Integration({ config, params, setEvents, hideErrors = false }) {
const { data: sonarrData, error: sonarrError } = useWidgetAPI(config, "calendar", {

Some files were not shown because too many files have changed in this diff Show More