diff --git a/default.conf b/default.conf
index 86620390b46..87387483ddf 100644
--- a/default.conf
+++ b/default.conf
@@ -11,18 +11,11 @@ server {
try_files $uri /widget.html;
}
- location /embed {
- try_files $uri /embed.html;
- }
-
location /docs {
try_files $uri /docs.html;
}
- location /oss {
- try_files $uri /oss.html;
- }
location /pricing {
try_files $uri /pricing.html;
diff --git a/next-env.d.ts b/next-env.d.ts
index fd36f9494e2..4f11a03dc6c 100644
--- a/next-env.d.ts
+++ b/next-env.d.ts
@@ -1,6 +1,5 @@
///
///
-///
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/next.config.js b/next.config.js
index e9e1d8ff063..211ca052c8d 100644
--- a/next.config.js
+++ b/next.config.js
@@ -14,6 +14,9 @@ const config = {
compiler: {
styledComponents: true,
},
+ experimental: {
+ optimizePackageImports: ["@mantine/core", "@mantine/hooks"],
+ },
webpack: config => {
config.resolve.fallback = { fs: false };
config.output.webassemblyModuleFilename = "static/wasm/[modulehash].wasm";
diff --git a/package.json b/package.json
index 2fd03b71395..aaecb4d5c0b 100644
--- a/package.json
+++ b/package.json
@@ -14,17 +14,18 @@
"analyze": "ANALYZE=true npm run build"
},
"dependencies": {
- "@mantine/code-highlight": "^7.4.1",
- "@mantine/core": "^7.4.1",
- "@mantine/hooks": "^7.4.1",
+ "@mantine/code-highlight": "^7.5.1",
+ "@mantine/core": "^7.5.1",
+ "@mantine/dropzone": "^7.5.1",
+ "@mantine/hooks": "^7.5.1",
"@monaco-editor/react": "^4.6.0",
- "@sentry/nextjs": "^7.94.1",
- "@supabase/auth-helpers-nextjs": "^0.8.7",
+ "@sentry/nextjs": "^7.99.0",
+ "@supabase/auth-helpers-nextjs": "^0.9.0",
"@supabase/auth-helpers-react": "^0.4.2",
"@supabase/supabase-js": "^2.39.3",
"@tanstack/react-query": "^4.36.1",
- "allotment": "^1.19.5",
- "axios": "^1.6.5",
+ "allotment": "^1.20.0",
+ "axios": "^1.6.7",
"dayjs": "^1.11.10",
"gofmt.js": "^0.0.2",
"html-to-image": "^1.11.11",
@@ -44,8 +45,8 @@
"lodash.unset": "^4.5.2",
"lodash.update": "^4.10.2",
"maketypes": "^1.1.2",
- "million": "^2.6.4",
- "next": "13.5.6",
+ "million": "^3.0.2",
+ "next": "14.1.0",
"pako": "^2.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
@@ -73,9 +74,9 @@
"@types/lodash.set": "^4.3.9",
"@types/lodash.unset": "^4.5.9",
"@types/lodash.update": "^4.10.9",
- "@types/node": "^20.4.7",
+ "@types/node": "^20.11.16",
"@types/pako": "^2.0.3",
- "@types/react": "18.2.45",
+ "@types/react": "18.2.51",
"@types/react-dom": "^18.2.18",
"eslint": "8.56.0",
"eslint-config-next": "14.0.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4dc26a6633f..3b1e6be799d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -6,23 +6,26 @@ settings:
dependencies:
'@mantine/code-highlight':
- specifier: ^7.4.1
- version: 7.4.1(@mantine/core@7.4.1)(@mantine/hooks@7.4.1)(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^7.5.1
+ version: 7.5.1(@mantine/core@7.5.1)(@mantine/hooks@7.5.1)(react-dom@18.2.0)(react@18.2.0)
'@mantine/core':
- specifier: ^7.4.1
- version: 7.4.1(@mantine/hooks@7.4.1)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^7.5.1
+ version: 7.5.1(@mantine/hooks@7.5.1)(@types/react@18.2.51)(react-dom@18.2.0)(react@18.2.0)
+ '@mantine/dropzone':
+ specifier: ^7.5.1
+ version: 7.5.1(@mantine/core@7.5.1)(@mantine/hooks@7.5.1)(react-dom@18.2.0)(react@18.2.0)
'@mantine/hooks':
- specifier: ^7.4.1
- version: 7.4.1(react@18.2.0)
+ specifier: ^7.5.1
+ version: 7.5.1(react@18.2.0)
'@monaco-editor/react':
specifier: ^4.6.0
version: 4.6.0(monaco-editor@0.45.0)(react-dom@18.2.0)(react@18.2.0)
'@sentry/nextjs':
- specifier: ^7.94.1
- version: 7.94.1(next@14.1.0)(react@18.2.0)
+ specifier: ^7.99.0
+ version: 7.99.0(next@14.1.0)(react@18.2.0)
'@supabase/auth-helpers-nextjs':
- specifier: ^0.8.7
- version: 0.8.7(@supabase/supabase-js@2.39.3)
+ specifier: ^0.9.0
+ version: 0.9.0(@supabase/supabase-js@2.39.3)
'@supabase/auth-helpers-react':
specifier: ^0.4.2
version: 0.4.2(@supabase/supabase-js@2.39.3)
@@ -33,11 +36,11 @@ dependencies:
specifier: ^4.36.1
version: 4.36.1(react-dom@18.2.0)(react@18.2.0)
allotment:
- specifier: ^1.19.5
- version: 1.19.5(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^1.20.0
+ version: 1.20.0(react-dom@18.2.0)(react@18.2.0)
axios:
- specifier: ^1.6.5
- version: 1.6.5
+ specifier: ^1.6.7
+ version: 1.6.7
dayjs:
specifier: ^1.11.10
version: 1.11.10
@@ -96,11 +99,11 @@ dependencies:
specifier: ^1.1.2
version: 1.1.2
million:
- specifier: ^2.6.4
- version: 2.6.4
+ specifier: ^3.0.2
+ version: 3.0.2
next:
- specifier: 13.5.6
- version: 13.5.6(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 14.1.0
+ version: 14.1.0(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0)
pako:
specifier: ^2.1.0
version: 2.1.0
@@ -121,7 +124,7 @@ dependencies:
version: 5.0.1(react@18.2.0)
react-json-tree:
specifier: ^0.18.0
- version: 0.18.0(@types/react@18.2.48)(react@18.2.0)
+ version: 0.18.0(@types/react@18.2.51)(react@18.2.0)
react-linkify-it:
specifier: ^1.0.8
version: 1.0.8(react@18.2.0)
@@ -144,8 +147,8 @@ dependencies:
specifier: ^3.2.0
version: 3.2.0(react@18.2.0)
zustand:
- specifier: ^4.5.0
- version: 4.5.0(@types/react@18.2.48)(react@18.2.0)
+ specifier: ^4.4.7
+ version: 4.5.0(@types/react@18.2.51)(react@18.2.0)
devDependencies:
'@next/bundle-analyzer':
@@ -153,7 +156,7 @@ devDependencies:
version: 14.1.0
'@trivago/prettier-plugin-sort-imports':
specifier: ^4.3.0
- version: 4.3.0(prettier@3.2.2)
+ version: 4.3.0(prettier@3.2.4)
'@types/js-yaml':
specifier: ^4.0.9
version: 4.0.9
@@ -179,14 +182,14 @@ devDependencies:
specifier: ^4.10.9
version: 4.10.9
'@types/node':
- specifier: ^20.4.7
- version: 20.4.7
+ specifier: ^20.11.16
+ version: 20.11.16
'@types/pako':
specifier: ^2.0.3
version: 2.0.3
'@types/react':
- specifier: 18.2.48
- version: 18.2.48
+ specifier: 18.2.51
+ version: 18.2.51
'@types/react-dom':
specifier: ^18.2.18
version: 18.2.18
@@ -194,27 +197,23 @@ devDependencies:
specifier: 8.56.0
version: 8.56.0
eslint-config-next:
- specifier: 14.1.0
- version: 14.1.0(eslint@8.56.0)(typescript@5.3.3)
+ specifier: 14.0.4
+ version: 14.0.4(eslint@8.56.0)(typescript@5.3.3)
eslint-config-prettier:
- specifier: ^9.1.0
- version: 9.1.0(eslint@8.56.0)
+ specifier: ^8.10.0
+ version: 8.10.0(eslint@8.56.0)
eslint-plugin-prettier:
specifier: ^5.1.3
- version: 5.1.3(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.2.2)
+ version: 5.1.3(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.2.4)
+ eslint-plugin-unused-imports:
+ specifier: ^3.0.0
+ version: 3.0.0(eslint@8.56.0)
prettier:
- specifier: ^3.2.4
- version: 3.2.4
- ts-node:
- specifier: ^10.9.2
- version: 10.9.2(@types/node@20.11.5)(typescript@5.3.3)
-=======
specifier: ^3.2.2
- version: 3.2.2
+ version: 3.2.4
ts-node:
specifier: ^10.9.2
- version: 10.9.2(@types/node@20.4.7)(typescript@5.3.3)
->>>>>>> bcfcc1c (feat: enable ai)
+ version: 10.9.2(@types/node@20.11.16)(typescript@5.3.3)
typescript:
specifier: 5.3.3
version: 5.3.3
@@ -231,7 +230,7 @@ packages:
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.20
+ '@jridgewell/trace-mapping': 0.3.22
dev: false
/@babel/code-frame@7.23.5:
@@ -246,20 +245,20 @@ packages:
engines: {node: '>=6.9.0'}
dev: false
- /@babel/core@7.23.7:
- resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==}
+ /@babel/core@7.23.9:
+ resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.2.1
'@babel/code-frame': 7.23.5
'@babel/generator': 7.23.6
'@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7)
- '@babel/helpers': 7.23.7
- '@babel/parser': 7.23.6
- '@babel/template': 7.22.15
- '@babel/traverse': 7.23.7
- '@babel/types': 7.23.6
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
+ '@babel/helpers': 7.23.9
+ '@babel/parser': 7.23.9
+ '@babel/template': 7.23.9
+ '@babel/traverse': 7.23.9
+ '@babel/types': 7.23.9
convert-source-map: 2.0.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@@ -282,9 +281,9 @@ packages:
resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
'@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.20
+ '@jridgewell/trace-mapping': 0.3.22
jsesc: 2.5.2
/@babel/helper-compilation-targets@7.23.6:
@@ -293,7 +292,7 @@ packages:
dependencies:
'@babel/compat-data': 7.23.5
'@babel/helper-validator-option': 7.23.5
- browserslist: 4.22.2
+ browserslist: 4.22.3
lru-cache: 5.1.1
semver: 6.3.1
dev: false
@@ -319,16 +318,16 @@ packages:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: false
- /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7):
+ /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-module-imports': 7.22.15
'@babel/helper-simple-access': 7.22.5
@@ -336,16 +335,11 @@ packages:
'@babel/helper-validator-identifier': 7.22.20
dev: false
- /@babel/helper-plugin-utils@7.22.5:
- resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
- engines: {node: '>=6.9.0'}
- dev: false
-
/@babel/helper-simple-access@7.22.5:
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: false
/@babel/helper-split-export-declaration@7.22.6:
@@ -367,13 +361,13 @@ packages:
engines: {node: '>=6.9.0'}
dev: false
- /@babel/helpers@7.23.7:
- resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==}
+ /@babel/helpers@7.23.9:
+ resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.22.15
- '@babel/traverse': 7.23.7
- '@babel/types': 7.23.6
+ '@babel/template': 7.23.9
+ '@babel/traverse': 7.23.9
+ '@babel/types': 7.23.9
transitivePeerDependencies:
- supports-color
dev: false
@@ -393,24 +387,12 @@ packages:
dependencies:
'@babel/types': 7.17.0
- /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7):
- resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-plugin-utils': 7.22.5
- dev: false
-
- /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7):
- resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
+ /@babel/parser@7.23.9:
+ resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
dependencies:
- '@babel/core': 7.23.7
- '@babel/helper-plugin-utils': 7.22.5
+ '@babel/types': 7.23.9
dev: false
/@babel/runtime@7.23.6:
@@ -420,12 +402,11 @@ packages:
regenerator-runtime: 0.14.1
dev: false
- /@babel/runtime@7.23.8:
- resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==}
+ /@babel/runtime@7.23.9:
+ resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.1
- dev: true
/@babel/template@7.22.15:
resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
@@ -435,6 +416,15 @@ packages:
'@babel/parser': 7.23.6
'@babel/types': 7.23.6
+ /@babel/template@7.23.9:
+ resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.23.5
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
+ dev: false
+
/@babel/traverse@7.23.2:
resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==}
engines: {node: '>=6.9.0'}
@@ -453,8 +443,8 @@ packages:
- supports-color
dev: true
- /@babel/traverse@7.23.7:
- resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==}
+ /@babel/traverse@7.23.9:
+ resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.23.5
@@ -463,8 +453,8 @@ packages:
'@babel/helper-function-name': 7.23.0
'@babel/helper-hoist-variables': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
- '@babel/parser': 7.23.6
- '@babel/types': 7.23.6
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
@@ -486,6 +476,14 @@ packages:
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
+ /@babel/types@7.23.9:
+ resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.23.4
+ '@babel/helper-validator-identifier': 7.22.20
+ to-fast-properties: 2.0.0
+
/@cspotcode/source-map-support@0.8.1:
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
@@ -563,26 +561,31 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@floating-ui/core@1.5.2:
- resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==}
+ /@fastify/busboy@2.1.0:
+ resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==}
+ engines: {node: '>=14'}
+ dev: false
+
+ /@floating-ui/core@1.6.0:
+ resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==}
dependencies:
- '@floating-ui/utils': 0.1.6
+ '@floating-ui/utils': 0.2.1
dev: false
- /@floating-ui/dom@1.5.3:
- resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==}
+ /@floating-ui/dom@1.6.1:
+ resolution: {integrity: sha512-iA8qE43/H5iGozC3W0YSnVSW42Vh522yyM1gj+BqRwVsTNOyr231PsXDaV04yT39PsO0QL2QpbI/M0ZaLUQgRQ==}
dependencies:
- '@floating-ui/core': 1.5.2
- '@floating-ui/utils': 0.1.6
+ '@floating-ui/core': 1.6.0
+ '@floating-ui/utils': 0.2.1
dev: false
- /@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==}
+ /@floating-ui/react-dom@2.0.8(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
- '@floating-ui/dom': 1.5.3
+ '@floating-ui/dom': 1.6.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
@@ -593,15 +596,15 @@ packages:
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
- '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0)(react@18.2.0)
+ '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0)
aria-hidden: 1.2.3
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
tabbable: 6.2.0
dev: false
- /@floating-ui/utils@0.1.6:
- resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==}
+ /@floating-ui/utils@0.2.1:
+ resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==}
dev: false
/@humanwhocodes/config-array@0.11.13:
@@ -624,25 +627,13 @@ packages:
resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
dev: true
- /@isaacs/cliui@8.0.2:
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
- dependencies:
- string-width: 5.1.2
- string-width-cjs: /string-width@4.2.3
- strip-ansi: 7.1.0
- strip-ansi-cjs: /strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: /wrap-ansi@7.0.0
- dev: true
-
/@jridgewell/gen-mapping@0.3.3:
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.15
- '@jridgewell/trace-mapping': 0.3.20
+ '@jridgewell/trace-mapping': 0.3.22
/@jridgewell/resolve-uri@3.1.1:
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
@@ -655,8 +646,8 @@ packages:
/@jridgewell/sourcemap-codec@1.4.15:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
- /@jridgewell/trace-mapping@0.3.20:
- resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
+ /@jridgewell/trace-mapping@0.3.22:
+ resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==}
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
@@ -686,44 +677,59 @@ packages:
call-bind: 1.0.5
dev: false
- /@mantine/code-highlight@7.4.1(@mantine/core@7.4.1)(@mantine/hooks@7.4.1)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-zfUZuwP2hXnz3BC1H2tH/clc00NS36XQMmkMeVLTKDl8mU3vMiDPxjsODvrieLbat7rUfqaD9mqhJShwCL1D/g==}
+ /@mantine/code-highlight@7.5.1(@mantine/core@7.5.1)(@mantine/hooks@7.5.1)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-zCdJ911r7WacTC8aQb66oB299jhcnQCQ8uS1kXYioUvJ/lOc0aiFh659KokmUvIL6ZdowCvffwaodiUFDZcqBw==}
peerDependencies:
- '@mantine/core': 7.4.1
- '@mantine/hooks': 7.4.1
+ '@mantine/core': 7.5.1
+ '@mantine/hooks': 7.5.1
react: ^18.2.0
react-dom: ^18.2.0
dependencies:
- '@mantine/core': 7.4.1(@mantine/hooks@7.4.1)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)
- '@mantine/hooks': 7.4.1(react@18.2.0)
+ '@mantine/core': 7.5.1(@mantine/hooks@7.5.1)(@types/react@18.2.51)(react-dom@18.2.0)(react@18.2.0)
+ '@mantine/hooks': 7.5.1(react@18.2.0)
clsx: 2.0.0
highlight.js: 11.9.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@mantine/core@7.4.1(@mantine/hooks@7.4.1)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-crz9BemmwR8V/h6db9FgznCp0Ssp6rCUYkBBO4JprpH8NDSEblHyWcZZo43IuA1vZptp8eyrhRNJ4nfe8CAYFQ==}
+ /@mantine/core@7.5.1(@mantine/hooks@7.5.1)(@types/react@18.2.51)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-V7apuQuRubqxTRXb1uxOM43K7tkLRzpbb1ONJ/sj8QRp/26bShkdYp7EVuSKyrQ8DQ5EGYyBBGyzBOQARh41gA==}
peerDependencies:
- '@mantine/hooks': 7.4.1
+ '@mantine/hooks': 7.5.1
react: ^18.2.0
react-dom: ^18.2.0
dependencies:
'@floating-ui/react': 0.24.8(react-dom@18.2.0)(react@18.2.0)
- '@mantine/hooks': 7.4.1(react@18.2.0)
+ '@mantine/hooks': 7.5.1(react@18.2.0)
clsx: 2.0.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
react-number-format: 5.3.1(react-dom@18.2.0)(react@18.2.0)
- react-remove-scroll: 2.5.7(@types/react@18.2.48)(react@18.2.0)
- react-textarea-autosize: 8.5.3(@types/react@18.2.48)(react@18.2.0)
+ react-remove-scroll: 2.5.7(@types/react@18.2.51)(react@18.2.0)
+ react-textarea-autosize: 8.5.3(@types/react@18.2.51)(react@18.2.0)
type-fest: 3.13.1
transitivePeerDependencies:
- '@types/react'
dev: false
- /@mantine/hooks@7.4.1(react@18.2.0):
- resolution: {integrity: sha512-7gV9YR+xZ1L69MGVaSNwV0gaxIz4bCZuGxXTtnuaamDcO/4YiNDtmvdD7/jC/RTa1iJMnZ6YiYrcPXLOn+8saQ==}
+ /@mantine/dropzone@7.5.1(@mantine/core@7.5.1)(@mantine/hooks@7.5.1)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-pUQt7EwhDkTWbj4OLCbsvbkbp1vCXS6nGm8Y4pTrca1vR9S4+hilR6oULEY0UbQgHq+hfsWKDtnlhLkf45tJXA==}
+ peerDependencies:
+ '@mantine/core': 7.5.1
+ '@mantine/hooks': 7.5.1
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ dependencies:
+ '@mantine/core': 7.5.1(@mantine/hooks@7.5.1)(@types/react@18.2.51)(react-dom@18.2.0)(react@18.2.0)
+ '@mantine/hooks': 7.5.1(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-dropzone-esm: 15.0.1(react@18.2.0)
+ dev: false
+
+ /@mantine/hooks@7.5.1(react@18.2.0):
+ resolution: {integrity: sha512-LfrEOkX8U2KbkYAU5BMA7FPbMva/TSd65c45W35wHSx3iqYMsoPN9+Ll1zc/HT0XNFp73jGet9cU7VREbAl0/A==}
peerDependencies:
react: ^18.2.0
dependencies:
@@ -765,10 +771,10 @@ packages:
resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==}
dev: false
- /@next/eslint-plugin-next@14.1.0:
- resolution: {integrity: sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==}
+ /@next/eslint-plugin-next@14.0.4:
+ resolution: {integrity: sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ==}
dependencies:
- glob: 10.3.10
+ glob: 7.1.7
dev: true
/@next/swc-darwin-arm64@14.1.0:
@@ -873,13 +879,6 @@ packages:
fastq: 1.16.0
dev: true
- /@pkgjs/parseargs@0.11.0:
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
- requiresBuild: true
- dev: true
- optional: true
-
/@pkgr/utils@2.4.2:
resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
@@ -933,48 +932,49 @@ packages:
resolution: {integrity: sha512-Jh4t/593gxs0lJZ/z3NnasKlplXT2f+4y/LZYuaKZW5KAaiVFL/fThhs+17EbUd53jUVJ0QudYCBGbN/psvaqg==}
dev: true
- /@sentry-internal/feedback@7.94.1:
- resolution: {integrity: sha512-NlJn/TEX1MOPfY4bb6FU0Equ6YuaewZ+lIAqYt3HuEoYI7nYApeRGaPuVLkkezN0cmI7oU/+pJ7v83PtYXCFZw==}
+ /@sentry-internal/feedback@7.99.0:
+ resolution: {integrity: sha512-exIO1o+bE0MW4z30FxC0cYzJ4ZHSMlDPMHCBDPzU+MWGQc/fb8s58QUrx5Dnm6HTh9G3H+YlroCxIo9u0GSwGQ==}
engines: {node: '>=12'}
dependencies:
- '@sentry/core': 7.94.1
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
+ '@sentry/core': 7.99.0
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
dev: false
- /@sentry-internal/replay-canvas@7.94.1:
- resolution: {integrity: sha512-kCFxdIJTbo2z8wnAQ3IqNVI8y2lSOtaSSZeBgeqiertro8Pe/DS8AXUnhXnAQkluM2i2koA+AgUo6/4bUeZXuQ==}
+ /@sentry-internal/replay-canvas@7.99.0:
+ resolution: {integrity: sha512-PoIkfusToDq0snfl2M6HJx/1KJYtXxYhQplrn11kYadO04SdG0XGXf4h7wBTMEQ7LDEAtQyvsOu4nEQtTO3YjQ==}
engines: {node: '>=12'}
dependencies:
- '@sentry/core': 7.94.1
- '@sentry/replay': 7.94.1
- '@sentry/types': 7.94.1
+ '@sentry/core': 7.99.0
+ '@sentry/replay': 7.99.0
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
dev: false
- /@sentry-internal/tracing@7.94.1:
- resolution: {integrity: sha512-znxCdrz7tPXm9Bwoe46PW72Zr0Iv7bXT6+b2LNg5fxWiCQVBbQFrMuVvtXEmHxeRRJVEgTh/4TdulB7wrtQIUQ==}
+ /@sentry-internal/tracing@7.99.0:
+ resolution: {integrity: sha512-z3JQhHjoM1KdM20qrHwRClKJrNLr2CcKtCluq7xevLtXHJWNAQQbafnWD+Aoj85EWXBzKt9yJMv2ltcXJ+at+w==}
engines: {node: '>=8'}
dependencies:
- '@sentry/core': 7.94.1
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
+ '@sentry/core': 7.99.0
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
dev: false
- /@sentry/browser@7.94.1:
- resolution: {integrity: sha512-IUR8B/AEPEzLijZ4Uo5qJsgmIBnCudBqAWd3zAiuk3TWYYOQUEvleddFxffN3n6pFhGx3ArksB+AIQBruttLGA==}
+ /@sentry/browser@7.99.0:
+ resolution: {integrity: sha512-bgfoUv3wkwwLgN5YUOe0ibB3y268ZCnamZh6nLFqnY/UBKC1+FXWFdvzVON/XKUm62LF8wlpCybOf08ebNj2yg==}
engines: {node: '>=8'}
dependencies:
- '@sentry-internal/feedback': 7.94.1
- '@sentry-internal/replay-canvas': 7.94.1
- '@sentry-internal/tracing': 7.94.1
- '@sentry/core': 7.94.1
- '@sentry/replay': 7.94.1
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
+ '@sentry-internal/feedback': 7.99.0
+ '@sentry-internal/replay-canvas': 7.99.0
+ '@sentry-internal/tracing': 7.99.0
+ '@sentry/core': 7.99.0
+ '@sentry/replay': 7.99.0
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
dev: false
- /@sentry/cli@1.77.1:
- resolution: {integrity: sha512-OtJ7U9LeuPUAY/xow9wwcjM9w42IJIpDtClTKI/RliE685vd/OJUIpiAvebHNthDYpQynvwb/0iuF4fonh+CKw==}
+ /@sentry/cli@1.77.3:
+ resolution: {integrity: sha512-c3eDqcDRmy4TFz2bFU5Y6QatlpoBPPa8cxBooaS4aMQpnIdLYPF1xhyyiW0LQlDUNc3rRjNF7oN5qKoaRoMTQQ==}
engines: {node: '>= 8'}
hasBin: true
requiresBuild: true
@@ -990,26 +990,26 @@ packages:
- supports-color
dev: false
- /@sentry/core@7.94.1:
- resolution: {integrity: sha512-4sjiMnkbGpv9O98YHVZe7fHNwwdYl+zLoCOoEOadtrJ1EYYvnK/MSixN2HJF7g/0s22xd4xY958QyNIRVR+Iiw==}
+ /@sentry/core@7.99.0:
+ resolution: {integrity: sha512-vOAtzcAXEUtS/oW7wi3wMkZ3hsb5Ch96gKyrrj/mXdOp2zrcwdNV6N9/pawq2E9P/7Pw8AXw4CeDZztZrjQLuA==}
engines: {node: '>=8'}
dependencies:
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
dev: false
- /@sentry/integrations@7.94.1:
- resolution: {integrity: sha512-Fw7OxLlGkrVAVO9WtBJezrb5IxxItCTuefv2IfKku+A5EhHtH1AhXYjQynmt0TLLYIUlyBWiatpOngBzS2wSxw==}
+ /@sentry/integrations@7.99.0:
+ resolution: {integrity: sha512-q4Nwpc27DTWlR7nDerd1o6KHlT/0usK+3xfBTZ1feVIAHCxt6ohCyZdoQ97+4kQiJJdX47MEmJYsXUlj62yZNg==}
engines: {node: '>=8'}
dependencies:
- '@sentry/core': 7.94.1
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
+ '@sentry/core': 7.99.0
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
localforage: 1.10.0
dev: false
- /@sentry/nextjs@7.94.1(next@14.1.0)(react@18.2.0):
- resolution: {integrity: sha512-OOQP/UW82NHnICsUxiVe3tAVfDdvzipxw8F2tZEpqR5Dq6CQ5EGNHMfuGln6wIQFpIdTuLgNwZBRFttHEJ4y8w==}
+ /@sentry/nextjs@7.99.0(next@14.1.0)(react@18.2.0):
+ resolution: {integrity: sha512-8eeEPFJjRBiCp2sFUhDLQFdWFagQ2yBvmALZIOIuoMei69N+clYVSxz84beeztbLal0zvRadJO5LAkBCb6d66Q==}
engines: {node: '>=8'}
peerDependencies:
next: ^10.0.8 || ^11.0 || ^12.0 || ^13.0 || ^14.0
@@ -1020,16 +1020,16 @@ packages:
optional: true
dependencies:
'@rollup/plugin-commonjs': 24.0.0(rollup@2.78.0)
- '@sentry/core': 7.94.1
- '@sentry/integrations': 7.94.1
- '@sentry/node': 7.94.1
- '@sentry/react': 7.94.1(react@18.2.0)
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
- '@sentry/vercel-edge': 7.94.1
+ '@sentry/core': 7.99.0
+ '@sentry/integrations': 7.99.0
+ '@sentry/node': 7.99.0
+ '@sentry/react': 7.99.0(react@18.2.0)
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
+ '@sentry/vercel-edge': 7.99.0
'@sentry/webpack-plugin': 1.21.0
chalk: 3.0.0
- next: 14.1.0(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0)
+ next: 14.1.0(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
resolve: 1.22.8
rollup: 2.78.0
@@ -1039,75 +1039,75 @@ packages:
- supports-color
dev: false
- /@sentry/node@7.94.1:
- resolution: {integrity: sha512-30nyrfVbY1vNoWg5ptGW+soykU532VvKLuXiKty3SKEXjp5bv23JrCcVtuwp9KrW4josHOJbxZUqeNni85YplQ==}
+ /@sentry/node@7.99.0:
+ resolution: {integrity: sha512-34wYtLddnPcQ8qvKq62AfxowaMFw+GMUZGv7fIs9FxeBqqqn6Ckl0gFCTADudIIBQ3rSbmN7sHJIXdyiQv+pcw==}
engines: {node: '>=8'}
dependencies:
- '@sentry-internal/tracing': 7.94.1
- '@sentry/core': 7.94.1
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
+ '@sentry-internal/tracing': 7.99.0
+ '@sentry/core': 7.99.0
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
dev: false
- /@sentry/react@7.94.1(react@18.2.0):
- resolution: {integrity: sha512-7uzmsssy4Y/syIxVDrSWBWoukSsqR+/BqUO98A78NCWZsG9gxDXvD+l7D/o1u6TVkZo6i1z0NNybb1CtB73hug==}
+ /@sentry/react@7.99.0(react@18.2.0):
+ resolution: {integrity: sha512-RtHwgzMHJhzJfSQpVG0SDPQYMTGDX3Q37/YWI59S4ALMbSW4/F6n/eQAvGVYZKbh2UCSqgFuRWaXOYkSZT17wA==}
engines: {node: '>=8'}
peerDependencies:
react: 15.x || 16.x || 17.x || 18.x
dependencies:
- '@sentry/browser': 7.94.1
- '@sentry/core': 7.94.1
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
+ '@sentry/browser': 7.99.0
+ '@sentry/core': 7.99.0
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
hoist-non-react-statics: 3.3.2
react: 18.2.0
dev: false
- /@sentry/replay@7.94.1:
- resolution: {integrity: sha512-4wf3CZ1LR2Neh9IiZD0rY8AORS5Dc5HlKfMug026f8KM2aeoDyneM2JFBnPT/ulRnbD2gNciV+kdZiRd5K5jiw==}
+ /@sentry/replay@7.99.0:
+ resolution: {integrity: sha512-gyN/I2WpQrLAZDT+rScB/0jnFL2knEVBo8U8/OVt8gNP20Pq8T/rDZKO/TG0cBfvULDUbJj2P4CJryn2p/O2rA==}
engines: {node: '>=12'}
dependencies:
- '@sentry-internal/tracing': 7.94.1
- '@sentry/core': 7.94.1
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
+ '@sentry-internal/tracing': 7.99.0
+ '@sentry/core': 7.99.0
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
dev: false
- /@sentry/types@7.94.1:
- resolution: {integrity: sha512-A7CdEXFSgGyWv2BT2p9cAvJfb+dypvOtsY8ZvZvdPLUa7kqCV7ndhURUqKjvMBzsL2GParHn3ehDTl2eVc7pvA==}
+ /@sentry/types@7.99.0:
+ resolution: {integrity: sha512-94qwOw4w40sAs5mCmzcGyj8ZUu/KhnWnuMZARRq96k+SjRW/tHFAOlIdnFSrt3BLPvSOK7R3bVAskZQ0N4FTmA==}
engines: {node: '>=8'}
dev: false
- /@sentry/utils@7.94.1:
- resolution: {integrity: sha512-gQ2EaMpUU1gGH3S+iqpog9gkXbCo8tlhGYA9a5FUtEtER3D3OAlp8dGFwClwzWDAwzjdLT1+X55zmEptU1cP/A==}
+ /@sentry/utils@7.99.0:
+ resolution: {integrity: sha512-cYZy5WNTkWs5GgggGnjfGqC44CWir0pAv4GVVSx0fsup4D4pMKBJPrtub15f9uC+QkUf3vVkqwpBqeFxtmJQTQ==}
engines: {node: '>=8'}
dependencies:
- '@sentry/types': 7.94.1
+ '@sentry/types': 7.99.0
dev: false
- /@sentry/vercel-edge@7.94.1:
- resolution: {integrity: sha512-W+ICIbDuky/Oj0IB17PtBBBj89XGS9a/tiH0Ldoy9peem3Ug4ucgfPxkdjF28hhmY1dA8rDp+aGRCv51/Ydcbg==}
+ /@sentry/vercel-edge@7.99.0:
+ resolution: {integrity: sha512-9Uw3Iuy8KMlcv71ifnaguwndb1NkHeOAbYcBEeq9W+n0f5ocFZvMlnwszSlVNAL3cK+hlpcBhelXNAO/mBWCfg==}
engines: {node: '>=8'}
dependencies:
- '@sentry-internal/tracing': 7.94.1
- '@sentry/core': 7.94.1
- '@sentry/types': 7.94.1
- '@sentry/utils': 7.94.1
+ '@sentry-internal/tracing': 7.99.0
+ '@sentry/core': 7.99.0
+ '@sentry/types': 7.99.0
+ '@sentry/utils': 7.99.0
dev: false
/@sentry/webpack-plugin@1.21.0:
resolution: {integrity: sha512-x0PYIMWcsTauqxgl7vWUY6sANl+XGKtx7DCVnnY7aOIIlIna0jChTAPANTfA2QrK+VK+4I/4JxatCEZBnXh3Og==}
engines: {node: '>= 8'}
dependencies:
- '@sentry/cli': 1.77.1
+ '@sentry/cli': 1.77.3
webpack-sources: 3.2.3
transitivePeerDependencies:
- encoding
- supports-color
dev: false
- /@supabase/auth-helpers-nextjs@0.8.7(@supabase/supabase-js@2.39.3):
- resolution: {integrity: sha512-iYdOjFo0GkRvha340l8JdCiBiyXQuG9v8jnq7qMJ/2fakrskRgHTCOt7ryWbip1T6BExcWKC8SoJrhCzPOxhhg==}
+ /@supabase/auth-helpers-nextjs@0.9.0(@supabase/supabase-js@2.39.3):
+ resolution: {integrity: sha512-V+UKFngSCkzAucX3Zi5D4TRiJZUUx0RDme7W217nIkwhCTvJY7Ih2L1cgnAMihQost2YYgTzJ7DrUzz4mm8i8A==}
peerDependencies:
'@supabase/supabase-js': ^2.19.0
dependencies:
@@ -1218,7 +1218,7 @@ packages:
use-sync-external-store: 1.2.0(react@18.2.0)
dev: false
- /@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.2.2):
+ /@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.2.4):
resolution: {integrity: sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==}
peerDependencies:
'@vue/compiler-sfc': 3.x
@@ -1233,7 +1233,7 @@ packages:
'@babel/types': 7.17.0
javascript-natural-sort: 0.7.1
lodash: 4.17.21
- prettier: 3.2.2
+ prettier: 3.2.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -1273,7 +1273,7 @@ packages:
/@types/jsonwebtoken@9.0.5:
resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==}
dependencies:
- '@types/node': 20.11.5
+ '@types/node': 20.11.16
dev: true
/@types/jxon@2.0.5:
@@ -1313,8 +1313,10 @@ packages:
/@types/lodash@4.14.202:
resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==}
- /@types/node@20.4.7:
- resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==}
+ /@types/node@20.11.16:
+ resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==}
+ dependencies:
+ undici-types: 5.26.5
/@types/pako@2.0.3:
resolution: {integrity: sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==}
@@ -1330,11 +1332,11 @@ packages:
/@types/react-dom@18.2.18:
resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==}
dependencies:
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
dev: true
- /@types/react@18.2.48:
- resolution: {integrity: sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==}
+ /@types/react@18.2.51:
+ resolution: {integrity: sha512-XeoMaU4CzyjdRr3c4IQQtiH7Rpo18V07rYZUucEZQwOUEtGgTXv7e6igQiQ+xnV6MbMe1qjEmKdgMNnfppnXfg==}
dependencies:
'@types/prop-types': 15.7.11
'@types/scheduler': 0.16.8
@@ -1350,11 +1352,11 @@ packages:
/@types/ws@8.5.10:
resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
dependencies:
- '@types/node': 20.4.7
+ '@types/node': 20.11.16
dev: false
- /@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3):
- resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==}
+ /@typescript-eslint/parser@6.19.0(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -1443,12 +1445,12 @@ packages:
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
engines: {node: '>=0.4.0'}
hasBin: true
+ dev: true
/acorn@8.11.3:
resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
engines: {node: '>=0.4.0'}
hasBin: true
- dev: true
/agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
@@ -1468,8 +1470,8 @@ packages:
uri-js: 4.4.1
dev: true
- /allotment@1.19.5(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-lQDeuqMkEEzITT56NAXNOWxRXycqVyV62w3X7jVZQS9n+cznDx6RLJMD1cnWcRMfCdPUmAj07FAIR69ueytxDQ==}
+ /allotment@1.20.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-G02sKgkSCIMpQozuuEkBHblv4aWVGrHQJuOgfCZn3YtHrvmfzS5+mu1N5eWUkpucu/JMl/0FmeCta662RtyaAw==}
peerDependencies:
react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0
@@ -1494,11 +1496,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /ansi-regex@6.0.1:
- resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
- engines: {node: '>=12'}
- dev: true
-
/ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
@@ -1511,11 +1508,6 @@ packages:
dependencies:
color-convert: 2.0.1
- /ansi-styles@6.2.1:
- resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
- engines: {node: '>=12'}
- dev: true
-
/anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
@@ -1642,8 +1634,8 @@ packages:
engines: {node: '>=4'}
dev: true
- /axios@1.6.5:
- resolution: {integrity: sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==}
+ /axios@1.6.7:
+ resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==}
dependencies:
follow-redirects: 1.15.5
form-data: 4.0.0
@@ -1703,15 +1695,15 @@ packages:
dependencies:
fill-range: 7.0.1
- /browserslist@4.22.2:
- resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==}
+ /browserslist@4.22.3:
+ resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001571
- electron-to-chromium: 1.4.623
+ caniuse-lite: 1.0.30001583
+ electron-to-chromium: 1.4.655
node-releases: 2.0.14
- update-browserslist-db: 1.0.13(browserslist@4.22.2)
+ update-browserslist-db: 1.0.13(browserslist@4.22.3)
dev: false
/buffer-equal-constant-time@1.0.1:
@@ -1757,12 +1749,8 @@ packages:
resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==}
dev: false
- /caniuse-lite@1.0.30001571:
- resolution: {integrity: sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==}
- dev: false
-
- /caniuse-lite@1.0.30001579:
- resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==}
+ /caniuse-lite@1.0.30001583:
+ resolution: {integrity: sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==}
dev: false
/chalk@2.4.2:
@@ -2099,18 +2087,14 @@ packages:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
dev: true
- /eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
- dev: true
-
/ecdsa-sig-formatter@1.0.11:
resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
dependencies:
safe-buffer: 5.2.1
dev: false
- /electron-to-chromium@1.4.623:
- resolution: {integrity: sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==}
+ /electron-to-chromium@1.4.655:
+ resolution: {integrity: sha512-2yszojF7vIZ68adIOvzV4bku8OZad9w5H9xF3ZAMZjPuOjBarlflUkjN6DggdV+L71WZuKUfKUhov/34+G5QHg==}
dev: false
/elkjs@0.8.2:
@@ -2123,10 +2107,6 @@ packages:
tape: 4.17.0
dev: false
- /emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
- dev: true
-
/emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
@@ -2244,8 +2224,8 @@ packages:
engines: {node: '>=10'}
dev: true
- /eslint-config-next@14.1.0(eslint@8.56.0)(typescript@5.3.3):
- resolution: {integrity: sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg==}
+ /eslint-config-next@14.0.4(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-9/xbOHEQOmQtqvQ1UsTQZpnA7SlDMBtuKJ//S4JnoyK3oGLhILKXdBgu/UO7lQo/2xOykQULS1qQ6p2+EpHgAQ==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
typescript: '>=3.3.1'
@@ -2253,7 +2233,7 @@ packages:
typescript:
optional: true
dependencies:
- '@next/eslint-plugin-next': 14.1.0
+ '@next/eslint-plugin-next': 14.0.4
'@rushstack/eslint-patch': 1.7.0
'@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3)
eslint: 8.56.0
@@ -2269,8 +2249,8 @@ packages:
- supports-color
dev: true
- /eslint-config-prettier@9.1.0(eslint@8.56.0):
- resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
+ /eslint-config-prettier@8.10.0(eslint@8.56.0):
+ resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
@@ -2382,7 +2362,7 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
dependencies:
- '@babel/runtime': 7.23.8
+ '@babel/runtime': 7.23.9
aria-query: 5.3.0
array-includes: 3.1.7
array.prototype.flatmap: 1.3.2
@@ -2401,7 +2381,7 @@ packages:
object.fromentries: 2.0.7
dev: true
- /eslint-plugin-prettier@5.1.3(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.2.2):
+ /eslint-plugin-prettier@5.1.3(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.2.4):
resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@@ -2417,7 +2397,7 @@ packages:
dependencies:
eslint: 8.56.0
eslint-config-prettier: 8.10.0(eslint@8.56.0)
- prettier: 3.2.2
+ prettier: 3.2.4
prettier-linter-helpers: 1.0.0
synckit: 0.8.6
dev: true
@@ -2700,14 +2680,6 @@ packages:
dependencies:
is-callable: 1.2.7
- /foreground-child@3.1.1:
- resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
- engines: {node: '>=14'}
- dependencies:
- cross-spawn: 7.0.3
- signal-exit: 4.1.0
- dev: true
-
/form-data@4.0.0:
resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
engines: {node: '>= 6'}
@@ -2814,16 +2786,15 @@ packages:
is-glob: 4.0.3
dev: true
- /glob@10.3.10:
- resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
- engines: {node: '>=16 || 14 >=14.17'}
- hasBin: true
+ /glob@7.1.7:
+ resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
dependencies:
- foreground-child: 3.1.1
- jackspeak: 2.3.6
- minimatch: 9.0.3
- minipass: 7.0.4
- path-scurry: 1.10.1
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
dev: true
/glob@7.2.3:
@@ -3143,11 +3114,6 @@ packages:
number-is-nan: 1.0.1
dev: false
- /is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
- dev: true
-
/is-generator-function@1.0.10:
resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
engines: {node: '>= 0.4'}
@@ -3290,15 +3256,6 @@ packages:
set-function-name: 2.0.1
dev: true
- /jackspeak@2.3.6:
- resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
- engines: {node: '>=14'}
- dependencies:
- '@isaacs/cliui': 8.0.2
- optionalDependencies:
- '@pkgjs/parseargs': 0.11.0
- dev: true
-
/javascript-natural-sort@0.7.1:
resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==}
dev: true
@@ -3581,11 +3538,6 @@ packages:
dependencies:
js-tokens: 4.0.0
- /lru-cache@10.1.0:
- resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==}
- engines: {node: 14 || >=16.14}
- dev: true
-
/lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
dependencies:
@@ -3633,19 +3585,18 @@ packages:
picomatch: 2.3.1
dev: true
- /million@2.6.4:
- resolution: {integrity: sha512-voUkdd/jHWrG+7NS+mX49Pat+POKdgGW78V7pYMSrTaOjUitR6ySEcAci8hn17Rsx1IMI3+5w41dkADM1J1ZEg==}
+ /million@3.0.2:
+ resolution: {integrity: sha512-qOYPx2M+zxDn3oq4oVubiRtD9KL9cMad/f6Vs8V03FfocKfV6AV8fIYzD8I2vvNc2h9jIbVnUIU7QspbYrzTsw==}
hasBin: true
dependencies:
- '@babel/core': 7.23.7
- '@babel/generator': 7.23.6
- '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7)
- '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7)
- '@babel/types': 7.23.6
+ '@babel/core': 7.23.9
+ '@babel/types': 7.23.9
+ '@rollup/pluginutils': 5.1.0(rollup@2.78.0)
kleur: 4.1.5
- rollup: 3.29.4
+ undici: 6.6.0
unplugin: 1.6.0
transitivePeerDependencies:
+ - rollup
- supports-color
dev: false
@@ -3693,11 +3644,6 @@ packages:
/minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- /minipass@7.0.4:
- resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
- engines: {node: '>=16 || 14 >=14.17'}
- dev: true
-
/mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
@@ -3746,7 +3692,7 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
- /next@14.1.0(@babel/core@7.23.7)(react-dom@18.2.0)(react@18.2.0):
+ /next@14.1.0(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==}
engines: {node: '>=18.17.0'}
hasBin: true
@@ -3764,12 +3710,12 @@ packages:
'@next/env': 14.1.0
'@swc/helpers': 0.5.2
busboy: 1.6.0
- caniuse-lite: 1.0.30001579
+ caniuse-lite: 1.0.30001583
graceful-fs: 4.2.11
postcss: 8.4.31
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(@babel/core@7.23.7)(react@18.2.0)
+ styled-jsx: 5.1.1(@babel/core@7.23.9)(react@18.2.0)
optionalDependencies:
'@next/swc-darwin-arm64': 14.1.0
'@next/swc-darwin-x64': 14.1.0
@@ -4028,14 +3974,6 @@ packages:
/path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- /path-scurry@1.10.1:
- resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
- engines: {node: '>=16 || 14 >=14.17'}
- dependencies:
- lru-cache: 10.1.0
- minipass: 7.0.4
- dev: true
-
/path-type@1.1.0:
resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==}
engines: {node: '>=0.10.0'}
@@ -4104,8 +4042,8 @@ packages:
fast-diff: 1.3.0
dev: true
- /prettier@3.2.2:
- resolution: {integrity: sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==}
+ /prettier@3.2.4:
+ resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
engines: {node: '>=14'}
hasBin: true
dev: true
@@ -4179,6 +4117,16 @@ packages:
scheduler: 0.23.0
dev: false
+ /react-dropzone-esm@15.0.1(react@18.2.0):
+ resolution: {integrity: sha512-RdeGpqwHnoV/IlDFpQji7t7pTtlC2O1i/Br0LWkRZ9hYtLyce814S71h5NolnCZXsIN5wrZId6+8eQj2EBnEzg==}
+ engines: {node: '>= 10.13'}
+ peerDependencies:
+ react: '>= 16.8 || 18.0.0'
+ dependencies:
+ prop-types: 15.8.1
+ react: 18.2.0
+ dev: false
+
/react-fast-compare@3.2.2:
resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
dev: false
@@ -4212,7 +4160,7 @@ packages:
/react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
- /react-json-tree@0.18.0(@types/react@18.2.48)(react@18.2.0):
+ /react-json-tree@0.18.0(@types/react@18.2.51)(react@18.2.0):
resolution: {integrity: sha512-Qe6HKSXrr++n9Y31nkRJ3XvQMATISpqigH1vEKhLwB56+nk5thTP0ITThpjxY6ZG/ubpVq/aEHIcyLP/OPHxeA==}
peerDependencies:
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -4220,7 +4168,7 @@ packages:
dependencies:
'@babel/runtime': 7.23.6
'@types/lodash': 4.14.202
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
react: 18.2.0
react-base16-styling: 0.9.1
dev: false
@@ -4244,7 +4192,7 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /react-remove-scroll-bar@2.3.4(@types/react@18.2.48)(react@18.2.0):
+ /react-remove-scroll-bar@2.3.4(@types/react@18.2.51)(react@18.2.0):
resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
engines: {node: '>=10'}
peerDependencies:
@@ -4254,13 +4202,13 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
react: 18.2.0
- react-style-singleton: 2.2.1(@types/react@18.2.48)(react@18.2.0)
+ react-style-singleton: 2.2.1(@types/react@18.2.51)(react@18.2.0)
tslib: 2.6.2
dev: false
- /react-remove-scroll@2.5.7(@types/react@18.2.48)(react@18.2.0):
+ /react-remove-scroll@2.5.7(@types/react@18.2.51)(react@18.2.0):
resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==}
engines: {node: '>=10'}
peerDependencies:
@@ -4270,13 +4218,13 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
react: 18.2.0
- react-remove-scroll-bar: 2.3.4(@types/react@18.2.48)(react@18.2.0)
- react-style-singleton: 2.2.1(@types/react@18.2.48)(react@18.2.0)
+ react-remove-scroll-bar: 2.3.4(@types/react@18.2.51)(react@18.2.0)
+ react-style-singleton: 2.2.1(@types/react@18.2.51)(react@18.2.0)
tslib: 2.6.2
- use-callback-ref: 1.3.0(@types/react@18.2.48)(react@18.2.0)
- use-sidecar: 1.1.2(@types/react@18.2.48)(react@18.2.0)
+ use-callback-ref: 1.3.1(@types/react@18.2.51)(react@18.2.0)
+ use-sidecar: 1.1.2(@types/react@18.2.51)(react@18.2.0)
dev: false
/react-simple-typewriter@5.0.1(react-dom@18.2.0)(react@18.2.0):
@@ -4290,7 +4238,7 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /react-style-singleton@2.2.1(@types/react@18.2.48)(react@18.2.0):
+ /react-style-singleton@2.2.1(@types/react@18.2.51)(react@18.2.0):
resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
engines: {node: '>=10'}
peerDependencies:
@@ -4300,23 +4248,23 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
get-nonce: 1.0.1
invariant: 2.2.4
react: 18.2.0
tslib: 2.6.2
dev: false
- /react-textarea-autosize@8.5.3(@types/react@18.2.48)(react@18.2.0):
+ /react-textarea-autosize@8.5.3(@types/react@18.2.51)(react@18.2.0):
resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==}
engines: {node: '>=10'}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.23.6
+ '@babel/runtime': 7.23.9
react: 18.2.0
use-composed-ref: 1.3.0(react@18.2.0)
- use-latest: 1.2.1(@types/react@18.2.48)(react@18.2.0)
+ use-latest: 1.2.1(@types/react@18.2.51)(react@18.2.0)
transitivePeerDependencies:
- '@types/react'
dev: false
@@ -4486,14 +4434,6 @@ packages:
fsevents: 2.3.3
dev: false
- /rollup@3.29.4:
- resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
- engines: {node: '>=14.18.0', npm: '>=8.0.0'}
- hasBin: true
- optionalDependencies:
- fsevents: 2.3.3
- dev: false
-
/run-applescript@5.0.0:
resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==}
engines: {node: '>=12'}
@@ -4611,11 +4551,6 @@ packages:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
- /signal-exit@4.1.0:
- resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
- engines: {node: '>=14'}
- dev: true
-
/simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
dependencies:
@@ -4693,24 +4628,6 @@ packages:
strip-ansi: 3.0.1
dev: false
- /string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
- dev: true
-
- /string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
- dependencies:
- eastasianwidth: 0.2.0
- emoji-regex: 9.2.2
- strip-ansi: 7.1.0
- dev: true
-
/string.prototype.matchall@4.0.10:
resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
dependencies:
@@ -4761,13 +4678,6 @@ packages:
ansi-regex: 5.0.1
dev: true
- /strip-ansi@7.1.0:
- resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
- engines: {node: '>=12'}
- dependencies:
- ansi-regex: 6.0.1
- dev: true
-
/strip-bom@2.0.0:
resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
engines: {node: '>=0.10.0'}
@@ -4815,7 +4725,7 @@ packages:
tslib: 2.5.0
dev: false
- /styled-jsx@5.1.1(@babel/core@7.23.7)(react@18.2.0):
+ /styled-jsx@5.1.1(@babel/core@7.23.9)(react@18.2.0):
resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
engines: {node: '>= 12.0.0'}
peerDependencies:
@@ -4828,7 +4738,7 @@ packages:
babel-plugin-macros:
optional: true
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
client-only: 0.0.1
react: 18.2.0
dev: false
@@ -4940,7 +4850,7 @@ packages:
tslib: 2.6.2
dev: false
- /ts-node@10.9.2(@types/node@20.4.7)(typescript@5.3.3):
+ /ts-node@10.9.2(@types/node@20.11.16)(typescript@5.3.3):
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
peerDependencies:
@@ -4959,7 +4869,7 @@ packages:
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 20.11.5
+ '@types/node': 20.11.16
acorn: 8.11.2
acorn-walk: 8.3.1
arg: 4.1.3
@@ -5060,6 +4970,13 @@ packages:
/undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ /undici@6.6.0:
+ resolution: {integrity: sha512-p8VvLAgnx6g9pydV0GG/kciSx3ZCq5PLeEU4yefjoZCc1HSeiMxbrFzYIZlgSMrX3l0CoTJ37C6edu13acE40A==}
+ engines: {node: '>=18.0'}
+ dependencies:
+ '@fastify/busboy': 2.1.0
+ dev: false
+
/undoo@0.5.0:
resolution: {integrity: sha512-SPlDcde+AUHoFKeVlH2uBJxqVkw658I4WR2rPoygC1eRCzm3GeoP8S6xXZVJeBVOQQid8X2xUBW0N4tOvvHH3Q==}
dependencies:
@@ -5070,7 +4987,7 @@ packages:
/unplugin@1.6.0:
resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==}
dependencies:
- acorn: 8.11.2
+ acorn: 8.11.3
chokidar: 3.5.3
webpack-sources: 3.2.3
webpack-virtual-modules: 0.6.1
@@ -5081,13 +4998,13 @@ packages:
engines: {node: '>=8'}
dev: true
- /update-browserslist-db@1.0.13(browserslist@4.22.2):
+ /update-browserslist-db@1.0.13(browserslist@4.22.3):
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
- browserslist: 4.22.2
+ browserslist: 4.22.3
escalade: 3.1.1
picocolors: 1.0.0
dev: false
@@ -5098,8 +5015,8 @@ packages:
punycode: 2.3.1
dev: true
- /use-callback-ref@1.3.0(@types/react@18.2.48)(react@18.2.0):
- resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
+ /use-callback-ref@1.3.1(@types/react@18.2.51)(react@18.2.0):
+ resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==}
engines: {node: '>=10'}
peerDependencies:
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5108,7 +5025,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
react: 18.2.0
tslib: 2.6.2
dev: false
@@ -5121,7 +5038,7 @@ packages:
react: 18.2.0
dev: false
- /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.48)(react@18.2.0):
+ /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.51)(react@18.2.0):
resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==}
peerDependencies:
'@types/react': '*'
@@ -5130,11 +5047,11 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
react: 18.2.0
dev: false
- /use-latest@1.2.1(@types/react@18.2.48)(react@18.2.0):
+ /use-latest@1.2.1(@types/react@18.2.51)(react@18.2.0):
resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==}
peerDependencies:
'@types/react': '*'
@@ -5143,9 +5060,9 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
react: 18.2.0
- use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.48)(react@18.2.0)
+ use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.51)(react@18.2.0)
dev: false
/use-long-press@3.2.0(react@18.2.0):
@@ -5167,7 +5084,7 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /use-sidecar@1.1.2(@types/react@18.2.48)(react@18.2.0):
+ /use-sidecar@1.1.2(@types/react@18.2.51)(react@18.2.0):
resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
engines: {node: '>=10'}
peerDependencies:
@@ -5177,7 +5094,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
detect-node-es: 1.1.0
react: 18.2.0
tslib: 2.6.2
@@ -5310,24 +5227,6 @@ packages:
strip-ansi: 3.0.1
dev: false
- /wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
- dev: true
-
- /wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
- dependencies:
- ansi-styles: 6.2.1
- string-width: 5.1.2
- strip-ansi: 7.1.0
- dev: true
-
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
@@ -5408,7 +5307,7 @@ packages:
engines: {node: '>=10'}
dev: true
- /zustand@4.5.0(@types/react@18.2.48)(react@18.2.0):
+ /zustand@4.5.0(@types/react@18.2.51)(react@18.2.0):
resolution: {integrity: sha512-zlVFqS5TQ21nwijjhJlx4f9iGrXSL0o/+Dpy4txAP22miJ8Ti6c1Ol1RLNN98BMib83lmDH/2KmLwaNXpjrO1A==}
engines: {node: '>=12.7.0'}
peerDependencies:
@@ -5423,7 +5322,7 @@ packages:
react:
optional: true
dependencies:
- '@types/react': 18.2.48
+ '@types/react': 18.2.51
react: 18.2.0
use-sync-external-store: 1.2.0(react@18.2.0)
dev: false
diff --git a/public/assets/404.svg b/public/assets/404.svg
deleted file mode 100644
index 98b33a9e4b5..00000000000
--- a/public/assets/404.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/assets/jsoncrack-screenshot.webp b/public/assets/jsoncrack-screenshot.webp
deleted file mode 100644
index 9cdcd23f626..00000000000
Binary files a/public/assets/jsoncrack-screenshot.webp and /dev/null differ
diff --git a/public/assets/rocket_ship.webp b/public/assets/rocket_ship.webp
deleted file mode 100644
index c055b2f7f68..00000000000
Binary files a/public/assets/rocket_ship.webp and /dev/null differ
diff --git a/src/app/404/page.tsx b/src/app/404/page.tsx
deleted file mode 100644
index a911e0f75e9..00000000000
--- a/src/app/404/page.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-"use client";
-
-import React from "react";
-import Head from "next/head";
-import { useRouter } from "next/navigation";
-import { Button, Text, Title } from "@mantine/core";
-import styled from "styled-components";
-import Layout from "src/layout/Layout";
-
-const StyledNotFound = styled.div`
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- margin-top: 0 40px;
- text-align: center;
-`;
-
-const StyledMessage = styled.h4`
- color: ${({ theme }) => theme.FULL_WHITE};
- font-size: 25px;
- font-weight: 800;
- margin: 10px 0;
-`;
-
-const StyledSubMessage = styled.div`
- width: 50%;
- color: ${({ theme }) => theme.SILVER};
- margin-bottom: 25px;
-`;
-
-const StyledImageWrapper = styled.div`
- width: 300px;
-`;
-
-const NotFound: React.FC = () => {
- const { push } = useRouter();
-
- return (
-
-
-
-
-
-
-
-
- WIZARDS BEHIND CURTAINS?
- Looks like you're lost, let's head back to the home!
-
-
-
- );
-};
-
-export default NotFound;
diff --git a/src/app/docs/page.tsx b/src/app/docs/page.tsx
index e0d7956b853..8cb21b55d24 100644
--- a/src/app/docs/page.tsx
+++ b/src/app/docs/page.tsx
@@ -43,7 +43,7 @@ const Docs = () => {
Documentation - JSON Crack
-
+
Documentation
diff --git a/src/app/editor/page.tsx b/src/app/editor/page.tsx
index ff2e0af680b..3384f5991c6 100644
--- a/src/app/editor/page.tsx
+++ b/src/app/editor/page.tsx
@@ -14,7 +14,7 @@ import useJson from "src/store/useJson";
const Panes = dynamic(() => import("src/containers/Editor/Panes"));
-export const StyledPageWrapper = styled.div`
+const StyledPageWrapper = styled.div`
height: calc(100vh - 27px);
width: 100%;
@@ -23,7 +23,7 @@ export const StyledPageWrapper = styled.div`
}
`;
-export const StyledEditorWrapper = styled.div`
+const StyledEditorWrapper = styled.div`
width: 100%;
height: 100%;
overflow: hidden;
diff --git a/src/app/global-error.tsx b/src/app/global-error.tsx
new file mode 100644
index 00000000000..94ff39d33c8
--- /dev/null
+++ b/src/app/global-error.tsx
@@ -0,0 +1,37 @@
+"use client";
+
+import React from "react";
+import Head from "next/head";
+import { Button, Stack, Text, Title } from "@mantine/core";
+import Layout from "src/layout/Layout";
+
+const GlobalError = ({
+ error,
+ reset,
+}: {
+ error: Error & { digest?: string };
+ reset: () => void;
+}) => {
+ return (
+
+
+
+
+
+
+ 500
+
+ Something bad just happened...
+
+ Our servers could not handle your request. Don't worry, our development team was
+ already notified. Try refreshing the page.
+
+
+
+
+ );
+};
+
+export default GlobalError;
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 64279818864..a943eef266a 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,5 +1,7 @@
import React from "react";
import { Metadata } from "next";
+import { ColorSchemeScript } from "@mantine/core";
+import "@mantine/core/styles.css";
import StyledComponentsRegistry from "src/lib/registry";
import CustomAppInit from "./CustomAppInit";
@@ -37,6 +39,9 @@ export const viewport = {
export default function Layout({ children }: { children: React.ReactNode }) {
return (
+
+
+
{children}
diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx
index 2c6f5f1e419..5e7269a3a96 100644
--- a/src/app/not-found.tsx
+++ b/src/app/not-found.tsx
@@ -1,45 +1,32 @@
"use client";
import React from "react";
-import { Metadata } from "next";
-import { redirect } from "next/navigation";
-import { Button, Text, Title } from "@mantine/core";
-import styled from "styled-components";
+import Head from "next/head";
+import Link from "next/link";
+import { Button, Stack, Text, Title } from "@mantine/core";
import Layout from "src/layout/Layout";
-const StyledNotFound = styled.div`
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- margin-top: 0 40px;
- text-align: center;
-`;
-
-const StyledImageWrapper = styled.div`
- width: 300px;
-`;
-
-export const metadata: Metadata = {
- robots: {
- index: false,
- follow: false,
- },
-};
-
export default function NotFound() {
return (
-
-
-
-
- WIZARDS BEHIND CURTAINS?
- Looks like you're lost, let's head back to the home!
-
-
+
+
+
+
+
+ 404
+
+ Nothing to see here
+
+ Page you are trying to open does not exist. You may have mistyped the address, or the page
+ has been moved to another URL. If you think this is an error contact support.
+
+
+
+
+
);
}
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 031811f7d22..5fd67ac8d04 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -3,7 +3,7 @@
import React from "react";
import Head from "next/head";
import Link from "next/link";
-import { Button, Group, Stack, Text } from "@mantine/core";
+import { Button, Group, Stack } from "@mantine/core";
import styled from "styled-components";
import { FaChevronRight } from "react-icons/fa";
import { Typewriter } from "react-simple-typewriter";
@@ -33,7 +33,7 @@ const StyledHeroSectionBody = styled.div`
overflow: hidden;
backdrop-filter: blur(1px);
-webkit-backdrop-filter: blur(1px);
- height: calc(100vh - 111px);
+ height: calc(100vh - 112px);
text-align: center;
@media only screen and (max-width: 1200px) {
@@ -41,13 +41,13 @@ const StyledHeroSectionBody = styled.div`
}
`;
-const StyledHighlightedText = styled(Text)`
+const StyledHighlightedText = styled.span`
font-size: 40px;
font-weight: 800;
display: inline;
- background-color: gray;
- background-image: linear-gradient(45deg, gray, slategray);
+ background-color: #252525;
+ background-image: linear-gradient(5deg, #545050, #fff7f8);
background-size: 100%;
-webkit-background-clip: text;
background-clip: text;
@@ -138,7 +138,7 @@ const HeroSection = () => (
);
-export const HomePage = () => {
+export default function Page() {
return (
@@ -147,6 +147,4 @@ export const HomePage = () => {
);
-};
-
-export default HomePage;
+}
diff --git a/src/app/pricing/page.tsx b/src/app/pricing/page.tsx
index 4b3809a27e3..8257c2c91e8 100644
--- a/src/app/pricing/page.tsx
+++ b/src/app/pricing/page.tsx
@@ -211,11 +211,11 @@ const Pricing = () => {
-
- Join alpha test of JC AI{" "}
+
+ Join alpha test of AI{" "}
-
+
diff --git a/src/components/PromptInput/index.tsx b/src/components/PromptInput/index.tsx
index 0851b542332..db2c4819013 100644
--- a/src/components/PromptInput/index.tsx
+++ b/src/components/PromptInput/index.tsx
@@ -1,5 +1,14 @@
import React from "react";
-import { ActionIcon, TextInput, Loader, Tooltip, HoverCard, Flex, Badge } from "@mantine/core";
+import {
+ ActionIcon,
+ TextInput,
+ Loader,
+ Tooltip,
+ HoverCard,
+ Flex,
+ Badge,
+ Text,
+} from "@mantine/core";
import { getHotkeyHandler } from "@mantine/hooks";
import styled from "styled-components";
import { FunctionsHttpError } from "@supabase/supabase-js";
@@ -39,7 +48,7 @@ const StyledPromptInput = styled(TextInput)`
}
::placeholder {
- color: ${({ theme }) => theme.PROMPT_PLACEHOLDER_COLOR};
+ color: ${({ theme }) => theme.PROMPT_PLACEHOLDER_COLOR} !important;
}
`;
diff --git a/src/containers/Editor/BottomBar.tsx b/src/containers/Editor/BottomBar.tsx
index 214e1e55d11..85a641f2936 100644
--- a/src/containers/Editor/BottomBar.tsx
+++ b/src/containers/Editor/BottomBar.tsx
@@ -154,6 +154,7 @@ export const BottomBar = () => {
setHasChanges,
setVisible,
user,
+ pathname,
]);
const setPrivate = async () => {
diff --git a/src/containers/Modals/ImportModal/index.tsx b/src/containers/Modals/ImportModal/index.tsx
index 3da9465f9e2..7847adb0ffd 100644
--- a/src/containers/Modals/ImportModal/index.tsx
+++ b/src/containers/Modals/ImportModal/index.tsx
@@ -1,61 +1,37 @@
import React from "react";
-import { Modal, Group, Button, TextInput, Stack, Divider, ModalProps } from "@mantine/core";
+import {
+ Modal,
+ Group,
+ Button,
+ TextInput,
+ Stack,
+ Divider,
+ ModalProps,
+ Paper,
+ Text,
+} from "@mantine/core";
+import { Dropzone } from "@mantine/dropzone";
import styled from "styled-components";
import toast from "react-hot-toast";
import { AiOutlineUpload } from "react-icons/ai";
+import { FileFormat } from "src/enums/file.enum";
import useFile from "src/store/useFile";
-const StyledUploadWrapper = styled.label`
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- background: ${({ theme }) => theme.GRID_BG_COLOR};
- border: 2px dashed ${({ theme }) => theme.BACKGROUND_TERTIARY};
- border-radius: 5px;
- min-height: 200px;
- padding: 16px;
- cursor: pointer;
-
- input[type="file"] {
- display: none;
- }
-`;
-
const StyledFileName = styled.span`
padding-top: 14px;
color: ${({ theme }) => theme.INTERACTIVE_NORMAL};
`;
-const StyledUploadMessage = styled.h3`
- color: ${({ theme }) => theme.INTERACTIVE_ACTIVE};
- margin-bottom: 0;
-`;
-
export const ImportModal: React.FC = ({ opened, onClose }) => {
- const setContents = useFile(state => state.setContents);
const [url, setURL] = React.useState("");
- const [jsonFile, setJsonFile] = React.useState(null);
-
- const handleFileChange = (e: React.ChangeEvent) => {
- if (e.target.files) setJsonFile(e.target.files?.item(0));
- };
+ const [file, setFile] = React.useState(null);
- const handleFileDrag = (e: React.DragEvent) => {
- e.preventDefault();
-
- if (e.type === "drop" && e.dataTransfer.files.length) {
- if (e.dataTransfer.files[0].type === "application/json") {
- setJsonFile(e.dataTransfer.files[0]);
- } else {
- toast.error("Please upload JSON file!");
- }
- }
- };
+ const setContents = useFile(state => state.setContents);
+ const setFormat = useFile(state => state.setFormat);
const handleImportFile = () => {
if (url) {
- setJsonFile(null);
+ setFile(null);
toast.loading("Loading...", { id: "toastFetch" });
return fetch(url)
@@ -66,21 +42,31 @@ export const ImportModal: React.FC = ({ opened, onClose }) => {
})
.catch(() => toast.error("Failed to fetch JSON!"))
.finally(() => toast.dismiss("toastFetch"));
- }
-
- if (jsonFile) {
- const reader = new FileReader();
+ } else if (file) {
+ const lastIndex = file.name.lastIndexOf(".");
+ const format = file.name.substring(lastIndex + 1);
+ setFormat(format as FileFormat);
- reader.readAsText(jsonFile, "UTF-8");
- reader.onload = function (data) {
- if (typeof data.target?.result === "string") setContents({ contents: data.target?.result });
+ file.text().then(text => {
+ setContents({ contents: text });
+ setFile(null);
+ setURL("");
onClose();
- };
+ });
}
};
return (
-
+ {
+ setFile(null);
+ setURL("");
+ onClose();
+ }}
+ centered
+ >
= ({ opened, onClose }) => {
placeholder="URL of JSON to fetch"
data-autofocus
/>
-
-
-
- Click Here to Upload JSON
- {jsonFile?.name ?? "None"}
-
+
+ setFile(files[0])}
+ onReject={files => toast.error(`Unable to load file ${files[0].file.name}`)}
+ maxSize={500 * 1024}
+ maxFiles={1}
+ p="md"
+ accept={[
+ "application/json",
+ "application/x-yaml",
+ "text/csv",
+ "application/xml",
+ "application/toml",
+ ]}
+ >
+
+
+ Drop here or click to upload files
+
+ (Max 500 Kb)
+
+
+ {file?.name ?? "None"}
+
+
+
+
-
diff --git a/src/containers/Modals/JWTModal/index.tsx b/src/containers/Modals/JWTModal/index.tsx
index 782366429bd..420f91bb95a 100644
--- a/src/containers/Modals/JWTModal/index.tsx
+++ b/src/containers/Modals/JWTModal/index.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { Modal, Button, ModalProps, Textarea, Divider } from "@mantine/core";
+import { Modal, Button, ModalProps, Textarea, Divider, Group } from "@mantine/core";
import { decode } from "jsonwebtoken";
import useFile from "src/store/useFile";
@@ -23,13 +23,13 @@ export const JWTModal: React.FC = ({ opened, onClose }) => {
value={token}
onChange={e => setToken(e.target.value)}
autosize
- minRows={4}
+ minRows={5}
data-autofocus
/>
-
-
- Resolve
-
+
+
+ Resolve
+
);
};
diff --git a/src/containers/Modals/ReviewModal/index.tsx b/src/containers/Modals/ReviewModal/index.tsx
index b4116914054..d5f2e559c1e 100644
--- a/src/containers/Modals/ReviewModal/index.tsx
+++ b/src/containers/Modals/ReviewModal/index.tsx
@@ -41,6 +41,8 @@ export const ReviewModal: React.FC = ({ opened, onClose }) => {
minLength={10}
maxLength={500}
minRows={5}
+ maxRows={10}
+ autosize
/>
500/{review.length}
diff --git a/src/containers/Toolbar/FileMenu.tsx b/src/containers/Toolbar/FileMenu.tsx
new file mode 100644
index 00000000000..550bfe6582f
--- /dev/null
+++ b/src/containers/Toolbar/FileMenu.tsx
@@ -0,0 +1,42 @@
+import React from "react";
+import { Flex, Menu } from "@mantine/core";
+import { CgChevronDown } from "react-icons/cg";
+import useFile from "src/store/useFile";
+import useModal from "src/store/useModal";
+import * as Styles from "./styles";
+
+export const FileMenu = () => {
+ const setVisible = useModal(state => state.setVisible);
+ const getContents = useFile(state => state.getContents);
+ const getFormat = useFile(state => state.getFormat);
+
+ const handleSave = () => {
+ const a = document.createElement("a");
+ const file = new Blob([getContents()], { type: "text/plain" });
+
+ a.href = window.URL.createObjectURL(file);
+ a.download = `jsoncrack.${getFormat()}`;
+ a.click();
+ };
+
+ return (
+
+ );
+};
diff --git a/src/containers/Toolbar/OptionsMenu.tsx b/src/containers/Toolbar/OptionsMenu.tsx
index f01243c7801..d1edaf8da3b 100644
--- a/src/containers/Toolbar/OptionsMenu.tsx
+++ b/src/containers/Toolbar/OptionsMenu.tsx
@@ -70,19 +70,17 @@ export const OptionsMenu = () => {
>
Dark Mode
- {premium && (
- }
- onClick={() => toggleAI(!aiEnabled)}
- >
-
- JSON Crack AI{" "}
-
- Alpha
-
-
-
- )}
+ }
+ onClick={() => toggleAI(!aiEnabled)}
+ >
+
+ JSON Crack AI
+
+ Alpha
+
+
+
);
diff --git a/src/containers/Toolbar/ViewMenu.tsx b/src/containers/Toolbar/ViewMenu.tsx
index bde24c9ac6c..04667cc6220 100644
--- a/src/containers/Toolbar/ViewMenu.tsx
+++ b/src/containers/Toolbar/ViewMenu.tsx
@@ -1,12 +1,14 @@
import React from "react";
-import { Menu, Flex, Text } from "@mantine/core";
+import { Menu, Flex, Text, SegmentedControl } from "@mantine/core";
import { useHotkeys } from "@mantine/hooks";
import ReactGA from "react-ga4";
import toast from "react-hot-toast";
-import { CgChevronDown, CgArrowsShrinkH, CgArrowsMergeAltH } from "react-icons/cg";
+import { CgChevronDown } from "react-icons/cg";
import { VscExpandAll, VscCollapseAll, VscTarget } from "react-icons/vsc";
+import { ViewMode } from "src/enums/viewMode.enum";
import useToggleHide from "src/hooks/useToggleHide";
import { getNextDirection } from "src/lib/utils/graph/getNextDirection";
+import useConfig from "src/store/useConfig";
import useGraph from "src/store/useGraph";
import * as Styles from "./styles";
@@ -20,19 +22,14 @@ function rotateLayout(direction: "LEFT" | "RIGHT" | "DOWN" | "UP") {
export const ViewMenu = () => {
const { validateHiddenNodes } = useToggleHide();
const [coreKey, setCoreKey] = React.useState("CTRL");
- const toggleFold = useGraph(state => state.toggleFold);
const setDirection = useGraph(state => state.setDirection);
const direction = useGraph(state => state.direction);
const expandGraph = useGraph(state => state.expandGraph);
const collapseGraph = useGraph(state => state.collapseGraph);
const focusFirstNode = useGraph(state => state.focusFirstNode);
- const foldNodes = useGraph(state => state.foldNodes);
const graphCollapsed = useGraph(state => state.graphCollapsed);
-
- const toggleFoldNodes = () => {
- toggleFold(!foldNodes);
- toast(`${foldNodes ? "Unfolded" : "Folded"} nodes`);
- };
+ const viewMode = useConfig(state => state.viewMode);
+ const setViewMode = useConfig(state => state.setViewMode);
const toggleDirection = () => {
const nextDirection = getNextDirection(direction || "RIGHT");
@@ -49,7 +46,6 @@ export const ViewMenu = () => {
useHotkeys([
["mod+shift+d", toggleDirection],
- ["mod+shift+f", toggleFoldNodes],
["mod+shift+c", toggleExpandCollapseGraph],
[
"mod+f",
@@ -76,66 +72,63 @@ export const ViewMenu = () => {
- {
- toggleDirection();
- ReactGA.event({
- action: "toggle_layout_direction",
- category: "User",
- label: "Tools",
- });
- }}
- leftSection={}
- rightSection={
-
- {coreKey} Shift D
-
- }
- >
- Rotate Layout
-
- {
- toggleFoldNodes();
- ReactGA.event({
- action: "toggle_fold_nodes",
- category: "User",
- label: "Tools",
- });
- }}
- leftSection={foldNodes ? : }
- rightSection={
-
- {coreKey} Shift F
-
- }
- >
- {foldNodes ? "Unfold" : "Fold"} Nodes
-
- {
- toggleExpandCollapseGraph();
- ReactGA.event({
- action: "toggle_collapse_nodes",
- category: "User",
- label: "Tools",
- });
- }}
- leftSection={graphCollapsed ? : }
- rightSection={
-
- {coreKey} Shift C
-
- }
- >
- {graphCollapsed ? "Expand" : "Collapse"} Nodes
-
- }>
- Focus to First Node
-
+ setViewMode(e as ViewMode)}
+ data={[
+ { value: ViewMode.Graph, label: "Graph" },
+ { value: ViewMode.Tree, label: "Tree" },
+ ]}
+ fullWidth
+ />
+ {viewMode === ViewMode.Graph && (
+ <>
+ {
+ toggleDirection();
+ ReactGA.event({
+ action: "toggle_layout_direction",
+ category: "User",
+ label: "Tools",
+ });
+ }}
+ leftSection={}
+ rightSection={
+
+ {coreKey} Shift D
+
+ }
+ >
+ Rotate Layout
+
+ {
+ toggleExpandCollapseGraph();
+ ReactGA.event({
+ action: "toggle_collapse_nodes",
+ category: "User",
+ label: "Tools",
+ });
+ }}
+ leftSection={graphCollapsed ? : }
+ rightSection={
+
+ {coreKey} Shift C
+
+ }
+ >
+ {graphCollapsed ? "Expand" : "Collapse"} Nodes
+
+ }>
+ Focus to First Node
+
+ >
+ )}
);
diff --git a/src/containers/Toolbar/ViewModeMenu.tsx b/src/containers/Toolbar/ViewModeMenu.tsx
deleted file mode 100644
index 43294c54317..00000000000
--- a/src/containers/Toolbar/ViewModeMenu.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import React from "react";
-import { Menu, Flex, SegmentedControl } from "@mantine/core";
-import { CgChevronDown } from "react-icons/cg";
-import { ViewMode } from "src/enums/viewMode.enum";
-import useConfig from "src/store/useConfig";
-import * as Styles from "./styles";
-
-export const ViewModeMenu = () => {
- const viewMode = useConfig(state => state.viewMode);
- const setViewMode = useConfig(state => state.setViewMode);
-
- return (
-
- );
-};
diff --git a/src/containers/Toolbar/index.tsx b/src/containers/Toolbar/index.tsx
index 36c65d6e635..267775a4980 100644
--- a/src/containers/Toolbar/index.tsx
+++ b/src/containers/Toolbar/index.tsx
@@ -8,15 +8,14 @@ import { SearchInput } from "src/components/SearchInput";
import { FileFormat } from "src/enums/file.enum";
import { JSONCrackLogo } from "src/layout/JsonCrackLogo";
import useFile from "src/store/useFile";
-import useJson from "src/store/useJson";
import useModal from "src/store/useModal";
import useUser from "src/store/useUser";
import { AccountMenu } from "./AccountMenu";
+import { FileMenu } from "./FileMenu";
import { Logo } from "./Logo";
import { OptionsMenu } from "./OptionsMenu";
import { ToolsMenu } from "./ToolsMenu";
import { ViewMenu } from "./ViewMenu";
-import { ViewModeMenu } from "./ViewModeMenu";
import { ZoomMenu } from "./ZoomMenu";
import * as Styles from "./styles";
@@ -31,22 +30,11 @@ function fullscreenBrowser() {
}
export const Toolbar: React.FC<{ isWidget?: boolean }> = ({ isWidget = false }) => {
- const getJson = useJson(state => state.getJson);
const setVisible = useModal(state => state.setVisible);
-
const setFormat = useFile(state => state.setFormat);
const format = useFile(state => state.format);
const premium = useUser(state => state.premium);
- const handleSave = () => {
- const a = document.createElement("a");
- const file = new Blob([getJson()], { type: "text/plain" });
-
- a.href = window.URL.createObjectURL(file);
- a.download = "jsoncrack.json";
- a.click();
- };
-
return (
{isWidget && }
@@ -74,18 +62,12 @@ export const Toolbar: React.FC<{ isWidget?: boolean }> = ({ isWidget = false })
]}
/>
-
- setVisible("import")(true)}>
- Import
-
+
setVisible("cloud")(true)}>
Cloud
-
- Download
-
)}
diff --git a/src/layout/Navbar/index.tsx b/src/layout/Navbar/index.tsx
index 7f6c7ca4d05..38d96629004 100644
--- a/src/layout/Navbar/index.tsx
+++ b/src/layout/Navbar/index.tsx
@@ -271,7 +271,7 @@ export const Navbar = () => {
-
+
Unlock premium features now with ~30% discount on the Premium plan!
diff --git a/src/lib/utils/data/encode.ts b/src/lib/utils/data/encode.ts
new file mode 100644
index 00000000000..66f0e9b7706
--- /dev/null
+++ b/src/lib/utils/data/encode.ts
@@ -0,0 +1,89 @@
+import { deflate, inflate } from "pako";
+
+// fast, Buffer-compatible implem
+export const toByteString = (data: string | Uint8Array | ArrayBuffer): Promise => {
+ return new Promise((resolve, reject) => {
+ const blob =
+ typeof data === "string"
+ ? new Blob([new TextEncoder().encode(data)])
+ : new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)]);
+ const reader = new FileReader();
+ reader.onload = event => {
+ if (!event.target || typeof event.target.result !== "string") {
+ return reject(new Error("couldn't convert to byte string"));
+ }
+ resolve(event.target.result);
+ };
+ reader.readAsBinaryString(blob);
+ });
+};
+
+type EncodedData = {
+ encoded: string;
+ encoding: "bstring";
+ /** whether text is compressed (zlib) */
+ compressed: boolean;
+ /** version for potential migration purposes */
+ version?: string;
+};
+
+/**
+ * Encodes (and potentially compresses via zlib) text to byte string
+ */
+export const encode = async ({
+ text,
+ compress,
+}: {
+ text: string;
+ /** defaults to `true`. If compression fails, falls back to bstring alone. */
+ compress?: boolean;
+}): Promise => {
+ let deflated!: string;
+ if (compress !== false) {
+ try {
+ deflated = await toByteString(deflate(text));
+ } catch (error: any) {
+ console.error("encode: cannot deflate", error);
+ }
+ }
+ return {
+ version: "1",
+ encoding: "bstring",
+ compressed: !!deflated,
+ encoded: deflated || (await toByteString(text)),
+ };
+};
+
+const byteStringToArrayBuffer = (byteString: string) => {
+ const buffer = new ArrayBuffer(byteString.length);
+ const bufferView = new Uint8Array(buffer);
+ for (let i = 0, len = byteString.length; i < len; i++) {
+ bufferView[i] = byteString.charCodeAt(i);
+ }
+ return buffer;
+};
+
+const byteStringToString = (byteString: string) => {
+ return new TextDecoder("utf-8").decode(byteStringToArrayBuffer(byteString));
+};
+
+export const decode = async (data: EncodedData): Promise => {
+ let decoded: string;
+
+ switch (data.encoding) {
+ case "bstring":
+ // if compressed, do not double decode the bstring
+ decoded = data.compressed ? data.encoded : await byteStringToString(data.encoded);
+ break;
+ default:
+ throw new Error(`decode: unknown encoding "${data.encoding}"`);
+ }
+
+ if (data.compressed) {
+ return inflate(new Uint8Array(byteStringToArrayBuffer(decoded)), {
+ to: "string",
+ });
+ }
+
+ return decoded;
+};
diff --git a/src/lib/utils/graph/calculateNodeSize.ts b/src/lib/utils/graph/calculateNodeSize.ts
index a7b30184353..181ab8df130 100644
--- a/src/lib/utils/graph/calculateNodeSize.ts
+++ b/src/lib/utils/graph/calculateNodeSize.ts
@@ -1,6 +1,5 @@
import { firaMono } from "src/constants/fonts";
import useConfig from "src/store/useConfig";
-import useGraph from "src/store/useGraph";
type Text = string | [string, string][];
type Size = { width: number; height: number };
@@ -53,11 +52,10 @@ const sizeCache = new Map();
setInterval(() => sizeCache.clear(), 120_000);
export const calculateNodeSize = (text: Text, isParent = false) => {
- const { foldNodes } = useGraph.getState();
const { imagePreviewEnabled } = useConfig.getState();
const isImage = isContentImage(text) && imagePreviewEnabled;
- const cacheKey = [text, isParent, foldNodes].toString();
+ const cacheKey = [text, isParent].toString();
// check cache if data already exists
if (sizeCache.has(cacheKey)) {
@@ -74,8 +72,6 @@ export const calculateNodeSize = (text: Text, isParent = false) => {
sizes.height = 80;
}
- if (foldNodes) sizes.width = 300;
- if (isParent && foldNodes) sizes.width = 170;
if (isParent) sizes.width += 100;
if (sizes.width > 700) sizes.width = 700;
diff --git a/src/pages/_error.tsx b/src/pages/_error.tsx
deleted file mode 100644
index 5246e70c54a..00000000000
--- a/src/pages/_error.tsx
+++ /dev/null
@@ -1,51 +0,0 @@
-import React from "react";
-import { useRouter } from "next/router";
-import { Button } from "@mantine/core";
-import styled from "styled-components";
-
-const StyledNotFound = styled.div`
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- margin-top: 0 40px;
- text-align: center;
-`;
-
-const StyledMessage = styled.h4`
- color: ${({ theme }) => theme.FULL_WHITE};
- font-size: 25px;
- font-weight: 800;
- margin: 10px 0;
-`;
-
-const StyledSubMessage = styled.div`
- width: 50%;
- color: ${({ theme }) => theme.SILVER};
- margin-bottom: 25px;
-`;
-
-const StyledImageWrapper = styled.div`
- width: 300px;
-`;
-
-const NotFound: React.FC = () => {
- const router = useRouter();
-
- return (
-
-
-
-
- WIZARDS BEHIND CURTAINS?
-
- Looks like you're lost, let's head back to the home!
-
- router.push("/")}>
- Go Home
-
-
- );
-};
-
-export default NotFound;
diff --git a/src/store/useGraph.ts b/src/store/useGraph.ts
index da8f043f4f2..075744f91ac 100644
--- a/src/store/useGraph.ts
+++ b/src/store/useGraph.ts
@@ -12,7 +12,6 @@ export interface Graph {
direction: CanvasDirection;
loading: boolean;
graphCollapsed: boolean;
- foldNodes: boolean;
fullscreen: boolean;
collapseAll: boolean;
nodes: NodeData[];
@@ -29,7 +28,6 @@ const initialStates: Graph = {
direction: "RIGHT",
loading: true,
graphCollapsed: false,
- foldNodes: false,
fullscreen: false,
collapseAll: false,
nodes: [],
@@ -54,7 +52,6 @@ interface GraphActions {
collapseGraph: () => void;
getCollapsedNodeIds: () => string[];
getCollapsedEdgeIds: () => string[];
- toggleFold: (value: boolean) => void;
toggleFullscreen: (value: boolean) => void;
toggleCollapseAll: (value: boolean) => void;
zoomIn: () => void;
@@ -215,10 +212,6 @@ const useGraph = create((set, get) => ({
viewPort?.camera?.centerFitElementIntoView(canvas);
}
},
- toggleFold: foldNodes => {
- set({ foldNodes });
- get().setGraph();
- },
toggleFullscreen: fullscreen => set({ fullscreen }),
setViewPort: viewPort => set({ viewPort }),
}));