mirror of
https://github.com/AykutSarac/jsoncrack.com.git
synced 2025-01-12 19:02:53 +08:00
chore: optimize bundle
This commit is contained in:
parent
4787758551
commit
0e35c6a1e9
@ -6,7 +6,24 @@
|
||||
"space-in-parens": "error",
|
||||
"no-empty": "error",
|
||||
"no-multiple-empty-lines": "error",
|
||||
"no-irregular-whitespace": "error"
|
||||
"no-irregular-whitespace": "error",
|
||||
"strict": ["error", "never"],
|
||||
"linebreak-style": ["error", "unix"],
|
||||
"quotes": ["error", "double", { "avoidEscape": true }],
|
||||
"semi": ["error", "always"],
|
||||
"padding-line-between-statements": [
|
||||
"error",
|
||||
{ "blankLine": "always", "prev": ["const", "let", "var"], "next": "*" },
|
||||
{ "blankLine": "any", "prev": ["const", "let", "var"], "next": ["const", "let", "var"] }
|
||||
],
|
||||
"space-before-function-paren": [
|
||||
"error",
|
||||
{
|
||||
"anonymous": "always",
|
||||
"named": "never",
|
||||
"asyncArrow": "always"
|
||||
}
|
||||
]
|
||||
},
|
||||
"extends": ["next/core-web-vitals"],
|
||||
"plugins": ["prettier", "unused-imports"]
|
||||
|
@ -1,9 +1,13 @@
|
||||
const { withSentryConfig } = require("@sentry/nextjs");
|
||||
const withBundleAnalyzer = require("@next/bundle-analyzer")({
|
||||
enabled: process.env.ANALYZE === "true",
|
||||
});
|
||||
|
||||
/**
|
||||
* @type {import('next').NextConfig}
|
||||
*/
|
||||
const config = {
|
||||
output: "export",
|
||||
reactStrictMode: false,
|
||||
productionBrowserSourceMaps: true,
|
||||
compiler: {
|
||||
@ -11,17 +15,20 @@ const config = {
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = withSentryConfig(
|
||||
config,
|
||||
{
|
||||
silent: true,
|
||||
org: "aykut-sarac",
|
||||
project: "json-crack",
|
||||
},
|
||||
{
|
||||
widenClientFileUpload: true,
|
||||
hideSourceMaps: true,
|
||||
disableLogger: true,
|
||||
disableServerWebpackPlugin: true,
|
||||
}
|
||||
);
|
||||
module.exports =
|
||||
process.env.ANALYZE === "true"
|
||||
? withBundleAnalyzer(config)
|
||||
: withSentryConfig(
|
||||
config,
|
||||
{
|
||||
silent: true,
|
||||
org: "aykut-sarac",
|
||||
project: "json-crack",
|
||||
},
|
||||
{
|
||||
widenClientFileUpload: true,
|
||||
hideSourceMaps: true,
|
||||
disableLogger: true,
|
||||
disableServerWebpackPlugin: true,
|
||||
}
|
||||
);
|
||||
|
47
package.json
47
package.json
@ -1,59 +1,60 @@
|
||||
{
|
||||
"name": "json-crack",
|
||||
"private": true,
|
||||
"version": "v2.8.0",
|
||||
"version": "v3.0.0",
|
||||
"author": "https://github.com/AykutSarac",
|
||||
"homepage": "https://jsoncrack.com",
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
"build": "next build && next export",
|
||||
"build": "next build",
|
||||
"analyze": "ANALYZE=true npm run build",
|
||||
"start": "next start",
|
||||
"lint": "tsc && eslint src && prettier --check src",
|
||||
"lint:fix": "prettier --write src & eslint --fix src",
|
||||
"lint:fix": "eslint --fix src & prettier --write src",
|
||||
"deploy": "gh-pages -d out -t true"
|
||||
},
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.11.1",
|
||||
"@emotion/server": "^11.11.0",
|
||||
"@mantine/core": "^6.0.13",
|
||||
"@mantine/form": "^6.0.13",
|
||||
"@mantine/hooks": "^6.0.13",
|
||||
"@mantine/next": "^6.0.13",
|
||||
"@mantine/prism": "^6.0.13",
|
||||
"@mantine/core": "^6.0.16",
|
||||
"@mantine/form": "^6.0.16",
|
||||
"@mantine/hooks": "^6.0.16",
|
||||
"@mantine/next": "^6.0.16",
|
||||
"@mantine/prism": "^6.0.16",
|
||||
"@monaco-editor/react": "^4.5.1",
|
||||
"@sentry/nextjs": "^7.55.2",
|
||||
"@tanstack/react-query": "^4.29.14",
|
||||
"@tanstack/react-query": "^4.29.25",
|
||||
"allotment": "^1.19.0",
|
||||
"altogic": "^2.3.9",
|
||||
"axios": "^1.4.0",
|
||||
"dayjs": "^1.11.8",
|
||||
"dayjs": "^1.11.9",
|
||||
"html-to-image": "^1.11.11",
|
||||
"json-2-csv": "^4.0.0",
|
||||
"jsonc-parser": "^3.2.0",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"jsonwebtoken": "^9.0.1",
|
||||
"jxon": "^2.0.0-beta.5",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"lodash.get": "^4.4.2",
|
||||
"lodash.set": "^4.3.2",
|
||||
"lz-string": "^1.5.0",
|
||||
"next": "13.2.3",
|
||||
"next": "13.3.0",
|
||||
"react": "^18.2.0",
|
||||
"react-color": "^2.19.3",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-hot-toast": "^2.4.1",
|
||||
"react-icons": "^4.9.0",
|
||||
"react-icons": "^4.10.1",
|
||||
"react-linkify-it": "^1.0.7",
|
||||
"react-simple-typewriter": "^5.0.1",
|
||||
"react-syntax-highlighter": "^15.5.0",
|
||||
"react-zoom-pan-pinch": "^3.0.8",
|
||||
"react-zoom-pan-pinch": "^3.1.0",
|
||||
"reaflow": "5.1.2",
|
||||
"styled-components": "^5.3.8",
|
||||
"toml": "^3.0.0",
|
||||
"universal-cookie": "^4.0.4",
|
||||
"zustand": "^4.3.8"
|
||||
"zustand": "^4.3.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@next/bundle-analyzer": "^13.4.3",
|
||||
"@next/bundle-analyzer": "^13.4.10",
|
||||
"@testing-library/react": "^14.0.0",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
|
||||
"@types/jsonwebtoken": "^9.0.2",
|
||||
@ -61,17 +62,17 @@
|
||||
"@types/lodash.get": "^4.4.7",
|
||||
"@types/lodash.set": "^4.3.7",
|
||||
"@types/lz-string": "^1.5.0",
|
||||
"@types/node": "^20.2.1",
|
||||
"@types/node": "^20.4.2",
|
||||
"@types/react": "18.2.6",
|
||||
"@types/react-color": "^3.0.6",
|
||||
"@types/react-syntax-highlighter": "^15.5.7",
|
||||
"@types/styled-components": "^5.1.26",
|
||||
"eslint": "8.43.0",
|
||||
"eslint-config-next": "13.4.6",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-unused-imports": "^2.0.0",
|
||||
"prettier": "^2.8.8",
|
||||
"eslint": "8.45.0",
|
||||
"eslint-config-next": "13.4.10",
|
||||
"eslint-plugin-prettier": "^5.0.0",
|
||||
"eslint-plugin-unused-imports": "^3.0.0",
|
||||
"prettier": "^3.0.0",
|
||||
"ts-node": "^10.9.1",
|
||||
"typescript": "5.0.4"
|
||||
"typescript": "5.1.6"
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 47 KiB |
BIN
public/assets/multidata.webp
Normal file
BIN
public/assets/multidata.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
@ -1,13 +0,0 @@
|
||||
import { APIError, createClient } from "altogic";
|
||||
|
||||
let envUrl = process.env.NEXT_PUBLIC_ALTOGIC_ENV_URL as string;
|
||||
let clientKey = process.env.NEXT_PUBLIC_ALTOGIC_CLIENT_KEY as string;
|
||||
|
||||
const altogic = createClient(envUrl, clientKey);
|
||||
|
||||
export interface AltogicResponse<T> {
|
||||
data: T;
|
||||
errors: APIError | null;
|
||||
}
|
||||
|
||||
export { altogic };
|
@ -45,13 +45,17 @@ const AdWrapper = styled.div`
|
||||
background: #fff;
|
||||
box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.15);
|
||||
opacity: 0;
|
||||
transition: transform 0.2s ease-in-out, opacity 0.1s ease-in-out;
|
||||
transition:
|
||||
transform 0.2s ease-in-out,
|
||||
opacity 0.1s ease-in-out;
|
||||
transform: scale(1) translateY(-50px);
|
||||
}
|
||||
|
||||
& #native-button:checked + .native-overlay {
|
||||
opacity: 1;
|
||||
transition: transform 0.2s ease-in-out, opacity 0.4s ease-in-out;
|
||||
transition:
|
||||
transform 0.2s ease-in-out,
|
||||
opacity 0.4s ease-in-out;
|
||||
transform: scale(1) translateY(0);
|
||||
}
|
||||
|
||||
@ -119,6 +123,7 @@ export const AdTest = () => {
|
||||
if (window.innerWidth < 660) return;
|
||||
ref.current.innerHTML = "";
|
||||
const s = document.createElement("script");
|
||||
|
||||
s.id = "_carbonads_js";
|
||||
s.innerHTML = `(function() {
|
||||
if (typeof _bsa !== 'undefined' && _bsa) {
|
||||
|
@ -9,8 +9,9 @@ export const CarbonAds = () => {
|
||||
if (!premium) {
|
||||
ref.current.innerHTML = "";
|
||||
const s = document.createElement("script");
|
||||
|
||||
s.id = "_carbonads_js";
|
||||
s.src = `//cdn.carbonads.com/carbon.js?serve=CE7IPKQL&placement=jsoncrackcom`;
|
||||
s.src = "//cdn.carbonads.com/carbon.js?serve=CE7IPKQL&placement=jsoncrackcom";
|
||||
ref.current.appendChild(s);
|
||||
}
|
||||
}, [premium]);
|
||||
|
@ -5,11 +5,12 @@ import * as Styled from "./styles";
|
||||
|
||||
const Node: React.FC<CustomNodeProps> = ({ node, x, y }) => {
|
||||
const { text, width, height, data } = node;
|
||||
if (data.isEmpty) return null;
|
||||
|
||||
if (data?.isEmpty) return null;
|
||||
|
||||
return (
|
||||
<Styled.StyledForeignObject width={width} height={height} x={0} y={0} isObject>
|
||||
{text.map((val, idx) => {
|
||||
{(text as [string, unknown][]).map((val, idx) => {
|
||||
return (
|
||||
<Styled.StyledRow
|
||||
data-key={JSON.stringify(val)}
|
||||
|
@ -2,9 +2,9 @@ import React from "react";
|
||||
import styled from "styled-components";
|
||||
import { MdLink, MdLinkOff } from "react-icons/md";
|
||||
import { CustomNodeProps } from "src/components/CustomNode";
|
||||
import { isContentImage } from "src/lib/utils/core/calculateNodeSize";
|
||||
import useGraph from "src/store/useGraph";
|
||||
import useStored from "src/store/useStored";
|
||||
import { isContentImage } from "src/utils/core/calculateNodeSize";
|
||||
import { TextRenderer } from "./TextRenderer";
|
||||
import * as Styled from "./styles";
|
||||
|
||||
@ -56,7 +56,7 @@ const Node: React.FC<CustomNodeProps> = ({ node, x, y, hasCollapse = false }) =>
|
||||
const expandNodes = useGraph(state => state.expandNodes);
|
||||
const collapseNodes = useGraph(state => state.collapseNodes);
|
||||
const isExpanded = useGraph(state => state.collapsedParents.includes(id));
|
||||
const isImage = imagePreview && isContentImage(text);
|
||||
const isImage = imagePreview && isContentImage(text as string);
|
||||
|
||||
const handleExpand = (e: React.MouseEvent<HTMLButtonElement>) => {
|
||||
e.stopPropagation();
|
||||
@ -75,7 +75,7 @@ const Node: React.FC<CustomNodeProps> = ({ node, x, y, hasCollapse = false }) =>
|
||||
>
|
||||
{isImage ? (
|
||||
<StyledImageWrapper>
|
||||
<StyledImage src={text} width="70" height="70" loading="lazy" />
|
||||
<StyledImage src={text as string} width="70" height="70" loading="lazy" />
|
||||
</StyledImageWrapper>
|
||||
) : (
|
||||
<StyledTextNodeWrapper
|
||||
|
@ -1,5 +1,6 @@
|
||||
import React from "react";
|
||||
import { Node, NodeProps } from "reaflow";
|
||||
import { NodeData } from "src/types/models";
|
||||
import { ObjectNode } from "./ObjectNode";
|
||||
import { TextNode } from "./TextNode";
|
||||
|
||||
|
@ -4,7 +4,7 @@ import Script from "next/script";
|
||||
const isDevelopment = process.env.NODE_ENV === "development";
|
||||
const GA_TRACKING_ID = process.env.NEXT_PUBLIC_GA_ID;
|
||||
|
||||
export const GoogleAnalytics: React.FC = () => {
|
||||
const GoogleAnalytics: React.FC = () => {
|
||||
if (isDevelopment) return null;
|
||||
|
||||
return (
|
||||
@ -30,3 +30,5 @@ export const GoogleAnalytics: React.FC = () => {
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default GoogleAnalytics;
|
||||
|
@ -64,20 +64,32 @@ const StyledPremiumView = styled.div`
|
||||
|
||||
.glowing span:nth-child(3n + 1)::before {
|
||||
background: rgba(134, 255, 0, 1);
|
||||
box-shadow: 0 0 20px rgba(134, 255, 0, 1), 0 0 40px rgba(134, 255, 0, 1),
|
||||
0 0 60px rgba(134, 255, 0, 1), 0 0 80px rgba(134, 255, 0, 1), 0 0 0 8px rgba(134, 255, 0, 0.1);
|
||||
box-shadow:
|
||||
0 0 20px rgba(134, 255, 0, 1),
|
||||
0 0 40px rgba(134, 255, 0, 1),
|
||||
0 0 60px rgba(134, 255, 0, 1),
|
||||
0 0 80px rgba(134, 255, 0, 1),
|
||||
0 0 0 8px rgba(134, 255, 0, 0.1);
|
||||
}
|
||||
|
||||
.glowing span:nth-child(3n + 2)::before {
|
||||
background: rgba(255, 214, 0, 1);
|
||||
box-shadow: 0 0 20px rgba(255, 214, 0, 1), 0 0 40px rgba(255, 214, 0, 1),
|
||||
0 0 60px rgba(255, 214, 0, 1), 0 0 80px rgba(255, 214, 0, 1), 0 0 0 8px rgba(255, 214, 0, 0.1);
|
||||
box-shadow:
|
||||
0 0 20px rgba(255, 214, 0, 1),
|
||||
0 0 40px rgba(255, 214, 0, 1),
|
||||
0 0 60px rgba(255, 214, 0, 1),
|
||||
0 0 80px rgba(255, 214, 0, 1),
|
||||
0 0 0 8px rgba(255, 214, 0, 0.1);
|
||||
}
|
||||
|
||||
.glowing span:nth-child(3n + 3)::before {
|
||||
background: rgba(0, 226, 255, 1);
|
||||
box-shadow: 0 0 20px rgba(0, 226, 255, 1), 0 0 40px rgba(0, 226, 255, 1),
|
||||
0 0 60px rgba(0, 226, 255, 1), 0 0 80px rgba(0, 226, 255, 1), 0 0 0 8px rgba(0, 226, 255, 0.1);
|
||||
box-shadow:
|
||||
0 0 20px rgba(0, 226, 255, 1),
|
||||
0 0 40px rgba(0, 226, 255, 1),
|
||||
0 0 60px rgba(0, 226, 255, 1),
|
||||
0 0 80px rgba(0, 226, 255, 1),
|
||||
0 0 0 8px rgba(0, 226, 255, 0.1);
|
||||
}
|
||||
|
||||
.glowing span:nth-child(3n + 1) {
|
||||
|
@ -8,11 +8,14 @@ import useToggleHide from "src/hooks/useToggleHide";
|
||||
import useGraph from "src/store/useGraph";
|
||||
import useModal from "src/store/useModal";
|
||||
import useUser from "src/store/useUser";
|
||||
import { NodeData } from "src/types/models";
|
||||
import { Loading } from "../../layout/Loading";
|
||||
import { ErrorView } from "./ErrorView";
|
||||
import { PremiumView } from "./PremiumView";
|
||||
|
||||
const Canvas = dynamic(() => import("reaflow").then(r => r.Canvas));
|
||||
const Canvas = dynamic(() => import("reaflow").then(r => r.Canvas), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
interface GraphProps {
|
||||
isWidget?: boolean;
|
||||
@ -32,8 +35,16 @@ const StyledEditorWrapper = styled.div<{ widget: boolean }>`
|
||||
linear-gradient(90deg, var(--line-color-1) 1.5px, transparent 1.5px),
|
||||
linear-gradient(var(--line-color-2) 1px, transparent 1px),
|
||||
linear-gradient(90deg, var(--line-color-2) 1px, transparent 1px);
|
||||
background-position: -1.5px -1.5px, -1.5px -1.5px, -1px -1px, -1px -1px;
|
||||
background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
|
||||
background-position:
|
||||
-1.5px -1.5px,
|
||||
-1.5px -1.5px,
|
||||
-1px -1px,
|
||||
-1px -1px;
|
||||
background-size:
|
||||
100px 100px,
|
||||
100px 100px,
|
||||
20px 20px,
|
||||
20px 20px;
|
||||
|
||||
:active {
|
||||
cursor: move;
|
||||
@ -116,6 +127,7 @@ export const Graph = ({ isWidget = false }: GraphProps) => {
|
||||
|
||||
const memoizedNode = React.useCallback(
|
||||
(props: JSX.IntrinsicAttributes & NodeProps<any>) => (
|
||||
// @ts-ignore
|
||||
<CustomNode {...props} onClick={handleNodeClick} animated={false} />
|
||||
),
|
||||
[handleNodeClick]
|
||||
|
@ -6,6 +6,7 @@ export const HovercardAds = () => {
|
||||
|
||||
React.useEffect(() => {
|
||||
const isAvailable = document.querySelectorAll("#_hellobar_")[0];
|
||||
|
||||
if (typeof window._bsa !== "undefined" && window._bsa && !!!isAvailable) {
|
||||
window._bsa.init("hellobar", "CE7IPKQL", "placement:jsoncrackcom");
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
import localFont from "next/font/local";
|
||||
|
||||
const monaSans = localFont({
|
||||
src: "../pages/Mona-Sans.woff2",
|
||||
src: "../assets/fonts/Mona-Sans.woff2",
|
||||
variable: "--mona-sans",
|
||||
display: "swap",
|
||||
fallback: ["Arial, Helvetica, sans-serif", "Tahoma, Verdana, sans-serif"],
|
||||
|
@ -1,11 +0,0 @@
|
||||
/* eslint unused-imports/no-unused-imports: 0 */
|
||||
|
||||
enum FileFormat {
|
||||
"JSON" = "json",
|
||||
"YAML" = "yaml",
|
||||
"XML" = "xml",
|
||||
"TOML" = "toml",
|
||||
"CSV" = "csv",
|
||||
}
|
||||
|
||||
export { FileFormat };
|
@ -16,3 +16,5 @@ export const JsonEditor: React.FC = () => {
|
||||
</StyledEditorWrapper>
|
||||
);
|
||||
};
|
||||
|
||||
export default JsonEditor;
|
||||
|
@ -18,16 +18,16 @@ import {
|
||||
VscSettingsGear,
|
||||
} from "react-icons/vsc";
|
||||
import { SearchInput } from "src/components/SearchInput";
|
||||
import { FileFormat } from "src/constants/file";
|
||||
import { JSONCrackLogo } from "src/layout/JsonCrackLogo";
|
||||
import { getNextDirection } from "src/lib/utils/graph/getNextDirection";
|
||||
import { isIframe } from "src/lib/utils/widget";
|
||||
import useFile from "src/store/useFile";
|
||||
import useGraph from "src/store/useGraph";
|
||||
import useJson from "src/store/useJson";
|
||||
import useModal from "src/store/useModal";
|
||||
import useStored from "src/store/useStored";
|
||||
import useUser from "src/store/useUser";
|
||||
import { getNextDirection } from "src/utils/graph/getNextDirection";
|
||||
import { isIframe } from "src/utils/widget";
|
||||
import { FileFormat } from "src/types/models";
|
||||
|
||||
export const StyledTools = styled.div`
|
||||
position: relative;
|
||||
@ -121,6 +121,7 @@ export const Tools: React.FC<{ isWidget?: boolean }> = ({ isWidget = false }) =>
|
||||
|
||||
const toggleDirection = () => {
|
||||
const nextDirection = getNextDirection(direction);
|
||||
|
||||
setDirection(nextDirection);
|
||||
};
|
||||
|
||||
@ -149,6 +150,7 @@ export const Tools: React.FC<{ isWidget?: boolean }> = ({ isWidget = false }) =>
|
||||
"mod+f",
|
||||
() => {
|
||||
const input = document.querySelector("#search-node") as HTMLInputElement;
|
||||
|
||||
input.focus();
|
||||
},
|
||||
],
|
||||
|
@ -3,7 +3,6 @@ import dynamic from "next/dynamic";
|
||||
import styled from "styled-components";
|
||||
import { Allotment } from "allotment";
|
||||
import "allotment/dist/style.css";
|
||||
import { JsonEditor } from "src/containers/Editor/JsonEditor";
|
||||
import useGraph from "src/store/useGraph";
|
||||
|
||||
export const StyledEditor = styled(Allotment)`
|
||||
@ -17,6 +16,10 @@ export const StyledEditor = styled(Allotment)`
|
||||
}
|
||||
`;
|
||||
|
||||
const JsonEditor = dynamic(() => import("src/containers/Editor/JsonEditor"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
const LiveEditor = dynamic(() => import("src/containers/Editor/LiveEditor"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
@ -1,7 +1,7 @@
|
||||
import React from "react";
|
||||
import { Modal, Group, Button, Divider, ModalProps, Text, Image, Anchor } from "@mantine/core";
|
||||
import { toast } from "react-hot-toast";
|
||||
import { altogic } from "src/api/altogic";
|
||||
import { altogic } from "src/lib/api/altogic";
|
||||
|
||||
export const CancelPremiumModal: React.FC<ModalProps> = ({ opened, onClose }) => {
|
||||
const [cancelling, setCancelling] = React.useState(false);
|
||||
|
@ -43,6 +43,7 @@ const swatches = [
|
||||
|
||||
function downloadURI(uri: string, name: string) {
|
||||
var link = document.createElement("a");
|
||||
|
||||
link.download = name;
|
||||
link.href = uri;
|
||||
document.body.appendChild(link);
|
||||
|
@ -10,6 +10,7 @@ export const JWTModal: React.FC<ModalProps> = ({ opened, onClose }) => {
|
||||
const resolve = () => {
|
||||
if (!token) return;
|
||||
const json = decode(token);
|
||||
|
||||
setContents({ contents: JSON.stringify(json, null, 2) });
|
||||
setToken("");
|
||||
onClose();
|
||||
|
@ -6,12 +6,12 @@ import vsDark from "prism-react-renderer/themes/vsDark";
|
||||
import vsLight from "prism-react-renderer/themes/vsLight";
|
||||
import { VscLock } from "react-icons/vsc";
|
||||
import { shallow } from "zustand/shallow";
|
||||
import { isIframe } from "src/lib/utils/widget";
|
||||
import useFile from "src/store/useFile";
|
||||
import useGraph from "src/store/useGraph";
|
||||
import useModal from "src/store/useModal";
|
||||
import useStored from "src/store/useStored";
|
||||
import useUser from "src/store/useUser";
|
||||
import { isIframe } from "src/utils/widget";
|
||||
|
||||
const dataToString = (data: any) => {
|
||||
const text = Array.isArray(data) ? Object.fromEntries(data) : data;
|
||||
@ -53,9 +53,9 @@ export const NodeModal: React.FC<ModalProps> = ({ opened, onClose }) => {
|
||||
const lightmode = useStored(state => (state.lightmode ? "light" : "vs-dark"));
|
||||
const [nodeData, path, isParent] = useGraph(
|
||||
state => [
|
||||
dataToString(state.selectedNode.text),
|
||||
state.selectedNode.path,
|
||||
state.selectedNode.data?.isParent,
|
||||
dataToString(state.selectedNode?.text),
|
||||
state.selectedNode?.path,
|
||||
state.selectedNode?.data?.isParent,
|
||||
],
|
||||
shallow
|
||||
);
|
||||
|
@ -13,6 +13,7 @@ export const SchemaModal: React.FC<ModalProps> = ({ opened, onClose }) => {
|
||||
const onApply = () => {
|
||||
try {
|
||||
const parsedSchema = JSON.parse(schema);
|
||||
|
||||
setJsonSchema(parsedSchema);
|
||||
toast.success("Applied schema!");
|
||||
onClose();
|
||||
|
@ -1,7 +1,7 @@
|
||||
import React from "react";
|
||||
import { useDebouncedValue } from "@mantine/hooks";
|
||||
import { searchQuery, cleanupHighlight, highlightMatchedNodes } from "src/lib/utils/graph/search";
|
||||
import useGraph from "src/store/useGraph";
|
||||
import { searchQuery, cleanupHighlight, highlightMatchedNodes } from "src/utils/graph/search";
|
||||
|
||||
export const useFocusNode = () => {
|
||||
const zoomPanPinch = useGraph(state => state.zoomPanPinch);
|
||||
@ -34,6 +34,7 @@ export const useFocusNode = () => {
|
||||
(ref.offsetLeft - y) * newScale +
|
||||
ref.clientHeight / 8 -
|
||||
matchedNode.getBoundingClientRect().height / 8;
|
||||
|
||||
highlightMatchedNodes(matchedNodes, selectedNode);
|
||||
setNodeCount(matchedNodes.length);
|
||||
|
||||
|
@ -16,15 +16,18 @@ const useToggleHide = () => {
|
||||
|
||||
const validateHiddenNodes = React.useCallback(() => {
|
||||
const hiddenItems = document.body.querySelectorAll(".hide");
|
||||
|
||||
hiddenItems.forEach(item => item.classList.remove("hide"));
|
||||
|
||||
if (nodeList.length) {
|
||||
const selectedNodes = document.body.querySelectorAll(nodeList.join(","));
|
||||
|
||||
selectedNodes.forEach(node => node.classList.add("hide"));
|
||||
}
|
||||
|
||||
if (edgeList.length) {
|
||||
const selectedEdges = document.body.querySelectorAll(edgeList.join(","));
|
||||
|
||||
selectedEdges.forEach(edge => edge.classList.add("hide"));
|
||||
}
|
||||
}, [nodeList, edgeList]);
|
||||
|
@ -43,8 +43,9 @@ const isExternal = () => {
|
||||
return false;
|
||||
};
|
||||
|
||||
export const ExternalMode = () => {
|
||||
const ExternalMode = () => {
|
||||
const [isOpen, setOpen] = React.useState(false);
|
||||
|
||||
if (!isExternal()) return null;
|
||||
|
||||
const closeModal = () => setOpen(false);
|
||||
@ -84,3 +85,5 @@ export const ExternalMode = () => {
|
||||
</StyledAlert>
|
||||
);
|
||||
};
|
||||
|
||||
export default ExternalMode;
|
@ -1,43 +1,29 @@
|
||||
import React from "react";
|
||||
import { ModalProps } from "@mantine/core";
|
||||
import {
|
||||
AccountModal,
|
||||
ClearModal,
|
||||
DownloadModal,
|
||||
ImportModal,
|
||||
JWTModal,
|
||||
LoginModal,
|
||||
Modal,
|
||||
NodeModal,
|
||||
PremiumModal,
|
||||
SchemaModal,
|
||||
SettingsModal,
|
||||
ShareModal,
|
||||
CancelPremiumModal,
|
||||
} from "src/containers/Modals";
|
||||
import { CloudModal } from "src/containers/Modals/CloudModal";
|
||||
import * as Modals from "src/containers/Modals";
|
||||
import { Modal } from "src/containers/Modals";
|
||||
import useModal from "src/store/useModal";
|
||||
import { EditorMantine } from "../EditorMantine";
|
||||
|
||||
type ModalComponent = { key: Modal; component: React.FC<ModalProps> };
|
||||
|
||||
const modalComponents: ModalComponent[] = [
|
||||
{ key: "import", component: ImportModal },
|
||||
{ key: "clear", component: ClearModal },
|
||||
{ key: "download", component: DownloadModal },
|
||||
{ key: "settings", component: SettingsModal },
|
||||
{ key: "cloud", component: CloudModal },
|
||||
{ key: "account", component: AccountModal },
|
||||
{ key: "premium", component: PremiumModal },
|
||||
{ key: "login", component: LoginModal },
|
||||
{ key: "share", component: ShareModal },
|
||||
{ key: "jwt", component: JWTModal },
|
||||
{ key: "node", component: NodeModal },
|
||||
{ key: "schema", component: SchemaModal },
|
||||
{ key: "cancelPremium", component: CancelPremiumModal },
|
||||
{ key: "import", component: Modals.ImportModal },
|
||||
{ key: "clear", component: Modals.ClearModal },
|
||||
{ key: "download", component: Modals.DownloadModal },
|
||||
{ key: "settings", component: Modals.SettingsModal },
|
||||
{ key: "cloud", component: Modals.CloudModal },
|
||||
{ key: "account", component: Modals.AccountModal },
|
||||
{ key: "premium", component: Modals.PremiumModal },
|
||||
{ key: "login", component: Modals.LoginModal },
|
||||
{ key: "share", component: Modals.ShareModal },
|
||||
{ key: "jwt", component: Modals.JWTModal },
|
||||
{ key: "node", component: Modals.NodeModal },
|
||||
{ key: "schema", component: Modals.SchemaModal },
|
||||
{ key: "cancelPremium", component: Modals.CancelPremiumModal },
|
||||
];
|
||||
|
||||
export const ModalController = () => {
|
||||
const ModalController = () => {
|
||||
const setVisible = useModal(state => state.setVisible);
|
||||
const modalStates = useModal(state => modalComponents.map(modal => state[modal.key]));
|
||||
|
||||
@ -52,3 +38,5 @@ export const ModalController = () => {
|
||||
</EditorMantine>
|
||||
);
|
||||
};
|
||||
|
||||
export default ModalController;
|
||||
|
14
src/lib/api/altogic.ts
Normal file
14
src/lib/api/altogic.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import { APIError, createClient } from "altogic";
|
||||
|
||||
const envUrl = process.env.NEXT_PUBLIC_ALTOGIC_ENV_URL as string;
|
||||
const clientKey = process.env.NEXT_PUBLIC_ALTOGIC_CLIENT_KEY as string;
|
||||
|
||||
const altogic = createClient(envUrl, clientKey);
|
||||
|
||||
interface AltogicResponse<T> {
|
||||
data: T;
|
||||
errors: APIError | null;
|
||||
}
|
||||
|
||||
export { altogic };
|
||||
export type { AltogicResponse };
|
@ -1,11 +1,12 @@
|
||||
import { NodeType } from "jsonc-parser";
|
||||
import { Graph } from "../json/jsonParser";
|
||||
import { calculateNodeSize } from "./calculateNodeSize";
|
||||
|
||||
type Props = {
|
||||
graph: Graph;
|
||||
text: any;
|
||||
text: string | [string, string][];
|
||||
isEmpty?: boolean;
|
||||
type?: "string" | "number" | "boolean" | "object" | "array" | "null";
|
||||
type?: NodeType;
|
||||
};
|
||||
|
||||
export const addNodeToGraph = ({ graph, text, type = "null", isEmpty = false }: Props) => {
|
@ -12,6 +12,7 @@ export const isContentImage = (value: string | [string, string][]) => {
|
||||
|
||||
const isImageURL = /(https?:\/\/.*\.(?:png|jpg|gif))/i.test(value);
|
||||
const isBase64 = value.startsWith("data:image/") && value.includes("base64");
|
||||
|
||||
return isImageURL || isBase64;
|
||||
};
|
||||
|
||||
@ -21,6 +22,7 @@ const calculateWidthAndHeight = (str: string, single = false) => {
|
||||
if (!str) return { width: 45, height: 45 };
|
||||
|
||||
const dummyElement = document.createElement("div");
|
||||
|
||||
dummyElement.style.whiteSpace = single ? "nowrap" : "pre-wrap";
|
||||
dummyElement.innerHTML = str;
|
||||
dummyElement.style.fontSize = "12px";
|
||||
@ -34,6 +36,7 @@ const calculateWidthAndHeight = (str: string, single = false) => {
|
||||
|
||||
const width = dummyElement.offsetWidth + 4;
|
||||
const height = dummyElement.offsetHeight;
|
||||
|
||||
document.body.removeChild(dummyElement);
|
||||
|
||||
return { width, height };
|
||||
@ -49,6 +52,7 @@ export const calculateNodeSize = (text: string | [string, string][], isParent =
|
||||
// check cache
|
||||
if (sizeCache.has(cacheKey)) {
|
||||
const size = sizeCache.get(cacheKey);
|
||||
|
||||
if (size) return size;
|
||||
}
|
||||
|
||||
@ -59,6 +63,7 @@ export const calculateNodeSize = (text: string | [string, string][], isParent =
|
||||
}
|
||||
|
||||
let sizes = calculateWidthAndHeight(lines, typeof text === "string");
|
||||
|
||||
if (isImage) sizes = { width: 80, height: 80 };
|
||||
if (foldNodes) sizes.width = 300;
|
||||
if (isParent && foldNodes) sizes.width = 170;
|
@ -33,13 +33,14 @@ function handleNoChildren(
|
||||
|
||||
if (parentType === "property" && nextType !== "object" && nextType !== "array") {
|
||||
states.brothersParentId = myParentId;
|
||||
if (nextType === undefined) {
|
||||
if (nextType === undefined && Array.isArray(states.brothersNode)) {
|
||||
states.brothersNode.push([states.brotherKey, value]);
|
||||
} else {
|
||||
states.brotherKey = value;
|
||||
}
|
||||
} else if (parentType === "array") {
|
||||
const nodeFromArrayId = addNodeToGraph({ graph, text: String(value) });
|
||||
|
||||
if (myParentId) {
|
||||
addEdgeToGraph(graph, myParentId, nodeFromArrayId);
|
||||
}
|
||||
@ -77,8 +78,9 @@ function handleHasChildren(
|
||||
const modifyNodes = [...graph.nodes];
|
||||
const foundNode = modifyNodes[findNodeIndex];
|
||||
|
||||
foundNode.text = foundNode.text.concat(states.brothersNode);
|
||||
foundNode.text = foundNode.text.concat(states.brothersNode as any);
|
||||
const { width, height } = calculateNodeSize(foundNode.text, false);
|
||||
|
||||
foundNode.width = width;
|
||||
foundNode.height = height;
|
||||
|
||||
@ -87,6 +89,7 @@ function handleHasChildren(
|
||||
}
|
||||
} else {
|
||||
const brothersNodeId = addNodeToGraph({ graph, text: states.brothersNode });
|
||||
|
||||
states.brothersNode = [];
|
||||
|
||||
if (states.brothersParentId) {
|
||||
@ -142,6 +145,7 @@ function handleHasChildren(
|
||||
const traverseArray = () => {
|
||||
children.forEach((objectToTraverse, index, array) => {
|
||||
const nextType = array[index + 1]?.type;
|
||||
|
||||
traverseObject(objectToTraverse, nextType);
|
||||
});
|
||||
};
|
||||
@ -166,10 +170,11 @@ function handleHasChildren(
|
||||
const modifyNodes = [...graph.nodes];
|
||||
const findNodeIndex = modifyNodes.findIndex(e => e.id === findBrothersNode?.id);
|
||||
|
||||
if (modifyNodes[findNodeIndex]) {
|
||||
if (modifyNodes[findNodeIndex] && typeof states.brothersNode === "string") {
|
||||
modifyNodes[findNodeIndex].text += states.brothersNode;
|
||||
|
||||
const { width, height } = calculateNodeSize(modifyNodes[findNodeIndex].text, false);
|
||||
|
||||
modifyNodes[findNodeIndex].width = width;
|
||||
modifyNodes[findNodeIndex].height = height;
|
||||
|
||||
@ -178,6 +183,7 @@ function handleHasChildren(
|
||||
}
|
||||
} else {
|
||||
const brothersNodeId = addNodeToGraph({ graph, text: states.brothersNode });
|
||||
|
||||
states.brothersNode = [];
|
||||
|
||||
if (states.brothersParentId) {
|
||||
@ -191,6 +197,7 @@ function handleHasChildren(
|
||||
parentId: states.brothersParentId,
|
||||
objectsFromArrayId: states.objectsFromArray[states.objectsFromArray.length - 1],
|
||||
};
|
||||
|
||||
states.brothersNodeProps = [...states.brothersNodeProps, brothersNodeProps];
|
||||
}
|
||||
}
|
||||
@ -213,6 +220,7 @@ function handleHasChildren(
|
||||
graph.nodes = graph.nodes.map((node, index) => {
|
||||
if (index === parentIndex) {
|
||||
const childrenCount = myChildren.length;
|
||||
|
||||
return { ...node, data: { ...node.data, childrenCount } };
|
||||
}
|
||||
return node;
|
@ -1,3 +1,5 @@
|
||||
import { NodeData, EdgeData } from "src/types/models";
|
||||
|
||||
export const getChildrenEdges = (nodes: NodeData[], edges: EdgeData[]): EdgeData[] => {
|
||||
const nodeIds = nodes.map(node => node.id);
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { NodeData, EdgeData } from "src/types/models";
|
||||
|
||||
export const getOutgoers = (
|
||||
nodeId: string,
|
||||
nodes: NodeData[],
|
||||
@ -9,6 +11,7 @@ export const getOutgoers = (
|
||||
|
||||
if (parent.includes(nodeId)) {
|
||||
const initialParentNode = nodes.find(n => n.id === nodeId);
|
||||
|
||||
if (initialParentNode) outgoerNodes.push(initialParentNode);
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ export const cleanupHighlight = () => {
|
||||
export const highlightMatchedNodes = (nodes: NodeListOf<Element>, selectedNode: number) => {
|
||||
nodes.forEach(node => {
|
||||
const foreignObject = node.parentElement?.closest("foreignObject");
|
||||
|
||||
if (foreignObject) {
|
||||
foreignObject.classList.add("searched");
|
||||
}
|
@ -1,3 +1,5 @@
|
||||
import { NodeData, EdgeData } from "src/types/models";
|
||||
|
||||
export function getNodePath(nodes: NodeData[], edges: EdgeData[], nodeId: string) {
|
||||
const { getParentsForNodeId } = require("reaflow");
|
||||
|
||||
@ -16,6 +18,7 @@ export function getNodePath(nodes: NodeData[], edges: EdgeData[], nodeId: string
|
||||
|
||||
for (let i = 1; i < edges.length; i++) {
|
||||
const curNodeId = edges[i].from!;
|
||||
|
||||
if (rootArrayElementIds.includes(curNodeId)) continue;
|
||||
if (!edgesMap.has(curNodeId)) {
|
||||
rootArrayElementIds.push(curNodeId);
|
||||
@ -33,17 +36,18 @@ export function getNodePath(nodes: NodeData[], edges: EdgeData[], nodeId: string
|
||||
const curNode = nodes[+curId - 1];
|
||||
|
||||
if (!curNode) break;
|
||||
if (curNode.data.type === "array") {
|
||||
if (curNode.data?.type === "array") {
|
||||
resolvedPath += `.${curNode.text}`;
|
||||
|
||||
if (i !== path.length - 1) {
|
||||
const toNodeId = path[i + 1];
|
||||
const idx = edgesMap.get(curId).indexOf(toNodeId);
|
||||
|
||||
resolvedPath += `[${idx}]`;
|
||||
}
|
||||
}
|
||||
|
||||
if (curNode.data.type === "object") {
|
||||
if (curNode.data?.type === "object") {
|
||||
resolvedPath += `.${curNode.text}`;
|
||||
}
|
||||
}
|
@ -2,7 +2,7 @@ import { load, dump } from "js-yaml";
|
||||
import { csv2json, json2csv } from "json-2-csv";
|
||||
import jxon from "jxon";
|
||||
import toml from "toml";
|
||||
import { FileFormat } from "src/constants/file";
|
||||
import { FileFormat } from "src/types/models";
|
||||
|
||||
const keyExists = (obj: object, key: string) => {
|
||||
if (!obj || (typeof obj !== "object" && !Array.isArray(obj))) {
|
||||
@ -12,6 +12,7 @@ const keyExists = (obj: object, key: string) => {
|
||||
} else if (Array.isArray(obj)) {
|
||||
for (let i = 0; i < obj.length; i++) {
|
||||
const result = keyExists(obj[i], key);
|
||||
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
@ -19,6 +20,7 @@ const keyExists = (obj: object, key: string) => {
|
||||
} else {
|
||||
for (const k in obj) {
|
||||
const result = keyExists(obj[k], key);
|
||||
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
@ -31,6 +33,7 @@ const keyExists = (obj: object, key: string) => {
|
||||
const contentToJson = async (value: string, format = FileFormat.JSON): Promise<object> => {
|
||||
try {
|
||||
let json: object = {};
|
||||
|
||||
if (format === FileFormat.JSON) json = JSON.parse(value);
|
||||
if (format === FileFormat.YAML) json = load(value) as object;
|
||||
if (format === FileFormat.XML) json = jxon.stringToJs(value);
|
||||
@ -47,6 +50,7 @@ const contentToJson = async (value: string, format = FileFormat.JSON): Promise<o
|
||||
const jsonToContent = async (json: string, format: FileFormat): Promise<string> => {
|
||||
try {
|
||||
let contents = json;
|
||||
|
||||
if (!json) return json;
|
||||
if (format === FileFormat.JSON) contents = json;
|
||||
if (format === FileFormat.YAML) contents = dump(JSON.parse(json));
|
@ -1,4 +1,5 @@
|
||||
import { parseTree } from "jsonc-parser";
|
||||
import { EdgeData, NodeData } from "src/types/models";
|
||||
import { addEdgeToGraph } from "../core/addEdgeToGraph";
|
||||
import { addNodeToGraph } from "../core/addNodeToGraph";
|
||||
import { traverse } from "../core/traverse";
|
||||
@ -15,7 +16,7 @@ export type States = {
|
||||
objectsFromArray: number[];
|
||||
objectsFromArrayId: number;
|
||||
notHaveParent: string[];
|
||||
brothersNode: [string, string][];
|
||||
brothersNode: [string, string][] | string;
|
||||
brothersParentId: string | undefined;
|
||||
brotherKey: string;
|
||||
brothersNodeProps: {
|
||||
@ -48,6 +49,7 @@ export function parser(jsonStr: string): Graph {
|
||||
try {
|
||||
const states = initializeStates();
|
||||
const parsedJsonTree = parseTree(jsonStr);
|
||||
|
||||
if (!parsedJsonTree) {
|
||||
throw new Error("Invalid document");
|
||||
}
|
||||
@ -55,9 +57,11 @@ export function parser(jsonStr: string): Graph {
|
||||
traverse({ states, objectToTraverse: parsedJsonTree });
|
||||
|
||||
const { notHaveParent, graph } = states;
|
||||
|
||||
if (notHaveParent.length > 1 && parsedJsonTree.type !== "array") {
|
||||
const emptyNode = { id: null, text: "", isEmpty: true, data: {} };
|
||||
const emptyId = addNodeToGraph({ graph, ...emptyNode });
|
||||
|
||||
notHaveParent.forEach(childId => addEdgeToGraph(graph, emptyId, childId));
|
||||
}
|
||||
|
||||
@ -74,6 +78,8 @@ export function parser(jsonStr: string): Graph {
|
||||
path: getNodePath(states.graph.nodes, states.graph.edges, node.id),
|
||||
}));
|
||||
|
||||
console.log(states.graph);
|
||||
|
||||
return states.graph;
|
||||
} catch (error) {
|
||||
console.error(error);
|
@ -1,15 +1,17 @@
|
||||
import React from "react";
|
||||
import type { AppProps } from "next/app";
|
||||
import dynamic from "next/dynamic";
|
||||
import { ThemeProvider } from "styled-components";
|
||||
import { MantineProvider } from "@mantine/core";
|
||||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||
import { Toaster } from "react-hot-toast";
|
||||
import { GoogleAnalytics } from "src/components/GoogleAnalytics";
|
||||
import { monaSans } from "src/constants/customFonts";
|
||||
import GlobalStyle from "src/constants/globalStyle";
|
||||
import { lightTheme } from "src/constants/theme";
|
||||
import { ExternalMode } from "src/layout/DevMode";
|
||||
import { ModalController } from "src/layout/ModalController";
|
||||
|
||||
const Toaster = dynamic(() => import("react-hot-toast").then(c => c.Toaster));
|
||||
const ExternalMode = dynamic(() => import("src/layout/ExternalMode"));
|
||||
const GoogleAnalytics = dynamic(() => import("src/components/GoogleAnalytics"));
|
||||
const ModalController = dynamic(() => import("src/layout/ModalController"));
|
||||
|
||||
const queryClient = new QueryClient({
|
||||
defaultOptions: {
|
||||
|
@ -133,7 +133,9 @@ const Docs = () => {
|
||||
where json is a string and options is an object that may contain the following:
|
||||
<MediaQuery smallerThan="sm" styles={{ display: "none" }}>
|
||||
<Prism w={500} language="json">
|
||||
{`{\n theme: "light" | "dark",\n direction: "TOP" | "RIGHT" | "DOWN" | "LEFT"\n}`}
|
||||
{
|
||||
'{\n theme: "light" | "dark",\n direction: "TOP" | "RIGHT" | "DOWN" | "LEFT"\n}'
|
||||
}
|
||||
</Prism>
|
||||
</MediaQuery>
|
||||
</StyledDescription>
|
||||
|
@ -1,17 +1,19 @@
|
||||
import React from "react";
|
||||
import dynamic from "next/dynamic";
|
||||
import Head from "next/head";
|
||||
import { useRouter } from "next/router";
|
||||
import styled from "styled-components";
|
||||
import { defaultJson } from "src/constants/data";
|
||||
import { BottomBar } from "src/containers/Editor/BottomBar";
|
||||
import { Tools } from "src/containers/Editor/LiveEditor/Tools";
|
||||
import Panes from "src/containers/Editor/Panes";
|
||||
import { EditorMantine } from "src/layout/EditorMantine";
|
||||
import { Loading } from "src/layout/Loading";
|
||||
import useFile from "src/store/useFile";
|
||||
import useJson from "src/store/useJson";
|
||||
import useUser from "src/store/useUser";
|
||||
|
||||
const Panes = dynamic(() => import("src/containers/Editor/Panes"));
|
||||
|
||||
export const StyledPageWrapper = styled.div`
|
||||
height: calc(100vh - 27px);
|
||||
width: 100%;
|
||||
|
@ -1,4 +1,5 @@
|
||||
import React from "react";
|
||||
import dynamic from "next/dynamic";
|
||||
import Head from "next/head";
|
||||
import Link from "next/link";
|
||||
import styled, { ThemeProvider } from "styled-components";
|
||||
@ -20,9 +21,10 @@ import { SiVisualstudiocode } from "react-icons/si";
|
||||
import { Typewriter } from "react-simple-typewriter";
|
||||
import { HovercardAds } from "src/components/HovercardAds";
|
||||
import { lightTheme } from "src/constants/theme";
|
||||
import { Footer } from "src/layout/Footer";
|
||||
import { Navbar } from "src/layout/Navbar";
|
||||
|
||||
const Footer = dynamic(() => import("src/layout/Footer").then(c => c.Footer));
|
||||
|
||||
const StyledHeroSection = styled.div`
|
||||
--bg-color: ${({ theme }) => theme.GRID_BG_COLOR};
|
||||
--line-color-1: ${({ theme }) => theme.GRID_COLOR_PRIMARY};
|
||||
@ -33,8 +35,16 @@ const StyledHeroSection = styled.div`
|
||||
linear-gradient(90deg, var(--line-color-1) 1.5px, transparent 1.5px),
|
||||
linear-gradient(var(--line-color-2) 1px, transparent 1px),
|
||||
linear-gradient(90deg, var(--line-color-2) 1px, transparent 1px);
|
||||
background-position: -1.5px -1.5px, -1.5px -1.5px, -1px -1px, -1px -1px;
|
||||
background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
|
||||
background-position:
|
||||
-1.5px -1.5px,
|
||||
-1.5px -1.5px,
|
||||
-1px -1px,
|
||||
-1px -1px;
|
||||
background-size:
|
||||
100px 100px,
|
||||
100px 100px,
|
||||
20px 20px,
|
||||
20px 20px;
|
||||
|
||||
@media only screen and (max-width: 1240px) {
|
||||
flex-direction: column;
|
||||
@ -252,7 +262,7 @@ const Features = () => (
|
||||
</Stack>
|
||||
</Flex>
|
||||
<Flex py="lg" align="center" gap="lg" direction="row-reverse">
|
||||
<Image width={300} height={260} src="/assets/multidata.png" alt="multiple format support" />
|
||||
<Image width={300} height={260} src="/assets/multidata.webp" alt="multiple format support" />
|
||||
<Stack>
|
||||
<Text color="dark" fz="1.5rem" fw="bold">
|
||||
DYNAMIC DATA VISUALIZATION
|
||||
|
@ -4,10 +4,10 @@ import { useRouter } from "next/router";
|
||||
import styled from "styled-components";
|
||||
import { PaperProps, Center, Button, Group, Paper, Stack, TextInput, Text } from "@mantine/core";
|
||||
import { toast } from "react-hot-toast";
|
||||
import { altogic } from "src/api/altogic";
|
||||
import { Footer } from "src/layout/Footer";
|
||||
import { JSONCrackLogo } from "src/layout/JsonCrackLogo";
|
||||
import { Navbar } from "src/layout/Navbar";
|
||||
import { altogic } from "src/lib/api/altogic";
|
||||
import useUser from "src/store/useUser";
|
||||
|
||||
const StyledPageWrapper = styled.div`
|
||||
|
@ -22,10 +22,10 @@ import { useForm } from "@mantine/form";
|
||||
import { useToggle, upperFirst } from "@mantine/hooks";
|
||||
import { toast } from "react-hot-toast";
|
||||
import { AiOutlineGithub, AiOutlineGoogle } from "react-icons/ai";
|
||||
import { altogic } from "src/api/altogic";
|
||||
import { Footer } from "src/layout/Footer";
|
||||
import { JSONCrackLogo } from "src/layout/JsonCrackLogo";
|
||||
import { Navbar } from "src/layout/Navbar";
|
||||
import { altogic } from "src/lib/api/altogic";
|
||||
import useUser from "src/store/useUser";
|
||||
|
||||
export function AuthenticationForm(props: PaperProps) {
|
||||
@ -54,6 +54,7 @@ export function AuthenticationForm(props: PaperProps) {
|
||||
const onSubmit = (e: React.FormEvent<HTMLFormElement>) => {
|
||||
e.preventDefault();
|
||||
const validate = form.validate();
|
||||
|
||||
if (validate.hasErrors) return;
|
||||
|
||||
setLoading(true);
|
||||
|
@ -1,8 +1,8 @@
|
||||
import dayjs from "dayjs";
|
||||
import { decompressFromBase64 } from "lz-string";
|
||||
import { altogic, AltogicResponse } from "src/api/altogic";
|
||||
import { FileFormat } from "src/constants/file";
|
||||
import { altogic, AltogicResponse } from "src/lib/api/altogic";
|
||||
import { File } from "src/store/useFile";
|
||||
import { FileFormat } from "src/types/models";
|
||||
|
||||
const saveToCloud = async (
|
||||
id: string | null,
|
||||
@ -21,6 +21,7 @@ const getFromCloud = async (id: string) => {
|
||||
if (errors) throw errors;
|
||||
|
||||
const isCompressed = dayjs("2023-04-20T07:04:25.255Z").isAfter(data?.updatedAt);
|
||||
|
||||
if (isCompressed) {
|
||||
return { ...data, json: decompressFromBase64(data.json) };
|
||||
}
|
||||
@ -29,7 +30,7 @@ const getFromCloud = async (id: string) => {
|
||||
};
|
||||
|
||||
const getAllJson = async (): Promise<AltogicResponse<{ result: File[] }>> =>
|
||||
await altogic.endpoint.get(`json`);
|
||||
await altogic.endpoint.get("json");
|
||||
|
||||
const updateJson = async (id: string, data: object) =>
|
||||
await altogic.endpoint.put(`json/${id}`, {
|
||||
|
@ -4,9 +4,9 @@ import _set from "lodash.set";
|
||||
import { toast } from "react-hot-toast";
|
||||
import { create } from "zustand";
|
||||
import { defaultJson } from "src/constants/data";
|
||||
import { FileFormat } from "src/constants/file";
|
||||
import { contentToJson, jsonToContent } from "src/lib/utils/json/jsonAdapter";
|
||||
import { getFromCloud, saveToCloud } from "src/services/json";
|
||||
import { contentToJson, jsonToContent } from "src/utils/json/jsonAdapter";
|
||||
import { FileFormat } from "src/types/models";
|
||||
import useGraph from "./useGraph";
|
||||
import useJson from "./useJson";
|
||||
import useStored from "./useStored";
|
||||
@ -99,9 +99,11 @@ const useFile = create<FileStates & JsonActions>()((set, get) => ({
|
||||
setFormat: async format => {
|
||||
try {
|
||||
const prevFormat = get().format;
|
||||
|
||||
set({ format });
|
||||
const contentJson = await contentToJson(get().contents, prevFormat);
|
||||
const jsonContent = await jsonToContent(JSON.stringify(contentJson, null, 2), format);
|
||||
|
||||
get().setContents({ contents: jsonContent, hasChanges: false });
|
||||
} catch (error) {
|
||||
get().clear();
|
||||
@ -112,6 +114,7 @@ const useFile = create<FileStates & JsonActions>()((set, get) => ({
|
||||
try {
|
||||
set({ ...(contents && { contents }), error: null, hasChanges });
|
||||
const json = await contentToJson(get().contents, get().format);
|
||||
|
||||
if (!useStored.getState().liveTransform && skipUpdate) return;
|
||||
|
||||
debouncedUpdateJson(json);
|
||||
@ -164,6 +167,7 @@ const useFile = create<FileStates & JsonActions>()((set, get) => ({
|
||||
if (isURL(id)) return get().fetchUrl(id);
|
||||
|
||||
const file = await getFromCloud(id);
|
||||
|
||||
get().setFile(file);
|
||||
} catch (error) {
|
||||
useJson.setState({ loading: false });
|
||||
@ -195,6 +199,7 @@ const useFile = create<FileStates & JsonActions>()((set, get) => ({
|
||||
);
|
||||
|
||||
const contents = await jsonToContent(JSON.stringify(newJson, null, 2), get().format);
|
||||
|
||||
get().setContents({ contents });
|
||||
if (callback) callback();
|
||||
} catch (error) {
|
||||
|
@ -1,29 +1,44 @@
|
||||
import { ReactZoomPanPinchRef } from "react-zoom-pan-pinch";
|
||||
import { CanvasDirection } from "reaflow/dist/layout/elkLayout";
|
||||
import { create } from "zustand";
|
||||
import { getChildrenEdges } from "src/utils/graph/getChildrenEdges";
|
||||
import { getOutgoers } from "src/utils/graph/getOutgoers";
|
||||
import { parser } from "src/utils/json/jsonParser";
|
||||
import { getChildrenEdges } from "src/lib/utils/graph/getChildrenEdges";
|
||||
import { getOutgoers } from "src/lib/utils/graph/getOutgoers";
|
||||
import { parser } from "src/lib/utils/json/jsonParser";
|
||||
import { NodeData, EdgeData } from "src/types/models";
|
||||
import useJson from "./useJson";
|
||||
|
||||
const initialStates = {
|
||||
zoomPanPinch: null as ReactZoomPanPinchRef | null,
|
||||
direction: "RIGHT" as CanvasDirection,
|
||||
export interface Graph {
|
||||
zoomPanPinch: ReactZoomPanPinchRef | null;
|
||||
direction: CanvasDirection;
|
||||
loading: boolean;
|
||||
graphCollapsed: boolean;
|
||||
foldNodes: boolean;
|
||||
fullscreen: boolean;
|
||||
nodes: NodeData[];
|
||||
edges: EdgeData[];
|
||||
collapsedNodes: string[];
|
||||
collapsedEdges: string[];
|
||||
collapsedParents: string[];
|
||||
selectedNode: NodeData | null;
|
||||
path: string;
|
||||
}
|
||||
|
||||
const initialStates: Graph = {
|
||||
zoomPanPinch: null,
|
||||
direction: "RIGHT",
|
||||
loading: true,
|
||||
graphCollapsed: false,
|
||||
foldNodes: false,
|
||||
fullscreen: false,
|
||||
nodes: [] as NodeData[],
|
||||
edges: [] as EdgeData[],
|
||||
collapsedNodes: [] as string[],
|
||||
collapsedEdges: [] as string[],
|
||||
collapsedParents: [] as string[],
|
||||
selectedNode: {} as NodeData,
|
||||
nodes: [],
|
||||
edges: [],
|
||||
collapsedNodes: [],
|
||||
collapsedEdges: [],
|
||||
collapsedParents: [],
|
||||
selectedNode: null,
|
||||
path: "",
|
||||
};
|
||||
|
||||
export type Graph = typeof initialStates;
|
||||
|
||||
interface GraphActions {
|
||||
setGraph: (json?: string, options?: Partial<Graph>[]) => void;
|
||||
setLoading: (loading: boolean) => void;
|
||||
@ -48,6 +63,7 @@ const useGraph = create<Graph & GraphActions>((set, get) => ({
|
||||
setSelectedNode: nodeData => set({ selectedNode: nodeData }),
|
||||
setGraph: (data, options) => {
|
||||
const { nodes, edges } = parser(data ?? useJson.getState().json);
|
||||
|
||||
set({
|
||||
nodes,
|
||||
edges,
|
||||
@ -119,7 +135,7 @@ const useGraph = create<Graph & GraphActions>((set, get) => ({
|
||||
.map(edge => edge.to);
|
||||
|
||||
const collapsedParents = get()
|
||||
.nodes.filter(node => !parentNodesIds.includes(node.id) && node.data.isParent)
|
||||
.nodes.filter(node => !parentNodesIds.includes(node.id) && node.data?.isParent)
|
||||
.map(node => node.id);
|
||||
|
||||
const collapsedNodes = get()
|
||||
@ -151,6 +167,7 @@ const useGraph = create<Graph & GraphActions>((set, get) => ({
|
||||
},
|
||||
zoomIn: () => {
|
||||
const zoomPanPinch = get().zoomPanPinch;
|
||||
|
||||
zoomPanPinch?.setTransform(
|
||||
zoomPanPinch?.state.positionX,
|
||||
zoomPanPinch?.state.positionY,
|
||||
@ -159,6 +176,7 @@ const useGraph = create<Graph & GraphActions>((set, get) => ({
|
||||
},
|
||||
zoomOut: () => {
|
||||
const zoomPanPinch = get().zoomPanPinch;
|
||||
|
||||
zoomPanPinch?.setTransform(
|
||||
zoomPanPinch?.state.positionX,
|
||||
zoomPanPinch?.state.positionY,
|
||||
@ -168,6 +186,7 @@ const useGraph = create<Graph & GraphActions>((set, get) => ({
|
||||
centerView: () => {
|
||||
const zoomPanPinch = get().zoomPanPinch;
|
||||
const canvas = document.querySelector(".jsoncrack-canvas") as HTMLElement;
|
||||
|
||||
if (zoomPanPinch && canvas) zoomPanPinch.zoomToElement(canvas);
|
||||
},
|
||||
toggleFold: foldNodes => {
|
||||
|
@ -1,8 +1,8 @@
|
||||
import * as Sentry from "@sentry/nextjs";
|
||||
import { setUser } from "@sentry/nextjs";
|
||||
import toast from "react-hot-toast";
|
||||
import { create } from "zustand";
|
||||
import { altogic } from "src/api/altogic";
|
||||
import { AltogicAuth, User } from "src/typings/altogic";
|
||||
import { altogic } from "src/lib/api/altogic";
|
||||
import { AltogicAuth, User } from "src/types/altogic";
|
||||
import useModal from "./useModal";
|
||||
|
||||
const isDevelopment = process.env.NODE_ENV === "development";
|
||||
@ -43,9 +43,11 @@ const useUser = create<UserStates & UserActions>()(set => ({
|
||||
setUser: (key, value) => set({ [key]: value }),
|
||||
logout: async () => {
|
||||
const session = altogic.auth.getSession();
|
||||
|
||||
if (!session) return;
|
||||
|
||||
const { errors } = await altogic.auth.signOut(session.token);
|
||||
|
||||
if (errors?.items) return console.error(errors);
|
||||
|
||||
set(initialStates);
|
||||
@ -63,6 +65,7 @@ const useUser = create<UserStates & UserActions>()(set => ({
|
||||
|
||||
if (currentSession) {
|
||||
const { user, errors } = await altogic.auth.getUserFromDB();
|
||||
|
||||
if (errors?.items || !user) {
|
||||
altogic.auth.clearLocalData();
|
||||
return;
|
||||
@ -72,10 +75,11 @@ const useUser = create<UserStates & UserActions>()(set => ({
|
||||
altogic.auth.setSession(currentSession);
|
||||
const { data: premiumData } = await altogic.endpoint.get("/isPremium");
|
||||
|
||||
Sentry.setUser({ id: user._id, email: user.email, username: user.name });
|
||||
setUser({ id: user._id, email: user.email, username: user.name });
|
||||
set({ user: user as User, isAuthenticated: true, premium: premiumData.premium });
|
||||
} else if (new URLSearchParams(window.location.search).get("access_token")) {
|
||||
const { errors, user } = await altogic.auth.getAuthGrant();
|
||||
|
||||
if (errors?.items) {
|
||||
toast.error(errors.items[0].message);
|
||||
return;
|
||||
@ -84,7 +88,7 @@ const useUser = create<UserStates & UserActions>()(set => ({
|
||||
if (user) {
|
||||
const { data: premiumData } = await altogic.endpoint.get("/isPremium");
|
||||
|
||||
Sentry.setUser({ id: user._id, email: user.email, username: user.name });
|
||||
setUser({ id: user._id, email: user.email, username: user.name });
|
||||
set({ user: user as User, isAuthenticated: true, premium: premiumData.premium });
|
||||
}
|
||||
}
|
||||
|
30
src/types/models.ts
Normal file
30
src/types/models.ts
Normal file
@ -0,0 +1,30 @@
|
||||
/* eslint unused-imports/no-unused-imports: 0 */
|
||||
import { NodeType } from "jsonc-parser";
|
||||
|
||||
export interface NodeData {
|
||||
id: string;
|
||||
text: string | [string, string][];
|
||||
width: number;
|
||||
height: number;
|
||||
path?: string;
|
||||
data: {
|
||||
type: NodeType;
|
||||
isParent: boolean;
|
||||
isEmpty: boolean;
|
||||
childrenCount: number;
|
||||
};
|
||||
}
|
||||
|
||||
export interface EdgeData {
|
||||
id: string;
|
||||
from: string;
|
||||
to: string;
|
||||
}
|
||||
|
||||
export enum FileFormat {
|
||||
"JSON" = "json",
|
||||
"YAML" = "yaml",
|
||||
"XML" = "xml",
|
||||
"TOML" = "toml",
|
||||
"CSV" = "csv",
|
||||
}
|
32
src/typings/types.d.ts
vendored
32
src/typings/types.d.ts
vendored
@ -1,32 +0,0 @@
|
||||
interface NodeData<T = any> {
|
||||
id: string;
|
||||
disabled?: boolean;
|
||||
text?: any;
|
||||
path?: string;
|
||||
height?: number;
|
||||
width?: number;
|
||||
isParent?: string;
|
||||
ports?: PortData[];
|
||||
icon?: IconData;
|
||||
nodePadding?: number | [number, number] | [number, number, number, number];
|
||||
data?: T;
|
||||
className?: string;
|
||||
layoutOptions?: ElkNodeLayoutOptions;
|
||||
selectionDisabled?: boolean;
|
||||
}
|
||||
|
||||
interface EdgeData<T = any> {
|
||||
id: string;
|
||||
disabled?: boolean;
|
||||
text?: any;
|
||||
from?: string;
|
||||
to?: string;
|
||||
fromPort?: string;
|
||||
toPort?: string;
|
||||
data?: T;
|
||||
className?: string;
|
||||
containerClassName?: string;
|
||||
arrowHeadType?: any;
|
||||
parent?: string;
|
||||
selectionDisabled?: boolean;
|
||||
}
|
@ -15,7 +15,8 @@
|
||||
"isolatedModules": true,
|
||||
"jsx": "preserve",
|
||||
"incremental": true,
|
||||
"noImplicitAny": false
|
||||
"noImplicitAny": false,
|
||||
"typeRoots": ["types"]
|
||||
},
|
||||
"include": ["src", "next-env.d.ts",],
|
||||
"exclude": ["node_modules"]
|
||||
|
594
yarn.lock
594
yarn.lock
@ -2,6 +2,11 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@aashutoshrathi/word-wrap@^1.2.3":
|
||||
version "1.2.6"
|
||||
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
|
||||
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
|
||||
|
||||
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
|
||||
@ -316,14 +321,14 @@
|
||||
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884"
|
||||
integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==
|
||||
|
||||
"@eslint/eslintrc@^2.0.3":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331"
|
||||
integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==
|
||||
"@eslint/eslintrc@^2.1.0":
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d"
|
||||
integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==
|
||||
dependencies:
|
||||
ajv "^6.12.4"
|
||||
debug "^4.3.2"
|
||||
espree "^9.5.2"
|
||||
espree "^9.6.0"
|
||||
globals "^13.19.0"
|
||||
ignore "^5.2.0"
|
||||
import-fresh "^3.2.1"
|
||||
@ -331,10 +336,10 @@
|
||||
minimatch "^3.1.2"
|
||||
strip-json-comments "^3.1.1"
|
||||
|
||||
"@eslint/js@8.43.0":
|
||||
version "8.43.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0"
|
||||
integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==
|
||||
"@eslint/js@8.44.0":
|
||||
version "8.44.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af"
|
||||
integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==
|
||||
|
||||
"@floating-ui/core@^1.2.2":
|
||||
version "1.2.2"
|
||||
@ -433,67 +438,67 @@
|
||||
resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60"
|
||||
integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==
|
||||
|
||||
"@mantine/core@^6.0.13":
|
||||
version "6.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/core/-/core-6.0.13.tgz#f05a952e1e2e3cc6eb24d4d77b6c96a1c23fb0bb"
|
||||
integrity sha512-FjVUGgat2qISV9WD1maVJa81y7H0JjKJ3m0cJj65PzgrXT20hzdEda7S3i4j+a8vUnx+836x5q/yS+RDHvoSlA==
|
||||
"@mantine/core@^6.0.16":
|
||||
version "6.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/core/-/core-6.0.16.tgz#bd5271ec907cf2d7df2f9b791bc5d406f75dafe1"
|
||||
integrity sha512-ai7HfWo214JLmf+QNEmFfTaBgxreMpY/ZK7dIDNkFfCmDAWjFxwCSc7flh8NHX2ZJN5uTc82p2i0MLJ/GZ5xrA==
|
||||
dependencies:
|
||||
"@floating-ui/react" "^0.19.1"
|
||||
"@mantine/styles" "6.0.13"
|
||||
"@mantine/utils" "6.0.13"
|
||||
"@mantine/styles" "6.0.16"
|
||||
"@mantine/utils" "6.0.16"
|
||||
"@radix-ui/react-scroll-area" "1.0.2"
|
||||
react-remove-scroll "^2.5.5"
|
||||
react-textarea-autosize "8.3.4"
|
||||
|
||||
"@mantine/form@^6.0.13":
|
||||
version "6.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/form/-/form-6.0.13.tgz#9d0e87efb0e139702b01f387fdec0d977ecdc385"
|
||||
integrity sha512-oR/bnnJEd6T42N5pUhXYZ5RaKC4EZozEFW2jHCWDKIAJDjIgGUQrLL/tCjclQ2NwtghaoCTz+9zu32CuXer7TA==
|
||||
"@mantine/form@^6.0.16":
|
||||
version "6.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/form/-/form-6.0.16.tgz#c6b7064a87df17dad82101a71ebe96ccd37e686f"
|
||||
integrity sha512-4TwxJKGQQRx7rj5yb9WgS0z/Ud8ckg0mMCiD3grKTxDCp0g8Tvk2Df7ptWFx2n+hxhBYVwMQSKggWuuDMFWBNA==
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.3"
|
||||
klona "^2.0.5"
|
||||
|
||||
"@mantine/hooks@^6.0.13":
|
||||
version "6.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-6.0.13.tgz#d90fa315ee30a900e0d9a460c6bb00c9a65f18e0"
|
||||
integrity sha512-fHuE3zXo5OP/Q1dMOTnegU6U+tI9GuhO2tgOz6szVuOxrrk0Hzuq1Na9NUSv27HShSRbAfQk+hvyIh+iVV7KXA==
|
||||
"@mantine/hooks@^6.0.16":
|
||||
version "6.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-6.0.16.tgz#507c322347659424a915ec6b541d848f53abcf6a"
|
||||
integrity sha512-DnfMYSTSjYxbQJ80TzKHO5gRXGTIQKxBnRQVc+n4RANTwgWMiwEmxIwqRjbulfLzIhEvplskhqGgElunIAfw7g==
|
||||
|
||||
"@mantine/next@^6.0.13":
|
||||
version "6.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/next/-/next-6.0.13.tgz#018d9dc8a93430d45176df505978f8025e420588"
|
||||
integrity sha512-dUQ3cxZ/6f6hxegx6zV4aCPAgZSb9NlCQkDlELvtiAJXpIKtogOcVxxKWaDSEHD5YHVeV2f+CBPVqaa3LddiYg==
|
||||
"@mantine/next@^6.0.16":
|
||||
version "6.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/next/-/next-6.0.16.tgz#3d266a96446a3da8ec8296f12b227e2e93cb4fc1"
|
||||
integrity sha512-shIcYK/tK/jQpdJkzdgukgwwpqiBxoskaCJDcuZxPVckPYssKLscZlxaiyBShFmPqd1bxULJ0L9w+F73qibECw==
|
||||
dependencies:
|
||||
"@mantine/ssr" "6.0.13"
|
||||
"@mantine/styles" "6.0.13"
|
||||
"@mantine/ssr" "6.0.16"
|
||||
"@mantine/styles" "6.0.16"
|
||||
|
||||
"@mantine/prism@^6.0.13":
|
||||
version "6.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/prism/-/prism-6.0.13.tgz#ef840bf2cd59d567db203bba167e9c77155eda39"
|
||||
integrity sha512-048dxoEw4XeJAVh8sBzMguhk+pG8ULDPVGI+aQBsuoERezSV4WVqeKl1+ddoOew3qXbsH/UH4ox5lmf1S4WTwg==
|
||||
"@mantine/prism@^6.0.16":
|
||||
version "6.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/prism/-/prism-6.0.16.tgz#a183d6899bb1dd8e0b90725a7d00708d9b8c4518"
|
||||
integrity sha512-bWnwRMA7fBfSMpZO2YHIsJ4yt3JTZmPp1nQ62JKpey7rfCJMMuzuCXagCHZthEChZZoQnwmndr4agEzuNIIxmA==
|
||||
dependencies:
|
||||
"@mantine/utils" "6.0.13"
|
||||
"@mantine/utils" "6.0.16"
|
||||
prism-react-renderer "^1.2.1"
|
||||
|
||||
"@mantine/ssr@6.0.13":
|
||||
version "6.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/ssr/-/ssr-6.0.13.tgz#5ccfdc8b7c26e16c326b7f91200f6a38bb58965e"
|
||||
integrity sha512-IMeWkzTvBM5/LjAprdF6o0Xn6U8mv/Hi88YDZpTLDkRAc9QBEOy4P9zOmpHz3YLRFHQm+Hqr078YckDh5F+KXQ==
|
||||
"@mantine/ssr@6.0.16":
|
||||
version "6.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/ssr/-/ssr-6.0.16.tgz#020ea4d9509321206c1c0c4cdeb8d30fe2caac8c"
|
||||
integrity sha512-caF6MQrYMlydVZBvqsZWetA1UECZsYH6EOUix2VNwRGC66PdWFXW98IROBTYZGVixNB1gxcTrcXsoJ1UrsFJwA==
|
||||
dependencies:
|
||||
"@mantine/styles" "6.0.13"
|
||||
"@mantine/styles" "6.0.16"
|
||||
html-react-parser "1.4.12"
|
||||
|
||||
"@mantine/styles@6.0.13":
|
||||
version "6.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/styles/-/styles-6.0.13.tgz#a3dc542e1613e7cc461dd8b11c6069b5dd8143d7"
|
||||
integrity sha512-+27oX8ObiBv8jHHDxXKjqe+7cfTJyaAV/Ie00T49EE4LuHuS6nL4vlXHmqamFtDCj2ypEWBV0sdXDev/DNAXSg==
|
||||
"@mantine/styles@6.0.16":
|
||||
version "6.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/styles/-/styles-6.0.16.tgz#625e5be80fc964fa6634f10e798c19f5a4c265ce"
|
||||
integrity sha512-0rDE3BzJOKVdPAbnL3XokVWNYgo1z323UgAURdB+WvzwZY7PhblwvrxUDwvvV77qCUENg2vU0LKHqTQD1DDLTg==
|
||||
dependencies:
|
||||
clsx "1.1.1"
|
||||
csstype "3.0.9"
|
||||
|
||||
"@mantine/utils@6.0.13":
|
||||
version "6.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/utils/-/utils-6.0.13.tgz#a7adc128a2e7c07031c7221c1533800d0c80279a"
|
||||
integrity sha512-iqIU9wurqAeccVbWjM0yr1JGne5VP+ob55M03QAXOEN4+ck93VDTjCkZJR2RFhDcs5q0twQFoOmU/gULR8aKIA==
|
||||
"@mantine/utils@6.0.16":
|
||||
version "6.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@mantine/utils/-/utils-6.0.16.tgz#b39e47ef8fa4463322e9aa10cdd5980f4310b705"
|
||||
integrity sha512-UFel9DbifL3zS8pTJlr6GfwGd6464OWXCJdUq0oLydgimbC1VV2PnptBr6FMwIpPVcxouLOtY1cChzwFH95PSA==
|
||||
|
||||
"@monaco-editor/loader@^1.3.3":
|
||||
version "1.3.3"
|
||||
@ -562,89 +567,69 @@
|
||||
hey-listen "^1.0.8"
|
||||
tslib "^2.3.1"
|
||||
|
||||
"@next/bundle-analyzer@^13.4.3":
|
||||
version "13.4.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-13.4.3.tgz#7e48a91eac582e32e4d235d8cf7503843f100000"
|
||||
integrity sha512-jzWk6eaCFaIXfIswyQQWnR6FN22HpWoSWe3nLa3JCNkNd2ksriJgn86oQyZRxgAPaEbVKQXBp8GZi8e5DrhVJg==
|
||||
"@next/bundle-analyzer@^13.4.10":
|
||||
version "13.4.10"
|
||||
resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-13.4.10.tgz#b4393f74567e6cedf6f31e6f3d0dfcbb2ef4d3dc"
|
||||
integrity sha512-QwjRH/x1coj8+2Q2suXKez01Irc/rZQXiZ7qE96jj/xR1C+zze6cEdlhWzMlsBFlLmazBhFeOb0PeK6r4dVImA==
|
||||
dependencies:
|
||||
webpack-bundle-analyzer "4.7.0"
|
||||
|
||||
"@next/env@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/env/-/env-13.2.3.tgz#77ca49edb3c1d7c5263bb8f2ebe686080e98279e"
|
||||
integrity sha512-FN50r/E+b8wuqyRjmGaqvqNDuWBWYWQiigfZ50KnSFH0f+AMQQyaZl+Zm2+CIpKk0fL9QxhLxOpTVA3xFHgFow==
|
||||
"@next/env@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/env/-/env-13.3.0.tgz#cc2e49f03060a4684ce7ec7fd617a21bc5b9edba"
|
||||
integrity sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ==
|
||||
|
||||
"@next/eslint-plugin-next@13.4.6":
|
||||
version "13.4.6"
|
||||
resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.6.tgz#6a291305226b3f762fdbc01e123efadeb63e5aaf"
|
||||
integrity sha512-bPigeu0RI7bgy1ucBA2Yqcfg539y0Lzo38P2hIkrRB1GNvFSbYg6RTu8n6tGqPVrH3TTlPTNKLXG01wc+5NuwQ==
|
||||
"@next/eslint-plugin-next@13.4.10":
|
||||
version "13.4.10"
|
||||
resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.10.tgz#ff19867396a7709ff75986645f2223787fbb2d9b"
|
||||
integrity sha512-YJqyq6vk39JQfvaNtN83t/p5Jy45+bazRL+V4QI8FPd3FBqFYMEsULiwRLgSJMgFqkk4t4JbeZurz+gILEAFpA==
|
||||
dependencies:
|
||||
glob "7.1.7"
|
||||
|
||||
"@next/swc-android-arm-eabi@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.2.3.tgz#85eed560c87c7996558c868a117be9780778f192"
|
||||
integrity sha512-mykdVaAXX/gm+eFO2kPeVjnOCKwanJ9mV2U0lsUGLrEdMUifPUjiXKc6qFAIs08PvmTMOLMNnUxqhGsJlWGKSw==
|
||||
"@next/swc-darwin-arm64@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.0.tgz#38f18e0639cd4c7edc6a38d4b83fe00f38eea4f2"
|
||||
integrity sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==
|
||||
|
||||
"@next/swc-android-arm64@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-13.2.3.tgz#8ac54ca9795a48afc4631b4823a4864bd5db0129"
|
||||
integrity sha512-8XwHPpA12gdIFtope+n9xCtJZM3U4gH4vVTpUwJ2w1kfxFmCpwQ4xmeGSkR67uOg80yRMuF0h9V1ueo05sws5w==
|
||||
"@next/swc-darwin-x64@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.3.0.tgz#b670ed1fd1d231aa21279173ec52e3ad56dc6aeb"
|
||||
integrity sha512-oQoqFa88OGgwnYlnAGHVct618FRI/749se0N3S8t9Bzdv5CRbscnO0RcX901+YnNK4Q6yeiizfgO3b7kogtsZg==
|
||||
|
||||
"@next/swc-darwin-arm64@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.2.3.tgz#f674e3c65aec505b6d218a662ade3fe248ccdbda"
|
||||
integrity sha512-TXOubiFdLpMfMtaRu1K5d1I9ipKbW5iS2BNbu8zJhoqrhk3Kp7aRKTxqFfWrbliAHhWVE/3fQZUYZOWSXVQi1w==
|
||||
"@next/swc-linux-arm64-gnu@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.3.0.tgz#b114935f6b4c94c123f6cac55a4823d483209ba5"
|
||||
integrity sha512-Wzz2p/WqAJUqTVoLo6H18WMeAXo3i+9DkPDae4oQG8LMloJ3if4NEZTnOnTUlro6cq+S/W4pTGa97nWTrOjbGw==
|
||||
|
||||
"@next/swc-darwin-x64@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.2.3.tgz#a15ea7fb4c46034a8f5e387906d0cad08387075a"
|
||||
integrity sha512-GZctkN6bJbpjlFiS5pylgB2pifHvgkqLAPumJzxnxkf7kqNm6rOGuNjsROvOWVWXmKhrzQkREO/WPS2aWsr/yw==
|
||||
"@next/swc-linux-arm64-musl@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.3.0.tgz#67a57309f8761c7d00d629d6785d56ed0567a0d2"
|
||||
integrity sha512-xPVrIQOQo9WXJYgmoTlMnAD/HlR/1e1ZIWGbwIzEirXBVBqMARUulBEIKdC19zuvoJ477qZJgBDCKtKEykCpyQ==
|
||||
|
||||
"@next/swc-freebsd-x64@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.2.3.tgz#f7ac6ae4f7d706ff2431f33e40230a554c8c2cbc"
|
||||
integrity sha512-rK6GpmMt/mU6MPuav0/M7hJ/3t8HbKPCELw/Uqhi4732xoq2hJ2zbo2FkYs56y6w0KiXrIp4IOwNB9K8L/q62g==
|
||||
"@next/swc-linux-x64-gnu@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.3.0.tgz#11bd2bea7c00b40be111c0dd16e71171f3792086"
|
||||
integrity sha512-jOFlpGuPD7W2tuXVJP4wt9a3cpNxWAPcloq5EfMJRiXsBBOjLVFZA7boXYxEBzSVgUiVVr1V9T0HFM7pULJ1qA==
|
||||
|
||||
"@next/swc-linux-arm-gnueabihf@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.2.3.tgz#84ad9e9679d55542a23b590ad9f2e1e9b2df62f7"
|
||||
integrity sha512-yeiCp/Odt1UJ4KUE89XkeaaboIDiVFqKP4esvoLKGJ0fcqJXMofj4ad3tuQxAMs3F+qqrz9MclqhAHkex1aPZA==
|
||||
"@next/swc-linux-x64-musl@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.3.0.tgz#d57e99f85890799b78719c3ea32a4624de8d701b"
|
||||
integrity sha512-2OwKlzaBgmuet9XYHc3KwsEilzb04F540rlRXkAcjMHL7eCxB7uZIGtsVvKOnQLvC/elrUegwSw1+5f7WmfyOw==
|
||||
|
||||
"@next/swc-linux-arm64-gnu@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.2.3.tgz#56f9175bc632d647c60b9e8bedc0875edf92d8b7"
|
||||
integrity sha512-/miIopDOUsuNlvjBjTipvoyjjaxgkOuvlz+cIbbPcm1eFvzX2ltSfgMgty15GuOiR8Hub4FeTSiq3g2dmCkzGA==
|
||||
"@next/swc-win32-arm64-msvc@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.3.0.tgz#0c209aa35d1c88b01e78259a89cd68f4139b5093"
|
||||
integrity sha512-OeHiA6YEvndxT46g+rzFK/MQTfftKxJmzslERMu9LDdC6Kez0bdrgEYed5eXFK2Z1viKZJCGRlhd06rBusyztA==
|
||||
|
||||
"@next/swc-linux-arm64-musl@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.2.3.tgz#7d4cf00e8f1729a3de464da0624773f5d0d14888"
|
||||
integrity sha512-sujxFDhMMDjqhruup8LLGV/y+nCPi6nm5DlFoThMJFvaaKr/imhkXuk8uCTq4YJDbtRxnjydFv2y8laBSJVC2g==
|
||||
"@next/swc-win32-ia32-msvc@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.3.0.tgz#52ae74da1dd6d840c3743923367d27ed013803dd"
|
||||
integrity sha512-4aB7K9mcVK1lYEzpOpqWrXHEZympU3oK65fnNcY1Qc4HLJFLJj8AViuqQd4jjjPNuV4sl8jAwTz3gN5VNGWB7w==
|
||||
|
||||
"@next/swc-linux-x64-gnu@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.2.3.tgz#17de404910c4ebf7a1d366b19334d7e27e126ab0"
|
||||
integrity sha512-w5MyxPknVvC9LVnMenAYMXMx4KxPwXuJRMQFvY71uXg68n7cvcas85U5zkdrbmuZ+JvsO5SIG8k36/6X3nUhmQ==
|
||||
|
||||
"@next/swc-linux-x64-musl@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.2.3.tgz#07cb7b7f3a3a98034e2533f82638a9b099ba4ab1"
|
||||
integrity sha512-CTeelh8OzSOVqpzMFMFnVRJIFAFQoTsI9RmVJWW/92S4xfECGcOzgsX37CZ8K982WHRzKU7exeh7vYdG/Eh4CA==
|
||||
|
||||
"@next/swc-win32-arm64-msvc@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.2.3.tgz#b9ac98c954c71ec9de45d3497a8585096b873152"
|
||||
integrity sha512-7N1KBQP5mo4xf52cFCHgMjzbc9jizIlkTepe9tMa2WFvEIlKDfdt38QYcr9mbtny17yuaIw02FXOVEytGzqdOQ==
|
||||
|
||||
"@next/swc-win32-ia32-msvc@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.2.3.tgz#5ec48653a48fd664e940c69c96bba698fdae92eb"
|
||||
integrity sha512-LzWD5pTSipUXTEMRjtxES/NBYktuZdo7xExJqGDMnZU8WOI+v9mQzsmQgZS/q02eIv78JOCSemqVVKZBGCgUvA==
|
||||
|
||||
"@next/swc-win32-x64-msvc@13.2.3":
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.3.tgz#cd432f280beb8d8de5b7cd2501e9f502e9f3dd72"
|
||||
integrity sha512-aLG2MaFs4y7IwaMTosz2r4mVbqRyCnMoFqOcmfTi7/mAS+G4IMH0vJp4oLdbshqiVoiVuKrAfqtXj55/m7Qu1Q==
|
||||
"@next/swc-win32-x64-msvc@13.3.0":
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.3.0.tgz#db7b55fee834dc8c2c484c696469e65bae2ee770"
|
||||
integrity sha512-Reer6rkLLcoOvB0dd66+Y7WrWVFH7sEEkF/4bJCIfsSKnTStTYaHtwIJAwbqnt9I392Tqvku0KkoqZOryWV9LQ==
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
@ -800,27 +785,27 @@
|
||||
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728"
|
||||
integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==
|
||||
|
||||
"@sentry-internal/tracing@7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.55.2.tgz#29687b8327cc9d980695603d451316706f2630ed"
|
||||
integrity sha512-yBW+R7NfwLrOjpwOJHoOSvGDDoM3ZKod5OKXi7Gd5tYqVm1mCaL0n2/wlNMcGTbPbulLBtgzjoTU1bPJAGhmYw==
|
||||
"@sentry-internal/tracing@7.58.1":
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.58.1.tgz#9be915092793da7f1e63eb0c56c7663c6e639933"
|
||||
integrity sha512-kOWKqyjYdDgvO6CacXneE9UrFQHT3BXF1UpCAlnHchW/TqRFmg89sJAEUjEPGzN7y6IaX1G4j2dBPDE0OFQi3w==
|
||||
dependencies:
|
||||
"@sentry/core" "7.55.2"
|
||||
"@sentry/types" "7.55.2"
|
||||
"@sentry/utils" "7.55.2"
|
||||
tslib "^1.9.3"
|
||||
"@sentry/core" "7.58.1"
|
||||
"@sentry/types" "7.58.1"
|
||||
"@sentry/utils" "7.58.1"
|
||||
tslib "^2.4.1 || ^1.9.3"
|
||||
|
||||
"@sentry/browser@7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.55.2.tgz#32a5cf7cc2af14b83926ea04ea140e1024f000a6"
|
||||
integrity sha512-RgA4KOD6t8XHVLm6D2oTh9KW19g3DoQ0QsrUmAq4+giSj2AyDW67VP2V4E72mCZ9Ln9AkNhY0Eh3XuD3opiFQA==
|
||||
"@sentry/browser@7.58.1":
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.58.1.tgz#ad6ab07339f814c46add84e5dc4390b738f38730"
|
||||
integrity sha512-7+6Z/T7m0A/2/ImMCakpMOaWTPxmENzTdaojhkyVQKuYUZr7mCe4nco0jsongwY634zSUziuVsibi0jxMMTdBA==
|
||||
dependencies:
|
||||
"@sentry-internal/tracing" "7.55.2"
|
||||
"@sentry/core" "7.55.2"
|
||||
"@sentry/replay" "7.55.2"
|
||||
"@sentry/types" "7.55.2"
|
||||
"@sentry/utils" "7.55.2"
|
||||
tslib "^1.9.3"
|
||||
"@sentry-internal/tracing" "7.58.1"
|
||||
"@sentry/core" "7.58.1"
|
||||
"@sentry/replay" "7.58.1"
|
||||
"@sentry/types" "7.58.1"
|
||||
"@sentry/utils" "7.58.1"
|
||||
tslib "^2.4.1 || ^1.9.3"
|
||||
|
||||
"@sentry/cli@^1.74.6":
|
||||
version "1.75.0"
|
||||
@ -834,89 +819,89 @@
|
||||
proxy-from-env "^1.1.0"
|
||||
which "^2.0.2"
|
||||
|
||||
"@sentry/core@7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.55.2.tgz#a3988393ab791eba5d7fe735dfecea5a615e9e50"
|
||||
integrity sha512-clzQirownxqADv9+fopyMJTHzaoWedkN2+mi4ro1LxjLgROdXBFurMCC1nT+7cH/xvQ5gMIRkM/y/4gRtKy2Ew==
|
||||
"@sentry/core@7.58.1":
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.58.1.tgz#d4010f2b0bcfe87b57fa490c0c7ab7a567ed4707"
|
||||
integrity sha512-hpeB5fZ5T6Jg1CBqz486jHgWuJ5R/HD0wyYX+S3LDDsHCJo6V3TxNuoxYDlTTerRRfZdTwr9GYJXskehpU26IA==
|
||||
dependencies:
|
||||
"@sentry/types" "7.55.2"
|
||||
"@sentry/utils" "7.55.2"
|
||||
tslib "^1.9.3"
|
||||
"@sentry/types" "7.58.1"
|
||||
"@sentry/utils" "7.58.1"
|
||||
tslib "^2.4.1 || ^1.9.3"
|
||||
|
||||
"@sentry/integrations@7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.55.2.tgz#f4d528f95a36748c10a5edf40e28207b2abe2d02"
|
||||
integrity sha512-QgHx7MKMLMx1e5XgQyeUYtZA+xPc7IjS0MaZTpIRehtxD8Fg1tWkOxV4PP2nUXksLjfkoISo0jpYLtuDSCGFTw==
|
||||
"@sentry/integrations@7.58.1":
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.58.1.tgz#da033779e244cbed56598f94382a9e1da2e50371"
|
||||
integrity sha512-fKZV/QDPM7rIZhaJpFwgxD4rzWLtRuag7cOWfvHCsezJnhXEF8u45sBak/VWmSr8SbcvJAIJSZbWYi0N91hNHQ==
|
||||
dependencies:
|
||||
"@sentry/types" "7.55.2"
|
||||
"@sentry/utils" "7.55.2"
|
||||
"@sentry/types" "7.58.1"
|
||||
"@sentry/utils" "7.58.1"
|
||||
localforage "^1.8.1"
|
||||
tslib "^1.9.3"
|
||||
tslib "^2.4.1 || ^1.9.3"
|
||||
|
||||
"@sentry/nextjs@^7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-7.55.2.tgz#03a6d6779b30d25bb87e4bbfaba4457b40eae0ab"
|
||||
integrity sha512-YIq/gLMCCdcKmPln5zglWHKwQB8KWGblOJ19t/JuHSyffWXL1x1IYyBYgpdjzn6q0AgwsK4IM6TqTb3ISN8wLQ==
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-7.58.1.tgz#16f87ed26e4f8f474ee41f16f6e20a7ac7672904"
|
||||
integrity sha512-/wNVWNJ4vdVHBAvbnjbrRfAX3YhGvdC/CR9IAN5h0tTNjD/LFaHUN97/MUn9oZ7FpFgOOveM5bqK/5b6QRCBCg==
|
||||
dependencies:
|
||||
"@rollup/plugin-commonjs" "24.0.0"
|
||||
"@sentry/core" "7.55.2"
|
||||
"@sentry/integrations" "7.55.2"
|
||||
"@sentry/node" "7.55.2"
|
||||
"@sentry/react" "7.55.2"
|
||||
"@sentry/types" "7.55.2"
|
||||
"@sentry/utils" "7.55.2"
|
||||
"@sentry/core" "7.58.1"
|
||||
"@sentry/integrations" "7.58.1"
|
||||
"@sentry/node" "7.58.1"
|
||||
"@sentry/react" "7.58.1"
|
||||
"@sentry/types" "7.58.1"
|
||||
"@sentry/utils" "7.58.1"
|
||||
"@sentry/webpack-plugin" "1.20.0"
|
||||
chalk "3.0.0"
|
||||
rollup "2.78.0"
|
||||
stacktrace-parser "^0.1.10"
|
||||
tslib "^1.9.3"
|
||||
tslib "^2.4.1 || ^1.9.3"
|
||||
|
||||
"@sentry/node@7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.55.2.tgz#4d63bc585816b64fc1ce67cbdfd896b5733eb804"
|
||||
integrity sha512-43lGfMFFUD38Xerc4DqIuQkEOETHCh31JHUTI6r/gXdzmcKpWRscgH4nAcAUoCu+Myrv0fVXsOa12FM4DPfr8A==
|
||||
"@sentry/node@7.58.1":
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.58.1.tgz#fc48b8f6ddfa0402cfdec3706cf162df60052b32"
|
||||
integrity sha512-XsSu0xg5SYcltMbatnRBcIZw9pXwGJoGbYDLuPhhuqBz2mnQ0mQ9Try9dn/agDU7KZzT0IyA1qkPXk0NkMe3rw==
|
||||
dependencies:
|
||||
"@sentry-internal/tracing" "7.55.2"
|
||||
"@sentry/core" "7.55.2"
|
||||
"@sentry/types" "7.55.2"
|
||||
"@sentry/utils" "7.55.2"
|
||||
"@sentry-internal/tracing" "7.58.1"
|
||||
"@sentry/core" "7.58.1"
|
||||
"@sentry/types" "7.58.1"
|
||||
"@sentry/utils" "7.58.1"
|
||||
cookie "^0.4.1"
|
||||
https-proxy-agent "^5.0.0"
|
||||
lru_map "^0.3.3"
|
||||
tslib "^1.9.3"
|
||||
tslib "^2.4.1 || ^1.9.3"
|
||||
|
||||
"@sentry/react@7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.55.2.tgz#2b13ffe30dd1e7f8fa6dc104e7b3736c8f41ae06"
|
||||
integrity sha512-7LqM8vQ73boESaOJ9TOmyVKfkUuLHMHU89ltKYsi4s6816Z6cuJ6UcAVUt0Ks4iLzNCVRVJ5OqeY37ge7pEaTA==
|
||||
"@sentry/react@7.58.1":
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.58.1.tgz#b0901f75ceddaa0ffa5afd36964da50314cd6e69"
|
||||
integrity sha512-0fh2JfKBxPU6Pm11PBt/5DgDg+l0cKcOf1WGhCWsBcFmRE2gAax+Q09+1fWm6+dqtg3piVR8AEEU6ZCBk3l4OQ==
|
||||
dependencies:
|
||||
"@sentry/browser" "7.55.2"
|
||||
"@sentry/types" "7.55.2"
|
||||
"@sentry/utils" "7.55.2"
|
||||
"@sentry/browser" "7.58.1"
|
||||
"@sentry/types" "7.58.1"
|
||||
"@sentry/utils" "7.58.1"
|
||||
hoist-non-react-statics "^3.3.2"
|
||||
tslib "^1.9.3"
|
||||
tslib "^2.4.1 || ^1.9.3"
|
||||
|
||||
"@sentry/replay@7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.55.2.tgz#001eeb4d0dd900630ddfcea99185556b0699c12a"
|
||||
integrity sha512-G9iAcI9bvy5X8fvdz0QxF3LJ8oGB0Vxt0iOPdRZYhjIcPbNpE3NaeT6xZlNX1pCcHLroE6BMRF/6TTalcl5Erw==
|
||||
"@sentry/replay@7.58.1":
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.58.1.tgz#daa389ba215f90f6579c388f67a9cf34b613c3a9"
|
||||
integrity sha512-KKlpIxGrH1deTr/R3BErX8y16MnOzEylBVVn2I31BglLoZETFS9JAle6JNOgGxS5apFjwdQmD+69vX/mlVhMow==
|
||||
dependencies:
|
||||
"@sentry/core" "7.55.2"
|
||||
"@sentry/types" "7.55.2"
|
||||
"@sentry/utils" "7.55.2"
|
||||
"@sentry/core" "7.58.1"
|
||||
"@sentry/types" "7.58.1"
|
||||
"@sentry/utils" "7.58.1"
|
||||
|
||||
"@sentry/types@7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.55.2.tgz#1abd2e02308fcd9ff3e0ac0a56c6d67e36764964"
|
||||
integrity sha512-mAtkA8wvUDrLjAAmy9tjn+NiXcxVz/ltbslTKaIW6JNgVRz5kMt1Ny8RJsgqaZqa4LFP8q+IvWw4Vd91kb57rA==
|
||||
"@sentry/types@7.58.1":
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.58.1.tgz#c67f99f9af82ea930cdf895d71ae049575e38bf7"
|
||||
integrity sha512-OnKG+yrilPBeVNQK3biF0u/4IDjwH+boJU1XzJOnYdMRO8uzTWxvaRqpt0C8sVE9VAetRi2eutkzOgCXZISRrw==
|
||||
|
||||
"@sentry/utils@7.55.2":
|
||||
version "7.55.2"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.55.2.tgz#6a214c867c73305faac0997bdef4581f3bee0128"
|
||||
integrity sha512-Yv9XtbOESdN7bkK2AMrKsmKMF5OOVv5v5hVcOqXtSTw1t2oMAtRjXXqGpUo+TkdTOjeoX6dr19ozVFHaGvqHkw==
|
||||
"@sentry/utils@7.58.1":
|
||||
version "7.58.1"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.58.1.tgz#b5e8ee53ce2f8ba7833a4a4e28044eaa1da9fa2f"
|
||||
integrity sha512-iC9xZJBHp4+MDrZjKwcmMUhI5sTmpUcttwmsJL9HA6ACW+L1XX2eGSDky5pSlhhVFR7q7jJnQ7YUlMQ/jcd8eQ==
|
||||
dependencies:
|
||||
"@sentry/types" "7.55.2"
|
||||
tslib "^1.9.3"
|
||||
"@sentry/types" "7.58.1"
|
||||
tslib "^2.4.1 || ^1.9.3"
|
||||
|
||||
"@sentry/webpack-plugin@1.20.0":
|
||||
version "1.20.0"
|
||||
@ -938,17 +923,17 @@
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@tanstack/query-core@4.29.14":
|
||||
version "4.29.14"
|
||||
resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.29.14.tgz#569de51719a0f4445fabff775012d5c09a173b96"
|
||||
integrity sha512-ElEAahtLWA7Y7c2Haw10KdEf2tx+XZl/Z8dmyWxZehxWK3TPL5qtXtb7kUEhvt/8u2cSP62fLxgh2qqzMMGnDQ==
|
||||
"@tanstack/query-core@4.29.25":
|
||||
version "4.29.25"
|
||||
resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.29.25.tgz#605d357968a740544af6754004eed1dfd4587cb8"
|
||||
integrity sha512-DI4y4VC6Uw4wlTpOocEXDky69xeOScME1ezLKsj+hOk7DguC9fkqXtp6Hn39BVb9y0b5IBrY67q6kIX623Zj4Q==
|
||||
|
||||
"@tanstack/react-query@^4.29.14":
|
||||
version "4.29.14"
|
||||
resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.29.14.tgz#5e836d470c1c85d1aa3e53a6fc64f788dddb2ee5"
|
||||
integrity sha512-wh4bd/QIy85YgTDBtj/7/9ZkpRX41QdZuUL8xKoSzuMCukXvAE1/oJ4p0F15lqQq9W3g2pgcbr2Aa+CNvqABhg==
|
||||
"@tanstack/react-query@^4.29.25":
|
||||
version "4.29.25"
|
||||
resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.29.25.tgz#64df3260b65760fbd3c81ffae23b7b3802c71aa6"
|
||||
integrity sha512-c1+Ezu+XboYrdAMdusK2fTdRqXPMgPAnyoTrzHOZQqr8Hqz6PNvV9DSKl8agUo6nXX4np7fdWabIprt+838dLg==
|
||||
dependencies:
|
||||
"@tanstack/query-core" "4.29.14"
|
||||
"@tanstack/query-core" "4.29.25"
|
||||
use-sync-external-store "^1.2.0"
|
||||
|
||||
"@testing-library/dom@^9.0.0":
|
||||
@ -1086,10 +1071,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.2.tgz#8fd63447e3f99aba6c3168fd2ec4580d5b97886f"
|
||||
integrity sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g==
|
||||
|
||||
"@types/node@^20.2.1":
|
||||
version "20.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
|
||||
integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
|
||||
"@types/node@^20.4.2":
|
||||
version "20.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.2.tgz#129cc9ae69f93824f92fac653eebfb4812ab4af9"
|
||||
integrity sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==
|
||||
|
||||
"@types/parse-json@^4.0.0":
|
||||
version "4.0.0"
|
||||
@ -1221,11 +1206,16 @@ acorn-walk@^8.0.0, acorn-walk@^8.1.1:
|
||||
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
|
||||
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
|
||||
|
||||
acorn@^8.0.4, acorn@^8.4.1, acorn@^8.8.0:
|
||||
acorn@^8.0.4, acorn@^8.4.1:
|
||||
version "8.8.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
|
||||
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
|
||||
|
||||
acorn@^8.9.0:
|
||||
version "8.10.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
|
||||
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
|
||||
|
||||
agent-base@6:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
|
||||
@ -1461,6 +1451,13 @@ buffer-from@~0.1.1:
|
||||
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0"
|
||||
integrity sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==
|
||||
|
||||
busboy@1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
|
||||
integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
|
||||
dependencies:
|
||||
streamsearch "^1.1.0"
|
||||
|
||||
calculate-size@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/calculate-size/-/calculate-size-1.1.1.tgz#ae7caa1c7795f82c4f035dc7be270e3581dae3ee"
|
||||
@ -1683,10 +1680,10 @@ damerau-levenshtein@^1.0.8:
|
||||
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
|
||||
integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
|
||||
|
||||
dayjs@^1.11.8:
|
||||
version "1.11.8"
|
||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.8.tgz#4282f139c8c19dd6d0c7bd571e30c2d0ba7698ea"
|
||||
integrity sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==
|
||||
dayjs@^1.11.9:
|
||||
version "1.11.9"
|
||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a"
|
||||
integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==
|
||||
|
||||
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2:
|
||||
version "4.3.4"
|
||||
@ -2026,12 +2023,12 @@ escape-string-regexp@^4.0.0:
|
||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
|
||||
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
|
||||
|
||||
eslint-config-next@13.4.6:
|
||||
version "13.4.6"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.4.6.tgz#ccccf5dad45b23a56418d66caad5339116297308"
|
||||
integrity sha512-nlv4FYish1RYYHILbQwM5/rD37cOvEqtMfDjtQCYbXdE2O3MggqHu2q6IDeLE2Z6u8ZJyNPgWOA6OimWcxj3qw==
|
||||
eslint-config-next@13.4.10:
|
||||
version "13.4.10"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.4.10.tgz#59eaa37c805337972351b9920b1c28a79a14173e"
|
||||
integrity sha512-+JjcM6lQmFR5Mw0ORm9o1CR29+z/uajgSfYAPEGIBxOhTHBgCMs7ysuwi72o7LkMmA8E3N7/h09pSGZxs0s85g==
|
||||
dependencies:
|
||||
"@next/eslint-plugin-next" "13.4.6"
|
||||
"@next/eslint-plugin-next" "13.4.10"
|
||||
"@rushstack/eslint-patch" "^1.1.3"
|
||||
"@typescript-eslint/parser" "^5.42.0"
|
||||
eslint-import-resolver-node "^0.3.6"
|
||||
@ -2039,7 +2036,7 @@ eslint-config-next@13.4.6:
|
||||
eslint-plugin-import "^2.26.0"
|
||||
eslint-plugin-jsx-a11y "^6.5.1"
|
||||
eslint-plugin-react "^7.31.7"
|
||||
eslint-plugin-react-hooks "^4.5.0"
|
||||
eslint-plugin-react-hooks "5.0.0-canary-7118f5dd7-20230705"
|
||||
|
||||
eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7:
|
||||
version "0.3.7"
|
||||
@ -2113,17 +2110,18 @@ eslint-plugin-jsx-a11y@^6.5.1:
|
||||
object.fromentries "^2.0.6"
|
||||
semver "^6.3.0"
|
||||
|
||||
eslint-plugin-prettier@^4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b"
|
||||
integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
|
||||
eslint-plugin-prettier@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz#6887780ed95f7708340ec79acfdf60c35b9be57a"
|
||||
integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==
|
||||
dependencies:
|
||||
prettier-linter-helpers "^1.0.0"
|
||||
synckit "^0.8.5"
|
||||
|
||||
eslint-plugin-react-hooks@^4.5.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3"
|
||||
integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
|
||||
eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705:
|
||||
version "5.0.0-canary-7118f5dd7-20230705"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz#4d55c50e186f1a2b0636433d2b0b2f592ddbccfd"
|
||||
integrity sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==
|
||||
|
||||
eslint-plugin-react@^7.31.7:
|
||||
version "7.32.2"
|
||||
@ -2146,10 +2144,10 @@ eslint-plugin-react@^7.31.7:
|
||||
semver "^6.3.0"
|
||||
string.prototype.matchall "^4.0.8"
|
||||
|
||||
eslint-plugin-unused-imports@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz#d8db8c4d0cfa0637a8b51ce3fd7d1b6bc3f08520"
|
||||
integrity sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==
|
||||
eslint-plugin-unused-imports@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz#d25175b0072ff16a91892c3aa72a09ca3a9e69e7"
|
||||
integrity sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==
|
||||
dependencies:
|
||||
eslint-rule-composer "^0.3.0"
|
||||
|
||||
@ -2176,15 +2174,15 @@ eslint-visitor-keys@^3.4.1:
|
||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994"
|
||||
integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==
|
||||
|
||||
eslint@8.43.0:
|
||||
version "8.43.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094"
|
||||
integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==
|
||||
eslint@8.45.0:
|
||||
version "8.45.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78"
|
||||
integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.2.0"
|
||||
"@eslint-community/regexpp" "^4.4.0"
|
||||
"@eslint/eslintrc" "^2.0.3"
|
||||
"@eslint/js" "8.43.0"
|
||||
"@eslint/eslintrc" "^2.1.0"
|
||||
"@eslint/js" "8.44.0"
|
||||
"@humanwhocodes/config-array" "^0.11.10"
|
||||
"@humanwhocodes/module-importer" "^1.0.1"
|
||||
"@nodelib/fs.walk" "^1.2.8"
|
||||
@ -2196,7 +2194,7 @@ eslint@8.43.0:
|
||||
escape-string-regexp "^4.0.0"
|
||||
eslint-scope "^7.2.0"
|
||||
eslint-visitor-keys "^3.4.1"
|
||||
espree "^9.5.2"
|
||||
espree "^9.6.0"
|
||||
esquery "^1.4.2"
|
||||
esutils "^2.0.2"
|
||||
fast-deep-equal "^3.1.3"
|
||||
@ -2206,7 +2204,6 @@ eslint@8.43.0:
|
||||
globals "^13.19.0"
|
||||
graphemer "^1.4.0"
|
||||
ignore "^5.2.0"
|
||||
import-fresh "^3.0.0"
|
||||
imurmurhash "^0.1.4"
|
||||
is-glob "^4.0.0"
|
||||
is-path-inside "^3.0.3"
|
||||
@ -2216,17 +2213,16 @@ eslint@8.43.0:
|
||||
lodash.merge "^4.6.2"
|
||||
minimatch "^3.1.2"
|
||||
natural-compare "^1.4.0"
|
||||
optionator "^0.9.1"
|
||||
optionator "^0.9.3"
|
||||
strip-ansi "^6.0.1"
|
||||
strip-json-comments "^3.1.0"
|
||||
text-table "^0.2.0"
|
||||
|
||||
espree@^9.5.2:
|
||||
version "9.5.2"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b"
|
||||
integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==
|
||||
espree@^9.6.0:
|
||||
version "9.6.1"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
|
||||
integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
|
||||
dependencies:
|
||||
acorn "^8.8.0"
|
||||
acorn "^8.9.0"
|
||||
acorn-jsx "^5.3.2"
|
||||
eslint-visitor-keys "^3.4.1"
|
||||
|
||||
@ -2730,7 +2726,7 @@ immediate@~3.0.5:
|
||||
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
|
||||
integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
|
||||
|
||||
import-fresh@^3.0.0, import-fresh@^3.2.1:
|
||||
import-fresh@^3.2.1:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
|
||||
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
|
||||
@ -3056,10 +3052,10 @@ jsonc-parser@^3.2.0:
|
||||
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76"
|
||||
integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==
|
||||
|
||||
jsonwebtoken@^9.0.0:
|
||||
version "9.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d"
|
||||
integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==
|
||||
jsonwebtoken@^9.0.1:
|
||||
version "9.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz#81d8c901c112c24e497a55daf6b2be1225b40145"
|
||||
integrity sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==
|
||||
dependencies:
|
||||
jws "^3.2.2"
|
||||
lodash "^4.17.21"
|
||||
@ -3351,30 +3347,27 @@ natural-compare@^1.4.0:
|
||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
|
||||
|
||||
next@13.2.3:
|
||||
version "13.2.3"
|
||||
resolved "https://registry.yarnpkg.com/next/-/next-13.2.3.tgz#92d170e7aca421321f230ff80c35c4751035f42e"
|
||||
integrity sha512-nKFJC6upCPN7DWRx4+0S/1PIOT7vNlCT157w9AzbXEgKy6zkiPKEt5YyRUsRZkmpEqBVrGgOqNfwecTociyg+w==
|
||||
next@13.3.0:
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/next/-/next-13.3.0.tgz#40632d303d74fc8521faa0a5bf4a033a392749b1"
|
||||
integrity sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==
|
||||
dependencies:
|
||||
"@next/env" "13.2.3"
|
||||
"@next/env" "13.3.0"
|
||||
"@swc/helpers" "0.4.14"
|
||||
busboy "1.6.0"
|
||||
caniuse-lite "^1.0.30001406"
|
||||
postcss "8.4.14"
|
||||
styled-jsx "5.1.1"
|
||||
optionalDependencies:
|
||||
"@next/swc-android-arm-eabi" "13.2.3"
|
||||
"@next/swc-android-arm64" "13.2.3"
|
||||
"@next/swc-darwin-arm64" "13.2.3"
|
||||
"@next/swc-darwin-x64" "13.2.3"
|
||||
"@next/swc-freebsd-x64" "13.2.3"
|
||||
"@next/swc-linux-arm-gnueabihf" "13.2.3"
|
||||
"@next/swc-linux-arm64-gnu" "13.2.3"
|
||||
"@next/swc-linux-arm64-musl" "13.2.3"
|
||||
"@next/swc-linux-x64-gnu" "13.2.3"
|
||||
"@next/swc-linux-x64-musl" "13.2.3"
|
||||
"@next/swc-win32-arm64-msvc" "13.2.3"
|
||||
"@next/swc-win32-ia32-msvc" "13.2.3"
|
||||
"@next/swc-win32-x64-msvc" "13.2.3"
|
||||
"@next/swc-darwin-arm64" "13.3.0"
|
||||
"@next/swc-darwin-x64" "13.3.0"
|
||||
"@next/swc-linux-arm64-gnu" "13.3.0"
|
||||
"@next/swc-linux-arm64-musl" "13.3.0"
|
||||
"@next/swc-linux-x64-gnu" "13.3.0"
|
||||
"@next/swc-linux-x64-musl" "13.3.0"
|
||||
"@next/swc-win32-arm64-msvc" "13.3.0"
|
||||
"@next/swc-win32-ia32-msvc" "13.3.0"
|
||||
"@next/swc-win32-x64-msvc" "13.3.0"
|
||||
|
||||
node-fetch@2.6.7:
|
||||
version "2.6.7"
|
||||
@ -3484,17 +3477,17 @@ opener@^1.5.2:
|
||||
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
|
||||
integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
|
||||
|
||||
optionator@^0.9.1:
|
||||
version "0.9.1"
|
||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
|
||||
integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
|
||||
optionator@^0.9.3:
|
||||
version "0.9.3"
|
||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
|
||||
integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
|
||||
dependencies:
|
||||
"@aashutoshrathi/word-wrap" "^1.2.3"
|
||||
deep-is "^0.1.3"
|
||||
fast-levenshtein "^2.0.6"
|
||||
levn "^0.4.1"
|
||||
prelude-ls "^1.2.1"
|
||||
type-check "^0.4.0"
|
||||
word-wrap "^1.2.3"
|
||||
|
||||
p-cancelable@^3.0.0:
|
||||
version "3.0.0"
|
||||
@ -3610,10 +3603,10 @@ prettier-linter-helpers@^1.0.0:
|
||||
dependencies:
|
||||
fast-diff "^1.1.2"
|
||||
|
||||
prettier@^2.8.8:
|
||||
version "2.8.8"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
|
||||
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
|
||||
prettier@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae"
|
||||
integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==
|
||||
|
||||
pretty-format@^27.0.2:
|
||||
version "27.5.1"
|
||||
@ -3728,10 +3721,10 @@ react-hot-toast@^2.4.1:
|
||||
dependencies:
|
||||
goober "^2.1.10"
|
||||
|
||||
react-icons@^4.9.0:
|
||||
version "4.9.0"
|
||||
resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.9.0.tgz#ba44f436a053393adb1bdcafbc5c158b7b70d2a3"
|
||||
integrity sha512-ijUnFr//ycebOqujtqtV9PFS7JjhWg0QU6ykURVHuL4cbofvRCf3f6GMn9+fBktEFQOIVZnuAYLZdiyadRQRFg==
|
||||
react-icons@^4.10.1:
|
||||
version "4.10.1"
|
||||
resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.10.1.tgz#3f3b5eec1f63c1796f6a26174a1091ca6437a500"
|
||||
integrity sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==
|
||||
|
||||
react-is@^16.13.1, react-is@^16.7.0:
|
||||
version "16.13.1"
|
||||
@ -3811,10 +3804,10 @@ react-use-gesture@^8.0.1:
|
||||
resolved "https://registry.yarnpkg.com/react-use-gesture/-/react-use-gesture-8.0.1.tgz#4360c0f7c9e26baf9fbe58f63fc9de7ef699c17f"
|
||||
integrity sha512-CXzUNkulUdgouaAlvAsC5ZVo0fi9KGSBSk81WrE4kOIcJccpANe9zZkAYr5YZZhqpicIFxitsrGVS4wmoMun9A==
|
||||
|
||||
react-zoom-pan-pinch@^3.0.8:
|
||||
version "3.0.8"
|
||||
resolved "https://registry.yarnpkg.com/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.0.8.tgz#c649d644e8aef239afe678a65fd618e65746ddc9"
|
||||
integrity sha512-z6O5SV5X+XBo/LLO59PgzNE2WT+tp8lw1w3M0y138jCXViwHWKK1MqorICbmSVSOOD5Fa2o6pcg1ppJj9vzqJA==
|
||||
react-zoom-pan-pinch@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.1.0.tgz#d87a66fd22a97f5dd56b54076411a9dce1f448cd"
|
||||
integrity sha512-a3LlP8QPgTikvteCNkZ3X6wIWC0lrg1geP5WkUJyx2MXXAhHQek3r17N1nT/esOiWGuPIECnsd9AGoK8jOeGcg==
|
||||
|
||||
react@^18.2.0:
|
||||
version "18.2.0"
|
||||
@ -4102,6 +4095,11 @@ stop-iteration-iterator@^1.0.0:
|
||||
dependencies:
|
||||
internal-slot "^1.0.4"
|
||||
|
||||
streamsearch@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
|
||||
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
|
||||
|
||||
string.prototype.matchall@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3"
|
||||
@ -4167,7 +4165,7 @@ strip-bom@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
|
||||
integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
|
||||
|
||||
strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
|
||||
strip-json-comments@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
|
||||
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
|
||||
@ -4233,7 +4231,7 @@ supports-preserve-symlinks-flag@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||
|
||||
synckit@^0.8.4:
|
||||
synckit@^0.8.4, synckit@^0.8.5:
|
||||
version "0.8.5"
|
||||
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3"
|
||||
integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==
|
||||
@ -4364,7 +4362,7 @@ tslib@2.4.0:
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
|
||||
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
|
||||
|
||||
tslib@^1.8.1, tslib@^1.9.3:
|
||||
tslib@^1.8.1:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
@ -4374,6 +4372,11 @@ tslib@^2.0.0, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0:
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
|
||||
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
|
||||
|
||||
"tslib@^2.4.1 || ^1.9.3":
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3"
|
||||
integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==
|
||||
|
||||
tsutils@^3.21.0:
|
||||
version "3.21.0"
|
||||
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
|
||||
@ -4407,10 +4410,10 @@ typed-array-length@^1.0.4:
|
||||
for-each "^0.3.3"
|
||||
is-typed-array "^1.1.9"
|
||||
|
||||
typescript@5.0.4:
|
||||
version "5.0.4"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
|
||||
integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
|
||||
typescript@5.1.6:
|
||||
version "5.1.6"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274"
|
||||
integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==
|
||||
|
||||
unbox-primitive@^1.0.2:
|
||||
version "1.0.2"
|
||||
@ -4572,11 +4575,6 @@ which@^2.0.1, which@^2.0.2:
|
||||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
word-wrap@^1.2.3:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
|
||||
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
|
||||
|
||||
wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
@ -4634,9 +4632,9 @@ yocto-queue@^0.1.0:
|
||||
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
||||
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
|
||||
|
||||
zustand@^4.3.8:
|
||||
version "4.3.8"
|
||||
resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.8.tgz#37113df8e9e1421b0be1b2dca02b49b76210e7c4"
|
||||
integrity sha512-4h28KCkHg5ii/wcFFJ5Fp+k1J3gJoasaIbppdgZFO4BPJnsNxL0mQXBSFgOgAdCdBj35aDTPvdAJReTMntFPGg==
|
||||
zustand@^4.3.9:
|
||||
version "4.3.9"
|
||||
resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.9.tgz#a7d4332bbd75dfd25c6848180b3df1407217f2ad"
|
||||
integrity sha512-Tat5r8jOMG1Vcsj8uldMyqYKC5IZvQif8zetmLHs9WoZlntTHmIoNM8TpLRY31ExncuUvUOXehd0kvahkuHjDw==
|
||||
dependencies:
|
||||
use-sync-external-store "1.2.0"
|
||||
|
Loading…
x
Reference in New Issue
Block a user