From a0abb3f59037f253b5e2825191ecdd8f2592b627 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Wed, 9 Oct 2024 21:24:48 -0400 Subject: [PATCH 01/28] removed everything that wasnt about page --- ui/src/components/Settings/About/index.tsx | 116 +++++++++++++++++++++ ui/src/components/Settings/index.tsx | 5 + ui/src/pages/settings/about/index.tsx | 11 ++ 3 files changed, 132 insertions(+) create mode 100644 ui/src/components/Settings/About/index.tsx create mode 100644 ui/src/pages/settings/about/index.tsx diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx new file mode 100644 index 00000000..fc33593e --- /dev/null +++ b/ui/src/components/Settings/About/index.tsx @@ -0,0 +1,116 @@ +import { RefreshIcon, SaveIcon } from '@heroicons/react/solid' +import { InformationCircleIcon } from '@heroicons/react/solid' +import React, { useContext, useEffect, useRef, useState } from 'react' +import SettingsContext from '../../../contexts/settings-context' +import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' + +interface VersionResponse { + status: 1 | 0 + version: string + commitTag: string + updateAvailable: boolean +} + +const AboutSettings = () => { + useEffect(() => { + document.title = 'Maintainerr - Settings - About' + }, []) + + const getBrowserTimezone = (): string => { + return Intl.DateTimeFormat().resolvedOptions().timeZone + } + + const [version, setVersion] = useState('') + const [commitTag, setCommitTag] = useState('') + + useEffect(() => { + GetApiHandler('/app/status').then((resp: VersionResponse) => { + if (resp.status) { + setVersion(resp.version) + setCommitTag(resp.commitTag) + } + }) + }, []) + + return ( +
+
+
+
+ +
+
+

+ This is BETA software. Features may be broken and/or unstable. + Please report any issues on GitHub!' +

+

+ + GitHub → + +

+
+
+
+ +
+

About Maintainerr

+
+
+
+ +
+
+ + {commitTag === 'local' ? 'local' : <>{version}} + +
+
+
+
+ +
+
+ + /opt/data + +
+
+
+
+ +
+
+ + {getBrowserTimezone()} + +
+
+
+
+
+

Radarr Statistics

+
+
+
+ +
+
+
+
+
+
+ ) +} +export default AboutSettings diff --git a/ui/src/components/Settings/index.tsx b/ui/src/components/Settings/index.tsx index 309b5eaa..db8a2361 100644 --- a/ui/src/components/Settings/index.tsx +++ b/ui/src/components/Settings/index.tsx @@ -46,6 +46,11 @@ const SettingsWrapper: React.FC<{ children?: ReactNode }> = (props: { route: '/settings/jobs', regex: /^\/settings(\/jobs)?$/, }, + { + text: 'About', + route: '/settings/about', + regex: /^\/settings(\/about)?$/, + }, ] useEffect(() => { diff --git a/ui/src/pages/settings/about/index.tsx b/ui/src/pages/settings/about/index.tsx new file mode 100644 index 00000000..873e4b69 --- /dev/null +++ b/ui/src/pages/settings/about/index.tsx @@ -0,0 +1,11 @@ +import { NextPage } from 'next' +import SettingsWrapper from '../../../components/Settings' +import AboutSettings from '../../../components/Settings/About' +const SettingsAbout: NextPage = () => { + return ( + + + + ) +} +export default SettingsAbout From 984f1310b860e0d0039c7bdba791fd4565e016a7 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Sat, 19 Oct 2024 14:58:02 -0400 Subject: [PATCH 02/28] styling changes to about info --- ui/src/components/Settings/About/index.tsx | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index fc33593e..fecc836e 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -58,47 +58,51 @@ const AboutSettings = () => { -
+

About Maintainerr

-
-
+
+
+
-
+
- + {commitTag === 'local' ? 'local' : <>{version}}
-
+
+
-
+
- + /opt/data
-
+
+
-
+
- + {getBrowserTimezone()}
+

Radarr Statistics

From cb884374d0b32a126012bbba895ba3af35816dbd Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Fri, 25 Oct 2024 12:51:01 -0400 Subject: [PATCH 03/28] basic outline of ideas --- ui/src/components/Settings/About/index.tsx | 162 ++++++++++++++++++++- 1 file changed, 155 insertions(+), 7 deletions(-) diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index fecc836e..3c393357 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -15,11 +15,12 @@ const AboutSettings = () => { useEffect(() => { document.title = 'Maintainerr - Settings - About' }, []) - + // Timezone const getBrowserTimezone = (): string => { return Intl.DateTimeFormat().resolvedOptions().timeZone } - + // End Timezone + // Maintainerr Version const [version, setVersion] = useState('') const [commitTag, setCommitTag] = useState('') @@ -31,6 +32,7 @@ const AboutSettings = () => { } }) }, []) + // End Maintainerr Version return (
@@ -57,7 +59,7 @@ const AboutSettings = () => {
- + {/* Maintainerr Portion */}

About Maintainerr

@@ -101,19 +103,165 @@ const AboutSettings = () => {
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+

-
+ {/* End Maintainerr Portion */} + {/* Radarr Portion */} +

Radarr Statistics

-
-
+
+
+
-
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ {/* End Radarr Portion */} + {/* Sonarr Portion */} +
+

Sonarr Statistics

+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ {/* End Sonarr Portion */} + {/* Overseerr Portion */} +
+

Overseerr Statistics

+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ {/* End Overseerr Portion */}
) } From 1b90ea74687efd56520d8286b127af84a003d5af Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Fri, 25 Oct 2024 13:45:51 -0400 Subject: [PATCH 04/28] added alternate about page idea --- .../components/Settings/About-ALT/index.tsx | 259 ++++++++++++++++++ ui/src/components/Settings/index.tsx | 5 + ui/src/pages/settings/about-ALT/index.tsx | 11 + 3 files changed, 275 insertions(+) create mode 100644 ui/src/components/Settings/About-ALT/index.tsx create mode 100644 ui/src/pages/settings/about-ALT/index.tsx diff --git a/ui/src/components/Settings/About-ALT/index.tsx b/ui/src/components/Settings/About-ALT/index.tsx new file mode 100644 index 00000000..1c74351f --- /dev/null +++ b/ui/src/components/Settings/About-ALT/index.tsx @@ -0,0 +1,259 @@ +import { InformationCircleIcon, HeartIcon } from '@heroicons/react/solid' +import React, { useContext, useEffect, useRef, useState } from 'react' +import SettingsContext from '../../../contexts/settings-context' +import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' + +interface VersionResponse { + status: 1 | 0 + version: string + commitTag: string + updateAvailable: boolean +} + +const AboutSettings = () => { + useEffect(() => { + document.title = 'Maintainerr - Settings - About' + }, []) + // Timezone + const getBrowserTimezone = (): string => { + return Intl.DateTimeFormat().resolvedOptions().timeZone + } + // End Timezone + // Maintainerr Version + const [version, setVersion] = useState('') + const [commitTag, setCommitTag] = useState('') + + useEffect(() => { + GetApiHandler('/app/status').then((resp: VersionResponse) => { + if (resp.status) { + setVersion(resp.version) + setCommitTag(resp.commitTag) + } + }) + }, []) + // End Maintainerr Version + + return ( +
+
+
+
+ +
+
+

+ This is BETA software. Features may be broken and/or unstable. + Please report any issues on GitHub!' +

+

+ + GitHub → + +

+
+
+
+ {/* Maintainerr Portion */} +
+

About Maintainerr

+
+
+
+
+ +
+
+ + {commitTag === 'local' ? 'local' : <>{version}} + +
+
+
+
+
+ +
+
+ + /opt/data + +
+
+
+
+
+ +
+
+ + {getBrowserTimezone()} + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ {/* End Maintainerr Portion */} + {/* Useful Links */} +
+

Useful Links

+
+
+
+
+ + +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+ + +
+
+
+ {/* End Userful Links */} + {/* Useful Links */} +
+

Loving Maintainerr?

+
+
+
+
+ + +
+
+
+
+
+ +
+ +
+
+
+ {/* End Userful Links */} +
+ ) +} +export default AboutSettings diff --git a/ui/src/components/Settings/index.tsx b/ui/src/components/Settings/index.tsx index db8a2361..9d60de12 100644 --- a/ui/src/components/Settings/index.tsx +++ b/ui/src/components/Settings/index.tsx @@ -51,6 +51,11 @@ const SettingsWrapper: React.FC<{ children?: ReactNode }> = (props: { route: '/settings/about', regex: /^\/settings(\/about)?$/, }, + { + text: 'About-ALT', + route: '/settings/about-ALT', + regex: /^\/settings(\/about-ALT)?$/, + }, ] useEffect(() => { diff --git a/ui/src/pages/settings/about-ALT/index.tsx b/ui/src/pages/settings/about-ALT/index.tsx new file mode 100644 index 00000000..1a91ed55 --- /dev/null +++ b/ui/src/pages/settings/about-ALT/index.tsx @@ -0,0 +1,11 @@ +import { NextPage } from 'next' +import SettingsWrapper from '../../../components/Settings' +import AboutSettings from '../../../components/Settings/About-ALT' +const SettingsAbout: NextPage = () => { + return ( + + + + ) +} +export default SettingsAbout From a90456f823c59555908b7174eab985838afa60a1 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Sat, 16 Nov 2024 13:42:17 -0500 Subject: [PATCH 05/28] adding releases to bottom of the about page (copied from overseerr) --- .../Settings/About-ALT/Releases/index.tsx | 144 ++++++++++++++++++ .../components/Settings/About-ALT/index.tsx | 6 + ui/src/components/Settings/Testing/index.tsx | 45 ++++++ ui/src/components/Settings/index.tsx | 5 + ui/src/pages/settings/Testing/index.tsx | 11 ++ 5 files changed, 211 insertions(+) create mode 100644 ui/src/components/Settings/About-ALT/Releases/index.tsx create mode 100644 ui/src/components/Settings/Testing/index.tsx create mode 100644 ui/src/pages/settings/Testing/index.tsx diff --git a/ui/src/components/Settings/About-ALT/Releases/index.tsx b/ui/src/components/Settings/About-ALT/Releases/index.tsx new file mode 100644 index 00000000..774ca682 --- /dev/null +++ b/ui/src/components/Settings/About-ALT/Releases/index.tsx @@ -0,0 +1,144 @@ +import Badge from '../../../Common/Badge' +import Button from '../../../Common/Button' +import LoadingSpinner from '../../../Common/LoadingSpinner' +import Modal from '../../../Common/Modal' +import { Transition } from '@headlessui/react' +import { DocumentTextIcon } from '@heroicons/react/outline' +import dynamic from 'next/dynamic' +import React, { Fragment, useContext, useEffect, useRef, useState } from 'react' +import GetApiHandler, { PostApiHandler } from '../../../../utils/ApiHandler' + +const messages = { + releases: 'Releases', + releasedataMissing: 'Release data is currently unavailable.', + versionChangelog: '{version} Changelog', + viewongithub: 'View on GitHub', + latestversion: 'Latest', + currentversion: 'Current', + viewchangelog: 'View Changelog', +} + +const REPO_RELEASE_API = + 'https://api.github.com/repos/jorenn92/Maintainerr/releases?per_page=20' + +interface GitHubRelease { + url: string + assets_url: string + upload_url: string + html_url: string + id: number + node_id: string + tag_name: string + target_commitish: string + name: string + draft: boolean + prerelease: boolean + created_at: string + published_at: string + tarball_url: string + zipball_url: string + body: string +} + +interface ReleaseProps { + release: GitHubRelease + isLatest: boolean + currentVersion: string +} + +const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { + const [isModalOpen, setModalOpen] = useState(false) + + return ( +
+ + setModalOpen(false)} + title={ + (messages.versionChangelog, + { + version: release.name, + }) + } + cancelText={'close'} + okText={'viewongithub'} + onOk={() => { + window.open(release.html_url, '_blank') + }} + > +
{release.body}
+
+
+
+ + + + + {release.name} + + {isLatest && ( + + {('latestversion')} + + )} + {release.name.includes(currentVersion) && ( + + {('currentversion')} + + )} +
+ +
+ ) +} + +interface ReleasesProps { + currentVersion: string +} + +useEffect(() => { + GetApiHandler(REPO_RELEASE_API).then((resp: GitHubRelease) => { + if (resp.id) {[] + } + }) + }, []) + + return ( +
+

{('releases')}

+
+ {data.map((release, index) => { + return ( +
+ +
+ ) + })} +
+
+ ) +} + +export default Releases diff --git a/ui/src/components/Settings/About-ALT/index.tsx b/ui/src/components/Settings/About-ALT/index.tsx index 1c74351f..a8cd4fd6 100644 --- a/ui/src/components/Settings/About-ALT/index.tsx +++ b/ui/src/components/Settings/About-ALT/index.tsx @@ -2,6 +2,7 @@ import { InformationCircleIcon, HeartIcon } from '@heroicons/react/solid' import React, { useContext, useEffect, useRef, useState } from 'react' import SettingsContext from '../../../contexts/settings-context' import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' +import Releases from './Releases' interface VersionResponse { status: 1 | 0 @@ -253,6 +254,11 @@ const AboutSettings = () => {
{/* End Userful Links */} + {/* Show Releases */} +
+ {/* */} +
+ {/* End Showing Releases */}
) } diff --git a/ui/src/components/Settings/Testing/index.tsx b/ui/src/components/Settings/Testing/index.tsx new file mode 100644 index 00000000..16ded14a --- /dev/null +++ b/ui/src/components/Settings/Testing/index.tsx @@ -0,0 +1,45 @@ +import { RefreshIcon, SaveIcon } from '@heroicons/react/solid' +import { InformationCircleIcon } from '@heroicons/react/solid' +import React, { useContext, useEffect, useRef, useState } from 'react' +import SettingsContext from '../../../contexts/settings-context' +import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' + +interface RandomData { + firstName: string + version: string + commitTag: string + updateAvailable: boolean +} + +const AboutSettings = () => { + useEffect(() => { + document.title = 'Maintainerr - Settings - Blank' + }, []) + + const [userData, setUserData] = useState(null) + useEffect(() => { + fetch('https://random-data-api.com/api/users/random_user') + .then((response) => response.json()) + .then((data) => setUserData(data)) + }, []) + + return ( +
+ {userData && ( +
+

User Information

+

+ Name: + {userData.first_name} + {userData.last_name} +

+

Email: {userData.email}

+

Password: {userData.password}

+ {/* Add more user data fields as needed */} +
+ )} +
+ ) +} + +export default AboutSettings diff --git a/ui/src/components/Settings/index.tsx b/ui/src/components/Settings/index.tsx index 9d60de12..58607392 100644 --- a/ui/src/components/Settings/index.tsx +++ b/ui/src/components/Settings/index.tsx @@ -56,6 +56,11 @@ const SettingsWrapper: React.FC<{ children?: ReactNode }> = (props: { route: '/settings/about-ALT', regex: /^\/settings(\/about-ALT)?$/, }, + { + text: 'Testing', + route: '/settings/Testing', + regex: /^\/settings(\/Testing)?$/, + }, ] useEffect(() => { diff --git a/ui/src/pages/settings/Testing/index.tsx b/ui/src/pages/settings/Testing/index.tsx new file mode 100644 index 00000000..663bc36a --- /dev/null +++ b/ui/src/pages/settings/Testing/index.tsx @@ -0,0 +1,11 @@ +import { NextPage } from 'next' +import SettingsWrapper from '../../../components/Settings' +import AboutSettings from '../../../components/Settings/Testing' +const SettingsAbout: NextPage = () => { + return ( + + + + ) +} +export default SettingsAbout From 9a1ddaa2adeb58768faa6fc75e5862baefcab377 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Fri, 22 Nov 2024 20:00:19 -0500 Subject: [PATCH 06/28] removed stats about page --- package.json | 1 + .../Settings/About-ALT/Releases/index.tsx | 144 ---- .../components/Settings/About-ALT/index.tsx | 265 ------ .../Settings/About/ChangeLogModal/index.tsx | 134 +++ .../Settings/About/Releases/index.tsx | 170 ++++ ui/src/components/Settings/About/index.tsx | 151 ++-- ui/src/components/Settings/Testing/index.tsx | 45 - ui/src/components/Settings/index.tsx | 10 - ui/src/pages/settings/about-ALT/index.tsx | 11 - yarn.lock | 798 +++++++++++++++++- 10 files changed, 1164 insertions(+), 565 deletions(-) delete mode 100644 ui/src/components/Settings/About-ALT/Releases/index.tsx delete mode 100644 ui/src/components/Settings/About-ALT/index.tsx create mode 100644 ui/src/components/Settings/About/ChangeLogModal/index.tsx create mode 100644 ui/src/components/Settings/About/Releases/index.tsx delete mode 100644 ui/src/components/Settings/Testing/index.tsx delete mode 100644 ui/src/pages/settings/about-ALT/index.tsx diff --git a/package.json b/package.json index 9b020d20..f3e21942 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "plex-api": "^5.3.2", "react": "18.2.0", "react-dom": "18.3.1", + "react-markdown": "^9.0.1", "react-select": "^5.8.0", "react-toast-notifications": "^2.5.1", "react-transition-group": "^4.4.5", diff --git a/ui/src/components/Settings/About-ALT/Releases/index.tsx b/ui/src/components/Settings/About-ALT/Releases/index.tsx deleted file mode 100644 index 774ca682..00000000 --- a/ui/src/components/Settings/About-ALT/Releases/index.tsx +++ /dev/null @@ -1,144 +0,0 @@ -import Badge from '../../../Common/Badge' -import Button from '../../../Common/Button' -import LoadingSpinner from '../../../Common/LoadingSpinner' -import Modal from '../../../Common/Modal' -import { Transition } from '@headlessui/react' -import { DocumentTextIcon } from '@heroicons/react/outline' -import dynamic from 'next/dynamic' -import React, { Fragment, useContext, useEffect, useRef, useState } from 'react' -import GetApiHandler, { PostApiHandler } from '../../../../utils/ApiHandler' - -const messages = { - releases: 'Releases', - releasedataMissing: 'Release data is currently unavailable.', - versionChangelog: '{version} Changelog', - viewongithub: 'View on GitHub', - latestversion: 'Latest', - currentversion: 'Current', - viewchangelog: 'View Changelog', -} - -const REPO_RELEASE_API = - 'https://api.github.com/repos/jorenn92/Maintainerr/releases?per_page=20' - -interface GitHubRelease { - url: string - assets_url: string - upload_url: string - html_url: string - id: number - node_id: string - tag_name: string - target_commitish: string - name: string - draft: boolean - prerelease: boolean - created_at: string - published_at: string - tarball_url: string - zipball_url: string - body: string -} - -interface ReleaseProps { - release: GitHubRelease - isLatest: boolean - currentVersion: string -} - -const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { - const [isModalOpen, setModalOpen] = useState(false) - - return ( -
- - setModalOpen(false)} - title={ - (messages.versionChangelog, - { - version: release.name, - }) - } - cancelText={'close'} - okText={'viewongithub'} - onOk={() => { - window.open(release.html_url, '_blank') - }} - > -
{release.body}
-
-
-
- - - - - {release.name} - - {isLatest && ( - - {('latestversion')} - - )} - {release.name.includes(currentVersion) && ( - - {('currentversion')} - - )} -
- -
- ) -} - -interface ReleasesProps { - currentVersion: string -} - -useEffect(() => { - GetApiHandler(REPO_RELEASE_API).then((resp: GitHubRelease) => { - if (resp.id) {[] - } - }) - }, []) - - return ( -
-

{('releases')}

-
- {data.map((release, index) => { - return ( -
- -
- ) - })} -
-
- ) -} - -export default Releases diff --git a/ui/src/components/Settings/About-ALT/index.tsx b/ui/src/components/Settings/About-ALT/index.tsx deleted file mode 100644 index a8cd4fd6..00000000 --- a/ui/src/components/Settings/About-ALT/index.tsx +++ /dev/null @@ -1,265 +0,0 @@ -import { InformationCircleIcon, HeartIcon } from '@heroicons/react/solid' -import React, { useContext, useEffect, useRef, useState } from 'react' -import SettingsContext from '../../../contexts/settings-context' -import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' -import Releases from './Releases' - -interface VersionResponse { - status: 1 | 0 - version: string - commitTag: string - updateAvailable: boolean -} - -const AboutSettings = () => { - useEffect(() => { - document.title = 'Maintainerr - Settings - About' - }, []) - // Timezone - const getBrowserTimezone = (): string => { - return Intl.DateTimeFormat().resolvedOptions().timeZone - } - // End Timezone - // Maintainerr Version - const [version, setVersion] = useState('') - const [commitTag, setCommitTag] = useState('') - - useEffect(() => { - GetApiHandler('/app/status').then((resp: VersionResponse) => { - if (resp.status) { - setVersion(resp.version) - setCommitTag(resp.commitTag) - } - }) - }, []) - // End Maintainerr Version - - return ( -
-
-
-
- -
-
-

- This is BETA software. Features may be broken and/or unstable. - Please report any issues on GitHub!' -

-

- - GitHub → - -

-
-
-
- {/* Maintainerr Portion */} -
-

About Maintainerr

-
-
-
-
- -
-
- - {commitTag === 'local' ? 'local' : <>{version}} - -
-
-
-
-
- -
-
- - /opt/data - -
-
-
-
-
- -
-
- - {getBrowserTimezone()} - -
-
-
-
-
- -
-
- - "Value goes here" - -
-
-
-
-
- -
-
- - "Value goes here" - -
-
-
-
-
- -
-
- - "Value goes here" - -
-
-
-
-
- {/* End Maintainerr Portion */} - {/* Useful Links */} -
-

Useful Links

-
-
-
-
- - -
-
-
-
- -
-
- -
-
-
- - -
-
-
-
-
- - -
-
-
- {/* End Userful Links */} - {/* Useful Links */} -
-

Loving Maintainerr?

-
-
-
-
- - -
-
-
-
-
- -
- -
-
-
- {/* End Userful Links */} - {/* Show Releases */} -
- {/* */} -
- {/* End Showing Releases */} -
- ) -} -export default AboutSettings diff --git a/ui/src/components/Settings/About/ChangeLogModal/index.tsx b/ui/src/components/Settings/About/ChangeLogModal/index.tsx new file mode 100644 index 00000000..db2426ee --- /dev/null +++ b/ui/src/components/Settings/About/ChangeLogModal/index.tsx @@ -0,0 +1,134 @@ +import React, { Fragment } from 'react' +import { useState } from 'react' +import Modal from '../../../Common/Modal' +import LoadingSpinner from '../../../Common/LoadingSpinner' +import dynamic from 'next/dynamic' + +interface ChangeLogModal { + title: string + children: React.ReactNode + isOpen: boolean + onCancel: () => void + onOk?: () => void + cancelText?: string + okText?: string + release: GitHubRelease + isLatest: boolean + currentVersion: string +} +interface GitHubRelease { + url: string + assets_url: string + upload_url: string + html_url: string + id: number + node_id: string + tag_name: string + target_commitish: string + name: string + draft: boolean + prerelease: boolean + created_at: string + published_at: string + tarball_url: string + zipball_url: string + body: string +} +interface ReleaseProps { + release: GitHubRelease + isLatest: boolean + currentVersion: string +} + +const messages = { + releases: 'Releases', + releasedataMissing: 'Release data is currently unavailable.', + versionChangelog: '{version} Changelog', + viewongithub: 'View on GitHub', + latestversion: 'Latest', + currentversion: 'Currently Installed', + viewchangelog: 'View Changelog', + close: 'Close', +} + +const ReactMarkdown = dynamic(() => import('react-markdown'), { + ssr: false, +}) + +const REPO_RELEASE_API = + 'https://api.github.com/repos/jorenn92/maintainerr/releases?per_page=10' + +const ChangeLogModal = ({ + currentVersion, + release, + isLatest, + onCancel, +}: ChangeLogModal) => { + const handleCancel = () => { + ChangeLogModal.onCancel() + } + + return ( + { + window.open(release.html_url, '_blank') + }} + > +
+ {release.body} +
+
+ ) +} +const Releases = ({ currentVersion }: ReleasesProps) => { + const [data, setData] = useState(null) + const [error, setError] = useState(null) + + useEffect(() => { + const fetchReleases = async () => { + try { + const response = await fetch(REPO_RELEASE_API) + if (!response.ok) { + throw new Error(`Error: ${response.status}`) + } + const releases = await response.json() + setData(releases) + } catch (err) { + setError(err.message || 'Failed to fetch releases') + } + } + + fetchReleases() + }, []) + + if (!data && !error) { + return + } + + if (error) { + return
{messages.releasedataMissing}
+ } + + return ( +
+

{messages.releases}

+
+ {data!.map((release, index) => ( +
+ +
+ ))} +
+
+ ) +} diff --git a/ui/src/components/Settings/About/Releases/index.tsx b/ui/src/components/Settings/About/Releases/index.tsx new file mode 100644 index 00000000..e8da780d --- /dev/null +++ b/ui/src/components/Settings/About/Releases/index.tsx @@ -0,0 +1,170 @@ +import Badge from '../../../Common/Badge' +import Button from '../../../Common/Button' +import LoadingSpinner from '../../../Common/LoadingSpinner' +import ChangeLogModal from '../ChangeLogModal' +import { DocumentTextIcon } from '@heroicons/react/outline' +import dynamic from 'next/dynamic' +import { Fragment, useEffect, useState } from 'react' +import Modal from '../../../Common/Modal' + +// Dynamic import for markdown +const ReactMarkdown = dynamic(() => import('react-markdown'), { + ssr: false, +}) + +const messages = { + releases: 'Releases', + releasedataMissing: 'Release data is currently unavailable.', + versionChangelog: '{version} Changelog', + viewongithub: 'View on GitHub', + latestversion: 'Latest', + currentversion: 'Currently Installed', + viewchangelog: 'View Changelog', + close: 'Close', +} + +const REPO_RELEASE_API = + 'https://api.github.com/repos/jorenn92/maintainerr/releases?per_page=10' + +interface GitHubRelease { + url: string + assets_url: string + upload_url: string + html_url: string + id: number + node_id: string + tag_name: string + target_commitish: string + name: string + draft: boolean + prerelease: boolean + created_at: string + published_at: string + tarball_url: string + zipball_url: string + body: string +} +interface ModalProps { + title: string + children: React.ReactNode + isOpen: boolean + onCancel: () => void + onOk?: () => void + cancelText?: string + okText?: string +} + +interface ReleaseProps { + release: GitHubRelease + isLatest: boolean + currentVersion: string +} + +const calculateRelativeTime = (dateString: string): string => { + const secondsAgo = Math.floor( + (Date.now() - new Date(dateString).getTime()) / 1000, + ) + const minutesAgo = Math.floor(secondsAgo / 60) + const hoursAgo = Math.floor(minutesAgo / 60) + const daysAgo = Math.floor(hoursAgo / 24) + + if (secondsAgo < 60) return `${secondsAgo} seconds ago` + if (minutesAgo < 60) return `${minutesAgo} minutes ago` + if (hoursAgo < 24) return `${hoursAgo} hours ago` + return `${daysAgo} days ago` +} + +const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { + const [AboutModalActive, setModalActive] = useState() + + return ( +
+ setModalActive(false)} + title={messages.versionChangelog.replace('{version}', release.name)} + cancelText={messages.close} + okText={messages.viewongithub} + onOk={() => { + window.open(release.html_url, '_blank') + }} + > +
+ {release.body} +
+
+
+ + + {calculateRelativeTime(release.created_at)} + + {release.name} + + {isLatest && ( + {messages.latestversion} + )} + {release.name.includes(currentVersion) && ( + {messages.currentversion} + )} +
+ +
+ ) +} + +interface ReleasesProps { + currentVersion: string +} + +const Releases = ({ currentVersion }: ReleasesProps) => { + const [data, setData] = useState(null) + const [error, setError] = useState(null) + + useEffect(() => { + const fetchReleases = async () => { + try { + const response = await fetch(REPO_RELEASE_API) + if (!response.ok) { + throw new Error(`Error: ${response.status}`) + } + const releases = await response.json() + setData(releases) + } catch (err) { + setError(err.message || 'Failed to fetch releases') + } + } + + fetchReleases() + }, []) + + if (!data && !error) { + return + } + + if (error) { + return
{messages.releasedataMissing}
+ } + + return ( +
+

{messages.releases}

+
+ {data!.map((release, index) => ( +
+ +
+ ))} +
+
+ ) +} + +export default Releases diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index 3c393357..3a32e8d2 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -1,8 +1,7 @@ -import { RefreshIcon, SaveIcon } from '@heroicons/react/solid' import { InformationCircleIcon } from '@heroicons/react/solid' import React, { useContext, useEffect, useRef, useState } from 'react' -import SettingsContext from '../../../contexts/settings-context' -import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' +import GetApiHandler from '../../../utils/ApiHandler' +import Releases from './Releases' interface VersionResponse { status: 1 | 0 @@ -129,139 +128,123 @@ const AboutSettings = () => {
-
-
- -
-
- - "Value goes here" - -
-
-

