mirror of
https://github.com/pomerium/pomerium.git
synced 2025-07-16 08:16:18 +02:00
core/ui: improve frontend build size (#5109)
* core/ui: improve frontend build size * remove luxon * add lodash * remove console.log * only generate sourcemap when watching
This commit is contained in:
parent
d225288ab3
commit
ab388211f2
36 changed files with 358 additions and 297 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -41,7 +41,6 @@ _testmain.go
|
|||
# Without this, the *.[568vq] above ignores this folder.
|
||||
!**/graphrbac/1.6
|
||||
|
||||
|
||||
.DS_Store
|
||||
.idea
|
||||
.vscode
|
||||
|
@ -59,7 +58,6 @@ tags
|
|||
*.ipr
|
||||
*.iml
|
||||
|
||||
|
||||
# dependencies
|
||||
ui/node_modules
|
||||
ui/bower_components
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
"@fontsource/dm-sans": "^5.0.13",
|
||||
"@mui/icons-material": "^5.14.9",
|
||||
"@mui/material": "^5.4.0",
|
||||
"luxon": "^2.5.2",
|
||||
"lodash": "^4.17.21",
|
||||
"markdown-to-jsx": "^7.2.1",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
|
@ -37,13 +37,13 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.2.1",
|
||||
"@types/luxon": "^2.0.9",
|
||||
"@types/node": "^17.0.14",
|
||||
"@types/lodash": "^4.17.1",
|
||||
"@types/node": "^20.12.11",
|
||||
"@types/react": "^17.0.34",
|
||||
"@types/react-dom": "^17.0.11",
|
||||
"@typescript-eslint/eslint-plugin": "^5.10.2",
|
||||
"@typescript-eslint/parser": "^5.59.11",
|
||||
"esbuild": "^0.13.12",
|
||||
"esbuild": "^0.21.1",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-react": "^7.28.0",
|
||||
|
|
|
@ -1,16 +1,28 @@
|
|||
import { build } from "esbuild";
|
||||
/// <reference types="node" />
|
||||
import { BuildOptions, build, context } from "esbuild";
|
||||
|
||||
build({
|
||||
entryPoints: ["src/index.tsx"],
|
||||
bundle: true,
|
||||
outfile: "dist/index.js",
|
||||
sourcemap: "inline",
|
||||
watch: process.argv.includes("--watch"),
|
||||
minify: !process.argv.includes("--watch"),
|
||||
logLevel: "info",
|
||||
loader: {
|
||||
".svg": "dataurl",
|
||||
".woff": "dataurl",
|
||||
".woff2": "dataurl",
|
||||
},
|
||||
});
|
||||
async function run() {
|
||||
const watching = process.argv.includes("--watch");
|
||||
|
||||
const cfg: BuildOptions = {
|
||||
entryPoints: ["src/index.tsx"],
|
||||
bundle: true,
|
||||
outdir: "dist",
|
||||
sourcemap: watching ? "inline" : false,
|
||||
minify: !watching,
|
||||
logLevel: "info",
|
||||
loader: {
|
||||
".svg": "dataurl",
|
||||
".woff": "dataurl",
|
||||
".woff2": "dataurl",
|
||||
},
|
||||
};
|
||||
|
||||
if (watching) {
|
||||
await (await context(cfg)).watch();
|
||||
} else {
|
||||
await build(cfg);
|
||||
}
|
||||
}
|
||||
|
||||
run();
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import Box from "@mui/material/Box";
|
||||
import CssBaseline from "@mui/material/CssBaseline";
|
||||
import { ThemeProvider } from "@mui/material/styles";
|
||||
import { Box, CssBaseline, ThemeProvider } from "@mui/material";
|
||||
import React, { FC, useLayoutEffect } from "react";
|
||||
|
||||
import ErrorPage from "./components/ErrorPage";
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
import Alert, { AlertColor } from "@mui/material/Alert";
|
||||
import Dialog, { DialogProps } from "@mui/material/Dialog";
|
||||
import DialogActions from "@mui/material/DialogActions";
|
||||
import DialogContent from "@mui/material/DialogContent";
|
||||
import DialogTitle from "@mui/material/DialogTitle";
|
||||
import {
|
||||
Alert,
|
||||
AlertColor,
|
||||
Dialog,
|
||||
DialogActions,
|
||||
DialogContent,
|
||||
DialogProps,
|
||||
DialogTitle,
|
||||
} from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
export type AlertDialogProps = DialogProps & {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import MuiAvatar from "@mui/material/Avatar";
|
||||
import { isArray } from "lodash";
|
||||
import { Avatar as MuiAvatar } from "@mui/material";
|
||||
import isArray from "lodash/isArray";
|
||||
import React from "react";
|
||||
import { User } from "react-feather";
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import TableCell from "@mui/material/TableCell";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import { isArray, startCase } from "lodash";
|
||||
import { TableCell, TableRow } from "@mui/material";
|
||||
import isArray from "lodash/isArray";
|
||||
import startCase from "lodash/startCase";
|
||||
import React, { FC } from "react";
|
||||
|
||||
import ClaimValue from "./ClaimValue";
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import IDField from "./IDField";
|
||||
import { DateTime } from "luxon";
|
||||
import React, { FC } from "react";
|
||||
|
||||
import IDField from "./IDField";
|
||||
|
||||
const unixSecondTimestampFields = new Set(["exp", "iat", "nbf", "auth_time"]);
|
||||
|
||||
const idFields = new Set(["groups", "jti", "oid", "tid", "wids"]);
|
||||
|
@ -12,7 +12,7 @@ type ClaimValueProps = {
|
|||
};
|
||||
const ClaimValue: FC<ClaimValueProps> = ({ claimKey, claimValue }) => {
|
||||
if (unixSecondTimestampFields.has(claimKey)) {
|
||||
return <>{DateTime.fromMillis((claimValue as number) * 1000).toISO()}</>;
|
||||
return <>{new Date((claimValue as number) * 1000).toISOString()}</>;
|
||||
}
|
||||
|
||||
if (idFields.has(claimKey)) {
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
import IDField from "./IDField";
|
||||
import Alert from "@mui/material/Alert";
|
||||
import Button from "@mui/material/Button";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import {
|
||||
Alert,
|
||||
Button,
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TableRow,
|
||||
} from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
import IDField from "./IDField";
|
||||
|
||||
export type DeviceCredentialsTableProps = {
|
||||
csrfToken: string;
|
||||
ids: string[];
|
||||
|
@ -17,7 +20,7 @@ export type DeviceCredentialsTableProps = {
|
|||
export const DeviceCredentialsTable: FC<DeviceCredentialsTableProps> = ({
|
||||
csrfToken,
|
||||
ids,
|
||||
webAuthnUrl
|
||||
webAuthnUrl,
|
||||
}) => {
|
||||
return (
|
||||
<TableContainer>
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
import { ListItemProps, TableCell } from "@mui/material";
|
||||
import Alert from "@mui/material/Alert";
|
||||
import AlertTitle from "@mui/material/AlertTitle";
|
||||
import Box from "@mui/material/Box";
|
||||
import Container from "@mui/material/Container";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import Stack from "@mui/material/Stack";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import {
|
||||
Alert,
|
||||
AlertTitle,
|
||||
Box,
|
||||
Container,
|
||||
ListItemProps,
|
||||
Paper,
|
||||
Stack,
|
||||
Table,
|
||||
TableCell,
|
||||
TableHead,
|
||||
TableRow,
|
||||
Typography,
|
||||
} from "@mui/material";
|
||||
import Markdown from "markdown-to-jsx";
|
||||
import React, { FC } from "react";
|
||||
import { CheckCircle, MinusCircle, XCircle } from "react-feather";
|
||||
|
@ -20,7 +23,7 @@ type PolicyEvaluationTraceDetailsProps = {
|
|||
trace: PolicyEvaluationTrace;
|
||||
} & ListItemProps;
|
||||
const PolicyEvaluationTraceDetails: FC<PolicyEvaluationTraceDetailsProps> = ({
|
||||
trace
|
||||
trace,
|
||||
}) => {
|
||||
return (
|
||||
<TableRow>
|
||||
|
@ -58,10 +61,11 @@ export const ErrorPage: FC<ErrorPageProps> = ({ data }) => {
|
|||
<Paper sx={{ overflow: "hidden" }}>
|
||||
<Stack>
|
||||
<Box sx={{ padding: "16px" }}>
|
||||
<Alert severity={status < 200 || status >= 300 ? "error" : "success"}>
|
||||
<Alert
|
||||
severity={status < 200 || status >= 300 ? "error" : "success"}
|
||||
>
|
||||
<AlertTitle>
|
||||
{status}{" "}
|
||||
{data?.statusText || "Internal Server Error"}
|
||||
{status} {data?.statusText || "Internal Server Error"}
|
||||
</AlertTitle>
|
||||
{data?.description ? (
|
||||
<Markdown>{data.description}</Markdown>
|
||||
|
|
|
@ -6,7 +6,7 @@ const ExperimentalIcon = createSvgIcon(
|
|||
<path
|
||||
d="M20.5 19.34 16.14 12a1 1 0 0 1-.14-.51V2.5a.5.5 0 0 1 .5-.5H18a1 1 0 0 0 0-2H6a1 1 0 0 0 0 2h1.5a.5.5 0 0 1 .5.5v9a1 1 0 0 1-.14.51l-4.32 7.27A3 3 0 0 0 6 24h12a3 3 0 0 0 2.49-4.66ZM8.67 16a.5.5 0 0 1-.43-.25.5.5 0 0 1 0-.5l1.62-2.74A1 1 0 0 0 10 12V2.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v2.75a.5.5 0 0 1-.5.5h-1.32a.75.75 0 0 0 0 1.5h1.32a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1.32a.75.75 0 0 0 0 1.5h1.32a.5.5 0 0 1 .5.5V12a1 1 0 0 0 .14.51l1.61 2.74a.47.47 0 0 1 0 .5.52.52 0 0 1-.44.25Zm.82 5.82a1.5 1.5 0 1 1 1.5-1.5 1.5 1.5 0 0 1-1.5 1.5Zm4.22-3a1 1 0 0 1 0-2 1 1 0 0 1 0 2Zm2.49 3.09a1 1 0 1 1 1-1 1 1 0 0 1-1 .98Z"
|
||||
style={{
|
||||
fill: "#5e6a82"
|
||||
fill: "#5e6a82",
|
||||
}}
|
||||
transform="scale(.83333)"
|
||||
/>
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import AppBar from "@mui/material/AppBar";
|
||||
import Box from "@mui/material/Box";
|
||||
import Stack from "@mui/material/Stack";
|
||||
import { AppBar, Box, Stack } from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
import { FooterLink } from "./FooterLink";
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import * as React from 'react';
|
||||
import { styled } from '@mui/system';
|
||||
import {Link} from "@mui/material";
|
||||
import { Link } from "@mui/material";
|
||||
import { styled } from "@mui/system";
|
||||
import * as React from "react";
|
||||
|
||||
export const FooterLink = styled(Link)(({ theme }) => ({
|
||||
fontSize: '1.25rem',
|
||||
fontSize: "1.25rem",
|
||||
fontWeight: `bold`,
|
||||
color: theme.palette.background.default,
|
||||
}));
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
import Alert from "@mui/material/Alert";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import {
|
||||
Alert,
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TableRow,
|
||||
} from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
import { Group } from "../types";
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
import {
|
||||
AppBar,
|
||||
Box,
|
||||
Drawer,
|
||||
IconButton,
|
||||
Menu,
|
||||
MenuItem,
|
||||
Toolbar,
|
||||
styled,
|
||||
useMediaQuery,
|
||||
useTheme,
|
||||
} from "@mui/material";
|
||||
import AppBar from "@mui/material/AppBar";
|
||||
import Box from "@mui/material/Box";
|
||||
import Toolbar from "@mui/material/Toolbar";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import styled from "@mui/material/styles/styled";
|
||||
import { get } from "lodash";
|
||||
import get from "lodash/get";
|
||||
import React, { FC, useState } from "react";
|
||||
import { ChevronLeft, ChevronRight, Menu as MenuIcon } from "react-feather";
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import Paper from "@mui/material/Paper";
|
||||
import Stack from "@mui/material/Stack";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import { Paper, Stack, Typography } from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
export type HeroSectionProps = {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import Box from "@mui/material/Box";
|
||||
import { Box } from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
export type IDFieldProps = {
|
||||
|
|
|
@ -13,7 +13,7 @@ const JwtIcon = createSvgIcon(
|
|||
stroke: "none",
|
||||
fillRule: "evenodd",
|
||||
fill: "#fff",
|
||||
fillOpacity: 1
|
||||
fillOpacity: 1,
|
||||
}}
|
||||
d="M8.586 4.04 8.57.042H6.34l.015 3.996L7.47 5.57ZM6.355 10.887v4.008h2.23v-4.008L7.47 9.355Zm0 0"
|
||||
/>
|
||||
|
@ -22,7 +22,7 @@ const JwtIcon = createSvgIcon(
|
|||
stroke: "none",
|
||||
fillRule: "evenodd",
|
||||
fill: "#00f2e6",
|
||||
fillOpacity: 1
|
||||
fillOpacity: 1,
|
||||
}}
|
||||
d="m8.586 10.887 2.344 3.238 1.797-1.309-2.344-3.238L8.586 9ZM6.355 4.04 3.996.8 2.2 2.11l2.344 3.238 1.812.578Zm0 0"
|
||||
/>
|
||||
|
@ -31,7 +31,7 @@ const JwtIcon = createSvgIcon(
|
|||
stroke: "none",
|
||||
fillRule: "evenodd",
|
||||
fill: "#00b9f1",
|
||||
fillOpacity: 1
|
||||
fillOpacity: 1,
|
||||
}}
|
||||
d="m4.543 5.348-3.8-1.235-.684 2.11 3.804 1.246 1.797-.594ZM9.266 8.05l1.117 1.528 3.8 1.235.684-2.11-3.805-1.234Zm0 0"
|
||||
/>
|
||||
|
@ -40,7 +40,7 @@ const JwtIcon = createSvgIcon(
|
|||
stroke: "none",
|
||||
fillRule: "evenodd",
|
||||
fill: "#d63aff",
|
||||
fillOpacity: 1
|
||||
fillOpacity: 1,
|
||||
}}
|
||||
d="m11.063 7.469 3.804-1.246-.683-2.11-3.801 1.235-1.117 1.527ZM3.863 7.469.06 8.703l.683 2.11 3.801-1.235L5.66 8.051Zm0 0"
|
||||
/>
|
||||
|
@ -49,7 +49,7 @@ const JwtIcon = createSvgIcon(
|
|||
stroke: "none",
|
||||
fillRule: "evenodd",
|
||||
fill: "#fb015b",
|
||||
fillOpacity: 1
|
||||
fillOpacity: 1,
|
||||
}}
|
||||
d="m4.543 9.578-2.344 3.238 1.797 1.309 2.36-3.238V9ZM10.383 5.348l2.344-3.239L10.93.801 8.586 4.039v1.887Zm0 0"
|
||||
/>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import React from "react";
|
||||
import type { FC } from "react";
|
||||
import React, { FC } from "react";
|
||||
|
||||
const Logo: FC<{src: string}> = ({src}) => {
|
||||
const Logo: FC<{ src: string }> = ({ src }) => {
|
||||
return <img alt="Logo" src={src} height="30px" />;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import SvgIcon, { SvgIconProps } from "@mui/material/SvgIcon";
|
||||
import { SvgIcon, SvgIconProps } from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
import { User } from "react-feather";
|
||||
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
import SectionFooter from "./SectionFooter";
|
||||
import Box from "@mui/material/Box";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import Stack from "@mui/material/Stack";
|
||||
import Toolbar from "@mui/material/Toolbar";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import { Box, Paper, Stack, Toolbar, Typography } from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
import SectionFooter from "./SectionFooter";
|
||||
|
||||
export type SectionProps = React.PropsWithChildren<{
|
||||
title: React.ReactNode;
|
||||
icon?: React.ReactNode;
|
||||
|
@ -15,16 +12,16 @@ export const Section: FC<SectionProps> = ({
|
|||
title,
|
||||
icon,
|
||||
children,
|
||||
footer
|
||||
footer,
|
||||
}) => {
|
||||
return (
|
||||
<Paper sx={{ overflow: "hidden" }}>
|
||||
<Stack>
|
||||
<Toolbar>
|
||||
<Typography variant="h4">
|
||||
{title}
|
||||
</Typography>
|
||||
{!!icon && (<Box sx={{marginLeft: (theme) => theme.spacing(3)}}>{icon}</Box>)}
|
||||
<Typography variant="h4">{title}</Typography>
|
||||
{!!icon && (
|
||||
<Box sx={{ marginLeft: (theme) => theme.spacing(3) }}>{icon}</Box>
|
||||
)}
|
||||
</Toolbar>
|
||||
<Box sx={{ padding: 3, paddingTop: 0 }}>{children}</Box>
|
||||
{footer ? (
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
import Box from "@mui/material/Box";
|
||||
import styled from "@mui/material/styles/styled";
|
||||
import { Box, styled } from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
export const SectionFooter = styled(Box)(({ theme }) => ({
|
||||
backgroundColor: theme.palette.grey[100],
|
||||
padding: theme.spacing(3)
|
||||
padding: theme.spacing(3),
|
||||
}));
|
||||
export default SectionFooter;
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
import Alert from "@mui/material/Alert";
|
||||
import AlertTitle from "@mui/material/AlertTitle";
|
||||
import Stack from "@mui/material/Stack";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import {
|
||||
Alert,
|
||||
AlertTitle,
|
||||
Stack,
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableRow,
|
||||
} from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
import { Profile, Session } from "../types";
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
import Box from "@mui/material/Box";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import Stack from "@mui/material/Stack";
|
||||
import Toolbar from "@mui/material/Toolbar";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import { Box, Paper, Stack, Toolbar, Typography } from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
|
||||
import DeviceCredentialsTable from "../components/DeviceCredentialsTable";
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
import Button from "@mui/material/Button";
|
||||
import Container from "@mui/material/Container";
|
||||
import Dialog from "@mui/material/Dialog";
|
||||
import DialogActions from "@mui/material/DialogActions";
|
||||
import DialogContent from "@mui/material/DialogContent";
|
||||
import DialogContentText from "@mui/material/DialogContentText";
|
||||
import DialogTitle from "@mui/material/DialogTitle";
|
||||
import styled from "@mui/material/styles/styled";
|
||||
import {
|
||||
Button,
|
||||
Container,
|
||||
Dialog,
|
||||
DialogActions,
|
||||
DialogContent,
|
||||
DialogContentText,
|
||||
DialogTitle,
|
||||
} from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
import { SignOutConfirmPageData } from "src/types";
|
||||
|
||||
import { SignOutConfirmPageData } from "../types";
|
||||
|
||||
type SignOutConfirmPageProps = {
|
||||
data: SignOutConfirmPageData;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { Alert } from "@mui/material";
|
||||
import Container from "@mui/material/Container";
|
||||
import { Alert, Container } from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
import { SignedOutPageData } from "src/types";
|
||||
|
||||
import { SignedOutPageData } from "../types";
|
||||
|
||||
type SignedOutPageProps = {
|
||||
data: SignedOutPageData;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import styled from "@mui/material/styles/styled";
|
||||
import {BaseCSSProperties} from "@mui/material/styles/createMixins";
|
||||
import { styled } from "@mui/material";
|
||||
import { BaseCSSProperties } from "@mui/material/styles/createMixins";
|
||||
|
||||
export const ToolbarOffset = styled('div')(({ theme }) => ({
|
||||
export const ToolbarOffset = styled("div")(({ theme }) => ({
|
||||
...(theme.mixins.toolbar as BaseCSSProperties),
|
||||
}));
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
import {
|
||||
Button,
|
||||
Container,
|
||||
Dialog,
|
||||
DialogActions,
|
||||
DialogContent,
|
||||
DialogContentText,
|
||||
DialogTitle,
|
||||
Drawer,
|
||||
Stack,
|
||||
useMediaQuery,
|
||||
useTheme,
|
||||
} from "@mui/material";
|
||||
import Container from "@mui/material/Container";
|
||||
import Stack from "@mui/material/Stack";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import React, { FC, useContext, useEffect, useState } from "react";
|
||||
import { UserInfoData } from "src/types";
|
||||
|
||||
import { SubpageContext } from "../context/Subpage";
|
||||
import { UserInfoData } from "../types";
|
||||
import GroupDetails from "./GroupDetails";
|
||||
import SessionDetails from "./SessionDetails";
|
||||
import SessionDeviceCredentials from "./SessionDeviceCredentials";
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
import React, {FC, ReactNode, useContext} from "react";
|
||||
import {SubpageContext} from "../context/Subpage";
|
||||
import {List, ListItemButton, ListItemIcon, ListItemText} from "@mui/material";
|
||||
import {User, Users} from "react-feather";
|
||||
import {Devices} from "@mui/icons-material";
|
||||
import { Devices } from "@mui/icons-material";
|
||||
import {
|
||||
List,
|
||||
ListItemButton,
|
||||
ListItemIcon,
|
||||
ListItemText,
|
||||
} from "@mui/material";
|
||||
import React, { FC, ReactNode, useContext } from "react";
|
||||
import { User, Users } from "react-feather";
|
||||
|
||||
import { SubpageContext } from "../context/Subpage";
|
||||
|
||||
export interface Subpage {
|
||||
icon: ReactNode;
|
||||
|
@ -11,45 +17,44 @@ export interface Subpage {
|
|||
|
||||
export const sectionList: Subpage[] = [
|
||||
{
|
||||
title: 'User',
|
||||
icon: <User />
|
||||
title: "User",
|
||||
icon: <User />,
|
||||
},
|
||||
{
|
||||
title: 'Groups Info',
|
||||
icon: <Users />
|
||||
title: "Groups Info",
|
||||
icon: <Users />,
|
||||
},
|
||||
{
|
||||
title: 'Devices Info',
|
||||
icon: <Devices />
|
||||
title: "Devices Info",
|
||||
icon: <Devices />,
|
||||
},
|
||||
]
|
||||
];
|
||||
type UserSidebarContent = {
|
||||
close: () => void | null;
|
||||
};
|
||||
export const UserSidebarContent:FC<UserSidebarContent> = ({close}:UserSidebarContent):JSX.Element => {
|
||||
|
||||
export const UserSidebarContent: FC<UserSidebarContent> = ({
|
||||
close,
|
||||
}: UserSidebarContent): JSX.Element => {
|
||||
const info = useContext(SubpageContext);
|
||||
|
||||
return (
|
||||
<List>
|
||||
{sectionList.map(({title, icon}) => {
|
||||
{sectionList.map(({ title, icon }) => {
|
||||
return (
|
||||
<ListItemButton
|
||||
key={'tab ' + title}
|
||||
key={"tab " + title}
|
||||
selected={title === info.subpage}
|
||||
onClick={() => {
|
||||
info.setSubpage(title)
|
||||
info.setSubpage(title);
|
||||
!!close && close();
|
||||
}}
|
||||
>
|
||||
<ListItemIcon>
|
||||
{icon}
|
||||
</ListItemIcon>
|
||||
<ListItemIcon>{icon}</ListItemIcon>
|
||||
<ListItemText primary={title} />
|
||||
</ListItemButton>
|
||||
)
|
||||
);
|
||||
})}
|
||||
</List>
|
||||
);
|
||||
}
|
||||
};
|
||||
export default UserSidebarContent;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import React, { FC, useRef, useState } from "react";
|
||||
import React, { FC } from "react";
|
||||
|
||||
import { WebAuthnRequestOptions } from "../types";
|
||||
import { decode, encodeUrl } from "../util/base64";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import Button, { ButtonProps } from "@mui/material/Button";
|
||||
import { Button, ButtonProps } from "@mui/material";
|
||||
import React, { FC, useRef, useState } from "react";
|
||||
|
||||
import AlertDialog from "./AlertDialog";
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Stack from "@mui/material/Stack";
|
||||
import { Stack } from "@mui/material";
|
||||
import React, { FC } from "react";
|
||||
import { WebAuthnRegistrationPageData } from "src/types";
|
||||
|
||||
import { WebAuthnRegistrationPageData } from "../types";
|
||||
import ExperimentalIcon from "./ExperimentalIcon";
|
||||
import Section from "./Section";
|
||||
import WebAuthnAuthenticateButton from "./WebAuthnAuthenticateButton";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import React, { createContext, FC, useState } from "react";
|
||||
import React, { FC, createContext, useState } from "react";
|
||||
|
||||
export interface SubpageContextValue {
|
||||
subpage: string;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import App from "./App";
|
||||
import React from "react";
|
||||
import ReactDOM from "react-dom";
|
||||
|
||||
import App from "./App";
|
||||
|
||||
ReactDOM.render(<App />, document.getElementById("root"));
|
||||
|
|
|
@ -1,13 +1,18 @@
|
|||
import { softShadows } from "./shadows";
|
||||
import "@fontsource/dm-mono";
|
||||
import "@fontsource/dm-sans";
|
||||
import common from "@mui/material/colors/common";
|
||||
import muiCreateTheme, {
|
||||
import {
|
||||
Theme as MuiTheme,
|
||||
} from "@mui/material/styles/createTheme";
|
||||
createTheme as muiCreateTheme,
|
||||
} from "@mui/material";
|
||||
import common from "@mui/material/colors/common";
|
||||
|
||||
export const createTheme = (primaryColor: string, secondaryColor: string): MuiTheme => {
|
||||
return muiCreateTheme({
|
||||
import { softShadows } from "./shadows";
|
||||
|
||||
export const createTheme = (
|
||||
primaryColor: string,
|
||||
secondaryColor: string
|
||||
): MuiTheme => {
|
||||
return muiCreateTheme({
|
||||
components: {
|
||||
MuiBackdrop: {
|
||||
styleOverrides: {
|
||||
|
@ -117,7 +122,7 @@ export const createTheme = (primaryColor: string, secondaryColor: string): MuiTh
|
|||
},
|
||||
shadows: softShadows,
|
||||
shape: {
|
||||
borderRadius: "16px",
|
||||
borderRadius: 16,
|
||||
},
|
||||
typography: {
|
||||
fontFamily: [
|
||||
|
@ -159,4 +164,4 @@ export const createTheme = (primaryColor: string, secondaryColor: string): MuiTh
|
|||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
276
ui/yarn.lock
276
ui/yarn.lock
|
@ -360,6 +360,121 @@
|
|||
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6"
|
||||
integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==
|
||||
|
||||
"@esbuild/aix-ppc64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.1.tgz#044268dc9ca4dc67f8d4aad8f51cfb894bfd7114"
|
||||
integrity sha512-O7yppwipkXvnEPjzkSXJRk2g4bS8sUx9p9oXHq9MU/U7lxUzZVsnFZMDTmeeX9bfQxrFcvOacl/ENgOh0WP9pA==
|
||||
|
||||
"@esbuild/android-arm64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.1.tgz#76aacd934449e541f05b66d5ec8cbff96ec2ae81"
|
||||
integrity sha512-jXhccq6es+onw7x8MxoFnm820mz7sGa9J14kLADclmiEUH4fyj+FjR6t0M93RgtlI/awHWhtF0Wgfhqgf9gDZA==
|
||||
|
||||
"@esbuild/android-arm@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.1.tgz#8247c5aef933a212bca261290f6e43a9dca07cc5"
|
||||
integrity sha512-hh3jKWikdnTtHCglDAeVO3Oyh8MaH8xZUaWMiCCvJ9/c3NtPqZq+CACOlGTxhddypXhl+8B45SeceYBfB/e8Ow==
|
||||
|
||||
"@esbuild/android-x64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.1.tgz#80cbfa35412299edefbc4ab78064f0b66e448008"
|
||||
integrity sha512-NPObtlBh4jQHE01gJeucqEhdoD/4ya2owSIS8lZYS58aR0x7oZo9lB2lVFxgTANSa5MGCBeoQtr+yA9oKCGPvA==
|
||||
|
||||
"@esbuild/darwin-arm64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.1.tgz#154167fb9e54017dac4b343f8e5e25c9d9324036"
|
||||
integrity sha512-BLT7TDzqsVlQRmJfO/FirzKlzmDpBWwmCUlyggfzUwg1cAxVxeA4O6b1XkMInlxISdfPAOunV9zXjvh5x99Heg==
|
||||
|
||||
"@esbuild/darwin-x64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.1.tgz#db971502c9fa204906b89e489810c902bf6d9afb"
|
||||
integrity sha512-D3h3wBQmeS/vp93O4B+SWsXB8HvRDwMyhTNhBd8yMbh5wN/2pPWRW5o/hM3EKgk9bdKd9594lMGoTCTiglQGRQ==
|
||||
|
||||
"@esbuild/freebsd-arm64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.1.tgz#f0f3bc20c23af999bd696099a324dceb66d77761"
|
||||
integrity sha512-/uVdqqpNKXIxT6TyS/oSK4XE4xWOqp6fh4B5tgAwozkyWdylcX+W4YF2v6SKsL4wCQ5h1bnaSNjWPXG/2hp8AQ==
|
||||
|
||||
"@esbuild/freebsd-x64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.1.tgz#d36af9085edb34244b41e5a57640e6b4452cbec2"
|
||||
integrity sha512-paAkKN1n1jJitw+dAoR27TdCzxRl1FOEITx3h201R6NoXUojpMzgMLdkXVgCvaCSCqwYkeGLoe9UVNRDKSvQgw==
|
||||
|
||||
"@esbuild/linux-arm64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.1.tgz#9d2ad42eea33b2a9571f13e7ecc39ee9d3ff0c6d"
|
||||
integrity sha512-G65d08YoH00TL7Xg4LaL3gLV21bpoAhQ+r31NUu013YB7KK0fyXIt05VbsJtpqh/6wWxoLJZOvQHYnodRrnbUQ==
|
||||
|
||||
"@esbuild/linux-arm@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.1.tgz#d6f7c5873479dd97148bef3e3a7f09d486642883"
|
||||
integrity sha512-tRHnxWJnvNnDpNVnsyDhr1DIQZUfCXlHSCDohbXFqmg9W4kKR7g8LmA3kzcwbuxbRMKeit8ladnCabU5f2traA==
|
||||
|
||||
"@esbuild/linux-ia32@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.1.tgz#8f2aef34a31c8d16dbce0b8679021f4881f38efe"
|
||||
integrity sha512-tt/54LqNNAqCz++QhxoqB9+XqdsaZOtFD/srEhHYwBd3ZUOepmR1Eeot8bS+Q7BiEvy9vvKbtpHf+r6q8hF5UA==
|
||||
|
||||
"@esbuild/linux-loong64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.1.tgz#44461ea2388efbafa6cf12b2bc1407a5388da066"
|
||||
integrity sha512-MhNalK6r0nZD0q8VzUBPwheHzXPr9wronqmZrewLfP7ui9Fv1tdPmg6e7A8lmg0ziQCziSDHxh3cyRt4YMhGnQ==
|
||||
|
||||
"@esbuild/linux-mips64el@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.1.tgz#754d533a4fef4b0790d82bfe1e82d6876f18370e"
|
||||
integrity sha512-YCKVY7Zen5rwZV+nZczOhFmHaeIxR4Zn3jcmNH53LbgF6IKRwmrMywqDrg4SiSNApEefkAbPSIzN39FC8VsxPg==
|
||||
|
||||
"@esbuild/linux-ppc64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.1.tgz#2aafcfe2826c7d5d2e3c41eb8934e6368a7cada5"
|
||||
integrity sha512-bw7bcQ+270IOzDV4mcsKAnDtAFqKO0jVv3IgRSd8iM0ac3L8amvCrujRVt1ajBTJcpDaFhIX+lCNRKteoDSLig==
|
||||
|
||||
"@esbuild/linux-riscv64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.1.tgz#481ceaf5939d14fb25da62a385b5e6c2096a3370"
|
||||
integrity sha512-ARmDRNkcOGOm1AqUBSwRVDfDeD9hGYRfkudP2QdoonBz1ucWVnfBPfy7H4JPI14eYtZruRSczJxyu7SRYDVOcg==
|
||||
|
||||
"@esbuild/linux-s390x@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.1.tgz#e25b97005e4c82540d1bc7af88e333fb55142570"
|
||||
integrity sha512-o73TcUNMuoTZlhwFdsgr8SfQtmMV58sbgq6gQq9G1xUiYnHMTmJbwq65RzMx89l0iya69lR4bxBgtWiiOyDQZA==
|
||||
|
||||
"@esbuild/linux-x64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.1.tgz#a05a61d0a0cbb03baa6db12cd8164c1e5265ffb2"
|
||||
integrity sha512-da4/1mBJwwgJkbj4fMH7SOXq2zapgTo0LKXX1VUZ0Dxr+e8N0WbS80nSZ5+zf3lvpf8qxrkZdqkOqFfm57gXwA==
|
||||
|
||||
"@esbuild/netbsd-x64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.1.tgz#e298f854e8999563f2e4668bd542678c46be4b53"
|
||||
integrity sha512-CPWs0HTFe5woTJN5eKPvgraUoRHrCtzlYIAv9wBC+FAyagBSaf+UdZrjwYyTGnwPGkThV4OCI7XibZOnPvONVw==
|
||||
|
||||
"@esbuild/openbsd-x64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.1.tgz#640d34de1e3c6bc3ff64e0379aae00ede3608f14"
|
||||
integrity sha512-xxhTm5QtzNLc24R0hEkcH+zCx/o49AsdFZ0Cy5zSd/5tOj4X2g3/2AJB625NoadUuc4A8B3TenLJoYdWYOYCew==
|
||||
|
||||
"@esbuild/sunos-x64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.1.tgz#f53cb1cdcbf05b3320e147ddb85ec2b1cf2b6cfc"
|
||||
integrity sha512-CWibXszpWys1pYmbr9UiKAkX6x+Sxw8HWtw1dRESK1dLW5fFJ6rMDVw0o8MbadusvVQx1a8xuOxnHXT941Hp1A==
|
||||
|
||||
"@esbuild/win32-arm64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.1.tgz#df4f44f9b4fec9598c0ec2c34fec9c568c8ab85d"
|
||||
integrity sha512-jb5B4k+xkytGbGUS4T+Z89cQJ9DJ4lozGRSV+hhfmCPpfJ3880O31Q1srPCimm+V6UCbnigqD10EgDNgjvjerQ==
|
||||
|
||||
"@esbuild/win32-ia32@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.1.tgz#a57edbd9905db9f957327ae0facfbf406a80a4e4"
|
||||
integrity sha512-PgyFvjJhXqHn1uxPhyN1wZ6dIomKjiLUQh1LjFvjiV1JmnkZ/oMPrfeEAZg5R/1ftz4LZWZr02kefNIQ5SKREQ==
|
||||
|
||||
"@esbuild/win32-x64@0.21.1":
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.1.tgz#eb86553d90e86a8c174b96650fdb4c60f2de16a7"
|
||||
integrity sha512-W9NttRZQR5ehAiqHGDnvfDaGmQOm6Fi4vSlce8mjM75x//XKuVAByohlEX6N17yZnVXxQFuh4fDRunP8ca6bfA==
|
||||
|
||||
"@eslint-community/eslint-utils@^4.2.0":
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
|
||||
|
@ -632,15 +747,17 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
|
||||
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
|
||||
|
||||
"@types/luxon@^2.0.9":
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-2.4.0.tgz#897d3abc23b68d78b69d76a12c21e01eb5adab95"
|
||||
integrity sha512-oCavjEjRXuR6URJEtQm0eBdfsBiEcGBZbq21of8iGkeKxU1+1xgKuFPClaBZl2KB8ZZBSWlgk61tH6Mf+nvZVw==
|
||||
"@types/lodash@^4.17.1":
|
||||
version "4.17.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.1.tgz#0fabfcf2f2127ef73b119d98452bd317c4a17eb8"
|
||||
integrity sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==
|
||||
|
||||
"@types/node@^17.0.14":
|
||||
version "17.0.45"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190"
|
||||
integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==
|
||||
"@types/node@^20.12.11":
|
||||
version "20.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.11.tgz#c4ef00d3507000d17690643278a60dc55a9dc9be"
|
||||
integrity sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==
|
||||
dependencies:
|
||||
undici-types "~5.26.4"
|
||||
|
||||
"@types/parse-json@^4.0.0":
|
||||
version "4.0.2"
|
||||
|
@ -1339,113 +1456,34 @@ es-to-primitive@^1.2.1:
|
|||
is-date-object "^1.0.1"
|
||||
is-symbol "^1.0.2"
|
||||
|
||||
esbuild-android-arm64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44"
|
||||
integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==
|
||||
|
||||
esbuild-darwin-64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72"
|
||||
integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==
|
||||
|
||||
esbuild-darwin-arm64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a"
|
||||
integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==
|
||||
|
||||
esbuild-freebsd-64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85"
|
||||
integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==
|
||||
|
||||
esbuild-freebsd-arm64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52"
|
||||
integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==
|
||||
|
||||
esbuild-linux-32@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69"
|
||||
integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==
|
||||
|
||||
esbuild-linux-64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3"
|
||||
integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==
|
||||
|
||||
esbuild-linux-arm64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1"
|
||||
integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==
|
||||
|
||||
esbuild-linux-arm@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe"
|
||||
integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==
|
||||
|
||||
esbuild-linux-mips64le@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7"
|
||||
integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==
|
||||
|
||||
esbuild-linux-ppc64le@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2"
|
||||
integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==
|
||||
|
||||
esbuild-netbsd-64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038"
|
||||
integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==
|
||||
|
||||
esbuild-openbsd-64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7"
|
||||
integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==
|
||||
|
||||
esbuild-sunos-64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4"
|
||||
integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==
|
||||
|
||||
esbuild-windows-32@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7"
|
||||
integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==
|
||||
|
||||
esbuild-windows-64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294"
|
||||
integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==
|
||||
|
||||
esbuild-windows-arm64@0.13.15:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3"
|
||||
integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==
|
||||
|
||||
esbuild@^0.13.12:
|
||||
version "0.13.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf"
|
||||
integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==
|
||||
esbuild@^0.21.1:
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.1.tgz#3d6f199f6ec849158278c6632f438463bab88c38"
|
||||
integrity sha512-GPqx+FX7mdqulCeQ4TsGZQ3djBJkx5k7zBGtqt9ycVlWNg8llJ4RO9n2vciu8BN2zAEs6lPbPl0asZsAh7oWzg==
|
||||
optionalDependencies:
|
||||
esbuild-android-arm64 "0.13.15"
|
||||
esbuild-darwin-64 "0.13.15"
|
||||
esbuild-darwin-arm64 "0.13.15"
|
||||
esbuild-freebsd-64 "0.13.15"
|
||||
esbuild-freebsd-arm64 "0.13.15"
|
||||
esbuild-linux-32 "0.13.15"
|
||||
esbuild-linux-64 "0.13.15"
|
||||
esbuild-linux-arm "0.13.15"
|
||||
esbuild-linux-arm64 "0.13.15"
|
||||
esbuild-linux-mips64le "0.13.15"
|
||||
esbuild-linux-ppc64le "0.13.15"
|
||||
esbuild-netbsd-64 "0.13.15"
|
||||
esbuild-openbsd-64 "0.13.15"
|
||||
esbuild-sunos-64 "0.13.15"
|
||||
esbuild-windows-32 "0.13.15"
|
||||
esbuild-windows-64 "0.13.15"
|
||||
esbuild-windows-arm64 "0.13.15"
|
||||
"@esbuild/aix-ppc64" "0.21.1"
|
||||
"@esbuild/android-arm" "0.21.1"
|
||||
"@esbuild/android-arm64" "0.21.1"
|
||||
"@esbuild/android-x64" "0.21.1"
|
||||
"@esbuild/darwin-arm64" "0.21.1"
|
||||
"@esbuild/darwin-x64" "0.21.1"
|
||||
"@esbuild/freebsd-arm64" "0.21.1"
|
||||
"@esbuild/freebsd-x64" "0.21.1"
|
||||
"@esbuild/linux-arm" "0.21.1"
|
||||
"@esbuild/linux-arm64" "0.21.1"
|
||||
"@esbuild/linux-ia32" "0.21.1"
|
||||
"@esbuild/linux-loong64" "0.21.1"
|
||||
"@esbuild/linux-mips64el" "0.21.1"
|
||||
"@esbuild/linux-ppc64" "0.21.1"
|
||||
"@esbuild/linux-riscv64" "0.21.1"
|
||||
"@esbuild/linux-s390x" "0.21.1"
|
||||
"@esbuild/linux-x64" "0.21.1"
|
||||
"@esbuild/netbsd-x64" "0.21.1"
|
||||
"@esbuild/openbsd-x64" "0.21.1"
|
||||
"@esbuild/sunos-x64" "0.21.1"
|
||||
"@esbuild/win32-arm64" "0.21.1"
|
||||
"@esbuild/win32-ia32" "0.21.1"
|
||||
"@esbuild/win32-x64" "0.21.1"
|
||||
|
||||
escalade@^3.1.1:
|
||||
version "3.1.2"
|
||||
|
@ -2200,11 +2238,6 @@ lru-cache@^6.0.0:
|
|||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
luxon@^2.5.2:
|
||||
version "2.5.2"
|
||||
resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.5.2.tgz#17ed497f0277e72d58a4756d6a9abee4681457b6"
|
||||
integrity sha512-Yg7/RDp4nedqmLgyH0LwgGRvMEKVzKbUdkBYyCosbHgJ+kaOUx0qzSiSatVc3DFygnirTPYnMM2P5dg2uH1WvA==
|
||||
|
||||
make-error@^1.1.1:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
|
||||
|
@ -2881,6 +2914,11 @@ unbox-primitive@^1.0.2:
|
|||
has-symbols "^1.0.3"
|
||||
which-boxed-primitive "^1.0.2"
|
||||
|
||||
undici-types@~5.26.4:
|
||||
version "5.26.5"
|
||||
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
|
||||
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
|
||||
|
||||
update-browserslist-db@^1.0.13:
|
||||
version "1.0.13"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue