feat: main Progress, some pretty cool changes

This commit is contained in:
Nikolaj Frey 2023-07-01 19:46:36 +10:00
parent 0ce2a38e5b
commit 253ba9d11a
19 changed files with 3465 additions and 157 deletions

View File

@ -0,0 +1,5 @@
import { ChakraProvider } from '@chakra-ui/react'
import { theme } from './theme'
export const ChakraWrapper = props => {
return <ChakraProvider theme={theme}>{props.children}</ChakraProvider>
}

View File

@ -0,0 +1,44 @@
const g = {
grey: '#F1F1F3',
greys: {
light: '#F1F1F3',
medium: '#E0E0E0',
dark: '#BDBDBD'
}
}
g.gray = g.grey
g.grays = g.greys
export const colors = {
white: '#FFFFFF',
...g,
black: '#000000',
// all colors of the chakras
chakras: {
root: '#C62828',
sacral: '#FF7043',
solarPlexus: '#FFEE58',
heart: '#66BB6A',
throat: '#42A5F5',
thirdEye: '#5C6BC0',
crown: '#AB47BC',
red: '#C62828',
orange: '#FF7043',
yellow: '#FFEE58',
green: '#66BB6A',
blue: '#42A5F5',
indigo: '#5C6BC0',
violet: '#AB47BC'
},
// all colors of the rainbow
rainbow: {
red: '#FF0000',
orange: '#FF7F00',
yellow: '#FFFF00',
green: '#00FF00',
blue: '#0000FF',
indigo: '#4B0082',
violet: '#8F00FF'
}
}

View File

@ -0,0 +1,14 @@
import { extendTheme } from '@chakra-ui/react'
import { colors } from './colors'
export const theme = extendTheme({
colors,
// edit Input defaultProps
components: {
Input: {
defaultProps: {
focusBorderColor: 'transparent'
}
}
}
})

View File

@ -1,41 +0,0 @@
import React, { createContext, useState, useEffect, useCallback } from "react"
export const StateContext = createContext<StateContextInterface | null>(null)
export const StateProvider = (props: any): JSX.Element => {
const [state, setState] = useState({})
const addState = useCallback(
(newState: any) => {
setState(prevState => {
return {
...prevState,
...newState
}
})
},
[]
)
useEffect(() => {
try {
window.addState = addState
} catch {
// nothing
}
}, [])
return <StateContext.Provider value={{ state, addState }}>{props?.children}</StateContext.Provider>
}
export const withState = (Component: any) => (props: any) => (
<StateContext.Consumer>
{props => <Component {...props} />}
</StateContext.Consumer>
)
export interface StateContextInterface {
state: any
addState: any
}

View File

@ -0,0 +1,94 @@
import React, { createContext } from 'react'
import { sanitise } from '~/functions/path'
import { smarts } from '~/smarts'
export interface ThingtimeContextInterface {
thingtime: any
setThingtime: any
}
export const ThingtimeContext = createContext<ThingtimeContextInterface | null>(
null
)
try {
window.smarts = smarts
} catch (err) {
// nothing
}
const initialThingtime = {
nav: {},
settings: {
showCommander: true,
clearCommanderOnToggle: true,
clearCommanderContextOnToggle: true
}
}
export const ThingtimeProvider = (props: any): JSX.Element => {
const [thingtime, set] = React.useState(initialThingtime)
const setThingtime = React.useCallback(
(path, value) => {
const prevThingtime = thingtime
const newThingtime = {
...prevThingtime
}
// check if first characters of path starts with thingtime or tt and strip from path
path = sanitise(path)
// log the path and value
console.log('nik ThingtimeProvider setThingtime path', path)
console.log('nik ThingtimeProvider setThingtime value', value)
smarts.setsmart(newThingtime, path, value)
set(newThingtime)
},
[thingtime]
)
const getThingtime = React.useCallback(
(...args) => {
const path = args[0]
if (path === 'thingtime' || path === 'tt' || !path) {
return thingtime
}
return smarts.getsmart(thingtime, path)
},
[thingtime]
)
React.useEffect(() => {
try {
window.setThingtime = setThingtime
window.thingtime = thingtime
} catch {
// nothing
}
const keyListener = e => {}
window.addEventListener('keydown', keyListener)
return () => {
window.removeEventListener('keydown', keyListener)
}
}, [setThingtime, thingtime])
const value = {
thingtime,
setThingtime,
getThingtime
}
return (
<ThingtimeContext.Provider value={value}>
{props?.children}
</ThingtimeContext.Provider>
)
}

