Ajoute la génération du pdf à partir du formulaire completé

pull/1075/head
Johan Girod 2020-06-15 14:42:44 +02:00
parent 02f5d790b9
commit 168e4105cb
15 changed files with 677 additions and 116 deletions

View File

@ -25,18 +25,19 @@
},
"dependencies": {
"@babel/runtime": "^7.3.4",
"@react-pdf/renderer": "^2.0.0-beta.6",
"@rehooks/local-storage": "^2.1.1",
"@sentry/browser": "5.15.5",
"classnames": "^2.2.5",
"color-convert": "^1.9.2",
"core-js": "^3.2.1",
"focus-trap-react": "^3.1.2",
"fuse.js": "5.2.1",
"iframe-resizer": "^4.1.1",
"js-yaml": "^3.13.1",
"moo": "^0.5.0",
"nearley": "^2.19.0",
"publicodes": "^1.0.0-beta.4",
"focus-trap-react": "^3.1.2",
"ramda": "^0.27.0",
"react": "^16.13.1",
"react-color": "^2.14.0",

View File

@ -39,13 +39,12 @@ export default function RuleInput({
isTarget = false,
autoFocus = false,
className,
onSubmit
onSubmit = () => null
}: RuleInputProps) {
const rule = rules[dottedName]
const unit = rule.unit
const language = useTranslation().i18n.language
const engine = useContext(EngineContext)
const handleSubmit = onSubmit ?? (() => null)
const commonProps = {
key: dottedName,
dottedName,
@ -62,7 +61,7 @@ export default function RuleInput({
return (
<Question
{...commonProps}
onSubmit={handleSubmit}
onSubmit={onSubmit}
choices={buildVariantTree(rules, dottedName)}
/>
)
@ -79,7 +78,7 @@ export default function RuleInput({
<DateInput
value={commonProps.value}
onChange={commonProps.onChange}
onSubmit={handleSubmit}
onSubmit={onSubmit}
suggestions={commonProps.suggestions}
/>
)
@ -100,7 +99,7 @@ export default function RuleInput({
{ value: 'non', label: 'Non' },
{ value: 'oui', label: 'Oui' }
]}
onSubmit={handleSubmit}
onSubmit={onSubmit}
/>
)
}
@ -132,7 +131,7 @@ export default function RuleInput({
return <TextInput {...commonProps} />
}
return <Input {...commonProps} unit={unit} onSubmit={handleSubmit} />
return <Input {...commonProps} unit={unit} onSubmit={onSubmit} />
}
const getVariant = (rule: ParsedRule) =>

View File

@ -70,11 +70,13 @@ export default function Select({ onChange, onSubmit, value }) {
setName(option.nom)
})
}
const noResult = !isLoading && searchResults && searchResults.length === 0
return (
<div>
<input
type="search"
css={noResult && 'border-color: firebrick !important'}
className="ui__"
value={name}
// placeholder={t("Saisissez le nom d'une commune")}
@ -88,9 +90,15 @@ export default function Select({ onChange, onSubmit, value }) {
debouncedHandleSearch(e.target.value)
}}
/>
{!isLoading && searchResults && searchResults.length === 0 && (
<p>
<Trans>Aucun résultat</Trans>
{noResult && (
<p
className="ui__ notice"
css={`
color: firebrick !important;
margin-top: -0.4rem;
`}
>
<Trans>Cette commune n'existe pas</Trans>
</p>
)}

View File

@ -0,0 +1,22 @@
import { useEffect, useState } from 'react'
export function useDebounce<T>(value: T, delay: number) {
const [debouncedValue, setDebouncedValue] = useState(value)
useEffect(
() => {
// Update debounced value after delay
const handler = setTimeout(() => {
setDebouncedValue(value)
}, delay)
// Cancel the timeout if value changes (also on delay change or unmount)
// This is how we prevent debounced value from updating if value is changed ...
// .. within the delay period. Timeout gets cleared and restarted.
return () => {
clearTimeout(handler)
}
},
[value, delay] // Only re-call effect if value or delay changes
)
return debouncedValue
}

View File

@ -0,0 +1,140 @@
import {
Document,
Page,
Text,
View,
StyleSheet,
Font,
PDFViewer,
PDFDownloadLink
} from '@react-pdf/renderer'
import React from 'react'
import robotoUrl from './Roboto-Regular.ttf'
import montserratUrl from './Montserrat-SemiBold.ttf'
import { formatValue } from 'publicodes'
import emoji from 'react-easy-emoji'
// function FormPDFViewer({ fields, title, description }) {
// return (
// <div
// css={`
// width: 100%;
// padding-bottom: 141.4%;
// position: relative;
// `}
// >
// <PDFViewer
// css={`
// position: absolute;
// width: 100%;
// height: 100%;
// top: 0;
// bottom: 0;
// left: 0;
// right: 0;
// `}
// >
// <FormPDF fields={fields} title={title} description={description} />
// </PDFViewer>
// </div>
// )
// }
export default function FormPDFDownloadLink({
fields,
title,
className,
description,
fileName,
children
}) {
return (
<PDFDownloadLink
document={
<FormPDF fields={fields} title={title} description={description} />
}
fileName={fileName}
className={className}
>
{({ blob, url, loading, error }) => children}
</PDFDownloadLink>
)
// <PDFDownloadLink document={<MyDoc />} fileName="somename.pdf">
// {({ blob, url, loading, error }) => (loading ? 'Loading document...' : 'Download now!')}
// </PDFDownloadLink>
}
function FormPDF({ fields, title, description }) {
return (
<Document>
<Page style={styles.body}>
<View>
<Text style={styles.title}>{title}</Text>
<Text style={styles.description}>{description}</Text>
</View>
{fields.map(field => (
<View style={styles.field} key={field.dottedName} wrap={false}>
{field.type === 'groupe' ? (
<Text style={styles.subtitle}>{field.title}</Text>
) : (
<>
<Text style={styles.name}>{field.question ?? field.title}</Text>
{field.nodeValue != null && (
<Text style={styles.value}>{formatValue(field)}</Text>
)}
</>
)}
</View>
))}
</Page>
</Document>
)
}
Font.register({
family: 'Roboto',
src: robotoUrl
})
Font.register({
family: 'Montserrat',
src: montserratUrl
})
const styles = StyleSheet.create({
body: {
paddingTop: 35,
color: '#18457B',
lineHeight: 1.5,
paddingBottom: 65,
paddingHorizontal: 35
},
title: {
fontSize: 20,
marginBottom: 20,
fontFamily: 'Montserrat'
},
description: {
fontFamily: 'Roboto',
marginBottom: 12,
fontSize: 14
},
subtitle: {
paddingTop: 10,
fontFamily: 'Montserrat',
fontSize: 16
},
field: {
marginBottom: 12,
lineHeight: 1.2
},
name: {
fontSize: 11,
marginBottom: 4,
opacity: 0.7,
fontFamily: 'Roboto'
},
value: {
fontSize: 14,
fontFamily: 'Roboto'
}
})

View File

@ -1,11 +1,3 @@
formulaire:
type: groupe
titre: Formulaire de demande de détachement pour les indépendant
description: >-
Vous exercez une activité non salariée ou salariée dans un ou plusieurs
Etats (pays) membres de lUE, de lEEE ou en Suisse. Remplissez ce
formulaire pour définir votre régime de Sécurité sociale applicable.
coordonnées assuré:
titre: Vos coordonnées
type: groupe
@ -22,10 +14,10 @@ coordonnées assuré . commune de naissance:
API: géo
coordonnées assuré . numéro de sécurité sociale:
type: texte
coordonnées assuré . organisme de sécurité sociale:
coordonnées assuré . organisme urssaf:
type: texte
description: >
Nom et adresse de lorganisme de sécurite sociale dont vous relevez en france
Nom de l'organisme Urssaf dont vous relevez en france
coordonnées assuré . domicile personnel:
type: groupe
@ -90,14 +82,14 @@ demande . détachement . activité . nature:
demande . détachement . activité . localisation:
type: groupe
formule: oui
demande . détachement . activité . localisation . pays:
type: texte
demande . détachement . activité . localisation . adresse:
type: texte
demande . détachement . activité . localisation . code postal:
type: texte
demande . détachement . activité . localisation . commune:
type: texte
demande . détachement . activité . localisation . pays:
type: texte
demande . détachement . période:
type: groupe
formule: oui
@ -112,8 +104,8 @@ demande . activité transfrontalière simultanée:
type: groupe
formule: oui
description: >
Vous actif en tant qu'indépendant en Belgique et travaillez
également dans un ou plusieurs autres Etats membres
Vous êtes actif en tant qu'indépendant en France et travaillez également
dans un ou plusieurs autres Etats membres de l'Espace Economique Européen
demande . activité transfrontalière simultanée . indépendant hors France:
question: >

View File

@ -1,89 +1,145 @@
import React, { useState, useEffect, useMemo, useCallback } from 'react'
import Engine from 'publicodes'
import formulaire from './formulaire-détachement.yaml'
import RuleInput from 'Components/conversation/RuleInput'
import * as Animate from 'Components/ui/animate'
import { Explicable } from 'Components/conversation/Explicable'
import { Markdown } from 'Components/utils/markdown'
import { uniq } from 'ramda'
import InfoBulle from 'Components/ui/InfoBulle'
import { Markdown } from 'Components/utils/markdown'
import Engine from 'publicodes'
import React, { useCallback, useState, Suspense } from 'react'
import formulaire from './formulaire-détachement.yaml'
import { usePersistingState } from 'Components/utils/persistState'
import { hash } from '../../../../../utils'
import Overlay from 'Components/Overlay'
import { useDebounce } from 'Components/utils'
import emoji from 'react-easy-emoji'
export default function FormulaireDétachementIndépendant() {
const engine = new Engine(formulaire)
return (
<>
<h1>Demande de mobilité en Europe pour travailleur indépendant</h1>
<p>
Vous exercez une activité non salariée ou salariée dans un ou plusieurs
Etats (pays) membres de lUE, de lEEE ou en Suisse. Remplissez ce
formulaire pour définir votre régime de Sécurité sociale applicable, et
envoyez la demande générée à l'adresse :{' '}
<a href="mailto:relations.internationales@urssaf.fr">
relations.internationales@urssaf.fr
</a>
.
</p>
<FormulairePublicodes engine={engine} dottedName="formulaire" />
</>
)
}
const titleTags = ['h1']
const useFields = (engine: Engine<string>, fieldNames: Array<string>) => {
const fields = fieldNames
.map(name => engine.evaluate(name))
.filter(node => node.isApplicable !== false && node.isApplicable !== null)
return fields
}
const VERSION = hash(JSON.stringify(Object.keys(formulaire)))
function FormulairePublicodes({ engine }) {
const [situation, setSituation] = useState({})
engine.setSituation(situation)
const [situation, setSituation] = usePersistingState(
`formulaire-détachement:${VERSION}`,
{}
)
const [renderPdf, setRenderPdf] = useState(false)
const onChange = useCallback(
dottedName => value =>
setSituation({
(dottedName, value) => {
setSituation(situation => ({
...situation,
[dottedName]: value
}),
[setSituation, situation]
}))
setRenderPdf(false)
},
[setSituation, setRenderPdf]
)
engine.setSituation(situation)
const fields = useFields(engine, Object.keys(formulaire))
const isMissingValues = fields.some(
({ dottedName, type }) =>
type !== 'groupe' &&
(situation[dottedName] == null || situation[dottedName] === '')
)
const rules = engine.getParsedRules()
return (
<Animate.fromTop>
{Object.entries(formulaire).map(([name, value]) => {
const rule = rules[name]
const node = engine.evaluate(name)
if (node.isApplicable === false || node.isApplicable === null) {
return
}
return (
<Animate.fromTop key={name}>
{rule.type === 'groupe' ? (
<>
{React.createElement(
`h${Math.min(name.split(' . ').length + 1, 6)}`,
{},
rule.title
)}
{rule.description && <Markdown source={rule.description} />}
</>
) : (
<label
css={`
display: block;
`}
>
{rule.question ? (
<div
css={`
margin-top: 0.6rem;
`}
>
{rule.question}
</div>
) : (
<small>{rule.title} </small>
)}
{rule.description && (
<InfoBulle>
<Markdown source={rule.description} />
</InfoBulle>
)}
{fields.map(field => (
<Animate.fromTop key={field.dottedName}>
{field.type === 'groupe' ? (
<>
{React.createElement(
`h${Math.min(field.dottedName.split(' . ').length + 1, 6)}`,
{},
field.title
)}
{field.description && <Markdown source={field.description} />}
</>
) : (
<label
css={`
display: block;
`}
>
{field.question ? (
<div
css={`
margin-top: 0.6rem;
`}
>
{field.question}
</div>
) : (
<small>{field.title}</small>
)}{' '}
{field.description && (
<InfoBulle>
<Markdown source={field.description} />
</InfoBulle>
)}
<RuleInput
dottedName={field.dottedName}
rules={engine.getParsedRules()}
value={situation[field.dottedName]}
onChange={value => onChange(field.dottedName, value)}
/>
</label>
)}
</Animate.fromTop>
))}
<RuleInput
key={name}
dottedName={name}
rules={rules}
value={situation[name]}
onChange={onChange(name)}
/>
</label>
)}
</Animate.fromTop>
)
})}
<LazyPDFButton
className="ui__ plain cta button"
fields={fields}
disabled={isMissingValues}
>
Générer la demande
</LazyPDFButton>
</Animate.fromTop>
)
}
const LazyPDFDownloadLink = React.lazy(() => import('./FormPDF'))
function LazyPDFButton({ fields, className, disabled, children }) {
const fieldsDebounced = useDebounce(fields.slice(1), 1000)
const DisabledButton = (
<button className={className} disabled>
{children}
</button>
)
if (disabled) {
return DisabledButton
}
return (
<Suspense fallback={DisabledButton}>
<LazyPDFDownloadLink
className={className}
fields={fieldsDebounced}
fileName={'demande-détachement.pdf'}
title={'Demande de mobilité en Europe'}
description="Afin dexaminer votre situation au regard des règlements communautaires UE/EEE de Sécurité sociale (CE 883/2004), veuillez envoyer ce document à relations.internationales@urssaf.fr"
>
{children}
</LazyPDFDownloadLink>
</Suspense>
)
}

View File

@ -7,6 +7,7 @@ import MonacoEditor from 'react-monaco-editor'
import { useHistory, useLocation, Redirect } from 'react-router-dom'
import styled from 'styled-components'
import yaml from 'yaml'
import { useDebounce } from 'Components/utils'
const EXAMPLE_CODE = `
# Bienvenue dans le bac à sable du langage publicode !
@ -26,26 +27,6 @@ dépenses primeur:
- prix . avocat * 3 avocat
`
function useDebounce<T>(value: T, delay: number) {
const [debouncedValue, setDebouncedValue] = useState(value)
useEffect(
() => {
// Update debounced value after delay
const handler = setTimeout(() => {
setDebouncedValue(value)
}, delay)
// Cancel the timeout if value changes (also on delay change or unmount)
// This is how we prevent debounced value from updating if value is changed ...
// .. within the delay period. Timeout gets cleared and restarted.
return () => {
clearTimeout(handler)
}
},
[value, delay] // Only re-call effect if value or delay changes
)
return debouncedValue
}
export default function Studio() {
const { search, pathname } = useLocation()
const initialValue = useMemo(() => {

View File

@ -78,3 +78,14 @@ export const currencyFormat = (language: string) => ({
thousandSeparator: formatValue(1000, { language }).charAt(1),
decimalSeparator: formatValue(0.1, { language }).charAt(1)
})
export function hash(str: string): number {
let hash = 0
let chr
for (let i = 0; i < str.length; i++) {
chr = str.charCodeAt(i)
hash = (hash << 5) - hash + chr
hash |= 0 // Convert to 32bit integer
}
return hash
}

View File

@ -108,7 +108,12 @@ type Options = {
}
export function formatValue(
value: number | { nodeValue: Evaluation; unit?: Unit } | undefined,
value:
| number
| { nodeValue: Evaluation; unit?: Unit }
| { nodeValue: { nom: string; code: string }; API: 'géo' }
| undefined,
{ language = 'fr', displayedUnit, precision = 2 }: Options = {}
) {
const nodeValue =
@ -132,6 +137,8 @@ export function formatValue(
}
return typeof nodeValue === 'string'
? capitalise0(nodeValue)
: typeof value === 'object' && 'API' in value && value.API === 'géo'
? `${(nodeValue as any).nom} (${(nodeValue as any).code})`
: typeof nodeValue === 'object'
? (nodeValue as any).nom
: typeof nodeValue === 'boolean'

356
yarn.lock
View File

@ -840,6 +840,13 @@
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.4.3", "@babel/runtime@^7.6.2":
version "7.10.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz#d103f21f2602497d38348a32e008637d506db839"
integrity sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/template@^7.4.0", "@babel/template@^7.8.3", "@babel/template@^7.8.6":
version "7.8.6"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
@ -1160,6 +1167,80 @@
promise-limit "^2.5.0"
puppeteer "^1.7.0"
"@react-pdf/fontkit@^1.11.0", "@react-pdf/fontkit@^1.13.0":
version "1.13.0"
resolved "https://registry.yarnpkg.com/@react-pdf/fontkit/-/fontkit-1.13.0.tgz#ec14cc61120e814c1d48cf276771684ec615be9e"
integrity sha512-g4rxtkSkEbIwDoqZc6ZM2yHq/imqmgGXQuMDnrkM2yI9TpTGhQfJGnz9IrCadrRgOrEx9orxRuTALOxzAce7Kg==
dependencies:
"@react-pdf/unicode-properties" "^2.2.0"
brotli "^1.2.0"
clone "^1.0.1"
deep-equal "^1.0.0"
dfa "^1.0.0"
restructure "^0.5.3"
tiny-inflate "^1.0.2"
unicode-trie "^0.3.0"
"@react-pdf/pdfkit@^1.4.2":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@react-pdf/pdfkit/-/pdfkit-1.5.0.tgz#f51502e899ba8559b0ee91b292a5f54520c9de39"
integrity sha512-f7Xo5ePW3orEXjIsmH9QsCqxSN3wA8LnBBI0fdxfbkWX25PjM4qypdR1sQghECqbBFfdtPlcG0rJEhGJbA8WHg==
dependencies:
"@react-pdf/fontkit" "^1.11.0"
"@react-pdf/png-js" "^1.0.0"
lz-string "^1.4.4"
"@react-pdf/png-js@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@react-pdf/png-js/-/png-js-1.0.0.tgz#00fcb969dca4ce82a0a7673413ade039e47b361e"
integrity sha1-APy5adykzoKgp2c0E63gOeR7Nh4=
"@react-pdf/renderer@^2.0.0-beta.6":
version "2.0.0-beta.6"
resolved "https://registry.yarnpkg.com/@react-pdf/renderer/-/renderer-2.0.0-beta.6.tgz#7d6d63ae69a6e54bb95968f6e7732e7fd843c456"
integrity sha512-kxToDcGwzHb0WrcTJFjaG5mMhvYAIOu527zwHcohV+cnY16rL41h3ky3m6NmmSMvZWB/qmcfJd73L3+G0KIR4A==
dependencies:
"@babel/runtime" "^7.6.2"
"@react-pdf/fontkit" "^1.13.0"
"@react-pdf/pdfkit" "^1.4.2"
"@react-pdf/png-js" "^1.0.0"
"@react-pdf/textkit" "^0.3.7"
abs-svg-path "^0.1.1"
blob-stream "^0.1.3"
color-string "^1.5.3"
cross-fetch "^3.0.4"
emoji-regex "^8.0.0"
hsl-to-hex "^1.0.0"
is-url "^1.2.4"
media-engine "^1.0.3"
normalize-svg-path "^1.0.1"
parse-svg-path "^0.1.2"
queue "^6.0.1"
ramda "^0.26.1"
react-reconciler "^0.23.0"
scheduler "^0.15.0"
svg-arc-to-cubic-bezier "^3.2.0"
svgpath "^2.2.2"
yoga-layout-prebuilt "^1.9.3"
"@react-pdf/textkit@^0.3.7":
version "0.3.7"
resolved "https://registry.yarnpkg.com/@react-pdf/textkit/-/textkit-0.3.7.tgz#67bcc4d952ad1cd738b3cb38c8396219450f536b"
integrity sha512-JyK06VofTG4/6Mxv9ugqGyKS/nnbg7MXXHmzeYLP+wwxZsgiatjybVBSXI+DW+++UeyUKLrCYQh2RaxliRm+NQ==
dependencies:
"@babel/runtime" "^7.4.3"
"@react-pdf/unicode-properties" "^2.2.0"
babel-runtime "^6.26.0"
hyphen "^1.1.1"
ramda "^0.26.1"
"@react-pdf/unicode-properties@^2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@react-pdf/unicode-properties/-/unicode-properties-2.2.0.tgz#f109eaac244ceb108011d4038cee4cc787cb40f3"
integrity sha1-8QnqrCRM6xCAEdQDjO5Mx4fLQPM=
dependencies:
unicode-trie "^0.3.0"
"@rehooks/local-storage@^2.1.1":
version "2.4.0"
resolved "https://registry.yarnpkg.com/@rehooks/local-storage/-/local-storage-2.4.0.tgz#fb884b2b657cad5f77aa6ab60bb3532f0e0725d2"
@ -1596,6 +1677,11 @@
dependencies:
"@types/yargs-parser" "*"
"@types/yoga-layout@1.9.2":
version "1.9.2"
resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.2.tgz#efaf9e991a7390dc081a0b679185979a83a9639a"
integrity sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==
"@typescript-eslint/eslint-plugin@^2.31.0":
version "2.31.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.31.0.tgz#942c921fec5e200b79593c71fafb1e3f57aa2e36"
@ -1804,6 +1890,11 @@ abab@^2.0.0:
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
abs-svg-path@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/abs-svg-path/-/abs-svg-path-0.1.1.tgz#df601c8e8d2ba10d4a76d625e236a9a39c2723bf"
integrity sha1-32Acjo0roQ1KdtYl4japo5wnI78=
accepts@~1.3.5, accepts@~1.3.7:
version "1.3.7"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@ -1916,6 +2007,11 @@ alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
ansi-align@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
@ -2151,11 +2247,25 @@ assign-symbols@^1.0.0:
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
ast-transform@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/ast-transform/-/ast-transform-0.0.0.tgz#74944058887d8283e189d954600947bc98fe0062"
integrity sha1-dJRAWIh9goPhidlUYAlHvJj+AGI=
dependencies:
escodegen "~1.2.0"
esprima "~1.0.4"
through "~2.3.4"
ast-types@0.9.6:
version "0.9.6"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=
ast-types@^0.7.0:
version "0.7.8"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9"
integrity sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=
astral-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
@ -2435,7 +2545,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.0.2:
base64-js@^1.0.2, base64-js@^1.1.2:
version "1.3.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
@ -2501,6 +2611,18 @@ bl@^4.0.1:
inherits "^2.0.4"
readable-stream "^3.4.0"
blob-stream@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/blob-stream/-/blob-stream-0.1.3.tgz#98d668af6996e0f32ef666d06e215ccc7d77686c"
integrity sha1-mNZor2mW4PMu9mbQbiFczH13aGw=
dependencies:
blob "0.0.4"
blob@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
integrity sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=
bluebird@3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
@ -2602,12 +2724,19 @@ brotli-size@0.1.0:
duplexer "^0.1.1"
iltorb "^2.4.3"
brotli@^1.2.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.2.tgz#525a9cad4fcba96475d7d388f6aecb13eed52f46"
integrity sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=
dependencies:
base64-js "^1.1.2"
browser-process-hrtime@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
browser-resolve@^1.11.3:
browser-resolve@^1.11.3, browser-resolve@^1.8.1:
version "1.11.3"
resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==
@ -2650,6 +2779,15 @@ browserify-des@^1.0.0:
inherits "^2.0.1"
safe-buffer "^5.1.2"
browserify-optional@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/browserify-optional/-/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869"
integrity sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk=
dependencies:
ast-transform "0.0.0"
ast-types "^0.7.0"
browser-resolve "^1.8.1"
browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
@ -3216,7 +3354,7 @@ clone-stats@^1.0.0:
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=
clone@^1.0.0, clone@^1.0.2:
clone@^1.0.0, clone@^1.0.1, clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
@ -3296,6 +3434,14 @@ color-string@^0.3.0:
dependencies:
color-name "^1.0.0"
color-string@^1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
dependencies:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color@^0.11.0:
version "0.11.4"
resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
@ -3593,6 +3739,13 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
cross-fetch@^3.0.4:
version "3.0.5"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c"
integrity sha512-FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew==
dependencies:
node-fetch "2.6.0"
cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@ -3964,6 +4117,18 @@ deep-eql@^3.0.1:
dependencies:
type-detect "^4.0.0"
deep-equal@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
dependencies:
is-arguments "^1.0.4"
is-date-object "^1.0.1"
is-regex "^1.0.4"
object-is "^1.0.1"
object-keys "^1.1.1"
regexp.prototype.flags "^1.2.0"
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
@ -4056,6 +4221,11 @@ detect-newline@^2.1.0:
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
dfa@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/dfa/-/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657"
integrity sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==
diff-sequences@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
@ -4485,6 +4655,17 @@ escodegen@^1.11.0, escodegen@^1.9.1:
optionalDependencies:
source-map "~0.6.1"
escodegen@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1"
integrity sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E=
dependencies:
esprima "~1.0.4"
estraverse "~1.5.0"
esutils "~1.0.0"
optionalDependencies:
source-map "~0.1.30"
eslint-config-prettier@^4.0.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.3.0.tgz#c55c1fcac8ce4518aeb77906984e134d9eb5a4f0"
@ -4612,6 +4793,11 @@ esprima@^4.0.0, esprima@^4.0.1:
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
esprima@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad"
integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=
esprima@~3.1.0:
version "3.1.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
@ -4641,11 +4827,21 @@ estraverse@^5.1.0:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
estraverse@~1.5.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71"
integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
esutils@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570"
integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=
etag@~1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
@ -5746,6 +5942,18 @@ hosted-git-info@^2.1.4:
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
hsl-to-hex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/hsl-to-hex/-/hsl-to-hex-1.0.0.tgz#c58c826dc6d2f1e0a5ff1da5a7ecbf03faac1352"
integrity sha1-xYyCbcbS8eCl/x2lp+y/A/qsE1I=
dependencies:
hsl-to-rgb-for-reals "^1.1.0"
hsl-to-rgb-for-reals@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/hsl-to-rgb-for-reals/-/hsl-to-rgb-for-reals-1.1.1.tgz#e1eb23f6b78016e3722431df68197e6dcdc016d9"
integrity sha512-LgOWAkrN0rFaQpfdWBQlv/VhkOxb5AsBjk6NQVx4yEzWS923T07X0M1Y0VNko2H52HeSpZrZNNMJ0aFqsdVzQg==
html-comment-regex@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
@ -5928,6 +6136,11 @@ https-proxy-agent@^2.2.1:
agent-base "^4.3.0"
debug "^3.1.0"
hyphen@^1.1.1:
version "1.6.2"
resolved "https://registry.yarnpkg.com/hyphen/-/hyphen-1.6.2.tgz#321d794d92b778f39cb5db740a575c092463978c"
integrity sha512-WcyRGy0kB+QcSlgV9ovP4UQ7E+LpDCv7q9gziO2Q2eqpJ4AtHVfVhNXxlW0EBKgUMmcEHecQKy9AWdm2EavW1Q==
i18next-parser@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/i18next-parser/-/i18next-parser-1.0.6.tgz#520575d6560b716b83fbbd32a2b6df500c97f134"
@ -6210,11 +6423,21 @@ is-alphanumerical@^1.0.0:
is-alphabetical "^1.0.0"
is-decimal "^1.0.0"
is-arguments@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
is-arrayish@^0.3.1:
version "0.3.2"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
is-binary-path@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
@ -6480,6 +6703,11 @@ is-unc-path@^1.0.0:
dependencies:
unc-path-regex "^0.1.2"
is-url@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
is-utf8@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
@ -7567,6 +7795,11 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
lz-string@^1.4.4:
version "1.4.4"
resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=
make-dir@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@ -7646,6 +7879,11 @@ mdast-add-list-metadata@1.0.1:
dependencies:
unist-util-visit-parents "1.1.2"
media-engine@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/media-engine/-/media-engine-1.0.3.tgz#be3188f6cd243ea2a40804a35de5a5b032f58dad"
integrity sha1-vjGI9s0kPqKkCASjXeWlsDL1ja0=
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@ -8119,6 +8357,11 @@ node-abi@^2.7.0:
dependencies:
semver "^5.4.1"
node-fetch@2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
node-fetch@^1.0.1:
version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
@ -8219,6 +8462,13 @@ normalize-range@^0.1.2:
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
normalize-svg-path@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/normalize-svg-path/-/normalize-svg-path-1.0.1.tgz#6f729ad6b70bb4ca4eff2fe4b107489efe1d56fe"
integrity sha1-b3Ka1rcLtMpO/y/ksQdInv4dVv4=
dependencies:
svg-arc-to-cubic-bezier "^3.0.0"
normalize-url@^1.4.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
@ -8560,6 +8810,11 @@ 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@^0.2.5:
version "0.2.9"
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=
pako@~1.0.5:
version "1.0.11"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
@ -8640,6 +8895,11 @@ parse-passwd@^1.0.0:
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
parse-svg-path@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/parse-svg-path/-/parse-svg-path-0.1.2.tgz#7a7ec0d1eb06fa5325c7d3e009b859a09b5d49eb"
integrity sha1-en7A0esG+lMlx9PgCbhZoJtdSes=
parse5@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
@ -9433,6 +9693,13 @@ querystring@0.2.0, querystring@^0.2.0:
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
queue@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.1.tgz#abd5a5b0376912f070a25729e0b6a7d565683791"
integrity sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==
dependencies:
inherits "~2.0.3"
quick-temp@^0.1.3:
version "0.1.8"
resolved "https://registry.yarnpkg.com/quick-temp/-/quick-temp-0.1.8.tgz#bab02a242ab8fb0dd758a3c9776b32f9a5d94408"
@ -9464,7 +9731,7 @@ ramda@^0.25.0:
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9"
integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==
ramda@^0.26:
ramda@^0.26, ramda@^0.26.1:
version "0.26.1"
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
@ -9651,6 +9918,16 @@ react-number-format@^4.3.1:
dependencies:
prop-types "^15.7.2"
react-reconciler@^0.23.0:
version "0.23.0"
resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.23.0.tgz#5f0bfc35dda030b0220c07de11f93131c5d6db63"
integrity sha512-vV0KlLimP9a/NuRcM6GRVakkmT6MKSzhfo8K72fjHMnlXMOhz9GlPe+/tCp5CWBkg+lsMUt/CR1nypJBTPfwuw==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
scheduler "^0.17.0"
react-redux@^7.0.3:
version "7.2.0"
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.0.tgz#f970f62192b3981642fec46fd0db18a074fe879d"
@ -9967,7 +10244,7 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
regexp.prototype.flags@^1.3.0:
regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==
@ -10285,6 +10562,13 @@ restore-cursor@^3.1.0:
onetime "^5.1.0"
signal-exit "^3.0.2"
restructure@^0.5.3:
version "0.5.4"
resolved "https://registry.yarnpkg.com/restructure/-/restructure-0.5.4.tgz#f54e7dd563590fb34fd6bf55876109aeccb28de8"
integrity sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg=
dependencies:
browserify-optional "^1.0.0"
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
@ -10422,6 +10706,22 @@ saxes@^3.1.3:
dependencies:
xmlchars "^2.1.1"
scheduler@^0.15.0:
version "0.15.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e"
integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler@^0.17.0:
version "0.17.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe"
integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler@^0.19.0, scheduler@^0.19.1:
version "0.19.1"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
@ -10641,6 +10941,13 @@ simple-get@^3.0.3:
once "^1.3.1"
simple-concat "^1.0.0"
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
dependencies:
is-arrayish "^0.3.1"
sinon-chai@^3.0.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.5.0.tgz#c9a78304b0e15befe57ef68e8a85a00553f5c60e"
@ -10769,6 +11076,13 @@ source-map@^0.7.3:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
source-map@~0.1.30:
version "0.1.43"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=
dependencies:
amdefine ">=0.0.4"
space-separated-tokens@^1.0.0:
version "1.1.5"
resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899"
@ -11180,6 +11494,11 @@ supports-color@^7.0.0, supports-color@^7.1.0:
dependencies:
has-flag "^4.0.0"
svg-arc-to-cubic-bezier@^3.0.0, svg-arc-to-cubic-bezier@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz#390c450035ae1c4a0104d90650304c3bc814abe6"
integrity sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==
svgo@^0.7.0:
version "0.7.2"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"
@ -11193,6 +11512,11 @@ svgo@^0.7.0:
sax "~1.2.1"
whet.extend "~0.9.9"
svgpath@^2.2.2:
version "2.3.0"
resolved "https://registry.yarnpkg.com/svgpath/-/svgpath-2.3.0.tgz#efc76705deab6bd1774e9f0ed038bb661b5e4d23"
integrity sha512-N/4UDu3Y2ICik0daMmFW1tplw0XPs1nVIEVYkTiQfj9/JQZeEtAKaSYwheCwje1I4pQ5r22fGpoaNIvGgsyJyg==
swr@^0.1.16:
version "0.1.18"
resolved "https://registry.yarnpkg.com/swr/-/swr-0.1.18.tgz#be62df4cb8d188dc092305b35ecda1f3be8e61c1"
@ -11369,7 +11693,7 @@ through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0, through2@~2.
readable-stream "~2.3.6"
xtend "~4.0.1"
through@^2.3.6, through@~2.3.6:
through@^2.3.6, through@~2.3.4, through@~2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
@ -11386,6 +11710,11 @@ tiny-emitter@^2.0.0:
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
tiny-inflate@^1.0.0, tiny-inflate@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4"
integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==
tiny-invariant@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
@ -11678,6 +12007,14 @@ unicode-property-aliases-ecmascript@^1.0.4:
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
unicode-trie@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085"
integrity sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=
dependencies:
pako "^0.2.5"
tiny-inflate "^1.0.0"
unified@^6.1.5:
version "6.2.0"
resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba"
@ -12626,3 +12963,10 @@ yauzl@2.4.1:
integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=
dependencies:
fd-slicer "~1.0.1"
yoga-layout-prebuilt@^1.9.3:
version "1.9.6"
resolved "https://registry.yarnpkg.com/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.9.6.tgz#98dde95bbf8e6e12835876e9305f1e995c4bb801"
integrity sha512-Wursw6uqLXLMjBAO4SEShuzj8+EJXhCF71/rJ7YndHTkRAYSU0GY3OghRqfAk9HPUAAFMuqp3U1Wl+01vmGRQQ==
dependencies:
"@types/yoga-layout" "1.9.2"