diff --git a/App.tsx b/App.tsx
index 4a016667..5637a813 100644
--- a/App.tsx
+++ b/App.tsx
@@ -1,7 +1,9 @@
import React from 'react'
+import { AppearanceProvider } from 'react-native-appearance'
import { QueryCache, ReactQueryCacheProvider, setConsole } from 'react-query'
import { Provider } from 'react-redux'
+import ThemeManager from 'src/utils/styles/ThemeManager'
import { Index } from 'src/Index'
import { store } from 'src/store'
@@ -18,12 +20,18 @@ if (__DEV__) {
// whyDidYouRender(React)
}
-const App: React.FC = () => (
-
-
-
-
-
-)
+const App: React.FC = () => {
+ return (
+
+
+
+
+
+
+
+
+
+ )
+}
export default App
diff --git a/app.config.ts b/app.config.ts
new file mode 100644
index 00000000..467aa7e4
--- /dev/null
+++ b/app.config.ts
@@ -0,0 +1,23 @@
+import { ExpoConfig } from '@expo/config'
+
+export default (): ExpoConfig => ({
+ name: 'mastodon-app',
+ description: 'This is a description',
+ slug: 'mastodon-app',
+ privacy: 'hidden',
+ version: '1.0.0',
+ platforms: ['ios'],
+ orientation: 'portrait',
+ userInterfaceStyle: 'automatic',
+ icon: './assets/icon.png',
+ developmentClient: { silentLaunch: true },
+ scheme: 'mastodonct',
+ ios: {
+ splash: {
+ image: './assets/splash.png',
+ resizeMode: 'contain',
+ backgroundColor: '#ffffff'
+ }
+ },
+ assetBundlePatterns: ['**/*']
+})
diff --git a/app.json b/app.json
deleted file mode 100644
index 7c197d2a..00000000
--- a/app.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "expo": {
- "name": "mastodon-app",
- "slug": "mastodon-app",
- "scheme": "mastodonct",
- "version": "1.0.0",
- "orientation": "portrait",
- "icon": "./assets/icon.png",
- "splash": {
- "image": "./assets/splash.png",
- "resizeMode": "contain",
- "backgroundColor": "#ffffff"
- },
- "updates": {
- "fallbackToCacheTimeout": 0
- },
- "assetBundlePatterns": [
- "**/*"
- ],
- "ios": {
- "supportsTablet": false
- }
- }
-}
\ No newline at end of file
diff --git a/package.json b/package.json
index 2c77d1f2..012fa88d 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
},
"dependencies": {
"@expo/vector-icons": "^10.0.0",
+ "@react-native-community/masked-view": "0.1.10",
"@react-native-community/segmented-control": "2.1.1",
"@react-navigation/bottom-tabs": "^5.10.6",
"@react-navigation/native": "^5.8.6",
@@ -25,6 +26,7 @@
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-39.0.3.tar.gz",
+ "react-native-appearance": "~0.3.3",
"react-native-collapsible": "^1.5.3",
"react-native-gesture-handler": "~1.7.0",
"react-native-htmlview": "^0.16.0",
@@ -45,6 +47,7 @@
"devDependencies": {
"@babel/core": "~7.12.3",
"@babel/plugin-proposal-optional-chaining": "^7.12.1",
+ "@expo/config": "^3.3.15",
"@types/lodash": "^4.14.164",
"@types/node": "^14.14.7",
"@types/react": "~16.9.35",
@@ -58,4 +61,4 @@
"typescript": "~3.9.2"
},
"private": true
-}
\ No newline at end of file
+}
diff --git a/src/Index.tsx b/src/Index.tsx
index f7816b39..a1a75b89 100644
--- a/src/Index.tsx
+++ b/src/Index.tsx
@@ -14,12 +14,17 @@ import ScreenPublic from 'src/screens/Public'
import ScreenNotifications from 'src/screens/Notifications'
import ScreenMe from 'src/screens/Me'
+import { themes } from 'src/utils/styles/themes'
+import { useTheme } from 'src/utils/styles/ThemeManager'
+
enableScreens()
const Tab = createBottomTabNavigator()
export const Index: React.FC = () => {
+ const { mode, theme } = useTheme()
+
return (
-
+
({
tabBarIcon: ({ focused, color, size }) => {
@@ -48,8 +53,8 @@ export const Index: React.FC = () => {
}
})}
tabBarOptions={{
- activeTintColor: 'black',
- inactiveTintColor: 'gray',
+ activeTintColor: theme.primary,
+ inactiveTintColor: theme.secondary,
showLabel: false
}}
>
diff --git a/src/components/Menu/Item.tsx b/src/components/Menu/Item.tsx
index 1717d29f..13e8e488 100644
--- a/src/components/Menu/Item.tsx
+++ b/src/components/Menu/Item.tsx
@@ -2,6 +2,7 @@ import React from 'react'
import { Pressable, StyleSheet, Text, View } from 'react-native'
import { useNavigation } from '@react-navigation/native'
import { Feather } from '@expo/vector-icons'
+import { useTheme } from 'src/utils/styles/ThemeManager'
export interface Props {
icon?: string
@@ -11,6 +12,8 @@ export interface Props {
}
const Core: React.FC = ({ icon, title, navigateTo }) => {
+ const { theme } = useTheme()
+
return (
{icon && }
@@ -19,7 +22,7 @@ const Core: React.FC = ({ icon, title, navigateTo }) => {
)}
diff --git a/src/components/ParseContent.tsx b/src/components/ParseContent.tsx
index bf5c5cb8..8c984371 100644
--- a/src/components/ParseContent.tsx
+++ b/src/components/ParseContent.tsx
@@ -1,18 +1,22 @@
import React from 'react'
-import { StyleSheet, Text } from 'react-native'
+import { Text } from 'react-native'
import HTMLView, { HTMLViewNode } from 'react-native-htmlview'
import { useNavigation } from '@react-navigation/native'
-import Emojis from 'src/components/Status/Emojis'
+import Emojis from 'src/components/Timelines/Timeline/Shared/Emojis'
+import { useTheme } from 'src/utils/styles/ThemeManager'
+
// Prevent going to the same hashtag multiple times
const renderNode = ({
+ theme,
node,
index,
navigation,
mentions,
showFullLink
}: {
- node: HTMLViewNode
+ theme: any
+ node: any
index: number
navigation: any
mentions?: Mastodon.Mention[]
@@ -26,10 +30,10 @@ const renderNode = ({
return (
{
const tag = href.split(new RegExp(/\/tag\/(.*)|\/tags\/(.*)/))
- navigation.push('Hashtag', {
+ navigation.push('Screen-Shared-Hashtag', {
hashtag: tag[1] || tag[2]
})
}}
@@ -42,13 +46,13 @@ const renderNode = ({
return (
{
const username = href.split(new RegExp(/@(.*)/))
const usernameIndex = mentions.findIndex(
m => m.username === username[1]
)
- navigation.push('Account', {
+ navigation.push('Screen-Shared-Account', {
id: mentions[usernameIndex].id
})
}}
@@ -63,9 +67,9 @@ const renderNode = ({
return (
{
- navigation.navigate('Webview', {
+ navigation.navigate('Screen-Shared-Webview', {
uri: href,
domain: domain[1]
})
@@ -80,8 +84,8 @@ const renderNode = ({
export interface Props {
content: string
+ size: number
emojis?: Mastodon.Emoji[]
- emojiSize?: number
mentions?: Mastodon.Mention[]
showFullLink?: boolean
linesTruncated?: number
@@ -89,29 +93,24 @@ export interface Props {
const ParseContent: React.FC = ({
content,
+ size,
emojis,
- emojiSize = 14,
mentions,
showFullLink = false,
linesTruncated = 10
}) => {
const navigation = useNavigation()
+ const { theme } = useTheme()
return (
- renderNode({ node, index, navigation, mentions, showFullLink })
+ renderNode({ theme, node, index, navigation, mentions, showFullLink })
}
TextComponent={({ children }) =>
emojis && children ? (
-
+
) : (
{children}
)
@@ -123,16 +122,4 @@ const ParseContent: React.FC = ({
)
}
-const styles = StyleSheet.create({
- a: {
- color: 'blue'
- }
-})
-
-const HTMLstyles = StyleSheet.create({
- p: {
- marginBottom: 12
- }
-})
-
export default ParseContent
diff --git a/src/screens/Timelines/Timelines.tsx b/src/components/Timelines.tsx
similarity index 94%
rename from src/screens/Timelines/Timelines.tsx
rename to src/components/Timelines.tsx
index b4abe79f..da0c7498 100644
--- a/src/screens/Timelines/Timelines.tsx
+++ b/src/components/Timelines.tsx
@@ -5,10 +5,11 @@ import { createNativeStackNavigator } from 'react-native-screens/native-stack'
import { useSelector } from 'react-redux'
import { Feather } from '@expo/vector-icons'
-import Timeline from './Timeline'
+import Timeline from './Timelines/Timeline'
import sharedScreens from 'src/screens/Shared/sharedScreens'
import { InstancesState } from 'src/utils/slices/instancesSlice'
import { RootState } from 'src/store'
+import { useTheme } from 'src/utils/styles/ThemeManager'
const Stack = createNativeStackNavigator()
@@ -36,6 +37,7 @@ export interface Props {
}
const Timelines: React.FC = ({ name, content }) => {
+ const { theme } = useTheme()
const localRegistered = useSelector(
(state: RootState) => state.instances.local.url
)
@@ -59,7 +61,7 @@ const Timelines: React.FC = ({ name, content }) => {
options={{
headerRight: () =>
renderHeader ? (
-
+
) : null,
headerCenter: () =>
renderHeader ? (
diff --git a/src/screens/Timelines/Timeline.tsx b/src/components/Timelines/Timeline.tsx
similarity index 88%
rename from src/screens/Timelines/Timeline.tsx
rename to src/components/Timelines/Timeline.tsx
index b11f04e8..748ea2a3 100644
--- a/src/screens/Timelines/Timeline.tsx
+++ b/src/components/Timelines/Timeline.tsx
@@ -2,10 +2,11 @@ import React from 'react'
import { ActivityIndicator, AppState, FlatList, Text, View } from 'react-native'
import { setFocusHandler, useInfiniteQuery } from 'react-query'
-import StatusInNotifications from 'src/components/StatusInNotifications'
-import TimelineDefault from 'src/components/TimelineDefault'
-import TimelineConversation from 'src/components/TimelineConversation'
+import TimelineNotifications from 'src/components/Timelines/Timeline/Notifications'
+import TimelineDefault from 'src/components/Timelines/Timeline/Default'
+import TimelineConversation from 'src/components/Timelines/Timeline/Conversation'
import { timelineFetch } from 'src/utils/fetches/timelineFetch'
+import TimelineSeparator from './Timeline/Separator'
// Opening nesting hashtag pages
@@ -69,7 +70,7 @@ const Timeline: React.FC = ({
return
case 'Notifications':
return (
- = ({
)
}
}}
+ ItemSeparatorComponent={() => }
// require getItemLayout
// {...(flattenPointer[0] && { initialScrollIndex: flattenPointer[0] })}
{...(!disableRefresh && {
diff --git a/src/components/TimelineConversation.tsx b/src/components/Timelines/Timeline/Conversation.tsx
similarity index 88%
rename from src/components/TimelineConversation.tsx
rename to src/components/Timelines/Timeline/Conversation.tsx
index b0bb0dea..73a87db5 100644
--- a/src/components/TimelineConversation.tsx
+++ b/src/components/Timelines/Timeline/Conversation.tsx
@@ -2,9 +2,11 @@ import React, { useMemo } from 'react'
import { Pressable, StyleSheet, View } from 'react-native'
import { useNavigation } from '@react-navigation/native'
-import Avatar from './Status/Avatar'
-import HeaderConversation from './Status/HeaderConversation'
-import Content from './Status/Content'
+import Avatar from './Shared/Avatar'
+import HeaderConversation from './Shared/HeaderConversation'
+import Content from './Shared/Content'
+
+import constants from 'src/utils/styles/constants'
export interface Props {
item: Mastodon.Conversation
@@ -58,7 +60,7 @@ const styles = StyleSheet.create({
statusView: {
flex: 1,
flexDirection: 'column',
- padding: 12
+ padding: constants.GLOBAL_PAGE_PADDING
},
status: {
flex: 1,
diff --git a/src/components/TimelineDefault.tsx b/src/components/Timelines/Timeline/Default.tsx
similarity index 81%
rename from src/components/TimelineDefault.tsx
rename to src/components/Timelines/Timeline/Default.tsx
index a0e38153..4c1e473c 100644
--- a/src/components/TimelineDefault.tsx
+++ b/src/components/Timelines/Timeline/Default.tsx
@@ -2,20 +2,23 @@ import React, { useMemo } from 'react'
import { Dimensions, Pressable, StyleSheet, View } from 'react-native'
import { useNavigation } from '@react-navigation/native'
-import Actioned from './Status/Actioned'
-import Avatar from './Status/Avatar'
-import Header from './Status/Header'
-import Content from './Status/Content'
-import Poll from './Status/Poll'
-import Attachment from './Status/Attachment'
-import Card from './Status/Card'
-import ActionsStatus from './Status/ActionsStatus'
+import Actioned from './Shared/Actioned'
+import Avatar from './Shared/Avatar'
+import HeaderDefault from './Shared/HeaderDefault'
+import Content from './Shared/Content'
+import Poll from './Shared/Poll'
+import Attachment from './Shared/Attachment'
+import Card from './Shared/Card'
+import ActionsStatus from './Shared/ActionsStatus'
+
+import constants from 'src/utils/styles/constants'
export interface Props {
item: Mastodon.Status
queryKey: App.QueryKey
}
+// When the poll is long
const TimelineDefault: React.FC = ({ item, queryKey }) => {
const navigation = useNavigation()
@@ -37,7 +40,7 @@ const TimelineDefault: React.FC = ({ item, queryKey }) => {
id={actualStatus.account.id}
/>
- = ({ item, queryKey }) => {
)}
{actualStatus.card && }
@@ -94,7 +102,7 @@ const styles = StyleSheet.create({
statusView: {
flex: 1,
flexDirection: 'column',
- padding: 12
+ padding: constants.GLOBAL_PAGE_PADDING
},
status: {
flex: 1,
diff --git a/src/components/StatusInNotifications.tsx b/src/components/Timelines/Timeline/Notifications.tsx
similarity index 84%
rename from src/components/StatusInNotifications.tsx
rename to src/components/Timelines/Timeline/Notifications.tsx
index fe83a2e9..4f9d20ab 100644
--- a/src/components/StatusInNotifications.tsx
+++ b/src/components/Timelines/Timeline/Notifications.tsx
@@ -2,21 +2,23 @@ import React, { useMemo } from 'react'
import { Dimensions, Pressable, StyleSheet, View } from 'react-native'
import { useNavigation } from '@react-navigation/native'
-import Actioned from './Status/Actioned'
-import Avatar from './Status/Avatar'
-import Header from './Status/Header'
-import Content from './Status/Content'
-import Poll from './Status/Poll'
-import Attachment from './Status/Attachment'
-import Card from './Status/Card'
-import ActionsStatus from './Status/ActionsStatus'
+import Actioned from './Shared/Actioned'
+import Avatar from './Shared/Avatar'
+import HeaderDefault from './Shared/HeaderDefault'
+import Content from './Shared/Content'
+import Poll from './Shared/Poll'
+import Attachment from './Shared/Attachment'
+import Card from './Shared/Card'
+import ActionsStatus from './Shared/ActionsStatus'
+
+import constants from 'src/utils/styles/constants'
export interface Props {
notification: Mastodon.Notification
queryKey: App.QueryKey
}
-const TootNotification: React.FC = ({ notification, queryKey }) => {
+const TimelineNotifications: React.FC = ({ notification, queryKey }) => {
const navigation = useNavigation()
const actualAccount = notification.status
? notification.status.account
@@ -37,7 +39,7 @@ const TootNotification: React.FC = ({ notification, queryKey }) => {
- {
+ const { theme } = useTheme()
+
+ return
+}
+
+const styles = StyleSheet.create({
+ base: {
+ borderTopWidth: 1,
+ marginLeft: constants.SPACING_M + constants.AVATAR_S + constants.SPACING_S
+ }
+})
+
+export default TimelineSeparator
diff --git a/src/components/Status/Actioned.tsx b/src/components/Timelines/Timeline/Shared/Actioned.tsx
similarity index 60%
rename from src/components/Status/Actioned.tsx
rename to src/components/Timelines/Timeline/Shared/Actioned.tsx
index 03afeb0b..e69fd293 100644
--- a/src/components/Status/Actioned.tsx
+++ b/src/components/Timelines/Timeline/Shared/Actioned.tsx
@@ -3,6 +3,9 @@ import { StyleSheet, Text, View } from 'react-native'
import { Feather } from '@expo/vector-icons'
import Emojis from './Emojis'
+import { useTheme } from 'src/utils/styles/ThemeManager'
+
+import constants from 'src/utils/styles/constants'
export interface Props {
action: 'favourite' | 'follow' | 'mention' | 'poll' | 'reblog'
@@ -17,18 +20,31 @@ const Actioned: React.FC = ({
emojis,
notification = false
}) => {
+ const { theme } = useTheme()
+ const iconColor = theme.primary
+
let icon
let content
switch (action) {
case 'favourite':
icon = (
-
+
)
content = `${name} 喜欢了你的嘟嘟`
break
case 'follow':
icon = (
-
+
)
content = `${name} 开始关注你`
break
@@ -36,7 +52,7 @@ const Actioned: React.FC = ({
icon = (
@@ -45,7 +61,12 @@ const Actioned: React.FC = ({
break
case 'reblog':
icon = (
-
+
)
content = `${name} 转嘟了${notification ? '你的嘟嘟' : ''}`
break
@@ -57,7 +78,11 @@ const Actioned: React.FC = ({
{content ? (
{emojis ? (
-
+
) : (
{content}
)}
@@ -72,11 +97,11 @@ const Actioned: React.FC = ({
const styles = StyleSheet.create({
actioned: {
flexDirection: 'row',
- marginBottom: 8
+ marginBottom: constants.SPACING_S
},
icon: {
- marginLeft: 50 - 12,
- marginRight: 8
+ marginLeft: constants.AVATAR_S - constants.FONT_SIZE_S,
+ marginRight: constants.SPACING_S
},
content: {
flexDirection: 'row'
diff --git a/src/components/Status/ActionsStatus.tsx b/src/components/Timelines/Timeline/Shared/ActionsStatus.tsx
similarity index 86%
rename from src/components/Status/ActionsStatus.tsx
rename to src/components/Timelines/Timeline/Shared/ActionsStatus.tsx
index e657ed82..2c6549a0 100644
--- a/src/components/Status/ActionsStatus.tsx
+++ b/src/components/Timelines/Timeline/Shared/ActionsStatus.tsx
@@ -14,7 +14,9 @@ import { Feather } from '@expo/vector-icons'
import client from 'src/api/client'
import { getLocalAccountId } from 'src/utils/slices/instancesSlice'
-import {store} from 'src/store'
+import { store } from 'src/store'
+import { useTheme } from 'src/utils/styles/ThemeManager'
+import constants from 'src/utils/styles/constants'
const fireMutation = async ({
id,
@@ -112,6 +114,11 @@ export interface Props {
}
const ActionsStatus: React.FC = ({ queryKey, status }) => {
+ const { theme } = useTheme()
+ const iconColor = theme.secondary
+ const iconColorAction = (state: boolean) =>
+ state ? theme.primary : theme.secondary
+
const localAccountId = getLocalAccountId(store.getState())
const [modalVisible, setModalVisible] = useState(false)
@@ -153,8 +160,22 @@ const ActionsStatus: React.FC = ({ queryKey, status }) => {
<>
-
- {status.replies_count > 0 && {status.replies_count}}
+
+ {status.replies_count > 0 && (
+
+ {status.replies_count}
+
+ )}
= ({ queryKey, status }) => {
})
}
>
-
+
= ({ queryKey, status }) => {
})
}
>
-
+
= ({ queryKey, status }) => {
>
setModalVisible(true)}>
-
+
@@ -319,14 +353,12 @@ const styles = StyleSheet.create({
width: '100%',
flex: 1,
flexDirection: 'row',
- marginTop: 8
+ marginTop: constants.SPACING_M
},
action: {
width: '20%',
flexDirection: 'row',
- justifyContent: 'center',
- paddingTop: 8,
- paddingBottom: 8
+ justifyContent: 'center'
},
modalBackground: {
width: '100%',
diff --git a/src/components/Status/Attachment.tsx b/src/components/Timelines/Timeline/Shared/Attachment.tsx
similarity index 100%
rename from src/components/Status/Attachment.tsx
rename to src/components/Timelines/Timeline/Shared/Attachment.tsx
diff --git a/src/components/Status/Attachment/AttachmentImage.tsx b/src/components/Timelines/Timeline/Shared/Attachment/AttachmentImage.tsx
similarity index 100%
rename from src/components/Status/Attachment/AttachmentImage.tsx
rename to src/components/Timelines/Timeline/Shared/Attachment/AttachmentImage.tsx
diff --git a/src/components/Status/Attachment/AttachmentVideo.tsx b/src/components/Timelines/Timeline/Shared/Attachment/AttachmentVideo.tsx
similarity index 100%
rename from src/components/Status/Attachment/AttachmentVideo.tsx
rename to src/components/Timelines/Timeline/Shared/Attachment/AttachmentVideo.tsx
diff --git a/src/components/Status/Avatar.tsx b/src/components/Timelines/Timeline/Shared/Avatar.tsx
similarity index 78%
rename from src/components/Status/Avatar.tsx
rename to src/components/Timelines/Timeline/Shared/Avatar.tsx
index 95afbe43..079f0fb2 100644
--- a/src/components/Status/Avatar.tsx
+++ b/src/components/Timelines/Timeline/Shared/Avatar.tsx
@@ -2,6 +2,8 @@ import React from 'react'
import { Image, Pressable, StyleSheet } from 'react-native'
import { useNavigation } from '@react-navigation/native'
+import constants from 'src/utils/styles/constants'
+
export interface Props {
uri: string
id: string
@@ -26,13 +28,14 @@ const Avatar: React.FC = ({ uri, id }) => {
const styles = StyleSheet.create({
avatar: {
- width: 50,
- height: 50,
- marginRight: 8
+ width: constants.AVATAR_S,
+ height: constants.AVATAR_S,
+ marginRight: constants.SPACING_S
},
image: {
width: '100%',
- height: '100%'
+ height: '100%',
+ borderRadius: 8
}
})
diff --git a/src/components/Status/Card.tsx b/src/components/Timelines/Timeline/Shared/Card.tsx
similarity index 100%
rename from src/components/Status/Card.tsx
rename to src/components/Timelines/Timeline/Shared/Card.tsx
diff --git a/src/components/Status/Content.tsx b/src/components/Timelines/Timeline/Shared/Content.tsx
similarity index 70%
rename from src/components/Status/Content.tsx
rename to src/components/Timelines/Timeline/Shared/Content.tsx
index 2b19138e..a1a2adff 100644
--- a/src/components/Status/Content.tsx
+++ b/src/components/Timelines/Timeline/Shared/Content.tsx
@@ -4,6 +4,9 @@ import Collapsible from 'react-native-collapsible'
import ParseContent from 'src/components/ParseContent'
+import constants from 'src/utils/styles/constants'
+import { useTheme } from 'src/utils/styles/ThemeManager'
+
export interface Props {
content: string
emojis: Mastodon.Emoji[]
@@ -17,6 +20,7 @@ const Content: React.FC = ({
mentions,
spoiler_text
}) => {
+ const { theme } = useTheme()
const [spoilerCollapsed, setSpoilerCollapsed] = useState(true)
return (
@@ -26,15 +30,18 @@ const Content: React.FC = ({
<>
{spoiler_text}{' '}
- setSpoilerCollapsed(!spoilerCollapsed)}>
- 点击展开
+ setSpoilerCollapsed(!spoilerCollapsed)}
+ style={{ color: theme.link }}
+ >
+ {spoilerCollapsed ? '点击展开' : '点击收起'}
@@ -42,8 +49,8 @@ const Content: React.FC = ({
) : (
))}
diff --git a/src/components/Status/Emojis.tsx b/src/components/Timelines/Timeline/Shared/Emojis.tsx
similarity index 52%
rename from src/components/Status/Emojis.tsx
rename to src/components/Timelines/Timeline/Shared/Emojis.tsx
index e1644d2e..adc9b037 100644
--- a/src/components/Status/Emojis.tsx
+++ b/src/components/Timelines/Timeline/Shared/Emojis.tsx
@@ -1,16 +1,37 @@
import React from 'react'
-import { Image, Text } from 'react-native'
+import { Image, StyleSheet, Text } from 'react-native'
+import { useTheme } from 'src/utils/styles/ThemeManager'
const regexEmoji = new RegExp(/(:[a-z0-9_]+:)/)
export interface Props {
content: string
emojis: Mastodon.Emoji[]
- dimension: number
+ size: number
+ fontBold?: boolean
}
-const Emojis: React.FC = ({ content, emojis, dimension }) => {
+const Emojis: React.FC = ({
+ content,
+ emojis,
+ size,
+ fontBold = false
+}) => {
+ const { theme } = useTheme()
+ const styles = StyleSheet.create({
+ text: {
+ fontSize: size,
+ lineHeight: size + 2,
+ color: theme.primary,
+ ...(fontBold && { fontWeight: 'bold' })
+ },
+ image: {
+ width: size,
+ height: size
+ }
+ })
const hasEmojis = content.match(regexEmoji)
+
return hasEmojis ? (
<>
{content.split(regexEmoji).map((str, i) => {
@@ -20,20 +41,19 @@ const Emojis: React.FC = ({ content, emojis, dimension }) => {
return emojiShortcode === `:${emoji.shortcode}:`
})
return emojiIndex === -1 ? (
- {emojiShortcode}
+
+ {emojiShortcode}
+
) : (
)
} else {
return (
-
+
{str}
)
@@ -41,9 +61,7 @@ const Emojis: React.FC = ({ content, emojis, dimension }) => {
})}
>
) : (
-
- {content}
-
+ {content}
)
}
diff --git a/src/components/Status/HeaderConversation.tsx b/src/components/Timelines/Timeline/Shared/HeaderConversation.tsx
similarity index 98%
rename from src/components/Status/HeaderConversation.tsx
rename to src/components/Timelines/Timeline/Shared/HeaderConversation.tsx
index 4768596d..c517452a 100644
--- a/src/components/Status/HeaderConversation.tsx
+++ b/src/components/Timelines/Timeline/Shared/HeaderConversation.tsx
@@ -18,7 +18,7 @@ const HeaderConversation: React.FC = ({ account, created_at }) => {
) : (
diff --git a/src/components/Status/Header.tsx b/src/components/Timelines/Timeline/Shared/HeaderDefault.tsx
similarity index 84%
rename from src/components/Status/Header.tsx
rename to src/components/Timelines/Timeline/Shared/HeaderDefault.tsx
index 35e50e0a..85cbb4d0 100644
--- a/src/components/Status/Header.tsx
+++ b/src/components/Timelines/Timeline/Shared/HeaderDefault.tsx
@@ -8,12 +8,10 @@ import { useMutation, useQueryCache } from 'react-query'
import Emojis from './Emojis'
import relativeTime from 'src/utils/relativeTime'
import client from 'src/api/client'
-import { useSelector } from 'react-redux'
-import {
- getLocalAccountId,
- getLocalUrl
-} from 'src/utils/slices/instancesSlice'
-import {store} from 'src/store'
+import { getLocalAccountId, getLocalUrl } from 'src/utils/slices/instancesSlice'
+import { store } from 'src/store'
+import { useTheme } from 'src/utils/styles/ThemeManager'
+import constants from 'src/utils/styles/constants'
const fireMutation = async ({
id,
@@ -131,7 +129,7 @@ export interface Props {
application?: Mastodon.Application
}
-const Header: React.FC = ({
+const HeaderDefault: React.FC = ({
queryKey,
accountId,
domain,
@@ -141,6 +139,8 @@ const Header: React.FC = ({
created_at,
application
}) => {
+ const { theme } = useTheme()
+
const navigation = useNavigation()
const localAccountId = getLocalAccountId(store.getState())
const localDomain = getLocalUrl(store.getState())
@@ -194,26 +194,42 @@ const Header: React.FC = ({
{emojis ? (
-
+
) : (
- {name}
+
+ {name}
+
)}
+
+ @{account}
+
{accountId !== localAccountId && domain !== localDomain && (
setModalVisible(true)}
>
-
+
)}
-
- @{account}
-
- {since}
+
+ {since}
+
{application && application.name !== 'Web' && (
@@ -223,9 +239,9 @@ const Header: React.FC = ({
uri: application.website
})
}}
- style={styles.application}
+ style={[styles.application, { color: theme.secondary }]}
>
- {application.name}
+ 发自于 - {application.name}
)}
@@ -310,32 +326,29 @@ const styles = StyleSheet.create({
justifyContent: 'space-between'
},
name: {
- flexDirection: 'row',
- marginRight: 8,
- fontWeight: '900'
- },
- action: {
- width: 14,
- height: 14,
- marginLeft: 8
- },
- account: {
- lineHeight: 14,
- flexShrink: 1
- },
- meta: {
+ flexBasis: '80%',
flexDirection: 'row'
},
+ action: {
+ flexBasis: '20%',
+ alignItems: 'center'
+ },
+ account: {
+ flexShrink: 1,
+ marginLeft: constants.SPACING_XS,
+ lineHeight: constants.FONT_SIZE_M + 2
+ },
+ meta: {
+ flexDirection: 'row',
+ marginTop: constants.SPACING_XS,
+ marginBottom: constants.SPACING_S
+ },
created_at: {
- fontSize: 12,
- lineHeight: 12,
- marginTop: 8,
- marginBottom: 8,
- marginRight: 8
+ fontSize: constants.FONT_SIZE_S
},
application: {
- fontSize: 12,
- lineHeight: 11
+ fontSize: constants.FONT_SIZE_S,
+ marginLeft: constants.SPACING_S
},
modalBackground: {
width: '100%',
@@ -354,4 +367,4 @@ const styles = StyleSheet.create({
}
})
-export default Header
+export default HeaderDefault
diff --git a/src/components/Status/Poll.tsx b/src/components/Timelines/Timeline/Shared/Poll.tsx
similarity index 97%
rename from src/components/Status/Poll.tsx
rename to src/components/Timelines/Timeline/Shared/Poll.tsx
index 4ae0a302..7f2d87cc 100644
--- a/src/components/Status/Poll.tsx
+++ b/src/components/Timelines/Timeline/Shared/Poll.tsx
@@ -19,7 +19,7 @@ const Poll: React.FC = ({ poll }) => {
{
return (
diff --git a/src/screens/Me/Bookmarks.tsx b/src/screens/Me/Bookmarks.tsx
index 758e019f..6dcfa57c 100644
--- a/src/screens/Me/Bookmarks.tsx
+++ b/src/screens/Me/Bookmarks.tsx
@@ -1,6 +1,6 @@
import React from 'react'
-import Timeline from 'src/screens/Timelines/Timeline'
+import Timeline from 'src/components/Timelines/Timeline'
const ScreenMeBookmarks: React.FC = () => {
return
diff --git a/src/screens/Me/Cconversations.tsx b/src/screens/Me/Cconversations.tsx
index 739e7950..612f2697 100644
--- a/src/screens/Me/Cconversations.tsx
+++ b/src/screens/Me/Cconversations.tsx
@@ -1,6 +1,6 @@
import React from 'react'
-import Timeline from 'src/screens/Timelines/Timeline'
+import Timeline from 'src/components/Timelines/Timeline'
const ScreenMeConversations: React.FC = () => {
return
diff --git a/src/screens/Me/Favourites.tsx b/src/screens/Me/Favourites.tsx
index c57ceafd..3e82e76f 100644
--- a/src/screens/Me/Favourites.tsx
+++ b/src/screens/Me/Favourites.tsx
@@ -1,6 +1,6 @@
import React from 'react'
-import Timeline from 'src/screens/Timelines/Timeline'
+import Timeline from 'src/components/Timelines/Timeline'
const ScreenMeFavourites: React.FC = () => {
return
diff --git a/src/screens/Me/Root/Lists/List.tsx b/src/screens/Me/Root/Lists/List.tsx
index 3de42ddf..c8999a04 100644
--- a/src/screens/Me/Root/Lists/List.tsx
+++ b/src/screens/Me/Root/Lists/List.tsx
@@ -1,6 +1,6 @@
import React from 'react'
-import Timeline from 'src/screens/Timelines/Timeline'
+import Timeline from 'src/components/Timelines/Timeline'
// Show remote hashtag? Only when private, show local version?
diff --git a/src/screens/Notifications.tsx b/src/screens/Notifications.tsx
index 40e217d8..2474c78b 100644
--- a/src/screens/Notifications.tsx
+++ b/src/screens/Notifications.tsx
@@ -2,12 +2,15 @@ import React, { useEffect, useState } from 'react'
import { createNativeStackNavigator } from 'react-native-screens/native-stack'
import { Feather } from '@expo/vector-icons'
-import Timeline from 'src/screens/Timelines/Timeline'
+import Timeline from 'src/components/Timelines/Timeline'
import sharedScreens from 'src/screens/Shared/sharedScreens'
+import { useTheme } from 'src/utils/styles/ThemeManager'
const Stack = createNativeStackNavigator()
const ScreenNotifications: React.FC = () => {
+ const { theme } = useTheme()
+
const [renderHeader, setRenderHeader] = useState(false)
useEffect(() => {
@@ -20,9 +23,10 @@ const ScreenNotifications: React.FC = () => {
screenOptions={{
headerRight: () =>
renderHeader ? (
-
+
) : null,
- headerTitle: '通知'
+ headerTitle: '通知',
+ headerLargeTitle: true
}}
>
diff --git a/src/screens/Public.tsx b/src/screens/Public.tsx
index 7dd09f5f..81376ef6 100644
--- a/src/screens/Public.tsx
+++ b/src/screens/Public.tsx
@@ -1,6 +1,6 @@
import React from 'react'
-import Timelines from 'src/screens/Timelines/Timelines'
+import Timelines from 'src/components/Timelines'
const ScreenPublic: React.FC = () => {
return (
diff --git a/src/screens/Shared/Account/Information.tsx b/src/screens/Shared/Account/Information.tsx
index 968a0250..2af5e341 100644
--- a/src/screens/Shared/Account/Information.tsx
+++ b/src/screens/Shared/Account/Information.tsx
@@ -4,12 +4,16 @@ import ShimmerPlaceholder from 'react-native-shimmer-placeholder'
import { Feather } from '@expo/vector-icons'
import ParseContent from 'src/components/ParseContent'
+import { useTheme } from 'src/utils/styles/ThemeManager'
+
+import constants from 'src/utils/styles/constants'
export interface Props {
account: Mastodon.Account | undefined
}
const AccountInformation: React.FC = ({ account }) => {
+ const { theme } = useTheme()
const [avatarLoaded, setAvatarLoaded] = useState(false)
// add emoji support
@@ -24,71 +28,128 @@ const AccountInformation: React.FC = ({ account }) => {
/>
-
+
{account?.display_name || account?.username}
{account?.bot && (
)}
-
- {account?.acct}
+
+
+ @{account?.acct}
{account?.locked && }
- {account?.fields &&
- account.fields.map((field, index) => (
-
-
- {' '}
- {field.verified_at && }
-
-
-
-
-
- ))}
- {account?.note && (
-
- )}
- {account?.created_at && (
-
- 加入时间{' '}
- {new Date(account.created_at).toLocaleDateString('zh-CN', {
- year: 'numeric',
- month: 'long',
- day: 'numeric'
- })}
-
+ {account?.fields && (
+
+ {account.fields.map((field, index) => (
+
+
+ {' '}
+ {field.verified_at && }
+
+
+
+
+
+ ))}
+
)}
- Toots: {account?.statuses_count}
- Followers: {account?.followers_count}
- Following: {account?.following_count}
+ {account?.note && (
+
+
+
+ )}
+
+ {account?.created_at && (
+
+
+
+ 加入时间:
+ {new Date(account.created_at).toLocaleDateString('zh-CN', {
+ year: 'numeric',
+ month: 'long',
+ day: 'numeric'
+ })}
+
+
+ )}
+
+
+
+ {account?.statuses_count} 条嘟文
+
+
+ 关注 {account?.followers_count} 人
+
+
+ 被 {account?.following_count} 人关注
+
+
)
}
const styles = StyleSheet.create({
- information: { marginTop: -30, paddingLeft: 12, paddingRight: 12 },
+ information: {
+ marginTop: -30 - constants.GLOBAL_PAGE_PADDING,
+ padding: constants.GLOBAL_PAGE_PADDING
+ },
avatar: {
- width: 90,
- height: 90
+ width: constants.AVATAR_L,
+ height: constants.AVATAR_L,
+ borderRadius: 8
},
display_name: {
- fontSize: 18,
+ fontSize: constants.FONT_SIZE_L,
fontWeight: 'bold',
- marginTop: 12
+ marginTop: constants.SPACING_M,
+ marginBottom: constants.SPACING_XS
},
account: {
- marginTop: 4
+ fontSize: constants.FONT_SIZE_M,
+ marginBottom: constants.SPACING_S
+ },
+ fields: {
+ marginBottom: constants.SPACING_S
+ },
+ note: {
+ marginBottom: constants.SPACING_M
+ },
+ created_at: {
+ flexDirection: 'row',
+ marginBottom: constants.SPACING_M
+ },
+ summary: {
+ flexDirection: 'row',
+ justifyContent: 'space-between'
}
})
diff --git a/src/screens/Shared/Account/Toots.tsx b/src/screens/Shared/Account/Toots.tsx
index 395e4383..73232df7 100644
--- a/src/screens/Shared/Account/Toots.tsx
+++ b/src/screens/Shared/Account/Toots.tsx
@@ -2,7 +2,7 @@ import React, { useRef, useState } from 'react'
import { Dimensions, FlatList, View } from 'react-native'
import SegmentedControl from '@react-native-community/segmented-control'
-import Timeline from 'src/screens/Timelines/Timeline'
+import Timeline from 'src/components/Timelines/Timeline'
export interface Props {
id: Mastodon.Account['id']
diff --git a/src/screens/Shared/Hashtag.tsx b/src/screens/Shared/Hashtag.tsx
index 939b8ff3..82c57a27 100644
--- a/src/screens/Shared/Hashtag.tsx
+++ b/src/screens/Shared/Hashtag.tsx
@@ -1,6 +1,6 @@
import React from 'react'
-import Timeline from 'src/screens/Timelines/Timeline'
+import Timeline from 'src/components/Timelines/Timeline'
// Show remote hashtag? Only when private, show local version?
diff --git a/src/screens/Shared/Toot.tsx b/src/screens/Shared/Toot.tsx
index 5d39feee..ead1d1b5 100644
--- a/src/screens/Shared/Toot.tsx
+++ b/src/screens/Shared/Toot.tsx
@@ -1,6 +1,6 @@
import React from 'react'
-import Timeline from 'src/screens/Timelines/Timeline'
+import Timeline from 'src/components/Timelines/Timeline'
// Show remote hashtag? Only when private, show local version?
diff --git a/src/utils/styles/ThemeManager.tsx b/src/utils/styles/ThemeManager.tsx
new file mode 100644
index 00000000..b1d67293
--- /dev/null
+++ b/src/utils/styles/ThemeManager.tsx
@@ -0,0 +1,44 @@
+import React, { createContext, useContext, useEffect, useState } from 'react'
+import { Appearance, useColorScheme } from 'react-native-appearance'
+import { ColorDefinitions, getTheme } from 'src/utils/styles/themes'
+
+const osTheme = Appearance.getColorScheme() as 'light' | 'dark'
+
+export const ManageThemeContext: React.Context<{
+ mode: 'light' | 'dark'
+ theme: { [key in ColorDefinitions]: string }
+ toggle: () => void
+}> = createContext({
+ mode: osTheme,
+ theme: getTheme(osTheme),
+ toggle: () => {}
+})
+
+export const useTheme = () => useContext(ManageThemeContext)
+
+const ThemeManager: React.FC = ({ children }) => {
+ const [mode, setMode] = useState(osTheme)
+ const systemTheme = useColorScheme()
+
+ const toggleTheme = () => {
+ mode === 'light' ? setMode('dark') : setMode('light')
+ }
+
+ useEffect(() => {
+ setMode(systemTheme === 'no-preference' ? 'light' : systemTheme)
+ }, [systemTheme])
+
+ return (
+
+ {children}
+
+ )
+}
+
+export default ThemeManager
diff --git a/src/utils/styles/constants.ts b/src/utils/styles/constants.ts
new file mode 100644
index 00000000..5f8138e1
--- /dev/null
+++ b/src/utils/styles/constants.ts
@@ -0,0 +1,16 @@
+export default {
+ FONT_SIZE_S: 12,
+ FONT_SIZE_M: 14,
+ FONT_SIZE_L: 18,
+
+ SPACING_XS: 4,
+ SPACING_S: 8,
+ SPACING_M: 16,
+ SPACING_L: 24,
+ SPACING_XL: 40,
+
+ GLOBAL_PAGE_PADDING: 16, // SPACING_M
+
+ AVATAR_S: 52,
+ AVATAR_L: 104
+}
diff --git a/src/utils/styles/themes.ts b/src/utils/styles/themes.ts
new file mode 100644
index 00000000..71afff72
--- /dev/null
+++ b/src/utils/styles/themes.ts
@@ -0,0 +1,80 @@
+import { DefaultTheme, DarkTheme } from '@react-navigation/native'
+
+export type ColorDefinitions =
+ | 'primary'
+ | 'secondary'
+ | 'background'
+ | 'link'
+ | 'border'
+ | 'separator'
+
+const themeColors: {
+ [key in ColorDefinitions]: {
+ light: string
+ dark: string
+ }
+} = {
+ primary: {
+ light: 'rgb(0, 0, 0)',
+ dark: 'rgb(255, 255, 255)'
+ },
+ secondary: {
+ light: 'rgb(153, 153, 153)',
+ dark: 'rgb(117, 117, 117)'
+ },
+ background: {
+ light: 'rgb(255, 255, 255)',
+ dark: 'rgb(0, 0, 0)'
+ },
+ link: {
+ light: 'rgb(0, 122, 255)',
+ dark: 'rgb(10, 132, 255)'
+ },
+ border: {
+ light: 'rgba(0, 0, 0, 0.3)',
+ dark: 'rgba(255, 255, 255, 0.16)'
+ },
+ separator: {
+ light: 'rgba(0, 0, 0, 0.1)',
+ dark: 'rgba(255, 255, 255, 0.1)'
+ }
+}
+
+const getTheme = (mode: 'light' | 'dark') => {
+ let Theme = {} as {
+ [key in ColorDefinitions]: string
+ }
+ const keys = Object.keys(themeColors) as ColorDefinitions[]
+ keys.forEach(key => (Theme[key] = themeColors[key][mode]))
+
+ return Theme
+}
+
+const themes = {
+ light: {
+ ...DefaultTheme,
+ colors: {
+ ...DefaultTheme.colors,
+ primary: themeColors.primary.light,
+ background: themeColors.background.light,
+ card: themeColors.background.light || 'rgba(249, 249, 249, 0.94)',
+ text: themeColors.primary.light,
+ border: themeColors.border.light,
+ notification: 'rgb(255, 59, 48)'
+ }
+ },
+ dark: {
+ ...DarkTheme,
+ colors: {
+ ...DarkTheme.colors,
+ primary: themeColors.primary.dark,
+ background: themeColors.background.dark,
+ card: themeColors.background.dark || 'rgba(22, 22, 22, 0.94)',
+ text: themeColors.primary.dark,
+ border: themeColors.border.dark,
+ notification: 'rgb(255, 69, 58)'
+ }
+ }
+}
+
+export { themeColors, getTheme, themes }
diff --git a/yarn.lock b/yarn.lock
index f3a7409f..7a69b766 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,7 +2,7 @@
# yarn lockfile v1
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.44", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
@@ -14,7 +14,29 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41"
integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==
-"@babel/core@^7.0.0", "@babel/core@~7.12.3":
+"@babel/core@7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e"
+ integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==
+ dependencies:
+ "@babel/code-frame" "^7.8.3"
+ "@babel/generator" "^7.9.0"
+ "@babel/helper-module-transforms" "^7.9.0"
+ "@babel/helpers" "^7.9.0"
+ "@babel/parser" "^7.9.0"
+ "@babel/template" "^7.8.6"
+ "@babel/traverse" "^7.9.0"
+ "@babel/types" "^7.9.0"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.1"
+ json5 "^2.1.2"
+ lodash "^4.17.13"
+ resolve "^1.3.2"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
+"@babel/core@^7.0.0", "@babel/core@^7.4.5", "@babel/core@~7.12.3":
version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.7.tgz#bf55363c08c8352a37691f7216ec30090bf7e3bf"
integrity sha512-tRKx9B53kJe8NCGGIxEQb2Bkr0riUIEuN7Sc1fxhs5H8lKlCWUvQCSNMVIB0Meva7hcbCRJ76de15KoLltdoqw==
@@ -36,7 +58,7 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.12.5", "@babel/generator@^7.5.0":
+"@babel/generator@^7.12.5", "@babel/generator@^7.5.0", "@babel/generator@^7.9.0":
version "7.12.5"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de"
integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==
@@ -159,7 +181,7 @@
dependencies:
"@babel/types" "^7.12.5"
-"@babel/helper-module-transforms@^7.12.1":
+"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.9.0":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c"
integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==
@@ -246,7 +268,7 @@
"@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"
-"@babel/helpers@^7.12.5":
+"@babel/helpers@^7.12.5", "@babel/helpers@^7.9.0":
version "7.12.5"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e"
integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==
@@ -264,7 +286,7 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.0.0", "@babel/parser@^7.12.7":
+"@babel/parser@^7.0.0", "@babel/parser@^7.12.7", "@babel/parser@^7.9.0":
version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056"
integrity sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==
@@ -285,7 +307,7 @@
"@babel/helper-remap-async-to-generator" "^7.12.1"
"@babel/plugin-syntax-async-generators" "^7.8.0"
-"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.12.1":
+"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.4.4":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de"
integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==
@@ -342,7 +364,7 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1":
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.7.4":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c"
integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==
@@ -375,7 +397,7 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
-"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.12.7":
+"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.7.5":
version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c"
integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==
@@ -646,7 +668,7 @@
"@babel/helper-plugin-utils" "^7.10.4"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.12.1":
+"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.12.1", "@babel/plugin-transform-modules-commonjs@^7.5.0":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648"
integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==
@@ -809,7 +831,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-typescript@^7.5.0":
+"@babel/plugin-transform-typescript@^7.12.1", "@babel/plugin-transform-typescript@^7.5.0":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4"
integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==
@@ -833,7 +855,7 @@
"@babel/helper-create-regexp-features-plugin" "^7.12.1"
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/preset-env@^7.6.3":
+"@babel/preset-env@^7.4.4", "@babel/preset-env@^7.6.3":
version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.7.tgz#54ea21dbe92caf6f10cb1a0a576adc4ebf094b55"
integrity sha512-OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew==
@@ -916,6 +938,15 @@
"@babel/types" "^7.4.4"
esutils "^2.0.2"
+"@babel/preset-typescript@^7.3.3":
+ version "7.12.7"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.7.tgz#fc7df8199d6aae747896f1e6c61fc872056632a3"
+ integrity sha512-nOoIqIqBmHBSEgBXWR4Dv/XBehtIFcw9PqZw6rFYuKrzsZmOQm3PR5siLBnKZFEsDb03IegG8nSjU/iXXXYRmw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-validator-option" "^7.12.1"
+ "@babel/plugin-transform-typescript" "^7.12.1"
+
"@babel/register@^7.0.0":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.12.1.tgz#cdb087bdfc4f7241c03231f22e15d211acf21438"
@@ -927,14 +958,14 @@
pirates "^4.0.0"
source-map-support "^0.5.16"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
version "7.12.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/template@^7.0.0", "@babel/template@^7.10.4", "@babel/template@^7.12.7":
+"@babel/template@^7.0.0", "@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.8.6":
version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc"
integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==
@@ -943,7 +974,7 @@
"@babel/parser" "^7.12.7"
"@babel/types" "^7.12.7"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.7":
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.7", "@babel/traverse@^7.9.0":
version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.7.tgz#572a722408681cef17d6b0bef69ef2e728ca69f1"
integrity sha512-nMWaqsQEeSvMNypswUDzjqQ+0rR6pqCtoQpsqGJC4/Khm9cISwPTSpai57F6/jDaOoEGz8yE/WxcO3PV6tKSmQ==
@@ -958,7 +989,7 @@
globals "^11.1.0"
lodash "^4.17.19"
-"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4":
+"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.9.0":
version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13"
integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==
@@ -982,6 +1013,47 @@
dependencies:
"@types/hammerjs" "^2.0.36"
+"@expo/babel-preset-cli@0.2.18":
+ version "0.2.18"
+ resolved "https://registry.yarnpkg.com/@expo/babel-preset-cli/-/babel-preset-cli-0.2.18.tgz#136acf8a0efe259e29ebc614b68552e5acb47d86"
+ integrity sha512-y2IZFynVtRxMQ4uxXYUnrnXZa+pvSH1R1aSUAfC6RsUb2UNOxC6zRehdLGSOyF4s9Wy+j3/CPm6fC0T5UJYoQg==
+ dependencies:
+ "@babel/core" "^7.4.5"
+ "@babel/plugin-proposal-class-properties" "^7.4.4"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.7.4"
+ "@babel/plugin-proposal-optional-chaining" "^7.7.5"
+ "@babel/plugin-transform-modules-commonjs" "^7.5.0"
+ "@babel/preset-env" "^7.4.4"
+ "@babel/preset-typescript" "^7.3.3"
+
+"@expo/config-types@^40.0.0-beta.1":
+ version "40.0.0-beta.1"
+ resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-40.0.0-beta.1.tgz#4192b120edc9ec235147329a50bd0a7da16ae89c"
+ integrity sha512-hTp+6ZIKK57O8qhVoO+GBCkx0UCdOhwcWxaXfjpsELIR8LfXDGz8OmCxTzGvb7nnadcrGCccHBX5dO1NmPBbmg==
+
+"@expo/config@^3.3.15":
+ version "3.3.15"
+ resolved "https://registry.yarnpkg.com/@expo/config/-/config-3.3.15.tgz#8241eb575f3f9071dc0277b260906ab32eb9ca95"
+ integrity sha512-AxsmTd0JtJTiaYos+maWCMjQOAVcN/Z+edj0SUUh46O3003LBnr7SZCOysqmtwY2437MD5IkzU/YL9wkQYuWtw==
+ dependencies:
+ "@babel/core" "7.9.0"
+ "@expo/babel-preset-cli" "0.2.18"
+ "@expo/config-types" "^40.0.0-beta.1"
+ "@expo/configure-splash-screen" "0.2.1"
+ "@expo/image-utils" "0.3.7"
+ "@expo/json-file" "8.2.24"
+ "@expo/plist" "0.0.10"
+ fs-extra "9.0.0"
+ glob "7.1.6"
+ invariant "^2.2.4"
+ require-from-string "^2.0.2"
+ resolve-from "^5.0.0"
+ semver "^7.1.3"
+ slash "^3.0.0"
+ slugify "^1.3.4"
+ xcode "^2.1.0"
+ xml2js "^0.4.23"
+
"@expo/configure-splash-screen@0.2.0":
version "0.2.0"
resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.2.0.tgz#84f9f71363259f16fd0073636a198c750a3cdd7c"
@@ -999,6 +1071,67 @@
xcode "^3.0.0"
xml-js "^1.6.11"
+"@expo/configure-splash-screen@0.2.1":
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.2.1.tgz#de29b781990d32d9f48d630b912aaf017afccbf3"
+ integrity sha512-6n7ji1WKDCdLe2Mto4u4W72kTLhAbhXhC7ydVk1HxDYCcbewNLfgiwhchPtPGyUMnSDizVWph5aDoiKxqVHqNQ==
+ dependencies:
+ "@react-native-community/cli-platform-android" "^4.10.0"
+ "@react-native-community/cli-platform-ios" "^4.10.0"
+ color-string "^1.5.3"
+ commander "^5.1.0"
+ core-js "^3.6.5"
+ deep-equal "^2.0.3"
+ fs-extra "^9.0.0"
+ lodash "^4.17.15"
+ pngjs "^5.0.0"
+ xcode "^3.0.0"
+ xml-js "^1.6.11"
+
+"@expo/image-utils@0.3.7":
+ version "0.3.7"
+ resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.7.tgz#48436a5f509818dc43a30f73dbfd4baed88a5f23"
+ integrity sha512-Vo1p5uv1JlRacgVIiVa+83oRoHfC7grSU8cypAtgvOYpbmdCWR8+3F4v+vaabHe6ktvIKRE78jh6vHMGwv2aOA==
+ dependencies:
+ "@expo/spawn-async" "1.5.0"
+ chalk "^4.0.0"
+ fs-extra "9.0.0"
+ getenv "0.7.0"
+ jimp "^0.9.6"
+ mime "^2.4.4"
+ node-fetch "^2.6.0"
+ parse-png "^2.1.0"
+ resolve-from "^5.0.0"
+ semver "6.1.1"
+ tempy "0.3.0"
+
+"@expo/json-file@8.2.24":
+ version "8.2.24"
+ resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.24.tgz#02a9dd75c9ca6d70d4cc04729f0586eb80bcd1ba"
+ integrity sha512-i34lfcMVt5Wv2Cf5apZUj3o9JlFt8WOPSZjrECryunBQ9/BsQQYY5NHgGjhhZnnRE+6JFf0CPQTjXdoQ1w3w0w==
+ dependencies:
+ "@babel/code-frame" "^7.0.0-beta.44"
+ fs-extra "9.0.0"
+ json5 "^1.0.1"
+ lodash "^4.17.15"
+ write-file-atomic "^2.3.0"
+
+"@expo/plist@0.0.10":
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.0.10.tgz#e126a15543c6c67fd159947ca9e35969657a97f4"
+ integrity sha512-uKbi7ANPCNJqeAvxLa+ZcS/Qf0fTPOySMqw5T2L4TrycSAdiAxV1VUZ69IzIbUsWb7GdriUVR2i38M/xa6+BvA==
+ dependencies:
+ base64-js "^1.2.3"
+ xmlbuilder "^14.0.0"
+ xmldom "~0.1.31"
+
+"@expo/spawn-async@1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.5.0.tgz#799827edd8c10ef07eb1a2ff9dcfe081d596a395"
+ integrity sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==
+ dependencies:
+ cross-spawn "^6.0.5"
+
"@expo/vector-icons@^10.0.0", "@expo/vector-icons@^10.0.2":
version "10.2.1"
resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-10.2.1.tgz#47fb2fa12d7ad601835babde6bd3ddea7f6fde89"
@@ -1104,6 +1237,325 @@
"@types/yargs" "^15.0.0"
chalk "^3.0.0"
+"@jimp/bmp@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.9.8.tgz#5933ab8fb359889bec380b0f7802163374933624"
+ integrity sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ bmp-js "^0.1.0"
+ core-js "^3.4.1"
+
+"@jimp/core@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.9.8.tgz#b2b74263a80559c0ee244e0f2d1052b36a358b85"
+ integrity sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ any-base "^1.1.0"
+ buffer "^5.2.0"
+ core-js "^3.4.1"
+ exif-parser "^0.1.12"
+ file-type "^9.0.0"
+ load-bmfont "^1.3.1"
+ mkdirp "^0.5.1"
+ phin "^2.9.1"
+ pixelmatch "^4.0.2"
+ tinycolor2 "^1.4.1"
+
+"@jimp/custom@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.9.8.tgz#1e9d904b1b05aa22b00b899baba2be7c0704a5d1"
+ integrity sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/core" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/gif@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.9.8.tgz#513aff511634c338d1ab33a7bba1ba3412220b5b"
+ integrity sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+ omggif "^1.0.9"
+
+"@jimp/jpeg@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.9.8.tgz#8c086f69d0e8c46e43a7db9725576edc30925cb1"
+ integrity sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+ jpeg-js "^0.3.4"
+
+"@jimp/plugin-blit@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.9.8.tgz#916bf6f261e6a91dbecca0ca866b8d9cba563753"
+ integrity sha512-6xTDomxJybhBcby1IUVaPydZFhxf+V0DRgfDlVK81kR9kSCoshJpzWqDuWrMqjNEPspPE7jRQwHMs0FdU7mVwQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-blur@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.9.8.tgz#00055d54b90532b7951dae377b3e40352c187f07"
+ integrity sha512-dqbxuNFBRbmt35iIRacdgma7nlXklmPThsKcGWNTDmqb/hniK5IC+0xSPzBV4qMI2fLGP39LWHqqDZ0xDz14dA==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-circle@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.9.8.tgz#5de8735f32f931d9160d0f5211e9aab6413a1d4b"
+ integrity sha512-+UStXUPCzPqzTixLC8eVqcFcEa6TS+BEM/6/hyM11TDb9sbiMGeUtgpwZP/euR5H5gfpAQDA1Ppzqhh5fuMDlw==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-color@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.9.8.tgz#3c633f22955a4f5013025e9e9e78a267ac4c3a88"
+ integrity sha512-SDHxOQsJHpt75hk6+sSlCPc2B3UJlXosFW+iLZ11xX1Qr0IdDtbfYlIoPmjKQFIDUNzqLSue/z7sKQ1OMZr/QA==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+ tinycolor2 "^1.4.1"
+
+"@jimp/plugin-contain@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.9.8.tgz#f892fb7fc87134a47b37281f0ff17d608f3e51af"
+ integrity sha512-oK52CPt7efozuLYCML7qOmpFeDt3zpU8qq8UZlnjsDs15reU6L8EiUbwYpJvzoEnEOh1ZqamB8F/gymViEO5og==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-cover@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.9.8.tgz#37474b19027ac0155100b71ca17266aab19e50fc"
+ integrity sha512-nnamtHzMrNd5j5HRSPd1VzpZ8v9YYtUJPtvCdHOOiIjqG72jxJ2kTBlsS3oG5XS64h/2MJwpl/fmmMs1Tj1CmQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-crop@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.9.8.tgz#2308696597a8bcb528d09eeebbbadb22248e7c1c"
+ integrity sha512-Nv/6AIp4aJmbSIH2uiIqm+kSoShKM8eaX2fyrUTj811kio0hwD3f/vIxrWebvAqwDZjAFIAmMufFoFCVg6caoQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-displace@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.9.8.tgz#00331047039cb2d0d9d5f7c3d8ce542e07eea791"
+ integrity sha512-0OgPjkOVa2xdbqI8P6gBKX/UK36RbaYVrFyXL8Jy9oNF69+LYWyTskuCu9YbGxzlCVjY/JFqQOvrKDbxgMYAKA==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-dither@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.9.8.tgz#9cca12997f2917f27d5681275b32affdb3083450"
+ integrity sha512-jGM/4ByniZJnmV2fv8hKwyyydXZe/YzvgBcnB8XxzCq8kVR3Imcn+qnd2PEPZzIPKOTH4Cig/zo9Vk9Bs+m5FQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-fisheye@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.9.8.tgz#e3f5f616ec06a9ef99aa268446f0096eac863437"
+ integrity sha512-VnsalrD05f4pxG1msjnkwIFi5QveOqRm4y7VkoZKNX+iqs4TvRnH5+HpBnfdMzX/RXBi+Lf/kpTtuZgbOu/QWw==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-flip@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.9.8.tgz#c00559a8543a684c7cff4d1128b7152e598fbb1c"
+ integrity sha512-XbiZ4OfHD6woc0f6Sk7XxB6a7IyMjTRQ4pNU7APjaNxsl3L6qZC8qfCQphWVe3DHx7f3y7jEiPMvNnqRDP1xgA==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-gaussian@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.9.8.tgz#d1666167ce1b947b65db5093bb9a00d319bcfe4d"
+ integrity sha512-ZBl5RA6+4XAD+mtqLfiG7u+qd8W5yqq3RBNca8eFqUSVo1v+eB2tzeLel0CWfVC/z6cw93Awm/nVnm6/CL2Oew==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-invert@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.9.8.tgz#41d6e87faf01a5d8fe7554e322d2aad25f596ab1"
+ integrity sha512-ESploqCoF6qUv5IWhVLaO5fEcrYZEsAWPFflh6ROiD2mmFKQxfeK+vHnk3IDLHtUwWTkAZQNbk89BVq7xvaNpQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-mask@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.9.8.tgz#fe92132db1a2b9f7718226bc3c37794dd148ce36"
+ integrity sha512-zSvEisTV4iGsBReitEdnQuGJq9/1xB5mPATadYZmIlp8r5HpD72HQb0WdEtb51/pu9Odt8KAxUf0ASg/PRVUiQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-normalize@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.9.8.tgz#05646aa15b6a789c4ba447edcad77c83c1d51f16"
+ integrity sha512-dPFBfwTa67K1tRw1leCidQT25R3ozrTUUOpO4jcGFHqXvBTWaR8sML1qxdfOBWs164mE5YpfdTvu6MM/junvCg==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-print@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.9.8.tgz#808f723176d0a57186d7558290c7e53a7a8bf812"
+ integrity sha512-nLLPv1/faehRsOjecXXUb6kzhRcZzImO55XuFZ0c90ZyoiHm4UFREwO5sKxHGvpLXS6RnkhvSav4+IWD2qGbEQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+ load-bmfont "^1.4.0"
+
+"@jimp/plugin-resize@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz#eef750b77f1cc06e8bcf9b390860c95c489dcc02"
+ integrity sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-rotate@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.9.8.tgz#5eba01f75a397777c6782b7999c9ac6c7ed8a411"
+ integrity sha512-bpqzQheISYnBXKyU1lIj46uR7mRs0UhgEREWK70HnvFJSlRshdcoNMIrKamyrJeFdJrkYPSfR/a6D0d5zsWf1Q==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-scale@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.9.8.tgz#c875d5e0b377b15b8b398ee402f45e3fc43fea40"
+ integrity sha512-QU3ZS4Lre8nN66U9dKCOC4FNfaOh/QJFYUmQPKpPS924oYbtnm4OlmsdfpK2hVMSVVyVOis8M+xpA1rDBnIp7w==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-shadow@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.9.8.tgz#ca2d18afa29a1027b77b3e1fb2ce7d4e073a7170"
+ integrity sha512-t/pE+QS3r1ZUxGIQNmwWDI3c5+/hLU+gxXD+C3EEC47/qk3gTBHpj/xDdGQBoObdT/HRjR048vC2BgBfzjj2hg==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugin-threshold@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.9.8.tgz#2d1dde0791f70b2ff2d0b915cab8d40b0e446594"
+ integrity sha512-WWmC3lnIwOTPvkKu55w4DUY8Ehlzf3nU98bY0QtIzkqxkAOZU5m+lvgC/JxO5FyGiA57j9FLMIf0LsWkjARj7g==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+
+"@jimp/plugins@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.9.8.tgz#5279dfe22d0d27633f4201ab36103e587b32eb85"
+ integrity sha512-tD+cxS9SuEZaQ1hhAkNKw9TkUAqfoBAhdWPBrEZDr/GvGPrvJR4pYmmpSYhc5IZmMbXfQayHTTGqjj8D18bToA==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/plugin-blit" "^0.9.8"
+ "@jimp/plugin-blur" "^0.9.8"
+ "@jimp/plugin-circle" "^0.9.8"
+ "@jimp/plugin-color" "^0.9.8"
+ "@jimp/plugin-contain" "^0.9.8"
+ "@jimp/plugin-cover" "^0.9.8"
+ "@jimp/plugin-crop" "^0.9.8"
+ "@jimp/plugin-displace" "^0.9.8"
+ "@jimp/plugin-dither" "^0.9.8"
+ "@jimp/plugin-fisheye" "^0.9.8"
+ "@jimp/plugin-flip" "^0.9.8"
+ "@jimp/plugin-gaussian" "^0.9.8"
+ "@jimp/plugin-invert" "^0.9.8"
+ "@jimp/plugin-mask" "^0.9.8"
+ "@jimp/plugin-normalize" "^0.9.8"
+ "@jimp/plugin-print" "^0.9.8"
+ "@jimp/plugin-resize" "^0.9.8"
+ "@jimp/plugin-rotate" "^0.9.8"
+ "@jimp/plugin-scale" "^0.9.8"
+ "@jimp/plugin-shadow" "^0.9.8"
+ "@jimp/plugin-threshold" "^0.9.8"
+ core-js "^3.4.1"
+ timm "^1.6.1"
+
+"@jimp/png@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.9.8.tgz#f88dacc9b9da1c2ea8e91026a9530d0fb45c4409"
+ integrity sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/utils" "^0.9.8"
+ core-js "^3.4.1"
+ pngjs "^3.3.3"
+
+"@jimp/tiff@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.9.8.tgz#91dc3eab2f222e23414f139e917f3407caa73560"
+ integrity sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ core-js "^3.4.1"
+ utif "^2.0.1"
+
+"@jimp/types@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.9.8.tgz#46980a4a7bfcadf2f0484d187c32b4e7d6d61b8e"
+ integrity sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/bmp" "^0.9.8"
+ "@jimp/gif" "^0.9.8"
+ "@jimp/jpeg" "^0.9.8"
+ "@jimp/png" "^0.9.8"
+ "@jimp/tiff" "^0.9.8"
+ core-js "^3.4.1"
+ timm "^1.6.1"
+
+"@jimp/utils@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.9.8.tgz#6a6f47158ec6b424f03df0f55f0baff5b4b5e096"
+ integrity sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ core-js "^3.4.1"
+
"@react-native-community/cli-debugger-ui@^4.13.1":
version "4.13.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.13.1.tgz#07de6d4dab80ec49231de1f1fbf658b4ad39b32c"
@@ -1224,6 +1676,11 @@
sudo-prompt "^9.0.0"
wcwidth "^1.0.1"
+"@react-native-community/masked-view@0.1.10":
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.10.tgz#5dda643e19e587793bc2034dd9bf7398ad43d401"
+ integrity sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ==
+
"@react-native-community/segmented-control@2.1.1":
version "2.1.1"
resolved "https://registry.yarnpkg.com/@react-native-community/segmented-control/-/segmented-control-2.1.1.tgz#e3a0934b79e7bd64b84215366989bb26b850ca06"
@@ -1549,6 +2006,11 @@ ansi-wrap@0.1.0, ansi-wrap@^0.1.0:
resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
+any-base@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe"
+ integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==
+
anymatch@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
@@ -1759,7 +2221,7 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
-base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.0:
+base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.0, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -1794,6 +2256,11 @@ blueimp-md5@^2.10.0:
resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.18.0.tgz#1152be1335f0c6b3911ed9e36db54f3e6ac52935"
integrity sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q==
+bmp-js@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233"
+ integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM=
+
bplist-creator@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.8.tgz#56b2a6e79e9aec3fc33bf831d09347d73794e79c"
@@ -1868,6 +2335,11 @@ buffer-crc32@^0.2.13:
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+buffer-equal@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
+ integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=
+
buffer-fill@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
@@ -1878,6 +2350,14 @@ buffer-from@^1.0.0:
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+buffer@^5.2.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.1.13"
+
bytes@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
@@ -1964,6 +2444,14 @@ chalk@^3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chalk@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
+ integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
chardet@^0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
@@ -2199,7 +2687,7 @@ core-js@^2.2.2, core-js@^2.4.1:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
-core-js@^3.6.5:
+core-js@^3.4.1, core-js@^3.6.5:
version "3.7.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.7.0.tgz#b0a761a02488577afbf97179e4681bf49568520f"
integrity sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA==
@@ -2239,6 +2727,11 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
+crypto-random-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
+ integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
+
csstype@^3.0.2:
version "3.0.5"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8"
@@ -2357,6 +2850,11 @@ dom-serializer@0:
domelementtype "^2.0.1"
entities "^2.0.0"
+dom-walk@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
+ integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
+
domelementtype@1, domelementtype@^1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
@@ -2582,6 +3080,11 @@ execa@^1.0.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
+exif-parser@^0.1.12:
+ version "0.1.12"
+ resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922"
+ integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=
+
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
@@ -2907,6 +3410,11 @@ figures@^2.0.0:
dependencies:
escape-string-regexp "^1.0.5"
+file-type@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18"
+ integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==
+
file-uri-to-path@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
@@ -3001,6 +3509,16 @@ fresh@0.5.2:
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
+fs-extra@9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3"
+ integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==
+ dependencies:
+ at-least-node "^1.0.0"
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^1.0.0"
+
fs-extra@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
@@ -3078,7 +3596,12 @@ get-value@^2.0.3, get-value@^2.0.6:
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
-glob@^7.1.2, glob@^7.1.3, glob@^7.1.6:
+getenv@0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/getenv/-/getenv-0.7.0.tgz#39b91838707e2086fd1cf6ef8777d1c93e14649e"
+ integrity sha1-ObkYOHB+IIb9HPbvh3fRyT4UZJ4=
+
+glob@7.1.6, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6:
version "7.1.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -3090,6 +3613,14 @@ glob@^7.1.2, glob@^7.1.3, glob@^7.1.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
+global@~4.3.0:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
+ integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=
+ dependencies:
+ min-document "^2.19.0"
+ process "~0.5.1"
+
globals@^11.1.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
@@ -3215,6 +3746,11 @@ iconv-lite@^0.6.2:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
+ieee754@^1.1.13:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
image-size@^0.6.0:
version "0.6.3"
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2"
@@ -3415,6 +3951,11 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+is-function@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"
+ integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==
+
is-map@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1"
@@ -3641,6 +4182,23 @@ jetifier@^1.6.2:
resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.6.tgz#fec8bff76121444c12dc38d2dad6767c421dab68"
integrity sha512-JNAkmPeB/GS2tCRqUzRPsTOHpGDah7xP18vGJfIjZC+W2sxEHbxgJxetIjIqhjQ3yYbYNEELkM/spKLtwoOSUQ==
+jimp@^0.9.6:
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.9.8.tgz#2ee87b81b42e723ad74c73b8012f879c0abe5b04"
+ integrity sha512-DHN4apKMwLIvD/TKO9tFfPuankNuVK98vCwHm/Jv9z5cJnrd38xhi+4I7IAGmDU3jIDlrEVhzTkFH1Ymv5yTQQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@jimp/custom" "^0.9.8"
+ "@jimp/plugins" "^0.9.8"
+ "@jimp/types" "^0.9.8"
+ core-js "^3.4.1"
+ regenerator-runtime "^0.13.3"
+
+jpeg-js@^0.3.4:
+ version "0.3.7"
+ resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d"
+ integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==
+
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -3686,6 +4244,13 @@ json5@^0.5.1:
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
+json5@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+ integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+ dependencies:
+ minimist "^1.2.0"
+
json5@^2.1.2:
version "2.1.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
@@ -3767,6 +4332,20 @@ leven@^3.1.0:
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+load-bmfont@^1.3.1, load-bmfont@^1.4.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9"
+ integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==
+ dependencies:
+ buffer-equal "0.0.1"
+ mime "^1.3.4"
+ parse-bmfont-ascii "^1.0.3"
+ parse-bmfont-binary "^1.0.5"
+ parse-bmfont-xml "^1.1.4"
+ phin "^2.9.1"
+ xhr "^2.0.1"
+ xtend "^4.0.0"
+
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
@@ -3795,7 +4374,7 @@ lodash.throttle@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
-lodash@^4, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.0:
+lodash@^4, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.0:
version "4.17.20"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
@@ -4247,12 +4826,12 @@ mime-types@~2.1.24:
dependencies:
mime-db "1.44.0"
-mime@1.6.0:
+mime@1.6.0, mime@^1.3.4:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-mime@^2.4.1:
+mime@^2.4.1, mime@^2.4.4:
version "2.4.6"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1"
integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==
@@ -4262,6 +4841,13 @@ mimic-fn@^1.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+min-document@^2.19.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
+ integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
+ dependencies:
+ dom-walk "^0.1.0"
+
minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -4483,6 +5069,11 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"
+omggif@^1.0.9:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19"
+ integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==
+
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@@ -4588,6 +5179,34 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+pako@^1.0.5:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
+parse-bmfont-ascii@^1.0.3:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285"
+ integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=
+
+parse-bmfont-binary@^1.0.5:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006"
+ integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=
+
+parse-bmfont-xml@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389"
+ integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==
+ dependencies:
+ xml-parse-from-string "^1.0.0"
+ xml2js "^0.4.5"
+
+parse-headers@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515"
+ integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==
+
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -4601,6 +5220,13 @@ parse-node-version@^1.0.0:
resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
+parse-png@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/parse-png/-/parse-png-2.1.0.tgz#2a42ad719fedf90f81c59ebee7ae59b280d6b338"
+ integrity sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==
+ dependencies:
+ pngjs "^3.3.0"
+
parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
@@ -4648,6 +5274,11 @@ path-to-regexp@^1.8.0:
dependencies:
isarray "0.0.1"
+phin@^2.9.1:
+ version "2.9.3"
+ resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c"
+ integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==
+
pify@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
@@ -4660,6 +5291,13 @@ pirates@^4.0.0:
dependencies:
node-modules-regexp "^1.0.0"
+pixelmatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854"
+ integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=
+ dependencies:
+ pngjs "^3.0.0"
+
pkg-dir@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
@@ -4701,6 +5339,11 @@ plugin-error@^0.1.2:
arr-union "^2.0.1"
extend-shallow "^1.1.2"
+pngjs@^3.0.0, pngjs@^3.3.0, pngjs@^3.3.3:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
+ integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
+
pngjs@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb"
@@ -4754,6 +5397,11 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+process@~0.5.1:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
+ integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=
+
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
@@ -4851,6 +5499,15 @@ react-is@^16.12.0, react-is@^16.13.0, react-is@^16.13.1, react-is@^16.7.0, react
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+react-native-appearance@~0.3.3:
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/react-native-appearance/-/react-native-appearance-0.3.4.tgz#2cbcbc5142cdc1898c116684f519b16c879cbec2"
+ integrity sha512-Vz3zdJbAEiMDwuw6wH98TT1WVfBvWjvANutYtkIbl16KGRCigtSgt6IIiLsF3/TSS3y3FtHhWDelFeGw/rtuig==
+ dependencies:
+ fbemitter "^2.1.1"
+ invariant "^2.2.4"
+ use-subscription "^1.0.0"
+
react-native-collapsible@^1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/react-native-collapsible/-/react-native-collapsible-1.5.3.tgz#d6bc7274ae8f40f7688cca23ededa263e6c81c63"
@@ -5055,7 +5712,7 @@ regenerate@^1.4.0:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
-regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4:
+regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
version "0.13.7"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
@@ -5127,6 +5784,11 @@ require-directory@^2.1.1:
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+require-from-string@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+ integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
require-main-filename@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
@@ -5152,6 +5814,11 @@ resolve-from@^3.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -5251,7 +5918,7 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
-sax@^1.2.1, sax@^1.2.4:
+sax@>=0.6.0, sax@^1.2.1, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -5264,6 +5931,11 @@ scheduler@0.19.1, scheduler@^0.19.1:
loose-envify "^1.1.0"
object-assign "^4.1.1"
+semver@6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b"
+ integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==
+
semver@7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
@@ -5279,6 +5951,11 @@ semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@^7.1.3:
+ version "7.3.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
+ integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
+
send@0.17.1:
version "0.17.1"
resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
@@ -5418,6 +6095,11 @@ slide@^1.1.5:
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
+slugify@^1.3.4:
+ version "1.4.6"
+ resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.6.tgz#ef288d920a47fb01c2be56b3487b6722f5e34ace"
+ integrity sha512-ZdJIgv9gdrYwhXqxsH9pv7nXxjUEyQ6nqhngRxoAAOlmMGA28FDq5O4/5US4G2/Nod7d1ovNcgURQJ7kHq50KQ==
+
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -5580,20 +6262,20 @@ string-width@^4.1.0, string-width@^4.2.0:
strip-ansi "^6.0.0"
string.prototype.trimend@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46"
- integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b"
+ integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==
dependencies:
+ call-bind "^1.0.0"
define-properties "^1.1.3"
- es-abstract "^1.18.0-next.1"
string.prototype.trimstart@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7"
- integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa"
+ integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==
dependencies:
+ call-bind "^1.0.0"
define-properties "^1.1.3"
- es-abstract "^1.18.0-next.1"
string_decoder@~1.1.1:
version "1.1.1"
@@ -5664,6 +6346,11 @@ symbol-observable@^1.2.0:
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
+temp-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
+ integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=
+
temp@0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
@@ -5672,6 +6359,15 @@ temp@0.8.3:
os-tmpdir "^1.0.0"
rimraf "~2.2.6"
+tempy@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8"
+ integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==
+ dependencies:
+ temp-dir "^1.0.0"
+ type-fest "^0.3.1"
+ unique-string "^1.0.0"
+
throat@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
@@ -5695,11 +6391,21 @@ time-stamp@^1.0.0:
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=
+timm@^1.6.1:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f"
+ integrity sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==
+
tiny-queue@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/tiny-queue/-/tiny-queue-0.2.1.tgz#25a67f2c6e253b2ca941977b5ef7442ef97a6046"
integrity sha1-JaZ/LG4lOyypQZd7XvdELvl6YEY=
+tinycolor2@^1.4.1:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
+ integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==
+
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -5752,6 +6458,11 @@ tslib@^2.0.3:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c"
integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==
+type-fest@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1"
+ integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==
+
type-fest@^0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
@@ -5873,6 +6584,13 @@ union-value@^1.0.0:
is-extendable "^0.1.1"
set-value "^2.0.1"
+unique-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
+ integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=
+ dependencies:
+ crypto-random-string "^1.0.0"
+
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
@@ -5926,6 +6644,13 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+utif@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759"
+ integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==
+ dependencies:
+ pako "^1.0.5"
+
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -6062,6 +6787,15 @@ write-file-atomic@^1.2.0:
imurmurhash "^0.1.4"
slide "^1.1.5"
+write-file-atomic@^2.3.0:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
+ integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.2"
+
ws@^1.1.0, ws@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
@@ -6075,7 +6809,7 @@ ws@^7:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7"
integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==
-xcode@^2.0.0:
+xcode@^2.0.0, xcode@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/xcode/-/xcode-2.1.0.tgz#bab64a7e954bb50ca8d19da7e09531c65a43ecfe"
integrity sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==
@@ -6091,6 +6825,16 @@ xcode@^3.0.0:
simple-plist "^1.1.0"
uuid "^7.0.3"
+xhr@^2.0.1:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd"
+ integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==
+ dependencies:
+ global "~4.3.0"
+ is-function "^1.0.1"
+ parse-headers "^2.0.0"
+ xtend "^4.0.0"
+
xml-js@^1.6.11:
version "1.6.11"
resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9"
@@ -6098,11 +6842,34 @@ xml-js@^1.6.11:
dependencies:
sax "^1.2.4"
+xml-parse-from-string@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
+ integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
+
+xml2js@^0.4.23, xml2js@^0.4.5:
+ version "0.4.23"
+ resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
+ integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
+ dependencies:
+ sax ">=0.6.0"
+ xmlbuilder "~11.0.0"
+
+xmlbuilder@^14.0.0:
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-14.0.0.tgz#876b5aec4f05ffd5feb97b0a871c855d16fbeb8c"
+ integrity sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==
+
xmlbuilder@^9.0.7:
version "9.0.7"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
+xmlbuilder@~11.0.0:
+ version "11.0.1"
+ resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
+ integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
+
xmldoc@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-1.1.2.tgz#6666e029fe25470d599cd30e23ff0d1ed50466d7"
@@ -6110,7 +6877,7 @@ xmldoc@^1.1.2:
dependencies:
sax "^1.2.1"
-xmldom@0.1.x:
+xmldom@0.1.x, xmldom@~0.1.31:
version "0.1.31"
resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff"
integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
@@ -6120,7 +6887,7 @@ xpipe@^1.0.5:
resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf"
integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=
-xtend@~4.0.1:
+xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==