View File

@ -0,0 +1,223 @@
import React from 'react'
import { Center, Box, Flex, Input } from '@chakra-ui/react'
import { useThingtime } from '../Thingtime/useThingtime'
import { Thingtime } from '../Thingtime/Thingtime'
import { sanitise } from '~/functions/path'
export const Commander = props => {
const { thingtime, setThingtime, getThingtime } = useThingtime()
const [contextPath, setContextPath] = React.useState()
const [showContext, setShowContext] = React.useState(false)
const contextValue = React.useMemo(() => {
console.log('thingtime updated!')
const ret = getThingtime(contextPath)
console.log('nik ret', ret)
return ret
}, [contextPath, getThingtime])
const showCommander = React.useMemo(() => {
console.log(
'nik thingtime?.settings?.showCommander',
thingtime?.settings?.showCommander
)
return thingtime?.settings?.showCommander
}, [thingtime?.settings?.showCommander])
React.useEffect(() => {
if (thingtime?.settings?.clearCommanderOnToggle) {
setValue('')
}
if (showCommander) {
inputRef?.current?.focus?.()
}
}, [showCommander, thingtime])
const inputRef = React.useRef()
const [value, setValue] = React.useState('')
const onChange = React.useCallback(e => {
setValue(e.target.value)
}, [])
const onEnter = React.useCallback(
props => {
// if first characters of value equal tt. then run command
// or if first character is a dot then run command
try {
const isTT = value?.slice(0, 3) === 'tt.'
const isDot = value?.slice(0, 1) === '.'
const executeCommand = isTT || isDot
if (executeCommand) {
const command = isTT ? value?.slice(3) : value?.slice(1)
const sanitisedCommand = sanitise(command)
console.log('nik command', command)
console.log('setting to thingtime', thingtime)
const commandIsSetter = command?.includes('=')
if (commandIsSetter) {
// nothing
const [pathRaw, valRaw] = sanitisedCommand?.split('=')
const path = pathRaw.trim()
const val = valRaw.trim()
console.log('nik path', path)
console.log('nik val', val)
try {
const realVal = eval(val)
console.log('nik realVal', realVal)
setThingtime(path, realVal)
} catch (err) {
console.log('setThingtime errored in Commander', err)
}
// setContextPath(path)
} else {
const val = getThingtime(sanitisedCommand)
console.log('setting to val', val)
setContextPath(sanitisedCommand)
setShowContext(true)
}
}
} catch (err) {
console.error('Caught error on commander onEnter', err)
}
},
[value, thingtime, getThingtime, setThingtime]
)
// trigger on enter
const onKeyDown = React.useCallback(
e => {
if (e.key === 'Enter') {
console.log('nik enter')
e.preventDefault()
e.stopPropagation()
onEnter({ e })
// setThingtime(
// 'settings.showCommander',
// !thingtime?.settings?.showCommander
// )
}
},
[thingtime?.settings?.showCommander, onEnter]
)
const openCommander = React.useCallback(() => {
setThingtime('settings.showCommander', true)
}, [setThingtime])
const closeCommander = React.useCallback(() => {
setThingtime('settings.showCommander', false)
setShowContext(false)
setContextPath(undefined)
}, [setThingtime])
const toggleCommander = React.useCallback(() => {
if (thingtime?.settings?.showCommander) {
closeCommander()
} else {
openCommander()
}
}, [thingtime?.settings?.showCommander, closeCommander, openCommander])
React.useEffect(() => {
const keyListener = (e: any) => {
if (e?.metaKey && e?.code === 'KeyP') {
console.log('nik heard event')
e.preventDefault()
e.stopPropagation()
toggleCommander()
}
// if key escape close all modals
if (e?.code === 'Escape') {
closeCommander()
}
}
window.addEventListener('keydown', keyListener)
return () => {
window.removeEventListener('keydown', keyListener)
}
}, [setThingtime, thingtime])
return (
<Center
id='commander'
display={showCommander ? 'flex' : 'none'}
// zIndex={99999}
// position='fixed'
// top='100px'
position='absolute'
h='100%'
top={0}
left={0}
right={0}
py={1}
>
<Center
display={showContext ? 'flex' : 'none'}
position='absolute'
top={'100%'}
left={0}
right={0}
h='auto'
mt={2}
>
<Flex p={3} borderRadius={'12px'} bg='grey'>
<Thingtime thing={contextValue}></Thingtime>
</Flex>
</Center>
<Center
position='relative'
bg='grey'
w='400px'
h='100%'
outline={'none'}
overflow='hidden'
p={'1px'}
borderRadius={'6px'}
>
<Box
position='absolute'
width='105%'
pb={'105%'}
bg={
'conic-gradient(#f34a4a, #ffbc48, #58ca70, #47b5e6, #a555e8, #f34a4a)'
}
sx={{
'@keyframes rainbow-conical': {
'100%': {
transform: 'rotate(-360deg)'
}
},
animation: 'rainbow-conical 1s linear infinite'
}}
></Box>
<Input
ref={inputRef}
h='100%'
borderRadius={'5px'}
outline={'none'}
border={'none'}
value={value}
onChange={onChange}
onKeyDown={onKeyDown}
w='100%'
sx={{
'&::placeholder': {
color: 'greys.dark'
}
}}
placeholder={"What's on your mind?"}
></Input>
</Center>
</Center>
)
}