{/* End Maintainerr Portion */} - {/* Radarr Portion */} + {/* Useful Links */}
-

Radarr Statistics

+

Useful Links


- -
-
- "Value goes here" -
-
-
-
-
- +
-
- "Value goes here" -
-
-
-
-
- -
-
- "Value goes here" -
-
-
-
-
- -
-
- "Value goes here" +

- {/* End Radarr Portion */} - {/* Sonarr Portion */} -
-

Sonarr Statistics

-
-
- +
-
- "Value goes here" +
-
+
+
+
- + -
+
+
+
- +
-
-
+
+
+
- +
-

- {/* End Sonarr Portion */} - {/* Overseerr Portion */} + {/* End Userful Links */} + {/* Useful Links */}
-

Overseerr Statistics

+

Loving Maintainerr?


- +
-
- "Value goes here" +
-
+
+
+
- +
-
- "Value goes here" +
-
- {/* End Overseerr Portion */} + {/* End Userful Links */} + {/* Show Releases */} +
+ +
+ {/* End Showing Releases */}
) } diff --git a/ui/src/components/Settings/Testing/index.tsx b/ui/src/components/Settings/Testing/index.tsx deleted file mode 100644 index 16ded14a..00000000 --- a/ui/src/components/Settings/Testing/index.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { RefreshIcon, SaveIcon } from '@heroicons/react/solid' -import { InformationCircleIcon } from '@heroicons/react/solid' -import React, { useContext, useEffect, useRef, useState } from 'react' -import SettingsContext from '../../../contexts/settings-context' -import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' - -interface RandomData { - firstName: string - version: string - commitTag: string - updateAvailable: boolean -} - -const AboutSettings = () => { - useEffect(() => { - document.title = 'Maintainerr - Settings - Blank' - }, []) - - const [userData, setUserData] = useState(null) - useEffect(() => { - fetch('https://random-data-api.com/api/users/random_user') - .then((response) => response.json()) - .then((data) => setUserData(data)) - }, []) - - return ( -
- {userData && ( -
-

User Information

-

- Name: - {userData.first_name} - {userData.last_name} -

-

Email: {userData.email}

-

Password: {userData.password}

- {/* Add more user data fields as needed */} -
- )} -
- ) -} - -export default AboutSettings diff --git a/ui/src/components/Settings/index.tsx b/ui/src/components/Settings/index.tsx index 58607392..db8a2361 100644 --- a/ui/src/components/Settings/index.tsx +++ b/ui/src/components/Settings/index.tsx @@ -51,16 +51,6 @@ const SettingsWrapper: React.FC<{ children?: ReactNode }> = (props: { route: '/settings/about', regex: /^\/settings(\/about)?$/, }, - { - text: 'About-ALT', - route: '/settings/about-ALT', - regex: /^\/settings(\/about-ALT)?$/, - }, - { - text: 'Testing', - route: '/settings/Testing', - regex: /^\/settings(\/Testing)?$/, - }, ] useEffect(() => { diff --git a/ui/src/pages/settings/about-ALT/index.tsx b/ui/src/pages/settings/about-ALT/index.tsx deleted file mode 100644 index 1a91ed55..00000000 --- a/ui/src/pages/settings/about-ALT/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { NextPage } from 'next' -import SettingsWrapper from '../../../components/Settings' -import AboutSettings from '../../../components/Settings/About-ALT' -const SettingsAbout: NextPage = () => { - return ( - - - - ) -} -export default SettingsAbout diff --git a/yarn.lock b/yarn.lock index 59d0ef99..65136632 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4162,20 +4162,38 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^1.0.5": +"@types/debug@npm:^4.0.0": + version: 4.1.12 + resolution: "@types/debug@npm:4.1.12" + dependencies: + "@types/ms": "npm:*" + checksum: 10c0/5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f + languageName: node + linkType: hard + +"@types/estree-jsx@npm:^1.0.0": version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d + resolution: "@types/estree-jsx@npm:1.0.5" + dependencies: + "@types/estree": "npm:*" + checksum: 10c0/07b354331516428b27a3ab99ee397547d47eb223c34053b48f84872fafb841770834b90cc1a0068398e7c7ccb15ec51ab00ec64b31dc5e3dbefd624638a35c6d languageName: node linkType: hard -"@types/estree@npm:^1.0.6": +"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a languageName: node linkType: hard +"@types/estree@npm:^1.0.5": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d + languageName: node + linkType: hard + "@types/express-serve-static-core@npm:^5.0.0": version: 5.0.0 resolution: "@types/express-serve-static-core@npm:5.0.0" @@ -4209,6 +4227,15 @@ __metadata: languageName: node linkType: hard +"@types/hast@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "npm:*" + checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7 + languageName: node + linkType: hard + "@types/http-errors@npm:*": version: 2.0.4 resolution: "@types/http-errors@npm:2.0.4" @@ -4279,6 +4306,15 @@ __metadata: languageName: node linkType: hard +"@types/mdast@npm:^4.0.0": + version: 4.0.4 + resolution: "@types/mdast@npm:4.0.4" + dependencies: + "@types/unist": "npm:*" + checksum: 10c0/84f403dbe582ee508fd9c7643ac781ad8597fcbfc9ccb8d4715a2c92e4545e5772cbd0dbdf18eda65789386d81b009967fdef01b24faf6640f817287f54d9c82 + languageName: node + linkType: hard + "@types/mime@npm:*": version: 3.0.4 resolution: "@types/mime@npm:3.0.4" @@ -4293,6 +4329,13 @@ __metadata: languageName: node linkType: hard +"@types/ms@npm:*": + version: 0.7.34 + resolution: "@types/ms@npm:0.7.34" + checksum: 10c0/ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc + languageName: node + linkType: hard + "@types/node@npm:*": version: 20.11.5 resolution: "@types/node@npm:20.11.5" @@ -4443,6 +4486,20 @@ __metadata: languageName: node linkType: hard +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.3 + resolution: "@types/unist@npm:3.0.3" + checksum: 10c0/2b1e4adcab78388e088fcc3c0ae8700f76619dbcb4741d7d201f87e2cb346bfc29a89003cfea2d76c996e1061452e14fcd737e8b25aacf949c1f2d6b2bc3dd60 + languageName: node + linkType: hard + +"@types/unist@npm:^2.0.0": + version: 2.0.11 + resolution: "@types/unist@npm:2.0.11" + checksum: 10c0/24dcdf25a168f453bb70298145eb043cfdbb82472db0bc0b56d6d51cd2e484b9ed8271d4ac93000a80da568f2402e9339723db262d0869e2bf13bc58e081768d + languageName: node + linkType: hard + "@types/web-push@npm:^3.6.3": version: 3.6.3 resolution: "@types/web-push@npm:3.6.3" @@ -4755,6 +4812,13 @@ __metadata: languageName: node linkType: hard +"@ungap/structured-clone@npm:^1.0.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": version: 1.12.1 resolution: "@webassemblyjs/ast@npm:1.12.1" @@ -5712,6 +5776,13 @@ __metadata: languageName: node linkType: hard +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: 10c0/25cbea309ef6a1f56214187004e8f34014eb015713ea01fa5b9b7e9e776ca88d0fdffd64143ac42dc91966c915a4b7b683411b56e14929fad16153fc026ffb8b + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -6139,6 +6210,13 @@ __metadata: languageName: node linkType: hard +"ccount@npm:^2.0.0": + version: 2.0.1 + resolution: "ccount@npm:2.0.1" + checksum: 10c0/3939b1664390174484322bc3f45b798462e6c07ee6384cb3d645e0aa2f318502d174845198c1561930e1d431087f74cf1fe291ae9a4722821a9f4ba67e574350 + languageName: node + linkType: hard + "chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -6174,6 +6252,34 @@ __metadata: languageName: node linkType: hard +"character-entities-html4@npm:^2.0.0": + version: 2.1.0 + resolution: "character-entities-html4@npm:2.1.0" + checksum: 10c0/fe61b553f083400c20c0b0fd65095df30a0b445d960f3bbf271536ae6c3ba676f39cb7af0b4bf2755812f08ab9b88f2feed68f9aebb73bb153f7a115fe5c6e40 + languageName: node + linkType: hard + +"character-entities-legacy@npm:^3.0.0": + version: 3.0.0 + resolution: "character-entities-legacy@npm:3.0.0" + checksum: 10c0/ec4b430af873661aa754a896a2b55af089b4e938d3d010fad5219299a6b6d32ab175142699ee250640678cd64bdecd6db3c9af0b8759ab7b155d970d84c4c7d1 + languageName: node + linkType: hard + +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: 10c0/b0c645a45bcc90ff24f0e0140f4875a8436b8ef13b6bcd31ec02cfb2ca502b680362aa95386f7815bdc04b6464d48cf191210b3840d7c04241a149ede591a308 + languageName: node + linkType: hard + +"character-reference-invalid@npm:^2.0.0": + version: 2.0.1 + resolution: "character-reference-invalid@npm:2.0.1" + checksum: 10c0/2ae0dec770cd8659d7e8b0ce24392d83b4c2f0eb4a3395c955dce5528edd4cc030a794cfa06600fcdd700b3f2de2f9b8e40e309c0011c4180e3be64a0b42e6a1 + languageName: node + linkType: hard + "chardet@npm:^0.7.0": version: 0.7.0 resolution: "chardet@npm:0.7.0" @@ -6529,6 +6635,13 @@ __metadata: languageName: node linkType: hard +"comma-separated-tokens@npm:^2.0.0": + version: 2.0.3 + resolution: "comma-separated-tokens@npm:2.0.3" + checksum: 10c0/91f90f1aae320f1755d6957ef0b864fe4f54737f3313bd95e0802686ee2ca38bff1dd381964d00ae5db42912dd1f4ae5c2709644e82706ffc6f6842a813cdd67 + languageName: node + linkType: hard + "commander@npm:4.1.1, commander@npm:^4.0.0": version: 4.1.1 resolution: "commander@npm:4.1.1" @@ -7042,6 +7155,15 @@ __metadata: languageName: node linkType: hard +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: "npm:^2.0.0" + checksum: 10c0/66a9fc5d9b5385a2b3675c69ba0d8e893393d64057f7dbbb585265bb4fc05ec513d76943b8e5aac7d8016d20eea4499322cbf4cd6d54b466976b78f3a7587a4c + languageName: node + linkType: hard + "decompress-response@npm:^6.0.0": version: 6.0.0 resolution: "decompress-response@npm:6.0.0" @@ -7147,6 +7269,13 @@ __metadata: languageName: node linkType: hard +"dequal@npm:^2.0.0": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 + languageName: node + linkType: hard + "destroy@npm:1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" @@ -7168,6 +7297,15 @@ __metadata: languageName: node linkType: hard +"devlop@npm:^1.0.0, devlop@npm:^1.1.0": + version: 1.1.0 + resolution: "devlop@npm:1.1.0" + dependencies: + dequal: "npm:^2.0.0" + checksum: 10c0/e0928ab8f94c59417a2b8389c45c55ce0a02d9ac7fd74ef62d01ba48060129e1d594501b77de01f3eeafc7cb00773819b0df74d96251cf20b31c5b3071f45c0e + languageName: node + linkType: hard + "didyoumean@npm:^1.2.2": version: 1.2.2 resolution: "didyoumean@npm:1.2.2" @@ -8104,6 +8242,13 @@ __metadata: languageName: node linkType: hard +"estree-util-is-identifier-name@npm:^3.0.0": + version: 3.0.0 + resolution: "estree-util-is-identifier-name@npm:3.0.0" + checksum: 10c0/d1881c6ed14bd588ebd508fc90bf2a541811dbb9ca04dec2f39d27dcaa635f85b5ed9bbbe7fc6fb1ddfca68744a5f7c70456b4b7108b6c4c52780631cc787c5b + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -8259,7 +8404,7 @@ __metadata: languageName: node linkType: hard -"extend@npm:~3.0.2": +"extend@npm:^3.0.0, extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9 @@ -9241,6 +9386,38 @@ __metadata: languageName: node linkType: hard +"hast-util-to-jsx-runtime@npm:^2.0.0": + version: 2.3.2 + resolution: "hast-util-to-jsx-runtime@npm:2.3.2" + dependencies: + "@types/estree": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/unist": "npm:^3.0.0" + comma-separated-tokens: "npm:^2.0.0" + devlop: "npm:^1.0.0" + estree-util-is-identifier-name: "npm:^3.0.0" + hast-util-whitespace: "npm:^3.0.0" + mdast-util-mdx-expression: "npm:^2.0.0" + mdast-util-mdx-jsx: "npm:^3.0.0" + mdast-util-mdxjs-esm: "npm:^2.0.0" + property-information: "npm:^6.0.0" + space-separated-tokens: "npm:^2.0.0" + style-to-object: "npm:^1.0.0" + unist-util-position: "npm:^5.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/97761b2a48b8bc37da3d66cb4872312ae06c6e8f9be59e33b04b21fa5af371a39cb23b3ca165dd8e898ba1caf9b76399da35c957e68bad02a587a3a324216d56 + languageName: node + linkType: hard + +"hast-util-whitespace@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-whitespace@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10c0/b898bc9fe27884b272580d15260b6bbdabe239973a147e97fa98c45fa0ffec967a481aaa42291ec34fb56530dc2d484d473d7e2bae79f39c83f3762307edfea8 + languageName: node + linkType: hard + "he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -9307,6 +9484,13 @@ __metadata: languageName: node linkType: hard +"html-url-attributes@npm:^3.0.0": + version: 3.0.1 + resolution: "html-url-attributes@npm:3.0.1" + checksum: 10c0/496e4908aa8b77665f348b4b03521901794f648b8ac34a581022cd6f2c97934d5c910cd91bc6593bbf2994687549037bc2520fcdc769b31484f29ffdd402acd0 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -9625,6 +9809,13 @@ __metadata: languageName: node linkType: hard +"inline-style-parser@npm:0.2.4": + version: 0.2.4 + resolution: "inline-style-parser@npm:0.2.4" + checksum: 10c0/ddc0b210eaa03e0f98d677b9836242c583c7c6051e84ce0e704ae4626e7871c5b78f8e30853480218b446355745775df318d4f82d33087ff7e393245efa9a881 + languageName: node + linkType: hard + "inquirer@npm:8.2.6": version: 8.2.6 resolution: "inquirer@npm:8.2.6" @@ -9724,6 +9915,23 @@ __metadata: languageName: node linkType: hard +"is-alphabetical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphabetical@npm:2.0.1" + checksum: 10c0/932367456f17237533fd1fc9fe179df77957271020b83ea31da50e5cc472d35ef6b5fb8147453274ffd251134472ce24eb6f8d8398d96dee98237cdb81a6c9a7 + languageName: node + linkType: hard + +"is-alphanumerical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphanumerical@npm:2.0.1" + dependencies: + is-alphabetical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + checksum: 10c0/4b35c42b18e40d41378293f82a3ecd9de77049b476f748db5697c297f686e1e05b072a6aaae2d16f54d2a57f85b00cbbe755c75f6d583d1c77d6657bd0feb5a2 + languageName: node + linkType: hard + "is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": version: 3.0.2 resolution: "is-array-buffer@npm:3.0.2" @@ -9848,6 +10056,13 @@ __metadata: languageName: node linkType: hard +"is-decimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-decimal@npm:2.0.1" + checksum: 10c0/8085dd66f7d82f9de818fba48b9e9c0429cb4291824e6c5f2622e96b9680b54a07a624cfc663b24148b8e853c62a1c987cfe8b0b5a13f5156991afaf6736e334 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -9896,6 +10111,13 @@ __metadata: languageName: node linkType: hard +"is-hexadecimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-hexadecimal@npm:2.0.1" + checksum: 10c0/3eb60fe2f1e2bbc760b927dcad4d51eaa0c60138cf7fc671803f66353ad90c301605b502c7ea4c6bb0548e1c7e79dfd37b73b632652e3b76030bba603a7e9626 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -9954,7 +10176,7 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^4.1.0": +"is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" checksum: 10c0/32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e @@ -11379,6 +11601,13 @@ __metadata: languageName: node linkType: hard +"longest-streak@npm:^3.0.0": + version: 3.1.0 + resolution: "longest-streak@npm:3.1.0" + checksum: 10c0/7c2f02d0454b52834d1bcedef79c557bd295ee71fdabb02d041ff3aa9da48a90b5df7c0409156dedbc4df9b65da18742652aaea4759d6ece01f08971af6a7eaa + languageName: node + linkType: hard + "loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -11517,6 +11746,7 @@ __metadata: prettier-plugin-tailwindcss: "npm:^0.6.8" react: "npm:18.2.0" react-dom: "npm:18.3.1" + react-markdown: "npm:^9.0.1" react-select: "npm:^5.8.0" react-toast-notifications: "npm:^2.5.1" react-transition-group: "npm:^4.4.5" @@ -11632,6 +11862,127 @@ __metadata: languageName: node linkType: hard +"mdast-util-from-markdown@npm:^2.0.0": + version: 2.0.2 + resolution: "mdast-util-from-markdown@npm:2.0.2" + dependencies: + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + mdast-util-to-string: "npm:^4.0.0" + micromark: "npm:^4.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-decode-string: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10c0/76eb2bd2c6f7a0318087c73376b8af6d7561c1e16654e7667e640f391341096c56142618fd0ff62f6d39e5ab4895898b9789c84cd7cec2874359a437a0e1ff15 + languageName: node + linkType: hard + +"mdast-util-mdx-expression@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-mdx-expression@npm:2.0.1" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10c0/9a1e57940f66431f10312fa239096efa7627f375e7933b5d3162c0b5c1712a72ac87447aff2b6838d2bbd5c1311b188718cc90b33b67dc67a88550e0a6ef6183 + languageName: node + linkType: hard + +"mdast-util-mdx-jsx@npm:^3.0.0": + version: 3.1.3 + resolution: "mdast-util-mdx-jsx@npm:3.1.3" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + ccount: "npm:^2.0.0" + devlop: "npm:^1.1.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + parse-entities: "npm:^4.0.0" + stringify-entities: "npm:^4.0.0" + unist-util-stringify-position: "npm:^4.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/1b0b64215efbbbb1ee9ba2a2b3e5f11859dada7dff162949a0d503aefbd75c0308f17d404df126c54acea06d2224905915b2cac2e6c999514c919bd963b8de24 + languageName: node + linkType: hard + +"mdast-util-mdxjs-esm@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-mdxjs-esm@npm:2.0.1" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10c0/5bda92fc154141705af2b804a534d891f28dac6273186edf1a4c5e3f045d5b01dbcac7400d27aaf91b7e76e8dce007c7b2fdf136c11ea78206ad00bdf9db46bc + languageName: node + linkType: hard + +"mdast-util-phrasing@npm:^4.0.0": + version: 4.1.0 + resolution: "mdast-util-phrasing@npm:4.1.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10c0/bf6c31d51349aa3d74603d5e5a312f59f3f65662ed16c58017169a5fb0f84ca98578f626c5ee9e4aa3e0a81c996db8717096705521bddb4a0185f98c12c9b42f + languageName: node + linkType: hard + +"mdast-util-to-hast@npm:^13.0.0": + version: 13.2.0 + resolution: "mdast-util-to-hast@npm:13.2.0" + dependencies: + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + "@ungap/structured-clone": "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + trim-lines: "npm:^3.0.0" + unist-util-position: "npm:^5.0.0" + unist-util-visit: "npm:^5.0.0" + vfile: "npm:^6.0.0" + checksum: 10c0/9ee58def9287df8350cbb6f83ced90f9c088d72d4153780ad37854f87144cadc6f27b20347073b285173b1649b0723ddf0b9c78158608a804dcacb6bda6e1816 + languageName: node + linkType: hard + +"mdast-util-to-markdown@npm:^2.0.0": + version: 2.1.2 + resolution: "mdast-util-to-markdown@npm:2.1.2" + dependencies: + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + longest-streak: "npm:^3.0.0" + mdast-util-phrasing: "npm:^4.0.0" + mdast-util-to-string: "npm:^4.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-decode-string: "npm:^2.0.0" + unist-util-visit: "npm:^5.0.0" + zwitch: "npm:^2.0.0" + checksum: 10c0/4649722a6099f12e797bd8d6469b2b43b44e526b5182862d9c7766a3431caad2c0112929c538a972f214e63c015395e5d3f54bd81d9ac1b16e6d8baaf582f749 + languageName: node + linkType: hard + +"mdast-util-to-string@npm:^4.0.0": + version: 4.0.0 + resolution: "mdast-util-to-string@npm:4.0.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + checksum: 10c0/2d3c1af29bf3fe9c20f552ee9685af308002488f3b04b12fa66652c9718f66f41a32f8362aa2d770c3ff464c034860b41715902ada2306bb0a055146cef064d7 + languageName: node + linkType: hard + "mdn-data@npm:2.0.28": version: 2.0.28 resolution: "mdn-data@npm:2.0.28" @@ -11704,6 +12055,242 @@ __metadata: languageName: node linkType: hard +"micromark-core-commonmark@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-core-commonmark@npm:2.0.2" + dependencies: + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-factory-destination: "npm:^2.0.0" + micromark-factory-label: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-factory-title: "npm:^2.0.0" + micromark-factory-whitespace: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-html-tag-name: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/87c7a75cd339189eb6f1d6323037f7d108d1331d953b84fe839b37fd385ee2292b27222327c1ceffda46ba5d5d4dee703482475e5ee8744be40c9e308d8acb77 + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-destination@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bbafcf869cee5bf511161354cb87d61c142592fbecea051000ff116068dc85216e6d48519d147890b9ea5d7e2864a6341c0c09d9948c203bff624a80a476023c + languageName: node + linkType: hard + +"micromark-factory-label@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-label@npm:2.0.1" + dependencies: + devlop: "npm:^1.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/0137716b4ecb428114165505e94a2f18855c8bbea21b07a8b5ce514b32a595ed789d2b967125718fc44c4197ceaa48f6609d58807a68e778138d2e6b91b824e8 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-space@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/f9ed43f1c0652d8d898de0ac2be3f77f776fffe7dd96bdbba1e02d7ce33d3853c6ff5daa52568fc4fa32cdf3a62d86b85ead9b9189f7211e1d69ff2163c450fb + languageName: node + linkType: hard + +"micromark-factory-title@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-title@npm:2.0.1" + dependencies: + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/e72fad8d6e88823514916890099a5af20b6a9178ccf78e7e5e05f4de99bb8797acb756257d7a3a57a53854cb0086bf8aab15b1a9e9db8982500dd2c9ff5948b6 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-whitespace@npm:2.0.1" + dependencies: + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/20a1ec58698f24b766510a309b23a10175034fcf1551eaa9da3adcbed3e00cd53d1ebe5f030cf873f76a1cec3c34eb8c50cc227be3344caa9ed25d56cf611224 + languageName: node + linkType: hard + +"micromark-util-character@npm:^2.0.0": + version: 2.1.1 + resolution: "micromark-util-character@npm:2.1.1" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/d3fe7a5e2c4060fc2a076f9ce699c82a2e87190a3946e1e5eea77f563869b504961f5668d9c9c014724db28ac32fa909070ea8b30c3a39bd0483cc6c04cc76a1 + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-chunked@npm:2.0.1" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/b68c0c16fe8106949537bdcfe1be9cf36c0ccd3bc54c4007003cb0984c3750b6cdd0fd77d03f269a3382b85b0de58bde4f6eedbe7ecdf7244759112289b1ab56 + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-classify-character@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/8a02e59304005c475c332f581697e92e8c585bcd45d5d225a66c1c1b14ab5a8062705188c2ccec33cc998d33502514121478b2091feddbc751887fc9c290ed08 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-combine-extensions@npm:2.0.1" + dependencies: + micromark-util-chunked: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/f15e282af24c8372cbb10b9b0b3e2c0aa681fea0ca323a44d6bc537dc1d9382c819c3689f14eaa000118f5a163245358ce6276b2cda9a84439cdb221f5d86ae7 + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/9c8a9f2c790e5593ffe513901c3a110e9ec8882a08f466da014112a25e5059b51551ca0aeb7ff494657d86eceb2f02ee556c6558b8d66aadc61eae4a240da0df + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-decode-string@npm:2.0.1" + dependencies: + decode-named-character-reference: "npm:^1.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/f24d75b2e5310be6e7b6dee532e0d17d3bf46996841d6295f2a9c87a2046fff4ab603c52ab9d7a7a6430a8b787b1574ae895849c603d262d1b22eef71736b5cb + languageName: node + linkType: hard + +"micromark-util-encode@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-encode@npm:2.0.1" + checksum: 10c0/b2b29f901093845da8a1bf997ea8b7f5e061ffdba85070dfe14b0197c48fda64ffcf82bfe53c90cf9dc185e69eef8c5d41cae3ba918b96bc279326921b59008a + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-html-tag-name@npm:2.0.1" + checksum: 10c0/ae80444db786fde908e9295f19a27a4aa304171852c77414516418650097b8afb401961c9edb09d677b06e97e8370cfa65638dde8438ebd41d60c0a8678b85b9 + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-normalize-identifier@npm:2.0.1" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/5299265fa360769fc499a89f40142f10a9d4a5c3dd8e6eac8a8ef3c2e4a6570e4c009cf75ea46dce5ee31c01f25587bde2f4a5cc0a935584ae86dd857f2babbd + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-resolve-all@npm:2.0.1" + dependencies: + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bb6ca28764696bb479dc44a2d5b5fe003e7177aeae1d6b0d43f24cc223bab90234092d9c3ce4a4d2b8df095ccfd820537b10eb96bb7044d635f385d65a4c984a + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-sanitize-uri@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/60e92166e1870fd4f1961468c2651013ff760617342918e0e0c3c4e872433aa2e60c1e5a672bfe5d89dc98f742d6b33897585cf86ae002cda23e905a3c02527c + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-util-subtokenize@npm:2.0.3" + dependencies: + devlop: "npm:^1.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/75501986ecb02a6f06c0f3e58b584ae3ff3553b520260e8ce27d2db8c79b8888861dd9d3b26e30f5c6084fddd90f96dc3ff551f02c2ac4d669ebe920e483b6d6 + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-symbol@npm:2.0.1" + checksum: 10c0/f2d1b207771e573232436618e78c5e46cd4b5c560dd4a6d63863d58018abbf49cb96ec69f7007471e51434c60de3c9268ef2bf46852f26ff4aacd10f9da16fe9 + languageName: node + linkType: hard + +"micromark-util-types@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-types@npm:2.0.1" + checksum: 10c0/872ec9334bb42afcc91c5bed8b7ee03b75654b36c6f221ab4d2b1bb0299279f00db948bf38ec6bc1ec03d0cf7842c21ab805190bf676157ba587eb0386d38b71 + languageName: node + linkType: hard + +"micromark@npm:^4.0.0": + version: 4.0.1 + resolution: "micromark@npm:4.0.1" + dependencies: + "@types/debug": "npm:^4.0.0" + debug: "npm:^4.0.0" + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-core-commonmark: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-combine-extensions: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/b5d950c84664ce209575e5a54946488f0a1e1240d080544e657b65074c9b08208a5315d9db066b93cbc199ec05f68552ba8b09fd5e716c726f4a4712275a7c5c + languageName: node + linkType: hard + "micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.8 resolution: "micromatch@npm:4.0.8" @@ -12982,6 +13569,22 @@ __metadata: languageName: node linkType: hard +"parse-entities@npm:^4.0.0": + version: 4.0.1 + resolution: "parse-entities@npm:4.0.1" + dependencies: + "@types/unist": "npm:^2.0.0" + character-entities: "npm:^2.0.0" + character-entities-legacy: "npm:^3.0.0" + character-reference-invalid: "npm:^2.0.0" + decode-named-character-reference: "npm:^1.0.0" + is-alphanumerical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + is-hexadecimal: "npm:^2.0.0" + checksum: 10c0/9dfa3b0dc43a913c2558c4bd625b1abcc2d6c6b38aa5724b141ed988471977248f7ad234eed57e1bc70b694dd15b0d710a04f66c2f7c096e35abd91962b7d926 + languageName: node + linkType: hard + "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -13618,6 +14221,13 @@ __metadata: languageName: node linkType: hard +"property-information@npm:^6.0.0": + version: 6.5.0 + resolution: "property-information@npm:6.5.0" + checksum: 10c0/981e0f9cc2e5acdb414a6fd48a99dd0fd3a4079e7a91ab41cf97a8534cf43e0e0bc1ffada6602a1b3d047a33db8b5fc2ef46d863507eda712d5ceedac443f0ef + languageName: node + linkType: hard + "proto-list@npm:~1.2.1": version: 1.2.4 resolution: "proto-list@npm:1.2.4" @@ -13782,6 +14392,27 @@ __metadata: languageName: node linkType: hard +"react-markdown@npm:^9.0.1": + version: 9.0.1 + resolution: "react-markdown@npm:9.0.1" + dependencies: + "@types/hast": "npm:^3.0.0" + devlop: "npm:^1.0.0" + hast-util-to-jsx-runtime: "npm:^2.0.0" + html-url-attributes: "npm:^3.0.0" + mdast-util-to-hast: "npm:^13.0.0" + remark-parse: "npm:^11.0.0" + remark-rehype: "npm:^11.0.0" + unified: "npm:^11.0.0" + unist-util-visit: "npm:^5.0.0" + vfile: "npm:^6.0.0" + peerDependencies: + "@types/react": ">=18" + react: ">=18" + checksum: 10c0/3a3895dbd56647bc864b8da46dd575e71a9e609eb1e43fea8e8e6209d86e208eddd5b07bf8d7b5306a194b405440760a8d134aebd5a4ce5dc7dee4299e84db96 + languageName: node + linkType: hard + "react-select@npm:^5.8.0": version: 5.8.0 resolution: "react-select@npm:5.8.0" @@ -14073,6 +14704,31 @@ __metadata: languageName: node linkType: hard +"remark-parse@npm:^11.0.0": + version: 11.0.0 + resolution: "remark-parse@npm:11.0.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unified: "npm:^11.0.0" + checksum: 10c0/6eed15ddb8680eca93e04fcb2d1b8db65a743dcc0023f5007265dda558b09db595a087f622062ccad2630953cd5cddc1055ce491d25a81f3317c858348a8dd38 + languageName: node + linkType: hard + +"remark-rehype@npm:^11.0.0": + version: 11.1.1 + resolution: "remark-rehype@npm:11.1.1" + dependencies: + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + mdast-util-to-hast: "npm:^13.0.0" + unified: "npm:^11.0.0" + vfile: "npm:^6.0.0" + checksum: 10c0/68f986e8ee758d415e93babda2a0d89477c15b7c200edc23b8b1d914dd6e963c5fc151a11cbbbcfa7dd237367ff3ef86e302be90f31f37a17b0748668bd8c65b + languageName: node + linkType: hard + "repeat-string@npm:^1.6.1": version: 1.6.1 resolution: "repeat-string@npm:1.6.1" @@ -14870,6 +15526,13 @@ __metadata: languageName: node linkType: hard +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 10c0/6173e1d903dca41dcab6a2deed8b4caf61bd13b6d7af8374713500570aa929ff9414ae09a0519f4f8772df993300305a395d4871f35bc4ca72b6db57e1f30af8 + languageName: node + linkType: hard + "spawn-error-forwarder@npm:~1.0.0": version: 1.0.0 resolution: "spawn-error-forwarder@npm:1.0.0" @@ -15199,6 +15862,16 @@ __metadata: languageName: node linkType: hard +"stringify-entities@npm:^4.0.0": + version: 4.0.4 + resolution: "stringify-entities@npm:4.0.4" + dependencies: + character-entities-html4: "npm:^2.0.0" + character-entities-legacy: "npm:^3.0.0" + checksum: 10c0/537c7e656354192406bdd08157d759cd615724e9d0873602d2c9b2f6a5c0a8d0b1d73a0a08677848105c5eebac6db037b57c0b3a4ec86331117fa7319ed50448 + languageName: node + linkType: hard + "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -15266,6 +15939,15 @@ __metadata: languageName: node linkType: hard +"style-to-object@npm:^1.0.0": + version: 1.0.8 + resolution: "style-to-object@npm:1.0.8" + dependencies: + inline-style-parser: "npm:0.2.4" + checksum: 10c0/daa6646b1ff18258c0ca33ed281fbe73485c8391192db1b56ce89d40c93ea64507a41e8701d0dadfe771bc2f540c46c9b295135f71584c8e5cb23d6a19be9430 + languageName: node + linkType: hard + "styled-jsx@npm:5.1.1": version: 5.1.1 resolution: "styled-jsx@npm:5.1.1" @@ -15705,6 +16387,13 @@ __metadata: languageName: node linkType: hard +"trim-lines@npm:^3.0.0": + version: 3.0.1 + resolution: "trim-lines@npm:3.0.1" + checksum: 10c0/3a1611fa9e52aa56a94c69951a9ea15b8aaad760eaa26c56a65330dc8adf99cb282fc07cc9d94968b7d4d88003beba220a7278bbe2063328eb23fb56f9509e94 + languageName: node + linkType: hard + "triple-beam@npm:^1.3.0, triple-beam@npm:^1.4.1": version: 1.4.1 resolution: "triple-beam@npm:1.4.1" @@ -15712,6 +16401,13 @@ __metadata: languageName: node linkType: hard +"trough@npm:^2.0.0": + version: 2.2.0 + resolution: "trough@npm:2.2.0" + checksum: 10c0/58b671fc970e7867a48514168894396dd94e6d9d6456aca427cc299c004fe67f35ed7172a36449086b2edde10e78a71a284ec0076809add6834fb8f857ccb9b0 + languageName: node + linkType: hard + "ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" @@ -16243,6 +16939,21 @@ __metadata: languageName: node linkType: hard +"unified@npm:^11.0.0": + version: 11.0.5 + resolution: "unified@npm:11.0.5" + dependencies: + "@types/unist": "npm:^3.0.0" + bail: "npm:^2.0.0" + devlop: "npm:^1.0.0" + extend: "npm:^3.0.0" + is-plain-obj: "npm:^4.0.0" + trough: "npm:^2.0.0" + vfile: "npm:^6.0.0" + checksum: 10c0/53c8e685f56d11d9d458a43e0e74328a4d6386af51c8ac37a3dcabec74ce5026da21250590d4aff6733ccd7dc203116aae2b0769abc18cdf9639a54ae528dfc9 + languageName: node + linkType: hard + "union@npm:~0.5.0": version: 0.5.0 resolution: "union@npm:0.5.0" @@ -16297,6 +17008,54 @@ __metadata: languageName: node linkType: hard +"unist-util-is@npm:^6.0.0": + version: 6.0.0 + resolution: "unist-util-is@npm:6.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/9419352181eaa1da35eca9490634a6df70d2217815bb5938a04af3a662c12c5607a2f1014197ec9c426fbef18834f6371bfdb6f033040fa8aa3e965300d70e7e + languageName: node + linkType: hard + +"unist-util-position@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-position@npm:5.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/dde3b31e314c98f12b4dc6402f9722b2bf35e96a4f2d463233dd90d7cde2d4928074a7a11eff0a5eb1f4e200f27fc1557e0a64a7e8e4da6558542f251b1b7400 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^4.0.0": + version: 4.0.0 + resolution: "unist-util-stringify-position@npm:4.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/dfe1dbe79ba31f589108cb35e523f14029b6675d741a79dea7e5f3d098785045d556d5650ec6a8338af11e9e78d2a30df12b1ee86529cded1098da3f17ee999e + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-visit-parents@npm:6.0.1" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10c0/51b1a5b0aa23c97d3e03e7288f0cdf136974df2217d0999d3de573c05001ef04cccd246f51d2ebdfb9e8b0ed2704451ad90ba85ae3f3177cf9772cef67f56206 + languageName: node + linkType: hard + +"unist-util-visit@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-visit@npm:5.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + unist-util-visit-parents: "npm:^6.0.0" + checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5 + languageName: node + linkType: hard + "universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": version: 7.0.2 resolution: "universal-user-agent@npm:7.0.2" @@ -16477,6 +17236,26 @@ __metadata: languageName: node linkType: hard +"vfile-message@npm:^4.0.0": + version: 4.0.2 + resolution: "vfile-message@npm:4.0.2" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10c0/07671d239a075f888b78f318bc1d54de02799db4e9dce322474e67c35d75ac4a5ac0aaf37b18801d91c9f8152974ea39678aa72d7198758b07f3ba04fb7d7514 + languageName: node + linkType: hard + +"vfile@npm:^6.0.0": + version: 6.0.3 + resolution: "vfile@npm:6.0.3" + dependencies: + "@types/unist": "npm:^3.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/e5d9eb4810623f23758cfc2205323e33552fb5972e5c2e6587babe08fe4d24859866277404fb9e2a20afb71013860d96ec806cb257536ae463c87d70022ab9ef + languageName: node + linkType: hard + "walk-up-path@npm:^3.0.1": version: 3.0.1 resolution: "walk-up-path@npm:3.0.1" @@ -16984,3 +17763,10 @@ __metadata: checksum: 10c0/994f5d99e7647a1b333331ffecbbf7c4463d9c2823e371b44e21146a4496cad0f14fbe2f73f44383312a6f843d93523f830f1360009f0ac93027b167ef5c63be languageName: node linkType: hard + +"zwitch@npm:^2.0.0": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: 10c0/3c7830cdd3378667e058ffdb4cf2bb78ac5711214e2725900873accb23f3dfe5f9e7e5a06dcdc5f29605da976fc45c26d9a13ca334d6eea2245a15e77b8fc06e + languageName: node + linkType: hard From 24e86857fbafed4e89488f57fceab81ed85e23b3 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Fri, 22 Nov 2024 23:07:14 -0500 Subject: [PATCH 07/28] fixed releases modal and rule count --- .../Settings/About/ChangeLogModal/index.tsx | 134 ------------------ .../Settings/About/Releases/index.tsx | 56 ++++---- ui/src/components/Settings/About/index.tsx | 43 +++--- 3 files changed, 53 insertions(+), 180 deletions(-) delete mode 100644 ui/src/components/Settings/About/ChangeLogModal/index.tsx diff --git a/ui/src/components/Settings/About/ChangeLogModal/index.tsx b/ui/src/components/Settings/About/ChangeLogModal/index.tsx deleted file mode 100644 index db2426ee..00000000 --- a/ui/src/components/Settings/About/ChangeLogModal/index.tsx +++ /dev/null @@ -1,134 +0,0 @@ -import React, { Fragment } from 'react' -import { useState } from 'react' -import Modal from '../../../Common/Modal' -import LoadingSpinner from '../../../Common/LoadingSpinner' -import dynamic from 'next/dynamic' - -interface ChangeLogModal { - title: string - children: React.ReactNode - isOpen: boolean - onCancel: () => void - onOk?: () => void - cancelText?: string - okText?: string - release: GitHubRelease - isLatest: boolean - currentVersion: string -} -interface GitHubRelease { - url: string - assets_url: string - upload_url: string - html_url: string - id: number - node_id: string - tag_name: string - target_commitish: string - name: string - draft: boolean - prerelease: boolean - created_at: string - published_at: string - tarball_url: string - zipball_url: string - body: string -} -interface ReleaseProps { - release: GitHubRelease - isLatest: boolean - currentVersion: string -} - -const messages = { - releases: 'Releases', - releasedataMissing: 'Release data is currently unavailable.', - versionChangelog: '{version} Changelog', - viewongithub: 'View on GitHub', - latestversion: 'Latest', - currentversion: 'Currently Installed', - viewchangelog: 'View Changelog', - close: 'Close', -} - -const ReactMarkdown = dynamic(() => import('react-markdown'), { - ssr: false, -}) - -const REPO_RELEASE_API = - 'https://api.github.com/repos/jorenn92/maintainerr/releases?per_page=10' - -const ChangeLogModal = ({ - currentVersion, - release, - isLatest, - onCancel, -}: ChangeLogModal) => { - const handleCancel = () => { - ChangeLogModal.onCancel() - } - - return ( - { - window.open(release.html_url, '_blank') - }} - > -
- {release.body} -
-
- ) -} -const Releases = ({ currentVersion }: ReleasesProps) => { - const [data, setData] = useState(null) - const [error, setError] = useState(null) - - useEffect(() => { - const fetchReleases = async () => { - try { - const response = await fetch(REPO_RELEASE_API) - if (!response.ok) { - throw new Error(`Error: ${response.status}`) - } - const releases = await response.json() - setData(releases) - } catch (err) { - setError(err.message || 'Failed to fetch releases') - } - } - - fetchReleases() - }, []) - - if (!data && !error) { - return - } - - if (error) { - return
{messages.releasedataMissing}
- } - - return ( -
-

{messages.releases}

-
- {data!.map((release, index) => ( -
- -
- ))} -
-
- ) -} diff --git a/ui/src/components/Settings/About/Releases/index.tsx b/ui/src/components/Settings/About/Releases/index.tsx index e8da780d..bd2b1168 100644 --- a/ui/src/components/Settings/About/Releases/index.tsx +++ b/ui/src/components/Settings/About/Releases/index.tsx @@ -1,11 +1,9 @@ import Badge from '../../../Common/Badge' import Button from '../../../Common/Button' import LoadingSpinner from '../../../Common/LoadingSpinner' -import ChangeLogModal from '../ChangeLogModal' -import { DocumentTextIcon } from '@heroicons/react/outline' -import dynamic from 'next/dynamic' -import { Fragment, useEffect, useState } from 'react' import Modal from '../../../Common/Modal' +import dynamic from 'next/dynamic' +import { useEffect, useState } from 'react' // Dynamic import for markdown const ReactMarkdown = dynamic(() => import('react-markdown'), { @@ -18,7 +16,7 @@ const messages = { versionChangelog: '{version} Changelog', viewongithub: 'View on GitHub', latestversion: 'Latest', - currentversion: 'Currently Installed', + currentversion: 'Current', viewchangelog: 'View Changelog', close: 'Close', } @@ -44,6 +42,11 @@ interface GitHubRelease { zipball_url: string body: string } +interface ReleaseProps { + release: GitHubRelease + isLatest: boolean + currentVersion: string +} interface ModalProps { title: string children: React.ReactNode @@ -54,12 +57,6 @@ interface ModalProps { okText?: string } -interface ReleaseProps { - release: GitHubRelease - isLatest: boolean - currentVersion: string -} - const calculateRelativeTime = (dateString: string): string => { const secondsAgo = Math.floor( (Date.now() - new Date(dateString).getTime()) / 1000, @@ -75,25 +72,27 @@ const calculateRelativeTime = (dateString: string): string => { } const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { - const [AboutModalActive, setModalActive] = useState() + const [isModalOpen, setModalOpen] = useState(false) return (
- setModalActive(false)} - title={messages.versionChangelog.replace('{version}', release.name)} - cancelText={messages.close} - okText={messages.viewongithub} - onOk={() => { - window.open(release.html_url, '_blank') - }} - > -
- {release.body} + {isModalOpen && ( +
+ setModalOpen(false)} + title={messages.versionChangelog.replace('{version}', release.name)} + cancelText={messages.close} + okText={messages.viewongithub} + onOk={() => { + window.open(release.html_url, '_blank') + }} + > +
+ {release.body} +
+
- + )}
@@ -108,8 +107,7 @@ const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { {messages.currentversion} )}
-
@@ -153,7 +151,7 @@ const Releases = ({ currentVersion }: ReleasesProps) => {

{messages.releases}

- {data!.map((release, index) => ( + {data?.map((release, index) => (
{ useEffect(() => { @@ -32,6 +36,19 @@ const AboutSettings = () => { }) }, []) // End Maintainerr Version + // Maintainerr Rules Count + const [idCount, setIdCount] = useState(null) // To store the count + useEffect(() => { + GetApiHandler('/rules').then((resp: RulesResponse) => { + if (resp) { + let totalCount = 0 + if (Array.isArray(resp)) { + totalCount = resp.length + } + setIdCount(totalCount) + } + }) + }) return (
@@ -110,7 +127,7 @@ const AboutSettings = () => {
- "Value goes here" + {<>{idCount}}
@@ -162,22 +179,6 @@ const AboutSettings = () => {

- -
@@ -222,6 +223,14 @@ const AboutSettings = () => { > Github Sponsors +

or

+ + Ko-fi +
From db5dd0b0c4801d7c6c80d6b647b86d33e34d8e78 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Sat, 23 Nov 2024 12:47:38 -0500 Subject: [PATCH 08/28] added an about page. - shows releases and a button to view changelog - shows total number of rules - shows version - total media currently in collections - number of community rules - useful links section - donations section --- .../Settings/About/Releases/index.tsx | 4 +- ui/src/components/Settings/About/index.tsx | 126 +++++++++++++----- ui/styles/globals.css | 7 +- 3 files changed, 102 insertions(+), 35 deletions(-) diff --git a/ui/src/components/Settings/About/Releases/index.tsx b/ui/src/components/Settings/About/Releases/index.tsx index bd2b1168..00cccd6d 100644 --- a/ui/src/components/Settings/About/Releases/index.tsx +++ b/ui/src/components/Settings/About/Releases/index.tsx @@ -75,7 +75,7 @@ const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { const [isModalOpen, setModalOpen] = useState(false) return ( -
+
{isModalOpen && (
{ window.open(release.html_url, '_blank') }} > -
+
{release.body}
diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index bc5848ef..26d547da 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -9,9 +9,29 @@ interface VersionResponse { commitTag: string updateAvailable: boolean } -interface RulesResponse { +interface CollectionsResponse { id: number - name: string + plexId: number + libraryId: number + title: string + description: string + isActive: boolean + arrAction: number + visibleOnHome: boolean + deleteAfterDays: number + manualCollection: boolean + manualCollectionName: string + listExclusions: boolean + forceOverseerr: boolean + type: string + keepLogsForMonths: number + addDate: Date + handledMediaAmount: number + lastDurationInSeconds: number + tautulliWatchedPercentOverride: string + radarrSettingsId: number + sonarrSettingsId: number + media: string[] } const AboutSettings = () => { @@ -37,19 +57,46 @@ const AboutSettings = () => { }, []) // End Maintainerr Version // Maintainerr Rules Count - const [idCount, setIdCount] = useState(null) // To store the count + const [ruleCount, setRuleCount] = useState(null) // To store the count useEffect(() => { - GetApiHandler('/rules').then((resp: RulesResponse) => { + GetApiHandler('/rules').then((resp) => { if (resp) { let totalCount = 0 if (Array.isArray(resp)) { totalCount = resp.length } - setIdCount(totalCount) + setRuleCount(totalCount) + } + }) + }) + // End Maintainerr Rules Count + // Maintainerr Collection Items + const [itemCount, setItemCount] = useState(null) // To store the count + useEffect(() => { + GetApiHandler('/collections/media').then((resp) => { + if (resp) { + let totalCount = 0 + if (Array.isArray(resp)) { + totalCount = resp.length + } + setItemCount(totalCount) + } + }) + }) + // End Maintainerr Collection Items + // Maintainerr Community Rules Count + const [communityCount, setCommunityCount] = useState(null) // To store the count + useEffect(() => { + GetApiHandler('/rules/community').then((resp) => { + if (resp) { + let totalCount = 0 + if (Array.isArray(resp)) { + totalCount = resp.length + } + setCommunityCount(totalCount) } }) }) - return (
@@ -127,7 +174,7 @@ const AboutSettings = () => {
- {<>{idCount}} + {<>{ruleCount}}
@@ -140,7 +187,20 @@ const AboutSettings = () => {
- "Value goes here" + {<>{itemCount}} + +
+
+
+
+
+ +
+
+ + {<>{communityCount}}
@@ -158,7 +218,11 @@ const AboutSettings = () => {
@@ -171,7 +235,11 @@ const AboutSettings = () => {
@@ -184,7 +252,11 @@ const AboutSettings = () => {
@@ -197,7 +269,11 @@ const AboutSettings = () => {
@@ -205,27 +281,25 @@ const AboutSettings = () => {

- {/* End Userful Links */} - {/* Useful Links */}

Loving Maintainerr?


- + -
-
+
{/* End Userful Links */} {/* Show Releases */}
diff --git a/ui/styles/globals.css b/ui/styles/globals.css index bbc55619..95ec5249 100644 --- a/ui/styles/globals.css +++ b/ui/styles/globals.css @@ -8,7 +8,12 @@ padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); } - + .prose a { + color: #ed7924; + } + .prose a:hover { + color: #8d4c1c; + } body { @apply bg-zinc-900; font-family: From 6a67d1b68ba875b65c402f51bf34dee800302e42 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Sat, 23 Nov 2024 13:07:58 -0500 Subject: [PATCH 09/28] removing stray backtick and old testing page --- ui/src/components/Settings/About/index.tsx | 2 +- ui/src/pages/settings/Testing/index.tsx | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 ui/src/pages/settings/Testing/index.tsx diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index 26d547da..5b4794bf 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -107,7 +107,7 @@ const AboutSettings = () => {

This is BETA software. Features may be broken and/or unstable. - Please report any issues on GitHub!' + Please report any issues on GitHub!

{ - return ( - - - - ) -} -export default SettingsAbout From 9b237ea403224f9742bcb2cde7ba586a8a5fdcd1 Mon Sep 17 00:00:00 2001 From: Ben Scobie Date: Mon, 25 Nov 2024 07:54:45 +0000 Subject: [PATCH 10/28] fix: __PATH_PREFIX__ not replaced when using user directive (#1394) Files were owned by node:node with 755. If you override the user then they won't have permission to replace __PATH_PREFIX__ on startup. This change makes the UI folder writable by anybody. At first I didn't like this, but as it was 755 before then the node user could already write files. Really this is no worse as we're in a container. --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 725293b8..0b71fb1c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -115,6 +115,7 @@ RUN corepack install && \ # This is required for docker user directive to work chmod 777 /opt && \ chmod 777 /opt/app/start.sh && \ + chmod 777 -R /opt/app/ui && \ mkdir -m 777 /.cache && \ mkdir -pm 777 /opt/app/ui/.next/cache && \ chown -R node:node /opt/app/ui/.next/cache From 126ac26b69d70a7bc7e47a50d76ff00bc0f4b4eb Mon Sep 17 00:00:00 2001 From: Joel Gillman Date: Wed, 20 Nov 2024 10:56:11 -0600 Subject: [PATCH 11/28] Add label tip for Base URL settings fields --- ui/src/components/Settings/Radarr/SettingsModal/index.tsx | 3 +++ ui/src/components/Settings/Sonarr/SettingsModal/index.tsx | 3 +++ ui/src/components/Settings/Tautulli/index.tsx | 3 +++ 3 files changed, 9 insertions(+) diff --git a/ui/src/components/Settings/Radarr/SettingsModal/index.tsx b/ui/src/components/Settings/Radarr/SettingsModal/index.tsx index a9d35aa2..9a0329d9 100644 --- a/ui/src/components/Settings/Radarr/SettingsModal/index.tsx +++ b/ui/src/components/Settings/Radarr/SettingsModal/index.tsx @@ -301,6 +301,9 @@ const RadarrSettingsModal = (props: IRadarrSettingsModal) => {

diff --git a/ui/src/components/Settings/Sonarr/SettingsModal/index.tsx b/ui/src/components/Settings/Sonarr/SettingsModal/index.tsx index 09f082f4..5c866672 100644 --- a/ui/src/components/Settings/Sonarr/SettingsModal/index.tsx +++ b/ui/src/components/Settings/Sonarr/SettingsModal/index.tsx @@ -301,6 +301,9 @@ const SonarrSettingsModal = (props: ISonarrSettingsModal) => {
diff --git a/ui/src/components/Settings/Tautulli/index.tsx b/ui/src/components/Settings/Tautulli/index.tsx index 337932eb..9eb5b1c0 100644 --- a/ui/src/components/Settings/Tautulli/index.tsx +++ b/ui/src/components/Settings/Tautulli/index.tsx @@ -164,6 +164,9 @@ const TautulliSettings = () => {
From 3ba6ee99b0962c84488c5f86622ecf738fde7536 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:36:27 +0000 Subject: [PATCH 12/28] chore(deps-dev): bump @types/lodash from 4.17.7 to 4.17.13 Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.7 to 4.17.13. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash) --- updated-dependencies: - dependency-name: "@types/lodash" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c3e9c72f..f6d6f60f 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@tailwindcss/typography": "^0.5.15", "@types/express": "^5.0.0", "@types/jest": "^29.5.14", - "@types/lodash": "^4.17.7", + "@types/lodash": "^4.17.13", "@types/react": "^18.2.73", "@types/react-dom": "^18.3.0", "@types/react-transition-group": "^4.4.11", diff --git a/yarn.lock b/yarn.lock index aa3e2d93..49018f90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4416,10 +4416,10 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:^4.17.7": - version: 4.17.7 - resolution: "@types/lodash@npm:4.17.7" - checksum: 10c0/40c965b5ffdcf7ff5c9105307ee08b782da228c01b5c0529122c554c64f6b7168fc8f11dc79aa7bae4e67e17efafaba685dc3a47e294dbf52a65ed2b67100561 +"@types/lodash@npm:^4.17.13": + version: 4.17.13 + resolution: "@types/lodash@npm:4.17.13" + checksum: 10c0/c3d0b7efe7933ac0369b99f2f7bff9240d960680fdb74b41ed4bd1b3ca60cca1e31fe4046d9abbde778f941a41bc2a75eb629abf8659fa6c27b66efbbb0802a9 languageName: node linkType: hard @@ -11639,7 +11639,7 @@ __metadata: "@tailwindcss/typography": "npm:^0.5.15" "@types/express": "npm:^5.0.0" "@types/jest": "npm:^29.5.14" - "@types/lodash": "npm:^4.17.7" + "@types/lodash": "npm:^4.17.13" "@types/node": "npm:^22.9.0" "@types/react": "npm:^18.2.73" "@types/react-dom": "npm:^18.3.0" From 8ba25b43f6768081891810b95107dd00dd9f8ecc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:53:40 +0000 Subject: [PATCH 13/28] chore(deps): bump @nestjs/common from 10.4.4 to 10.4.9 Bumps [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) from 10.4.4 to 10.4.9. - [Release notes](https://github.com/nestjs/nest/releases) - [Commits](https://github.com/nestjs/nest/commits/v10.4.9/packages/common) --- updated-dependencies: - dependency-name: "@nestjs/common" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f6d6f60f..07c03007 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@heroicons/react": "^1.0.6", "@monaco-editor/react": "^4.6.0", "@nestjs/cli": "^10.4.7", - "@nestjs/common": "^10.4.4", + "@nestjs/common": "^10.4.9", "@nestjs/core": "^10.4.7", "@nestjs/platform-express": "^10.4.5", "@nestjs/schedule": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 49018f90..dfec61c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2898,9 +2898,9 @@ __metadata: languageName: node linkType: hard -"@nestjs/common@npm:^10.4.4": - version: 10.4.4 - resolution: "@nestjs/common@npm:10.4.4" +"@nestjs/common@npm:^10.4.9": + version: 10.4.9 + resolution: "@nestjs/common@npm:10.4.9" dependencies: iterare: "npm:1.2.1" tslib: "npm:2.7.0" @@ -2915,7 +2915,7 @@ __metadata: optional: true class-validator: optional: true - checksum: 10c0/af9d0df92320752323cfa1144cf5eb47e6ec9df6378c7d6499e95994e3a440275621c48feab2d7bcce1c4f56cf29193651b7ea1c48d8771b3a70580c642687ba + checksum: 10c0/6edff33e8e3693cb599722ab222431e9ae7dbdda33e6951c78ee8d1182dfe67082eb404591197ef074d056ecf72e04d0ff16e3951476b8653a98d73a7babc6c8 languageName: node linkType: hard @@ -11622,7 +11622,7 @@ __metadata: "@heroicons/react": "npm:^1.0.6" "@monaco-editor/react": "npm:^4.6.0" "@nestjs/cli": "npm:^10.4.7" - "@nestjs/common": "npm:^10.4.4" + "@nestjs/common": "npm:^10.4.9" "@nestjs/core": "npm:^10.4.7" "@nestjs/platform-express": "npm:^10.4.5" "@nestjs/schedule": "npm:^4.1.1" From 0fc2ab03ffefa93af2ff8cf739c8d7558b075f52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:10:39 +0000 Subject: [PATCH 14/28] chore(deps): bump @headlessui/react from 2.1.9 to 2.2.0 Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 2.1.9 to 2.2.0. - [Release notes](https://github.com/tailwindlabs/headlessui/releases) - [Changelog](https://github.com/tailwindlabs/headlessui/blob/main/packages/@headlessui-react/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/headlessui/commits/@headlessui/react@v2.2.0/packages/@headlessui-react) --- updated-dependencies: - dependency-name: "@headlessui/react" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 07c03007..8745d852 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "migration:generate": "ts-node node_modules/typeorm/cli.js migration:generate --dataSource ./datasource-config.ts -p" }, "dependencies": { - "@headlessui/react": "2.1.9", + "@headlessui/react": "2.2.0", "@heroicons/react": "^1.0.6", "@monaco-editor/react": "^4.6.0", "@nestjs/cli": "^10.4.7", diff --git a/yarn.lock b/yarn.lock index dfec61c8..9cc547bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2223,18 +2223,18 @@ __metadata: languageName: node linkType: hard -"@headlessui/react@npm:2.1.9": - version: 2.1.9 - resolution: "@headlessui/react@npm:2.1.9" +"@headlessui/react@npm:2.2.0": + version: 2.2.0 + resolution: "@headlessui/react@npm:2.2.0" dependencies: "@floating-ui/react": "npm:^0.26.16" "@react-aria/focus": "npm:^3.17.1" "@react-aria/interactions": "npm:^3.21.3" "@tanstack/react-virtual": "npm:^3.8.1" peerDependencies: - react: ^18 - react-dom: ^18 - checksum: 10c0/bcee8b0a6d331ad6a55761f51f0c6cc68416e7dff161b18cda1477f71a6d0d7c83d17fb743adddedb88c5733fc0a222cb45d6c6744ee8e19ccfeed617bcc1feb + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc + checksum: 10c0/af64ef2868405e629f55925d06ab6723b40a9d0802c1bd91e8ae834b6d50e51e0942bcdee44f4b51ce3b82be7c23df49e93713a29486a899d0d56b7ddce78039 languageName: node linkType: hard @@ -11618,7 +11618,7 @@ __metadata: "@babel/core": "npm:^7.26.0" "@eslint/eslintrc": "npm:^3.2.0" "@eslint/js": "npm:^9.13.0" - "@headlessui/react": "npm:2.1.9" + "@headlessui/react": "npm:2.2.0" "@heroicons/react": "npm:^1.0.6" "@monaco-editor/react": "npm:^4.6.0" "@nestjs/cli": "npm:^10.4.7" From 5d3879d8143b11c4bd9114eefed3388574f0b85b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:27:34 +0000 Subject: [PATCH 15/28] chore(deps-dev): bump @nestjs/testing from 10.4.7 to 10.4.9 Bumps [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing) from 10.4.7 to 10.4.9. - [Release notes](https://github.com/nestjs/nest/releases) - [Commits](https://github.com/nestjs/nest/commits/v10.4.9/packages/testing) --- updated-dependencies: - dependency-name: "@nestjs/testing" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 8745d852..04b34a97 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@eslint/js": "^9.13.0", "@nestjs/cli": "^10.4.7", "@nestjs/schematics": "^10.2.3", - "@nestjs/testing": "^10.4.7", + "@nestjs/testing": "^10.4.9", "@semantic-release/changelog": "^6.0.3", "@semantic-release/commit-analyzer": "^13.0.0", "@semantic-release/exec": "^6.0.3", diff --git a/yarn.lock b/yarn.lock index 9cc547bc..b58e32bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3006,9 +3006,9 @@ __metadata: languageName: node linkType: hard -"@nestjs/testing@npm:^10.4.7": - version: 10.4.7 - resolution: "@nestjs/testing@npm:10.4.7" +"@nestjs/testing@npm:^10.4.9": + version: 10.4.9 + resolution: "@nestjs/testing@npm:10.4.9" dependencies: tslib: "npm:2.7.0" peerDependencies: @@ -3021,7 +3021,7 @@ __metadata: optional: true "@nestjs/platform-express": optional: true - checksum: 10c0/8bd59a951e2513721bbd683225f1f834db3f40ef8fc1f77213b3c854acd042e5f012c43d81d71b477582f522ef248932b6579c273e9622c82eaa5652178a0ee1 + checksum: 10c0/5478fae06b44154c1cd06be90e939a20e7b4e98d23aacba08147fbfb873aacf64888f70f38e4f2ab93eb768eab2218e50bca45f2a6333f420d1917219ecdeae8 languageName: node linkType: hard @@ -11627,7 +11627,7 @@ __metadata: "@nestjs/platform-express": "npm:^10.4.5" "@nestjs/schedule": "npm:^4.1.1" "@nestjs/schematics": "npm:^10.2.3" - "@nestjs/testing": "npm:^10.4.7" + "@nestjs/testing": "npm:^10.4.9" "@nestjs/typeorm": "npm:^10.0.2" "@semantic-release/changelog": "npm:^6.0.3" "@semantic-release/commit-analyzer": "npm:^13.0.0" From 79e0a1fe4cd319d177f89e0cb598222aa0bb9c7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:44:06 +0000 Subject: [PATCH 16/28] chore(deps): bump @types/node from 22.9.0 to 22.9.4 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.9.0 to 22.9.4. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 04b34a97..d46ae1b8 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@nestjs/platform-express": "^10.4.5", "@nestjs/schedule": "^4.1.1", "@nestjs/typeorm": "^10.0.2", - "@types/node": "^22.9.0", + "@types/node": "^22.9.4", "axios": "^1.7.7", "bowser": "^2.11.0", "chalk": "^4.1.2", diff --git a/yarn.lock b/yarn.lock index b58e32bc..63546ed1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4453,12 +4453,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.9.0": - version: 22.9.0 - resolution: "@types/node@npm:22.9.0" +"@types/node@npm:^22.9.4": + version: 22.9.4 + resolution: "@types/node@npm:22.9.4" dependencies: undici-types: "npm:~6.19.8" - checksum: 10c0/3f46cbe0a49bab4ba30494025e4c8a6e699b98ac922857aa1f0209ce11a1313ee46e6808b8f13fe5b8b960a9d7796b77c8d542ad4e9810e85ef897d5593b5d51 + checksum: 10c0/85521424033d32c2cb2279f1a2dfe9a3630f253a4c877352607eece2b5fe45ddd80acc608dfcef9ae9c2b385203332e53cc1b6cb15c958504b26011ddcf65d4f languageName: node linkType: hard @@ -11640,7 +11640,7 @@ __metadata: "@types/express": "npm:^5.0.0" "@types/jest": "npm:^29.5.14" "@types/lodash": "npm:^4.17.13" - "@types/node": "npm:^22.9.0" + "@types/node": "npm:^22.9.4" "@types/react": "npm:^18.2.73" "@types/react-dom": "npm:^18.3.0" "@types/react-transition-group": "npm:^4.4.11" From 10737090d537c3432b40521f1879718ce5f17c5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 22:01:18 +0000 Subject: [PATCH 17/28] chore(deps-dev): bump postcss from 8.4.47 to 8.4.49 Bumps [postcss](https://github.com/postcss/postcss) from 8.4.47 to 8.4.49. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.47...8.4.49) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d46ae1b8..6c42a928 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", "monaco-editor": "0.52.0", - "postcss": "^8.4.47", + "postcss": "^8.4.49", "prettier": "^3.3.3", "prettier-plugin-tailwindcss": "^0.6.8", "semantic-release": "^24.2.0", diff --git a/yarn.lock b/yarn.lock index 63546ed1..e03f2400 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11667,7 +11667,7 @@ __metadata: node-cache: "npm:^5.1.2" path: "npm:^0.12.7" plex-api: "npm:^5.3.2" - postcss: "npm:^8.4.47" + postcss: "npm:^8.4.49" prettier: "npm:^3.3.3" prettier-plugin-tailwindcss: "npm:^0.6.8" react: "npm:18.2.0" @@ -13575,6 +13575,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.49": + version: 8.4.49 + resolution: "postcss@npm:8.4.49" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/f1b3f17aaf36d136f59ec373459f18129908235e65dbdc3aee5eef8eba0756106f52de5ec4682e29a2eab53eb25170e7e871b3e4b52a8f1de3d344a514306be3 + languageName: node + linkType: hard + "prebuild-install@npm:^7.1.1": version: 7.1.1 resolution: "prebuild-install@npm:7.1.1" From 5c63dd962c3aaf43893adb5a539569c342d6c159 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 22:18:35 +0000 Subject: [PATCH 18/28] chore(deps): bump @nestjs/platform-express from 10.4.5 to 10.4.9 Bumps [@nestjs/platform-express](https://github.com/nestjs/nest/tree/HEAD/packages/platform-express) from 10.4.5 to 10.4.9. - [Release notes](https://github.com/nestjs/nest/releases) - [Commits](https://github.com/nestjs/nest/commits/v10.4.9/packages/platform-express) --- updated-dependencies: - dependency-name: "@nestjs/platform-express" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 6c42a928..1191ccc7 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "@nestjs/cli": "^10.4.7", "@nestjs/common": "^10.4.9", "@nestjs/core": "^10.4.7", - "@nestjs/platform-express": "^10.4.5", + "@nestjs/platform-express": "^10.4.9", "@nestjs/schedule": "^4.1.1", "@nestjs/typeorm": "^10.0.2", "@types/node": "^22.9.4", diff --git a/yarn.lock b/yarn.lock index e03f2400..e89aa139 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2947,9 +2947,9 @@ __metadata: languageName: node linkType: hard -"@nestjs/platform-express@npm:^10.4.5": - version: 10.4.5 - resolution: "@nestjs/platform-express@npm:10.4.5" +"@nestjs/platform-express@npm:^10.4.9": + version: 10.4.9 + resolution: "@nestjs/platform-express@npm:10.4.9" dependencies: body-parser: "npm:1.20.3" cors: "npm:2.8.5" @@ -2959,7 +2959,7 @@ __metadata: peerDependencies: "@nestjs/common": ^10.0.0 "@nestjs/core": ^10.0.0 - checksum: 10c0/3e63314861eaebcbd146bd2f18b27ad19f3ce84a1e60ee29d76dc36d88c878faab6f1252687b3ddc69e94d85ce7f042dda638d08982929a9b76d7e51125d2795 + checksum: 10c0/6cd472a7a7c37904b344f27c0240c09470fb02e00ff04368e792f79ebc43a8c8977c4e74d9cc7020e79accb3cc39cd16a3e6844679196813c3f77264341fe44b languageName: node linkType: hard @@ -11624,7 +11624,7 @@ __metadata: "@nestjs/cli": "npm:^10.4.7" "@nestjs/common": "npm:^10.4.9" "@nestjs/core": "npm:^10.4.7" - "@nestjs/platform-express": "npm:^10.4.5" + "@nestjs/platform-express": "npm:^10.4.9" "@nestjs/schedule": "npm:^4.1.1" "@nestjs/schematics": "npm:^10.2.3" "@nestjs/testing": "npm:^10.4.9" From 673bd51f9de4d366ada9aae7c9a54e52dac09fd3 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Wed, 9 Oct 2024 21:24:48 -0400 Subject: [PATCH 19/28] removed everything that wasnt about page --- ui/src/components/Settings/About/index.tsx | 116 +++++++++++++++++++++ ui/src/components/Settings/index.tsx | 5 + ui/src/pages/settings/about/index.tsx | 11 ++ 3 files changed, 132 insertions(+) create mode 100644 ui/src/components/Settings/About/index.tsx create mode 100644 ui/src/pages/settings/about/index.tsx diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx new file mode 100644 index 00000000..fc33593e --- /dev/null +++ b/ui/src/components/Settings/About/index.tsx @@ -0,0 +1,116 @@ +import { RefreshIcon, SaveIcon } from '@heroicons/react/solid' +import { InformationCircleIcon } from '@heroicons/react/solid' +import React, { useContext, useEffect, useRef, useState } from 'react' +import SettingsContext from '../../../contexts/settings-context' +import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' + +interface VersionResponse { + status: 1 | 0 + version: string + commitTag: string + updateAvailable: boolean +} + +const AboutSettings = () => { + useEffect(() => { + document.title = 'Maintainerr - Settings - About' + }, []) + + const getBrowserTimezone = (): string => { + return Intl.DateTimeFormat().resolvedOptions().timeZone + } + + const [version, setVersion] = useState('') + const [commitTag, setCommitTag] = useState('') + + useEffect(() => { + GetApiHandler('/app/status').then((resp: VersionResponse) => { + if (resp.status) { + setVersion(resp.version) + setCommitTag(resp.commitTag) + } + }) + }, []) + + return ( +
+
+
+
+ +
+
+

+ This is BETA software. Features may be broken and/or unstable. + Please report any issues on GitHub!' +

+

+ + GitHub → + +

+
+
+
+ +
+

About Maintainerr

+
+
+
+ +
+
+ + {commitTag === 'local' ? 'local' : <>{version}} + +
+
+
+
+ +
+
+ + /opt/data + +
+
+
+
+ +
+
+ + {getBrowserTimezone()} + +
+
+
+
+
+

Radarr Statistics

+
+
+
+ +
+
+
+
+
+
+ ) +} +export default AboutSettings diff --git a/ui/src/components/Settings/index.tsx b/ui/src/components/Settings/index.tsx index 309b5eaa..db8a2361 100644 --- a/ui/src/components/Settings/index.tsx +++ b/ui/src/components/Settings/index.tsx @@ -46,6 +46,11 @@ const SettingsWrapper: React.FC<{ children?: ReactNode }> = (props: { route: '/settings/jobs', regex: /^\/settings(\/jobs)?$/, }, + { + text: 'About', + route: '/settings/about', + regex: /^\/settings(\/about)?$/, + }, ] useEffect(() => { diff --git a/ui/src/pages/settings/about/index.tsx b/ui/src/pages/settings/about/index.tsx new file mode 100644 index 00000000..873e4b69 --- /dev/null +++ b/ui/src/pages/settings/about/index.tsx @@ -0,0 +1,11 @@ +import { NextPage } from 'next' +import SettingsWrapper from '../../../components/Settings' +import AboutSettings from '../../../components/Settings/About' +const SettingsAbout: NextPage = () => { + return ( + + + + ) +} +export default SettingsAbout From 1aadabb4746a3a354879e7bcd71b3cd6df69fede Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Sat, 19 Oct 2024 14:58:02 -0400 Subject: [PATCH 20/28] styling changes to about info --- ui/src/components/Settings/About/index.tsx | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index fc33593e..fecc836e 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -58,47 +58,51 @@ const AboutSettings = () => {
-
+

About Maintainerr

-
-
+
+
+
-
+
- + {commitTag === 'local' ? 'local' : <>{version}}
-
+
+
-
+
- + /opt/data
-
+
+
-
+
- + {getBrowserTimezone()}
+

Radarr Statistics

From 22c05b548208158f2a3357c42e145d7c27ccd3bc Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Fri, 25 Oct 2024 12:51:01 -0400 Subject: [PATCH 21/28] basic outline of ideas --- ui/src/components/Settings/About/index.tsx | 162 ++++++++++++++++++++- 1 file changed, 155 insertions(+), 7 deletions(-) diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index fecc836e..3c393357 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -15,11 +15,12 @@ const AboutSettings = () => { useEffect(() => { document.title = 'Maintainerr - Settings - About' }, []) - + // Timezone const getBrowserTimezone = (): string => { return Intl.DateTimeFormat().resolvedOptions().timeZone } - + // End Timezone + // Maintainerr Version const [version, setVersion] = useState('') const [commitTag, setCommitTag] = useState('') @@ -31,6 +32,7 @@ const AboutSettings = () => { } }) }, []) + // End Maintainerr Version return (
@@ -57,7 +59,7 @@ const AboutSettings = () => {
- + {/* Maintainerr Portion */}

About Maintainerr

@@ -101,19 +103,165 @@ const AboutSettings = () => {
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+

-
+ {/* End Maintainerr Portion */} + {/* Radarr Portion */} +

Radarr Statistics

-
-
+
+
+
-
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ {/* End Radarr Portion */} + {/* Sonarr Portion */} +
+

Sonarr Statistics

+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ {/* End Sonarr Portion */} + {/* Overseerr Portion */} +
+

Overseerr Statistics

+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ +
+
+ "Value goes here" +
+
+
+
+
+ {/* End Overseerr Portion */}
) } From 9ef6871678ffa68083a49ff74312f2b2331d13d5 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Fri, 25 Oct 2024 13:45:51 -0400 Subject: [PATCH 22/28] added alternate about page idea --- .../components/Settings/About-ALT/index.tsx | 259 ++++++++++++++++++ ui/src/components/Settings/index.tsx | 5 + ui/src/pages/settings/about-ALT/index.tsx | 11 + 3 files changed, 275 insertions(+) create mode 100644 ui/src/components/Settings/About-ALT/index.tsx create mode 100644 ui/src/pages/settings/about-ALT/index.tsx diff --git a/ui/src/components/Settings/About-ALT/index.tsx b/ui/src/components/Settings/About-ALT/index.tsx new file mode 100644 index 00000000..1c74351f --- /dev/null +++ b/ui/src/components/Settings/About-ALT/index.tsx @@ -0,0 +1,259 @@ +import { InformationCircleIcon, HeartIcon } from '@heroicons/react/solid' +import React, { useContext, useEffect, useRef, useState } from 'react' +import SettingsContext from '../../../contexts/settings-context' +import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' + +interface VersionResponse { + status: 1 | 0 + version: string + commitTag: string + updateAvailable: boolean +} + +const AboutSettings = () => { + useEffect(() => { + document.title = 'Maintainerr - Settings - About' + }, []) + // Timezone + const getBrowserTimezone = (): string => { + return Intl.DateTimeFormat().resolvedOptions().timeZone + } + // End Timezone + // Maintainerr Version + const [version, setVersion] = useState('') + const [commitTag, setCommitTag] = useState('') + + useEffect(() => { + GetApiHandler('/app/status').then((resp: VersionResponse) => { + if (resp.status) { + setVersion(resp.version) + setCommitTag(resp.commitTag) + } + }) + }, []) + // End Maintainerr Version + + return ( +
+ + {/* Maintainerr Portion */} +
+

About Maintainerr

+
+
+
+
+ +
+
+ + {commitTag === 'local' ? 'local' : <>{version}} + +
+
+
+
+
+ +
+
+ + /opt/data + +
+
+
+
+
+ +
+
+ + {getBrowserTimezone()} + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ +
+
+ + "Value goes here" + +
+
+
+
+
+ {/* End Maintainerr Portion */} + {/* Useful Links */} +
+

Useful Links

+
+
+
+
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+ + +
+
+
+ {/* End Userful Links */} + {/* Useful Links */} +
+

Loving Maintainerr?

+
+
+
+
+ + +
+
+
+
+
+ +
+ +
+
+
+ {/* End Userful Links */} +
+ ) +} +export default AboutSettings diff --git a/ui/src/components/Settings/index.tsx b/ui/src/components/Settings/index.tsx index db8a2361..9d60de12 100644 --- a/ui/src/components/Settings/index.tsx +++ b/ui/src/components/Settings/index.tsx @@ -51,6 +51,11 @@ const SettingsWrapper: React.FC<{ children?: ReactNode }> = (props: { route: '/settings/about', regex: /^\/settings(\/about)?$/, }, + { + text: 'About-ALT', + route: '/settings/about-ALT', + regex: /^\/settings(\/about-ALT)?$/, + }, ] useEffect(() => { diff --git a/ui/src/pages/settings/about-ALT/index.tsx b/ui/src/pages/settings/about-ALT/index.tsx new file mode 100644 index 00000000..1a91ed55 --- /dev/null +++ b/ui/src/pages/settings/about-ALT/index.tsx @@ -0,0 +1,11 @@ +import { NextPage } from 'next' +import SettingsWrapper from '../../../components/Settings' +import AboutSettings from '../../../components/Settings/About-ALT' +const SettingsAbout: NextPage = () => { + return ( + + + + ) +} +export default SettingsAbout From e937d4597afccc9658a89ff4c6d759a24ef2cc39 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Sat, 16 Nov 2024 13:42:17 -0500 Subject: [PATCH 23/28] adding releases to bottom of the about page (copied from overseerr) --- .../Settings/About-ALT/Releases/index.tsx | 144 ++++++++++++++++++ .../components/Settings/About-ALT/index.tsx | 6 + ui/src/components/Settings/Testing/index.tsx | 45 ++++++ ui/src/components/Settings/index.tsx | 5 + ui/src/pages/settings/Testing/index.tsx | 11 ++ 5 files changed, 211 insertions(+) create mode 100644 ui/src/components/Settings/About-ALT/Releases/index.tsx create mode 100644 ui/src/components/Settings/Testing/index.tsx create mode 100644 ui/src/pages/settings/Testing/index.tsx diff --git a/ui/src/components/Settings/About-ALT/Releases/index.tsx b/ui/src/components/Settings/About-ALT/Releases/index.tsx new file mode 100644 index 00000000..774ca682 --- /dev/null +++ b/ui/src/components/Settings/About-ALT/Releases/index.tsx @@ -0,0 +1,144 @@ +import Badge from '../../../Common/Badge' +import Button from '../../../Common/Button' +import LoadingSpinner from '../../../Common/LoadingSpinner' +import Modal from '../../../Common/Modal' +import { Transition } from '@headlessui/react' +import { DocumentTextIcon } from '@heroicons/react/outline' +import dynamic from 'next/dynamic' +import React, { Fragment, useContext, useEffect, useRef, useState } from 'react' +import GetApiHandler, { PostApiHandler } from '../../../../utils/ApiHandler' + +const messages = { + releases: 'Releases', + releasedataMissing: 'Release data is currently unavailable.', + versionChangelog: '{version} Changelog', + viewongithub: 'View on GitHub', + latestversion: 'Latest', + currentversion: 'Current', + viewchangelog: 'View Changelog', +} + +const REPO_RELEASE_API = + 'https://api.github.com/repos/jorenn92/Maintainerr/releases?per_page=20' + +interface GitHubRelease { + url: string + assets_url: string + upload_url: string + html_url: string + id: number + node_id: string + tag_name: string + target_commitish: string + name: string + draft: boolean + prerelease: boolean + created_at: string + published_at: string + tarball_url: string + zipball_url: string + body: string +} + +interface ReleaseProps { + release: GitHubRelease + isLatest: boolean + currentVersion: string +} + +const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { + const [isModalOpen, setModalOpen] = useState(false) + + return ( +
+ + setModalOpen(false)} + title={ + (messages.versionChangelog, + { + version: release.name, + }) + } + cancelText={'close'} + okText={'viewongithub'} + onOk={() => { + window.open(release.html_url, '_blank') + }} + > +
{release.body}
+
+
+
+ + + + + {release.name} + + {isLatest && ( + + {('latestversion')} + + )} + {release.name.includes(currentVersion) && ( + + {('currentversion')} + + )} +
+ +
+ ) +} + +interface ReleasesProps { + currentVersion: string +} + +useEffect(() => { + GetApiHandler(REPO_RELEASE_API).then((resp: GitHubRelease) => { + if (resp.id) {[] + } + }) + }, []) + + return ( +
+

{('releases')}

+
+ {data.map((release, index) => { + return ( +
+ +
+ ) + })} +
+
+ ) +} + +export default Releases diff --git a/ui/src/components/Settings/About-ALT/index.tsx b/ui/src/components/Settings/About-ALT/index.tsx index 1c74351f..a8cd4fd6 100644 --- a/ui/src/components/Settings/About-ALT/index.tsx +++ b/ui/src/components/Settings/About-ALT/index.tsx @@ -2,6 +2,7 @@ import { InformationCircleIcon, HeartIcon } from '@heroicons/react/solid' import React, { useContext, useEffect, useRef, useState } from 'react' import SettingsContext from '../../../contexts/settings-context' import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' +import Releases from './Releases' interface VersionResponse { status: 1 | 0 @@ -253,6 +254,11 @@ const AboutSettings = () => {
{/* End Userful Links */} + {/* Show Releases */} +
+ {/* */} +
+ {/* End Showing Releases */}
) } diff --git a/ui/src/components/Settings/Testing/index.tsx b/ui/src/components/Settings/Testing/index.tsx new file mode 100644 index 00000000..16ded14a --- /dev/null +++ b/ui/src/components/Settings/Testing/index.tsx @@ -0,0 +1,45 @@ +import { RefreshIcon, SaveIcon } from '@heroicons/react/solid' +import { InformationCircleIcon } from '@heroicons/react/solid' +import React, { useContext, useEffect, useRef, useState } from 'react' +import SettingsContext from '../../../contexts/settings-context' +import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' + +interface RandomData { + firstName: string + version: string + commitTag: string + updateAvailable: boolean +} + +const AboutSettings = () => { + useEffect(() => { + document.title = 'Maintainerr - Settings - Blank' + }, []) + + const [userData, setUserData] = useState(null) + useEffect(() => { + fetch('https://random-data-api.com/api/users/random_user') + .then((response) => response.json()) + .then((data) => setUserData(data)) + }, []) + + return ( +
+ {userData && ( +
+

User Information

+

+ Name: + {userData.first_name} + {userData.last_name} +

+

Email: {userData.email}

+

Password: {userData.password}

+ {/* Add more user data fields as needed */} +
+ )} +
+ ) +} + +export default AboutSettings diff --git a/ui/src/components/Settings/index.tsx b/ui/src/components/Settings/index.tsx index 9d60de12..58607392 100644 --- a/ui/src/components/Settings/index.tsx +++ b/ui/src/components/Settings/index.tsx @@ -56,6 +56,11 @@ const SettingsWrapper: React.FC<{ children?: ReactNode }> = (props: { route: '/settings/about-ALT', regex: /^\/settings(\/about-ALT)?$/, }, + { + text: 'Testing', + route: '/settings/Testing', + regex: /^\/settings(\/Testing)?$/, + }, ] useEffect(() => { diff --git a/ui/src/pages/settings/Testing/index.tsx b/ui/src/pages/settings/Testing/index.tsx new file mode 100644 index 00000000..663bc36a --- /dev/null +++ b/ui/src/pages/settings/Testing/index.tsx @@ -0,0 +1,11 @@ +import { NextPage } from 'next' +import SettingsWrapper from '../../../components/Settings' +import AboutSettings from '../../../components/Settings/Testing' +const SettingsAbout: NextPage = () => { + return ( + + + + ) +} +export default SettingsAbout From 6e7dd667a4a4e0e546290b6efa57156b581cbe1e Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Fri, 22 Nov 2024 20:00:19 -0500 Subject: [PATCH 24/28] trying to resolve yarn.lock conflicts --- package.json | 1 + .../Settings/About-ALT/Releases/index.tsx | 144 --- .../components/Settings/About-ALT/index.tsx | 265 ------ .../Settings/About/ChangeLogModal/index.tsx | 134 +++ .../Settings/About/Releases/index.tsx | 170 ++++ ui/src/components/Settings/About/index.tsx | 151 ++-- ui/src/components/Settings/Testing/index.tsx | 45 - ui/src/components/Settings/index.tsx | 10 - ui/src/pages/settings/about-ALT/index.tsx | 11 - yarn.lock | 836 +++++++++++++++++- 10 files changed, 1206 insertions(+), 561 deletions(-) delete mode 100644 ui/src/components/Settings/About-ALT/Releases/index.tsx delete mode 100644 ui/src/components/Settings/About-ALT/index.tsx create mode 100644 ui/src/components/Settings/About/ChangeLogModal/index.tsx create mode 100644 ui/src/components/Settings/About/Releases/index.tsx delete mode 100644 ui/src/components/Settings/Testing/index.tsx delete mode 100644 ui/src/pages/settings/about-ALT/index.tsx diff --git a/package.json b/package.json index 1191ccc7..27292d2a 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "plex-api": "^5.3.2", "react": "18.2.0", "react-dom": "18.3.1", + "react-markdown": "^9.0.1", "react-select": "^5.8.0", "react-toast-notifications": "^2.5.1", "react-transition-group": "^4.4.5", diff --git a/ui/src/components/Settings/About-ALT/Releases/index.tsx b/ui/src/components/Settings/About-ALT/Releases/index.tsx deleted file mode 100644 index 774ca682..00000000 --- a/ui/src/components/Settings/About-ALT/Releases/index.tsx +++ /dev/null @@ -1,144 +0,0 @@ -import Badge from '../../../Common/Badge' -import Button from '../../../Common/Button' -import LoadingSpinner from '../../../Common/LoadingSpinner' -import Modal from '../../../Common/Modal' -import { Transition } from '@headlessui/react' -import { DocumentTextIcon } from '@heroicons/react/outline' -import dynamic from 'next/dynamic' -import React, { Fragment, useContext, useEffect, useRef, useState } from 'react' -import GetApiHandler, { PostApiHandler } from '../../../../utils/ApiHandler' - -const messages = { - releases: 'Releases', - releasedataMissing: 'Release data is currently unavailable.', - versionChangelog: '{version} Changelog', - viewongithub: 'View on GitHub', - latestversion: 'Latest', - currentversion: 'Current', - viewchangelog: 'View Changelog', -} - -const REPO_RELEASE_API = - 'https://api.github.com/repos/jorenn92/Maintainerr/releases?per_page=20' - -interface GitHubRelease { - url: string - assets_url: string - upload_url: string - html_url: string - id: number - node_id: string - tag_name: string - target_commitish: string - name: string - draft: boolean - prerelease: boolean - created_at: string - published_at: string - tarball_url: string - zipball_url: string - body: string -} - -interface ReleaseProps { - release: GitHubRelease - isLatest: boolean - currentVersion: string -} - -const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { - const [isModalOpen, setModalOpen] = useState(false) - - return ( -
- - setModalOpen(false)} - title={ - (messages.versionChangelog, - { - version: release.name, - }) - } - cancelText={'close'} - okText={'viewongithub'} - onOk={() => { - window.open(release.html_url, '_blank') - }} - > -
{release.body}
-
-
-
- - - - - {release.name} - - {isLatest && ( - - {('latestversion')} - - )} - {release.name.includes(currentVersion) && ( - - {('currentversion')} - - )} -
- -
- ) -} - -interface ReleasesProps { - currentVersion: string -} - -useEffect(() => { - GetApiHandler(REPO_RELEASE_API).then((resp: GitHubRelease) => { - if (resp.id) {[] - } - }) - }, []) - - return ( -
-

{('releases')}

-
- {data.map((release, index) => { - return ( -
- -
- ) - })} -
-
- ) -} - -export default Releases diff --git a/ui/src/components/Settings/About-ALT/index.tsx b/ui/src/components/Settings/About-ALT/index.tsx deleted file mode 100644 index a8cd4fd6..00000000 --- a/ui/src/components/Settings/About-ALT/index.tsx +++ /dev/null @@ -1,265 +0,0 @@ -import { InformationCircleIcon, HeartIcon } from '@heroicons/react/solid' -import React, { useContext, useEffect, useRef, useState } from 'react' -import SettingsContext from '../../../contexts/settings-context' -import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' -import Releases from './Releases' - -interface VersionResponse { - status: 1 | 0 - version: string - commitTag: string - updateAvailable: boolean -} - -const AboutSettings = () => { - useEffect(() => { - document.title = 'Maintainerr - Settings - About' - }, []) - // Timezone - const getBrowserTimezone = (): string => { - return Intl.DateTimeFormat().resolvedOptions().timeZone - } - // End Timezone - // Maintainerr Version - const [version, setVersion] = useState('') - const [commitTag, setCommitTag] = useState('') - - useEffect(() => { - GetApiHandler('/app/status').then((resp: VersionResponse) => { - if (resp.status) { - setVersion(resp.version) - setCommitTag(resp.commitTag) - } - }) - }, []) - // End Maintainerr Version - - return ( -
-
-
-
- -
-
-

- This is BETA software. Features may be broken and/or unstable. - Please report any issues on GitHub!' -

-

- - GitHub → - -

-
-
-
- {/* Maintainerr Portion */} -
-

About Maintainerr

-
-
-
-
- -
-
- - {commitTag === 'local' ? 'local' : <>{version}} - -
-
-
-
-
- -
-
- - /opt/data - -
-
-
-
-
- -
-
- - {getBrowserTimezone()} - -
-
-
-
-
- -
-
- - "Value goes here" - -
-
-
-
-
- -
-
- - "Value goes here" - -
-
-
-
-
- -
-
- - "Value goes here" - -
-
-
-
-
- {/* End Maintainerr Portion */} - {/* Useful Links */} -
-

Useful Links

-
-
-
-
- - -
-
-
-
- -
-
- -
-
-
- - -
-
-
-
-
- - -
-
-
- {/* End Userful Links */} - {/* Useful Links */} -
-

Loving Maintainerr?

-
-
-
-
- - -
-
-
-
-
- -
- -
-
-
- {/* End Userful Links */} - {/* Show Releases */} -
- {/* */} -
- {/* End Showing Releases */} -
- ) -} -export default AboutSettings diff --git a/ui/src/components/Settings/About/ChangeLogModal/index.tsx b/ui/src/components/Settings/About/ChangeLogModal/index.tsx new file mode 100644 index 00000000..db2426ee --- /dev/null +++ b/ui/src/components/Settings/About/ChangeLogModal/index.tsx @@ -0,0 +1,134 @@ +import React, { Fragment } from 'react' +import { useState } from 'react' +import Modal from '../../../Common/Modal' +import LoadingSpinner from '../../../Common/LoadingSpinner' +import dynamic from 'next/dynamic' + +interface ChangeLogModal { + title: string + children: React.ReactNode + isOpen: boolean + onCancel: () => void + onOk?: () => void + cancelText?: string + okText?: string + release: GitHubRelease + isLatest: boolean + currentVersion: string +} +interface GitHubRelease { + url: string + assets_url: string + upload_url: string + html_url: string + id: number + node_id: string + tag_name: string + target_commitish: string + name: string + draft: boolean + prerelease: boolean + created_at: string + published_at: string + tarball_url: string + zipball_url: string + body: string +} +interface ReleaseProps { + release: GitHubRelease + isLatest: boolean + currentVersion: string +} + +const messages = { + releases: 'Releases', + releasedataMissing: 'Release data is currently unavailable.', + versionChangelog: '{version} Changelog', + viewongithub: 'View on GitHub', + latestversion: 'Latest', + currentversion: 'Currently Installed', + viewchangelog: 'View Changelog', + close: 'Close', +} + +const ReactMarkdown = dynamic(() => import('react-markdown'), { + ssr: false, +}) + +const REPO_RELEASE_API = + 'https://api.github.com/repos/jorenn92/maintainerr/releases?per_page=10' + +const ChangeLogModal = ({ + currentVersion, + release, + isLatest, + onCancel, +}: ChangeLogModal) => { + const handleCancel = () => { + ChangeLogModal.onCancel() + } + + return ( + { + window.open(release.html_url, '_blank') + }} + > +
+ {release.body} +
+
+ ) +} +const Releases = ({ currentVersion }: ReleasesProps) => { + const [data, setData] = useState(null) + const [error, setError] = useState(null) + + useEffect(() => { + const fetchReleases = async () => { + try { + const response = await fetch(REPO_RELEASE_API) + if (!response.ok) { + throw new Error(`Error: ${response.status}`) + } + const releases = await response.json() + setData(releases) + } catch (err) { + setError(err.message || 'Failed to fetch releases') + } + } + + fetchReleases() + }, []) + + if (!data && !error) { + return + } + + if (error) { + return
{messages.releasedataMissing}
+ } + + return ( +
+

{messages.releases}

+
+ {data!.map((release, index) => ( +
+ +
+ ))} +
+
+ ) +} diff --git a/ui/src/components/Settings/About/Releases/index.tsx b/ui/src/components/Settings/About/Releases/index.tsx new file mode 100644 index 00000000..e8da780d --- /dev/null +++ b/ui/src/components/Settings/About/Releases/index.tsx @@ -0,0 +1,170 @@ +import Badge from '../../../Common/Badge' +import Button from '../../../Common/Button' +import LoadingSpinner from '../../../Common/LoadingSpinner' +import ChangeLogModal from '../ChangeLogModal' +import { DocumentTextIcon } from '@heroicons/react/outline' +import dynamic from 'next/dynamic' +import { Fragment, useEffect, useState } from 'react' +import Modal from '../../../Common/Modal' + +// Dynamic import for markdown +const ReactMarkdown = dynamic(() => import('react-markdown'), { + ssr: false, +}) + +const messages = { + releases: 'Releases', + releasedataMissing: 'Release data is currently unavailable.', + versionChangelog: '{version} Changelog', + viewongithub: 'View on GitHub', + latestversion: 'Latest', + currentversion: 'Currently Installed', + viewchangelog: 'View Changelog', + close: 'Close', +} + +const REPO_RELEASE_API = + 'https://api.github.com/repos/jorenn92/maintainerr/releases?per_page=10' + +interface GitHubRelease { + url: string + assets_url: string + upload_url: string + html_url: string + id: number + node_id: string + tag_name: string + target_commitish: string + name: string + draft: boolean + prerelease: boolean + created_at: string + published_at: string + tarball_url: string + zipball_url: string + body: string +} +interface ModalProps { + title: string + children: React.ReactNode + isOpen: boolean + onCancel: () => void + onOk?: () => void + cancelText?: string + okText?: string +} + +interface ReleaseProps { + release: GitHubRelease + isLatest: boolean + currentVersion: string +} + +const calculateRelativeTime = (dateString: string): string => { + const secondsAgo = Math.floor( + (Date.now() - new Date(dateString).getTime()) / 1000, + ) + const minutesAgo = Math.floor(secondsAgo / 60) + const hoursAgo = Math.floor(minutesAgo / 60) + const daysAgo = Math.floor(hoursAgo / 24) + + if (secondsAgo < 60) return `${secondsAgo} seconds ago` + if (minutesAgo < 60) return `${minutesAgo} minutes ago` + if (hoursAgo < 24) return `${hoursAgo} hours ago` + return `${daysAgo} days ago` +} + +const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { + const [AboutModalActive, setModalActive] = useState() + + return ( +
+ setModalActive(false)} + title={messages.versionChangelog.replace('{version}', release.name)} + cancelText={messages.close} + okText={messages.viewongithub} + onOk={() => { + window.open(release.html_url, '_blank') + }} + > +
+ {release.body} +
+
+
+ + + {calculateRelativeTime(release.created_at)} + + {release.name} + + {isLatest && ( + {messages.latestversion} + )} + {release.name.includes(currentVersion) && ( + {messages.currentversion} + )} +
+ +
+ ) +} + +interface ReleasesProps { + currentVersion: string +} + +const Releases = ({ currentVersion }: ReleasesProps) => { + const [data, setData] = useState(null) + const [error, setError] = useState(null) + + useEffect(() => { + const fetchReleases = async () => { + try { + const response = await fetch(REPO_RELEASE_API) + if (!response.ok) { + throw new Error(`Error: ${response.status}`) + } + const releases = await response.json() + setData(releases) + } catch (err) { + setError(err.message || 'Failed to fetch releases') + } + } + + fetchReleases() + }, []) + + if (!data && !error) { + return + } + + if (error) { + return
{messages.releasedataMissing}
+ } + + return ( +
+

{messages.releases}

+
+ {data!.map((release, index) => ( +
+ +
+ ))} +
+
+ ) +} + +export default Releases diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index 3c393357..3a32e8d2 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -1,8 +1,7 @@ -import { RefreshIcon, SaveIcon } from '@heroicons/react/solid' import { InformationCircleIcon } from '@heroicons/react/solid' import React, { useContext, useEffect, useRef, useState } from 'react' -import SettingsContext from '../../../contexts/settings-context' -import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' +import GetApiHandler from '../../../utils/ApiHandler' +import Releases from './Releases' interface VersionResponse { status: 1 | 0 @@ -129,139 +128,123 @@ const AboutSettings = () => {
-
-
- -
-
- - "Value goes here" - -
-
-

{/* End Maintainerr Portion */} - {/* Radarr Portion */} + {/* Useful Links */}
-

Radarr Statistics

+

Useful Links


- -
-
- "Value goes here" -
-
-
-
-
- +
-
- "Value goes here" -
-
-
-
-
- -
-
- "Value goes here" -
-
-
-
-
- -
-
- "Value goes here" +

- {/* End Radarr Portion */} - {/* Sonarr Portion */} -
-

Sonarr Statistics

-
-
- +
-
- "Value goes here" +
-
+
+
+
- + -
+
+
+
- +
-
-
+
+
+
- +
-

- {/* End Sonarr Portion */} - {/* Overseerr Portion */} + {/* End Userful Links */} + {/* Useful Links */}
-

Overseerr Statistics

+

Loving Maintainerr?


- +
-
- "Value goes here" +
-
+
+
+
- +
-
- "Value goes here" +
-
- {/* End Overseerr Portion */} + {/* End Userful Links */} + {/* Show Releases */} +
+ +
+ {/* End Showing Releases */}
) } diff --git a/ui/src/components/Settings/Testing/index.tsx b/ui/src/components/Settings/Testing/index.tsx deleted file mode 100644 index 16ded14a..00000000 --- a/ui/src/components/Settings/Testing/index.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { RefreshIcon, SaveIcon } from '@heroicons/react/solid' -import { InformationCircleIcon } from '@heroicons/react/solid' -import React, { useContext, useEffect, useRef, useState } from 'react' -import SettingsContext from '../../../contexts/settings-context' -import GetApiHandler, { PostApiHandler } from '../../../utils/ApiHandler' - -interface RandomData { - firstName: string - version: string - commitTag: string - updateAvailable: boolean -} - -const AboutSettings = () => { - useEffect(() => { - document.title = 'Maintainerr - Settings - Blank' - }, []) - - const [userData, setUserData] = useState(null) - useEffect(() => { - fetch('https://random-data-api.com/api/users/random_user') - .then((response) => response.json()) - .then((data) => setUserData(data)) - }, []) - - return ( -
- {userData && ( -
-

User Information

-

- Name: - {userData.first_name} - {userData.last_name} -

-

Email: {userData.email}

-

Password: {userData.password}

- {/* Add more user data fields as needed */} -
- )} -
- ) -} - -export default AboutSettings diff --git a/ui/src/components/Settings/index.tsx b/ui/src/components/Settings/index.tsx index 58607392..db8a2361 100644 --- a/ui/src/components/Settings/index.tsx +++ b/ui/src/components/Settings/index.tsx @@ -51,16 +51,6 @@ const SettingsWrapper: React.FC<{ children?: ReactNode }> = (props: { route: '/settings/about', regex: /^\/settings(\/about)?$/, }, - { - text: 'About-ALT', - route: '/settings/about-ALT', - regex: /^\/settings(\/about-ALT)?$/, - }, - { - text: 'Testing', - route: '/settings/Testing', - regex: /^\/settings(\/Testing)?$/, - }, ] useEffect(() => { diff --git a/ui/src/pages/settings/about-ALT/index.tsx b/ui/src/pages/settings/about-ALT/index.tsx deleted file mode 100644 index 1a91ed55..00000000 --- a/ui/src/pages/settings/about-ALT/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { NextPage } from 'next' -import SettingsWrapper from '../../../components/Settings' -import AboutSettings from '../../../components/Settings/About-ALT' -const SettingsAbout: NextPage = () => { - return ( - - - - ) -} -export default SettingsAbout diff --git a/yarn.lock b/yarn.lock index e89aa139..b7f55e2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4300,6 +4300,7 @@ __metadata: languageName: node linkType: hard +<<<<<<< HEAD "@types/eslint-scope@npm:^3.7.7": version: 3.7.7 resolution: "@types/eslint-scope@npm:3.7.7" @@ -4327,6 +4328,40 @@ __metadata: languageName: node linkType: hard +======= +"@types/debug@npm:^4.0.0": + version: 4.1.12 + resolution: "@types/debug@npm:4.1.12" + dependencies: + "@types/ms": "npm:*" + checksum: 10c0/5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f + languageName: node + linkType: hard + +"@types/estree-jsx@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree-jsx@npm:1.0.5" + dependencies: + "@types/estree": "npm:*" + checksum: 10c0/07b354331516428b27a3ab99ee397547d47eb223c34053b48f84872fafb841770834b90cc1a0068398e7c7ccb15ec51ab00ec64b31dc5e3dbefd624638a35c6d + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a + languageName: node + linkType: hard + +"@types/estree@npm:^1.0.5": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d + languageName: node + linkType: hard + +>>>>>>> 9a1ddaa (removed stats about page) "@types/express-serve-static-core@npm:^5.0.0": version: 5.0.0 resolution: "@types/express-serve-static-core@npm:5.0.0" @@ -4360,6 +4395,15 @@ __metadata: languageName: node linkType: hard +"@types/hast@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "npm:*" + checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7 + languageName: node + linkType: hard + "@types/http-errors@npm:*": version: 2.0.4 resolution: "@types/http-errors@npm:2.0.4" @@ -4430,6 +4474,15 @@ __metadata: languageName: node linkType: hard +"@types/mdast@npm:^4.0.0": + version: 4.0.4 + resolution: "@types/mdast@npm:4.0.4" + dependencies: + "@types/unist": "npm:*" + checksum: 10c0/84f403dbe582ee508fd9c7643ac781ad8597fcbfc9ccb8d4715a2c92e4545e5772cbd0dbdf18eda65789386d81b009967fdef01b24faf6640f817287f54d9c82 + languageName: node + linkType: hard + "@types/mime@npm:*": version: 3.0.4 resolution: "@types/mime@npm:3.0.4" @@ -4444,6 +4497,13 @@ __metadata: languageName: node linkType: hard +"@types/ms@npm:*": + version: 0.7.34 + resolution: "@types/ms@npm:0.7.34" + checksum: 10c0/ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc + languageName: node + linkType: hard + "@types/node@npm:*": version: 20.11.5 resolution: "@types/node@npm:20.11.5" @@ -4594,9 +4654,29 @@ __metadata: languageName: node linkType: hard +<<<<<<< HEAD "@types/web-push@npm:^3.6.4": version: 3.6.4 resolution: "@types/web-push@npm:3.6.4" +======= +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.3 + resolution: "@types/unist@npm:3.0.3" + checksum: 10c0/2b1e4adcab78388e088fcc3c0ae8700f76619dbcb4741d7d201f87e2cb346bfc29a89003cfea2d76c996e1061452e14fcd737e8b25aacf949c1f2d6b2bc3dd60 + languageName: node + linkType: hard + +"@types/unist@npm:^2.0.0": + version: 2.0.11 + resolution: "@types/unist@npm:2.0.11" + checksum: 10c0/24dcdf25a168f453bb70298145eb043cfdbb82472db0bc0b56d6d51cd2e484b9ed8271d4ac93000a80da568f2402e9339723db262d0869e2bf13bc58e081768d + languageName: node + linkType: hard + +"@types/web-push@npm:^3.6.3": + version: 3.6.3 + resolution: "@types/web-push@npm:3.6.3" +>>>>>>> 9a1ddaa (removed stats about page) dependencies: "@types/node": "npm:*" checksum: 10c0/f3b656510241020f66615cb662702c0778e68f407fb59b3671758a3fe5b8982824a8b4b70339f3d3901458cdbfe5e981d84c1a75298807f2694a2b3390ebb2da @@ -4906,6 +4986,26 @@ __metadata: languageName: node linkType: hard +<<<<<<< HEAD +======= +"@typescript-eslint/visitor-keys@npm:8.9.0": + version: 8.9.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.9.0" + dependencies: + "@typescript-eslint/types": "npm:8.9.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10c0/e33208b946841f1838d87d64f4ee230f798e68bdce8c181d3ac0abb567f758cb9c4bdccc919d493167869f413ca4c400e7db0f7dd7e8fc84ab6a8344076a7458 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.0.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d + languageName: node + linkType: hard + +>>>>>>> 9a1ddaa (removed stats about page) "@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": version: 1.12.1 resolution: "@webassemblyjs/ast@npm:1.12.1" @@ -5854,6 +5954,13 @@ __metadata: languageName: node linkType: hard +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: 10c0/25cbea309ef6a1f56214187004e8f34014eb015713ea01fa5b9b7e9e776ca88d0fdffd64143ac42dc91966c915a4b7b683411b56e14929fad16153fc026ffb8b + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -6260,6 +6367,13 @@ __metadata: languageName: node linkType: hard +"ccount@npm:^2.0.0": + version: 2.0.1 + resolution: "ccount@npm:2.0.1" + checksum: 10c0/3939b1664390174484322bc3f45b798462e6c07ee6384cb3d645e0aa2f318502d174845198c1561930e1d431087f74cf1fe291ae9a4722821a9f4ba67e574350 + languageName: node + linkType: hard + "chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -6295,6 +6409,34 @@ __metadata: languageName: node linkType: hard +"character-entities-html4@npm:^2.0.0": + version: 2.1.0 + resolution: "character-entities-html4@npm:2.1.0" + checksum: 10c0/fe61b553f083400c20c0b0fd65095df30a0b445d960f3bbf271536ae6c3ba676f39cb7af0b4bf2755812f08ab9b88f2feed68f9aebb73bb153f7a115fe5c6e40 + languageName: node + linkType: hard + +"character-entities-legacy@npm:^3.0.0": + version: 3.0.0 + resolution: "character-entities-legacy@npm:3.0.0" + checksum: 10c0/ec4b430af873661aa754a896a2b55af089b4e938d3d010fad5219299a6b6d32ab175142699ee250640678cd64bdecd6db3c9af0b8759ab7b155d970d84c4c7d1 + languageName: node + linkType: hard + +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: 10c0/b0c645a45bcc90ff24f0e0140f4875a8436b8ef13b6bcd31ec02cfb2ca502b680362aa95386f7815bdc04b6464d48cf191210b3840d7c04241a149ede591a308 + languageName: node + linkType: hard + +"character-reference-invalid@npm:^2.0.0": + version: 2.0.1 + resolution: "character-reference-invalid@npm:2.0.1" + checksum: 10c0/2ae0dec770cd8659d7e8b0ce24392d83b4c2f0eb4a3395c955dce5528edd4cc030a794cfa06600fcdd700b3f2de2f9b8e40e309c0011c4180e3be64a0b42e6a1 + languageName: node + linkType: hard + "chardet@npm:^0.7.0": version: 0.7.0 resolution: "chardet@npm:0.7.0" @@ -6660,6 +6802,13 @@ __metadata: languageName: node linkType: hard +"comma-separated-tokens@npm:^2.0.0": + version: 2.0.3 + resolution: "comma-separated-tokens@npm:2.0.3" + checksum: 10c0/91f90f1aae320f1755d6957ef0b864fe4f54737f3313bd95e0802686ee2ca38bff1dd381964d00ae5db42912dd1f4ae5c2709644e82706ffc6f6842a813cdd67 + languageName: node + linkType: hard + "commander@npm:4.1.1, commander@npm:^4.0.0": version: 4.1.1 resolution: "commander@npm:4.1.1" @@ -7197,6 +7346,15 @@ __metadata: languageName: node linkType: hard +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: "npm:^2.0.0" + checksum: 10c0/66a9fc5d9b5385a2b3675c69ba0d8e893393d64057f7dbbb585265bb4fc05ec513d76943b8e5aac7d8016d20eea4499322cbf4cd6d54b466976b78f3a7587a4c + languageName: node + linkType: hard + "decompress-response@npm:^6.0.0": version: 6.0.0 resolution: "decompress-response@npm:6.0.0" @@ -7302,6 +7460,13 @@ __metadata: languageName: node linkType: hard +"dequal@npm:^2.0.0": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 + languageName: node + linkType: hard + "destroy@npm:1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" @@ -7330,6 +7495,15 @@ __metadata: languageName: node linkType: hard +"devlop@npm:^1.0.0, devlop@npm:^1.1.0": + version: 1.1.0 + resolution: "devlop@npm:1.1.0" + dependencies: + dequal: "npm:^2.0.0" + checksum: 10c0/e0928ab8f94c59417a2b8389c45c55ce0a02d9ac7fd74ef62d01ba48060129e1d594501b77de01f3eeafc7cb00773819b0df74d96251cf20b31c5b3071f45c0e + languageName: node + linkType: hard + "didyoumean@npm:^1.2.2": version: 1.2.2 resolution: "didyoumean@npm:1.2.2" @@ -8258,6 +8432,13 @@ __metadata: languageName: node linkType: hard +"estree-util-is-identifier-name@npm:^3.0.0": + version: 3.0.0 + resolution: "estree-util-is-identifier-name@npm:3.0.0" + checksum: 10c0/d1881c6ed14bd588ebd508fc90bf2a541811dbb9ca04dec2f39d27dcaa635f85b5ed9bbbe7fc6fb1ddfca68744a5f7c70456b4b7108b6c4c52780631cc787c5b + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -8413,7 +8594,7 @@ __metadata: languageName: node linkType: hard -"extend@npm:~3.0.2": +"extend@npm:^3.0.0, extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9 @@ -9395,6 +9576,38 @@ __metadata: languageName: node linkType: hard +"hast-util-to-jsx-runtime@npm:^2.0.0": + version: 2.3.2 + resolution: "hast-util-to-jsx-runtime@npm:2.3.2" + dependencies: + "@types/estree": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/unist": "npm:^3.0.0" + comma-separated-tokens: "npm:^2.0.0" + devlop: "npm:^1.0.0" + estree-util-is-identifier-name: "npm:^3.0.0" + hast-util-whitespace: "npm:^3.0.0" + mdast-util-mdx-expression: "npm:^2.0.0" + mdast-util-mdx-jsx: "npm:^3.0.0" + mdast-util-mdxjs-esm: "npm:^2.0.0" + property-information: "npm:^6.0.0" + space-separated-tokens: "npm:^2.0.0" + style-to-object: "npm:^1.0.0" + unist-util-position: "npm:^5.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/97761b2a48b8bc37da3d66cb4872312ae06c6e8f9be59e33b04b21fa5af371a39cb23b3ca165dd8e898ba1caf9b76399da35c957e68bad02a587a3a324216d56 + languageName: node + linkType: hard + +"hast-util-whitespace@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-whitespace@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10c0/b898bc9fe27884b272580d15260b6bbdabe239973a147e97fa98c45fa0ffec967a481aaa42291ec34fb56530dc2d484d473d7e2bae79f39c83f3762307edfea8 + languageName: node + linkType: hard + "he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -9461,6 +9674,13 @@ __metadata: languageName: node linkType: hard +"html-url-attributes@npm:^3.0.0": + version: 3.0.1 + resolution: "html-url-attributes@npm:3.0.1" + checksum: 10c0/496e4908aa8b77665f348b4b03521901794f648b8ac34a581022cd6f2c97934d5c910cd91bc6593bbf2994687549037bc2520fcdc769b31484f29ffdd402acd0 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -9779,6 +9999,13 @@ __metadata: languageName: node linkType: hard +"inline-style-parser@npm:0.2.4": + version: 0.2.4 + resolution: "inline-style-parser@npm:0.2.4" + checksum: 10c0/ddc0b210eaa03e0f98d677b9836242c583c7c6051e84ce0e704ae4626e7871c5b78f8e30853480218b446355745775df318d4f82d33087ff7e393245efa9a881 + languageName: node + linkType: hard + "inquirer@npm:8.2.6": version: 8.2.6 resolution: "inquirer@npm:8.2.6" @@ -9878,6 +10105,23 @@ __metadata: languageName: node linkType: hard +"is-alphabetical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphabetical@npm:2.0.1" + checksum: 10c0/932367456f17237533fd1fc9fe179df77957271020b83ea31da50e5cc472d35ef6b5fb8147453274ffd251134472ce24eb6f8d8398d96dee98237cdb81a6c9a7 + languageName: node + linkType: hard + +"is-alphanumerical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphanumerical@npm:2.0.1" + dependencies: + is-alphabetical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + checksum: 10c0/4b35c42b18e40d41378293f82a3ecd9de77049b476f748db5697c297f686e1e05b072a6aaae2d16f54d2a57f85b00cbbe755c75f6d583d1c77d6657bd0feb5a2 + languageName: node + linkType: hard + "is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": version: 3.0.2 resolution: "is-array-buffer@npm:3.0.2" @@ -10002,6 +10246,13 @@ __metadata: languageName: node linkType: hard +"is-decimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-decimal@npm:2.0.1" + checksum: 10c0/8085dd66f7d82f9de818fba48b9e9c0429cb4291824e6c5f2622e96b9680b54a07a624cfc663b24148b8e853c62a1c987cfe8b0b5a13f5156991afaf6736e334 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -10050,6 +10301,13 @@ __metadata: languageName: node linkType: hard +"is-hexadecimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-hexadecimal@npm:2.0.1" + checksum: 10c0/3eb60fe2f1e2bbc760b927dcad4d51eaa0c60138cf7fc671803f66353ad90c301605b502c7ea4c6bb0548e1c7e79dfd37b73b632652e3b76030bba603a7e9626 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -10108,7 +10366,7 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^4.1.0": +"is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" checksum: 10c0/32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e @@ -11533,6 +11791,13 @@ __metadata: languageName: node linkType: hard +"longest-streak@npm:^3.0.0": + version: 3.1.0 + resolution: "longest-streak@npm:3.1.0" + checksum: 10c0/7c2f02d0454b52834d1bcedef79c557bd295ee71fdabb02d041ff3aa9da48a90b5df7c0409156dedbc4df9b65da18742652aaea4759d6ece01f08971af6a7eaa + languageName: node + linkType: hard + "loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -11672,6 +11937,7 @@ __metadata: prettier-plugin-tailwindcss: "npm:^0.6.8" react: "npm:18.2.0" react-dom: "npm:18.3.1" + react-markdown: "npm:^9.0.1" react-select: "npm:^5.8.0" react-toast-notifications: "npm:^2.5.1" react-transition-group: "npm:^4.4.5" @@ -11787,6 +12053,127 @@ __metadata: languageName: node linkType: hard +"mdast-util-from-markdown@npm:^2.0.0": + version: 2.0.2 + resolution: "mdast-util-from-markdown@npm:2.0.2" + dependencies: + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + mdast-util-to-string: "npm:^4.0.0" + micromark: "npm:^4.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-decode-string: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10c0/76eb2bd2c6f7a0318087c73376b8af6d7561c1e16654e7667e640f391341096c56142618fd0ff62f6d39e5ab4895898b9789c84cd7cec2874359a437a0e1ff15 + languageName: node + linkType: hard + +"mdast-util-mdx-expression@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-mdx-expression@npm:2.0.1" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10c0/9a1e57940f66431f10312fa239096efa7627f375e7933b5d3162c0b5c1712a72ac87447aff2b6838d2bbd5c1311b188718cc90b33b67dc67a88550e0a6ef6183 + languageName: node + linkType: hard + +"mdast-util-mdx-jsx@npm:^3.0.0": + version: 3.1.3 + resolution: "mdast-util-mdx-jsx@npm:3.1.3" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + ccount: "npm:^2.0.0" + devlop: "npm:^1.1.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + parse-entities: "npm:^4.0.0" + stringify-entities: "npm:^4.0.0" + unist-util-stringify-position: "npm:^4.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/1b0b64215efbbbb1ee9ba2a2b3e5f11859dada7dff162949a0d503aefbd75c0308f17d404df126c54acea06d2224905915b2cac2e6c999514c919bd963b8de24 + languageName: node + linkType: hard + +"mdast-util-mdxjs-esm@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-mdxjs-esm@npm:2.0.1" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10c0/5bda92fc154141705af2b804a534d891f28dac6273186edf1a4c5e3f045d5b01dbcac7400d27aaf91b7e76e8dce007c7b2fdf136c11ea78206ad00bdf9db46bc + languageName: node + linkType: hard + +"mdast-util-phrasing@npm:^4.0.0": + version: 4.1.0 + resolution: "mdast-util-phrasing@npm:4.1.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10c0/bf6c31d51349aa3d74603d5e5a312f59f3f65662ed16c58017169a5fb0f84ca98578f626c5ee9e4aa3e0a81c996db8717096705521bddb4a0185f98c12c9b42f + languageName: node + linkType: hard + +"mdast-util-to-hast@npm:^13.0.0": + version: 13.2.0 + resolution: "mdast-util-to-hast@npm:13.2.0" + dependencies: + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + "@ungap/structured-clone": "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + trim-lines: "npm:^3.0.0" + unist-util-position: "npm:^5.0.0" + unist-util-visit: "npm:^5.0.0" + vfile: "npm:^6.0.0" + checksum: 10c0/9ee58def9287df8350cbb6f83ced90f9c088d72d4153780ad37854f87144cadc6f27b20347073b285173b1649b0723ddf0b9c78158608a804dcacb6bda6e1816 + languageName: node + linkType: hard + +"mdast-util-to-markdown@npm:^2.0.0": + version: 2.1.2 + resolution: "mdast-util-to-markdown@npm:2.1.2" + dependencies: + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + longest-streak: "npm:^3.0.0" + mdast-util-phrasing: "npm:^4.0.0" + mdast-util-to-string: "npm:^4.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-decode-string: "npm:^2.0.0" + unist-util-visit: "npm:^5.0.0" + zwitch: "npm:^2.0.0" + checksum: 10c0/4649722a6099f12e797bd8d6469b2b43b44e526b5182862d9c7766a3431caad2c0112929c538a972f214e63c015395e5d3f54bd81d9ac1b16e6d8baaf582f749 + languageName: node + linkType: hard + +"mdast-util-to-string@npm:^4.0.0": + version: 4.0.0 + resolution: "mdast-util-to-string@npm:4.0.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + checksum: 10c0/2d3c1af29bf3fe9c20f552ee9685af308002488f3b04b12fa66652c9718f66f41a32f8362aa2d770c3ff464c034860b41715902ada2306bb0a055146cef064d7 + languageName: node + linkType: hard + "mdn-data@npm:2.0.28": version: 2.0.28 resolution: "mdn-data@npm:2.0.28" @@ -11859,7 +12246,247 @@ __metadata: languageName: node linkType: hard +<<<<<<< HEAD "micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.8": +======= +"micromark-core-commonmark@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-core-commonmark@npm:2.0.2" + dependencies: + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-factory-destination: "npm:^2.0.0" + micromark-factory-label: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-factory-title: "npm:^2.0.0" + micromark-factory-whitespace: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-html-tag-name: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/87c7a75cd339189eb6f1d6323037f7d108d1331d953b84fe839b37fd385ee2292b27222327c1ceffda46ba5d5d4dee703482475e5ee8744be40c9e308d8acb77 + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-destination@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bbafcf869cee5bf511161354cb87d61c142592fbecea051000ff116068dc85216e6d48519d147890b9ea5d7e2864a6341c0c09d9948c203bff624a80a476023c + languageName: node + linkType: hard + +"micromark-factory-label@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-label@npm:2.0.1" + dependencies: + devlop: "npm:^1.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/0137716b4ecb428114165505e94a2f18855c8bbea21b07a8b5ce514b32a595ed789d2b967125718fc44c4197ceaa48f6609d58807a68e778138d2e6b91b824e8 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-space@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/f9ed43f1c0652d8d898de0ac2be3f77f776fffe7dd96bdbba1e02d7ce33d3853c6ff5daa52568fc4fa32cdf3a62d86b85ead9b9189f7211e1d69ff2163c450fb + languageName: node + linkType: hard + +"micromark-factory-title@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-title@npm:2.0.1" + dependencies: + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/e72fad8d6e88823514916890099a5af20b6a9178ccf78e7e5e05f4de99bb8797acb756257d7a3a57a53854cb0086bf8aab15b1a9e9db8982500dd2c9ff5948b6 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-whitespace@npm:2.0.1" + dependencies: + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/20a1ec58698f24b766510a309b23a10175034fcf1551eaa9da3adcbed3e00cd53d1ebe5f030cf873f76a1cec3c34eb8c50cc227be3344caa9ed25d56cf611224 + languageName: node + linkType: hard + +"micromark-util-character@npm:^2.0.0": + version: 2.1.1 + resolution: "micromark-util-character@npm:2.1.1" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/d3fe7a5e2c4060fc2a076f9ce699c82a2e87190a3946e1e5eea77f563869b504961f5668d9c9c014724db28ac32fa909070ea8b30c3a39bd0483cc6c04cc76a1 + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-chunked@npm:2.0.1" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/b68c0c16fe8106949537bdcfe1be9cf36c0ccd3bc54c4007003cb0984c3750b6cdd0fd77d03f269a3382b85b0de58bde4f6eedbe7ecdf7244759112289b1ab56 + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-classify-character@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/8a02e59304005c475c332f581697e92e8c585bcd45d5d225a66c1c1b14ab5a8062705188c2ccec33cc998d33502514121478b2091feddbc751887fc9c290ed08 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-combine-extensions@npm:2.0.1" + dependencies: + micromark-util-chunked: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/f15e282af24c8372cbb10b9b0b3e2c0aa681fea0ca323a44d6bc537dc1d9382c819c3689f14eaa000118f5a163245358ce6276b2cda9a84439cdb221f5d86ae7 + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/9c8a9f2c790e5593ffe513901c3a110e9ec8882a08f466da014112a25e5059b51551ca0aeb7ff494657d86eceb2f02ee556c6558b8d66aadc61eae4a240da0df + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-decode-string@npm:2.0.1" + dependencies: + decode-named-character-reference: "npm:^1.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/f24d75b2e5310be6e7b6dee532e0d17d3bf46996841d6295f2a9c87a2046fff4ab603c52ab9d7a7a6430a8b787b1574ae895849c603d262d1b22eef71736b5cb + languageName: node + linkType: hard + +"micromark-util-encode@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-encode@npm:2.0.1" + checksum: 10c0/b2b29f901093845da8a1bf997ea8b7f5e061ffdba85070dfe14b0197c48fda64ffcf82bfe53c90cf9dc185e69eef8c5d41cae3ba918b96bc279326921b59008a + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-html-tag-name@npm:2.0.1" + checksum: 10c0/ae80444db786fde908e9295f19a27a4aa304171852c77414516418650097b8afb401961c9edb09d677b06e97e8370cfa65638dde8438ebd41d60c0a8678b85b9 + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-normalize-identifier@npm:2.0.1" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/5299265fa360769fc499a89f40142f10a9d4a5c3dd8e6eac8a8ef3c2e4a6570e4c009cf75ea46dce5ee31c01f25587bde2f4a5cc0a935584ae86dd857f2babbd + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-resolve-all@npm:2.0.1" + dependencies: + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bb6ca28764696bb479dc44a2d5b5fe003e7177aeae1d6b0d43f24cc223bab90234092d9c3ce4a4d2b8df095ccfd820537b10eb96bb7044d635f385d65a4c984a + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-sanitize-uri@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/60e92166e1870fd4f1961468c2651013ff760617342918e0e0c3c4e872433aa2e60c1e5a672bfe5d89dc98f742d6b33897585cf86ae002cda23e905a3c02527c + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-util-subtokenize@npm:2.0.3" + dependencies: + devlop: "npm:^1.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/75501986ecb02a6f06c0f3e58b584ae3ff3553b520260e8ce27d2db8c79b8888861dd9d3b26e30f5c6084fddd90f96dc3ff551f02c2ac4d669ebe920e483b6d6 + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-symbol@npm:2.0.1" + checksum: 10c0/f2d1b207771e573232436618e78c5e46cd4b5c560dd4a6d63863d58018abbf49cb96ec69f7007471e51434c60de3c9268ef2bf46852f26ff4aacd10f9da16fe9 + languageName: node + linkType: hard + +"micromark-util-types@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-types@npm:2.0.1" + checksum: 10c0/872ec9334bb42afcc91c5bed8b7ee03b75654b36c6f221ab4d2b1bb0299279f00db948bf38ec6bc1ec03d0cf7842c21ab805190bf676157ba587eb0386d38b71 + languageName: node + linkType: hard + +"micromark@npm:^4.0.0": + version: 4.0.1 + resolution: "micromark@npm:4.0.1" + dependencies: + "@types/debug": "npm:^4.0.0" + debug: "npm:^4.0.0" + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-core-commonmark: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-combine-extensions: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/b5d950c84664ce209575e5a54946488f0a1e1240d080544e657b65074c9b08208a5315d9db066b93cbc199ec05f68552ba8b09fd5e716c726f4a4712275a7c5c + languageName: node + linkType: hard + +"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +>>>>>>> 9a1ddaa (removed stats about page) version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -13140,6 +13767,22 @@ __metadata: languageName: node linkType: hard +"parse-entities@npm:^4.0.0": + version: 4.0.1 + resolution: "parse-entities@npm:4.0.1" + dependencies: + "@types/unist": "npm:^2.0.0" + character-entities: "npm:^2.0.0" + character-entities-legacy: "npm:^3.0.0" + character-reference-invalid: "npm:^2.0.0" + decode-named-character-reference: "npm:^1.0.0" + is-alphanumerical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + is-hexadecimal: "npm:^2.0.0" + checksum: 10c0/9dfa3b0dc43a913c2558c4bd625b1abcc2d6c6b38aa5724b141ed988471977248f7ad234eed57e1bc70b694dd15b0d710a04f66c2f7c096e35abd91962b7d926 + languageName: node + linkType: hard + "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -13793,6 +14436,13 @@ __metadata: languageName: node linkType: hard +"property-information@npm:^6.0.0": + version: 6.5.0 + resolution: "property-information@npm:6.5.0" + checksum: 10c0/981e0f9cc2e5acdb414a6fd48a99dd0fd3a4079e7a91ab41cf97a8534cf43e0e0bc1ffada6602a1b3d047a33db8b5fc2ef46d863507eda712d5ceedac443f0ef + languageName: node + linkType: hard + "proto-list@npm:~1.2.1": version: 1.2.4 resolution: "proto-list@npm:1.2.4" @@ -13957,6 +14607,27 @@ __metadata: languageName: node linkType: hard +"react-markdown@npm:^9.0.1": + version: 9.0.1 + resolution: "react-markdown@npm:9.0.1" + dependencies: + "@types/hast": "npm:^3.0.0" + devlop: "npm:^1.0.0" + hast-util-to-jsx-runtime: "npm:^2.0.0" + html-url-attributes: "npm:^3.0.0" + mdast-util-to-hast: "npm:^13.0.0" + remark-parse: "npm:^11.0.0" + remark-rehype: "npm:^11.0.0" + unified: "npm:^11.0.0" + unist-util-visit: "npm:^5.0.0" + vfile: "npm:^6.0.0" + peerDependencies: + "@types/react": ">=18" + react: ">=18" + checksum: 10c0/3a3895dbd56647bc864b8da46dd575e71a9e609eb1e43fea8e8e6209d86e208eddd5b07bf8d7b5306a194b405440760a8d134aebd5a4ce5dc7dee4299e84db96 + languageName: node + linkType: hard + "react-select@npm:^5.8.0": version: 5.8.0 resolution: "react-select@npm:5.8.0" @@ -14248,6 +14919,31 @@ __metadata: languageName: node linkType: hard +"remark-parse@npm:^11.0.0": + version: 11.0.0 + resolution: "remark-parse@npm:11.0.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unified: "npm:^11.0.0" + checksum: 10c0/6eed15ddb8680eca93e04fcb2d1b8db65a743dcc0023f5007265dda558b09db595a087f622062ccad2630953cd5cddc1055ce491d25a81f3317c858348a8dd38 + languageName: node + linkType: hard + +"remark-rehype@npm:^11.0.0": + version: 11.1.1 + resolution: "remark-rehype@npm:11.1.1" + dependencies: + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + mdast-util-to-hast: "npm:^13.0.0" + unified: "npm:^11.0.0" + vfile: "npm:^6.0.0" + checksum: 10c0/68f986e8ee758d415e93babda2a0d89477c15b7c200edc23b8b1d914dd6e963c5fc151a11cbbbcfa7dd237367ff3ef86e302be90f31f37a17b0748668bd8c65b + languageName: node + linkType: hard + "repeat-string@npm:^1.6.1": version: 1.6.1 resolution: "repeat-string@npm:1.6.1" @@ -15114,6 +15810,13 @@ __metadata: languageName: node linkType: hard +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 10c0/6173e1d903dca41dcab6a2deed8b4caf61bd13b6d7af8374713500570aa929ff9414ae09a0519f4f8772df993300305a395d4871f35bc4ca72b6db57e1f30af8 + languageName: node + linkType: hard + "spawn-error-forwarder@npm:~1.0.0": version: 1.0.0 resolution: "spawn-error-forwarder@npm:1.0.0" @@ -15443,6 +16146,16 @@ __metadata: languageName: node linkType: hard +"stringify-entities@npm:^4.0.0": + version: 4.0.4 + resolution: "stringify-entities@npm:4.0.4" + dependencies: + character-entities-html4: "npm:^2.0.0" + character-entities-legacy: "npm:^3.0.0" + checksum: 10c0/537c7e656354192406bdd08157d759cd615724e9d0873602d2c9b2f6a5c0a8d0b1d73a0a08677848105c5eebac6db037b57c0b3a4ec86331117fa7319ed50448 + languageName: node + linkType: hard + "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -15510,9 +16223,24 @@ __metadata: languageName: node linkType: hard +<<<<<<< HEAD "styled-jsx@npm:5.1.6": version: 5.1.6 resolution: "styled-jsx@npm:5.1.6" +======= +"style-to-object@npm:^1.0.0": + version: 1.0.8 + resolution: "style-to-object@npm:1.0.8" + dependencies: + inline-style-parser: "npm:0.2.4" + checksum: 10c0/daa6646b1ff18258c0ca33ed281fbe73485c8391192db1b56ce89d40c93ea64507a41e8701d0dadfe771bc2f540c46c9b295135f71584c8e5cb23d6a19be9430 + languageName: node + linkType: hard + +"styled-jsx@npm:5.1.1": + version: 5.1.1 + resolution: "styled-jsx@npm:5.1.1" +>>>>>>> 9a1ddaa (removed stats about page) dependencies: client-only: "npm:0.0.1" peerDependencies: @@ -15949,6 +16677,13 @@ __metadata: languageName: node linkType: hard +"trim-lines@npm:^3.0.0": + version: 3.0.1 + resolution: "trim-lines@npm:3.0.1" + checksum: 10c0/3a1611fa9e52aa56a94c69951a9ea15b8aaad760eaa26c56a65330dc8adf99cb282fc07cc9d94968b7d4d88003beba220a7278bbe2063328eb23fb56f9509e94 + languageName: node + linkType: hard + "triple-beam@npm:^1.3.0, triple-beam@npm:^1.4.1": version: 1.4.1 resolution: "triple-beam@npm:1.4.1" @@ -15956,6 +16691,13 @@ __metadata: languageName: node linkType: hard +"trough@npm:^2.0.0": + version: 2.2.0 + resolution: "trough@npm:2.2.0" + checksum: 10c0/58b671fc970e7867a48514168894396dd94e6d9d6456aca427cc299c004fe67f35ed7172a36449086b2edde10e78a71a284ec0076809add6834fb8f857ccb9b0 + languageName: node + linkType: hard + "ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" @@ -16507,6 +17249,21 @@ __metadata: languageName: node linkType: hard +"unified@npm:^11.0.0": + version: 11.0.5 + resolution: "unified@npm:11.0.5" + dependencies: + "@types/unist": "npm:^3.0.0" + bail: "npm:^2.0.0" + devlop: "npm:^1.0.0" + extend: "npm:^3.0.0" + is-plain-obj: "npm:^4.0.0" + trough: "npm:^2.0.0" + vfile: "npm:^6.0.0" + checksum: 10c0/53c8e685f56d11d9d458a43e0e74328a4d6386af51c8ac37a3dcabec74ce5026da21250590d4aff6733ccd7dc203116aae2b0769abc18cdf9639a54ae528dfc9 + languageName: node + linkType: hard + "union@npm:~0.5.0": version: 0.5.0 resolution: "union@npm:0.5.0" @@ -16561,6 +17318,54 @@ __metadata: languageName: node linkType: hard +"unist-util-is@npm:^6.0.0": + version: 6.0.0 + resolution: "unist-util-is@npm:6.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/9419352181eaa1da35eca9490634a6df70d2217815bb5938a04af3a662c12c5607a2f1014197ec9c426fbef18834f6371bfdb6f033040fa8aa3e965300d70e7e + languageName: node + linkType: hard + +"unist-util-position@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-position@npm:5.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/dde3b31e314c98f12b4dc6402f9722b2bf35e96a4f2d463233dd90d7cde2d4928074a7a11eff0a5eb1f4e200f27fc1557e0a64a7e8e4da6558542f251b1b7400 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^4.0.0": + version: 4.0.0 + resolution: "unist-util-stringify-position@npm:4.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/dfe1dbe79ba31f589108cb35e523f14029b6675d741a79dea7e5f3d098785045d556d5650ec6a8338af11e9e78d2a30df12b1ee86529cded1098da3f17ee999e + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-visit-parents@npm:6.0.1" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10c0/51b1a5b0aa23c97d3e03e7288f0cdf136974df2217d0999d3de573c05001ef04cccd246f51d2ebdfb9e8b0ed2704451ad90ba85ae3f3177cf9772cef67f56206 + languageName: node + linkType: hard + +"unist-util-visit@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-visit@npm:5.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + unist-util-visit-parents: "npm:^6.0.0" + checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5 + languageName: node + linkType: hard + "universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": version: 7.0.2 resolution: "universal-user-agent@npm:7.0.2" @@ -16750,6 +17555,26 @@ __metadata: languageName: node linkType: hard +"vfile-message@npm:^4.0.0": + version: 4.0.2 + resolution: "vfile-message@npm:4.0.2" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10c0/07671d239a075f888b78f318bc1d54de02799db4e9dce322474e67c35d75ac4a5ac0aaf37b18801d91c9f8152974ea39678aa72d7198758b07f3ba04fb7d7514 + languageName: node + linkType: hard + +"vfile@npm:^6.0.0": + version: 6.0.3 + resolution: "vfile@npm:6.0.3" + dependencies: + "@types/unist": "npm:^3.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/e5d9eb4810623f23758cfc2205323e33552fb5972e5c2e6587babe08fe4d24859866277404fb9e2a20afb71013860d96ec806cb257536ae463c87d70022ab9ef + languageName: node + linkType: hard + "walk-up-path@npm:^3.0.1": version: 3.0.1 resolution: "walk-up-path@npm:3.0.1" @@ -17257,3 +18082,10 @@ __metadata: checksum: 10c0/994f5d99e7647a1b333331ffecbbf7c4463d9c2823e371b44e21146a4496cad0f14fbe2f73f44383312a6f843d93523f830f1360009f0ac93027b167ef5c63be languageName: node linkType: hard + +"zwitch@npm:^2.0.0": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: 10c0/3c7830cdd3378667e058ffdb4cf2bb78ac5711214e2725900873accb23f3dfe5f9e7e5a06dcdc5f29605da976fc45c26d9a13ca334d6eea2245a15e77b8fc06e + languageName: node + linkType: hard From e65b6eaa7872857f8935231105a8016b64aa37c7 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Fri, 22 Nov 2024 23:07:14 -0500 Subject: [PATCH 25/28] fixed releases modal and rule count --- .../Settings/About/ChangeLogModal/index.tsx | 134 ------------------ .../Settings/About/Releases/index.tsx | 56 ++++---- ui/src/components/Settings/About/index.tsx | 43 +++--- 3 files changed, 53 insertions(+), 180 deletions(-) delete mode 100644 ui/src/components/Settings/About/ChangeLogModal/index.tsx diff --git a/ui/src/components/Settings/About/ChangeLogModal/index.tsx b/ui/src/components/Settings/About/ChangeLogModal/index.tsx deleted file mode 100644 index db2426ee..00000000 --- a/ui/src/components/Settings/About/ChangeLogModal/index.tsx +++ /dev/null @@ -1,134 +0,0 @@ -import React, { Fragment } from 'react' -import { useState } from 'react' -import Modal from '../../../Common/Modal' -import LoadingSpinner from '../../../Common/LoadingSpinner' -import dynamic from 'next/dynamic' - -interface ChangeLogModal { - title: string - children: React.ReactNode - isOpen: boolean - onCancel: () => void - onOk?: () => void - cancelText?: string - okText?: string - release: GitHubRelease - isLatest: boolean - currentVersion: string -} -interface GitHubRelease { - url: string - assets_url: string - upload_url: string - html_url: string - id: number - node_id: string - tag_name: string - target_commitish: string - name: string - draft: boolean - prerelease: boolean - created_at: string - published_at: string - tarball_url: string - zipball_url: string - body: string -} -interface ReleaseProps { - release: GitHubRelease - isLatest: boolean - currentVersion: string -} - -const messages = { - releases: 'Releases', - releasedataMissing: 'Release data is currently unavailable.', - versionChangelog: '{version} Changelog', - viewongithub: 'View on GitHub', - latestversion: 'Latest', - currentversion: 'Currently Installed', - viewchangelog: 'View Changelog', - close: 'Close', -} - -const ReactMarkdown = dynamic(() => import('react-markdown'), { - ssr: false, -}) - -const REPO_RELEASE_API = - 'https://api.github.com/repos/jorenn92/maintainerr/releases?per_page=10' - -const ChangeLogModal = ({ - currentVersion, - release, - isLatest, - onCancel, -}: ChangeLogModal) => { - const handleCancel = () => { - ChangeLogModal.onCancel() - } - - return ( - { - window.open(release.html_url, '_blank') - }} - > -
- {release.body} -
-
- ) -} -const Releases = ({ currentVersion }: ReleasesProps) => { - const [data, setData] = useState(null) - const [error, setError] = useState(null) - - useEffect(() => { - const fetchReleases = async () => { - try { - const response = await fetch(REPO_RELEASE_API) - if (!response.ok) { - throw new Error(`Error: ${response.status}`) - } - const releases = await response.json() - setData(releases) - } catch (err) { - setError(err.message || 'Failed to fetch releases') - } - } - - fetchReleases() - }, []) - - if (!data && !error) { - return - } - - if (error) { - return
{messages.releasedataMissing}
- } - - return ( -
-

{messages.releases}

-
- {data!.map((release, index) => ( -
- -
- ))} -
-
- ) -} diff --git a/ui/src/components/Settings/About/Releases/index.tsx b/ui/src/components/Settings/About/Releases/index.tsx index e8da780d..bd2b1168 100644 --- a/ui/src/components/Settings/About/Releases/index.tsx +++ b/ui/src/components/Settings/About/Releases/index.tsx @@ -1,11 +1,9 @@ import Badge from '../../../Common/Badge' import Button from '../../../Common/Button' import LoadingSpinner from '../../../Common/LoadingSpinner' -import ChangeLogModal from '../ChangeLogModal' -import { DocumentTextIcon } from '@heroicons/react/outline' -import dynamic from 'next/dynamic' -import { Fragment, useEffect, useState } from 'react' import Modal from '../../../Common/Modal' +import dynamic from 'next/dynamic' +import { useEffect, useState } from 'react' // Dynamic import for markdown const ReactMarkdown = dynamic(() => import('react-markdown'), { @@ -18,7 +16,7 @@ const messages = { versionChangelog: '{version} Changelog', viewongithub: 'View on GitHub', latestversion: 'Latest', - currentversion: 'Currently Installed', + currentversion: 'Current', viewchangelog: 'View Changelog', close: 'Close', } @@ -44,6 +42,11 @@ interface GitHubRelease { zipball_url: string body: string } +interface ReleaseProps { + release: GitHubRelease + isLatest: boolean + currentVersion: string +} interface ModalProps { title: string children: React.ReactNode @@ -54,12 +57,6 @@ interface ModalProps { okText?: string } -interface ReleaseProps { - release: GitHubRelease - isLatest: boolean - currentVersion: string -} - const calculateRelativeTime = (dateString: string): string => { const secondsAgo = Math.floor( (Date.now() - new Date(dateString).getTime()) / 1000, @@ -75,25 +72,27 @@ const calculateRelativeTime = (dateString: string): string => { } const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { - const [AboutModalActive, setModalActive] = useState() + const [isModalOpen, setModalOpen] = useState(false) return (
- setModalActive(false)} - title={messages.versionChangelog.replace('{version}', release.name)} - cancelText={messages.close} - okText={messages.viewongithub} - onOk={() => { - window.open(release.html_url, '_blank') - }} - > -
- {release.body} + {isModalOpen && ( +
+ setModalOpen(false)} + title={messages.versionChangelog.replace('{version}', release.name)} + cancelText={messages.close} + okText={messages.viewongithub} + onOk={() => { + window.open(release.html_url, '_blank') + }} + > +
+ {release.body} +
+
- + )}
@@ -108,8 +107,7 @@ const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { {messages.currentversion} )}
-
@@ -153,7 +151,7 @@ const Releases = ({ currentVersion }: ReleasesProps) => {

{messages.releases}

- {data!.map((release, index) => ( + {data?.map((release, index) => (
{ useEffect(() => { @@ -32,6 +36,19 @@ const AboutSettings = () => { }) }, []) // End Maintainerr Version + // Maintainerr Rules Count + const [idCount, setIdCount] = useState(null) // To store the count + useEffect(() => { + GetApiHandler('/rules').then((resp: RulesResponse) => { + if (resp) { + let totalCount = 0 + if (Array.isArray(resp)) { + totalCount = resp.length + } + setIdCount(totalCount) + } + }) + }) return (
@@ -110,7 +127,7 @@ const AboutSettings = () => {
- "Value goes here" + {<>{idCount}}
@@ -162,22 +179,6 @@ const AboutSettings = () => {

- -
@@ -222,6 +223,14 @@ const AboutSettings = () => { > Github Sponsors +

or

+ + Ko-fi +
From cf3ff3422306f748042781a538696fa2555a1acb Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Sat, 23 Nov 2024 12:47:38 -0500 Subject: [PATCH 26/28] added an about page. - shows releases and a button to view changelog - shows total number of rules - shows version - total media currently in collections - number of community rules - useful links section - donations section --- .../Settings/About/Releases/index.tsx | 4 +- ui/src/components/Settings/About/index.tsx | 126 +++++++++++++----- ui/styles/globals.css | 7 +- 3 files changed, 102 insertions(+), 35 deletions(-) diff --git a/ui/src/components/Settings/About/Releases/index.tsx b/ui/src/components/Settings/About/Releases/index.tsx index bd2b1168..00cccd6d 100644 --- a/ui/src/components/Settings/About/Releases/index.tsx +++ b/ui/src/components/Settings/About/Releases/index.tsx @@ -75,7 +75,7 @@ const Release = ({ currentVersion, release, isLatest }: ReleaseProps) => { const [isModalOpen, setModalOpen] = useState(false) return ( -
+
{isModalOpen && (
{ window.open(release.html_url, '_blank') }} > -
+
{release.body}
diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index bc5848ef..26d547da 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -9,9 +9,29 @@ interface VersionResponse { commitTag: string updateAvailable: boolean } -interface RulesResponse { +interface CollectionsResponse { id: number - name: string + plexId: number + libraryId: number + title: string + description: string + isActive: boolean + arrAction: number + visibleOnHome: boolean + deleteAfterDays: number + manualCollection: boolean + manualCollectionName: string + listExclusions: boolean + forceOverseerr: boolean + type: string + keepLogsForMonths: number + addDate: Date + handledMediaAmount: number + lastDurationInSeconds: number + tautulliWatchedPercentOverride: string + radarrSettingsId: number + sonarrSettingsId: number + media: string[] } const AboutSettings = () => { @@ -37,19 +57,46 @@ const AboutSettings = () => { }, []) // End Maintainerr Version // Maintainerr Rules Count - const [idCount, setIdCount] = useState(null) // To store the count + const [ruleCount, setRuleCount] = useState(null) // To store the count useEffect(() => { - GetApiHandler('/rules').then((resp: RulesResponse) => { + GetApiHandler('/rules').then((resp) => { if (resp) { let totalCount = 0 if (Array.isArray(resp)) { totalCount = resp.length } - setIdCount(totalCount) + setRuleCount(totalCount) + } + }) + }) + // End Maintainerr Rules Count + // Maintainerr Collection Items + const [itemCount, setItemCount] = useState(null) // To store the count + useEffect(() => { + GetApiHandler('/collections/media').then((resp) => { + if (resp) { + let totalCount = 0 + if (Array.isArray(resp)) { + totalCount = resp.length + } + setItemCount(totalCount) + } + }) + }) + // End Maintainerr Collection Items + // Maintainerr Community Rules Count + const [communityCount, setCommunityCount] = useState(null) // To store the count + useEffect(() => { + GetApiHandler('/rules/community').then((resp) => { + if (resp) { + let totalCount = 0 + if (Array.isArray(resp)) { + totalCount = resp.length + } + setCommunityCount(totalCount) } }) }) - return (
@@ -127,7 +174,7 @@ const AboutSettings = () => {
- {<>{idCount}} + {<>{ruleCount}}
@@ -140,7 +187,20 @@ const AboutSettings = () => {
- "Value goes here" + {<>{itemCount}} + +
+
+
+
+
+ +
+
+ + {<>{communityCount}}
@@ -158,7 +218,11 @@ const AboutSettings = () => {
@@ -171,7 +235,11 @@ const AboutSettings = () => {
@@ -184,7 +252,11 @@ const AboutSettings = () => {
@@ -197,7 +269,11 @@ const AboutSettings = () => {
@@ -205,27 +281,25 @@ const AboutSettings = () => {

- {/* End Userful Links */} - {/* Useful Links */}

Loving Maintainerr?


- + -
-
+
{/* End Userful Links */} {/* Show Releases */}
diff --git a/ui/styles/globals.css b/ui/styles/globals.css index bbc55619..95ec5249 100644 --- a/ui/styles/globals.css +++ b/ui/styles/globals.css @@ -8,7 +8,12 @@ padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); } - + .prose a { + color: #ed7924; + } + .prose a:hover { + color: #8d4c1c; + } body { @apply bg-zinc-900; font-family: From 543d9bfd69bb8ebeebef03cd8b3bb01d02beea44 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Sat, 23 Nov 2024 13:07:58 -0500 Subject: [PATCH 27/28] removing stray backtick and old testing page --- ui/src/components/Settings/About/index.tsx | 2 +- ui/src/pages/settings/Testing/index.tsx | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 ui/src/pages/settings/Testing/index.tsx diff --git a/ui/src/components/Settings/About/index.tsx b/ui/src/components/Settings/About/index.tsx index 26d547da..5b4794bf 100644 --- a/ui/src/components/Settings/About/index.tsx +++ b/ui/src/components/Settings/About/index.tsx @@ -107,7 +107,7 @@ const AboutSettings = () => {

This is BETA software. Features may be broken and/or unstable. - Please report any issues on GitHub!' + Please report any issues on GitHub!

{ - return ( - - - - ) -} -export default SettingsAbout From 4589dd7988550b019b80459b243df4d14dd152d0 Mon Sep 17 00:00:00 2001 From: ydkmlt84 Date: Mon, 2 Dec 2024 13:21:17 -0500 Subject: [PATCH 28/28] Revert "Merge branch 'add-about-page' of https://github.com/ydkmlt84/Maintainerr into add-about-page" This reverts commit 5f2788eedea9d314703733bfc30c2bf95c81ae1d, reversing changes made to 543d9bfd69bb8ebeebef03cd8b3bb01d02beea44. --- yarn.lock | 696 +++++++----------------------------------------------- 1 file changed, 90 insertions(+), 606 deletions(-) diff --git a/yarn.lock b/yarn.lock index ae0b4b33..b7f55e2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2108,13 +2108,20 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.15.0, @eslint/js@npm:^9.13.0": +"@eslint/js@npm:9.15.0": version: 9.15.0 resolution: "@eslint/js@npm:9.15.0" checksum: 10c0/56552966ab1aa95332f70d0e006db5746b511c5f8b5e0c6a9b2d6764ff6d964e0b2622731877cbc4e3f0e74c5b39191290d5f48147be19175292575130d499ab languageName: node linkType: hard +"@eslint/js@npm:^9.13.0": + version: 9.13.0 + resolution: "@eslint/js@npm:9.13.0" + checksum: 10c0/672257bffe17777b8a98bd80438702904cc7a0b98b9c2e426a8a10929198b3553edf8a3fc20feed4133c02e7c8f7331a0ef1b23e5dab8e4469f7f1791beff1e0 + languageName: node + linkType: hard + "@eslint/object-schema@npm:^2.1.4": version: 2.1.4 resolution: "@eslint/object-schema@npm:2.1.4" @@ -2855,8 +2862,8 @@ __metadata: linkType: hard "@nestjs/cli@npm:^10.4.7": - version: 10.4.8 - resolution: "@nestjs/cli@npm:10.4.8" + version: 10.4.7 + resolution: "@nestjs/cli@npm:10.4.7" dependencies: "@angular-devkit/core": "npm:17.3.11" "@angular-devkit/schematics": "npm:17.3.11" @@ -2867,13 +2874,13 @@ __metadata: cli-table3: "npm:0.6.5" commander: "npm:4.1.1" fork-ts-checker-webpack-plugin: "npm:9.0.2" - glob: "npm:10.4.5" + glob: "npm:10.4.2" inquirer: "npm:8.2.6" node-emoji: "npm:1.11.0" ora: "npm:5.4.1" tree-kill: "npm:1.2.2" tsconfig-paths: "npm:4.2.0" - tsconfig-paths-webpack-plugin: "npm:4.2.0" + tsconfig-paths-webpack-plugin: "npm:4.1.0" typescript: "npm:5.6.3" webpack: "npm:5.96.1" webpack-node-externals: "npm:3.0.0" @@ -2887,7 +2894,7 @@ __metadata: optional: true bin: nest: bin/nest.js - checksum: 10c0/6bc70cf478e6f92318c78da4bb1da186b7c89dbea4a7b24b50afb0c41834834373892ca1780b356110d03efd1fb2c272d823fb67a3fa2795859337d7045beca3 + checksum: 10c0/d21f329d13581e4d85149908fd82cf541b0fbf29980e7e7d361e537149e37e923e3829ba0fb3a6ec0b18710f0958aa68a547e119e4e71f29bff1709dd8472386 languageName: node linkType: hard @@ -2913,8 +2920,8 @@ __metadata: linkType: hard "@nestjs/core@npm:^10.4.7": - version: 10.4.8 - resolution: "@nestjs/core@npm:10.4.8" + version: 10.4.7 + resolution: "@nestjs/core@npm:10.4.7" dependencies: "@nuxtjs/opencollective": "npm:0.3.2" fast-safe-stringify: "npm:2.1.1" @@ -2936,7 +2943,7 @@ __metadata: optional: true "@nestjs/websockets": optional: true - checksum: 10c0/1ac652f9089ec82be8cb6ba86fc83dc228adaae516bee41f1f8dc7201551c8004e9555c3655c5d1bee933da99548ca6cda5523e8ceb1d3146e1c5963b11e041a + checksum: 10c0/34c1601bd09ef7ca56ec57a9e7a729480ffc5ea102bf60427e34ae3642e8a8baa475b3f425b9258c076d110c29aa5b0027acdfb8dca290ad49566cd97be20d60 languageName: node linkType: hard @@ -4314,16 +4321,7 @@ __metadata: languageName: node linkType: hard -"@types/estree-jsx@npm:^1.0.0": - version: 1.0.5 - resolution: "@types/estree-jsx@npm:1.0.5" - dependencies: - "@types/estree": "npm:*" - checksum: 10c0/07b354331516428b27a3ab99ee397547d47eb223c34053b48f84872fafb841770834b90cc1a0068398e7c7ccb15ec51ab00ec64b31dc5e3dbefd624638a35c6d - languageName: node - linkType: hard - -"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": +"@types/estree@npm:*, @types/estree@npm:^1.0.6": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a @@ -4406,15 +4404,6 @@ __metadata: languageName: node linkType: hard -"@types/hast@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/hast@npm:3.0.4" - dependencies: - "@types/unist": "npm:*" - checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7 - languageName: node - linkType: hard - "@types/http-errors@npm:*": version: 2.0.4 resolution: "@types/http-errors@npm:2.0.4" @@ -4494,15 +4483,6 @@ __metadata: languageName: node linkType: hard -"@types/mdast@npm:^4.0.0": - version: 4.0.4 - resolution: "@types/mdast@npm:4.0.4" - dependencies: - "@types/unist": "npm:*" - checksum: 10c0/84f403dbe582ee508fd9c7643ac781ad8597fcbfc9ccb8d4715a2c92e4545e5772cbd0dbdf18eda65789386d81b009967fdef01b24faf6640f817287f54d9c82 - languageName: node - linkType: hard - "@types/mime@npm:*": version: 3.0.4 resolution: "@types/mime@npm:3.0.4" @@ -4524,13 +4504,6 @@ __metadata: languageName: node linkType: hard -"@types/ms@npm:*": - version: 0.7.34 - resolution: "@types/ms@npm:0.7.34" - checksum: 10c0/ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc - languageName: node - linkType: hard - "@types/node@npm:*": version: 20.11.5 resolution: "@types/node@npm:20.11.5" @@ -4759,14 +4732,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^8.12.0": - version: 8.15.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.15.0" + version: 8.12.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.12.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.15.0" - "@typescript-eslint/type-utils": "npm:8.15.0" - "@typescript-eslint/utils": "npm:8.15.0" - "@typescript-eslint/visitor-keys": "npm:8.15.0" + "@typescript-eslint/scope-manager": "npm:8.12.0" + "@typescript-eslint/type-utils": "npm:8.12.0" + "@typescript-eslint/utils": "npm:8.12.0" + "@typescript-eslint/visitor-keys": "npm:8.12.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -4777,7 +4750,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/90ef10cc7d37a81abec4f4a3ffdfc3a0da8e99d949e03c75437e96e8ab2e896e34b85ab64718690180a7712581031b8611c5d8e7666d6ed4d60b9ace834d58e3 + checksum: 10c0/b2e8b9a5e4c8f27684ce34136d85ed9c199e412f1e66e22ad80a80190366dae7f087377931b04836bd87fe155ffd0b23e4a92e3da9aed8bfa74d50b3f198737c languageName: node linkType: hard @@ -4817,13 +4790,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/scope-manager@npm:8.15.0" +"@typescript-eslint/scope-manager@npm:8.12.0": + version: 8.12.0 + resolution: "@typescript-eslint/scope-manager@npm:8.12.0" dependencies: - "@typescript-eslint/types": "npm:8.15.0" - "@typescript-eslint/visitor-keys": "npm:8.15.0" - checksum: 10c0/c27dfdcea4100cc2d6fa967f857067cbc93155b55e648f9f10887a1b9372bb76cf864f7c804f3fa48d7868d9461cdef10bcea3dab7637d5337e8aa8042dc08b9 + "@typescript-eslint/types": "npm:8.12.0" + "@typescript-eslint/visitor-keys": "npm:8.12.0" + checksum: 10c0/32aa16748f3a3855b0d263eb2b90ab59741525d3c482a722c5c42494b833bf33dc93f6b9116f83ebd27ace4855ef7aa997ee433ed145796e6ef8dc7ab2afaaa9 languageName: node linkType: hard @@ -4847,20 +4820,18 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/type-utils@npm:8.15.0" +"@typescript-eslint/type-utils@npm:8.12.0": + version: 8.12.0 + resolution: "@typescript-eslint/type-utils@npm:8.12.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.15.0" - "@typescript-eslint/utils": "npm:8.15.0" + "@typescript-eslint/typescript-estree": "npm:8.12.0" + "@typescript-eslint/utils": "npm:8.12.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/20f09c79c83b38a962cf7eff10d47a2c01bcc0bab7bf6d762594221cd89023ef8c7aec26751c47b524f53f5c8d38bba55a282529b3df82d5f5ab4350496316f9 + checksum: 10c0/2c4077a2430a647668757a57e5b9f2b2a4b4a3f235dd95aa15103bdac67f0b5ec7e85e289526cd5e79f6696819278c392246f38b24aa4d86da0374f4fb928b13 languageName: node linkType: hard @@ -4879,10 +4850,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/types@npm:8.15.0" - checksum: 10c0/84abc6fd954aff13822a76ac49efdcb90a55c0025c20eee5d8cebcfb68faff33b79bbc711ea524e0209cecd90c5ee3a5f92babc7083c081d3a383a0710264a41 +"@typescript-eslint/types@npm:8.12.0": + version: 8.12.0 + resolution: "@typescript-eslint/types@npm:8.12.0" + checksum: 10c0/d1565e32fbb6441de1f881aa1dba27126d25d4e69f9edc8380f54191c5e3d78991e8a7d3fcf01a94ffbdffb75649ef1657ceca00c973e7cbc72687c441b204ff languageName: node linkType: hard @@ -4900,12 +4871,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.15.0" +"@typescript-eslint/typescript-estree@npm:8.12.0": + version: 8.12.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.12.0" dependencies: - "@typescript-eslint/types": "npm:8.15.0" - "@typescript-eslint/visitor-keys": "npm:8.15.0" + "@typescript-eslint/types": "npm:8.12.0" + "@typescript-eslint/visitor-keys": "npm:8.12.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -4915,7 +4886,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/3af5c129532db3575349571bbf64d32aeccc4f4df924ac447f5d8f6af8b387148df51965eb2c9b99991951d3dadef4f2509d7ce69bf34a2885d013c040762412 + checksum: 10c0/17e9951fc91c87cafa4ed708e8922fd4e6f55e23796714e1d8848fb1d830cb2085ca6931f4e1e1c71efc9b57f544ca33478cbae086fea09db56520a1c3a69d75 languageName: node linkType: hard @@ -4957,20 +4928,17 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/utils@npm:8.15.0" +"@typescript-eslint/utils@npm:8.12.0": + version: 8.12.0 + resolution: "@typescript-eslint/utils@npm:8.12.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.15.0" - "@typescript-eslint/types": "npm:8.15.0" - "@typescript-eslint/typescript-estree": "npm:8.15.0" + "@typescript-eslint/scope-manager": "npm:8.12.0" + "@typescript-eslint/types": "npm:8.12.0" + "@typescript-eslint/typescript-estree": "npm:8.12.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/65743f51845a1f6fd2d21f66ca56182ba33e966716bdca73d30b7a67c294e47889c322de7d7b90ab0818296cd33c628e5eeeb03cec7ef2f76c47de7a453eeda2 + checksum: 10c0/b34234b890c4cc2a6e0870b4c992e98563a1311b55e4fcfa6331268c430c3c7b56adeeede9a095decb837edf5f6b5f37da697fab97f8ef66f70e6bbf1aea5e16 languageName: node linkType: hard @@ -4988,13 +4956,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.15.0": - version: 8.15.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.15.0" +"@typescript-eslint/visitor-keys@npm:8.12.0": + version: 8.12.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.12.0" dependencies: - "@typescript-eslint/types": "npm:8.15.0" - eslint-visitor-keys: "npm:^4.2.0" - checksum: 10c0/02a954c3752c4328482a884eb1da06ca8fb72ae78ef28f1d854b18f3779406ed47263af22321cf3f65a637ec7584e5f483e34a263b5c8cec60ec85aebc263574 + "@typescript-eslint/types": "npm:8.12.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10c0/d05a6c3eada99af26840695b71434bf7aa5b50dc99fad64e5862e08ec698c0e53d600eff1049435bf977f243381dda93df884b0243834bfbf4508ed29be246df languageName: node linkType: hard @@ -5993,13 +5961,6 @@ __metadata: languageName: node linkType: hard -"bail@npm:^2.0.0": - version: 2.0.2 - resolution: "bail@npm:2.0.2" - checksum: 10c0/25cbea309ef6a1f56214187004e8f34014eb015713ea01fa5b9b7e9e776ca88d0fdffd64143ac42dc91966c915a4b7b683411b56e14929fad16153fc026ffb8b - languageName: node - linkType: hard - "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -6413,13 +6374,6 @@ __metadata: languageName: node linkType: hard -"ccount@npm:^2.0.0": - version: 2.0.1 - resolution: "ccount@npm:2.0.1" - checksum: 10c0/3939b1664390174484322bc3f45b798462e6c07ee6384cb3d645e0aa2f318502d174845198c1561930e1d431087f74cf1fe291ae9a4722821a9f4ba67e574350 - languageName: node - linkType: hard - "chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -6483,34 +6437,6 @@ __metadata: languageName: node linkType: hard -"character-entities-html4@npm:^2.0.0": - version: 2.1.0 - resolution: "character-entities-html4@npm:2.1.0" - checksum: 10c0/fe61b553f083400c20c0b0fd65095df30a0b445d960f3bbf271536ae6c3ba676f39cb7af0b4bf2755812f08ab9b88f2feed68f9aebb73bb153f7a115fe5c6e40 - languageName: node - linkType: hard - -"character-entities-legacy@npm:^3.0.0": - version: 3.0.0 - resolution: "character-entities-legacy@npm:3.0.0" - checksum: 10c0/ec4b430af873661aa754a896a2b55af089b4e938d3d010fad5219299a6b6d32ab175142699ee250640678cd64bdecd6db3c9af0b8759ab7b155d970d84c4c7d1 - languageName: node - linkType: hard - -"character-entities@npm:^2.0.0": - version: 2.0.2 - resolution: "character-entities@npm:2.0.2" - checksum: 10c0/b0c645a45bcc90ff24f0e0140f4875a8436b8ef13b6bcd31ec02cfb2ca502b680362aa95386f7815bdc04b6464d48cf191210b3840d7c04241a149ede591a308 - languageName: node - linkType: hard - -"character-reference-invalid@npm:^2.0.0": - version: 2.0.1 - resolution: "character-reference-invalid@npm:2.0.1" - checksum: 10c0/2ae0dec770cd8659d7e8b0ce24392d83b4c2f0eb4a3395c955dce5528edd4cc030a794cfa06600fcdd700b3f2de2f9b8e40e309c0011c4180e3be64a0b42e6a1 - languageName: node - linkType: hard - "chardet@npm:^0.7.0": version: 0.7.0 resolution: "chardet@npm:0.7.0" @@ -6883,13 +6809,6 @@ __metadata: languageName: node linkType: hard -"comma-separated-tokens@npm:^2.0.0": - version: 2.0.3 - resolution: "comma-separated-tokens@npm:2.0.3" - checksum: 10c0/91f90f1aae320f1755d6957ef0b864fe4f54737f3313bd95e0802686ee2ca38bff1dd381964d00ae5db42912dd1f4ae5c2709644e82706ffc6f6842a813cdd67 - languageName: node - linkType: hard - "commander@npm:4.1.1, commander@npm:^4.0.0": version: 4.1.1 resolution: "commander@npm:4.1.1" @@ -7232,13 +7151,13 @@ __metadata: linkType: hard "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" + version: 7.0.5 + resolution: "cross-spawn@npm:7.0.5" dependencies: path-key: "npm:^3.1.0" shebang-command: "npm:^2.0.0" which: "npm:^2.0.1" - checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + checksum: 10c0/aa82ce7ac0814a27e6f2b738c5a7cf1fa21a3558a1e42df449fc96541ba3ba731e4d3ecffa4435348808a86212f287c6f20a1ee551ef1ff95d01cfec5f434944 languageName: node linkType: hard @@ -7436,15 +7355,6 @@ __metadata: languageName: node linkType: hard -"decode-named-character-reference@npm:^1.0.0": - version: 1.0.2 - resolution: "decode-named-character-reference@npm:1.0.2" - dependencies: - character-entities: "npm:^2.0.0" - checksum: 10c0/66a9fc5d9b5385a2b3675c69ba0d8e893393d64057f7dbbb585265bb4fc05ec513d76943b8e5aac7d8016d20eea4499322cbf4cd6d54b466976b78f3a7587a4c - languageName: node - linkType: hard - "decompress-response@npm:^6.0.0": version: 6.0.0 resolution: "decompress-response@npm:6.0.0" @@ -7557,13 +7467,6 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.0": - version: 2.0.3 - resolution: "dequal@npm:2.0.3" - checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 - languageName: node - linkType: hard - "destroy@npm:1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" @@ -7601,15 +7504,6 @@ __metadata: languageName: node linkType: hard -"devlop@npm:^1.0.0, devlop@npm:^1.1.0": - version: 1.1.0 - resolution: "devlop@npm:1.1.0" - dependencies: - dequal: "npm:^2.0.0" - checksum: 10c0/e0928ab8f94c59417a2b8389c45c55ce0a02d9ac7fd74ef62d01ba48060129e1d594501b77de01f3eeafc7cb00773819b0df74d96251cf20b31c5b3071f45c0e - languageName: node - linkType: hard - "didyoumean@npm:^1.2.2": version: 1.2.2 resolution: "didyoumean@npm:1.2.2" @@ -8545,13 +8439,6 @@ __metadata: languageName: node linkType: hard -"estree-util-is-identifier-name@npm:^3.0.0": - version: 3.0.0 - resolution: "estree-util-is-identifier-name@npm:3.0.0" - checksum: 10c0/d1881c6ed14bd588ebd508fc90bf2a541811dbb9ca04dec2f39d27dcaa635f85b5ed9bbbe7fc6fb1ddfca68744a5f7c70456b4b7108b6c4c52780631cc787c5b - languageName: node - linkType: hard - "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -8707,7 +8594,6 @@ __metadata: languageName: node linkType: hard -"extend@npm:^3.0.0, extend@npm:~3.0.2": "extend@npm:^3.0.0, extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" @@ -9423,9 +9309,9 @@ __metadata: languageName: node linkType: hard -"glob@npm:10.4.5": - version: 10.4.5 - resolution: "glob@npm:10.4.5" +"glob@npm:10.4.2": + version: 10.4.2 + resolution: "glob@npm:10.4.2" dependencies: foreground-child: "npm:^3.1.0" jackspeak: "npm:^3.1.2" @@ -9435,7 +9321,7 @@ __metadata: path-scurry: "npm:^1.11.1" bin: glob: dist/esm/bin.mjs - checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + checksum: 10c0/2c7296695fa75a935f3ad17dc62e4e170a8bb8752cf64d328be8992dd6ad40777939003754e10e9741ff8fbe43aa52fba32d6930d0ffa0e3b74bc3fb5eebaa2f languageName: node linkType: hard @@ -9722,38 +9608,6 @@ __metadata: languageName: node linkType: hard -"hast-util-to-jsx-runtime@npm:^2.0.0": - version: 2.3.2 - resolution: "hast-util-to-jsx-runtime@npm:2.3.2" - dependencies: - "@types/estree": "npm:^1.0.0" - "@types/hast": "npm:^3.0.0" - "@types/unist": "npm:^3.0.0" - comma-separated-tokens: "npm:^2.0.0" - devlop: "npm:^1.0.0" - estree-util-is-identifier-name: "npm:^3.0.0" - hast-util-whitespace: "npm:^3.0.0" - mdast-util-mdx-expression: "npm:^2.0.0" - mdast-util-mdx-jsx: "npm:^3.0.0" - mdast-util-mdxjs-esm: "npm:^2.0.0" - property-information: "npm:^6.0.0" - space-separated-tokens: "npm:^2.0.0" - style-to-object: "npm:^1.0.0" - unist-util-position: "npm:^5.0.0" - vfile-message: "npm:^4.0.0" - checksum: 10c0/97761b2a48b8bc37da3d66cb4872312ae06c6e8f9be59e33b04b21fa5af371a39cb23b3ca165dd8e898ba1caf9b76399da35c957e68bad02a587a3a324216d56 - languageName: node - linkType: hard - -"hast-util-whitespace@npm:^3.0.0": - version: 3.0.0 - resolution: "hast-util-whitespace@npm:3.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - checksum: 10c0/b898bc9fe27884b272580d15260b6bbdabe239973a147e97fa98c45fa0ffec967a481aaa42291ec34fb56530dc2d484d473d7e2bae79f39c83f3762307edfea8 - languageName: node - linkType: hard - "he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -9827,13 +9681,6 @@ __metadata: languageName: node linkType: hard -"html-url-attributes@npm:^3.0.0": - version: 3.0.1 - resolution: "html-url-attributes@npm:3.0.1" - checksum: 10c0/496e4908aa8b77665f348b4b03521901794f648b8ac34a581022cd6f2c97934d5c910cd91bc6593bbf2994687549037bc2520fcdc769b31484f29ffdd402acd0 - languageName: node - linkType: hard - "http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -10159,13 +10006,6 @@ __metadata: languageName: node linkType: hard -"inline-style-parser@npm:0.2.4": - version: 0.2.4 - resolution: "inline-style-parser@npm:0.2.4" - checksum: 10c0/ddc0b210eaa03e0f98d677b9836242c583c7c6051e84ce0e704ae4626e7871c5b78f8e30853480218b446355745775df318d4f82d33087ff7e393245efa9a881 - languageName: node - linkType: hard - "inquirer@npm:8.2.6": version: 8.2.6 resolution: "inquirer@npm:8.2.6" @@ -10282,23 +10122,6 @@ __metadata: languageName: node linkType: hard -"is-alphabetical@npm:^2.0.0": - version: 2.0.1 - resolution: "is-alphabetical@npm:2.0.1" - checksum: 10c0/932367456f17237533fd1fc9fe179df77957271020b83ea31da50e5cc472d35ef6b5fb8147453274ffd251134472ce24eb6f8d8398d96dee98237cdb81a6c9a7 - languageName: node - linkType: hard - -"is-alphanumerical@npm:^2.0.0": - version: 2.0.1 - resolution: "is-alphanumerical@npm:2.0.1" - dependencies: - is-alphabetical: "npm:^2.0.0" - is-decimal: "npm:^2.0.0" - checksum: 10c0/4b35c42b18e40d41378293f82a3ecd9de77049b476f748db5697c297f686e1e05b072a6aaae2d16f54d2a57f85b00cbbe755c75f6d583d1c77d6657bd0feb5a2 - languageName: node - linkType: hard - "is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": version: 3.0.2 resolution: "is-array-buffer@npm:3.0.2" @@ -10430,13 +10253,6 @@ __metadata: languageName: node linkType: hard -"is-decimal@npm:^2.0.0": - version: 2.0.1 - resolution: "is-decimal@npm:2.0.1" - checksum: 10c0/8085dd66f7d82f9de818fba48b9e9c0429cb4291824e6c5f2622e96b9680b54a07a624cfc663b24148b8e853c62a1c987cfe8b0b5a13f5156991afaf6736e334 - languageName: node - linkType: hard - "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -10492,13 +10308,6 @@ __metadata: languageName: node linkType: hard -"is-hexadecimal@npm:^2.0.0": - version: 2.0.1 - resolution: "is-hexadecimal@npm:2.0.1" - checksum: 10c0/3eb60fe2f1e2bbc760b927dcad4d51eaa0c60138cf7fc671803f66353ad90c301605b502c7ea4c6bb0548e1c7e79dfd37b73b632652e3b76030bba603a7e9626 - languageName: node - linkType: hard - "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -10557,7 +10366,6 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0": "is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" @@ -11969,9 +11777,9 @@ __metadata: languageName: node linkType: hard -"logform@npm:^2.7.0": - version: 2.7.0 - resolution: "logform@npm:2.7.0" +"logform@npm:^2.6.0": + version: 2.6.1 + resolution: "logform@npm:2.6.1" dependencies: "@colors/colors": "npm:1.6.0" "@types/triple-beam": "npm:^1.3.2" @@ -12130,7 +11938,6 @@ __metadata: react: "npm:18.2.0" react-dom: "npm:18.3.1" react-markdown: "npm:^9.0.1" - react-markdown: "npm:^9.0.1" react-select: "npm:^5.8.0" react-toast-notifications: "npm:^2.5.1" react-transition-group: "npm:^4.4.5" @@ -12367,138 +12174,17 @@ __metadata: languageName: node linkType: hard -"mdast-util-from-markdown@npm:^2.0.0": - version: 2.0.2 - resolution: "mdast-util-from-markdown@npm:2.0.2" - dependencies: - "@types/mdast": "npm:^4.0.0" - "@types/unist": "npm:^3.0.0" - decode-named-character-reference: "npm:^1.0.0" - devlop: "npm:^1.0.0" - mdast-util-to-string: "npm:^4.0.0" - micromark: "npm:^4.0.0" - micromark-util-decode-numeric-character-reference: "npm:^2.0.0" - micromark-util-decode-string: "npm:^2.0.0" - micromark-util-normalize-identifier: "npm:^2.0.0" - micromark-util-symbol: "npm:^2.0.0" - micromark-util-types: "npm:^2.0.0" - unist-util-stringify-position: "npm:^4.0.0" - checksum: 10c0/76eb2bd2c6f7a0318087c73376b8af6d7561c1e16654e7667e640f391341096c56142618fd0ff62f6d39e5ab4895898b9789c84cd7cec2874359a437a0e1ff15 +"mdn-data@npm:2.0.28": + version: 2.0.28 + resolution: "mdn-data@npm:2.0.28" + checksum: 10c0/20000932bc4cd1cde9cba4e23f08cc4f816398af4c15ec81040ed25421d6bf07b5cf6b17095972577fb498988f40f4cb589e3169b9357bb436a12d8e07e5ea7b languageName: node linkType: hard -"mdast-util-mdx-expression@npm:^2.0.0": - version: 2.0.1 - resolution: "mdast-util-mdx-expression@npm:2.0.1" - dependencies: - "@types/estree-jsx": "npm:^1.0.0" - "@types/hast": "npm:^3.0.0" - "@types/mdast": "npm:^4.0.0" - devlop: "npm:^1.0.0" - mdast-util-from-markdown: "npm:^2.0.0" - mdast-util-to-markdown: "npm:^2.0.0" - checksum: 10c0/9a1e57940f66431f10312fa239096efa7627f375e7933b5d3162c0b5c1712a72ac87447aff2b6838d2bbd5c1311b188718cc90b33b67dc67a88550e0a6ef6183 - languageName: node - linkType: hard - -"mdast-util-mdx-jsx@npm:^3.0.0": - version: 3.1.3 - resolution: "mdast-util-mdx-jsx@npm:3.1.3" - dependencies: - "@types/estree-jsx": "npm:^1.0.0" - "@types/hast": "npm:^3.0.0" - "@types/mdast": "npm:^4.0.0" - "@types/unist": "npm:^3.0.0" - ccount: "npm:^2.0.0" - devlop: "npm:^1.1.0" - mdast-util-from-markdown: "npm:^2.0.0" - mdast-util-to-markdown: "npm:^2.0.0" - parse-entities: "npm:^4.0.0" - stringify-entities: "npm:^4.0.0" - unist-util-stringify-position: "npm:^4.0.0" - vfile-message: "npm:^4.0.0" - checksum: 10c0/1b0b64215efbbbb1ee9ba2a2b3e5f11859dada7dff162949a0d503aefbd75c0308f17d404df126c54acea06d2224905915b2cac2e6c999514c919bd963b8de24 - languageName: node - linkType: hard - -"mdast-util-mdxjs-esm@npm:^2.0.0": - version: 2.0.1 - resolution: "mdast-util-mdxjs-esm@npm:2.0.1" - dependencies: - "@types/estree-jsx": "npm:^1.0.0" - "@types/hast": "npm:^3.0.0" - "@types/mdast": "npm:^4.0.0" - devlop: "npm:^1.0.0" - mdast-util-from-markdown: "npm:^2.0.0" - mdast-util-to-markdown: "npm:^2.0.0" - checksum: 10c0/5bda92fc154141705af2b804a534d891f28dac6273186edf1a4c5e3f045d5b01dbcac7400d27aaf91b7e76e8dce007c7b2fdf136c11ea78206ad00bdf9db46bc - languageName: node - linkType: hard - -"mdast-util-phrasing@npm:^4.0.0": - version: 4.1.0 - resolution: "mdast-util-phrasing@npm:4.1.0" - dependencies: - "@types/mdast": "npm:^4.0.0" - unist-util-is: "npm:^6.0.0" - checksum: 10c0/bf6c31d51349aa3d74603d5e5a312f59f3f65662ed16c58017169a5fb0f84ca98578f626c5ee9e4aa3e0a81c996db8717096705521bddb4a0185f98c12c9b42f - languageName: node - linkType: hard - -"mdast-util-to-hast@npm:^13.0.0": - version: 13.2.0 - resolution: "mdast-util-to-hast@npm:13.2.0" - dependencies: - "@types/hast": "npm:^3.0.0" - "@types/mdast": "npm:^4.0.0" - "@ungap/structured-clone": "npm:^1.0.0" - devlop: "npm:^1.0.0" - micromark-util-sanitize-uri: "npm:^2.0.0" - trim-lines: "npm:^3.0.0" - unist-util-position: "npm:^5.0.0" - unist-util-visit: "npm:^5.0.0" - vfile: "npm:^6.0.0" - checksum: 10c0/9ee58def9287df8350cbb6f83ced90f9c088d72d4153780ad37854f87144cadc6f27b20347073b285173b1649b0723ddf0b9c78158608a804dcacb6bda6e1816 - languageName: node - linkType: hard - -"mdast-util-to-markdown@npm:^2.0.0": - version: 2.1.2 - resolution: "mdast-util-to-markdown@npm:2.1.2" - dependencies: - "@types/mdast": "npm:^4.0.0" - "@types/unist": "npm:^3.0.0" - longest-streak: "npm:^3.0.0" - mdast-util-phrasing: "npm:^4.0.0" - mdast-util-to-string: "npm:^4.0.0" - micromark-util-classify-character: "npm:^2.0.0" - micromark-util-decode-string: "npm:^2.0.0" - unist-util-visit: "npm:^5.0.0" - zwitch: "npm:^2.0.0" - checksum: 10c0/4649722a6099f12e797bd8d6469b2b43b44e526b5182862d9c7766a3431caad2c0112929c538a972f214e63c015395e5d3f54bd81d9ac1b16e6d8baaf582f749 - languageName: node - linkType: hard - -"mdast-util-to-string@npm:^4.0.0": - version: 4.0.0 - resolution: "mdast-util-to-string@npm:4.0.0" - dependencies: - "@types/mdast": "npm:^4.0.0" - checksum: 10c0/2d3c1af29bf3fe9c20f552ee9685af308002488f3b04b12fa66652c9718f66f41a32f8362aa2d770c3ff464c034860b41715902ada2306bb0a055146cef064d7 - languageName: node - linkType: hard - -"mdn-data@npm:2.0.28": - version: 2.0.28 - resolution: "mdn-data@npm:2.0.28" - checksum: 10c0/20000932bc4cd1cde9cba4e23f08cc4f816398af4c15ec81040ed25421d6bf07b5cf6b17095972577fb498988f40f4cb589e3169b9357bb436a12d8e07e5ea7b - languageName: node - linkType: hard - -"mdn-data@npm:2.0.30": - version: 2.0.30 - resolution: "mdn-data@npm:2.0.30" - checksum: 10c0/a2c472ea16cee3911ae742593715aa4c634eb3d4b9f1e6ada0902aa90df13dcbb7285d19435f3ff213ebaa3b2e0c0265c1eb0e3fb278fda7f8919f046a410cd9 +"mdn-data@npm:2.0.30": + version: 2.0.30 + resolution: "mdn-data@npm:2.0.30" + checksum: 10c0/a2c472ea16cee3911ae742593715aa4c634eb3d4b9f1e6ada0902aa90df13dcbb7285d19435f3ff213ebaa3b2e0c0265c1eb0e3fb278fda7f8919f046a410cd9 languageName: node linkType: hard @@ -14097,22 +13783,6 @@ __metadata: languageName: node linkType: hard -"parse-entities@npm:^4.0.0": - version: 4.0.1 - resolution: "parse-entities@npm:4.0.1" - dependencies: - "@types/unist": "npm:^2.0.0" - character-entities: "npm:^2.0.0" - character-entities-legacy: "npm:^3.0.0" - character-reference-invalid: "npm:^2.0.0" - decode-named-character-reference: "npm:^1.0.0" - is-alphanumerical: "npm:^2.0.0" - is-decimal: "npm:^2.0.0" - is-hexadecimal: "npm:^2.0.0" - checksum: 10c0/9dfa3b0dc43a913c2558c4bd625b1abcc2d6c6b38aa5724b141ed988471977248f7ad234eed57e1bc70b694dd15b0d710a04f66c2f7c096e35abd91962b7d926 - languageName: node - linkType: hard - "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -14773,13 +14443,6 @@ __metadata: languageName: node linkType: hard -"property-information@npm:^6.0.0": - version: 6.5.0 - resolution: "property-information@npm:6.5.0" - checksum: 10c0/981e0f9cc2e5acdb414a6fd48a99dd0fd3a4079e7a91ab41cf97a8534cf43e0e0bc1ffada6602a1b3d047a33db8b5fc2ef46d863507eda712d5ceedac443f0ef - languageName: node - linkType: hard - "proto-list@npm:~1.2.1": version: 1.2.4 resolution: "proto-list@npm:1.2.4" @@ -14965,27 +14628,6 @@ __metadata: languageName: node linkType: hard -"react-markdown@npm:^9.0.1": - version: 9.0.1 - resolution: "react-markdown@npm:9.0.1" - dependencies: - "@types/hast": "npm:^3.0.0" - devlop: "npm:^1.0.0" - hast-util-to-jsx-runtime: "npm:^2.0.0" - html-url-attributes: "npm:^3.0.0" - mdast-util-to-hast: "npm:^13.0.0" - remark-parse: "npm:^11.0.0" - remark-rehype: "npm:^11.0.0" - unified: "npm:^11.0.0" - unist-util-visit: "npm:^5.0.0" - vfile: "npm:^6.0.0" - peerDependencies: - "@types/react": ">=18" - react: ">=18" - checksum: 10c0/3a3895dbd56647bc864b8da46dd575e71a9e609eb1e43fea8e8e6209d86e208eddd5b07bf8d7b5306a194b405440760a8d134aebd5a4ce5dc7dee4299e84db96 - languageName: node - linkType: hard - "react-select@npm:^5.8.0": version: 5.8.0 resolution: "react-select@npm:5.8.0" @@ -15140,7 +14782,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0, readable-stream@npm:^3.6.2": +"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -15302,31 +14944,6 @@ __metadata: languageName: node linkType: hard -"remark-parse@npm:^11.0.0": - version: 11.0.0 - resolution: "remark-parse@npm:11.0.0" - dependencies: - "@types/mdast": "npm:^4.0.0" - mdast-util-from-markdown: "npm:^2.0.0" - micromark-util-types: "npm:^2.0.0" - unified: "npm:^11.0.0" - checksum: 10c0/6eed15ddb8680eca93e04fcb2d1b8db65a743dcc0023f5007265dda558b09db595a087f622062ccad2630953cd5cddc1055ce491d25a81f3317c858348a8dd38 - languageName: node - linkType: hard - -"remark-rehype@npm:^11.0.0": - version: 11.1.1 - resolution: "remark-rehype@npm:11.1.1" - dependencies: - "@types/hast": "npm:^3.0.0" - "@types/mdast": "npm:^4.0.0" - mdast-util-to-hast: "npm:^13.0.0" - unified: "npm:^11.0.0" - vfile: "npm:^6.0.0" - checksum: 10c0/68f986e8ee758d415e93babda2a0d89477c15b7c200edc23b8b1d914dd6e963c5fc151a11cbbbcfa7dd237367ff3ef86e302be90f31f37a17b0748668bd8c65b - languageName: node - linkType: hard - "repeat-string@npm:^1.6.1": version: 1.6.1 resolution: "repeat-string@npm:1.6.1" @@ -16200,13 +15817,6 @@ __metadata: languageName: node linkType: hard -"space-separated-tokens@npm:^2.0.0": - version: 2.0.2 - resolution: "space-separated-tokens@npm:2.0.2" - checksum: 10c0/6173e1d903dca41dcab6a2deed8b4caf61bd13b6d7af8374713500570aa929ff9414ae09a0519f4f8772df993300305a395d4871f35bc4ca72b6db57e1f30af8 - languageName: node - linkType: hard - "spawn-error-forwarder@npm:~1.0.0": version: 1.0.0 resolution: "spawn-error-forwarder@npm:1.0.0" @@ -16546,16 +16156,6 @@ __metadata: languageName: node linkType: hard -"stringify-entities@npm:^4.0.0": - version: 4.0.4 - resolution: "stringify-entities@npm:4.0.4" - dependencies: - character-entities-html4: "npm:^2.0.0" - character-entities-legacy: "npm:^3.0.0" - checksum: 10c0/537c7e656354192406bdd08157d759cd615724e9d0873602d2c9b2f6a5c0a8d0b1d73a0a08677848105c5eebac6db037b57c0b3a4ec86331117fa7319ed50448 - languageName: node - linkType: hard - "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -17084,13 +16684,6 @@ __metadata: languageName: node linkType: hard -"trim-lines@npm:^3.0.0": - version: 3.0.1 - resolution: "trim-lines@npm:3.0.1" - checksum: 10c0/3a1611fa9e52aa56a94c69951a9ea15b8aaad760eaa26c56a65330dc8adf99cb282fc07cc9d94968b7d4d88003beba220a7278bbe2063328eb23fb56f9509e94 - languageName: node - linkType: hard - "triple-beam@npm:^1.3.0, triple-beam@npm:^1.4.1": version: 1.4.1 resolution: "triple-beam@npm:1.4.1" @@ -17105,13 +16698,6 @@ __metadata: languageName: node linkType: hard -"trough@npm:^2.0.0": - version: 2.2.0 - resolution: "trough@npm:2.2.0" - checksum: 10c0/58b671fc970e7867a48514168894396dd94e6d9d6456aca427cc299c004fe67f35ed7172a36449086b2edde10e78a71a284ec0076809add6834fb8f857ccb9b0 - languageName: node - linkType: hard - "ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" @@ -17212,15 +16798,14 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths-webpack-plugin@npm:4.2.0": - version: 4.2.0 - resolution: "tsconfig-paths-webpack-plugin@npm:4.2.0" +"tsconfig-paths-webpack-plugin@npm:4.1.0": + version: 4.1.0 + resolution: "tsconfig-paths-webpack-plugin@npm:4.1.0" dependencies: chalk: "npm:^4.1.0" enhanced-resolve: "npm:^5.7.0" - tapable: "npm:^2.2.1" tsconfig-paths: "npm:^4.1.2" - checksum: 10c0/495c5ab7c1cb079217d98fe25d61def01e4bab38047c7ab25ec11876cc8c697ff01f43ea6c9933181875e51e49835407fc71afd92ea6cca1ba1bebf513dfb510 + checksum: 10c0/c030e867e70a3f6d1799fdffa209c3a35e1435ad99aac01946b9ebb0fa8208b7b508c1dfe8c8e13d6a2ef70c75b4db062fbfd3c1f3362c69b6c65ffd4a50e226 languageName: node linkType: hard @@ -17679,21 +17264,6 @@ __metadata: languageName: node linkType: hard -"unified@npm:^11.0.0": - version: 11.0.5 - resolution: "unified@npm:11.0.5" - dependencies: - "@types/unist": "npm:^3.0.0" - bail: "npm:^2.0.0" - devlop: "npm:^1.0.0" - extend: "npm:^3.0.0" - is-plain-obj: "npm:^4.0.0" - trough: "npm:^2.0.0" - vfile: "npm:^6.0.0" - checksum: 10c0/53c8e685f56d11d9d458a43e0e74328a4d6386af51c8ac37a3dcabec74ce5026da21250590d4aff6733ccd7dc203116aae2b0769abc18cdf9639a54ae528dfc9 - languageName: node - linkType: hard - "union@npm:~0.5.0": version: 0.5.0 resolution: "union@npm:0.5.0" @@ -17796,54 +17366,6 @@ __metadata: languageName: node linkType: hard -"unist-util-is@npm:^6.0.0": - version: 6.0.0 - resolution: "unist-util-is@npm:6.0.0" - dependencies: - "@types/unist": "npm:^3.0.0" - checksum: 10c0/9419352181eaa1da35eca9490634a6df70d2217815bb5938a04af3a662c12c5607a2f1014197ec9c426fbef18834f6371bfdb6f033040fa8aa3e965300d70e7e - languageName: node - linkType: hard - -"unist-util-position@npm:^5.0.0": - version: 5.0.0 - resolution: "unist-util-position@npm:5.0.0" - dependencies: - "@types/unist": "npm:^3.0.0" - checksum: 10c0/dde3b31e314c98f12b4dc6402f9722b2bf35e96a4f2d463233dd90d7cde2d4928074a7a11eff0a5eb1f4e200f27fc1557e0a64a7e8e4da6558542f251b1b7400 - languageName: node - linkType: hard - -"unist-util-stringify-position@npm:^4.0.0": - version: 4.0.0 - resolution: "unist-util-stringify-position@npm:4.0.0" - dependencies: - "@types/unist": "npm:^3.0.0" - checksum: 10c0/dfe1dbe79ba31f589108cb35e523f14029b6675d741a79dea7e5f3d098785045d556d5650ec6a8338af11e9e78d2a30df12b1ee86529cded1098da3f17ee999e - languageName: node - linkType: hard - -"unist-util-visit-parents@npm:^6.0.0": - version: 6.0.1 - resolution: "unist-util-visit-parents@npm:6.0.1" - dependencies: - "@types/unist": "npm:^3.0.0" - unist-util-is: "npm:^6.0.0" - checksum: 10c0/51b1a5b0aa23c97d3e03e7288f0cdf136974df2217d0999d3de573c05001ef04cccd246f51d2ebdfb9e8b0ed2704451ad90ba85ae3f3177cf9772cef67f56206 - languageName: node - linkType: hard - -"unist-util-visit@npm:^5.0.0": - version: 5.0.0 - resolution: "unist-util-visit@npm:5.0.0" - dependencies: - "@types/unist": "npm:^3.0.0" - unist-util-is: "npm:^6.0.0" - unist-util-visit-parents: "npm:^6.0.0" - checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5 - languageName: node - linkType: hard - "universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": version: 7.0.2 resolution: "universal-user-agent@npm:7.0.2" @@ -18053,26 +17575,6 @@ __metadata: languageName: node linkType: hard -"vfile-message@npm:^4.0.0": - version: 4.0.2 - resolution: "vfile-message@npm:4.0.2" - dependencies: - "@types/unist": "npm:^3.0.0" - unist-util-stringify-position: "npm:^4.0.0" - checksum: 10c0/07671d239a075f888b78f318bc1d54de02799db4e9dce322474e67c35d75ac4a5ac0aaf37b18801d91c9f8152974ea39678aa72d7198758b07f3ba04fb7d7514 - languageName: node - linkType: hard - -"vfile@npm:^6.0.0": - version: 6.0.3 - resolution: "vfile@npm:6.0.3" - dependencies: - "@types/unist": "npm:^3.0.0" - vfile-message: "npm:^4.0.0" - checksum: 10c0/e5d9eb4810623f23758cfc2205323e33552fb5972e5c2e6587babe08fe4d24859866277404fb9e2a20afb71013860d96ec806cb257536ae463c87d70022ab9ef - languageName: node - linkType: hard - "walk-up-path@npm:^3.0.1": version: 3.0.1 resolution: "walk-up-path@npm:3.0.1" @@ -18326,33 +17828,22 @@ __metadata: languageName: node linkType: hard -"winston-transport@npm:^4.9.0": - version: 4.9.0 - resolution: "winston-transport@npm:4.9.0" - dependencies: - logform: "npm:^2.7.0" - readable-stream: "npm:^3.6.2" - triple-beam: "npm:^1.3.0" - checksum: 10c0/e2990a172e754dbf27e7823772214a22dc8312f7ec9cfba831e5ef30a5d5528792e5ea8f083c7387ccfc5b2af20e3691f64738546c8869086110a26f98671095 - languageName: node - linkType: hard - "winston@npm:^3.16.0": - version: 3.17.0 - resolution: "winston@npm:3.17.0" + version: 3.16.0 + resolution: "winston@npm:3.16.0" dependencies: "@colors/colors": "npm:^1.6.0" "@dabh/diagnostics": "npm:^2.0.2" async: "npm:^3.2.3" is-stream: "npm:^2.0.0" - logform: "npm:^2.7.0" + logform: "npm:^2.6.0" one-time: "npm:^1.0.0" readable-stream: "npm:^3.4.0" safe-stable-stringify: "npm:^2.3.1" stack-trace: "npm:0.0.x" triple-beam: "npm:^1.3.0" - winston-transport: "npm:^4.9.0" - checksum: 10c0/ec8eaeac9a72b2598aedbff50b7dac82ce374a400ed92e7e705d7274426b48edcb25507d78cff318187c4fb27d642a0e2a39c57b6badc9af8e09d4a40636a5f7 + winston-transport: "npm:^4.7.0" + checksum: 10c0/306e971da56c8162d5ad0b619da2c48a6c1a331f739f87c2dba37810430c00b99d466262f16490bcca65aa37f3f4339e581ef9ac110a2b4f5223edcb2f5d67b9 languageName: node linkType: hard @@ -18519,11 +18010,11 @@ __metadata: linkType: hard "yaml@npm:^2.6.0": - version: 2.6.1 - resolution: "yaml@npm:2.6.1" + version: 2.6.0 + resolution: "yaml@npm:2.6.0" bin: yaml: bin.mjs - checksum: 10c0/aebf07f61c72b38c74d2b60c3a3ccf89ee4da45bcd94b2bfb7899ba07a5257625a7c9f717c65a6fc511563d48001e01deb1d9e55f0133f3e2edf86039c8c1be7 + checksum: 10c0/9e74cdb91cc35512a1c41f5ce509b0e93cc1d00eff0901e4ba831ee75a71ddf0845702adcd6f4ee6c811319eb9b59653248462ab94fa021ab855543a75396ceb languageName: node linkType: hard @@ -18598,10 +18089,3 @@ __metadata: checksum: 10c0/3c7830cdd3378667e058ffdb4cf2bb78ac5711214e2725900873accb23f3dfe5f9e7e5a06dcdc5f29605da976fc45c26d9a13ca334d6eea2245a15e77b8fc06e languageName: node linkType: hard - -"zwitch@npm:^2.0.0": - version: 2.0.4 - resolution: "zwitch@npm:2.0.4" - checksum: 10c0/3c7830cdd3378667e058ffdb4cf2bb78ac5711214e2725900873accb23f3dfe5f9e7e5a06dcdc5f29605da976fc45c26d9a13ca334d6eea2245a15e77b8fc06e - languageName: node - linkType: hard