View File

@ -1,7 +1,8 @@
import React from 'react'
import { Flex } from '@chakra-ui/react'
import { Box, Flex } from '@chakra-ui/react'
import { RainbowSkeleton } from '../Skeleton/RainbowSkeleton'
import { ProfileDrawer } from './ProfileDrawer'
import { Commander } from '../Commander/Commander'
export const Nav = props => {
const [profileDrawerOpen, setProfileDrawerOpen] = React.useState(false)
@ -12,33 +13,33 @@ export const Nav = props => {
return (
<>
<Flex
as='nav'
w='100%'
alignItems={'center'}
justifyContent='center'
flexDir={'row'}
position='fixed'
top={0}
left={0}
right={0}
py={6}
px={6}
bg='white'
zIndex={999}
boxShadow={'0px 0px 10px rgba(0,0,0,0.1)'}
>
<RainbowSkeleton
ml={'auto'}
w='25px'
h='25px'
onClick={toggleProfileDrawer}
sx={{}}
borderRadius='999px'
></RainbowSkeleton>
{/* <RainbowSkeleton w='40px' ml='auto' mr={"4px"}></RainbowSkeleton>
<RainbowSkeleton></RainbowSkeleton> */}
</Flex>
<Box position='fixed' top={0} left={0} right={0} zIndex={999}>
<Flex
as='nav'
w='100%'
alignItems={'center'}
position='relative'
justifyContent='center'
flexDir={'row'}
py={2}
px={2}
bg='white'
boxShadow={'0px 0px 10px rgba(0,0,0,0.1)'}
>
<Commander></Commander>
<RainbowSkeleton
ml={'auto'}
w='25px'
h='25px'
onClick={toggleProfileDrawer}
bg={'rgba(0,0,0,0.1)'}
sx={{}}
borderRadius='999px'
></RainbowSkeleton>
{/* <RainbowSkeleton w='40px' ml='auto' mr={"4px"}></RainbowSkeleton>
<RainbowSkeleton></RainbowSkeleton> */}
</Flex>
</Box>
{/* <ProfileDrawer isOpen={profileDrawerOpen}></ProfileDrawer> */}
</>
)

View File

@ -31,7 +31,6 @@ export const RainbowSkeleton = props => {
w='10px'
h='8px'
borderRadius={'2px'}
bg={'rgba(0,0,0,0.1)'}
sx={{
'@keyframes placeholder-rainbow': keyframes,
'@keyframes placeholder-opacity': {
@ -39,7 +38,7 @@ export const RainbowSkeleton = props => {
'100%': { opacity: 1 }
},
// add delay
animation: `placeholder-rainbow 3s infinite linear, placeholder-opacity 1.3s linear 0s infinite alternate none running}`
animation: `placeholder-rainbow 8s infinite linear, placeholder-opacity 1.3s linear 0s infinite alternate none running}`
}}
{...props}
></Flex>

View File

@ -1,23 +1,29 @@
import React from 'react'
import { Box, Flex } from '@chakra-ui/react'
import { Safe } from '../Safety/Safe'
import { useState } from './useState'
import { useThingtime } from './useThingtime'
export const Thingtime = props => {
// const uuid = React.useMemo(() => {
// return Math.random().toString(36).substring(7)
// }, [])
const uuid = React.useRef(Math.random().toString(36).substring(7))
const { state } = useState()
const [uuid, setUuid] = React.useState()
// will only run on the client
React.useEffect(() => {
setUuid(Math.random().toString(36).substring(7))
}, [])
const { thingtime } = useThingtime()
React.useEffect(() => {
console.log('nik state?.test changed', state?.test)
}, [state?.test])
// console.log('nik thingtime?.test changed', thingtime?.test)
}, [thingtime?.test])
React.useEffect(() => {
console.log('nik state changed', state)
}, [state])
// console.log('nik thingtime changed', thingtime)
}, [thingtime])
const depth = React.useMemo(() => {
return props?.depth || 1
@ -37,7 +43,9 @@ export const Thingtime = props => {
const keys = React.useMemo(() => {
if (validKeyTypes?.includes(typeof thing)) {
return Object.keys(thing)
const keysRet = Object.keys(thing)
console.log('nik keysRet', keysRet)
return keysRet
} else {
return []
}
@ -55,7 +63,20 @@ export const Thingtime = props => {
} else if (type === 'boolean') {
return thing ? 'true' : 'false'
} else if (type === 'object') {
return JSON.stringify(thing, null, 2)
if (!keys?.length) {
return 'Empty object'
}
try {
return JSON.stringify(thing, null, 2)
} catch (err) {
console.error(
'Caught error making renderableValue of thing',
err,
thing
)
return 'Circular reference in object.'
}
} else {
return null
}
@ -118,8 +139,9 @@ export const Thingtime = props => {
// w={'500px'}
// w={['200px', '500px']}
maxW='100%'
py={props?.path ? 3 : 0}
pl={[4, 6]}
pr={[4, 6]}
// pr={[4, 6]}
>
{keysToUse?.length &&
keysToUse.map((key, idx) => {

View File

@ -1,18 +0,0 @@
import React, { useContext } from 'react'
import { StateContext } from '~/Providers/State'
const getGlobal = () => {
try {
return window
} catch {
return globalThis
}
}
export const useState = (props?: any) => {
const { state, addState } = useContext(StateContext)
return { state, addState }
}

View File

@ -0,0 +1,19 @@
import React, { useContext } from 'react'
import { ThingtimeContext } from '~/Providers/ThingtimeProvider'
const getGlobal = () => {
try {
return window
} catch {
return globalThis
}
}
export const useThingtime = (props?: any) => {
const value = useContext(ThingtimeContext)
const { thingtime, setThingtime, getThingtime } = value
return value
}

View File

@ -5,13 +5,13 @@ export const RainbowText = props => {
return (
<Text
as='h1'
userSelect={"none"}
userSelect={'none'}
position='relative'
fontSize='6xl'
fontWeight='bold'
backgroundClip={'text'}
color='transparent'
bgGradient='linear-gradient(to right, #f34a4a, #ffbc48, #58ca70, #47b5e6, #a555e8, #f34a4a);'
bgGradient='linear-gradient(to right, #f34a4a, #ffbc48, #58ca70, #47b5e6, #a555e8, #f34a4a)'
backgroundSize='200%'
sx={{
'@keyframes moving-rainbow': {

View File

@ -1,4 +1,10 @@
import { hydrate } from 'react-dom'
// import { RemixBrowser } from "remix";
import { RemixBrowser } from '@remix-run/react'
try {
window.process = {}
} catch (err) {
// nothing
}
hydrate(<RemixBrowser />, document)

View File

@ -0,0 +1,13 @@
export const sanitise = str => {
const isTT = str?.slice(0, 3) === 'tt.'
const isThingtime = str?.slice(0, 9) === 'thingtime.'
if (isTT) {
str = str?.slice(3)
}
if (isThingtime) {
str = str?.slice(9)
}
return str
}

View File

@ -1,4 +1,4 @@
import { ChakraProvider } from '@chakra-ui/react'
import { ChakraWrapper } from './Providers/Chakra/ChakraWrapper'
// import type { MetaFunction } from "@vercel/remix"
import {
Links,
@ -10,7 +10,7 @@ import {
} from '@remix-run/react'
import { Analytics } from '@vercel/analytics/react'
import { Main } from './components/Layout/Main'
import { StateProvider } from './Providers/State'
import { ThingtimeProvider } from './Providers/ThingtimeProvider'
function Document ({
children,
@ -29,7 +29,7 @@ function Document ({
<Links />
</head>
<body>
<Main>{children}</Main>
{children}
<ScrollRestoration />
<Scripts />
<LiveReload />
@ -42,17 +42,18 @@ function Document ({
export default function App () {
return (
<Document>
<StateProvider>
<ChakraProvider>
<Outlet />
</ChakraProvider>
</StateProvider>
<ChakraWrapper>
<ThingtimeProvider>
<Main>
<Outlet />
</Main>
</ThingtimeProvider>
</ChakraWrapper>
</Document>
)
}
// limiter
const setThingtime = glob => {
try {
glob.thingtime = {

2857
remix/app/smarts/index.tsx Normal file

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,13 @@
"dev": "remix dev --port 9999"
},
"dependencies": {
"@babel/core": "^7.14.8",
"@babel/generator": "^7.8.4",
"@babel/parser": "^7.22.5",
"@babel/polyfill": "^7.4.4",
"@babel/standalone": "^7.14.8",
"@babel/template": "^7.14.8",
"@babel/types": "^7.15.0",
"@chakra-ui/react": "^2.7.1",
"@remix-run/node": "^1.15.0",
"@remix-run/react": "^1.15.0",
@ -13,8 +20,11 @@
"@vercel/analytics": "^0.1.11",
"@vercel/remix": "^1.15.0",
"isbot": "latest",
"lodash-es": "^4.17.21",
"react": "^18.2.0",
"react-dom": "^18.2.0"
"react-dom": "^18.2.0",
"smarts": "^2.0.3",
"uuid": "^9.0.0"
},
"devDependencies": {
"@remix-run/dev": "^1.15.0",

View File

@ -1,10 +1,31 @@
lockfileVersion: '6.1'
lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
dependencies:
'@babel/core':
specifier: ^7.14.8
version: 7.20.12
'@babel/generator':
specifier: ^7.8.4
version: 7.20.14
'@babel/parser':
specifier: ^7.22.5
version: 7.22.5
'@babel/polyfill':
specifier: ^7.4.4
version: 7.12.1
'@babel/standalone':
specifier: ^7.14.8
version: 7.22.5
'@babel/template':
specifier: ^7.14.8
version: 7.20.7
'@babel/types':
specifier: ^7.15.0
version: 7.20.7
'@chakra-ui/react':
specifier: ^2.7.1
version: 2.7.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.0.28)(framer-motion@10.12.17)(react-dom@18.2.0)(react@18.2.0)
@ -26,12 +47,21 @@ dependencies:
isbot:
specifier: latest
version: 3.6.12
lodash-es:
specifier: ^4.17.21
version: 4.17.21
react:
specifier: ^18.2.0
version: 18.2.0
react-dom:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
smarts:
specifier: ^2.0.3
version: 2.0.3
uuid:
specifier: ^9.0.0
version: 9.0.0
devDependencies:
'@remix-run/dev':
@ -61,7 +91,6 @@ packages:
dependencies:
'@jridgewell/gen-mapping': 0.1.1
'@jridgewell/trace-mapping': 0.3.17
dev: true
/@babel/code-frame@7.18.6:
resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
@ -72,7 +101,6 @@ packages:
/@babel/compat-data@7.20.14:
resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==}
engines: {node: '>=6.9.0'}
dev: true
/@babel/core@7.20.12:
resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==}
@ -84,7 +112,7 @@ packages:
'@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12)
'@babel/helper-module-transforms': 7.20.11
'@babel/helpers': 7.20.13
'@babel/parser': 7.20.15
'@babel/parser': 7.22.5
'@babel/template': 7.20.7
'@babel/traverse': 7.20.13
'@babel/types': 7.20.7
@ -95,7 +123,6 @@ packages:
semver: 6.3.0
transitivePeerDependencies:
- supports-color
dev: true
/@babel/eslint-parser@7.19.1(@babel/core@7.20.12)(eslint@8.34.0):
resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==}
@ -118,7 +145,6 @@ packages:
'@babel/types': 7.20.7
'@jridgewell/gen-mapping': 0.3.2
jsesc: 2.5.2
dev: true
/@babel/helper-annotate-as-pure@7.18.6:
resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
@ -147,7 +173,6 @@ packages:
browserslist: 4.21.5
lru-cache: 5.1.1
semver: 6.3.0
dev: true
/@babel/helper-create-class-features-plugin@7.20.12(@babel/core@7.20.12):
resolution: {integrity: sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==}
@ -198,7 +223,6 @@ packages:
/@babel/helper-environment-visitor@7.18.9:
resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
engines: {node: '>=6.9.0'}
dev: true
/@babel/helper-explode-assignable-expression@7.18.6:
resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
@ -213,14 +237,12 @@ packages:
dependencies:
'@babel/template': 7.20.7
'@babel/types': 7.20.7
dev: true
/@babel/helper-hoist-variables@7.18.6:
resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.20.7
dev: true
/@babel/helper-member-expression-to-functions@7.20.7:
resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==}
@ -249,7 +271,6 @@ packages:
'@babel/types': 7.20.7
transitivePeerDependencies:
- supports-color
dev: true
/@babel/helper-optimise-call-expression@7.18.6:
resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
@ -297,7 +318,6 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.20.7
dev: true
/@babel/helper-skip-transparent-expression-wrappers@7.20.0:
resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==}
@ -311,7 +331,6 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.20.7
dev: true
/@babel/helper-string-parser@7.19.4:
resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
@ -324,7 +343,6 @@ packages:
/@babel/helper-validator-option@7.18.6:
resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
engines: {node: '>=6.9.0'}
dev: true
/@babel/helper-wrap-function@7.20.5:
resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==}
@ -347,7 +365,6 @@ packages:
'@babel/types': 7.20.7
transitivePeerDependencies:
- supports-color
dev: true
/@babel/highlight@7.18.6:
resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
@ -357,13 +374,12 @@ packages:
chalk: 2.4.2
js-tokens: 4.0.0
/@babel/parser@7.20.15:
resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==}
/@babel/parser@7.22.5:
resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.20.7
dev: true
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.20.12):
resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
@ -1150,6 +1166,14 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
dev: true
/@babel/polyfill@7.12.1:
resolution: {integrity: sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==}
deprecated: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
dependencies:
core-js: 2.6.12
regenerator-runtime: 0.13.11
dev: false
/@babel/preset-env@7.20.2(@babel/core@7.20.12):
resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==}
engines: {node: '>=6.9.0'}
@ -1288,14 +1312,18 @@ packages:
dependencies:
regenerator-runtime: 0.13.11
/@babel/standalone@7.22.5:
resolution: {integrity: sha512-6Lwhzral4YDEbIM3dBC8/w0BMDvOosGBGaJWSORLkerx8byawkmwwzXKUB0jGlI1Zp90+cK2uyTl62UPtLbUjQ==}
engines: {node: '>=6.9.0'}
dev: false
/@babel/template@7.20.7:
resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.18.6
'@babel/parser': 7.20.15
'@babel/parser': 7.22.5
'@babel/types': 7.20.7
dev: true
/@babel/traverse@7.20.13:
resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==}
@ -1307,13 +1335,12 @@ packages:
'@babel/helper-function-name': 7.19.0
'@babel/helper-hoist-variables': 7.18.6
'@babel/helper-split-export-declaration': 7.18.6
'@babel/parser': 7.20.15
'@babel/parser': 7.22.5
'@babel/types': 7.20.7
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
/@babel/types@7.20.7:
resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
@ -2996,7 +3023,6 @@ packages:
dependencies:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.14
dev: true
/@jridgewell/gen-mapping@0.3.2:
resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
@ -3005,28 +3031,23 @@ packages:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.14
'@jridgewell/trace-mapping': 0.3.17
dev: true
/@jridgewell/resolve-uri@3.1.0:
resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
engines: {node: '>=6.0.0'}
dev: true
/@jridgewell/set-array@1.1.2:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
dev: true
/@jridgewell/sourcemap-codec@1.4.14:
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
dev: true
/@jridgewell/trace-mapping@0.3.17:
resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
dependencies:
'@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.14
dev: true
/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1:
resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
@ -3106,7 +3127,7 @@ packages:
dependencies:
'@babel/core': 7.20.12
'@babel/generator': 7.20.14
'@babel/parser': 7.20.15
'@babel/parser': 7.22.5
'@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12)
'@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.20.12)
'@babel/preset-env': 7.20.2(@babel/core@7.20.12)
@ -4059,7 +4080,6 @@ packages:
electron-to-chromium: 1.4.296
node-releases: 2.0.10
update-browserslist-db: 1.0.10(browserslist@4.21.5)
dev: true
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@ -4140,7 +4160,6 @@ packages:
/caniuse-lite@1.0.30001452:
resolution: {integrity: sha512-Lkp0vFjMkBB3GTpLR8zk4NwW5EdRdnitwYJHDOOKIU85x4ckYCPQ+9WlVvSVClHxVReefkUMtWZH2l9KGlD51w==}
dev: true
/chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
@ -4330,6 +4349,17 @@ packages:
browserslist: 4.21.5
dev: true
/core-js@2.6.12:
resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
requiresBuild: true
dev: false
/core-js@3.31.0:
resolution: {integrity: sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==}
requiresBuild: true
dev: false
/core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
dev: true
@ -4423,7 +4453,6 @@ packages:
optional: true
dependencies:
ms: 2.1.2
dev: true
/decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
@ -4468,6 +4497,11 @@ packages:
resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==}
dev: true
/deepmerge@3.3.0:
resolution: {integrity: sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==}
engines: {node: '>=0.10.0'}
dev: false
/deepmerge@4.3.0:
resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
engines: {node: '>=0.10.0'}
@ -4583,7 +4617,6 @@ packages:
/electron-to-chromium@1.4.296:
resolution: {integrity: sha512-i/6Q+Y9bluDa2a0NbMvdtG5TuS/1Fr3TKK8L+7UUL9QjRS5iFJzCC3r70xjyOnLiYG8qGV4/mMpe6HuAbdJW4w==}
dev: true
/emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@ -4762,7 +4795,6 @@ packages:
/escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
dev: true
/escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
@ -5535,7 +5567,6 @@ packages:
/gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
dev: true
/get-intrinsic@1.2.0:
resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
@ -5628,7 +5659,6 @@ packages:
/globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
dev: true
/globals@13.20.0:
resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
@ -6085,6 +6115,10 @@ packages:
resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
dev: true
/is-mergeable-object@1.1.1:
resolution: {integrity: sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==}
dev: false
/is-negative-zero@2.0.2:
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
engines: {node: '>= 0.4'}
@ -6257,7 +6291,6 @@ packages:
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
engines: {node: '>=4'}
hasBin: true
dev: true
/jsesc@3.0.2:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
@ -6291,7 +6324,6 @@ packages:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
hasBin: true
dev: true
/jsonc-parser@3.2.0:
resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
@ -6386,6 +6418,10 @@ packages:
p-locate: 5.0.0
dev: true
/lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
dev: false
/lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
dev: true
@ -6433,7 +6469,6 @@ packages:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
dependencies:
yallist: 3.1.1
dev: true
/lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
@ -7016,7 +7051,6 @@ packages:
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
/ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
@ -7067,7 +7101,6 @@ packages:
/node-releases@2.0.10:
resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
dev: true
/normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
@ -7377,7 +7410,6 @@ packages:
/picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
dev: true
/picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
@ -7510,7 +7542,6 @@ packages:
resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==}
engines: {node: '>=10.13.0'}
hasBin: true
dev: true
/pretty-format@27.5.1:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
@ -8046,7 +8077,6 @@ packages:
/semver@6.3.0:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
hasBin: true
dev: true
/semver@7.3.8:
resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
@ -8131,6 +8161,25 @@ packages:
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
dev: true
/smarts@2.0.3:
resolution: {integrity: sha512-42Xy0lJd2gP6g7pg2+ADa6VuSbF2S2QSTHm2H/Wj+4TiHE6Ekyz6LntJ6bloNPfYFEh6o5jnfjNurzfWlcQKiw==}
dependencies:
'@babel/core': 7.20.12
'@babel/generator': 7.20.14
'@babel/parser': 7.22.5
'@babel/polyfill': 7.12.1
'@babel/standalone': 7.22.5
'@babel/template': 7.20.7
'@babel/types': 7.20.7
core-js: 3.31.0
deepmerge: 3.3.0
is-mergeable-object: 1.1.1
prettier: 2.7.1
uuid: 3.4.0
transitivePeerDependencies:
- supports-color
dev: false
/socks-proxy-agent@5.0.1:
resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==}
engines: {node: '>= 6'}
@ -8668,7 +8717,6 @@ packages:
browserslist: 4.21.5
escalade: 3.1.1
picocolors: 1.0.0
dev: true
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@ -8732,6 +8780,17 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
/uuid@3.4.0:
resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
hasBin: true
dev: false
/uuid@9.0.0:
resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==}
hasBin: true
dev: false
/uvu@0.5.6:
resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
engines: {node: '>=8'}
@ -8973,7 +9032,6 @@ packages:
/yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
dev: true
/yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}

View File

@ -1,6 +1,7 @@
{
"include": ["remix.env.d.ts", "**/*.ts", "**/*.tsx"],
"compilerOptions": {
"noImplicitAny": false,
"lib": ["DOM", "DOM.Iterable", "ES2019"],
"isolatedModules": true,
"esModuleInterop": true,