diff --git a/README.md b/README.md index c3ccaa8a..90c5ce54 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,65 @@ yarn editor update pulling - `git submodule update --init --recursive` +## Platforms / Frameworks + +| **Frameworks** | | +| ------------------ | :---: | +| ReactJS | ✅ | +| Flutter | ✅ | +| React Native | ✅ | +| Vanilla (html/css) | ✅ | +| Vue | (wip) | + +| **ReactJS** | | +| ------------------- | :---: | +| `styled-components` | ✅ | +| `@emotion/styled` | ✅ | +| css-modules | ✅ | +| inline-css | ✅ | +| `@mui/material` | (wip) | +| breakpoints | (wip) | +| components | (wip) | + +| **ReactNative** | | +| ------------------------------ | :---: | +| `StyleSheet` | ✅ | +| `styled-components/native` | ✅ | +| `@emotion/native` | ✅ | +| `react-native-linear-gradient` | (wip) | +| `react-native-svg` | (wip) | +| `expo` | (wip) | + +| **Vanilla** | | +| ----------- | :-----------: | +| reflect-ui | right-aligned | +| css | ✅ | +| scss | are neat | + +| **Flutter** | | +| ----------- | :---: | +| material | ✅ | +| cupertino | (wip) | +| reflect-ui | (wip) | + +| **Svelte** | | +| ------------------- | :---: | +| `styled-components` | ✅ | +| `@mui/material` | (wip) | + +| **Vue** | | +| ------------------- | :---: | +| `styled-components` | ✅ | +| `@mui/material` | (wip) | + +| **iOS** | | +| ------- | :---: | +| SwiftUI | (wip) | + +| **Android** | | +| --------------- | :---: | +| Jetpack Compose | (wip) | + ## What does it mean? ### By "design". What does it mean? diff --git a/editor/components/codeui-code-options-control/code-options-control.tsx b/editor/components/codeui-code-options-control/code-options-control.tsx index acfd1913..fd5c3cbf 100644 --- a/editor/components/codeui-code-options-control/code-options-control.tsx +++ b/editor/components/codeui-code-options-control/code-options-control.tsx @@ -13,6 +13,7 @@ import { react_styles, } from "./framework-options"; import styled from "@emotion/styled"; +import assert from "assert"; type DesigntoCodeUserOptions = FrameworkOption; @@ -31,6 +32,8 @@ export function CodeOptionsControl(props: CodeOptionsControlProps) { all_preset_options_map__prod[__presetname] ); + assert(useroption, "option must be specified"); + useEffect(() => { // trigger initial value props.onUseroptionChange(useroption); @@ -54,6 +57,26 @@ export function CodeOptionsControl(props: CodeOptionsControlProps) { value: "react_with_inline_css", description: "with inline-css", }, + { + name: "React", + value: "react_with_css_module", + description: "with css-module", + }, + { + name: "React Native", + value: "reactnative_default", + description: "react-native", + }, + { + name: "React Native", + value: "reactnative_with_styled_components", + description: "with styled-components", + }, + { + name: "React Native", + value: "reactnative_with_inline_style", + description: "with inline-style", + }, { name: "Flutter", value: "flutter_default", @@ -89,12 +112,12 @@ export function CodeOptionsControl(props: CodeOptionsControlProps) { const getreactstyle = (frameworkPreset: string) => { const preset = getpreset(frameworkPreset) as ReactOption; const selected_styling = preset.styling; - const sorted_langs = [ + const sorted_styles = [ selected_styling, /* remove target item // - https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice */ ...react_styles.splice(1, 0, selected_styling), ]; - return sorted_langs; + return sorted_styles; }; const react_style_field_config: IField = { @@ -138,6 +161,7 @@ export function CodeOptionsControl(props: CodeOptionsControlProps) { const fields_config = { react: [platform_field_config, lang_field_config, react_style_field_config], + "react-native": [platform_field_config, lang_field_config], flutter: [platform_field_config, lang_field_config], vanilla: [platform_field_config, lang_field_config], }; diff --git a/editor/components/codeui-code-options-control/framework-options.ts b/editor/components/codeui-code-options-control/framework-options.ts index 431bc50d..9658472b 100644 --- a/editor/components/codeui-code-options-control/framework-options.ts +++ b/editor/components/codeui-code-options-control/framework-options.ts @@ -7,7 +7,16 @@ export enum Language { html = "html", } -export type ReactStylingStrategy = "css" | "styled-components" | "inline-css"; +export type ReactStylingStrategy = + | "css" + | "styled-components" + | "inline-css" + | "css-module"; + +export type ReactNativeStylingStrategy = + | "style-sheet" + | "styled-components" + | "inline-style"; export interface FlutterOption { framework: Framework.flutter; @@ -20,12 +29,22 @@ export interface ReactOption { styling: ReactStylingStrategy; } +export interface ReactNativeOption { + framework: Framework.reactnative; + language: Language.jsx | Language.tsx; + styling: ReactNativeStylingStrategy; +} + export interface VanillaOption { framework: Framework.vanilla; language: Language.html; } -export type FrameworkOption = ReactOption | FlutterOption | VanillaOption; +export type FrameworkOption = + | ReactOption + | ReactNativeOption + | FlutterOption + | VanillaOption; export const react_presets = { react_default: { @@ -43,6 +62,11 @@ export const react_presets = { language: Language.tsx, styling: "inline-css", }, + react_with_css_module: { + framework: Framework.react, + language: Language.tsx, + styling: "css-module", + }, react_with_css: { framework: Framework.react, language: Language.tsx, @@ -50,6 +74,24 @@ export const react_presets = { }, }; +export const reactnative_presets = { + reactnative_default: { + framework: Framework.reactnative, + language: Language.tsx, + styling: "style-sheet", + }, + reactnative_with_styled_components: { + framework: Framework.reactnative, + language: Language.tsx, + styling: "styled-components", + }, + reactnative_with_inline_style: { + framework: Framework.reactnative, + language: Language.tsx, + styling: "inline-style", + }, +}; + export const flutter_presets = { flutter_default: { framework: Framework.flutter, @@ -66,6 +108,7 @@ export const vanilla_presets = { export const presets = { react: react_presets, + reactnative: reactnative_presets, flutter: flutter_presets, vanilla: vanilla_presets, }; @@ -75,6 +118,8 @@ export const all_preset_options__prod = [ react_presets.react_default, react_presets.react_with_styled_components, react_presets.react_with_inline_css, + react_presets.react_with_css_module, + reactnative_presets.reactnative_default, vanilla_presets.vanilla_default, // react_with_css // NOT ON PRODUCTION ]; @@ -85,6 +130,12 @@ export const all_preset_options_map__prod = { react_default: react_presets.react_default, react_with_styled_components: react_presets.react_with_styled_components, react_with_inline_css: react_presets.react_with_inline_css, + react_with_css_module: react_presets.react_with_css_module, + reactnative_default: reactnative_presets.reactnative_default, + reactnative_with_styled_components: + reactnative_presets.reactnative_with_styled_components, + reactnative_with_inline_style: + reactnative_presets.reactnative_with_inline_style, vanilla_default: vanilla_presets.vanilla_default, // react_with_css // NOT ON PRODUCTION }; @@ -92,12 +143,14 @@ export const all_preset_options_map__prod = { export const lang_by_framework = { flutter: [Language.dart], react: [Language.jsx, Language.tsx], + "react-native": [Language.jsx, Language.tsx], vanilla: [Language.html], }; export const react_styles: ReactStylingStrategy[] = [ "styled-components", "inline-css", + "css-module", "css", ]; @@ -115,6 +168,8 @@ export const getDefaultPresetNameByFramework = (frameowrk: Framework) => { return "flutter_default"; case Framework.react: return "react_default"; + case Framework.reactnative: + return "reactnative_default"; case Framework.vanilla: return "vanilla_default"; } diff --git a/editor/next.config.js b/editor/next.config.js index 2a17b35a..74b0065f 100644 --- a/editor/next.config.js +++ b/editor/next.config.js @@ -22,6 +22,7 @@ const withTM = require("next-transpile-modules")([ "@designto/web", "@designto/vanilla", "@designto/react", + "@designto/react-native", "@code-features/assets", "@code-features/component", @@ -82,10 +83,12 @@ const withTM = require("next-transpile-modules")([ // region builders - part of designto-code / coli // region web builders - "@coli.codes/nodejs-builder", + "@web-builder/nodejs", "@web-builder/core", "@web-builder/vanilla", + "@web-builder/react-core", "@web-builder/react", + "@web-builder/react-native", "@web-builder/reflect-ui", "@web-builder/styled", "@web-builder/styles", diff --git a/editor/query/to-code-options-from-query.ts b/editor/query/to-code-options-from-query.ts index baffe80a..90dc312a 100644 --- a/editor/query/to-code-options-from-query.ts +++ b/editor/query/to-code-options-from-query.ts @@ -1,5 +1,6 @@ import { react_presets, + reactnative_presets, flutter_presets, vanilla_presets, } from "@grida/builder-config-preset"; @@ -37,6 +38,17 @@ export function get_framework_config(framework: string) { case "react_with_inline_css": case "react-with-inline-css": return react_presets.react_with_inline_css; + case "react_with_css_module": + case "react-with-css-module": + return react_presets.react_with_css_module; + case "react-native": + return reactnative_presets.reactnative_default; + case "react-native-with-style-sheet": + return reactnative_presets.reactnative_with_style_sheet; + case "react-native-with-styled-components": + return reactnative_presets.reactnative_with_styled_components; + case "react-native-with-inline-style": + return reactnative_presets.reactnative_with_inline_style; case "flutter": case "flutter_default": case "flutter-default": diff --git a/editor/scaffolds/code/index.tsx b/editor/scaffolds/code/index.tsx index f01e1b50..15a8b724 100644 --- a/editor/scaffolds/code/index.tsx +++ b/editor/scaffolds/code/index.tsx @@ -14,6 +14,7 @@ import { utils_dart } from "utils"; import type { ReflectSceneNode } from "@design-sdk/core"; import { utils as _design_utils } from "@design-sdk/core"; +import assert from "assert"; const designq = _design_utils.query; export function CodeSegment() { @@ -120,11 +121,14 @@ export function CodeSegment() { switch (o.framework) { case "react": { switch (o.styling) { + case "styled-components": + c = get_framework_config("react-with-styled-components"); + break; case "inline-css": c = get_framework_config("react-with-inline-css"); break; - case "styled-components": - c = get_framework_config("react-with-styled-components"); + case "css-module": + c = get_framework_config("react-with-css-module"); break; case "css": // TODO: @@ -132,6 +136,22 @@ export function CodeSegment() { } break; } + case "react-native": { + switch (o.styling) { + case "style-sheet": + c = get_framework_config("react-native-with-style-sheet"); + break; + case "styled-components": + c = get_framework_config( + "react-native-with-styled-components" + ); + break; + case "inline-style": + c = get_framework_config("react-native-with-inline-style"); + break; + } + break; + } case "flutter": c = get_framework_config(o.framework); break; @@ -139,6 +159,8 @@ export function CodeSegment() { c = get_framework_config(o.framework); break; } + + assert(c); set_framework_config(c); }} /> diff --git a/externals/coli b/externals/coli index 7beb540c..86802c58 160000 --- a/externals/coli +++ b/externals/coli @@ -1 +1 @@ -Subproject commit 7beb540c885c7b40bf163004a182d60fbdf001ce +Subproject commit 86802c58f19f5acc1de059faabc62dd2709291bc diff --git a/externals/reflect-core b/externals/reflect-core index f0663b2a..c5dc2966 160000 --- a/externals/reflect-core +++ b/externals/reflect-core @@ -1 +1 @@ -Subproject commit f0663b2aa0b76ace158fef054a67a520b01d94eb +Subproject commit c5dc2966f333a1f4749a6aa3acec606a3dd0848d diff --git a/packages/builder-config-preset/index.ts b/packages/builder-config-preset/index.ts index 54567a0f..269c4437 100644 --- a/packages/builder-config-preset/index.ts +++ b/packages/builder-config-preset/index.ts @@ -46,6 +46,17 @@ export const react_presets = { }, component_declaration_style: _react_component_declaration_style, }, + react_with_css_module: { + framework: Framework.react, + language: Language.tsx, + styling: { + type: "css-module", + lang: "css", + importDefault: "styles", + loader: "css-loader", + }, + component_declaration_style: _react_component_declaration_style, + }, react_with_css: { framework: Framework.react, language: Language.tsx, @@ -54,6 +65,52 @@ export const react_presets = { component_declaration_style: _react_component_declaration_style, }; +export const reactnative_presets = { + reactnative_default: { + framework: Framework.reactnative, + language: Language.tsx, + svg: null, // TODO: + gradient: null, // TODO: + styling: { + type: "react-native-stylesheet", + module: "react-native", + }, + component_declaration_style: _react_component_declaration_style, + }, + reactnative_with_style_sheet: { + framework: Framework.reactnative, + language: Language.tsx, + svg: null, // TODO: + gradient: null, // TODO: + styling: { + type: "react-native-stylesheet", + module: "react-native", + }, + component_declaration_style: _react_component_declaration_style, + }, + reactnative_with_styled_components: { + framework: Framework.reactnative, + language: Language.tsx, + svg: null, // TODO: + gradient: null, // TODO: + styling: { + type: "styled-components", + module: "styled-components/native", + }, + component_declaration_style: _react_component_declaration_style, + }, + reactnative_with_inline_style: { + framework: Framework.reactnative, + language: Language.tsx, + svg: null, // TODO: + gradient: null, // TODO: + styling: { + type: "inline-style", + }, + component_declaration_style: _react_component_declaration_style, + }, +}; + export const vanilla_presets = { vanilla_default: { framework: Framework.vanilla, @@ -114,6 +171,20 @@ export const react_styles: { type: "inline-css", }, ], + "css-module": [ + { + type: "css-module", + importDefault: "styles", + loader: "css-loader", + lang: "css", + }, + { + type: "css-module", + importDefault: "styles", + loader: "css-loader", + lang: "scss", + }, + ], css: [ { type: "css", diff --git a/packages/builder-config/configure/framework-config.ts b/packages/builder-config/configure/framework-config.ts index 47c44b49..c7206808 100644 --- a/packages/builder-config/configure/framework-config.ts +++ b/packages/builder-config/configure/framework-config.ts @@ -1,13 +1,16 @@ -import { Language } from "@grida/builder-platform-types"; +import type { Language } from "@grida/builder-platform-types"; import type { ReactFrameworkConfig } from "../framework-react"; +import type { ReactNativeFrameworkConfig } from "../framework-reactnative"; import type { VanillaFrameworkConfig } from "../framework-vanilla"; export type FrameworkConfig = | ReactFrameworkConfig + | ReactNativeFrameworkConfig | FlutterFrameworkConfig | VanillaFrameworkConfig; export type { ReactFrameworkConfig }; +export type { ReactNativeFrameworkConfig }; export type { VanillaFrameworkConfig }; export interface FlutterFrameworkConfig { diff --git a/packages/builder-config/framework-css/index.ts b/packages/builder-config/framework-css/index.ts new file mode 100644 index 00000000..1c11c70f --- /dev/null +++ b/packages/builder-config/framework-css/index.ts @@ -0,0 +1,11 @@ +export type CssStylingConfig = VanillaCssStylingConfig | ScssStylingConfig; + +interface VanillaCssStylingConfig { + type: "css"; + lang: "css"; +} + +interface ScssStylingConfig { + type: "css"; + lang: "scss"; +} diff --git a/packages/builder-config/framework-react/react-config-styling.ts b/packages/builder-config/framework-react/react-config-styling.ts index 5517af52..ef50e942 100644 --- a/packages/builder-config/framework-react/react-config-styling.ts +++ b/packages/builder-config/framework-react/react-config-styling.ts @@ -1,24 +1,16 @@ +import type { CssStylingConfig } from "../framework-css"; + export type ReactStylingStrategy = | ReactInlineCssConfig - | ReactCssStylingConfig + | ReactNormalCssConfig + | ReactCssModuleConfig | ReactStyledComponentsConfig; export type ReactStyledComponentsConfig = | ReactTheStyledComponentsConfig | ReactEmotionStyledConfig; -export type ReactCssStylingConfig = CssStylingConfig; - -type CssStylingConfig = VanillaCssStylingConfig | ScssStylingConfig; - -interface VanillaCssStylingConfig { - type: "css"; - lang: "css"; -} -interface ScssStylingConfig { - type: "css"; - lang: "scss"; -} +export type ReactNormalCssConfig = CssStylingConfig; /** * "The" styled-components config - https://styled-components.com/ @@ -48,3 +40,42 @@ interface ReactEmotionStyledConfig { export interface ReactInlineCssConfig { type: "inline-css"; } + +/** + * Configuration for css module for react + * + * + * What is css module? + * ```tsx + * import styles from "./component.module.css"; + *
+ * ``` + */ +export type ReactCssModuleConfig = Omit & { + type: "css-module"; + + /** + * The name of the css module + * @deprecated not used + * + * - .css + * - .module.css + */ + pattern?: string; + + /** + * the identifier of the css module to use when importing + * + * ``` + * import from "./component.module.css"; + * ``` + */ + importDefault: string | "styles"; + + /** + * Loader used for webpack to enable css module feature + * + * https://github.com/webpack-contrib/css-loader + */ + loader: "css-loader"; +}; diff --git a/packages/builder-config/framework-react/react-config.ts b/packages/builder-config/framework-react/react-config.ts index 959d9fb7..3cac8d28 100644 --- a/packages/builder-config/framework-react/react-config.ts +++ b/packages/builder-config/framework-react/react-config.ts @@ -1,4 +1,4 @@ -import { Language } from "@grida/builder-platform-types"; +import type { Language } from "@grida/builder-platform-types"; import type { ReactComponentExportingCofnig } from "./react-config-exporting-component"; import type { ReactFunctionalComponentDeclarationConfig } from "./react-config-functional-component-declaration"; import type { ReactStylingStrategy } from "./react-config-styling"; diff --git a/packages/builder-config/framework-reactnative/index.ts b/packages/builder-config/framework-reactnative/index.ts new file mode 100644 index 00000000..ce0dd649 --- /dev/null +++ b/packages/builder-config/framework-reactnative/index.ts @@ -0,0 +1,7 @@ +export * from "./reactnative-config"; +export * from "./reactnative-config-gradient"; +export * from "./reactnative-config-styling"; +export * from "./reactnative-config-svg"; +export * from "./reactnative-config-shadow"; + +export * from "./reactnative-output"; diff --git a/packages/builder-config/framework-reactnative/reactnative-config-blur.ts b/packages/builder-config/framework-reactnative/reactnative-config-blur.ts new file mode 100644 index 00000000..227a4beb --- /dev/null +++ b/packages/builder-config/framework-reactnative/reactnative-config-blur.ts @@ -0,0 +1,18 @@ +export type ReactNativeBlurConfig = { + layer: "none" | ReactNativeExpoBlurConfig | ReactNativeCommunityBlurConfig; + background: "none" | null; + image: ReactNativeImageBlurConfig; +}; + +/** + * RN has a built-in blur effect for image based elements - Image, BackgroundImage + */ +interface ReactNativeImageBlurConfig {} + +interface ReactNativeExpoBlurConfig { + module: "expo-blur"; +} + +interface ReactNativeCommunityBlurConfig { + module: "@react-native-community/blur"; +} diff --git a/packages/builder-config/framework-reactnative/reactnative-config-gradient-text.ts b/packages/builder-config/framework-reactnative/reactnative-config-gradient-text.ts new file mode 100644 index 00000000..20122824 --- /dev/null +++ b/packages/builder-config/framework-reactnative/reactnative-config-gradient-text.ts @@ -0,0 +1,49 @@ +export interface ReactNativeTextGradientConfig { + linear: + | ReactNativeLinearTextGradientConfig + | ReactNativeTextGradientFallbackConfig; + radial: ReactNativeTextGradientFallbackConfig; +} + +export type ReactNativeLinearTextGradientConfig = + ReactNativeLinearTextGradientModuleConfig; + +/** + * "[react-native-text-gradient](https://github.com/iyegoroff/react-native-text-gradient)" + * + * ```tsx + import { LinearTextGradient } from "react-native-text-gradient"; + + + THIS IS TEXT GRADIENT + ; + * ``` + * + * - last module update: 2020-09-11 + */ +interface ReactNativeLinearTextGradientModuleConfig { + module: "react-native-text-gradient"; +} + +/** + * The fallback strategy for text gradients on react-native + * Since the linear, radial and conic gradients are not natively supported by react-native, + * we need to use a fallback strategy if non external modules are specified. + */ +type ReactNativeTextGradientFallbackConfig = + | RNTextGradientFallbackType + | RNTextGradientFallbackType[]; + +type RNTextGradientFallbackType = + | "fallback-to-svg" + | "fallback-to-png" + | "fallback-to-first-color" + | "fallback-to-black" + | "fallback-to-white" + | "fallback-to-close-bw"; diff --git a/packages/builder-config/framework-reactnative/reactnative-config-gradient.ts b/packages/builder-config/framework-reactnative/reactnative-config-gradient.ts new file mode 100644 index 00000000..048f7c37 --- /dev/null +++ b/packages/builder-config/framework-reactnative/reactnative-config-gradient.ts @@ -0,0 +1,83 @@ +/** + * react-native's gradient support build config + * + * Learn more + * - [Does React Native styles support gradients?](https://stackoverflow.com/questions/32027965/does-react-native-styles-support-gradients) + */ +export interface ReactNativeGradientConfig { + linear: ReactNativeLinearGradientConfig | ReactNativeGradientFallbackConfig; + /** + * radial gradient for react-native is not yet supported. + */ + radial: ReactNativeRadialGradientConfig | ReactNativeGradientFallbackConfig; +} + +export type ReactNativeLinearGradientConfig = + | ReactNativeLinearGradientModuleConfig + | ExpoLinearGradientModuleConfig; + +/** + * The fallback strategy for gradients on react-native + * Since the linear, radial and conic gradients are not natively supported by react-native, + * we need to use a fallback strategy if non external modules are specified. + */ +interface ReactNativeGradientFallbackConfig { + type: "fallback-to-svg" | "fallback-to-png"; +} + +/** + * + */ +export type ReactNativeRadialGradientConfig = + ReactNativeRadialGradientModuleConfig; + +/** + * Module config of "react-native-radial-gradient" + * + * ```tsx + * // e.g. + * import { RadialGradient } from "react-native-radial-gradient"; + * ``` + */ +interface ReactNativeRadialGradientModuleConfig { + module: "react-native-radial-gradient"; +} + +/** + * The "[react-native-linear-gradient](https://github.com/react-native-linear-gradient/react-native-linear-gradient)" module config + * + * + * ```tsx + * // e.g. + * import { LinearGradient } from "react-native-linear-gradient"; + * ``` + */ +interface ReactNativeLinearGradientModuleConfig { + module: "react-native-linear-gradient"; +} + +/** + * https://docs.expo.dev/versions/latest/sdk/linear-gradient/ + * + * + * ```tsx + * // e.g. + * import { LinearGradient } from 'expo-linear-gradient'; + * + * const styles = StyleSheet.create({ ... }); + * ``` + * + * **Platform Compatibility** + * - Android Device ✅ + * - Android Emulator ✅ + * - iOS Device ✅ + * - iOS Simulator ✅ + * - Web ✅ + * + */ +interface ExpoLinearGradientModuleConfig { + module: "expo-linear-gradient"; +} diff --git a/packages/builder-config/framework-reactnative/reactnative-config-shadow.ts b/packages/builder-config/framework-reactnative/reactnative-config-shadow.ts new file mode 100644 index 00000000..0facf7b8 --- /dev/null +++ b/packages/builder-config/framework-reactnative/reactnative-config-shadow.ts @@ -0,0 +1,42 @@ +/** + * ReactNative does not have a very nice way to work with shadow natively across the platforms. + * + * Learn more + * - https://reactnative.dev/docs/shadow-props + * - https://medium.com/game-development-stuff/how-to-apply-shadows-on-react-native-fa745d374ae7 + * - https://stackoverflow.com/questions/45972506/creating-a-ui-with-box-shadow-in-react-native + * - https://blog.logrocket.com/applying-box-shadows-in-react-native/ + */ +export type ReactNativeShadowConfig = + | RNNativeShadowConfig + | RNShadow1ModuleConfig + | RNShadow2ModuleConfig; + +export interface RNNativeShadowConfig { + type: "react-native"; + module: "react-native"; + ios?: RNIOSShadowConfig; + android?: RNAndroidShadowConfig; + // +} + +interface RNIOSShadowConfig {} +interface RNAndroidShadowConfig {} + +/** + * @deprecated use react-native-shadow-2 instead + * + * Learn more - https://github.com/879479119/react-native-shadow + */ +export interface RNShadow1ModuleConfig { + type: "react-native-shadow-1"; + module: "react-native-shadow"; +} + +/** + * Learn more - https://github.com/SrBrahma/react-native-shadow-2 + */ +export interface RNShadow2ModuleConfig { + type: "react-native-shadow-2"; + module: "react-native-shadow-2"; +} diff --git a/packages/builder-config/framework-reactnative/reactnative-config-styling.ts b/packages/builder-config/framework-reactnative/reactnative-config-styling.ts new file mode 100644 index 00000000..f3e3bb21 --- /dev/null +++ b/packages/builder-config/framework-reactnative/reactnative-config-styling.ts @@ -0,0 +1,48 @@ +export type ReactNativeStylingStrategy = + | ReactNativeInlineStyleConfig + | ReactNativeStyleSheetConfig + | ReactNativeStyledComponentsConfig; + +/** + * The default react-native styling strategy + */ +export interface ReactNativeStyleSheetConfig { + type: "react-native-stylesheet"; + /** + * import { StyleSheet } from "react-native"; + */ + module: "react-native"; +} + +/** + * Inline css styling for react-native without using StyleSheet + * + * ```tsx + * // examples + * + * + * ``` + */ +export interface ReactNativeInlineStyleConfig { + type: "inline-style"; +} + +export type ReactNativeStyledComponentsConfig = + | ReactStyledComponentsNativeConfig + | ReactEmotionNativeStyledConfig; + +/** + * 'styled-components/native' config - https://styled-components.com/docs/basics#react-native + */ +interface ReactStyledComponentsNativeConfig { + type: "styled-components"; + module: "styled-components/native"; +} + +/** + * Configuration of styled from "@emotion/native" - https://emotion.sh/docs/@emotion/native + */ +interface ReactEmotionNativeStyledConfig { + type: "styled-components"; + module: "@emotion/native"; +} diff --git a/packages/builder-config/framework-reactnative/reactnative-config-svg.ts b/packages/builder-config/framework-reactnative/reactnative-config-svg.ts new file mode 100644 index 00000000..8532a851 --- /dev/null +++ b/packages/builder-config/framework-reactnative/reactnative-config-svg.ts @@ -0,0 +1,12 @@ +export type ReactNativeSvgConfig = RNSvgModuleConfig; + +/** + * The most popular svg module for react-native + * + * Learn more + * - [react-native-svg on expo](https://docs.expo.dev/ui-programming/using-svgs/) + */ +interface RNSvgModuleConfig { + module: "react-native-svg"; + prefer_mode: "svg-xml" | "svg-with-path"; +} diff --git a/packages/builder-config/framework-reactnative/reactnative-config.ts b/packages/builder-config/framework-reactnative/reactnative-config.ts new file mode 100644 index 00000000..674a8956 --- /dev/null +++ b/packages/builder-config/framework-reactnative/reactnative-config.ts @@ -0,0 +1,30 @@ +import type { Language } from "@grida/builder-platform-types"; +import type { ReactNativeStylingStrategy } from "./reactnative-config-styling"; +import type { + ReactComponentExportingCofnig, + ReactFunctionalComponentDeclarationConfig, +} from "../framework-react"; +import type { ReactNativeSvgConfig } from "./reactnative-config-svg"; +import type { ReactNativeGradientConfig } from "./reactnative-config-gradient"; +import type { ReactNativeTextGradientConfig } from "./reactnative-config-gradient-text"; +import type { ReactNativeShadowConfig } from "./reactnative-config-shadow"; +import type { ReactNativeBlurConfig } from "./reactnative-config-blur"; + +export interface ReactNativeFrameworkConfig { + framework: "react-native"; + language: Language.jsx | Language.tsx; + styling: ReactNativeStylingStrategy; + gradient: ReactNativeGradientConfig; + gradient_text: ReactNativeTextGradientConfig; + shadow: ReactNativeShadowConfig; + svg: ReactNativeSvgConfig; + /** + * @deprecated not supported at this moment - wip + */ + blur?: ReactNativeBlurConfig; + component_declaration_style: { + exporting_style: ReactComponentExportingCofnig; + // not supported yet + declaration_style?: ReactFunctionalComponentDeclarationConfig; + }; +} diff --git a/packages/builder-config/framework-reactnative/reactnative-output.ts b/packages/builder-config/framework-reactnative/reactnative-output.ts new file mode 100644 index 00000000..ba7bfe7e --- /dev/null +++ b/packages/builder-config/framework-reactnative/reactnative-output.ts @@ -0,0 +1,3 @@ +import { ComponentOutput } from "../output"; + +export interface ReactNativeComponentOutput extends ComponentOutput {} diff --git a/packages/builder-config/framework/index.ts b/packages/builder-config/framework/index.ts index 425f3894..be9081e5 100644 --- a/packages/builder-config/framework/index.ts +++ b/packages/builder-config/framework/index.ts @@ -2,6 +2,7 @@ export * as android from "../framework-android"; export * as flutter from "../framework-flutter"; export * as ios from "../framework-ios"; export * as react from "../framework-react"; +export * as reactnative from "../framework-reactnative"; export * as vanilla from "../framework-vanilla"; export * as vue from "../framework-vue"; diff --git a/packages/builder-css-styles/font-weight/index.ts b/packages/builder-css-styles/font-weight/index.ts index 390c7f7e..5fc51ebb 100644 --- a/packages/builder-css-styles/font-weight/index.ts +++ b/packages/builder-css-styles/font-weight/index.ts @@ -8,11 +8,14 @@ export type CSSFontWeight = | "initial" | "unset" // - | "normal" - | "bold" | "lighter" | "bolder" // + | CSSNumericFontWeight; + +type CSSNumericFontWeight = + | "normal" + | "bold" | "100" | "200" | "300" @@ -40,6 +43,33 @@ export function convertToCssFontWeight(fontWeight: FontWeight): CSSFontWeight { return "lighter"; case FontWeight.bolder: return "bolder"; + case FontWeight.w100: + case FontWeight.w200: + case FontWeight.w300: + case FontWeight.w400: + case FontWeight.w500: + case FontWeight.w600: + case FontWeight.w700: + case FontWeight.w800: + case FontWeight.w900: + return numericFontWeight(fontWeight); + default: + return "inherit"; + } +} + +export function numericFontWeight( + fontWeight: FontWeight +): CSSNumericFontWeight { + switch (fontWeight) { + case FontWeight.normal: + return "normal"; + case FontWeight.bold: + return "bold"; + case FontWeight.lighter: + return "300"; + case FontWeight.bolder: + return "900"; case FontWeight.w100: return "100"; case FontWeight.w200: @@ -59,6 +89,6 @@ export function convertToCssFontWeight(fontWeight: FontWeight): CSSFontWeight { case FontWeight.w900: return "900"; default: - return "inherit"; + return undefined; } } diff --git a/packages/builder-css-styles/justify-content/index.ts b/packages/builder-css-styles/justify-content/index.ts index f581df91..4eb81e5b 100644 --- a/packages/builder-css-styles/justify-content/index.ts +++ b/packages/builder-css-styles/justify-content/index.ts @@ -11,7 +11,13 @@ export function justifyContent( export function mainAxisAlignmentToJustifyContent( mainAxisAlignment: MainAxisAlignment -): CSSProperty.JustifyContent { +): + | "flex-start" + | "flex-end" + | "center" + | "space-between" + | "space-around" + | "space-evenly" { switch (mainAxisAlignment) { case "start": return "flex-start"; diff --git a/packages/builder-css-styles/length/index.ts b/packages/builder-css-styles/length/index.ts index a9229fd9..e4e558bb 100644 --- a/packages/builder-css-styles/length/index.ts +++ b/packages/builder-css-styles/length/index.ts @@ -4,7 +4,7 @@ import { px, vw, vh } from "../dimensions"; import { percent } from "../percent"; export function length(d: DimensionLength | string, a?: Axis) { - if (d === undefined) { + if (d === undefined || d === null) { return; } if (typeof d === "number") { @@ -59,5 +59,5 @@ export function length(d: DimensionLength | string, a?: Axis) { } throw `no matching length type found. "${JSON.stringify(d)}" was givven`; - return px((d as any) as number); + return px(d as any as number); } diff --git a/packages/builder-css-styles/margin/index.ts b/packages/builder-css-styles/margin/index.ts index 82040495..ffc0bb04 100644 --- a/packages/builder-css-styles/margin/index.ts +++ b/packages/builder-css-styles/margin/index.ts @@ -1,31 +1,43 @@ import { CSSProperties } from "@coli.codes/css"; -import { EdgeInsets } from "@reflect-ui/core"; +import { + EdgeInsets, + edgeInsetsShorthandMode, + EdgeInsetsShorthandMode, +} from "@reflect-ui/core"; import { px } from "../dimensions"; type MarginValue = number | "auto"; export function margin(m: EdgeInsets): CSSProperties { - if (!m) { - return {}; + switch (edgeInsetsShorthandMode(m)) { + case EdgeInsetsShorthandMode.empty: { + return {}; + } + case EdgeInsetsShorthandMode.all: { + return { + margin: _mv(m.top), + }; + } + case EdgeInsetsShorthandMode.symetric: { + return { + margin: `${_mv(m.top)} ${_mv(m.left)}`, + }; + } + case EdgeInsetsShorthandMode.top_horiz_bottom: { + return { + margin: `${_mv(m.top)} ${_mv(m.left)} ${_mv(m.bottom)}`, + }; + } + case EdgeInsetsShorthandMode.trbl: + default: { + return { + "margin-bottom": _makeifRequired(m?.bottom), + "margin-top": _makeifRequired(m?.top), + "margin-left": _makeifRequired(m?.left), + "margin-right": _makeifRequired(m?.right), + }; + } } - if (m.top === 0 && m.right === 0 && m.bottom === 0 && m.left === 0) { - return {}; - } - if (m.top === m.bottom && m.left === m.right) { - return { - margin: `${_mv(m.top)} ${_mv(m.left)}`, - }; - } else if (m.left === m.right) { - return { - margin: `${_mv(m.top)} ${_mv(m.left)} ${_mv(m.bottom)}`, - }; - } - return { - "margin-bottom": _makeifRequired(m?.bottom), - "margin-top": _makeifRequired(m?.top), - "margin-left": _makeifRequired(m?.left), - "margin-right": _makeifRequired(m?.right), - }; } /** diff --git a/packages/builder-css-styles/padding/index.ts b/packages/builder-css-styles/padding/index.ts index aa32d32c..93172c4d 100644 --- a/packages/builder-css-styles/padding/index.ts +++ b/packages/builder-css-styles/padding/index.ts @@ -1,34 +1,58 @@ import { CSSProperties } from "@coli.codes/css"; -import { EdgeInsets } from "@reflect-ui/core"; +import { + EdgeInsets, + edgeInsetsShorthandMode, + EdgeInsetsShorthandMode, +} from "@reflect-ui/core"; import { px } from "../dimensions"; -export function padding(padding: EdgeInsets): CSSProperties { - if (!padding) { - return {}; +type PaddingValue = number | "auto"; + +export function padding(p: EdgeInsets): CSSProperties { + switch (edgeInsetsShorthandMode(p)) { + case EdgeInsetsShorthandMode.empty: { + return {}; + } + case EdgeInsetsShorthandMode.all: { + return { + padding: _pv(p.top), + }; + } + case EdgeInsetsShorthandMode.symetric: { + return { + padding: `${_pv(p.top)} ${_pv(p.left)}`, + }; + } + case EdgeInsetsShorthandMode.top_horiz_bottom: { + return { + padding: `${_pv(p.top)} ${_pv(p.left)} ${_pv(p.bottom)}`, + }; + } + case EdgeInsetsShorthandMode.trbl: + default: { + return { + "padding-bottom": _makeifRequired(p?.bottom), + "padding-top": _makeifRequired(p?.top), + "padding-left": _makeifRequired(p?.left), + "padding-right": _makeifRequired(p?.right), + }; + } } - if ( - padding.top === 0 && - padding.right === 0 && - padding.bottom === 0 && - padding.left === 0 - ) { - return {}; +} + +/** + * Margin Value - mv + * @param pv + * @returns + */ +function _pv(pv: PaddingValue) { + if (pv === undefined) { + return; } - if (padding.top === padding.bottom && padding.left === padding.right) { - return { - padding: `${px(padding.top)} ${px(padding.left)}`, - }; - } else if (padding.left === padding.right) { - return { - padding: `${px(padding.top)} ${px(padding.left)} ${px(padding.bottom)}`, - }; + if (pv === "auto") { + return "auto"; } - return { - "padding-bottom": _makeifRequired(padding?.bottom), - "padding-top": _makeifRequired(padding?.top), - "padding-left": _makeifRequired(padding?.left), - "padding-right": _makeifRequired(padding?.right), - }; + return px(pv); } function _makeifRequired(val: number): string | undefined { diff --git a/packages/builder-css-styles/tricks/index.ts b/packages/builder-css-styles/tricks/index.ts index 4f977f99..e094f496 100644 --- a/packages/builder-css-styles/tricks/index.ts +++ b/packages/builder-css-styles/tricks/index.ts @@ -1,2 +1,3 @@ export * from "./trick-circle-with-border-radius"; export * from "./trick-rrect-with-border-radius"; +export * from "./trick-flex-sizing"; diff --git a/packages/builder-css-styles/tricks/trick-flex-sizing/index.ts b/packages/builder-css-styles/tricks/trick-flex-sizing/index.ts new file mode 100644 index 00000000..b0de9a03 --- /dev/null +++ b/packages/builder-css-styles/tricks/trick-flex-sizing/index.ts @@ -0,0 +1,51 @@ +import { CSSProperties } from "@coli.codes/css"; +import { Axis, DimensionLength, MainAxisSize } from "@reflect-ui/core"; +import { length } from "../../length"; + +export function flexsizing({ + mainAxisSize, + width, + height, + flex, + direction, +}: { + direction: Axis; + mainAxisSize?: MainAxisSize; + width?: DimensionLength; + height?: DimensionLength; + flex?: number; +}): { + "align-self"?: + | "flex-start" + | "flex-end" + | "center" + | "stretch" + | "baseline" + | "auto"; + flex?: number | "none" | undefined; + width?: CSSProperties["width"]; + height?: CSSProperties["height"]; +} { + switch (mainAxisSize) { + case MainAxisSize.max: { + return { + "align-self": "stretch", + flex: 1, // This is a temporary solution, since stretch can be used on non-space-between parent, but still the item should stretch, we use flex 1 to do this. + }; + } + case MainAxisSize.min: { + switch (direction) { + case Axis.horizontal: + case Axis.vertical: + return { + flex: "none", + width: width && length(width), + height: height && length(height), + }; + } + } + } + + // TODO: + // 1. add widht / height handling +} diff --git a/packages/builder-platform-types/ui-frameworks/index.ts b/packages/builder-platform-types/ui-frameworks/index.ts index 98691762..41e38bd4 100644 --- a/packages/builder-platform-types/ui-frameworks/index.ts +++ b/packages/builder-platform-types/ui-frameworks/index.ts @@ -1,5 +1,6 @@ export enum Framework { react = "react", + reactnative = "react-native", flutter = "flutter", vanilla = "vanilla", } diff --git a/packages/builder-react-core/README.md b/packages/builder-react-core/README.md new file mode 100644 index 00000000..0fb5ba0d --- /dev/null +++ b/packages/builder-react-core/README.md @@ -0,0 +1,3 @@ +# React Core Builder components + +Shared code for react for web and react-native builder diff --git a/packages/builder-web-react/export-result/component.export-result.ts b/packages/builder-react-core/export-result/component.export-result.ts similarity index 100% rename from packages/builder-web-react/export-result/component.export-result.ts rename to packages/builder-react-core/export-result/component.export-result.ts diff --git a/packages/builder-web-react/export-result/index.ts b/packages/builder-react-core/export-result/index.ts similarity index 100% rename from packages/builder-web-react/export-result/index.ts rename to packages/builder-react-core/export-result/index.ts diff --git a/packages/builder-react-core/index.ts b/packages/builder-react-core/index.ts new file mode 100644 index 00000000..a45579fd --- /dev/null +++ b/packages/builder-react-core/index.ts @@ -0,0 +1,6 @@ +export * from "./export-result"; +export * from "./react-component-exporting"; +export * from "./react-import-specifications"; +export * from "../builder-web-react/react-project"; +export * from "./react-module-file"; +export * from "./react-module"; diff --git a/packages/builder-react-core/package.json b/packages/builder-react-core/package.json new file mode 100644 index 00000000..55d68d02 --- /dev/null +++ b/packages/builder-react-core/package.json @@ -0,0 +1,11 @@ +{ + "name": "@web-builder/react-core", + "description": "Grida's React Core code builder for development automation built uppon coli", + "version": "17.0.2", + "license": "Apache 2.0", + "homepage": "https://coli.codes/react", + "author": "Grida Authors", + "dependencies": { + "@web-builder/styled": "0.0.0" + } +} \ No newline at end of file diff --git a/packages/builder-web-react/react-component-exporting/index.ts b/packages/builder-react-core/react-component-exporting/index.ts similarity index 100% rename from packages/builder-web-react/react-component-exporting/index.ts rename to packages/builder-react-core/react-component-exporting/index.ts diff --git a/packages/builder-web-react/react-functional-component-declaration/index.ts b/packages/builder-react-core/react-functional-component-declaration/index.ts similarity index 100% rename from packages/builder-web-react/react-functional-component-declaration/index.ts rename to packages/builder-react-core/react-functional-component-declaration/index.ts diff --git a/packages/builder-web-react/react-import-specifications/index.ts b/packages/builder-react-core/react-import-specifications/index.ts similarity index 100% rename from packages/builder-web-react/react-import-specifications/index.ts rename to packages/builder-react-core/react-import-specifications/index.ts diff --git a/packages/builder-web-react/react-import-specifications/react-default.ts b/packages/builder-react-core/react-import-specifications/react-default.ts similarity index 97% rename from packages/builder-web-react/react-import-specifications/react-default.ts rename to packages/builder-react-core/react-import-specifications/react-default.ts index e215cfaf..d1385d69 100644 --- a/packages/builder-web-react/react-import-specifications/react-default.ts +++ b/packages/builder-react-core/react-import-specifications/react-default.ts @@ -2,7 +2,7 @@ /// This contains default and fundamental imports required for using react library /// -import { standard_libraries } from "../../builder-web-nodejs"; +import { standard_libraries } from "@web-builder/nodejs"; import { Import } from "coli"; /** diff --git a/packages/builder-web-react/react-import-specifications/with-emotion-styled.ts b/packages/builder-react-core/react-import-specifications/with-emotion-styled.ts similarity index 51% rename from packages/builder-web-react/react-import-specifications/with-emotion-styled.ts rename to packages/builder-react-core/react-import-specifications/with-emotion-styled.ts index 6da9e67f..2e1c692e 100644 --- a/packages/builder-web-react/react-import-specifications/with-emotion-styled.ts +++ b/packages/builder-react-core/react-import-specifications/with-emotion-styled.ts @@ -1,4 +1,4 @@ -import { standard_libraries } from "../../builder-web-nodejs"; +import { standard_libraries } from "@web-builder/nodejs"; import { Import } from "coli"; /** @@ -9,9 +9,21 @@ const import_styled_from_emotion_styled = new Import() .from(standard_libraries.emotion_styled.name) .make(); +/** + * CoLI: `import styled from "@emotion/native";` + */ +const import_styled_from_emotion_native = new Import() + .importDefault("styled") + .from(standard_libraries.emotion_native.name) + .make(); + export const emotion_styled_imports = { /** * `import styled from "@emotion/styled";` */ import_styled_from_emotion_styled, + /** + * `import styled from "@emotion/native";` + */ + import_styled_from_emotion_native, }; diff --git a/packages/builder-react-core/react-import-specifications/with-styled-components.ts b/packages/builder-react-core/react-import-specifications/with-styled-components.ts new file mode 100644 index 00000000..63fc20a6 --- /dev/null +++ b/packages/builder-react-core/react-import-specifications/with-styled-components.ts @@ -0,0 +1,30 @@ +import { standard_libraries } from "@web-builder/nodejs"; +import { Import } from "coli"; + +/** + * CoLI: `import styled from "styled-components";` + */ +const import_styled_from_styled_components = new Import() + .importDefault("styled") + .from(standard_libraries.styled_components.name) + .make(); + +/** + * CoLI: `import styled from "styled-components/native";` + */ +const import_styled_from_styled_components_native = new Import() + .importDefault("styled") + // styled-components/native + .from(standard_libraries.styled_components.name + "/native") + .make(); + +export const styled_components_imports = { + /** + * `import styled from "styled-components";` + */ + import_styled_from_styled_components, + /** + * `import styled from "styled-components/native";` + */ + import_styled_from_styled_components_native, +}; diff --git a/packages/builder-web-react/react-module-file/index.ts b/packages/builder-react-core/react-module-file/index.ts similarity index 100% rename from packages/builder-web-react/react-module-file/index.ts rename to packages/builder-react-core/react-module-file/index.ts diff --git a/packages/builder-web-react/react-module/index.ts b/packages/builder-react-core/react-module/index.ts similarity index 100% rename from packages/builder-web-react/react-module/index.ts rename to packages/builder-react-core/react-module/index.ts diff --git a/packages/builder-web-react/react-module/react-exportable-module-declaration.ts b/packages/builder-react-core/react-module/react-exportable-module-declaration.ts similarity index 100% rename from packages/builder-web-react/react-module/react-exportable-module-declaration.ts rename to packages/builder-react-core/react-module/react-exportable-module-declaration.ts diff --git a/packages/builder-web-react-native/README.md b/packages/builder-react-native/README.md similarity index 100% rename from packages/builder-web-react-native/README.md rename to packages/builder-react-native/README.md diff --git a/packages/builder-react-native/_/fixme-types.ts b/packages/builder-react-native/_/fixme-types.ts new file mode 100644 index 00000000..68b15dee --- /dev/null +++ b/packages/builder-react-native/_/fixme-types.ts @@ -0,0 +1,14 @@ +import type { JsxWidget } from "@web-builder/core"; + +// nodes +export type RNReactNode = JsxWidget[]; +export type RNAnimatedNode = any; + +// events +export type RNMouseEvent = any; +export type RNPressEvent = any; +export type RNLayoutEvent = any; +export type RNTextLayoutEvent = any; +export type RNAccessibilityActionEvent = any; +export type RNBlurEvent = any; +export type RNFocusEvent = any; diff --git a/packages/builder-react-native/_/index.ts b/packages/builder-react-native/_/index.ts new file mode 100644 index 00000000..316a1aa0 --- /dev/null +++ b/packages/builder-react-native/_/index.ts @@ -0,0 +1 @@ +export * from "./internal-types"; diff --git a/packages/builder-react-native/_/internal-types.ts b/packages/builder-react-native/_/internal-types.ts new file mode 100644 index 00000000..e0594397 --- /dev/null +++ b/packages/builder-react-native/_/internal-types.ts @@ -0,0 +1,2 @@ +export type Stringish = string; +export type mixed = "mixed"; diff --git a/packages/builder-react-native/index.ts b/packages/builder-react-native/index.ts new file mode 100644 index 00000000..f47f842e --- /dev/null +++ b/packages/builder-react-native/index.ts @@ -0,0 +1,7 @@ +export * from "./rn-import-specifications"; +export * from "./rn-widgets"; + +// building strategies +export * from "./rn-build-inline-style-widget"; +export * from "./rn-build-stylesheet-widget"; +export * from "./rn-build-styled-component-widget"; diff --git a/packages/builder-react-native/package.json b/packages/builder-react-native/package.json new file mode 100644 index 00000000..af0c6f71 --- /dev/null +++ b/packages/builder-react-native/package.json @@ -0,0 +1,14 @@ +{ + "name": "@web-builder/react-native", + "description": "Grida's React Native code builder for development automation built uppon coli", + "version": "0.67.0", + "license": "Apache 2.0", + "homepage": "https://coli.codes/react-native", + "author": "Grida Authors", + "dependencies": { + "@web-builder/react-core": "17.0.2" + }, + "devDependencies": { + "@types/react-native": "^0.66.16" + } +} diff --git a/packages/builder-react-native/rn-build-inline-style-widget/from-static-widget-tree.ts b/packages/builder-react-native/rn-build-inline-style-widget/from-static-widget-tree.ts new file mode 100644 index 00000000..28969d86 --- /dev/null +++ b/packages/builder-react-native/rn-build-inline-style-widget/from-static-widget-tree.ts @@ -0,0 +1,23 @@ +import { JsxWidget } from "@web-builder/core"; +import { + react as react_config, + reactnative as reactnative_config, +} from "@designto/config"; +import { ReactNativeInlineStyleBuilder } from "./rn-inline-style-module-builder"; + +export function finalizeReactNativeWidget_InlineStyle( + entry: JsxWidget, + { + styling, + exporting, + }: { + styling: reactnative_config.ReactNativeInlineStyleConfig; + exporting: react_config.ReactComponentExportingCofnig; + } +) { + const builder = new ReactNativeInlineStyleBuilder({ + entry, + config: styling, + }); + return builder.asExportableModule().finalize(exporting); +} diff --git a/packages/builder-react-native/rn-build-inline-style-widget/index.ts b/packages/builder-react-native/rn-build-inline-style-widget/index.ts new file mode 100644 index 00000000..1fc769f7 --- /dev/null +++ b/packages/builder-react-native/rn-build-inline-style-widget/index.ts @@ -0,0 +1 @@ +export * from "./from-static-widget-tree"; diff --git a/packages/builder-react-native/rn-build-inline-style-widget/rn-inline-style-module-builder.ts b/packages/builder-react-native/rn-build-inline-style-widget/rn-inline-style-module-builder.ts new file mode 100644 index 00000000..379a57fc --- /dev/null +++ b/packages/builder-react-native/rn-build-inline-style-widget/rn-inline-style-module-builder.ts @@ -0,0 +1,194 @@ +import { ReservedKeywordPlatformPresets } from "@coli.codes/naming/reserved"; +import { + react as react_config, + reactnative as reactnative_config, +} from "@designto/config"; +import type { JsxWidget } from "@web-builder/core"; +import { + react_imports, + ReactWidgetModuleExportable, + makeReactModuleFile, +} from "@web-builder/react-core"; +import { + buildJsx, + getWidgetStylesConfigMap, + JSXWithoutStyleElementConfig, + JSXWithStyleElementConfig, + WidgetStyleConfigMap, +} from "@web-builder/core/builders"; +import { + BlockStatement, + Identifier, + ImportDeclaration, + JSXAttribute, + ObjectLiteralExpression, + PropertyAssignment, + Return, + ScopedVariableNamer, + TemplateLiteral, +} from "coli"; +import { cssToJson } from "@web-builder/styles/_utils"; +import { CSSProperties } from "@coli.codes/css"; +import { reactnative_imports } from ".."; + +/** + * CSS In JS Style builder for React Framework + * + * + * css in js is a pattern that allows you to use css as a object in jsx, to property `style`. + * + * ```tsx + * // output be like... + *
+ * ``` + * + */ +export class ReactNativeInlineStyleBuilder { + private readonly entry: JsxWidget; + private readonly widgetName: string; + readonly config: reactnative_config.ReactNativeInlineStyleConfig; + private readonly namer: ScopedVariableNamer; + private readonly stylesConfigWidgetMap: WidgetStyleConfigMap; + + constructor({ + entry, + config, + }: { + entry: JsxWidget; + config: reactnative_config.ReactNativeInlineStyleConfig; + }) { + this.entry = entry; + this.widgetName = entry.key.name; + this.config = config; + this.namer = new ScopedVariableNamer( + entry.key.id, + ReservedKeywordPlatformPresets.react + ); + this.stylesConfigWidgetMap = getWidgetStylesConfigMap(entry, { + namer: this.namer, + rename_tag: false, + }); + } + + private stylesConfig( + id: string + ): JSXWithStyleElementConfig | JSXWithoutStyleElementConfig { + return this.stylesConfigWidgetMap.get(id); + } + + private jsxBuilder(widget: JsxWidget) { + return buildJsx( + widget, + { + styledConfig: (id) => { + const cfg = this.stylesConfig(id); + const _default_attr = cfg.attributes; + + const existingstyleattr = _default_attr?.find( + // where style refers to react-native's jsx style attribute + (a) => a.name.name === "style" + ); + + let style: JSXAttribute; + if (existingstyleattr) { + // ignore this case. (element already with style attriibute may be svg element) + // this case is not supported. (should supported if the logic changes) + } else { + // + const styledata: CSSProperties = + (cfg as JSXWithStyleElementConfig).style ?? {}; + const reactStyleData = cssToJson(styledata); + const properties: PropertyAssignment[] = Object.keys( + reactStyleData + ).map( + (key) => + new PropertyAssignment({ + name: key as unknown as Identifier, + initializer: new TemplateLiteral(reactStyleData[key]), + }) + ); + + style = new JSXAttribute( + "style", + new BlockStatement( + new ObjectLiteralExpression({ + properties: properties, + }) + ) + ); + } + + const newattributes = [ + ...(_default_attr ?? []), + // + style, + ]; + + cfg.attributes = newattributes; + + return cfg; + }, + }, + { + self_closing_if_possible: true, + } + ); + } + + partImports() { + return [ + react_imports.import_react_from_react, + reactnative_imports.import_react_prepacked, + ]; + } + + partBody(): BlockStatement { + let jsxTree = this.jsxBuilder(this.entry); + return new BlockStatement(new Return(jsxTree)); + } + + asExportableModule() { + const body = this.partBody(); + const imports = this.partImports(); + return new ReactNativeInlineStyleWidgetModuleExportable(this.widgetName, { + body, + imports, + }); + } +} + +export class ReactNativeInlineStyleWidgetModuleExportable extends ReactWidgetModuleExportable { + constructor( + name, + { + body, + imports, + }: { + body: BlockStatement; + imports: ImportDeclaration[]; + } + ) { + super({ + name, + body, + imports, + }); + } + + asFile({ + exporting, + }: { + exporting: react_config.ReactComponentExportingCofnig; + }) { + return makeReactModuleFile({ + name: this.name, + path: "src/components", + imports: this.imports, + declarations: [], + body: this.body, + config: { + exporting: exporting, + }, + }); + } +} diff --git a/packages/builder-react-native/rn-build-styled-component-widget/from-static-widget-tree.ts b/packages/builder-react-native/rn-build-styled-component-widget/from-static-widget-tree.ts new file mode 100644 index 00000000..8ebc9021 --- /dev/null +++ b/packages/builder-react-native/rn-build-styled-component-widget/from-static-widget-tree.ts @@ -0,0 +1,30 @@ +import { JsxWidget } from "@web-builder/core"; +import { ReactComponentExportResult } from "@web-builder/react-core"; +import { + reactnative as rn_config, + react as react_config, +} from "@designto/config"; +import { ReactNativeStyledComponentsModuleBuilder } from "./rn-styled-components-module-builder"; + +/** + * standard `StyleSheet.create` pattern for react-native + * @todo - this is not fully implemented + * @param entry + * @returns + */ +export function finalizeReactNativeWidget_StyledComponents( + entry: JsxWidget, + { + styling, + exporting, + }: { + styling: rn_config.ReactNativeStyledComponentsConfig; + exporting: react_config.ReactComponentExportingCofnig; + } +): ReactComponentExportResult { + const builder = new ReactNativeStyledComponentsModuleBuilder({ + entry, + config: styling, + }); + return builder.asExportableModule().finalize(exporting); +} diff --git a/packages/builder-react-native/rn-build-styled-component-widget/index.ts b/packages/builder-react-native/rn-build-styled-component-widget/index.ts new file mode 100644 index 00000000..1fc769f7 --- /dev/null +++ b/packages/builder-react-native/rn-build-styled-component-widget/index.ts @@ -0,0 +1 @@ +export * from "./from-static-widget-tree"; diff --git a/packages/builder-react-native/rn-build-styled-component-widget/rn-styled-components-module-builder.ts b/packages/builder-react-native/rn-build-styled-component-widget/rn-styled-components-module-builder.ts new file mode 100644 index 00000000..a95de471 --- /dev/null +++ b/packages/builder-react-native/rn-build-styled-component-widget/rn-styled-components-module-builder.ts @@ -0,0 +1,176 @@ +import { ScopedVariableNamer } from "@coli.codes/naming"; +import { ReservedKeywordPlatformPresets } from "@coli.codes/naming/reserved"; +import { BlockStatement, ImportDeclaration, Return } from "coli"; +import { + react_imports, + makeReactModuleFile, + ReactWidgetModuleExportable, + emotion_styled_imports, + styled_components_imports, +} from "@web-builder/react-core"; +import { JsxWidget } from "@web-builder/core"; +import { + buildJsx, + getWidgetStylesConfigMap, + WidgetStyleConfigMap, +} from "@web-builder/core/builders"; +import { + react as react_config, + reactnative as rn_config, +} from "@designto/config"; +import { reactnative_imports } from "../rn-import-specifications"; +import { + NoStyleJSXElementConfig, + StyledComponentJSXElementConfig, + StyledComponentDeclaration, +} from "@web-builder/styled"; + +export class ReactNativeStyledComponentsModuleBuilder { + private readonly entry: JsxWidget; + private readonly widgetName: string; + private readonly styledConfigWidgetMap: WidgetStyleConfigMap; + private readonly namer: ScopedVariableNamer; + readonly config: rn_config.ReactNativeStyledComponentsConfig; + + constructor({ + entry, + config, + }: { + entry: JsxWidget; + config: rn_config.ReactNativeStyledComponentsConfig; + }) { + this.entry = entry; + this.widgetName = entry.key.name; + this.namer = new ScopedVariableNamer( + entry.key.id, + ReservedKeywordPlatformPresets.react + ); + this.styledConfigWidgetMap = getWidgetStylesConfigMap(entry, { + namer: this.namer, + rename_tag: true /** styled component tag shoule be renamed */, + }); + this.config = config; + } + + private styledConfig( + id: string + ): StyledComponentJSXElementConfig | NoStyleJSXElementConfig { + return this.styledConfigWidgetMap.get(id); + } + + private jsxBuilder(widget: JsxWidget) { + return buildJsx( + widget, + { + styledConfig: (id) => this.styledConfig(id), + }, + { + self_closing_if_possible: true, + } + ); + } + + partImports() { + return [ + this.partImportReact(), + this.partImportReactNative(), + this.partImportStyled(), + ]; + } + + partImportStyled() { + switch (this.config.module) { + case "@emotion/native": + return emotion_styled_imports.import_styled_from_emotion_native; + case "styled-components/native": + return styled_components_imports.import_styled_from_styled_components_native; + } + } + + partImportReact() { + return react_imports.import_react_from_react; + } + + partImportReactNative() { + return reactnative_imports.import_react_prepacked; + } + + partBody(): BlockStatement { + let jsxTree = this.jsxBuilder(this.entry); + return new BlockStatement(new Return(jsxTree)); + } + + partDeclarations() { + return Array.from(this.styledConfigWidgetMap.keys()) + .map((k) => { + return ( + this.styledConfigWidgetMap.get(k) as StyledComponentJSXElementConfig + ).styledComponent; + }) + .filter((s) => s); + } + + asExportableModule() { + const body = this.partBody(); + const imports = this.partImports(); + const styled_declarations = this.partDeclarations(); + return new ReactNativeStyledComponentWidgetModuleExportable( + this.widgetName, + { + body, + imports, + declarations: styled_declarations, + }, + { + dependencies: ["react", this.config.module], + } + ); + } +} + +export class ReactNativeStyledComponentWidgetModuleExportable extends ReactWidgetModuleExportable { + readonly declarations: StyledComponentDeclaration[]; + + constructor( + name, + { + body, + imports, + declarations, + }: { + body: BlockStatement; + imports: ImportDeclaration[]; + declarations: StyledComponentDeclaration[]; + }, + { + dependencies = [], + }: { + dependencies?: string[]; + } + ) { + super({ + name, + body, + imports, + }); + + this.declarations = declarations; + } + + asFile({ + exporting, + }: { + exporting: react_config.ReactComponentExportingCofnig; + }) { + return makeReactModuleFile({ + name: this.name, + path: "src/components", + imports: this.imports, + declarations: this.declarations, + body: this.body, + config: { + exporting: exporting, + }, + }); + } +} diff --git a/packages/builder-react-native/rn-build-stylesheet-widget/from-static-widget-tree.ts b/packages/builder-react-native/rn-build-stylesheet-widget/from-static-widget-tree.ts new file mode 100644 index 00000000..699adbf0 --- /dev/null +++ b/packages/builder-react-native/rn-build-stylesheet-widget/from-static-widget-tree.ts @@ -0,0 +1,30 @@ +import { JsxWidget, StylableJsxWidget } from "@web-builder/core"; +import { ReactComponentExportResult } from "@web-builder/react-core"; +import { + reactnative as rn_config, + react as react_config, +} from "@designto/config"; +import { ReactNativeStyleSheetModuleBuilder } from "./rn-style-sheet-module-builder"; + +/** + * standard `StyleSheet.create` pattern for react-native + * @todo - this is not fully implemented + * @param entry + * @returns + */ +export function finalizeReactNativeWidget_StyleSheet( + entry: JsxWidget, + { + styling, + exporting, + }: { + styling: rn_config.ReactNativeStyleSheetConfig; + exporting: react_config.ReactComponentExportingCofnig; + } +): ReactComponentExportResult { + const builder = new ReactNativeStyleSheetModuleBuilder({ + entry, + config: styling, + }); + return builder.asExportableModule().finalize(exporting); +} diff --git a/packages/builder-react-native/rn-build-stylesheet-widget/index.ts b/packages/builder-react-native/rn-build-stylesheet-widget/index.ts new file mode 100644 index 00000000..6368b8c3 --- /dev/null +++ b/packages/builder-react-native/rn-build-stylesheet-widget/index.ts @@ -0,0 +1,2 @@ +export * from "./from-static-widget-tree"; +export * from "./rn-style-sheet-module-builder"; diff --git a/packages/builder-react-native/rn-build-stylesheet-widget/rn-style-sheet-module-builder.ts b/packages/builder-react-native/rn-build-stylesheet-widget/rn-style-sheet-module-builder.ts new file mode 100644 index 00000000..8ef4d621 --- /dev/null +++ b/packages/builder-react-native/rn-build-stylesheet-widget/rn-style-sheet-module-builder.ts @@ -0,0 +1,206 @@ +import { ScopedVariableNamer } from "@coli.codes/naming"; +import { ReservedKeywordPlatformPresets } from "@coli.codes/naming/reserved"; +import { + BlockStatement, + Declaration, + Identifier, + ImportDeclaration, + JSXAttribute, + PropertyAccessExpression, + PropertySignature, + Return, +} from "coli"; +import { + react_imports, + makeReactModuleFile, + ReactWidgetModuleExportable, +} from "@web-builder/react-core"; +import { JsxWidget } from "@web-builder/core"; +import { + buildJsx, + getWidgetStylesConfigMap, + JSXWithoutStyleElementConfig, + JSXWithStyleElementConfig, + WidgetStyleConfigMap, +} from "@web-builder/core/builders"; +import { + react as react_config, + reactnative as rn_config, +} from "@designto/config"; +import { reactnative_imports } from "../rn-import-specifications"; +import { StyleSheetDeclaration } from "../rn-style-sheet"; + +export class ReactNativeStyleSheetModuleBuilder { + private readonly entry: JsxWidget; + private readonly widgetName: string; + private readonly stylesConfigWidgetMap: WidgetStyleConfigMap; + private readonly namer: ScopedVariableNamer; + readonly config: rn_config.ReactNativeStyleSheetConfig; + + constructor({ + entry, + config, + }: { + entry: JsxWidget; + config: rn_config.ReactNativeStyleSheetConfig; + }) { + this.entry = entry; + this.widgetName = entry.key.name; + this.namer = new ScopedVariableNamer( + entry.key.id, + ReservedKeywordPlatformPresets.react + ); + this.stylesConfigWidgetMap = getWidgetStylesConfigMap(entry, { + namer: this.namer, + rename_tag: false /** rn StyleSheet tag shoule not be renamed */, + }); + this.config = config; + } + + private stylesConfig( + id: string + ): JSXWithStyleElementConfig | JSXWithoutStyleElementConfig { + return this.stylesConfigWidgetMap.get(id); + } + + private jsxBuilder(widget: JsxWidget) { + // e.g. const styles = StyleSheet.create({...}); + const stylesheetDeclarationIdentifier = new Identifier("styles"); + const style_attr_name = "style"; + + return buildJsx( + widget, + { + styledConfig: (id) => { + const cfg = this.stylesConfig(id); + const _default_attr = cfg.attributes; + + const existing_classname_attr = _default_attr?.find( + // where style refers to react's jsx style attribute + (a) => a.name.name === style_attr_name + ); + + let styleAttr: JSXAttribute; + if (existing_classname_attr) { + // ignore this case. (element already with style attriibute may be svg element) + // this case is not supported. (should supported if the logic changes) + } else { + styleAttr = new JSXAttribute( + style_attr_name, + new BlockStatement( + new PropertyAccessExpression( + new PropertySignature({ + name: stylesheetDeclarationIdentifier, + }), + // TODO: this currently generates styles.ClassName, but it also should be compatible with + // - styles.className + // - styles.["class-name"] + cfg.id + ) + ) + ); + } + + const newattributes = [ + ...(_default_attr ?? []), + // + styleAttr, + ]; + + cfg.attributes = newattributes; + + return cfg; + }, + }, + { + self_closing_if_possible: true, + } + ); + } + + partImports(): Array { + return [this.partImportReact(), this.partImportReactNative()]; + } + + partImportReact(): ImportDeclaration { + return react_imports.import_react_from_react; + } + + partImportReactNative(): ImportDeclaration { + return reactnative_imports.import_react_prepacked; + } + + partBody(): BlockStatement { + let jsxTree = this.jsxBuilder(this.entry); + return new BlockStatement(new Return(jsxTree)); + } + + partStyleSheetDeclaration(): StyleSheetDeclaration { + const styles = Array.from(this.stylesConfigWidgetMap.keys()).reduce( + (p, c) => { + const cfg = this.stylesConfig(c); + return { + ...p, + [cfg.id]: "style" in cfg && cfg.style, + }; + }, + {} + ); + + return new StyleSheetDeclaration("styles", { + styles: styles, + }); + } + + asExportableModule() { + const body = this.partBody(); + const imports = this.partImports(); + const declarations = this.partStyleSheetDeclaration(); + return new ReactStyleSheeteWidgetModuleExportable(this.widgetName, { + body, + imports, + stylesheetDeclaraion: declarations, + }); + } +} + +export class ReactStyleSheeteWidgetModuleExportable extends ReactWidgetModuleExportable { + readonly declarations: Declaration[]; + constructor( + name, + { + body, + imports, + stylesheetDeclaraion, + }: { + body: BlockStatement; + imports: ImportDeclaration[]; + stylesheetDeclaraion: StyleSheetDeclaration; + } + ) { + super({ + name, + body, + imports, + }); + + this.declarations = [stylesheetDeclaraion]; + } + + asFile({ + exporting, + }: { + exporting: react_config.ReactComponentExportingCofnig; + }) { + return makeReactModuleFile({ + name: this.name, + path: "src/components", + imports: this.imports, + declarations: this.declarations, + body: this.body, + config: { + exporting: exporting, + }, + }); + } +} diff --git a/packages/builder-react-native/rn-import-specifications/index.ts b/packages/builder-react-native/rn-import-specifications/index.ts new file mode 100644 index 00000000..c71b4996 --- /dev/null +++ b/packages/builder-react-native/rn-import-specifications/index.ts @@ -0,0 +1,3 @@ +export * from "./rn-default"; +export * from "./react-native-linear-gradient"; +export * from "./react-native-svg"; diff --git a/packages/builder-react-native/rn-import-specifications/react-native-linear-gradient.ts b/packages/builder-react-native/rn-import-specifications/react-native-linear-gradient.ts new file mode 100644 index 00000000..d73e57a7 --- /dev/null +++ b/packages/builder-react-native/rn-import-specifications/react-native-linear-gradient.ts @@ -0,0 +1,20 @@ +import { Import } from "coli"; + +const _react_native_linear_gradient_lib = { + name: "react-native-linear-gradient", + version: "2.5.6", + website: + "https://github.com/react-native-linear-gradient/react-native-linear-gradient", +}; + +/** + * CoLI: `import LinearGradient from "react-native-linear-gradient";` + * + * - [github:react-native-linear-gradient](https://github.com/react-native-linear-gradient/react-native-linear-gradient) + * - [npm:react-native-linear-gradient](https://www.npmjs.com/package/react-native-linear-gradient) + */ +export const import_lineargradient_from_react_native_linear_gradient = + new Import() + .importDefault("LinearGradient") + .from(_react_native_linear_gradient_lib.name) + .make(); diff --git a/packages/builder-react-native/rn-import-specifications/react-native-svg.ts b/packages/builder-react-native/rn-import-specifications/react-native-svg.ts new file mode 100644 index 00000000..0d16538a --- /dev/null +++ b/packages/builder-react-native/rn-import-specifications/react-native-svg.ts @@ -0,0 +1,26 @@ +import { Import } from "coli"; + +const _react_native_svg_lib = { + name: "react-native-svg", + version: "12.1.1", + website: "https://github.com/react-native-svg/react-native-svg", +}; + +/** + * CoLI: `import Svg, { Path } from "react-native-svg";` + * - [github:react-native-svg](https://github.com/react-native-svg/react-native-svg) + * - [npm:react-native-svg](https://www.npmjs.com/package/react-native-svg) + */ +export const import_svg_and_path_from_react_native_svg = new Import() + .imports("StyleSheet") + .and("Text") + .and("View") + .from(_react_native_svg_lib.name) + .make(); + +/** + * CoLI: `import { SvgXml } from "react-native-svg";` + */ +export const import_svgxml_from_react_native_svg = new Import() + .imports("SvgXml") + .from(_react_native_svg_lib.name); diff --git a/packages/builder-react-native/rn-import-specifications/rn-default.ts b/packages/builder-react-native/rn-import-specifications/rn-default.ts new file mode 100644 index 00000000..b1a4116a --- /dev/null +++ b/packages/builder-react-native/rn-import-specifications/rn-default.ts @@ -0,0 +1,83 @@ +import { standard_libraries } from "@web-builder/nodejs"; +import { Import, ImportDeclaration, ImportSpecifier } from "coli"; + +const import_stylesheet_text_view_from_react_native = new Import() + .imports("StyleSheet") + .and("Text") + .and("View") + .from(standard_libraries.react_native.name) + .make(); + +/** + * set param to true to add on imports + * @returns {ImportDeclaration} + * + * Lrean more: + * - [react-native/inde.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-native/index.d.ts) + */ +export const reactnative_import = ({ + ...props +}: { + StyleSheet?: boolean; + View?: boolean; + Text?: boolean; + Image?: boolean; + Modal?: boolean; + Pressable?: boolean; + StatusBar?: boolean; + TouchableHighlight?: boolean; + TouchableOpacity?: boolean; + TouchableWithoutFeedback?: boolean; + VirtualizedList?: boolean; + ImageBackground?: boolean; + Button?: boolean; + ScrollView?: boolean; + TextInput?: boolean; + SafeareaView?: boolean; + Alert?: boolean; + Switch?: boolean; + RefreshControl?: boolean; + Slider?: boolean; +}) => { + // make import keywords if props are true + const imports: string[] = []; + if (props.StyleSheet) imports.push("StyleSheet"); + if (props.View) imports.push("View"); + if (props.Text) imports.push("Text"); + if (props.Image) imports.push("Image"); + if (props.Modal) imports.push("Modal"); + if (props.Pressable) imports.push("Pressable"); + if (props.StatusBar) imports.push("StatusBar"); + if (props.TouchableHighlight) imports.push("TouchableHighlight"); + if (props.TouchableOpacity) imports.push("TouchableOpacity"); + if (props.TouchableWithoutFeedback) imports.push("TouchableWithoutFeedback"); + if (props.VirtualizedList) imports.push("VirtualizedList"); + if (props.ImageBackground) imports.push("ImageBackground"); + if (props.Button) imports.push("Button"); + if (props.ScrollView) imports.push("ScrollView"); + if (props.TextInput) imports.push("TextInput"); + if (props.SafeareaView) imports.push("SafeareaView"); + if (props.Alert) imports.push("Alert"); + if (props.Switch) imports.push("Switch"); + if (props.RefreshControl) imports.push("RefreshControl"); + if (props.Slider) imports.push("Slider"); + + if (imports.length === 0) return null; + + return new ImportDeclaration({ + specifiers: imports.map((i) => new ImportSpecifier({ import: i })), + source: standard_libraries.react_native.name, + }); +}; + +/** + * pre-built import combinations of [`React`, `useState`, `useEffect`] + */ +export const reactnative_imports = { + /** + * all necessary imports at once for development convenience + * + * `import { StyleSheet, Text, View } from "react-native";` + */ + import_react_prepacked: import_stylesheet_text_view_from_react_native, +}; diff --git a/packages/builder-react-native/rn-linear-gradient/README.md b/packages/builder-react-native/rn-linear-gradient/README.md new file mode 100644 index 00000000..d87dcfec --- /dev/null +++ b/packages/builder-react-native/rn-linear-gradient/README.md @@ -0,0 +1 @@ +# react-native-linear-gradient diff --git a/packages/builder-react-native/rn-native-widgets/README.md b/packages/builder-react-native/rn-native-widgets/README.md new file mode 100644 index 00000000..4f9b78fe --- /dev/null +++ b/packages/builder-react-native/rn-native-widgets/README.md @@ -0,0 +1,8 @@ +# React Native Core Components Directory + +> A [CoLI](https://coli.codes) Bind of React Native Core Components. + +https://reactnative.dev/docs/components-and-apis + +Not all components may be declared under this directory. +This directory only contribytes to UI Related, Widget-like components. (Not Hardware related API nor Animation related API) diff --git a/packages/builder-react-native/rn-native-widgets/index.ts b/packages/builder-react-native/rn-native-widgets/index.ts new file mode 100644 index 00000000..d4fd6b8e --- /dev/null +++ b/packages/builder-react-native/rn-native-widgets/index.ts @@ -0,0 +1,13 @@ +// export * from "./rn-activity-indicator"; +// export * from "./rn-alert"; +// export * from "./rn-button"; +// export * from "./rn-flat-list"; +// export * from "./rn-image"; +// export * from "./rn-pressable"; +// export * from "./rn-refresh-control"; +// export * from "./rn-safe-area-view"; +// export * from "./rn-scroll-view"; +// export * from "./rn-switch"; +export * from "./rn-text"; +// export * from "./rn-text-input"; +export * from "./rn-view"; diff --git a/packages/builder-react-native/rn-native-widgets/rn-activity-indicator.ts b/packages/builder-react-native/rn-native-widgets/rn-activity-indicator.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-alert.ts b/packages/builder-react-native/rn-native-widgets/rn-alert.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-button.ts b/packages/builder-react-native/rn-native-widgets/rn-button.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-flat-list.ts b/packages/builder-react-native/rn-native-widgets/rn-flat-list.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-image.ts b/packages/builder-react-native/rn-native-widgets/rn-image.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-pressable.ts b/packages/builder-react-native/rn-native-widgets/rn-pressable.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-refresh-control.ts b/packages/builder-react-native/rn-native-widgets/rn-refresh-control.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-safe-area-view.ts b/packages/builder-react-native/rn-native-widgets/rn-safe-area-view.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-scroll-view.ts b/packages/builder-react-native/rn-native-widgets/rn-scroll-view.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-switch.ts b/packages/builder-react-native/rn-native-widgets/rn-switch.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-text-input.ts b/packages/builder-react-native/rn-native-widgets/rn-text-input.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/builder-react-native/rn-native-widgets/rn-text.ts b/packages/builder-react-native/rn-native-widgets/rn-text.ts new file mode 100644 index 00000000..c2971036 --- /dev/null +++ b/packages/builder-react-native/rn-native-widgets/rn-text.ts @@ -0,0 +1,89 @@ +/// +/// React Native Text +/// copyright © 2022 Grida, Inc. +/// + +import type { mixed } from "../_"; +import type { + RNReactNode, + RNPressEvent, + RNLayoutEvent, + RNTextLayoutEvent, +} from "../_/fixme-types"; +import type { TextStyle, TextProps } from "react-native"; + +/** + * + * React Native Text Props interface + * + * @see https://reactnative.dev/docs/text#reference + * + * - [react-nattive/TextProps.js](https://github.com/facebook/react-native/blob/8bd3edec88148d0ab1f225d2119435681fbbba33/Libraries/Text/TextProps.js) + */ +export type RNTextProps = Omit< + TextProps, + | "children" + | "style" + | "onLayout" + | "onLongPress" + | "onPress" + | "onPressIn" + | "onPressOut" + | "onResponderGrant" + | "onResponderMove" + | "onResponderRelease" + | "onResponderTerminate" + | "onResponderTerminationRequest" + | "onStartShouldSetResponder" + | "onMoveShouldSetResponder" + | "onTextLayout" +> & { + children?: RNReactNode | null | undefined; + + /** + * Invoked on mount and layout changes. + * + * See https://reactnative.dev/docs/text#onlayout + */ + onLayout?: ((event: RNLayoutEvent) => mixed) | null | undefined; + + /** + * This function is called on long press. + * + * See https://reactnative.dev/docs/text#onlongpress + */ + onLongPress?: ((event: RNPressEvent) => mixed) | null | undefined; + + /** + * This function is called on press. + * + * See https://reactnative.dev/docs/text#onpress + */ + onPress?: ((event: RNPressEvent) => mixed) | null | undefined; + onPressIn?: ((event: RNPressEvent) => mixed) | null | undefined; + onPressOut?: ((event: RNPressEvent) => mixed) | null | undefined; + onResponderGrant?: ((event: RNPressEvent) => void) | null | undefined; + onResponderMove?: ((event: RNPressEvent) => void) | null | undefined; + onResponderRelease?: ((event: RNPressEvent) => void) | null | undefined; + onResponderTerminate?: ((event: RNPressEvent) => void) | null | undefined; + onResponderTerminationRequest?: (() => boolean) | null | undefined; + onStartShouldSetResponder?: (() => boolean) | null | undefined; + onMoveShouldSetResponder?: (() => boolean) | null | undefined; + onTextLayout?: ((event: RNTextLayoutEvent) => mixed) | null | undefined; + + style?: TextStyle | null | undefined; +}; + +/** + * React Native Text + * + * + * @see https://reactnative.dev/docs/text#reference + * + * origin source + * - [react-nattive/Text.js](https://github.com/facebook/react-native/blob/3e229f27bc9c7556876ff776abf70147289d544b/Libraries/Text/Text.js) + * - [react-nattive/TextProps.js](https://github.com/facebook/react-native/blob/8bd3edec88148d0ab1f225d2119435681fbbba33/Libraries/Text/TextProps.js) + */ +export class RNText implements RNTextProps { + constructor({ ...props }: RNTextProps) {} +} diff --git a/packages/builder-react-native/rn-native-widgets/rn-view.ts b/packages/builder-react-native/rn-native-widgets/rn-view.ts new file mode 100644 index 00000000..2ac08895 --- /dev/null +++ b/packages/builder-react-native/rn-native-widgets/rn-view.ts @@ -0,0 +1,499 @@ +import type { mixed, Stringish } from "../_"; +import type { + RNReactNode, + RNMouseEvent, + RNPressEvent, + RNBlurEvent, + RNFocusEvent, + RNAccessibilityActionEvent, + RNLayoutEvent, +} from "../_/fixme-types"; +import type { + RNAccessibilityActionInfo, + RNAccessibilityRole, + RNAccessibilityState, + RNAccessibilityValue, +} from "../rn-view"; +import type { ViewStyle, Insets } from "react-native"; + +type RNBubblingEventProps = Readonly<{ + onBlur?: (event: RNBlurEvent) => mixed; + onFocus?: (event: RNFocusEvent) => mixed; +}>; + +type RNDirectEventProps = Readonly<{ + /** + * When `accessible` is true, the system will try to invoke this function + * when the user performs an accessibility custom action. + * + */ + onAccessibilityAction?: (event: RNAccessibilityActionEvent) => mixed; + + /** + * When `accessible` is true, the system will try to invoke this function + * when the user performs accessibility tap gesture. + * + * See https://reactnative.dev/docs/view#onaccessibilitytap + */ + onAccessibilityTap?: () => mixed; + + /** + * Invoked on mount and layout changes with: + * + * `{nativeEvent: { layout: {x, y, width, height}}}` + * + * This event is fired immediately once the layout has been calculated, but + * the new layout may not yet be reflected on the screen at the time the + * event is received, especially if a layout animation is in progress. + * + * See https://reactnative.dev/docs/view#onlayout + */ + onLayout?: (event: RNLayoutEvent) => mixed; + + /** + * When `accessible` is `true`, the system will invoke this function when the + * user performs the magic tap gesture. + * + * See https://reactnative.dev/docs/view#onmagictap + */ + onMagicTap?: () => mixed; + + /** + * When `accessible` is `true`, the system will invoke this function when the + * user performs the escape gesture. + * + * See https://reactnative.dev/docs/view#onaccessibilityescape + */ + onAccessibilityEscape?: () => mixed; +}>; + +type RNMouseEventProps = Readonly<{ + onMouseEnter?: (event: RNMouseEvent) => void; + onMouseLeave?: (event: RNMouseEvent) => void; +}>; + +type RNTouchEventProps = Readonly<{ + onTouchCancel?: (e: RNPressEvent) => void; + onTouchCancelCapture?: (e: RNPressEvent) => void; + onTouchEnd?: (e: RNPressEvent) => void; + onTouchEndCapture?: (e: RNPressEvent) => void; + onTouchMove?: (e: RNPressEvent) => void; + onTouchMoveCapture?: (e: RNPressEvent) => void; + onTouchStart?: (e: RNPressEvent) => void; + onTouchStartCapture?: (e: RNPressEvent) => void; +}>; + +type RNPointerEvents = "auto" | "box-none" | "box-only" | "none"; + +type RNAndroidDrawableThemeAttr = Readonly<{ + type: "ThemeAttrAndroid"; + attribute: string; +}>; + +type RNAndroidDrawableRipple = Readonly<{ + type: "RippleAndroid"; + color?: number; + borderless?: boolean; + rippleRadius?: number; +}>; + +type RNAndroidDrawable = RNAndroidDrawableThemeAttr | RNAndroidDrawableRipple; + +type RNAndroidViewProps = Readonly<{ + nativeBackgroundAndroid?: RNAndroidDrawable; + nativeForegroundAndroid?: RNAndroidDrawable; + + /** + * Whether this `View` should render itself (and all of its children) into a + * single hardware texture on the GPU. + * + * @platform android + * + * See https://reactnative.dev/docs/view#rendertohardwaretextureandroid + */ + renderToHardwareTextureAndroid?: boolean; + + /** + * Whether this `View` needs to rendered offscreen and composited with an + * alpha in order to preserve 100% correct colors and blending behavior. + * + * @platform android + * + * See https://reactnative.dev/docs/view#needsoffscreenalphacompositing + */ + needsOffscreenAlphaCompositing?: boolean; + + /** + * Indicates to accessibility services whether the user should be notified + * when this view changes. Works for Android API >= 19 only. + * + * @platform android + * + * See https://reactnative.dev/docs/view#accessibilityliveregion + */ + accessibilityLiveRegion?: "none" | "polite" | "assertive"; + + /** + * Controls how view is important for accessibility which is if it + * fires accessibility events and if it is reported to accessibility services + * that query the screen. Works for Android only. + * + * @platform android + * + * See https://reactnative.dev/docs/view#importantforaccessibility + */ + importantForAccessibility?: "auto" | "yes" | "no" | "no-hide-descendants"; + + /** + * Whether to force the Android TV focus engine to move focus to this view. + * + * @platform android + */ + hasTVPreferredFocus?: boolean; + + /** + * TV next focus down (see documentation for the View component). + * + * @platform android + */ + nextFocusDown?: number; + + /** + * TV next focus forward (see documentation for the View component). + * + * @platform android + */ + nextFocusForward?: number; + + /** + * TV next focus left (see documentation for the View component). + * + * @platform android + */ + nextFocusLeft?: number; + + /** + * TV next focus right (see documentation for the View component). + * + * @platform android + */ + nextFocusRight?: number; + + /** + * TV next focus up (see documentation for the View component). + * + * @platform android + */ + nextFocusUp?: number; + + /** + * Whether this `View` should be focusable with a non-touch input device, eg. receive focus with a hardware keyboard. + * + * @platform android + */ + focusable?: boolean; + + /** + * The action to perform when this `View` is clicked on by a non-touch click, eg. enter key on a hardware keyboard. + * + * @platform android + */ + onClick?: (event: RNPressEvent) => mixed; +}>; + +type RNIOSViewProps = Readonly<{ + /** + * Prevents view from being inverted if set to true and color inversion is turned on. + * + * @platform ios + */ + accessibilityIgnoresInvertColors?: boolean; + + /** + * A value indicating whether VoiceOver should ignore the elements + * within views that are siblings of the receiver. + * Default is `false`. + * + * @platform ios + * + * See https://reactnative.dev/docs/view#accessibilityviewismodal + */ + accessibilityViewIsModal?: boolean; + + /** + * A value indicating whether the accessibility elements contained within + * this accessibility element are hidden. + * + * @platform ios + * + * See https://reactnative.dev/docs/view#accessibilityElementsHidden + */ + accessibilityElementsHidden?: boolean; + + /** + * Whether this `View` should be rendered as a bitmap before compositing. + * + * @platform ios + * + * See https://reactnative.dev/docs/view#shouldrasterizeios + */ + shouldRasterizeIOS?: boolean; +}>; + +/** + * For most touch interactions, you'll simply want to wrap your component in + * `TouchableHighlight` or `TouchableOpacity`. Check out `Touchable.js`, + * `ScrollResponder.js` and `ResponderEventPlugin.js` for more discussion. + */ +type RNGestureResponderEventProps = Readonly<{ + /** + * Does this view want to "claim" touch responsiveness? This is called for + * every touch move on the `View` when it is not the responder. + * + * `View.props.onMoveShouldSetResponder: (event) => [true | false]`, where + * `event` is a synthetic touch event as described above. + * + * See https://reactnative.dev/docs/view#onmoveshouldsetresponder + */ + onMoveShouldSetResponder?: (e: RNPressEvent) => boolean; + + /** + * If a parent `View` wants to prevent a child `View` from becoming responder + * on a move, it should have this handler which returns `true`. + * + * `View.props.onMoveShouldSetResponderCapture: (event) => [true | false]`, + * where `event` is a synthetic touch event as described above. + * + * See https://reactnative.dev/docs/view#onMoveShouldsetrespondercapture + */ + onMoveShouldSetResponderCapture?: (e: RNPressEvent) => boolean; + + /** + * The View is now responding for touch events. This is the time to highlight + * and show the user what is happening. + * + * `View.props.onResponderGrant: (event) => {}`, where `event` is a synthetic + * touch event as described above. + * + * PanResponder includes a note `// TODO: t7467124 investigate if this can be removed` that + * should help fixing this return type. + * + * See https://reactnative.dev/docs/view#onrespondergrant + */ + onResponderGrant?: (e: RNPressEvent) => void | boolean; + + /** + * The user is moving their finger. + * + * `View.props.onResponderMove: (event) => {}`, where `event` is a synthetic + * touch event as described above. + * + * See https://reactnative.dev/docs/view#onrespondermove + */ + onResponderMove?: (e: RNPressEvent) => void; + + /** + * Another responder is already active and will not release it to that `View` + * asking to be the responder. + * + * `View.props.onResponderReject: (event) => {}`, where `event` is a + * synthetic touch event as described above. + * + * See https://reactnative.dev/docs/view#onresponderreject + */ + onResponderReject?: (e: RNPressEvent) => void; + + /** + * Fired at the end of the touch. + * + * `View.props.onResponderRelease: (event) => {}`, where `event` is a + * synthetic touch event as described above. + * + * See https://reactnative.dev/docs/view#onresponderrelease + */ + onResponderRelease?: (e: RNPressEvent) => void; + + onResponderStart?: (e: RNPressEvent) => void; + onResponderEnd?: (e: RNPressEvent) => void; + + /** + * The responder has been taken from the `View`. Might be taken by other + * views after a call to `onResponderTerminationRequest`, or might be taken + * by the OS without asking (e.g., happens with control center/ notification + * center on iOS) + * + * `View.props.onResponderTerminate: (event) => {}`, where `event` is a + * synthetic touch event as described above. + * + * See https://reactnative.dev/docs/view#onresponderterminate + */ + onResponderTerminate?: (e: RNPressEvent) => void; + + /** + * Some other `View` wants to become responder and is asking this `View` to + * release its responder. Returning `true` allows its release. + * + * `View.props.onResponderTerminationRequest: (event) => {}`, where `event` + * is a synthetic touch event as described above. + * + * See https://reactnative.dev/docs/view#onresponderterminationrequest + */ + onResponderTerminationRequest?: (e: RNPressEvent) => boolean; + + /** + * Does this view want to become responder on the start of a touch? + * + * `View.props.onStartShouldSetResponder: (event) => [true | false]`, where + * `event` is a synthetic touch event as described above. + * + * See https://reactnative.dev/docs/view#onstartshouldsetresponder + */ + onStartShouldSetResponder?: (e: RNPressEvent) => boolean; + + /** + * If a parent `View` wants to prevent a child `View` from becoming responder + * on a touch start, it should have this handler which returns `true`. + * + * `View.props.onStartShouldSetResponderCapture: (event) => [true | false]`, + * where `event` is a synthetic touch event as described above. + * + * See https://reactnative.dev/docs/view#onstartshouldsetrespondercapture + */ + onStartShouldSetResponderCapture?: (e: RNPressEvent) => boolean; +}>; + +/** + * @see https://github.com/facebook/react-native/blob/d682753244feba28c6a15c31966a3da075a090e6/Libraries/Components/View/ViewPropTypes.js + */ +export interface RNViewProps + extends RNBubblingEventProps, + RNDirectEventProps, + RNGestureResponderEventProps, + RNMouseEventProps, + RNTouchEventProps, + RNAndroidViewProps, + RNIOSViewProps { + children?: RNReactNode; + style?: ViewStyle; + + /** + * When `true`, indicates that the view is an accessibility element. + * By default, all the touchable elements are accessible. + * + * See https://reactnative.dev/docs/view#accessible + */ + accessible?: boolean; + + /** + * Overrides the text that's read by the screen reader when the user interacts + * with the element. By default, the label is constructed by traversing all + * the children and accumulating all the `Text` nodes separated by space. + * + * See https://reactnative.dev/docs/view#accessibilitylabel + */ + accessibilityLabel?: Stringish; + + /** + * An accessibility hint helps users understand what will happen when they perform + * an action on the accessibility element when that result is not obvious from the + * accessibility label. + * + * + * See https://reactnative.dev/docs/view#accessibilityHint + */ + accessibilityHint?: Stringish; + + /** + * Indicates to accessibility services to treat UI component like a specific role. + */ + accessibilityRole?: RNAccessibilityRole; + + /** + * Indicates to accessibility services that UI Component is in a specific State. + */ + accessibilityState?: RNAccessibilityState; + accessibilityValue?: RNAccessibilityValue; + + /** + * Provides an array of custom actions available for accessibility. + * + */ + accessibilityActions?: ReadonlyArray; + + /** + * Specifies the nativeID of the associated label text. When the assistive technology focuses on the component with this props, the text is read aloud. + * + * @platform android + */ + accessibilityLabelledBy?: string | Array; + + /** + * Views that are only used to layout their children or otherwise don't draw + * anything may be automatically removed from the native hierarchy as an + * optimization. Set this property to `false` to disable this optimization and + * ensure that this `View` exists in the native view hierarchy. + * + * @platform android + * In Fabric, this prop is used in ios as well. + * + * See https://reactnative.dev/docs/view#collapsable + */ + collapsable?: boolean; + + /** + * Used to locate this view in end-to-end tests. + * + * > This disables the 'layout-only view removal' optimization for this view! + * + * See https://reactnative.dev/docs/view#testid + */ + testID?: string; + + /** + * Used to locate this view from native classes. + * + * > This disables the 'layout-only view removal' optimization for this view! + * + * See https://reactnative.dev/docs/view#nativeid + */ + nativeID?: string; + + /** + * This defines how far a touch event can start away from the view. + * Typical interface guidelines recommend touch targets that are at least + * 30 - 40 points/density-independent pixels. + * + * > The touch area never extends past the parent view bounds and the Z-index + * > of sibling views always takes precedence if a touch hits two overlapping + * > views. + * + * See https://reactnative.dev/docs/view#hitslop + */ + hitSlop?: Insets; + + /** + * Controls whether the `View` can be the target of touch events. + * + * See https://reactnative.dev/docs/view#pointerevents + */ + pointerEvents?: RNPointerEvents; + + /** + * This is a special performance property exposed by `RCTView` and is useful + * for scrolling content when there are many subviews, most of which are + * offscreen. For this property to be effective, it must be applied to a + * view that contains many subviews that extend outside its bound. The + * subviews must also have `overflow: hidden`, as should the containing view + * (or one of its superviews). + * + * See https://reactnative.dev/docs/view#removeclippedsubviews + */ + removeClippedSubviews?: boolean | null; +} + +/** + * @see https://github.com/facebook/react-native/blob/8bd3edec88148d0ab1f225d2119435681fbbba33/Libraries/Components/View/View.js + */ +export class RNView implements RNViewProps { + constructor({ ...props }: RNViewProps) {} +} diff --git a/packages/builder-react-native/rn-style-sheet/README.md b/packages/builder-react-native/rn-style-sheet/README.md new file mode 100644 index 00000000..8b304447 --- /dev/null +++ b/packages/builder-react-native/rn-style-sheet/README.md @@ -0,0 +1 @@ +# React Native SyleSheet Module diff --git a/packages/builder-react-native/rn-style-sheet/index.ts b/packages/builder-react-native/rn-style-sheet/index.ts new file mode 100644 index 00000000..a037e9b6 --- /dev/null +++ b/packages/builder-react-native/rn-style-sheet/index.ts @@ -0,0 +1,2 @@ +export { StyleSheet } from "./style-sheet-builder"; +export * from "./style-sheet-declaration"; diff --git a/packages/builder-react-native/rn-style-sheet/style-sheet-builder.ts b/packages/builder-react-native/rn-style-sheet/style-sheet-builder.ts new file mode 100644 index 00000000..2a595049 --- /dev/null +++ b/packages/builder-react-native/rn-style-sheet/style-sheet-builder.ts @@ -0,0 +1,31 @@ +import { + CallExpression, + ExpressionStatement, + Identifier, + ObjectLiteralExpression, + PropertyAccessExpression, +} from "coli"; +import type { ViewStyle, TextStyle, ImageStyle } from "react-native"; + +export type _RNStyleSheetStyle = ViewStyle | TextStyle | ImageStyle; + +/** + * StlesSheet reflection builder with CoLI + */ +export class StyleSheet { + private static identifier = new Identifier("StyleSheet"); + + /** + * returns CoLI object - `StyleSheet.create({...})` + * @param style + * @returns + */ + static create(style: _RNStyleSheetStyle) { + return new CallExpression( + new PropertyAccessExpression(this.identifier, "create"), + new ObjectLiteralExpression({ + properties: style as { [key: string]: any }, + }) + ); + } +} diff --git a/packages/builder-react-native/rn-style-sheet/style-sheet-declaration.ts b/packages/builder-react-native/rn-style-sheet/style-sheet-declaration.ts new file mode 100644 index 00000000..a1b30c8e --- /dev/null +++ b/packages/builder-react-native/rn-style-sheet/style-sheet-declaration.ts @@ -0,0 +1,22 @@ +import { BlockStatement, VariableDeclaration } from "coli"; +import { SyntaxKind } from "@coli.codes/core-syntax-kind"; +import { StyleSheet, _RNStyleSheetStyle } from "./style-sheet-builder"; +import type { ViewStyle, TextStyle, ImageStyle } from "react-native"; + +type NamedStyles = { [P in keyof T]: ViewStyle | TextStyle | ImageStyle }; + +export class StyleSheetDeclaration< + T extends NamedStyles | NamedStyles +> extends VariableDeclaration { + constructor( + readonly name: string, + params: { + styles: T | NamedStyles; + } + ) { + super(name, { + initializer: StyleSheet.create(params.styles), + kind: SyntaxKind.ConstKeyword, + }); + } +} diff --git a/packages/builder-react-native/rn-styles/background.ts b/packages/builder-react-native/rn-styles/background.ts new file mode 100644 index 00000000..b81fd1d5 --- /dev/null +++ b/packages/builder-react-native/rn-styles/background.ts @@ -0,0 +1,25 @@ +import type { Background } from "@reflect-ui/core"; +import type { ViewStyle } from "react-native"; +import * as css from "@web-builder/styles"; + +export function background(bg: Background): ViewStyle { + if (!bg) { + return {}; + } + + bg = Array.isArray(bg) ? bg[0] : bg; + switch (bg.type) { + case "solid-color": { + return { + backgroundColor: css.color(bg), + }; + } + case "gradient": + case "graphics": + default: { + // gradient not supported by default on react-native + // for graphics, we need to use ImageBackground element. this can't be done by StyleSheet modification. + return {}; + } + } +} diff --git a/packages/builder-react-native/rn-styles/border.ts b/packages/builder-react-native/rn-styles/border.ts new file mode 100644 index 00000000..cd3f7f65 --- /dev/null +++ b/packages/builder-react-native/rn-styles/border.ts @@ -0,0 +1,54 @@ +import type { Border, BorderRadius } from "@reflect-ui/core"; +import type { ViewStyle } from "react-native"; +import * as css from "@web-builder/styles"; +export function border(p: Border, rad: BorderRadius): ViewStyle { + if (!p) return {}; + + let o: ViewStyle = { + borderBottomColor: p?.bottom?.color, + borderBottomEndRadius: rad?.br, + borderBottomLeftRadius: rad?.bl, + borderBottomRightRadius: rad?.br, + borderBottomStartRadius: rad?.bl, + borderBottomWidth: p?.bottom?.width, + // borderColor, + // borderEndColor, + borderLeftColor: p?.left?.color, + borderLeftWidth: p?.left?.width, + // borderRadius, + borderRightColor: p?.right?.color, + borderRightWidth: p?.right?.width, + // borderStartColor, + // borderStyle, // TODO: add border style support + borderTopColor: p?.top?.color, + borderTopEndRadius: rad?.tr, + borderTopLeftRadius: rad?.tl, + borderTopRightRadius: rad?.tr, + borderTopStartRadius: rad?.tl, + borderTopWidth: p?.top?.width, + // borderWidth, + }; + + // if colors are all same + if (equals(p.top?.color, p.right?.color, p.bottom?.color, p.left?.color)) { + o = { + ...o, + borderColor: css.color(p.top.color), + borderBottomColor: undefined, + borderLeftColor: undefined, + borderRightColor: undefined, + borderTopColor: undefined, + }; + } + + return o; +} + +const equals = (...v): boolean => { + for (let i = 1; i < v.length; i++) { + if (v[i] !== v[0]) { + return false; + } + } + return true; +}; diff --git a/packages/builder-react-native/rn-styles/index.ts b/packages/builder-react-native/rn-styles/index.ts new file mode 100644 index 00000000..7f8c0a61 --- /dev/null +++ b/packages/builder-react-native/rn-styles/index.ts @@ -0,0 +1,7 @@ +export * from "./border"; +export * from "./shadow"; +export * from "./margin"; +export * from "./padding"; +export * from "./background"; +export * from "./text-shadow"; +export * from "./text-decoration"; diff --git a/packages/builder-react-native/rn-styles/margin.ts b/packages/builder-react-native/rn-styles/margin.ts new file mode 100644 index 00000000..9ff3701c --- /dev/null +++ b/packages/builder-react-native/rn-styles/margin.ts @@ -0,0 +1,35 @@ +import type { EdgeInsets } from "@reflect-ui/core"; +import { + edgeInsetsShorthandMode, + EdgeInsetsShorthandMode, +} from "@reflect-ui/core"; +import type { ViewStyle } from "react-native"; + +export function margin(p: EdgeInsets): ViewStyle { + switch (edgeInsetsShorthandMode(p)) { + case EdgeInsetsShorthandMode.empty: { + return {}; + } + case EdgeInsetsShorthandMode.all: { + return { + margin: p.top, + }; + } + case EdgeInsetsShorthandMode.symetric: { + return { + marginHorizontal: p.left, + marginVertical: p.top, + }; + } + case EdgeInsetsShorthandMode.trbl: + case EdgeInsetsShorthandMode.top_horiz_bottom: + default: { + return { + marginBottom: p.bottom, + marginLeft: p.left, + marginRight: p.right, + marginTop: p.top, + }; + } + } +} diff --git a/packages/builder-react-native/rn-styles/padding.ts b/packages/builder-react-native/rn-styles/padding.ts new file mode 100644 index 00000000..5b5ee40a --- /dev/null +++ b/packages/builder-react-native/rn-styles/padding.ts @@ -0,0 +1,35 @@ +import type { EdgeInsets } from "@reflect-ui/core"; +import { + edgeInsetsShorthandMode, + EdgeInsetsShorthandMode, +} from "@reflect-ui/core"; +import type { ViewStyle } from "react-native"; + +export function padding(p: EdgeInsets): ViewStyle { + switch (edgeInsetsShorthandMode(p)) { + case EdgeInsetsShorthandMode.empty: { + return {}; + } + case EdgeInsetsShorthandMode.all: { + return { + padding: p.top, + }; + } + case EdgeInsetsShorthandMode.symetric: { + return { + paddingHorizontal: p.left, + paddingVertical: p.top, + }; + } + case EdgeInsetsShorthandMode.trbl: + case EdgeInsetsShorthandMode.top_horiz_bottom: + default: { + return { + paddingBottom: p.bottom, + paddingLeft: p.left, + paddingRight: p.right, + paddingTop: p.top, + }; + } + } +} diff --git a/packages/builder-react-native/rn-styles/shadow.ts b/packages/builder-react-native/rn-styles/shadow.ts new file mode 100644 index 00000000..60143da6 --- /dev/null +++ b/packages/builder-react-native/rn-styles/shadow.ts @@ -0,0 +1,37 @@ +import type { BoxShadowManifest } from "@reflect-ui/core"; +import type { ViewStyle, ColorValue } from "react-native"; +import * as css from "@web-builder/styles"; +import { reactnative } from "@designto/config"; + +export function shadow( + p: BoxShadowManifest, + /** + * @deprecated NOT READY + */ + config?: reactnative.ReactNativeShadowConfig +): ViewStyle { + return { + shadowColor: css.color(p.color), // global property + // iOS only + shadowOffset: { + width: p.offset.dx, + height: p.offset.dy, + }, + // iOS only + // shadowOpacity: p.color.opacity, + // iOS only + shadowRadius: p.spreadRadius, + // Android only + elevation: anddroid_elevation(p), + }; +} + +/** + * Convert a box-shadow to anddroid native compat elevation value (aprox.) + * https://material.io/design/environment/elevation.html + * @returns + */ +const anddroid_elevation = (p: BoxShadowManifest) => { + // FIXME: add elevation convert support + return 8; +}; diff --git a/packages/builder-react-native/rn-styles/text-decoration.ts b/packages/builder-react-native/rn-styles/text-decoration.ts new file mode 100644 index 00000000..05e1a376 --- /dev/null +++ b/packages/builder-react-native/rn-styles/text-decoration.ts @@ -0,0 +1,28 @@ +import { TextDecoration, TextDecorationStyle } from "@reflect-ui/core"; +import type { TextStyle } from "react-native"; + +const _decoration_map = { + [TextDecoration.linethrough]: "line-through", + [TextDecoration.none]: "none", + [TextDecoration.overline]: undefined, + [TextDecoration.underline]: "underline", +}; + +const _decoration_style_map = { + [TextDecorationStyle.dashed]: "dashed", + [TextDecorationStyle.dotted]: "dotted", + [TextDecorationStyle.double]: "double", + [TextDecorationStyle.solid]: "solid", + [TextDecorationStyle.wavy]: undefined, +}; + +export function textDecoration( + de: TextDecoration, + s: TextDecorationStyle +): TextStyle { + return { + textDecorationLine: _decoration_map[de], + textDecorationStyle: _decoration_style_map[s], + // textDecorationColor: ???, + }; +} diff --git a/packages/builder-react-native/rn-styles/text-shadow.ts b/packages/builder-react-native/rn-styles/text-shadow.ts new file mode 100644 index 00000000..7d091457 --- /dev/null +++ b/packages/builder-react-native/rn-styles/text-shadow.ts @@ -0,0 +1,16 @@ +import type { TextShadow } from "@reflect-ui/core"; +import type { TextStyle } from "react-native"; +import * as css from "@web-builder/styles"; + +export function textShadow(s: TextShadow): TextStyle { + if (!s) return {}; + + return { + textShadowColor: css.color(s.color), + textShadowOffset: { + width: s.offset.dx, + height: s.offset.dy, + }, + textShadowRadius: s.blurRadius, + }; +} diff --git a/packages/builder-react-native/rn-svg/README.md b/packages/builder-react-native/rn-svg/README.md new file mode 100644 index 00000000..0bec31f4 --- /dev/null +++ b/packages/builder-react-native/rn-svg/README.md @@ -0,0 +1,47 @@ +# react-native-svg + +## Mode - xml + +**Example**: + +```tsx +import * as React from "react"; +import { SvgXml } from "react-native-svg"; + +const xml = ` + + + + + + + + + +`; + +export default () => ; +``` + +### Mode - SvgWithPath `` + +```tsx + + + +``` diff --git a/packages/builder-react-native/rn-svg/index.ts b/packages/builder-react-native/rn-svg/index.ts new file mode 100644 index 00000000..bca741b1 --- /dev/null +++ b/packages/builder-react-native/rn-svg/index.ts @@ -0,0 +1,2 @@ +export * from "./rn-svg-with-path"; +export * from "./rn-svg-xml"; diff --git a/packages/builder-react-native/rn-svg/rn-svg-with-path.ts b/packages/builder-react-native/rn-svg/rn-svg-with-path.ts new file mode 100644 index 00000000..f3e7d6b6 --- /dev/null +++ b/packages/builder-react-native/rn-svg/rn-svg-with-path.ts @@ -0,0 +1,52 @@ +import { + StylableJsxWidget, + SvgElement, + UnstylableJSXElementConfig, + WidgetKey, +} from "@web-builder/core"; +import { JSX, JSXAttribute, StringLiteral } from "coli"; + +export class SvgWithPathElement extends SvgElement { + path({ fill }: { fill: string | false }) { + return { + key: new WidgetKey(`${this.key.id}.svg-path`, "svg-path"), + styleData: () => null, + jsxConfig: () => { + // from `import Svg, { Path } from "react-native-svg";` + const _tag = JSX.identifier("Path"); + return { + type: "static-tree", + tree: JSX.tag("Path", { + selfClosing: true, + attributes: [ + fill && + new JSXAttribute("fill", new StringLiteral(fill || "current")), + new JSXAttribute("d", new StringLiteral(this.data ?? "")), + ], + }).make(), + }; + }, + }; + } + + private get childConfig() { + // single "Path" element make by above `path` method + return this.children[0].jsxConfig() as UnstylableJSXElementConfig; + } + + jsxConfig(): UnstylableJSXElementConfig { + // from `import Svg from "react-native-svg";` + const tree = JSX.tag("Svg", { + children: [this.childConfig.tree], + attributes: [ + new JSXAttribute("width", new StringLiteral("100%")), + new JSXAttribute("height", new StringLiteral("100%")), + ], + }).make(); + + return { + type: "static-tree", + tree: tree, + }; + } +} diff --git a/packages/builder-react-native/rn-svg/rn-svg-xml.ts b/packages/builder-react-native/rn-svg/rn-svg-xml.ts new file mode 100644 index 00000000..75fee63d --- /dev/null +++ b/packages/builder-react-native/rn-svg/rn-svg-xml.ts @@ -0,0 +1,89 @@ +import assert from "assert"; +import { + JSX, + JSXAttribute, + JSXExpression, + StringLiteral, + TemplateLiteral, +} from "coli"; +import { + StylableJSXElementConfig, + WidgetKey, + k, + UnstylableJSXElementConfig, +} from "@web-builder/core"; +import * as css from "@web-builder/styles"; +import type { ViewStyle } from "react-native"; +import { SelfClosingContainer } from "../rn-widgets"; + +/** + * Makes Svg element for react-native with `import { SvgXml } from 'react-native-svg';` + * + * dependency: + * - [`react-native-svg`](https://github.com/react-native-svg/react-native-svg) + * + * ```tsx + * // Example + * import * as React from 'react'; +import { SvgXml } from 'react-native-svg'; + +const xml = ` + + + +`; + +export default () => ; + * ``` + */ +export class SvgXmlElement extends SelfClosingContainer { + _type = "rn-svg-xml"; + readonly xml: string; + width: number; + height: number; + + constructor({ + key, + xml, + width, + height, + }: { + key: WidgetKey; + xml: string; + width?: number; + height?: number; + }) { + super({ key }); + assert(xml !== undefined, "SvgXmlElement requires xml data"); + this.xml = xml; + this.width = width; + this.height = height; + } + + styleData(): ViewStyle { + return { + ...super.styleData(), + width: css.px(this.width), + height: css.px(this.height), + }; + } + + jsxConfig(): UnstylableJSXElementConfig { + return { + type: "static-tree", + // // `SvgXml` from `import { SvgXml } from 'react-native-svg';` + tree: JSX.tag("SvgXml", { + attributes: [ + new JSXAttribute("width", new StringLiteral("100%")), + new JSXAttribute("height", new StringLiteral("100%")), + new JSXAttribute( + "xml", + new JSXExpression(new TemplateLiteral(this.xml)) + ), + ], + }), + }; + } +} diff --git a/packages/builder-react-native/rn-view/index.ts b/packages/builder-react-native/rn-view/index.ts new file mode 100644 index 00000000..eea524d6 --- /dev/null +++ b/packages/builder-react-native/rn-view/index.ts @@ -0,0 +1 @@ +export * from "./types"; diff --git a/packages/builder-react-native/rn-view/types.ts b/packages/builder-react-native/rn-view/types.ts new file mode 100644 index 00000000..8b2d518a --- /dev/null +++ b/packages/builder-react-native/rn-view/types.ts @@ -0,0 +1,18 @@ +export type RNPressRetentionOffset = Readonly<{ + top: number; + left: number; + bottom: number; + right: number; +}>; + +import type { AccessibilityActionInfo } from "react-native"; +export type RNAccessibilityActionInfo = AccessibilityActionInfo; + +import type { AccessibilityRole } from "react-native"; +export type RNAccessibilityRole = AccessibilityRole; + +import type { AccessibilityState } from "react-native"; +export type RNAccessibilityState = AccessibilityState; + +import type { AccessibilityValue } from "react-native"; +export type RNAccessibilityValue = AccessibilityValue; diff --git a/packages/builder-react-native/rn-widgets/index.ts b/packages/builder-react-native/rn-widgets/index.ts new file mode 100644 index 00000000..fe47e647 --- /dev/null +++ b/packages/builder-react-native/rn-widgets/index.ts @@ -0,0 +1,17 @@ +export * from "./rn-button"; +export * from "./rn-column"; +export * from "./rn-container"; +export * from "./rn-flex"; +export * from "./rn-image"; +export * from "./rn-row"; +export * from "./rn-stack"; +export * from "./rn-svg"; +export * from "./rn-text"; +export * from "./rn-text-field"; + +export * from "./rn-error-widget"; + +export * from "@web-builder/core/widget-tree/widget"; + +// export core widget +export * from "@web-builder/core/widget-core"; diff --git a/packages/builder-react-native/rn-widgets/rn-button/index.ts b/packages/builder-react-native/rn-widgets/rn-button/index.ts new file mode 100644 index 00000000..e8f3fdd7 --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-button/index.ts @@ -0,0 +1 @@ +export class Button {} diff --git a/packages/builder-react-native/rn-widgets/rn-column/index.ts b/packages/builder-react-native/rn-widgets/rn-column/index.ts new file mode 100644 index 00000000..4a0b2c10 --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-column/index.ts @@ -0,0 +1,27 @@ +import type { WidgetKey, StylableJsxWidget } from "@web-builder/core"; +import { + Axis, + BorderRadiusManifest, + BoxShadowManifest, + Color, + EdgeInsets, + IFlexManifest, +} from "@reflect-ui/core"; +import { Flex } from "../rn-flex"; + +export class Column extends Flex { + readonly _type = "column"; + + constructor( + p: Omit, "direction"> & { + key: WidgetKey; + margin?: EdgeInsets; + padding?: EdgeInsets; + boxShadow?: BoxShadowManifest[]; + color?: Color; + borderRadius?: BorderRadiusManifest; + } + ) { + super({ ...p, direction: Axis.vertical }); + } +} diff --git a/packages/builder-react-native/rn-widgets/rn-container/index.ts b/packages/builder-react-native/rn-widgets/rn-container/index.ts new file mode 100644 index 00000000..00ae24b6 --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-container/index.ts @@ -0,0 +1,110 @@ +import { + StylableJsxWidget, + StylableJSXElementConfig, + WidgetKey, + JsxWidget, + UnstylableJSXElementConfig, +} from "@web-builder/core"; +import { + Background, + Border, + BorderRadiusManifest, + BoxShadowManifest, + DimensionLength, + EdgeInsets, +} from "@reflect-ui/core"; +import { JSX } from "coli"; +import { RNViewProps } from "../../rn-native-widgets"; +import type { ViewStyle } from "react-native"; +import * as css from "@web-builder/styles"; +import * as styles from "../../rn-styles"; + +export class Container + extends StylableJsxWidget + implements RNViewProps +{ + children?: JsxWidget[]; + readonly style?: ViewStyle; + + borderRadius?: BorderRadiusManifest; + border?: Border; + margin?: EdgeInsets; + + constructor({ + key, + ...p + }: { + key: WidgetKey; + children?: Array; + } & { + x?: number; + y?: number; + + width?: DimensionLength; + height?: DimensionLength; + minWidth?: DimensionLength; + maxWidth?: DimensionLength; + minHeight?: DimensionLength; + maxHeight?: DimensionLength; + + margin?: EdgeInsets; + + background?: Background; + borderRadius?: BorderRadiusManifest; + boxShadow?: BoxShadowManifest[]; + border?: Border; + }) { + super({ key }); + + this.width = p.width; + this.height = p.height; + this.minWidth = p.minWidth; + this.maxWidth = p.maxWidth; + this.minHeight = p.minHeight; + this.maxHeight = p.maxHeight; + + this.margin = p.margin; + + this.x = p.x; + this.y = p.y; + this.background = p.background; + this.borderRadius = p.borderRadius; + this.boxShadow = p.boxShadow; + this.border = p.border; + + this.children = p.children; + } + + styleData(): ViewStyle { + return { + width: css.length(this.width), + height: css.length(this.height), + minWidth: css.length(this.minWidth), + maxWidth: css.length(this.maxWidth), + minHeight: css.length(this.minHeight), + maxHeight: css.length(this.maxHeight), + + // originally, - "box-shadow": css.boxshadow(...(this.boxShadow ?? [])), + ...(this.boxShadow?.length ? styles.shadow(this.boxShadow[0]) : {}), + ...styles.background(this.background), + ...styles.margin(this.margin), + ...styles.padding(this.padding), + ...styles.border(this.border, this.borderRadius), + }; + } + + jsxConfig(): StylableJSXElementConfig | UnstylableJSXElementConfig { + // TODO: add dependency loading + return { + type: "tag-and-attr", + tag: JSX.identifier("View"), + }; + } +} + +export abstract class SelfClosingContainer + extends Container + implements Omit +{ + readonly children?: undefined; +} diff --git a/packages/builder-react-native/rn-widgets/rn-error-widget/index.ts b/packages/builder-react-native/rn-widgets/rn-error-widget/index.ts new file mode 100644 index 00000000..c79e178c --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-error-widget/index.ts @@ -0,0 +1,40 @@ +import { StylableJSXElementConfig, WidgetKey } from "@web-builder/core"; +import { JSX } from "coli"; +import type { TextStyle } from "react-native"; +import { + TextChildWidget, + TextDataWidget, +} from "@web-builder/core/widget-tree/widget"; + +export class ErrorWidget extends TextChildWidget { + readonly errorMessage: string; + constructor(p: { key: WidgetKey; errorMessage: string }) { + super({ + key: p.key, + }); + this.errorMessage = p.errorMessage; + } + + textData() { + return new TextDataWidget({ + key: { ...this.key, id: this.key.id + ".text-data" }, + data: this.errorMessage, + }); + } + + styleData(): TextStyle { + return { + color: "red", + }; + } + + jsxConfig(): StylableJSXElementConfig { + return { + type: "tag-and-attr", + tag: JSX.identifier("Text"), + }; + + /// TODO - return text + // `This layer/layout is not handled - key:${JSON.stringify(this.key)}` + } +} diff --git a/packages/builder-react-native/rn-widgets/rn-flex/index.ts b/packages/builder-react-native/rn-widgets/rn-flex/index.ts new file mode 100644 index 00000000..cbd4439a --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-flex/index.ts @@ -0,0 +1,206 @@ +import { JSX } from "coli"; +import { + Axis, + Border, + BorderRadiusManifest, + BoxShadowManifest, + CrossAxisAlignment, + DimensionLength, + EdgeInsets, + MainAxisAlignment, + MainAxisSize, + VerticalDirection, + IFlexManifest, + Background, +} from "@reflect-ui/core"; +import { + MultiChildWidget, + StylableJsxWidget, + StylableJSXElementConfig, + WidgetKey, +} from "@web-builder/core"; +import type { ViewStyle, FlexAlignType } from "react-native"; +import * as css from "@web-builder/styles"; +import { tricks } from "@web-builder/styles"; +import * as styles from "../../rn-styles"; + +type FlexWrap = "nowrap" | "wrap" | "wrap-reverse"; + +/** + * A Flex type conpat for react-native View + */ +export class Flex extends MultiChildWidget { + readonly _type: "row" | "column"; + + mainAxisAlignment?: MainAxisAlignment; + mainAxisSize?: MainAxisSize; + crossAxisAlignment?: CrossAxisAlignment; + verticalDirection?: VerticalDirection; + margin?: EdgeInsets; + padding?: EdgeInsets; + itemSpacing?: number; + flex?: number; + + readonly direction: Axis; + + // css only properties + readonly overflow?: ViewStyle["overflow"]; + + borderRadius?: BorderRadiusManifest; + border?: Border; + + minWidth?: DimensionLength; + maxWidth?: DimensionLength; + minHeight?: DimensionLength; + maxHeight?: DimensionLength; + + flexWrap?: FlexWrap; + + constructor( + p: IFlexManifest & { + // direction: "row" | "column"; + key: WidgetKey; + width?: DimensionLength; + height?: DimensionLength; + minWidth?: DimensionLength; + maxWidth?: DimensionLength; + minHeight?: DimensionLength; + maxHeight?: DimensionLength; + mainAxisAlignment?: MainAxisAlignment; + mainAxisSize?: MainAxisSize; + crossAxisAlignment?: CrossAxisAlignment; + verticalDirection?: VerticalDirection; + margin?: EdgeInsets; + boxShadow?: BoxShadowManifest[]; + padding?: EdgeInsets; + background?: Background; + overflow?: ViewStyle["overflow"]; + borderRadius?: BorderRadiusManifest; + border?: Border; + flexWrap?: FlexWrap; + } + ) { + super(p); + + this.width = p.width; + this.height = p.height; + + this.minWidth = p.minWidth; + this.maxWidth = p.maxWidth; + this.minHeight = p.minHeight; + this.maxHeight = p.maxHeight; + + // flex related + this.direction = p.direction; + this.itemSpacing = p.itemSpacing; + this.flex = p.flex; + this.mainAxisAlignment = p.mainAxisAlignment; + this.mainAxisSize = p.mainAxisSize; + this.crossAxisAlignment = p.crossAxisAlignment; + this.verticalDirection = p.verticalDirection; + // + + // + this.margin = p.margin; + this.padding = p.padding; + this.background = p.background; + this.borderRadius = p.borderRadius; + this.border = p.border; + this.boxShadow = p.boxShadow; + + // css only + this.overflow = p.overflow; + this.flexWrap = p.flexWrap; + } + + jsxConfig(): StylableJSXElementConfig { + return { + type: "tag-and-attr", + tag: JSX.identifier("View"), + }; + } + + styleData(): ViewStyle { + return { + display: "flex", + justifyContent: css.mainAxisAlignmentToJustifyContent( + this.mainAxisAlignment + ), + flexDirection: direction(this.direction), + alignItems: alignitems(this.crossAxisAlignment), + flex: this.flex, + flexWrap: this.flexWrap, + overflow: this.overflow, + + // TODO: add item spacing support ( follow the flutter way ) + // gap: this.itemSpacing && css.px(this.itemSpacing), + + // originally, - "box-shadow": css.boxshadow(...(this.boxShadow ?? [])), + ...(this.boxShadow?.length ? styles.shadow(this.boxShadow[0]) : {}), + ...styles.border(this.border, this.borderRadius), + + ...flexsizing({ ...this }), + minWidth: css.length(this.minWidth), + maxWidth: css.length(this.maxWidth), + minHeight: css.length(this.minHeight), + maxHeight: css.length(this.maxHeight), + ...styles.background(this.background), + ...styles.padding(this.padding), + + // do we need this on react-native? + // "box-sizing": (this.padding && "border-box") || undefined, + }; + } +} + +function flexsizing(p: { + direction: Axis; + mainAxisSize?: MainAxisSize; + width?: DimensionLength; + height?: DimensionLength; + flex?: number; +}): { + flex?: ViewStyle["flex"]; + alignSelf?: ViewStyle["alignSelf"]; + width?: ViewStyle["width"]; + height?: ViewStyle["height"]; +} { + const sizing = tricks.flexsizing(p); + if (sizing) { + return { + flex: typeof sizing.flex == "number" ? sizing.flex : undefined, + alignSelf: sizing["align-self"], + width: sizing.width, + height: sizing.height, + }; + } +} + +function alignitems(al: CrossAxisAlignment): FlexAlignType { + switch (al) { + case CrossAxisAlignment.start: + return "flex-start"; + case CrossAxisAlignment.end: + return "flex-end"; + case CrossAxisAlignment.center: + return "center"; + case CrossAxisAlignment.stretch: + return "stretch"; + case CrossAxisAlignment.baseline: + return "baseline"; + default: + return "flex-start"; + } +} + +function direction( + axis: Axis +): "row" | "column" | "row-reverse" | "column-reverse" { + switch (axis) { + case Axis.horizontal: + return "row"; + case Axis.vertical: + return "column"; + } + throw `axis value of "${axis}" is not a valid reflect Axis value.`; +} diff --git a/packages/builder-react-native/rn-widgets/rn-image/index.ts b/packages/builder-react-native/rn-widgets/rn-image/index.ts new file mode 100644 index 00000000..badbe2e2 --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-image/index.ts @@ -0,0 +1,85 @@ +import assert from "assert"; +import { + Identifier, + JSX, + JSXAttribute, + JSXExpression, + ObjectLiteralExpression, + PropertyAssignment, + StringLiteral, +} from "coli"; +import { StylableJSXElementConfig, WidgetKey, k } from "@web-builder/core"; +import * as css from "@web-builder/styles"; +import { SelfClosingContainer } from "../rn-container"; +import type { ViewStyle } from "react-native"; + +export class ImageElement extends SelfClosingContainer { + _type = "img"; + readonly src: string; + readonly alt: string; + width: number; + height: number; + + constructor({ + key, + src, + alt, + width, + height, + }: { + key: WidgetKey; + src: string; + alt?: string; + width?: number; + height?: number; + }) { + super({ key }); + assert(src !== undefined, "ImageElement requires src"); + this.src = src; + this.alt = alt; + this.width = width; + this.height = height; + } + + styleData(): ViewStyle { + return { + ...super.styleData(), + width: css.px(this.width), + height: css.px(this.height), + // "max-width": "100%", + + // TODO: object-fit eq for RN + // "object-fit": "cover", + }; + } + + jsxConfig(): StylableJSXElementConfig { + const attributes = [ + this.src && + new JSXAttribute( + "src", + new JSXExpression( + new ObjectLiteralExpression({ + properties: [ + new PropertyAssignment({ + name: new Identifier("uri"), + initializer: new StringLiteral( + this.src || k.image_smallest_fallback_source_base_64 + ), + }), + ], + }) + ) + ), + // there is no "alt" attribute in the react-native "Image" tag + // typeof this.alt === "string" && + // new JSXAttribute("alt", new StringLiteral(this.alt)), + ]; + + return { + type: "tag-and-attr", + tag: JSX.identifier("Image"), + attributes: attributes, + }; + } +} diff --git a/packages/builder-react-native/rn-widgets/rn-row/index.ts b/packages/builder-react-native/rn-widgets/rn-row/index.ts new file mode 100644 index 00000000..cb848c3c --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-row/index.ts @@ -0,0 +1,29 @@ +import type { WidgetKey, StylableJsxWidget } from "@web-builder/core"; +import { + Axis, + BorderRadiusManifest, + BoxShadowManifest, + Color, + EdgeInsets, + IFlexManifest, +} from "@reflect-ui/core"; +import { Flex } from "../rn-flex"; + +export class Row extends Flex { + readonly _type = "row"; + constructor( + p: Omit, "direction"> & { + key: WidgetKey; + margin?: EdgeInsets; + padding?: EdgeInsets; + boxShadow?: BoxShadowManifest[]; + color?: Color; + borderRadius?: BorderRadiusManifest; + } + ) { + super({ + ...p, + direction: Axis.horizontal, + }); + } +} diff --git a/packages/builder-react-native/rn-widgets/rn-stack/index.ts b/packages/builder-react-native/rn-widgets/rn-stack/index.ts new file mode 100644 index 00000000..f1b4ceaf --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-stack/index.ts @@ -0,0 +1,110 @@ +import { JSX } from "coli"; +import { + MultiChildWidget, + StylableJSXElementConfig, + StylableJsxWidget, + WidgetKey, +} from "@web-builder/core"; +import * as css from "@web-builder/styles"; +import { + Background, + BoxShadowManifest, + Border, + BorderRadiusManifest, + Clip, + DimensionLength, +} from "@reflect-ui/core"; +import type { ViewStyle } from "react-native"; +import * as styles from "../../rn-styles"; + +export class Stack extends MultiChildWidget { + readonly _type = "rn-stack"; + + width: DimensionLength; + height: DimensionLength; + minWidth?: DimensionLength; + maxWidth?: DimensionLength; + minHeight?: DimensionLength; + maxHeight?: DimensionLength; + + borderRadius?: BorderRadiusManifest; + border?: Border; + clipBehavior?: Clip; + + constructor(p: { + key: WidgetKey; + children: Array; + + width: DimensionLength; + height: DimensionLength; + minWidth?: DimensionLength; + maxWidth?: DimensionLength; + minHeight?: DimensionLength; + maxHeight?: DimensionLength; + + boxShadow?: BoxShadowManifest[]; + borderRadius?: BorderRadiusManifest; + border?: Border; + background?: Background; + clipBehavior?: Clip; + }) { + super(p); + + this.width = p.width; + this.height = p.height; + this.minWidth = p.minWidth; + this.maxWidth = p.maxWidth; + this.minHeight = p.minHeight; + this.maxHeight = p.maxHeight; + + this.background = p.background; + this.borderRadius = p.borderRadius; + this.boxShadow = p.boxShadow; + + // stack specific + this.clipBehavior = p.clipBehavior; + this.border = p.border; + } + + jsxConfig(): StylableJSXElementConfig { + return { + type: "tag-and-attr", + tag: JSX.identifier("View"), + }; + } + + styleData(): ViewStyle { + return { + // for stacking elements under parent, parent's position shall be relative, children shall be absolute with anchor (e.g. bottom: 0) + // can it be always relative? + position: "relative", + + width: css.length(this.width), + height: css.length(this.height), + minWidth: css.length(this.minWidth), + maxWidth: css.length(this.maxWidth), + minHeight: css.length(this.minHeight), + maxHeight: css.length(this.maxHeight), + + overflow: clip(this.clipBehavior), + ...styles.background(this.background), + ...styles.border(this.border, this.borderRadius), + + // originally, - "box-shadow": css.boxshadow(...(this.boxShadow ?? [])), + ...(this.boxShadow?.length ? styles.shadow(this.boxShadow[0]) : {}), + }; + } +} + +function clip(clip: Clip): ViewStyle["overflow"] { + switch (clip) { + case Clip.antiAlias: + case Clip.antiAliasWithSaveLayer: + case Clip.hardEdge: + return "hidden"; + case Clip.none: + return; // or return visible + default: + return; + } +} diff --git a/packages/builder-react-native/rn-widgets/rn-svg/index.ts b/packages/builder-react-native/rn-widgets/rn-svg/index.ts new file mode 100644 index 00000000..c7ba5021 --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-svg/index.ts @@ -0,0 +1,28 @@ +import { reactnative } from "@designto/config"; +import { WidgetKey } from "@web-builder/core"; +import { SvgWithPathElement, SvgXmlElement } from "../../rn-svg"; + +export function SvgElement( + p: { + key: WidgetKey; + width: number; + height: number; + data: string; + fill; + stroke?; + }, + { + config, + }: { + config: reactnative.ReactNativeSvgConfig; + } +) { + switch (config.prefer_mode) { + case "svg-with-path": + return new SvgWithPathElement(p); + case "svg-xml": + return new SvgXmlElement({ ...p, xml: p.data }); + default: + return new SvgWithPathElement(p); + } +} diff --git a/packages/builder-react-native/rn-widgets/rn-text-field/index.ts b/packages/builder-react-native/rn-widgets/rn-text-field/index.ts new file mode 100644 index 00000000..1e200fef --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-text-field/index.ts @@ -0,0 +1 @@ +export class TextField {} diff --git a/packages/builder-react-native/rn-widgets/rn-text/index.ts b/packages/builder-react-native/rn-widgets/rn-text/index.ts new file mode 100644 index 00000000..3a611d32 --- /dev/null +++ b/packages/builder-react-native/rn-widgets/rn-text/index.ts @@ -0,0 +1,121 @@ +import { + StylableJSXElementConfig, + WidgetKey, + TextDataWidget, + TextChildWidget, +} from "@web-builder/core"; +import * as core from "@reflect-ui/core"; +import { TextOverflow, WebTextElement } from "@reflect-ui/core"; +import { JSX } from "coli"; +import { RGBA } from "@reflect-ui/core"; +import * as css from "@web-builder/styles"; +import { Dynamic } from "@reflect-ui/core/lib/_utility-types"; +import type { TextStyle, ViewStyle } from "react-native"; +import * as styles from "../../rn-styles"; + +export class Text extends TextChildWidget { + _type: "Text"; + + // text properties + data: Dynamic; + overflow: TextOverflow; + textStyle: core.ITextStyle; + textAlign: core.TextAlign; + width?: number; + height?: number; + + // experimental + elementPreference?: WebTextElement; + + constructor(p: { + key: WidgetKey; + data: string; + overflow: TextOverflow; + textStyle: core.ITextStyle; + textAlign: core.TextAlign; + width?: number; + height?: number; + elementPreference?: WebTextElement; + }) { + super(p); + + // set text properties + this.data = p.data; + this.overflow = p.overflow; + this.textStyle = p.textStyle; + this.textAlign = p.textAlign; + this.width = p.width; + this.height = p.height; + + // experimental + this.elementPreference = p.elementPreference; + } + + textData() { + return new TextDataWidget({ + key: { ...this.key, id: this.key.id + ".text-data" }, + data: this.data, + }); + } + + styleData(): ViewStyle { + let textStyle: TextStyle = { + // text style + // ------------------------------------------ + color: css.color(this.textStyle.color as any as RGBA), + // "text-overflow": this.overflow, + + fontSize: this.textStyle.fontSize, + fontFamily: css.fontFamily(this.textStyle.fontFamily), + fontWeight: css.numericFontWeight(this.textStyle.fontWeight), + // FIXME: non numeric value can be passed + letterSpacing: css.letterSpacing( + this.textStyle.letterSpacing + ) as any as number, + lineHeight: css.length(this.textStyle.lineHeight), + textAlign: textAlign(this.textAlign), + ...styles.textDecoration( + this.textStyle.decoration, + this.textStyle.decorationStyle + ), + ...styles.textShadow( + this.textStyle.textShadow?.length + ? this.textStyle.textShadow[0] + : undefined + ), + // ------------------------------------------ + + minHeight: this.height, + + // TODO: do not specify width when parent is a flex container. + // Also flex: 1 is required to make the text wrap. + width: this.width, + }; + + return textStyle; + } + + jsxConfig(): StylableJSXElementConfig { + return { + type: "tag-and-attr", + tag: JSX.identifier("Text"), + }; + } +} + +const textAlign = (a: core.TextAlign): TextStyle["textAlign"] => { + switch (a) { + case core.TextAlign.left: + return "left"; + case core.TextAlign.right: + return "right"; + case core.TextAlign.center: + return "center"; + case core.TextAlign.justify: + return "justify"; + case core.TextAlign.start: + return "left"; + default: + return undefined; + } +}; diff --git a/packages/builder-web-core/widget-core/widget-with-style.ts b/packages/builder-web-core/widget-core/widget-with-style.ts index 1dd1995e..b3ff95a4 100644 --- a/packages/builder-web-core/widget-core/widget-with-style.ts +++ b/packages/builder-web-core/widget-core/widget-with-style.ts @@ -21,7 +21,7 @@ export interface IWidgetWithStyle { /** * Since html based framework's widget can be represented withou any style definition, this WidgetWithStyle class indicates, that the sub instance of this class will contain style data within it. */ -export abstract class WidgetWithStyle +export abstract class WidgetWithStyle extends JsxWidget implements IWHStyleWidget, @@ -61,8 +61,8 @@ export abstract class WidgetWithStyle * if the style is null, it means don't make element as a styled component at all. if style is a empty object, it means to make a empty styled component. * @internal - use .style for accessing the full style data. */ - abstract styleData(): CSSProperties | null; - get style() { + abstract styleData(): OUTSTYLE | null; + get finalStyle() { return { ...this.styleData(), /** @@ -82,7 +82,7 @@ export abstract class WidgetWithStyle abstract jsxConfig(): JSXElementConfig; private extendedStyle: CSSProperties = {}; - extendStyle(style: CSSProperties) { + extendStyle(style: T) { this.extendedStyle = { ...this.extendedStyle, ...style, diff --git a/packages/builder-web-core/widget-tree/widget.ts b/packages/builder-web-core/widget-tree/widget.ts index 27d5f21f..9cb1aec0 100644 --- a/packages/builder-web-core/widget-tree/widget.ts +++ b/packages/builder-web-core/widget-tree/widget.ts @@ -8,17 +8,21 @@ import { StylableJSXElementConfig, } from "@web-builder/core"; import { JSXExpression, JSXText, StringLiteral } from "coli"; +import type { CSSProperties } from "@coli.codes/css"; /** * Widget that requires no additional custom import rather than react */ -export abstract class StylableJsxWidget extends WidgetWithStyle { +export abstract class StylableJsxWidget< + S = CSSProperties +> extends WidgetWithStyle { abstract readonly children?: JsxWidget[]; } export abstract class SelfClosingWidget extends StylableJsxWidget - implements Omit { + implements Omit +{ readonly children?: undefined; abstract jsxConfig(): StylableJSXElementConfig; } @@ -26,9 +30,10 @@ export abstract class SelfClosingWidget /** * widget that contains multiple children in the same depth 1 hierarchy */ -export abstract class MultiChildWidget - extends StylableJsxWidget - implements MultiChildWidgetWithStyle { +export abstract class MultiChildWidget + extends StylableJsxWidget + implements MultiChildWidgetWithStyle +{ readonly children: JsxWidget[] = []; tag: string; constructor(p: { key: WidgetKey; children: Array }) { @@ -44,7 +49,7 @@ export abstract class MultiChildWidget * which is present for representing connection between prebuilt widget that accepts single child, * or for creating constraints for simple layouts such as margin wrap. */ -export abstract class SingleChildWidget extends StylableJsxWidget { +export abstract class SingleChildWidget extends StylableJsxWidget { readonly child?: JsxWidget; constructor(parameters: { key: WidgetKey; child?: JsxWidget }) { super({ @@ -69,7 +74,9 @@ export abstract class IndependantWidget extends StylableJsxWidget { * widget containing only text values. * e.g.
I'm Text
, I'm Text,

I'm Text

*/ -export abstract class TextChildWidget extends SingleChildWidget { +export abstract class TextChildWidget< + S = CSSProperties +> extends SingleChildWidget { readonly child: StylableJsxWidget; children?: StylableJsxWidget[]; constructor(p: { key: WidgetKey }) { diff --git a/packages/builder-web-core/widgets-native/container/index.ts b/packages/builder-web-core/widgets-native/container/index.ts index 6d57f033..86add44d 100644 --- a/packages/builder-web-core/widgets-native/container/index.ts +++ b/packages/builder-web-core/widgets-native/container/index.ts @@ -6,8 +6,8 @@ import { BoxShadowManifest, DimensionLength, EdgeInsets, + Background, } from "@reflect-ui/core"; -import { Background } from "@reflect-ui/core/lib/background"; import * as css from "@web-builder/styles"; import { JSX } from "coli"; import { StylableJsxWidget } from "@web-builder/core/widget-tree/widget"; diff --git a/packages/builder-web-core/widgets-native/flex/index.ts b/packages/builder-web-core/widgets-native/flex/index.ts index 9c4baa2c..ef67e7fe 100644 --- a/packages/builder-web-core/widgets-native/flex/index.ts +++ b/packages/builder-web-core/widgets-native/flex/index.ts @@ -10,6 +10,7 @@ import { EdgeInsets, MainAxisAlignment, VerticalDirection, + IFlexManifest, } from "@reflect-ui/core"; import { MainAxisSize } from "@reflect-ui/core/lib/main-axis-size"; import { JSX } from "coli"; @@ -17,10 +18,9 @@ import { MultiChildWidget, StylableJsxWidget, } from "@web-builder/core/widget-tree/widget"; -import { JSXElementConfig } from "@web-builder/core"; import { Background } from "@reflect-ui/core/lib/background"; -import { IFlexManifest } from "@reflect-ui/core/lib/flex/flex.manifest"; import * as css from "@web-builder/styles"; +import { tricks } from "@web-builder/styles"; import { CssMinHeightMixin } from "../../widgets"; type FlexWrap = "nowrap" | "wrap" | "wrap-reverse"; @@ -130,7 +130,7 @@ export class Flex extends MultiChildWidget implements CssMinHeightMixin { "box-shadow": css.boxshadow(...(this.boxShadow ?? [])), ...css.border(this.border), ...css.borderRadius(this.borderRadius), - ...flexsizing({ ...this }), + ...tricks.flexsizing({ ...this }), "min-width": css.length(this.minWidth), "max-width": css.length(this.maxWidth), @@ -153,40 +153,3 @@ function direction(axis: Axis): CSSProperty.FlexDirection { } throw `axis value of "${axis}" is not a valid reflect Axis value.`; } - -function flexsizing({ - mainAxisSize, - width, - height, - flex, - direction, -}: { - direction: Axis; - mainAxisSize?: MainAxisSize; - width?: DimensionLength; - height?: DimensionLength; - flex?: number; -}): CSSProperties { - switch (mainAxisSize) { - case MainAxisSize.max: { - return { - "align-self": "stretch", - flex: "1", // This is a temporary solution, since stretch can be used on non-space-between parent, but still the item should stretch, we use flex 1 to do this. - }; - } - case MainAxisSize.min: { - switch (direction) { - case Axis.horizontal: - case Axis.vertical: - return { - flex: "none", - width: width && css.length(width), - height: height && css.length(height), - }; - } - } - } - - // TODO: - // 1. add widht / height handling -} diff --git a/packages/builder-web-core/widgets-native/html-image/index.ts b/packages/builder-web-core/widgets-native/html-image/index.ts index cdf17128..38dc6d52 100644 --- a/packages/builder-web-core/widgets-native/html-image/index.ts +++ b/packages/builder-web-core/widgets-native/html-image/index.ts @@ -1,8 +1,7 @@ import { CSSProperties } from "@coli.codes/css"; import assert from "assert"; import { JSX, JSXAttribute, StringLiteral } from "coli"; -import { JSXElementConfig, StylableJSXElementConfig, WidgetKey } from "../.."; -import { image_smallest_fallback_source_base_64 } from "../../k"; +import { StylableJSXElementConfig, WidgetKey, k } from "../.."; import { SelfClosingContainer } from "../container"; import * as css from "@web-builder/styles"; export class ImageElement extends SelfClosingContainer { @@ -48,7 +47,9 @@ export class ImageElement extends SelfClosingContainer { this.src && new JSXAttribute( "src", - new StringLiteral(this.src || image_smallest_fallback_source_base_64) + new StringLiteral( + this.src || k.image_smallest_fallback_source_base_64 + ) ), typeof this.alt === "string" && new JSXAttribute("alt", new StringLiteral(this.alt)), diff --git a/packages/builder-web-core/widgets-native/html-svg/index.ts b/packages/builder-web-core/widgets-native/html-svg/index.ts index 76a7def5..e6abd37c 100644 --- a/packages/builder-web-core/widgets-native/html-svg/index.ts +++ b/packages/builder-web-core/widgets-native/html-svg/index.ts @@ -53,7 +53,7 @@ export class SvgElement extends StylableJsxWidget { */ readonly stroke?: Color; - readonly children; + readonly children: StylableJsxWidget[]; constructor(p: { key: WidgetKey; @@ -81,27 +81,28 @@ export class SvgElement extends StylableJsxWidget { this.children = this._init_children(); } - private _init_children() { - const path_with_fill = (fill: string | false) => - { - key: new WidgetKey(`${this.key.id}.svg-path`, "svg-path"), - styleData: () => null, - jsxConfig: () => { - const _tag = JSX.identifier("path"); - return { - tag: _tag, - type: "tag-and-attr", - attributes: [ - fill && - new JSXAttribute("fill", new StringLiteral(fill || "current")), - new JSXAttribute("d", new StringLiteral(this.data ?? "")), - ], - }; - }, - }; + path({ fill }: { fill: string | false }) { + return { + key: new WidgetKey(`${this.key.id}.svg-path`, "svg-path"), + styleData: () => null, + jsxConfig: () => { + const _tag = JSX.identifier("path"); + return { + tag: _tag, + type: "tag-and-attr", + attributes: [ + fill && + new JSXAttribute("fill", new StringLiteral(fill || "current")), + new JSXAttribute("d", new StringLiteral(this.data ?? "")), + ], + }; + }, + }; + } + private _init_children() { if (!this.fill) { - return [path_with_fill("transparent")]; + return [this.path({ fill: "transparent" })]; } if (Array.isArray(this.fill)) { @@ -109,11 +110,11 @@ export class SvgElement extends StylableJsxWidget { } else { switch (this.fill.type) { case "solid-color": { - return [path_with_fill(css.color(this.fill as Color))]; + return [this.path({ fill: css.color(this.fill as Color) })]; } case "graphics": { console.error("graphics fill for svg not supported."); - return [path_with_fill("black")]; + return [this.path({ fill: "black" })]; } case "gradient": { switch (this.fill._type) { @@ -168,11 +169,11 @@ export class SvgElement extends StylableJsxWidget { }, }; - return [fill, path_with_fill(`url(#${fillid})`)]; + return [fill, this.path({ fill: `url(#${fillid})` })]; } default: { console.error("unsupported gradient type for svg path."); - return [path_with_fill("black")]; + return [this.path({ fill: "black" })]; } } } @@ -199,8 +200,8 @@ export class SvgElement extends StylableJsxWidget { }; } - jsxConfig(): StylableJSXElementConfig { - return { + jsxConfig(): StylableJSXElementConfig | UnstylableJSXElementConfig { + return { type: "tag-and-attr", tag: JSX.identifier("svg"), attributes: [ diff --git a/packages/builder-web-core/widgets-native/stack/index.ts b/packages/builder-web-core/widgets-native/stack/index.ts index 2315b0d8..9b7b371b 100644 --- a/packages/builder-web-core/widgets-native/stack/index.ts +++ b/packages/builder-web-core/widgets-native/stack/index.ts @@ -4,18 +4,18 @@ import { StylableJSXElementConfig, StylableJsxWidget, } from "@web-builder/core"; -import { JSXElementConfig, WidgetKey } from "../.."; +import { WidgetKey } from "../.."; import { CSSProperties, CSSProperty } from "@coli.codes/css"; -import { BoxShadowManifest } from "@reflect-ui/core/lib/box-shadow"; import * as css from "@web-builder/styles"; import { + Background, + BoxShadowManifest, Border, BorderRadiusManifest, Clip, DimensionLength, } from "@reflect-ui/core"; import { CssMinHeightMixin } from "../../widgets"; -import { Background } from "@reflect-ui/core/lib/background"; export class Stack extends MultiChildWidget implements CssMinHeightMixin { readonly _type = "stack"; diff --git a/packages/builder-web-nodejs/package.json b/packages/builder-web-nodejs/package.json index 6200be49..0b2343f1 100644 --- a/packages/builder-web-nodejs/package.json +++ b/packages/builder-web-nodejs/package.json @@ -1,5 +1,5 @@ { - "name": "@coli.codes/nodejs-builder", + "name": "@web-builder/nodejs", "version": "0.0.0", "dependencies": { "assert": "^2.0.0", @@ -8,4 +8,4 @@ "devDependencies": { "@types/node": "^15.12.1" } -} +} \ No newline at end of file diff --git a/packages/builder-web-nodejs/stdlib/index.ts b/packages/builder-web-nodejs/stdlib/index.ts index 0af0d842..9643d3e0 100644 --- a/packages/builder-web-nodejs/stdlib/index.ts +++ b/packages/builder-web-nodejs/stdlib/index.ts @@ -90,6 +90,25 @@ const REACT_SCRIPTS: StandardLibraryManifest = { /// endregion react (stand-alone) /// +/// +/// region react-native +/// + +/** + * last-update: Feb 2022 + * https://www.npmjs.com/package/react-native + */ +const REACT_NATIVE: StandardLibraryManifest = { + id: "react-native", + name: "react-native", + version: "0.67.2", + website: "https://reactnative.dev/", +}; + +/// +/// endregion react-native +/// + /// /// region emotion /// @@ -138,6 +157,13 @@ const EMOTION_STYLED: StandardLibraryManifest = { website: "https://emotion.sh", }; +const EMOTION_NATIVE: StandardLibraryManifest = { + id: "@emotion/native", + name: "@emotion/native", + version: "11.0.0", + website: "https://emotion.sh/docs/@emotion/native", +}; + /// /// endregion emotion /// @@ -222,10 +248,14 @@ export const standard_libraries = { types_react_dom: T_REACT_DOM, react_scripts: REACT_SCRIPTS, + // react-native + react_native: REACT_NATIVE, + // emotion emotion_css: EMOTION_CSS, emotion_core: EMOTION_CORE, emotion_styled: EMOTION_STYLED, + emotion_native: EMOTION_NATIVE, emotion_react: EMOTION_REACT, // styled-components diff --git a/packages/builder-web-react/index.ts b/packages/builder-web-react/index.ts index 09a6892e..618d900c 100644 --- a/packages/builder-web-react/index.ts +++ b/packages/builder-web-react/index.ts @@ -1,6 +1,5 @@ export * from "./react-styled-component-widget"; export * from "./react-inline-css-widget"; -export * from "./react-import-specifications"; -export * from "./react-project"; +export * from "./react-css-module-widget"; export * from "./widgets-native"; export * from "./widgets-reflect-react"; diff --git a/packages/builder-web-react/package.json b/packages/builder-web-react/package.json index 19715292..4bae5245 100644 --- a/packages/builder-web-react/package.json +++ b/packages/builder-web-react/package.json @@ -1,11 +1,11 @@ { "name": "@web-builder/react", "description": "Grida's React code builder for development automation built uppon coli", - "version": "0.0.0", + "version": "17.0.2", "license": "Apache 2.0", "homepage": "https://coli.codes/react", - "author": "Bridged Authors", + "author": "Grida Authors", "dependencies": { - "@web-builder/styled": "0.0.0" + "@web-builder/react-core": "17.0.2" } } \ No newline at end of file diff --git a/packages/builder-web-react/react-css-module-widget/from-static-widget-tree.ts b/packages/builder-web-react/react-css-module-widget/from-static-widget-tree.ts new file mode 100644 index 00000000..8367e488 --- /dev/null +++ b/packages/builder-web-react/react-css-module-widget/from-static-widget-tree.ts @@ -0,0 +1,21 @@ +import { JsxWidget } from "@web-builder/core"; +import { ReactComponentExportResult } from "@web-builder/react-core"; +import { react as react_config } from "@designto/config"; +import { ReactCssModuleBuilder } from "./react-css-module-module-builder"; + +/** + * css-module pattern with + */ +export function finalizeReactWidget_CssModule( + entry: JsxWidget, + { + styling, + exporting, + }: { + styling: react_config.ReactCssModuleConfig; + exporting: react_config.ReactComponentExportingCofnig; + } +): ReactComponentExportResult { + const builder = new ReactCssModuleBuilder({ entry, config: styling }); + return builder.asExportableModule().finalize(exporting); +} diff --git a/packages/builder-web-react/react-css-module-widget/index.ts b/packages/builder-web-react/react-css-module-widget/index.ts new file mode 100644 index 00000000..978fa2eb --- /dev/null +++ b/packages/builder-web-react/react-css-module-widget/index.ts @@ -0,0 +1,2 @@ +export * from "./from-static-widget-tree"; +export * from "./react-css-module-module-builder"; diff --git a/packages/builder-web-react/react-css-module-widget/react-css-module-module-builder.ts b/packages/builder-web-react/react-css-module-widget/react-css-module-module-builder.ts new file mode 100644 index 00000000..e2f7dbde --- /dev/null +++ b/packages/builder-web-react/react-css-module-widget/react-css-module-module-builder.ts @@ -0,0 +1,188 @@ +import { ScopedVariableNamer } from "@coli.codes/naming"; +import { ReservedKeywordPlatformPresets } from "@coli.codes/naming/reserved"; +import { + BlockStatement, + Identifier, + Import, + ImportDeclaration, + JSXAttribute, + PropertyAccessExpression, + PropertySignature, + Return, +} from "coli"; +import { + react_imports, + makeReactModuleFile, + ReactWidgetModuleExportable, +} from "@web-builder/react-core"; +import { JsxWidget } from "@web-builder/core"; +import { + buildJsx, + getWidgetStylesConfigMap, + JSXWithoutStyleElementConfig, + JSXWithStyleElementConfig, + WidgetStyleConfigMap, +} from "@web-builder/core/builders"; +import { react as react_config } from "@designto/config"; + +/** + * CSS Module Builder for React Framework + * + * + * - @todo: css file not built + */ +export class ReactCssModuleBuilder { + private readonly entry: JsxWidget; + private readonly widgetName: string; + private readonly stylesConfigWidgetMap: WidgetStyleConfigMap; + private readonly namer: ScopedVariableNamer; + readonly config: react_config.ReactCssModuleConfig; + + constructor({ + entry, + config, + }: { + entry: JsxWidget; + config: react_config.ReactCssModuleConfig; + }) { + this.entry = entry; + this.widgetName = entry.key.name; + this.namer = new ScopedVariableNamer( + entry.key.id, + ReservedKeywordPlatformPresets.react + ); + this.stylesConfigWidgetMap = getWidgetStylesConfigMap(entry, { + namer: this.namer, + rename_tag: false /** css-module tag shoule not be renamed */, + }); + this.config = config; + } + + private stylesConfig( + id: string + ): JSXWithStyleElementConfig | JSXWithoutStyleElementConfig { + return this.stylesConfigWidgetMap.get(id); + } + + private jsxBuilder(widget: JsxWidget) { + // e.g. import styles from "./?.module.css" + const importedCssIdentifier = new Identifier(this.config.importDefault); + + return buildJsx( + widget, + { + styledConfig: (id) => { + const cfg = this.stylesConfig(id); + const _default_attr = cfg.attributes; + + const existing_classname_attr = _default_attr?.find( + // where style refers to react's jsx style attribute + (a) => a.name.name === "className" + ); + + let className: JSXAttribute; + if (existing_classname_attr) { + // ignore this case. (element already with style attriibute may be svg element) + // this case is not supported. (should supported if the logic changes) + } else { + className = new JSXAttribute( + "className", + new BlockStatement( + new PropertyAccessExpression( + new PropertySignature({ + name: importedCssIdentifier, + }), + // TODO: this currently generates styles.ClassName, but it also should be compatible with + // - styles.className + // - styles.["class-name"] + cfg.id + ) + ) + ); + } + + const newattributes = [ + ...(_default_attr ?? []), + // + className, + ]; + + cfg.attributes = newattributes; + + return cfg; + }, + }, + { + self_closing_if_possible: true, + } + ); + } + + partImports(): Array { + return [this.partImportReact(), this.partImportModuleCss()]; + } + + partImportReact(): ImportDeclaration { + return react_imports.import_react_from_react; + } + + partImportModuleCss(): ImportDeclaration { + return ( + new Import() + .importDefault(this.config.importDefault) + // e.g. "./component.module.css" + .from(`./${this.widgetName}.module.${this.config.lang}`) + .make() + ); + } + + partBody(): BlockStatement { + let jsxTree = this.jsxBuilder(this.entry); + return new BlockStatement(new Return(jsxTree)); + } + + asExportableModule() { + const body = this.partBody(); + const imports = this.partImports(); + return new ReactCssModuleWidgetModuleExportable(this.widgetName, { + body, + imports, + }); + } +} + +export class ReactCssModuleWidgetModuleExportable extends ReactWidgetModuleExportable { + constructor( + name, + { + body, + imports, + }: { + body: BlockStatement; + imports: ImportDeclaration[]; + } + ) { + super({ + name, + body, + imports, + }); + } + + asFile({ + exporting, + }: { + exporting: react_config.ReactComponentExportingCofnig; + }) { + return makeReactModuleFile({ + name: this.name, + path: "src/components", + imports: this.imports, + declarations: [], + body: this.body, + config: { + exporting: exporting, + }, + }); + } +} diff --git a/packages/builder-web-react/react-import-specifications/with-styled-components.ts b/packages/builder-web-react/react-import-specifications/with-styled-components.ts deleted file mode 100644 index 33815a4c..00000000 --- a/packages/builder-web-react/react-import-specifications/with-styled-components.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { standard_libraries } from "../../builder-web-nodejs"; -import { Import } from "coli"; - -/** - * CoLI: `import styled from "styled-components";` - */ -const import_styled_from_styled_components = new Import() - .importDefault("styled") - .from(standard_libraries.styled_components.name) - .make(); - -export const styled_components_imports = { - /** - * `import styled from "@emotion/styled";` - */ - import_styled_from_styled_components, -}; diff --git a/packages/builder-web-react/react-inline-css-widget/from-static-widget-tree.ts b/packages/builder-web-react/react-inline-css-widget/from-static-widget-tree.ts index 2fd57ebe..e1d49773 100644 --- a/packages/builder-web-react/react-inline-css-widget/from-static-widget-tree.ts +++ b/packages/builder-web-react/react-inline-css-widget/from-static-widget-tree.ts @@ -1,6 +1,6 @@ import { JsxWidget } from "@web-builder/core"; import { react as react_config } from "@designto/config"; -import { ReactCssInJSBuilder } from "./react-inline-css-module-builder"; +import { ReactInlineCssBuilder } from "./react-inline-css-module-builder"; export function finalizeReactWidget_InlineCss( entry: JsxWidget, @@ -12,7 +12,7 @@ export function finalizeReactWidget_InlineCss( exporting: react_config.ReactComponentExportingCofnig; } ) { - const builder = new ReactCssInJSBuilder({ + const builder = new ReactInlineCssBuilder({ entry, config: styling, }); diff --git a/packages/builder-web-react/react-inline-css-widget/react-inline-css-module-builder.ts b/packages/builder-web-react/react-inline-css-widget/react-inline-css-module-builder.ts index ec92d4b8..84f8ef53 100644 --- a/packages/builder-web-react/react-inline-css-widget/react-inline-css-module-builder.ts +++ b/packages/builder-web-react/react-inline-css-widget/react-inline-css-module-builder.ts @@ -1,6 +1,11 @@ import { ReservedKeywordPlatformPresets } from "@coli.codes/naming/reserved"; import { react as react_config } from "@designto/config"; -import type { JSXElementConfig, JsxWidget } from "@web-builder/core"; +import type { JsxWidget } from "@web-builder/core"; +import { + react_imports, + ReactWidgetModuleExportable, + makeReactModuleFile, +} from "@web-builder/react-core"; import { buildJsx, getWidgetStylesConfigMap, @@ -13,23 +18,17 @@ import { Identifier, ImportDeclaration, JSXAttribute, - Literal, ObjectLiteralExpression, PropertyAssignment, Return, ScopedVariableNamer, - StringLiteral, TemplateLiteral, } from "coli"; -import * as css from "@web-builder/styles"; -import { react_imports } from "../react-import-specifications"; -import { ReactWidgetModuleExportable } from "../react-module"; -import { makeReactModuleFile, ReactModuleFile } from "../react-module-file"; import { cssToJson } from "@web-builder/styles/_utils"; import { CSSProperties } from "@coli.codes/css"; /** - * CSS In JS Style builder for React Framework + * InlineCss Style builder for React Framework * * * css in js is a pattern that allows you to use css as a object in jsx, to property `style`. @@ -40,12 +39,12 @@ import { CSSProperties } from "@coli.codes/css"; * ``` * */ -export class ReactCssInJSBuilder { +export class ReactInlineCssBuilder { private readonly entry: JsxWidget; private readonly widgetName: string; readonly config: react_config.ReactInlineCssConfig; private readonly namer: ScopedVariableNamer; - private readonly styledConfigWidgetMap: WidgetStyleConfigMap; + private readonly stylesConfigWidgetMap: WidgetStyleConfigMap; constructor({ entry, @@ -61,16 +60,16 @@ export class ReactCssInJSBuilder { entry.key.id, ReservedKeywordPlatformPresets.react ); - this.styledConfigWidgetMap = getWidgetStylesConfigMap(entry, { + this.stylesConfigWidgetMap = getWidgetStylesConfigMap(entry, { namer: this.namer, rename_tag: false, }); } - private styledConfig( + private stylesConfig( id: string ): JSXWithStyleElementConfig | JSXWithoutStyleElementConfig { - return this.styledConfigWidgetMap.get(id); + return this.stylesConfigWidgetMap.get(id); } private jsxBuilder(widget: JsxWidget) { @@ -78,7 +77,7 @@ export class ReactCssInJSBuilder { widget, { styledConfig: (id) => { - const cfg = this.styledConfig(id); + const cfg = this.stylesConfig(id); const _default_attr = cfg.attributes; const existingstyleattr = _default_attr?.find( diff --git a/packages/builder-web-react/react-project/index.ts b/packages/builder-web-react/react-project/index.ts index b4703b8e..99483036 100644 --- a/packages/builder-web-react/react-project/index.ts +++ b/packages/builder-web-react/react-project/index.ts @@ -1,5 +1,5 @@ import { JsxWidget } from "@web-builder/core"; -import { standard_libraries } from "@coli.codes/nodejs-builder"; +import { standard_libraries } from "@web-builder/nodejs"; import * as templates from "../templates"; /** * builds create-react-app wrapped react app. diff --git a/packages/builder-web-react/react-styled-component-widget/from-static-widget-tree.ts b/packages/builder-web-react/react-styled-component-widget/from-static-widget-tree.ts index b9f4da3a..bceca63e 100644 --- a/packages/builder-web-react/react-styled-component-widget/from-static-widget-tree.ts +++ b/packages/builder-web-react/react-styled-component-widget/from-static-widget-tree.ts @@ -1,5 +1,5 @@ import { JsxWidget, StylableJsxWidget } from "@web-builder/core"; -import { ReactComponentExportResult } from "../export-result"; +import { ReactComponentExportResult } from "@web-builder/react-core"; import { react as react_config } from "@designto/config"; import { ReactStyledComponentsBuilder } from "./react-styled-components-module-builder"; diff --git a/packages/builder-web-react/react-styled-component-widget/react-styled-components-module-builder.ts b/packages/builder-web-react/react-styled-component-widget/react-styled-components-module-builder.ts index 8dcd95d8..0f60454f 100644 --- a/packages/builder-web-react/react-styled-component-widget/react-styled-components-module-builder.ts +++ b/packages/builder-web-react/react-styled-component-widget/react-styled-components-module-builder.ts @@ -4,8 +4,14 @@ import { NoStyleJSXElementConfig, StyledComponentJSXElementConfig, } from "@web-builder/styled"; +import { + react_imports, + makeReactModuleFile, + ReactWidgetModuleExportable, + emotion_styled_imports, + styled_components_imports, +} from "@web-builder/react-core"; import { BlockStatement, Import, ImportDeclaration, Return } from "coli"; -import { react_imports } from "../react-import-specifications"; import { JsxWidget } from "@web-builder/core"; import { buildJsx, @@ -13,9 +19,7 @@ import { WidgetStyleConfigMap, } from "@web-builder/core/builders"; import { react as react_config } from "@designto/config"; -import { makeReactModuleFile, ReactModuleFile } from "../react-module-file"; import { StyledComponentDeclaration } from "@web-builder/styled/styled-component-declaration"; -import { ReactWidgetModuleExportable } from "../react-module"; export class ReactStyledComponentsBuilder { private readonly entry: JsxWidget; @@ -69,15 +73,9 @@ export class ReactStyledComponentsBuilder { partImportStyled() { switch (this.config.module) { case "@emotion/styled": - return new Import() - .importDefault("styled") - .from("@emotion/styled") - .make(); + return emotion_styled_imports.import_styled_from_emotion_styled; case "styled-components": - return new Import() - .importDefault("styled") - .from("styled-components") - .make(); + return styled_components_imports.import_styled_from_styled_components; } } diff --git a/packages/builder-web-styled-components/index.ts b/packages/builder-web-styled-components/index.ts index 305023e4..78daf6df 100644 --- a/packages/builder-web-styled-components/index.ts +++ b/packages/builder-web-styled-components/index.ts @@ -71,7 +71,7 @@ export function buildStyledComponentConfig( id: styledVar.id.name, tag: handle(config.tag), attributes: config.attributes, - style: widget.style, + style: widget.finalStyle, styledComponent: styledVar, }; } else { @@ -82,3 +82,5 @@ export function buildStyledComponentConfig( }; } } + +export * from "./styled-component-declaration"; diff --git a/packages/builder-web-styled-components/styled-component-declaration.ts b/packages/builder-web-styled-components/styled-component-declaration.ts index 0b373956..8d8f80cf 100644 --- a/packages/builder-web-styled-components/styled-component-declaration.ts +++ b/packages/builder-web-styled-components/styled-component-declaration.ts @@ -43,15 +43,14 @@ export class StyledComponentDeclaration extends VariableDeclaration { style: CSSProperties, html5tag: Html5IdentifierNames ): TaggedTemplateExpression { - const stylestring = buildCssStandard(style); - const formatedStyleStringWithTab = formatStyledTempplateString(stylestring); + const content = formatStyledTempplateString(buildCssStandard(style)); return new TaggedTemplateExpression( new PropertyAccessExpression( StyledComponentDeclaration.styledIdentifier, html5tag ), { - template: new TemplateLiteral(formatedStyleStringWithTab), + template: new TemplateLiteral(content), } ); } @@ -90,7 +89,7 @@ export function declareStyledComponentVariable( } /// - const style_data = widgetConfig.style; + const style_data = widgetConfig.finalStyle; /** * if the style is null, it means don't make element as a styled component at all. if style is a empty object, it means to make a empty styled component. */ diff --git a/packages/designto-code/package.json b/packages/designto-code/package.json index b15f2360..268aadfb 100644 --- a/packages/designto-code/package.json +++ b/packages/designto-code/package.json @@ -7,6 +7,7 @@ "@designto/token": "0.0.0", "@designto/flutter": "0.0.1", "@designto/react": "0.0.0", + "@designto/react-native": "0.0.0", "@designto/web": "0.0.0", "@design-sdk/universal": "0.0.0", "@reflect-ui/detection": "0.1.1", diff --git a/packages/designto-code/react-native/index.ts b/packages/designto-code/react-native/index.ts new file mode 100644 index 00000000..f6e552a2 --- /dev/null +++ b/packages/designto-code/react-native/index.ts @@ -0,0 +1 @@ +export * from "@designto/react-native"; diff --git a/packages/designto-code/universal/design-to-code.ts b/packages/designto-code/universal/design-to-code.ts index 582e3692..66e654cf 100644 --- a/packages/designto-code/universal/design-to-code.ts +++ b/packages/designto-code/universal/design-to-code.ts @@ -1,9 +1,10 @@ import { input, output, config, build } from "../proc"; import { tokenize, wrap } from "@designto/token"; import { Widget } from "@reflect-ui/core"; -import * as toreact from "@designto/react"; -import * as tovanilla from "@designto/vanilla"; -import * as toflutter from "@designto/flutter"; +import * as toReact from "@designto/react"; +import * as toReactNative from "@designto/react-native"; +import * as toVanilla from "@designto/vanilla"; +import * as toFlutter from "@designto/flutter"; import { fetch_all_assets, finalize_temporary_assets_with_prefixed_static_string_keys__dangerously, @@ -121,6 +122,16 @@ export async function designToCode({ })), ..._tokenized_widget_input, }; + case "react-native": + return { + ...(await designToReactNative({ + input: _tokenized_widget_input, + build_config: build_config, + reactnative_config: framework_config, + asset_config: asset_config, + })), + ..._tokenized_widget_input, + }; case "flutter": return { ...(await designToFlutter({ @@ -132,12 +143,17 @@ export async function designToCode({ ..._tokenized_widget_input, }; } - throw `The framework "${framework_config}" is not supported at this point.`; + + throw `The framework "${ + // @ts-ignore + framework_config.framework + }" is not supported at this point.`; return; } export const designTo = { react: designToReact, + reactnative: designToReactNative, vue: designToVue, flutter: designToFlutter, }; @@ -161,7 +177,7 @@ export async function designToReact({ // automatically fallbacks if no valid data was passed !input.reusable_widget_tree ) { - const reactwidget = toreact.buildReactWidget(input.widget); + const reactwidget = toReact.buildReactWidget(input.widget); if (process.env.NODE_ENV === "development") { console.info("dev::", "final web token composed", { input: input.widget, @@ -169,7 +185,7 @@ export async function designToReact({ }); } - const res = toreact.buildReactApp(reactwidget, react_config); + const res = toReact.buildReactApp(reactwidget, react_config); // ------------------------------------------------------------------------ // finilize temporary assets // this should be placed somewhere else @@ -188,12 +204,39 @@ export async function designToReact({ return res; } else { - return toreact.buildReusableReactApp__Experimental( + return toReact.buildReusableReactApp__Experimental( input.reusable_widget_tree ) as any; } } +export async function designToReactNative({ + input, + reactnative_config, + build_config, + asset_config, +}: { + input: { widget: Widget; reusable_widget_tree? }; + reactnative_config: config.ReactNativeFrameworkConfig; + /** + * TODO: pass this to tokenizer +@ + */ + build_config: config.BuildConfiguration; + asset_config?: AssetsConfig; +}): Promise { + const rnWidget = toReactNative.buildReactNativeWidget(input.widget); + const res = toReactNative.buildReactNativeApp(rnWidget, reactnative_config); + return res; + + // console.error("designToReactNative is not implemented yet."); + // return { + // code: { raw: "// react-native is not yet supported" }, + // scaffold: { raw: "// react-native is not yet supported" }, + // name: "rn app", + // id: input.widget.key.id, + // }; +} + export async function designToFlutter({ input, asset_config, @@ -210,8 +253,8 @@ export async function designToFlutter({ }): Promise { await Promise.resolve(); - const flutterwidget = toflutter.buildFlutterWidget(input.widget); - const flutterapp = toflutter.buildFlutterApp(flutterwidget, { + const flutterwidget = toFlutter.buildFlutterWidget(input.widget); + const flutterapp = toFlutter.buildFlutterApp(flutterwidget, { id: input.widget.key.id, }); @@ -252,11 +295,11 @@ export async function designToVanilla({ vanilla_config: config.VanillaFrameworkConfig; asset_config?: AssetsConfig; }): Promise { - const vanillawidget = tovanilla.buildVanillaWidget( + const vanillawidget = toVanilla.buildVanillaWidget( input.widget, vanilla_config ); - const res = tovanilla.buildVanillaFile(vanillawidget, vanilla_config); + const res = toVanilla.buildVanillaFile(vanillawidget, vanilla_config); // ------------------------------------------------------------------------ // finilize temporary assets diff --git a/packages/designto-react-native/app/index.ts b/packages/designto-react-native/app/index.ts new file mode 100644 index 00000000..c839a141 --- /dev/null +++ b/packages/designto-react-native/app/index.ts @@ -0,0 +1,72 @@ +import { Widget } from "@reflect-ui/core"; +import { reactnative as config } from "@designto/config"; +import { JsxWidget } from "@web-builder/react"; +import assert from "assert"; +import { + finalizeReactNativeWidget_StyleSheet, + finalizeReactNativeWidget_StyledComponents, + finalizeReactNativeWidget_InlineStyle, +} from "@web-builder/react-native"; +import { buildRNWidgetFromTokens } from "../tokens-to-rn-widget"; + +/** + * + */ +export function buildReactNativeApp( + entry: JsxWidget, + config: config.ReactNativeFrameworkConfig +): config.ReactNativeComponentOutput { + switch (config.styling.type) { + case "react-native-stylesheet": { + const res = finalizeReactNativeWidget_StyleSheet(entry, { + styling: config.styling, + exporting: config.component_declaration_style.exporting_style, + }); + return { + id: entry.key.id, + name: entry.key.name, + code: { raw: res.code }, + scaffold: { raw: res.code }, + }; + } + case "styled-components": { + const res = finalizeReactNativeWidget_StyledComponents(entry, { + styling: config.styling, + exporting: config.component_declaration_style.exporting_style, + }); + return { + id: entry.key.id, + name: entry.key.name, + code: { raw: res.code }, + scaffold: { raw: res.code }, + }; + } + case "inline-style": { + const res = finalizeReactNativeWidget_InlineStyle(entry, { + styling: config.styling, + exporting: config.component_declaration_style.exporting_style, + }); + return { + id: entry.key.id, + name: entry.key.name, + code: { raw: res.code }, + scaffold: { raw: res.code }, + }; + } + } + throw new Error( + `RN: Unsupported styling type: ${ + // @ts-ignore + config.styling.type + }` + ); +} + +export function buildReactNativeWidget(widget: Widget) { + assert( + widget instanceof Widget, + "A valid reflect widget manifest should be passed as an input. none was passed." + ); + + return buildRNWidgetFromTokens(widget, {}); +} diff --git a/packages/designto-react-native/index.ts b/packages/designto-react-native/index.ts new file mode 100644 index 00000000..ac5307de --- /dev/null +++ b/packages/designto-react-native/index.ts @@ -0,0 +1 @@ +export * from "./app"; diff --git a/packages/designto-react-native/package.json b/packages/designto-react-native/package.json new file mode 100644 index 00000000..a84b7a0f --- /dev/null +++ b/packages/designto-react-native/package.json @@ -0,0 +1,14 @@ +{ + "name": "@designto/react-native", + "version": "0.0.0", + "description": "design to react-native", + "main": "dist/index.js", + "repository": "https://github.com/gridaco/designto-code", + "author": "Grida authors", + "license": "Apache 2.0", + "private": false, + "dependencies": { + "@web-builder/react": "17.0.2", + "@web-builder/react-native": "0.67.0" + } +} \ No newline at end of file diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-instanciation.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-instanciation.ts new file mode 100644 index 00000000..fd15c819 --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-instanciation.ts @@ -0,0 +1,25 @@ +import { Composer } from "."; +import * as reusable from "@code-features/component/tokens"; +import * as rn from "@web-builder/react-native"; +import { nameit, NameCases } from "coli"; + +export function compose_instanciation( + widget: reusable.InstanceWidget, + child_composer: Composer // not used +) { + const masterkey = widget.meta.master.key; + + const identifier = nameit(widget.meta.master.key.originName, { + case: NameCases.pascal, + }).name; + + // return new rn.InstanciationElement({ + // key: { + // name: "ExampleUsageOf_" + identifier, // FIXME: should not use identifier as name + // id: widget.key.id, + // }, + // identifier: identifier, + // arguments: widget.meta.arguments, + // }); + throw "instanciation for rn is not ready"; +} diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-wrap.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-wrap.ts new file mode 100644 index 00000000..a3dd38b5 --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-wrap.ts @@ -0,0 +1,47 @@ +import * as rn from "@web-builder/react-native"; +import * as core from "@reflect-ui/core"; +import { keyFromWidget } from "@web-builder/core"; + +export function compose_wrap( + wrap: core.Wrap, + children: rn.StylableJsxWidget[] +): rn.Flex { + return new rn.Flex({ + ...wrap, + direction: wrap.direction, + mainAxisAlignment: wrap_alignment_to_main_axis_alignment(wrap.alignment), + crossAxisAlignment: wrap_cross_alignment_to_cross_axis_alignment( + wrap.crossAxisAlignment + ), + itemSpacing: wrap.spacing, + flexWrap: "wrap", + children: children, + key: keyFromWidget(wrap), + }); +} + +const wrap_alignment_to_main_axis_alignment = ( + wrapalignment: core.WrapAlignment +): core.MainAxisAlignment => { + switch (wrapalignment) { + case core.WrapAlignment.start: + return core.MainAxisAlignment.start; + case core.WrapAlignment.end: + return core.MainAxisAlignment.end; + case core.WrapAlignment.center: + return core.MainAxisAlignment.center; + } +}; + +const wrap_cross_alignment_to_cross_axis_alignment = ( + wrapcrossalignment: core.WrapCrossAlignment +) => { + switch (wrapcrossalignment) { + case core.WrapCrossAlignment.start: + return core.CrossAxisAlignment.start; + case core.WrapCrossAlignment.end: + return core.CrossAxisAlignment.end; + case core.WrapCrossAlignment.center: + return core.CrossAxisAlignment.center; + } +}; diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-blurred.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-blurred.ts new file mode 100644 index 00000000..55ba9e38 --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-blurred.ts @@ -0,0 +1,35 @@ +import * as core from "@reflect-ui/core"; +import { Composer } from "."; +import type { ViewStyle } from "react-native"; + +/** + * @deprecated Blur for RN not supported yet. + * + * Learn more + * - https://stackoverflow.com/questions/37131278/how-to-make-the-blur-effect-with-react-native + * + * @param widget + * @param child_composer + * @returns + */ +export function compose_wrapped_with_blurred( + widget: core.Blurred, + child_composer: Composer +) { + const child = child_composer(widget.child); + const isBlurVisibile = widget.blur.visible; + if (isBlurVisibile) { + if (widget.blur.type === "LAYER_BLUR") { + child.extendStyle({ + // FIXME: blur not supported in RN + // filter: css.blur(widget.blur.radius), + }); + } else if (widget.blur.type === "BACKGROUND_BLUR") { + child.extendStyle({ + // FIXME: backdrop-filter not supported in RN + // "backdrop-filter": css.blur(widget.blur.radius), + }); + } + } + return child; +} diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-clip-rrect.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-clip-rrect.ts new file mode 100644 index 00000000..4742a92a --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-clip-rrect.ts @@ -0,0 +1,39 @@ +import * as core from "@reflect-ui/core"; +import { Composer } from "."; +import * as css from "@web-builder/styles"; +import type { ViewStyle } from "react-native"; + +export function compose_wrapped_with_clip_rrect( + widget: core.ClipRRect, + child_composer: Composer +) { + const child = child_composer(widget.child); + const br = css.borderRadius(widget.borderRadius); + + const style: ViewStyle = { + overflow: "hidden", // do we need this on rn? + width: "100%", // ----- need better approach + height: "100%", // ----- need better approach + }; + + // convert css property to rn property + if (br["border-radius"]) { + style["borderRadius"] = br["border-radius"] as any as number; + } else { + style["borderTopLeftRadius"] = br[ + "border-top-left-radius" + ] as any as number; + style["borderTopRightRadius"] = br[ + "border-top-right-radius" + ] as any as number; + style["borderBottomRightRadius"] = br[ + "border-bottom-right-radius" + ] as any as number; + style["borderBottomLeftRadius"] = br[ + "border-bottom-left-radius" + ] as any as number; + } + + child.extendStyle(style); + return child; +} diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-opacity.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-opacity.ts new file mode 100644 index 00000000..55801f56 --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-opacity.ts @@ -0,0 +1,15 @@ +import * as core from "@reflect-ui/core"; +import { Composer } from "."; +import * as css from "@web-builder/styles"; +import type { ViewStyle } from "react-native"; + +export function compose_wrapped_with_opacity( + widget: core.Opacity, + child_composer: Composer +) { + const child = child_composer(widget.child); + child.extendStyle({ + opacity: css.opacity(widget.opacity), + }); + return child; +} diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-overflow-box.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-overflow-box.ts new file mode 100644 index 00000000..cec5bf75 --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-overflow-box.ts @@ -0,0 +1,14 @@ +import * as core from "@reflect-ui/core"; +import { Composer } from "."; +import type { ViewStyle } from "react-native"; + +export function compose_wrapped_with_overflow_box( + widget: core.OverflowBox, + child_composer: Composer +) { + const child = child_composer(widget.child); + child.extendStyle({ + overflow: "hidden", + }); + return child; +} diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-positioned.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-positioned.ts new file mode 100644 index 00000000..956e28ce --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-positioned.ts @@ -0,0 +1,25 @@ +import * as core from "@reflect-ui/core"; +import { Composer } from "."; +import * as css from "@web-builder/styles"; +import type { ViewStyle } from "react-native"; + +export function compose_wrapped_with_positioned( + widget: core.Positioned, + child_composer: Composer +) { + const child = child_composer(widget.child); + // ------------------------------------- + // override w & h with position provided w/h + child.extendStyle({ + width: css.length(widget.width), + height: css.length(widget.height), + }); + // ------------------------------------- + child.constraint = { + left: widget.left, + top: widget.top, + right: widget.right, + bottom: widget.bottom, + }; + return child; +} diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-rotation.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-rotation.ts new file mode 100644 index 00000000..0ad327e2 --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-rotation.ts @@ -0,0 +1,18 @@ +import * as core from "@reflect-ui/core"; +import { Composer } from "."; +import type { ViewStyle } from "react-native"; + +export function compose_wrapped_with_rotation( + widget: core.Rotation, + child_composer: Composer +) { + const child = child_composer(widget.child); + child.extendStyle({ + transform: [ + { + rotate: `${widget.rotation}deg`, + }, + ], + }); + return child; +} diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-sized-box.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-sized-box.ts new file mode 100644 index 00000000..28244639 --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-sized-box.ts @@ -0,0 +1,16 @@ +import * as core from "@reflect-ui/core"; +import { Composer } from "."; +import * as css from "@web-builder/styles"; +import type { ViewStyle } from "react-native"; + +export function compose_wrapped_with_sized_box( + widget: core.SizedBox, + child_composer: Composer +) { + const child = child_composer(widget.child); + child.extendStyle({ + width: css.px(widget.width), + height: css.px(widget.height), + }); + return child; +} diff --git a/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-stretched.ts b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-stretched.ts new file mode 100644 index 00000000..50364780 --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/compose-wrapped-with-stretched.ts @@ -0,0 +1,26 @@ +import * as core from "@reflect-ui/core"; +import { Composer } from "."; +import { Stretched } from "@designto/token/tokens"; +import type { ViewStyle } from "react-native"; + +export function compose_wrapped_with_clip_stretched( + widget: Stretched, + child_composer: Composer +) { + let remove_size; + switch (widget.axis) { + case core.Axis.horizontal: + remove_size = "height"; + break; + case core.Axis.vertical: + remove_size = "width"; + break; + } + + const child = child_composer(widget.child); + child.extendStyle({ + alignSelf: "stretch", + [remove_size]: undefined, + }); + return child; +} diff --git a/packages/designto-react-native/tokens-to-rn-widget/index.ts b/packages/designto-react-native/tokens-to-rn-widget/index.ts new file mode 100644 index 00000000..55d904eb --- /dev/null +++ b/packages/designto-react-native/tokens-to-rn-widget/index.ts @@ -0,0 +1,281 @@ +import * as core from "@reflect-ui/core"; +import { tokens as special } from "@designto/token"; +import * as rn from "@web-builder/react-native"; +import { JsxWidget, StylableJsxWidget, keyFromWidget } from "@web-builder/core"; +import { MainImageRepository } from "@design-sdk/core/assets-repository"; +import * as css from "@web-builder/styles"; +import { compose_wrap } from "./compose-wrap"; +import { compose_wrapped_with_clip_rrect } from "./compose-wrapped-with-clip-rrect"; +import { compose_wrapped_with_rotation } from "./compose-wrapped-with-rotation"; +import { compose_wrapped_with_blurred } from "./compose-wrapped-with-blurred"; +import { compose_wrapped_with_opacity } from "./compose-wrapped-with-opacity"; +import { compose_wrapped_with_positioned } from "./compose-wrapped-with-positioned"; +import { compose_wrapped_with_clip_stretched } from "./compose-wrapped-with-stretched"; +import { compose_wrapped_with_sized_box } from "./compose-wrapped-with-sized-box"; +import { compose_wrapped_with_overflow_box } from "./compose-wrapped-with-overflow-box"; +import { compose_instanciation } from "./compose-instanciation"; +import { IWHStyleWidget } from "@reflect-ui/core"; +import * as reusable from "@code-features/component/tokens"; +import assert from "assert"; + +interface RnWidgetComposerConfig {} + +export function buildRNWidgetFromTokens( + widget: core.Widget, + config: RnWidgetComposerConfig +): JsxWidget { + const composed = compose( + widget, + { + is_root: true, + }, + config + ); + return composed; +} + +export type Composer = ( + widget: core.Widget, + context?: { is_root: boolean }, + config?: RnWidgetComposerConfig +) => StylableJsxWidget; + +function compose( + widget: core.Widget, + context: { is_root: boolean }, + config: RnWidgetComposerConfig +): T { + assert(widget, "input widget is required"); + + const handleChildren = ( + children: core.Widget[] + ): T[] => { + return children?.map((c) => { + return handleChild(c); + }); + }; + + const handleChild = (child: core.Widget): T => { + return compose(child, { ...context, is_root: false }, config); + }; + + const _remove_width_height_if_root_wh = { + width: context.is_root ? undefined : (widget as IWHStyleWidget).width, + height: context.is_root ? undefined : (widget as IWHStyleWidget).height, + }; + + const default_props_for_layout = { + ...widget, + ..._remove_width_height_if_root_wh, + }; + + const _key = keyFromWidget(widget); + let thisRnWidget: JsxWidget; + + // ------------------------------------ + // region layouts + // ------------------------------------ + if (widget instanceof core.Column) { + thisRnWidget = new rn.Column({ + ...default_props_for_layout, + children: handleChildren(widget.children), + key: _key, + }); + } else if (widget instanceof core.Row) { + thisRnWidget = new rn.Row({ + ...default_props_for_layout, + children: handleChildren(widget.children), + key: _key, + }); + } else if (widget instanceof core.Wrap) { + thisRnWidget = compose_wrap(widget, handleChildren(widget.children)); + } else if (widget instanceof core.Flex) { + thisRnWidget = new rn.Flex({ + ...widget, + ...default_props_for_layout, + children: handleChildren(widget.children), + key: _key, + }); + } else if (widget instanceof core.Stack) { + const _remove_overflow_if_root_overflow = { + clipBehavior: context.is_root + ? undefined + : (widget as core.Stack).clipBehavior, + }; + + thisRnWidget = new rn.Stack({ + ...default_props_for_layout, + ..._remove_overflow_if_root_overflow, + children: handleChildren(widget.children as []), + key: _key, + }); + } else if (widget instanceof core.SingleChildScrollView) { + // since web css does not require additional hierarchy for scroll view, we can simply merge properties. + // merge single child scroll view properties for + thisRnWidget = new rn.Flex({ + ...widget.child, + ...widget, + // overflow: "auto", // TODO: inspect me + children: handleChildren(widget.children as []), + key: _key, + }); + // + } else if (widget instanceof core.Positioned) { + thisRnWidget = compose_wrapped_with_positioned(widget, handleChild); + } else if (widget instanceof core.SizedBox) { + thisRnWidget = compose_wrapped_with_sized_box(widget, handleChild); + } else if (widget instanceof core.OverflowBox) { + thisRnWidget = compose_wrapped_with_overflow_box(widget, handleChild); + } + // ENGREGION layouts ------------------------------------------------------------------------ + else if (widget instanceof core.Opacity) { + thisRnWidget = compose_wrapped_with_opacity(widget, handleChild); + } else if (widget instanceof core.Blurred) { + thisRnWidget = compose_wrapped_with_blurred(widget, handleChild); + } else if (widget instanceof core.Rotation) { + thisRnWidget = compose_wrapped_with_rotation(widget, handleChild); + } + // ----- region clip path ------ + else if (widget instanceof core.ClipRRect) { + thisRnWidget = compose_wrapped_with_clip_rrect(widget, handleChild); + } else if (widget instanceof core.ClipPath) { + // FIXME: add clip-path support for react-native + // const child = handleChild(widget.child); + // child.extendStyle({ + // ...css.clipPath(widget), + // top: undefined, + // left: undefined, + // right: undefined, + // bottom: undefined, + // }); + // thisRnWidget = child; + } + // ----- endregion clip path ------ + else if (widget instanceof core.RenderedText) { + thisRnWidget = new rn.Text({ + ...widget, + key: _key, + textStyle: + widget.style /** explicit assignment - field name is different */, + data: widget.data, + // experimental element specification + elementPreference: widget.element_preference_experimental, + }); + } else if (widget instanceof core.VectorWidget) { + thisRnWidget = rn.SvgElement( + { + width: widget.width, + height: widget.height, + data: widget.data, + fill: widget.fill, + key: _key, + }, + { + config: { + module: "react-native-svg", + prefer_mode: "svg-with-path", + }, + } + ); + } else if (widget instanceof core.ImageWidget) { + thisRnWidget = new rn.ImageElement({ + ...widget, + src: widget.src, + key: _key, + }); + } else if (widget instanceof core.IconWidget) { + // TODO: not ready - svg & named icon not supported + + switch ((widget.icon as core.IconData)._type) { + case "named-icon": { + const _tmp_icon_as_img = MainImageRepository.instance + .get("fill-later-assets") + .addImage({ + key: widget.key.id, + }); + + thisRnWidget = new rn.ImageElement({ + ...widget, + width: widget.size, + height: widget.size, + src: + _tmp_icon_as_img.url || + /*fallback*/ "https://bridged-service-static.s3.us-west-1.amazonaws.com/branding/logo/32.png", // TODO: change this + key: _key, + }); + break; + } + case "remote-uri": { + thisRnWidget = new rn.ImageElement({ + ...widget, + width: widget.size, + height: widget.size, + src: widget.icon.uri, + key: _key, + alt: "icon", + }); + break; + } + } + } + + // execution order matters - some above widgets inherits from Container, this shall be handled at the last. + else if (widget instanceof core.Container) { + const container = new rn.Container({ + ...widget, + key: _key, + borderRadius: widget.borderRadius, + width: widget.width, + height: widget.height, + }); + container.x = widget.x; + container.y = widget.y; + container.background = widget.background; + thisRnWidget = container; + } + + // ------------------------------------- + // special tokens + // ------------------------------------- + else if (widget instanceof special.Stretched) { + thisRnWidget = compose_wrapped_with_clip_stretched(widget, handleChild); + } + // ------------------------------------- + // ------------------------------------- + // support component / instance + else if (widget instanceof reusable.InstanceWidget) { + throw "not implemented"; + // thisRnWidget = compose_instanciation(widget, handleChild); + } + // + // ------------------------------------- + // ------------------------------------- + // end of logic gate + // ------------------------------------- + else { + if (thisRnWidget) + throw new Error( + "internal error. this final exception gate should not be entered since there is already a composed widget." + ); + // todo - handle case more specific + thisRnWidget = new rn.ErrorWidget({ + key: _key, + errorMessage: `The input design was not handled. "${ + widget.key.originName + }" type of "${widget._type}" - ${JSON.stringify(widget.key)}`, + }); + console.warn("not handled", widget); + } + // ------------------------------------- + // ------------------------------------- + + // post extending - do not abuse this + if (context.is_root) { + // thisRnWidget.extendStyle({ + // // TODO: add overflow x hide handling by case. + // // "overflow-x": "hidden", + // }); + } + + return thisRnWidget as T; +} diff --git a/packages/designto-react/app/index.ts b/packages/designto-react/app/index.ts index 7629b57b..a771c884 100644 --- a/packages/designto-react/app/index.ts +++ b/packages/designto-react/app/index.ts @@ -3,6 +3,7 @@ import { buildWebWidgetFromTokens } from "@designto/web/tokens-to-web-widget"; import { finalizeReactWidget_StyledComponents, finalizeReactWidget_InlineCss, + finalizeReactWidget_CssModule, finalizeReactReusable_StyledComponents__Experimental, JsxWidget, } from "@web-builder/react"; @@ -36,7 +37,18 @@ export function buildReactApp( code: { raw: res.code }, scaffold: { raw: res.code }, }; - break; + } + case "css-module": { + const res = finalizeReactWidget_CssModule(entry, { + styling: config.styling, + exporting: config.component_declaration_style.exporting_style, + }); + return { + id: entry.key.id, + name: entry.key.name, + code: { raw: res.code }, + scaffold: { raw: res.code }, + }; } case "css": default: { @@ -55,6 +67,9 @@ export function buildReactWidget(widget: Widget) { return buildWebWidgetFromTokens(widget, {}); } +/** + * Experimental components support for react + */ export function buildReusableReactApp__Experimental({ tree, components, diff --git a/packages/designto-react/package.json b/packages/designto-react/package.json index e69b594f..fd9e7dbd 100644 --- a/packages/designto-react/package.json +++ b/packages/designto-react/package.json @@ -8,6 +8,6 @@ "license": "Apache 2.0", "private": false, "dependencies": { - "@web-builder/react": "0.0.0" + "@web-builder/react": "17.0.2" } } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 293ab544..7d54fcc6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,13 @@ resolved "https://registry.yarnpkg.com/@abraham/reflection/-/reflection-0.8.0.tgz#f8103d1a4a0ed7b846668e35834c22c14044e0f1" integrity sha512-Oy2jk9hHEI/t1avTgB4BCQtceUOqwrElQdecGS0wTqH5rc0KXysUrhpX4ep0vCMjoxzNyXSx7JU+KWkrkFIKOg== +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + "@ampproject/toolbox-core@^2.6.0", "@ampproject/toolbox-core@^2.8.0": version "2.8.0" resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.8.0.tgz#4c291c470fa30c0c2f3c7952dbcd6df2a4ec0df9" @@ -64,10 +71,11 @@ cross-fetch "3.1.2" "@babel/cli@^7.14.5": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.16.0.tgz#a729b7a48eb80b49f48a339529fc4129fd7bcef3" - integrity sha512-WLrM42vKX/4atIoQB+eb0ovUof53UUvecb4qGjU2PDDWRiZr50ZpiV8NpcLo7iSxeGYrRG0Mqembsa+UrTAV6Q== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.17.3.tgz#0ccb93a348d0e3a4ff8776a63dbeefd329f7b3cc" + integrity sha512-1+WRlh1IqLocOp122CLx4if345RSHMspwIZNJTlqG/GA46HVZC6p49N1kolfdd2/GOdr+tu4nScbAR3ACJ2ZiA== dependencies: + "@jridgewell/trace-mapping" "^0.3.4" commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" @@ -86,29 +94,17 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - -"@babel/code-frame@^7.16.7", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" - integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== - -"@babel/compat-data@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" - integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" + integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== "@babel/core@7.12.9": version "7.12.9" @@ -132,88 +128,43 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.14.0", "@babel/core@^7.14.6", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" - integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helpers" "^7.16.5" - "@babel/parser" "^7.16.5" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/core@^7.12.10", "@babel/core@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" - integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== +"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.14.0", "@babel/core@^7.14.6", "@babel/core@^7.16.7", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.4.tgz#a22f1ae8999122873b3d18865e98c7a3936b8c8b" + integrity sha512-R9x5r4t4+hBqZTmioSnkrW+I6NmbojwjGT8p4G2Gw1thWbXIHGDnmGdLdFw0/7ljucdIrNRp7Npgb4CyBYzzJg== dependencies: + "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" + "@babel/generator" "^7.17.3" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.16.7" - "@babel/parser" "^7.16.7" + "@babel/helpers" "^7.17.2" + "@babel/parser" "^7.17.3" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.1.2" semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.16.7", "@babel/generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" - integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== - dependencies: - "@babel/types" "^7.16.8" - jsesc "^2.5.1" - source-map "^0.5.0" -"@babel/generator@^7.16.5", "@babel/generator@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" - integrity sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA== +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.17.3", "@babel/generator@^7.7.2": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" + integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.17.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" - integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-annotate-as-pure@^7.16.7": +"@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz#a8429d064dce8207194b8bf05a70a9ea828746af" - integrity sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" @@ -222,17 +173,7 @@ "@babel/helper-explode-assignable-expression" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" - integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.16.7": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== @@ -242,23 +183,10 @@ browserslist "^4.17.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz#5d1bcd096792c1ebec6249eebc6358eec55d0cad" - integrity sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-member-expression-to-functions" "^7.16.5" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.5" - "@babel/helper-split-export-declaration" "^7.16.0" - -"@babel/helper-create-class-features-plugin@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz#9c5b34b53a01f2097daf10678d65135c1b9f84ba" - integrity sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw== +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.1": + version "7.17.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21" + integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -268,21 +196,13 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" -"@babel/helper-create-regexp-features-plugin@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz#06b2348ce37fccc4f5e18dcd8d75053f2a7c44ff" - integrity sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - regexpu-core "^4.7.1" - "@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48" - integrity sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g== + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^4.7.1" + regexpu-core "^5.0.1" "@babel/helper-define-polyfill-provider@^0.1.5": version "0.1.5" @@ -298,20 +218,6 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" - integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - "@babel/helper-define-polyfill-provider@^0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" @@ -326,13 +232,6 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz#f6a7f38b3c6d8b07c88faea083c46c09ef5451b8" - integrity sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-environment-visitor@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" @@ -340,13 +239,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-explode-assignable-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" - integrity sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-explode-assignable-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" @@ -354,15 +246,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== - dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/helper-function-name@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" @@ -372,13 +255,6 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -386,13 +262,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" @@ -400,13 +269,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-member-expression-to-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz#1bc9f7e87354e86f8879c67b316cb03d3dc2caab" - integrity sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-member-expression-to-functions@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" @@ -414,14 +276,7 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-module-imports@^7.16.7": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== @@ -442,27 +297,6 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" - integrity sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ== - dependencies: - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-simple-access" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - -"@babel/helper-optimise-call-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" - integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" @@ -475,25 +309,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" - integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== - -"@babel/helper-plugin-utils@^7.16.7": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== -"@babel/helper-remap-async-to-generator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz#e706646dc4018942acb4b29f7e185bc246d65ac3" - integrity sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-wrap-function" "^7.16.5" - "@babel/types" "^7.16.0" - "@babel/helper-remap-async-to-generator@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" @@ -503,17 +323,6 @@ "@babel/helper-wrap-function" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helper-replace-supers@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz#96d3988bd0ab0a2d22c88c6198c3d3234ca25326" - integrity sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ== - dependencies: - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-member-expression-to-functions" "^7.16.5" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - "@babel/helper-replace-supers@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" @@ -525,13 +334,6 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-simple-access@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" - integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-simple-access@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" @@ -546,13 +348,6 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" @@ -560,36 +355,16 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - "@babel/helper-validator-identifier@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== - "@babel/helper-validator-option@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== -"@babel/helper-wrap-function@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz#0158fca6f6d0889c3fee8a6ed6e5e07b9b54e41f" - integrity sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA== - dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - "@babel/helper-wrap-function@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" @@ -600,58 +375,28 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" - integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== +"@babel/helpers@^7.12.5", "@babel/helpers@^7.17.2": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" + integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helpers@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.5.tgz#29a052d4b827846dd76ece16f565b9634c554ebd" - integrity sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw== - dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/traverse" "^7.17.0" + "@babel/types" "^7.17.0" -"@babel/highlight@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b" - integrity sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw== +"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.5", "@babel/parser@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.5.tgz#beb3af702e54d24796341ab9420fb329131ad658" - integrity sha512-+Ce7T5iPNWzfu9C1aB5tN3Lyafs5xb3Ic7vBWyZL2KXT3QSdD1dD3CvgOzPmQKoNNRt6uauc0XwNJTQtXC2/Mw== - -"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17" - integrity sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" - integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" +"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" + integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -660,15 +405,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz#358972eaab006f5eb0826183b0c93cbcaf13e1e2" - integrity sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" @@ -678,15 +414,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-proposal-optional-chaining" "^7.16.7" -"@babel/plugin-proposal-async-generator-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz#fd3bd7e0d98404a3d4cbca15a72d533f8c9a2f67" - integrity sha512-C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-remap-async-to-generator" "^7.16.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-proposal-async-generator-functions@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" @@ -704,23 +431,6 @@ "@babel/helper-create-class-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-class-properties@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz#3269f44b89122110f6339806e05d43d84106468a" - integrity sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-proposal-class-static-block@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz#df58ab015a7d3b0963aafc8f20792dcd834952a9" - integrity sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-proposal-class-static-block@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a" @@ -731,21 +441,15 @@ "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-decorators@^7.12.12": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.7.tgz#922907d2e3e327f5b07d2246bcfc0bd438f360d2" - integrity sha512-DoEpnuXK14XV9btI1k8tzNGCutMclpj4yru8aXKoHlVmbO1s+2A+g2+h4JhcjrxkFJqzbymnLG6j/niOf3iFXQ== + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz#c36372ddfe0360cac1ee331a238310bddca11493" + integrity sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.1" "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-decorators" "^7.16.7" - -"@babel/plugin-proposal-dynamic-import@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz#2e0d19d5702db4dcb9bc846200ca02f2e9d60e9e" - integrity sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/plugin-syntax-decorators" "^7.17.0" + charcodes "^0.2.0" "@babel/plugin-proposal-dynamic-import@^7.16.7": version "7.16.7" @@ -763,14 +467,6 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-export-default-from" "^7.16.7" -"@babel/plugin-proposal-export-namespace-from@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz#3b4dd28378d1da2fea33e97b9f25d1c2f5bf1ac9" - integrity sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-proposal-export-namespace-from@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" @@ -779,14 +475,6 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz#1e726930fca139caab6b084d232a9270d9d16f9c" - integrity sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-proposal-json-strings@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" @@ -795,14 +483,6 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz#df1f2e4b5a0ec07abf061d2c18e53abc237d3ef5" - integrity sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" @@ -819,22 +499,6 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz#652555bfeeeee2d2104058c6225dc6f75e2d0f07" - integrity sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz#edcb6379b6cf4570be64c45965d8da7a2debf039" - integrity sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" @@ -853,35 +517,16 @@ "@babel/plugin-transform-parameters" "^7.12.1" "@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" - integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.17.0" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.16.7" -"@babel/plugin-proposal-object-rest-spread@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz#f30f80dacf7bc1404bf67f99c8d9c01665e830ad" - integrity sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.5" - -"@babel/plugin-proposal-optional-catch-binding@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz#1a5405765cf589a11a33a1fd75b2baef7d48b74e" - integrity sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-catch-binding@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" @@ -899,41 +544,14 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz#a5fa61056194d5059366c0009cb9a9e66ed75c1f" - integrity sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz#e418e3aa6f86edd6d327ce84eff188e479f571e0" - integrity sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw== +"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.10" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-private-methods@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz#2086f7d78c1b0c712d49b5c3fbc2d1ca21a7ee12" - integrity sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-proposal-private-property-in-object@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz#a42d4b56005db3d405b12841309dbca647e7a21b" - integrity sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-private-property-in-object@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" @@ -944,15 +562,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.16.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz#35fe753afa7c572f322bd068ff3377bde0f37080" - integrity sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.16.7": +"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== @@ -988,10 +598,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.7.tgz#f66a0199f16de7c1ef5192160ccf5d069739e3d3" - integrity sha512-vQ+PxL+srA7g6Rx6I1e15m55gftknl2X8GCUW1JTlkTaXZLJOS0UcaY0eK9jYT7IYf4awn6qwyghVHLDz1WyMw== +"@babel/plugin-syntax-decorators@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz#a2be3b2c9fe7d78bd4994e790896bc411e2f166d" + integrity sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A== dependencies: "@babel/helper-plugin-utils" "^7.16.7" @@ -1044,14 +654,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.5", "@babel/plugin-syntax-jsx@^7.2.0": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz#bf255d252f78bc8b77a17cadc37d1aa5b8ed4394" - integrity sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-syntax-jsx@^7.16.7": +"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.7", "@babel/plugin-syntax-jsx@^7.2.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== @@ -1114,20 +717,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.16.7": +"@babel/plugin-syntax-typescript@^7.16.7", "@babel/plugin-syntax-typescript@^7.7.2": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz#f47a33e4eee38554f00fb6b2f894fa1f5649b0b3" - integrity sha512-/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" @@ -1135,22 +731,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-arrow-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz#04c18944dd55397b521d9d7511e791acea7acf2d" - integrity sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-async-to-generator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz#89c9b501e65bb14c4579a6ce9563f859de9b34e4" - integrity sha512-TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-remap-async-to-generator" "^7.16.5" - "@babel/plugin-transform-async-to-generator@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" @@ -1160,13 +740,6 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-remap-async-to-generator" "^7.16.8" -"@babel/plugin-transform-block-scoped-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz#af087494e1c387574260b7ee9b58cdb5a4e9b0b0" - integrity sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-block-scoped-functions@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" @@ -1181,13 +754,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-block-scoping@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz#b91f254fe53e210eabe4dd0c40f71c0ed253c5e7" - integrity sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" @@ -1202,27 +768,6 @@ "@babel/helper-split-export-declaration" "^7.16.7" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz#6acf2ec7adb50fb2f3194dcd2909dbd056dcf216" - integrity sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-replace-supers" "^7.16.5" - "@babel/helper-split-export-declaration" "^7.16.0" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz#2af91ebf0cceccfcc701281ada7cfba40a9b322a" - integrity sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-computed-properties@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" @@ -1231,28 +776,13 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" - integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc" + integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-destructuring@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz#89ebc87499ac4a81b897af53bb5d3eed261bd568" - integrity sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-dotall-regex@^7.16.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz#b40739c00b6686820653536d6d143e311de67936" - integrity sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-dotall-regex@^7.16.7": +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== @@ -1260,13 +790,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-duplicate-keys@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz#2450f2742325412b746d7d005227f5e8973b512a" - integrity sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-duplicate-keys@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" @@ -1274,14 +797,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-exponentiation-operator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz#36e261fa1ab643cfaf30eeab38e00ed1a76081e2" - integrity sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-exponentiation-operator@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" @@ -1305,21 +820,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-for-of@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz#9b544059c6ca11d565457c0ff1f08e13ce225261" - integrity sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-function-name@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz#6896ebb6a5538a75d6a4086a277752f655a7bd15" - integrity sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ== - dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-function-name@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" @@ -1329,13 +829,6 @@ "@babel/helper-function-name" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz#af392b90e3edb2bd6dc316844cbfd6b9e009d320" - integrity sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-literals@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" @@ -1343,13 +836,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-member-expression-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz#4bd6ecdc11932361631097b779ca5c7570146dd5" - integrity sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-member-expression-literals@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" @@ -1357,15 +843,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-modules-amd@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz#92c0a3e83f642cb7e75fada9ab497c12c2616527" - integrity sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ== - dependencies: - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - babel-plugin-dynamic-import-node "^2.3.3" - "@babel/plugin-transform-modules-amd@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" @@ -1375,16 +852,6 @@ "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz#4ee03b089536f076b2773196529d27c32b9d7bde" - integrity sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ== - dependencies: - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-simple-access" "^7.16.0" - babel-plugin-dynamic-import-node "^2.3.3" - "@babel/plugin-transform-modules-commonjs@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" @@ -1395,17 +862,6 @@ "@babel/helper-simple-access" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz#07078ba2e3cc94fbdd06836e355c246e98ad006b" - integrity sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA== - dependencies: - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-validator-identifier" "^7.15.7" - babel-plugin-dynamic-import-node "^2.3.3" - "@babel/plugin-transform-modules-systemjs@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7" @@ -1417,14 +873,6 @@ "@babel/helper-validator-identifier" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz#caa9c53d636fb4e3c99fd35a4c9ba5e5cd7e002e" - integrity sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw== - dependencies: - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-modules-umd@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" @@ -1433,13 +881,6 @@ "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz#4afd8cdee377ce3568f4e8a9ee67539b69886a3c" - integrity sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" @@ -1447,13 +888,6 @@ dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.7" -"@babel/plugin-transform-new-target@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz#759ea9d6fbbc20796056a5d89d13977626384416" - integrity sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-new-target@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" @@ -1461,14 +895,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-object-super@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz#8ccd9a1bcd3e7732ff8aa1702d067d8cd70ce380" - integrity sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-replace-supers" "^7.16.5" - "@babel/plugin-transform-object-super@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" @@ -1484,20 +910,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-parameters@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz#4fc74b18a89638bd90aeec44a11793ecbe031dde" - integrity sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-property-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz#58f1465a7202a2bb2e6b003905212dd7a79abe3f" - integrity sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-property-literals@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" @@ -1519,27 +931,16 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.16.7" -"@babel/plugin-transform-react-jsx@^7.12.1": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.5.tgz#5298aedc5f81e02b1cb702e597e8d6a346675765" - integrity sha512-+arLIz1d7kmwX0fKxTxbnoeG85ONSnLpvdODa4P3pc1sS7CV1hfmtYWufkW/oYsPnkDrEeQFxhUWcFnrXW7jQQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-jsx" "^7.16.5" - "@babel/types" "^7.16.0" - -"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4" - integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag== +"@babel/plugin-transform-react-jsx@^7.12.1", "@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.16.7": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" + integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-jsx" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" "@babel/plugin-transform-react-pure-annotations@^7.16.7": version "7.16.7" @@ -1549,13 +950,6 @@ "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-regenerator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz#704cc6d8dd3dd4758267621ab7b36375238cef13" - integrity sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg== - dependencies: - regenerator-transform "^0.14.2" - "@babel/plugin-transform-regenerator@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb" @@ -1563,13 +957,6 @@ dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz#db95e98799675e193dc2b47d3e72a7c0651d0c30" - integrity sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-reserved-words@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" @@ -1584,13 +971,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-shorthand-properties@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz#ccb60b1a23b799f5b9a14d97c5bc81025ffd96d7" - integrity sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" @@ -1599,21 +979,6 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" -"@babel/plugin-transform-spread@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz#912b06cff482c233025d3e69cf56d3e8fa166c29" - integrity sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - -"@babel/plugin-transform-sticky-regex@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz#593579bb2b5a8adfbe02cb43823275d9098f75f9" - integrity sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-sticky-regex@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" @@ -1628,20 +993,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-template-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz#343651385fd9923f5aa2275ca352c5d9183e1773" - integrity sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-typeof-symbol@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz#a1d1bf2c71573fe30965d0e4cd6a3291202e20ed" - integrity sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-typeof-symbol@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" @@ -1658,13 +1009,6 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-typescript" "^7.16.7" -"@babel/plugin-transform-unicode-escapes@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz#80507c225af49b4f4ee647e2a0ce53d2eeff9e85" - integrity sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-unicode-escapes@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" @@ -1672,14 +1016,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-unicode-regex@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz#ac84d6a1def947d71ffb832426aa53b83d7ed49e" - integrity sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-transform-unicode-regex@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" @@ -1696,10 +1032,10 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" -"@babel/preset-env@^7.12.11": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.8.tgz#e682fa0bcd1cf49621d64a8956318ddfb9a05af9" - integrity sha512-9rNKgVCdwHb3z1IlbMyft6yIXIeP3xz6vWvGaLHrJThuEIqWfHb0DNBH9VuTgnDfdbUDhkmkvMZS/YMCtP7Elg== +"@babel/preset-env@^7.12.11", "@babel/preset-env@^7.14.7": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== dependencies: "@babel/compat-data" "^7.16.8" "@babel/helper-compilation-targets" "^7.16.7" @@ -1719,7 +1055,7 @@ "@babel/plugin-proposal-object-rest-spread" "^7.16.7" "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.11" "@babel/plugin-proposal-private-property-in-object" "^7.16.7" "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" "@babel/plugin-syntax-async-generators" "^7.8.4" @@ -1776,86 +1112,6 @@ core-js-compat "^3.20.2" semver "^6.3.0" -"@babel/preset-env@^7.14.7": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.5.tgz#2e94d922f4a890979af04ffeb6a6b4e44ba90847" - integrity sha512-MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-async-generator-functions" "^7.16.5" - "@babel/plugin-proposal-class-properties" "^7.16.5" - "@babel/plugin-proposal-class-static-block" "^7.16.5" - "@babel/plugin-proposal-dynamic-import" "^7.16.5" - "@babel/plugin-proposal-export-namespace-from" "^7.16.5" - "@babel/plugin-proposal-json-strings" "^7.16.5" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.5" - "@babel/plugin-proposal-numeric-separator" "^7.16.5" - "@babel/plugin-proposal-object-rest-spread" "^7.16.5" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.5" - "@babel/plugin-proposal-optional-chaining" "^7.16.5" - "@babel/plugin-proposal-private-methods" "^7.16.5" - "@babel/plugin-proposal-private-property-in-object" "^7.16.5" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.5" - "@babel/plugin-transform-async-to-generator" "^7.16.5" - "@babel/plugin-transform-block-scoped-functions" "^7.16.5" - "@babel/plugin-transform-block-scoping" "^7.16.5" - "@babel/plugin-transform-classes" "^7.16.5" - "@babel/plugin-transform-computed-properties" "^7.16.5" - "@babel/plugin-transform-destructuring" "^7.16.5" - "@babel/plugin-transform-dotall-regex" "^7.16.5" - "@babel/plugin-transform-duplicate-keys" "^7.16.5" - "@babel/plugin-transform-exponentiation-operator" "^7.16.5" - "@babel/plugin-transform-for-of" "^7.16.5" - "@babel/plugin-transform-function-name" "^7.16.5" - "@babel/plugin-transform-literals" "^7.16.5" - "@babel/plugin-transform-member-expression-literals" "^7.16.5" - "@babel/plugin-transform-modules-amd" "^7.16.5" - "@babel/plugin-transform-modules-commonjs" "^7.16.5" - "@babel/plugin-transform-modules-systemjs" "^7.16.5" - "@babel/plugin-transform-modules-umd" "^7.16.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.5" - "@babel/plugin-transform-new-target" "^7.16.5" - "@babel/plugin-transform-object-super" "^7.16.5" - "@babel/plugin-transform-parameters" "^7.16.5" - "@babel/plugin-transform-property-literals" "^7.16.5" - "@babel/plugin-transform-regenerator" "^7.16.5" - "@babel/plugin-transform-reserved-words" "^7.16.5" - "@babel/plugin-transform-shorthand-properties" "^7.16.5" - "@babel/plugin-transform-spread" "^7.16.5" - "@babel/plugin-transform-sticky-regex" "^7.16.5" - "@babel/plugin-transform-template-literals" "^7.16.5" - "@babel/plugin-transform-typeof-symbol" "^7.16.5" - "@babel/plugin-transform-unicode-escapes" "^7.16.5" - "@babel/plugin-transform-unicode-regex" "^7.16.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.0" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.4.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.19.1" - semver "^6.3.0" - "@babel/preset-flow@^7.12.1": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.7.tgz#7fd831323ab25eeba6e4b77a589f680e30581cbd" @@ -1898,22 +1154,22 @@ "@babel/plugin-transform-typescript" "^7.16.7" "@babel/register@^7.12.1": - version "7.16.9" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.16.9.tgz#fcfb23cfdd9ad95c9771e58183de83b513857806" - integrity sha512-jJ72wcghdRIlENfvALcyODhNoGE5j75cYHdC+aQMh6cU/P86tiiXTp9XYZct1UxUMo/4+BgQRyNZEGx0KWGS+g== + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.17.0.tgz#8051e0b7cb71385be4909324f072599723a1f084" + integrity sha512-UNZsMAZ7uKoGHo1HlEXfteEOYssf64n/PNLHGqOKq/bgYcu/4LrQWAHJwSCb3BRZK8Hi5gkJdRcwrGTO2wtRCg== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" make-dir "^2.1.0" - pirates "^4.0.0" + pirates "^4.0.5" source-map-support "^0.5.16" "@babel/runtime-corejs3@^7.10.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.16.5.tgz#9057d879720c136193f0440bc400088212a74894" - integrity sha512-F1pMwvTiUNSAM8mc45kccMQxj31x3y3P+tA/X8hKNWp3/hUsxdGxZ3D3H8JIkxtfA8qGkaBTKvcmvStaYseAFw== + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13" + integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg== dependencies: - core-js-pure "^3.19.0" + core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" "@babel/runtime@7.12.5": @@ -1937,21 +1193,14 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.0", "@babel/runtime@^7.14.6", "@babel/runtime@^7.14.8", "@babel/runtime@^7.15.3", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.5.tgz#7f3e34bf8bdbbadf03fbb7b1ea0d929569c9487a" - integrity sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.5.0", "@babel/runtime@^7.7.6": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" - integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.0", "@babel/runtime@^7.14.6", "@babel/runtime@^7.14.8", "@babel/runtime@^7.15.3", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.0", "@babel/runtime@^7.16.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.7", "@babel/template@^7.16.7": +"@babel/template@^7.12.7", "@babel/template@^7.16.7", "@babel/template@^7.3.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== @@ -1960,44 +1209,19 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/template@^7.16.0", "@babel/template@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.5", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" - integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.5" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.8.tgz#bab2f2b09a5fe8a8d9cad22cbfe3ba1d126fef9c" - integrity sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ== +"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" + "@babel/generator" "^7.17.3" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.16.7" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.16.8" - "@babel/types" "^7.16.8" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" debug "^4.1.0" globals "^11.1.0" @@ -2010,18 +1234,10 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.2.0": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" - integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== +"@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -2540,9 +1756,9 @@ "@babel/plugin-syntax-jsx" "^7.2.0" "@emotion/babel-plugin@^11.2.0", "@emotion/babel-plugin@^11.3.0", "@emotion/babel-plugin@^11.7.1": - version "11.7.1" - resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.7.1.tgz#853fc4985d89dab0ea8e17af2858473d1b11be7e" - integrity sha512-K3/6Y+J/sIAjplf3uIteWLhPuOyuMNnE+iyYnTF/m294vc6IL90kTHp7y8ldZYbpKlP17rpOWDKM9DvTcrOmNQ== + version "11.7.2" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz#fec75f38a6ab5b304b0601c74e2a5e77c95e5fa0" + integrity sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ== dependencies: "@babel/helper-module-imports" "^7.12.13" "@babel/plugin-syntax-jsx" "^7.12.13" @@ -2758,15 +1974,15 @@ resolved "https://registry.yarnpkg.com/@figma/plugin-typings/-/plugin-typings-1.37.0.tgz#0eecf4972db9f321127b519a917ea4b3a40714dd" integrity sha512-PfZWzRazevtDp6nfaypxS7jfkbLATTM6dLi0tIJiDvd27vYhX3wBiW1AeTqxtxjBdYY2QV1T34IJYjrOybr5wg== -"@firebase/analytics-compat@0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.1.5.tgz#9fd587b1b6fa283354428a0f96a19db2389e7da4" - integrity sha512-5cfr0uWwlhoHQYAr6UtQCHwnGjs/3J/bWrfA3INNtzaN4/tTTLTD02iobbccRcM7dM5TR0sZFWS5orfAU3OBFg== +"@firebase/analytics-compat@0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.1.6.tgz#a5a8c909c67128d89c0aaa1c87699d1c5e873746" + integrity sha512-xvdp4/zwOG1f+v9JSpfCQoPJ98HcJR42cEnZ9pRIQLmUy7L7QceIuaF3m+zVtoqa4agBQnJ1dhe58FshOFKOPw== dependencies: - "@firebase/analytics" "0.7.4" + "@firebase/analytics" "0.7.5" "@firebase/analytics-types" "0.7.0" - "@firebase/component" "0.5.9" - "@firebase/util" "1.4.2" + "@firebase/component" "0.5.10" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/analytics-types@0.7.0": @@ -2774,26 +1990,26 @@ resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.7.0.tgz#91960e7c87ce8bf18cf8dd9e55ccbf5dc3989b5d" integrity sha512-DNE2Waiwy5+zZnCfintkDtBfaW6MjIG883474v6Z0K1XZIvl76cLND4iv0YUb48leyF+PJK1KO2XrgHb/KpmhQ== -"@firebase/analytics@0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.7.4.tgz#33b3d6a34736e1a726652e48b6bd39163e6561c2" - integrity sha512-AU3XMwHW7SFGCNeUKKNW2wXGTdmS164ackt/Epu2bDXCT1OcauPE1AVd+ofULSIDCaDUAQVmvw3JrobgogEU7Q== +"@firebase/analytics@0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.7.5.tgz#c12a2ea10067e8e0947bc54758750c65a700e79f" + integrity sha512-vrKDh84hBbKPJaU2oAZDewyC79D8opJOQZ5AU3BXBBwEfRjKt3C3jj/Vl6aJUme+RKXlomTw3xcHIOoPzTgBVA== dependencies: - "@firebase/component" "0.5.9" - "@firebase/installations" "0.5.4" + "@firebase/component" "0.5.10" + "@firebase/installations" "0.5.5" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" -"@firebase/app-check-compat@0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.2.2.tgz#7d6c04464a78cbc6a717cb4f33871e2f980cdb02" - integrity sha512-nX2Ou8Rwo+TMMNDecQOGH78kFw6sORLrsGyu0eC95M853JjisVxTngN1TU/RL5h83ElJ0HhNlz6C3FYAuGNqqA== +"@firebase/app-check-compat@0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.2.3.tgz#f6ee8b8581423fe4efbba6165c14c3f9625a95e4" + integrity sha512-e2mKkuecr1XgsyTGXKfg83PcV1UdT7+tXYoHIjeBeLrP5gGL4OQbWCzzt6uVQpk1gmJbUktje/rd6Et6cdL+wg== dependencies: - "@firebase/app-check" "0.5.2" - "@firebase/component" "0.5.9" + "@firebase/app-check" "0.5.3" + "@firebase/component" "0.5.10" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/app-check-interop-types@0.1.0": @@ -2801,25 +2017,25 @@ resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.1.0.tgz#83afd9d41f99166c2bdb2d824e5032e9edd8fe53" integrity sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA== -"@firebase/app-check@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.5.2.tgz#5166aeed767efb8e5f0c719b83439e58abbee0fd" - integrity sha512-DJrvxcn5QPO5dU735GA9kYpf+GwmCmnd/oQdWVExrRG+yjaLnP0rSJ2HKQ4bZKGo8qig3P7fwQpdMOgP2BXFjQ== +"@firebase/app-check@0.5.3": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.5.3.tgz#477ea3d925bde898dce1c25bc3d3886252ad2aaf" + integrity sha512-M2/UO5PgxHCl0wPYWGdF6lO8nqclwuRMCIrc+75xv3/Dr3hhUu4ztF5JNaAV5tktSCt1UrnASG+4rNVifCzSRw== dependencies: - "@firebase/component" "0.5.9" + "@firebase/component" "0.5.10" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" -"@firebase/app-compat@0.1.12": - version "0.1.12" - resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.1.12.tgz#8a5fc169ad52c1fe9fe5119d543f12f9335cc8b2" - integrity sha512-hRzCCFjwTwrFsAFcuUW2TPpyShJ/OaoA1Yxp4QJr6Xod8g+CQxTMZ4RJ51I5t9fErXvl65VxljhfqFEyB3ZmJA== +"@firebase/app-compat@0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.1.17.tgz#02a588162de775b7720cf1a1d06e3a7745ba032b" + integrity sha512-84AO0SAxdEaXl8fHnVnqWUufZJatCbZwwsxMtyj6UYYTPxv3VTCDusFF6nmoWgaCIs35PCBnLWAdzNxx7facCg== dependencies: - "@firebase/app" "0.7.11" - "@firebase/component" "0.5.9" + "@firebase/app" "0.7.16" + "@firebase/component" "0.5.10" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/app-types@0.7.0": @@ -2827,26 +2043,26 @@ resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.7.0.tgz#c9e16d1b8bed1a991840b8d2a725fb58d0b5899f" integrity sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg== -"@firebase/app@0.7.11": - version "0.7.11" - resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.7.11.tgz#b85d553dc44620ee0f795ecb6aeabd6c43737390" - integrity sha512-GnG2XxlMrqd8zRa14Y3gvkPpr0tKTLZtxhUnShWkeSM5bQqk1DK2k9qDsf6D3cYfKCWv+JIg1zmL3oalxfhNNA== +"@firebase/app@0.7.16": + version "0.7.16" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.7.16.tgz#2a90eb574f21bbf22d1c2ce20bf2de74ab6abb4d" + integrity sha512-xToEi8f7uvadhtgNsPmuUS9eVHteMjWoa5I7i/+5TBeGgGkm1g9SROJl+8wSrcdT5Xd6OA7eUGZLxr4RQvL7Tw== dependencies: - "@firebase/component" "0.5.9" + "@firebase/component" "0.5.10" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" -"@firebase/auth-compat@0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.2.4.tgz#e2862ed0177520b34abc6be6adca9f220a928ed9" - integrity sha512-2OpV6o8U33xiC98G9UrlhEMOOHfXmoum74VghP85BufLroi7erLKawBaDbYiHWK2QYudd8cbOPkk5GDocl1KNQ== +"@firebase/auth-compat@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.2.8.tgz#f04dc458c65ea6b42c65a20afc2685afe3784973" + integrity sha512-6gG8agS3LlSxnyObZ7TR1Ze41cJargpP+rGTuBz0WiOvrFcrMoZUjv+5oA5VvF2GiYVMvAzJImxmgYJhMse+GA== dependencies: - "@firebase/auth" "0.19.4" + "@firebase/auth" "0.19.8" "@firebase/auth-types" "0.11.0" - "@firebase/component" "0.5.9" - "@firebase/util" "1.4.2" - node-fetch "2.6.5" + "@firebase/component" "0.5.10" + "@firebase/util" "1.4.3" + node-fetch "2.6.7" selenium-webdriver "^4.0.0-beta.2" tslib "^2.1.0" @@ -2860,67 +2076,67 @@ resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.11.0.tgz#b9c73c60ca07945b3bbd7a097633e5f78fa9e886" integrity sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw== -"@firebase/auth@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.19.4.tgz#7d4962e70578e915d1a887be3d662c1fb030471e" - integrity sha512-0FefLGnP0mbgvSSan7j2e25i3pllqF9+KYO5fwuAo3YcgjCyNMBJKaXPlz/J+z6jRHa2itjh4W48jD4Y/FCMqw== +"@firebase/auth@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.19.8.tgz#5a0863f6043c18dd9cb7a65ab17eb6cdb18f3c8a" + integrity sha512-pU3U8k70gXDYHjrIDlxnnfPkt6Eq1/61KikF7aps1ny8xmSyeUhbXxUbl2pvX5k7eK8uVQvm4uWFlPNJWMitww== dependencies: - "@firebase/component" "0.5.9" + "@firebase/component" "0.5.10" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" - node-fetch "2.6.5" + "@firebase/util" "1.4.3" + node-fetch "2.6.7" selenium-webdriver "4.0.0-rc-1" tslib "^2.1.0" -"@firebase/component@0.5.9": - version "0.5.9" - resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.5.9.tgz#a859f655bd6e5b691bc5596fe43a91b12a443052" - integrity sha512-oLCY3x9WbM5rn06qmUvbtJuPj4dIw/C9T4Th52IiHF5tiCRC5k6YthvhfUVcTwfoUhK0fOgtwuKJKA/LpCPjgA== +"@firebase/component@0.5.10": + version "0.5.10" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.5.10.tgz#eab8acfd9b1a2b6534a63cbcd7cbc7660c47663d" + integrity sha512-mzUpg6rsBbdQJvAdu1rNWabU3O7qdd+B+/ubE1b+pTbBKfw5ySRpRRE6sKcZ/oQuwLh0HHB6FRJHcylmI7jDzA== dependencies: - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" -"@firebase/database-compat@0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.1.4.tgz#9bad05a4a14e557271b887b9ab97f8b39f91f5aa" - integrity sha512-dIJiZLDFF3U+MoEwoPBy7zxWmBUro1KefmwSHlpOoxmPv76tuoPm85NumpW/HmMrtTcTkC2qowtb6NjGE8X7mw== +"@firebase/database-compat@0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.1.5.tgz#df451ce6a8d0ea2ebc2b1c8017da7d773424371d" + integrity sha512-UVxkHL24sZfsjsjs+yiKIdYdrWXHrLxSFCYNdwNXDlTkAc0CWP9AAY3feLhBVpUKk+4Cj0I4sGnyIm2C1ltAYg== dependencies: - "@firebase/component" "0.5.9" - "@firebase/database" "0.12.4" - "@firebase/database-types" "0.9.3" + "@firebase/component" "0.5.10" + "@firebase/database" "0.12.5" + "@firebase/database-types" "0.9.4" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" -"@firebase/database-types@0.9.3": - version "0.9.3" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.9.3.tgz#d1a8ee34601136fd0047817d94432d89fdba5fef" - integrity sha512-R+YXLWy/Q7mNUxiUYiMboTwvVoprrgfyvf1Viyevskw6IoH1q8HV1UjlkLSgmRsOT9HPWt7XZUEStVZJFknHwg== +"@firebase/database-types@0.9.4": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.9.4.tgz#08b7da33d8dca8f5adab45bfb1cdf8654f2c6720" + integrity sha512-uAQuc6NUZ5Oh/cWZPeMValtcZ+4L1stgKOeYvz7mLn8+s03tnCDL2N47OLCHdntktVkhImQTwGNARgqhIhtNeA== dependencies: "@firebase/app-types" "0.7.0" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" -"@firebase/database@0.12.4": - version "0.12.4" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.12.4.tgz#7ad26393f59ede2b93444406651f976a7008114d" - integrity sha512-XkrL1kXELRNkqKcltuT4hfG1gWmFiGvjFY+z7Lhb//12MqdkLjwa9YMK8c6Lo+Ro+IkWcJArQaOQYe3GkU5Wgg== +"@firebase/database@0.12.5": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.12.5.tgz#e7f8e8052c3038aff79633e5395c3cc5c30ca7b2" + integrity sha512-1Pd2jYqvqZI7SQWAiXbTZxmsOa29PyOaPiUtr8pkLSfLp4AeyMBegYAXCLYLW6BNhKn3zNKFkxYDxYHq4q+Ixg== dependencies: "@firebase/auth-interop-types" "0.1.6" - "@firebase/component" "0.5.9" + "@firebase/component" "0.5.10" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" faye-websocket "0.11.4" tslib "^2.1.0" -"@firebase/firestore-compat@0.1.10": - version "0.1.10" - resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.1.10.tgz#910ba0304ec9cb9202b08852dab206d3511833ec" - integrity sha512-wnyUzx5bHatnsP+3nX0FmA1jxfDxVW5gCdM59sXxd0PWf4oUOONRlqVstVAHVUH123huGaNdEXY6LUlP7H0EnA== +"@firebase/firestore-compat@0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.1.13.tgz#d249d9ae92b33799ca836de7d0ba48ad0c872c8a" + integrity sha512-FJSSn0zYBuf8YQAqrRWnXT/fHI/PBgwNEz6IzGw7EN7KHLWX4lCwNBFhAK5+ieJJDN3CbXjtSeVH3qc+cPiOjA== dependencies: - "@firebase/component" "0.5.9" - "@firebase/firestore" "3.4.1" + "@firebase/component" "0.5.10" + "@firebase/firestore" "3.4.4" "@firebase/firestore-types" "2.5.0" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/firestore-types@2.5.0": @@ -2928,29 +2144,29 @@ resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-2.5.0.tgz#16fca40b6980fdb000de86042d7a96635f2bcdd7" integrity sha512-I6c2m1zUhZ5SH0cWPmINabDyH5w0PPFHk2UHsjBpKdZllzJZ2TwTkXbDtpHUZNmnc/zAa0WNMNMvcvbb/xJLKA== -"@firebase/firestore@3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-3.4.1.tgz#b988a25213e51b112db4fef8d939634957f35b9f" - integrity sha512-KSXuaiavHUqk3+0qRe4U8QZ1vfpOc4PuesohLcjA824HexBzXd+6NoUmBs/F9pyS9Ka1rJeECXzXgpk0pInSBw== +"@firebase/firestore@3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-3.4.4.tgz#6810b2b9a9fa2cafe7c1d1d83f9274e15b95268d" + integrity sha512-IC8KZ6LbhECch9xPWp2Kj/0dqN+douzw7SWMAfWxXKmg+CjXpoyUoCh7UU/jshWafd4AUU3OV8QTv8tXRaMpdA== dependencies: - "@firebase/component" "0.5.9" + "@firebase/component" "0.5.10" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" "@firebase/webchannel-wrapper" "0.6.1" "@grpc/grpc-js" "^1.3.2" "@grpc/proto-loader" "^0.6.0" - node-fetch "2.6.5" + node-fetch "2.6.7" tslib "^2.1.0" -"@firebase/functions-compat@0.1.7": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.1.7.tgz#0c73acedbf2701715fbec6b293ba1cd2549812c5" - integrity sha512-Rv3mAUIhsLTxIgPWJSESUcmE1tzNHzUlqQStPnxHn6eFFgHVhkU2wg/NMrKZWTFlb51jpKTjh51AQDhRdT3n3A== +"@firebase/functions-compat@0.1.9": + version "0.1.9" + resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.1.9.tgz#c81b98a0b1378e234533b3552dcef9529da6c389" + integrity sha512-XhcLUVgxwqyk4euz1VO/qM6LUrkbR0vibh/2triR2ciJS2epkpvPICVMxWXaetsKOVpcaTs15eGpJClCRHGLjw== dependencies: - "@firebase/component" "0.5.9" - "@firebase/functions" "0.7.6" + "@firebase/component" "0.5.10" + "@firebase/functions" "0.7.8" "@firebase/functions-types" "0.5.0" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/functions-types@0.5.0": @@ -2958,26 +2174,26 @@ resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.5.0.tgz#b50ba95ccce9e96f7cda453228ffe1684645625b" integrity sha512-qza0M5EwX+Ocrl1cYI14zoipUX4gI/Shwqv0C1nB864INAD42Dgv4v94BCyxGHBg2kzlWy8PNafdP7zPO8aJQA== -"@firebase/functions@0.7.6": - version "0.7.6" - resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.7.6.tgz#c2ae5866943d812580bda26200c0b17295505dc3" - integrity sha512-Kl6a2PbRkOlSlOWJSgYuNp3e53G3cb+axF+r7rbWhJIHiaelG16GerBMxZTSxyiCz77C24LwiA2TKNwe85ObZg== +"@firebase/functions@0.7.8": + version "0.7.8" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.7.8.tgz#5cc45dddc42e8ce0fac7d8ce2f95e92bfbe33544" + integrity sha512-WNpKnQqufNkqHkFm1ol4oeF+/mA1y5gtj1csRFZqQS2EeDcq6FCs49abBFpjBOxWz8XDDNlSasCKhIrAAKIFfg== dependencies: "@firebase/app-check-interop-types" "0.1.0" "@firebase/auth-interop-types" "0.1.6" - "@firebase/component" "0.5.9" + "@firebase/component" "0.5.10" "@firebase/messaging-interop-types" "0.1.0" - "@firebase/util" "1.4.2" - node-fetch "2.6.5" + "@firebase/util" "1.4.3" + node-fetch "2.6.7" tslib "^2.1.0" -"@firebase/installations@0.5.4": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.5.4.tgz#c6f5a40eee930d447c909d84f01f5ebfe2f5f46e" - integrity sha512-rYb6Ju/tIBhojmM8FsgS96pErKl6gPgJFnffMO4bKH7HilXhOfgLfKU9k51ZDcps8N0npDx9+AJJ6pL1aYuYZQ== +"@firebase/installations@0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.5.5.tgz#b517e20fe4ce4b9e2f3349596391d54f2294bf7f" + integrity sha512-mYWUxYXPlxcR0YOikPw88TjIS2NK35Z0ivkJL0+FevNnVIsqwGSe12AtPlZB/kzjB0RtHoKW+cWC0V9xiTgJ3Q== dependencies: - "@firebase/component" "0.5.9" - "@firebase/util" "1.4.2" + "@firebase/component" "0.5.10" + "@firebase/util" "1.4.3" idb "3.0.2" tslib "^2.1.0" @@ -2988,14 +2204,14 @@ dependencies: tslib "^2.1.0" -"@firebase/messaging-compat@0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.1.4.tgz#14dffa349e241557b10d8fb7f5896a04d3f857a7" - integrity sha512-6477jBw7w7hk0uhnTUMsPoukalpcwbxTTo9kMguHVSXe0t3OdoxeXEaapaNJlOmU4Kgc8j3rsms8IDLdKVpvlA== +"@firebase/messaging-compat@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.1.8.tgz#3d8ae0302bfbd26e4e9b5cf05c832bffeb215e3d" + integrity sha512-1q0Bp/auG6XUSEBzmExrn6uU6JUtB5JxIHwTj8wmUf+JcdNqPMWou040Mem421Sxgd4GLn+vHHlVIRxv1yLYUA== dependencies: - "@firebase/component" "0.5.9" - "@firebase/messaging" "0.9.4" - "@firebase/util" "1.4.2" + "@firebase/component" "0.5.10" + "@firebase/messaging" "0.9.8" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/messaging-interop-types@0.1.0": @@ -3003,28 +2219,28 @@ resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.1.0.tgz#bdac02dd31edd5cb9eec37b1db698ea5e2c1a631" integrity sha512-DbvUl/rXAZpQeKBnwz0NYY5OCqr2nFA0Bj28Fmr3NXGqR4PAkfTOHuQlVtLO1Nudo3q0HxAYLa68ZDAcuv2uKQ== -"@firebase/messaging@0.9.4": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.9.4.tgz#a1cd38ad92eb92cde908dc695767362087137f6d" - integrity sha512-OvYV4MLPfDpdP/yltLqZXZRx6rXWz52bEilS2jL2B4sGiuTaXSkR6BIHB54EPTblu32nbyZYdlER4fssz4TfXw== +"@firebase/messaging@0.9.8": + version "0.9.8" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.9.8.tgz#a7f38c268801513e7b02be10e951a1b2e825a082" + integrity sha512-X588ZFA/plaO4de7MyZs2gukrkdp+ounwqZ7JerHHVa6eKl1WNi9AuAfoXOJUMq+nX2DsOWYjohciCkC6qLrWw== dependencies: - "@firebase/component" "0.5.9" - "@firebase/installations" "0.5.4" + "@firebase/component" "0.5.10" + "@firebase/installations" "0.5.5" "@firebase/messaging-interop-types" "0.1.0" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" idb "3.0.2" tslib "^2.1.0" -"@firebase/performance-compat@0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.1.4.tgz#0e887e9d707515db0594117072375e18200703a9" - integrity sha512-YuGfmpC0o+YvEBlEZCbPdNbT4Nn2qhi5uMXjqKnNIUepmXUsgOYDiAqM9nxHPoE/6IkvoFMdCj5nTUYVLCFXgg== +"@firebase/performance-compat@0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.1.5.tgz#e5e13629740ad28fdcbb7bb4e6e49160bbe71550" + integrity sha512-s9mqR0GXJaqvIZD/GsshacpKOGa3NP6Yht33mNEtpL7ERqj35mvD1CBoUwH52eMYAaxlQd9y9JrphQgK3EmWWw== dependencies: - "@firebase/component" "0.5.9" + "@firebase/component" "0.5.10" "@firebase/logger" "0.3.2" - "@firebase/performance" "0.5.4" + "@firebase/performance" "0.5.5" "@firebase/performance-types" "0.1.0" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/performance-types@0.1.0": @@ -3032,15 +2248,15 @@ resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.1.0.tgz#5e6efa9dc81860aee2cb7121b39ae8fa137e69fc" integrity sha512-6p1HxrH0mpx+622Ql6fcxFxfkYSBpE3LSuwM7iTtYU2nw91Hj6THC8Bc8z4nboIq7WvgsT/kOTYVVZzCSlXl8w== -"@firebase/performance@0.5.4": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.5.4.tgz#480bf61a8ff248e55506172be267029270457743" - integrity sha512-ES6aS4eoMhf9CczntBADDsXhaFea/3a0FADwy/VpWXXBxVb8tqc5tPcoTwd9L5M/aDeSiQMy344rhrSsTbIZEg== +"@firebase/performance@0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.5.5.tgz#2ec0167f4d318f05a5a4fe6daac3977cc1bc598d" + integrity sha512-eA8mEKVnyY64fwAKxHbJF5t1hNkdR0EZVib0LfEWl/2elPmFcjik097hqLHzdFE88JYCxNGfFaSPo9Lbk/qe6A== dependencies: - "@firebase/component" "0.5.9" - "@firebase/installations" "0.5.4" + "@firebase/component" "0.5.10" + "@firebase/installations" "0.5.5" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/polyfill@0.3.36": @@ -3052,16 +2268,16 @@ promise-polyfill "8.1.3" whatwg-fetch "2.0.4" -"@firebase/remote-config-compat@0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.1.4.tgz#25561c070b2ba8e41e3f33aa9e9db592bbec5a37" - integrity sha512-6WeKR7E9KJ1RIF9GZiyle1uD4IsIPUBKUnUnFkQhj3FV6cGvQwbeG0rbh7QQLvd0IWuh9lABYjHXWp+rGHQk8A== +"@firebase/remote-config-compat@0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.1.5.tgz#560aef7ce56d235ac2cfbebccc65fbe9545f6574" + integrity sha512-bgpmrCGyOj46c0xNFvivcXRHlaVkbt4mX2etbF9s6jaOILPd4rBHIfAiBpKL64GGwTkrOjWO9/HZun4I01gbpg== dependencies: - "@firebase/component" "0.5.9" + "@firebase/component" "0.5.10" "@firebase/logger" "0.3.2" - "@firebase/remote-config" "0.3.3" + "@firebase/remote-config" "0.3.4" "@firebase/remote-config-types" "0.2.0" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/remote-config-types@0.2.0": @@ -3069,26 +2285,26 @@ resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.2.0.tgz#1e2759fc01f20b58c564db42196f075844c3d1fd" integrity sha512-hqK5sCPeZvcHQ1D6VjJZdW6EexLTXNMJfPdTwbD8NrXUw6UjWC4KWhLK/TSlL0QPsQtcKRkaaoP+9QCgKfMFPw== -"@firebase/remote-config@0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.3.3.tgz#dedee2de508e2392ec2f254368adb7c2d969fc16" - integrity sha512-9hZWfB3k3IYsjHbWeUfhv/SDCcOgv/JMJpLXlUbTppXPm1IZ3X9ZW4I9bS86gGYr7m/kSv99U0oxQ7N9PoR8Iw== +"@firebase/remote-config@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.3.4.tgz#1197c92513130bcb1fe67c4978e6a9b034ef88be" + integrity sha512-SLlyVVNJ6DnU1AOjNrmv5u9Fge7gUwZVooyxMIkaT3Lj9MBM5MwfJsoG3UyiV4l7yI0iPj34LuKPpMJXOOcs4w== dependencies: - "@firebase/component" "0.5.9" - "@firebase/installations" "0.5.4" + "@firebase/component" "0.5.10" + "@firebase/installations" "0.5.5" "@firebase/logger" "0.3.2" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" -"@firebase/storage-compat@0.1.8": - version "0.1.8" - resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.1.8.tgz#edbd9e2d8178c5695817e75f1da5c570c11f44dd" - integrity sha512-L5R0DQoHCDKIgcBbqTx+6+RQ2533WFKeV3cfLAZCTGjyMUustj0eYDsr7fLhGexwsnpT3DaxhlbzT3icUWoDaA== +"@firebase/storage-compat@0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.1.10.tgz#94a7fbe89e901f4cd0d8fbec4be554186f897fea" + integrity sha512-l/mvUhDEJ/0/F2uBqmEqxZk+jvIEwLc9BO6lGPE3TtPdT2896u3GIzbI4XHjSLLUo5bA0ZKz8Z7GVev9CLsHfA== dependencies: - "@firebase/component" "0.5.9" - "@firebase/storage" "0.9.0" + "@firebase/component" "0.5.10" + "@firebase/storage" "0.9.2" "@firebase/storage-types" "0.6.0" - "@firebase/util" "1.4.2" + "@firebase/util" "1.4.3" tslib "^2.1.0" "@firebase/storage-types@0.6.0": @@ -3096,20 +2312,20 @@ resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.6.0.tgz#0b1af64a2965af46fca138e5b70700e9b7e6312a" integrity sha512-1LpWhcCb1ftpkP/akhzjzeFxgVefs6eMD2QeKiJJUGH1qOiows2w5o0sKCUSQrvrRQS1lz3SFGvNR1Ck/gqxeA== -"@firebase/storage@0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.9.0.tgz#e33d2dea4c056d70d801a20521aa96fa2e4fbfb8" - integrity sha512-1gSYdrwP9kECmugH9L3tvNMvSjnNJGamj91rrESOFk2ZHDO93qKR90awc68NnhmzFAJOT/eJzVm35LKU6SqUNg== +"@firebase/storage@0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.9.2.tgz#ca7bd034a45a9ec41412238eb82fe9413b1b4653" + integrity sha512-5xWgVHnE+n+cZAnFYd3NyNAQbp6/t3NL7TdqRGu1OaW5L7ioN7Rhq+L4I2yjIskVCoTaemYQDF+vICjCWoalbA== dependencies: - "@firebase/component" "0.5.9" - "@firebase/util" "1.4.2" - node-fetch "2.6.5" + "@firebase/component" "0.5.10" + "@firebase/util" "1.4.3" + node-fetch "2.6.7" tslib "^2.1.0" -"@firebase/util@1.4.2": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.4.2.tgz#271c63bb7cce4607f7679dc5624ef241c4cf2498" - integrity sha512-JMiUo+9QE9lMBvEtBjqsOFdmJgObFvi7OL1A0uFGwTmlCI1ZeNPOEBrwXkgTOelVCdiMO15mAebtEyxFuQ6FsA== +"@firebase/util@1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.4.3.tgz#4358cf5f18beaa9c8a1e5a5fc4c7c44a4ccd4b7b" + integrity sha512-gQJl6r0a+MElLQEyU8Dx0kkC2coPj67f/zKZrGR7z7WpLgVanhaCUqEsptwpwoxi9RMFIaebleG+C9xxoARq+Q== dependencies: tslib "^2.1.0" @@ -3140,28 +2356,28 @@ dedent "^0.7.0" "@gar/promisify@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" - integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@grpc/grpc-js@^1.3.2": - version "1.4.4" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.4.4.tgz#59336f13d77bc446bbdf2161564a32639288dc5b" - integrity sha512-a6222b7Dl6fIlMgzVl7e+NiRoLiZFbpcwvBH2Oli56Bn7W4/3Ld+86hK4ffPn5rx2DlDidmIcvIJiOQXyhv9gA== + version "1.5.5" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.5.5.tgz#f850a1bb7de8a1d0bb4821aabd3655d1c928d4c6" + integrity sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ== dependencies: "@grpc/proto-loader" "^0.6.4" "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.6.0", "@grpc/proto-loader@^0.6.4": - version "0.6.7" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.7.tgz#e62a202f4cf5897bdd0e244dec1dbc80d84bdfa1" - integrity sha512-QzTPIyJxU0u+r2qGe8VMl3j/W2ryhEvBv7hc42OjYfthSj370fUrb7na65rG6w3YLZS/fb8p89iTBobfWGDgdw== + version "0.6.9" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.9.tgz#4014eef366da733f8e04a9ddd7376fe8a58547b7" + integrity sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" long "^4.0.0" protobufjs "^6.10.0" - yargs "^16.1.1" + yargs "^16.2.0" "@hapi/accept@5.0.1": version "5.0.1" @@ -3199,142 +2415,142 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.4.2.tgz#7a95612d38c007ddb528ee446fe5e5e785e685ce" - integrity sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg== +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.4.2" - jest-util "^27.4.2" + jest-message-util "^27.5.1" + jest-util "^27.5.1" slash "^3.0.0" -"@jest/core@^27.4.5": - version "27.4.5" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.4.5.tgz#cae2dc34259782f4866c6606c3b480cce920ed4c" - integrity sha512-3tm/Pevmi8bDsgvo73nX8p/WPng6KWlCyScW10FPEoN1HU4pwI83tJ3TsFvi1FfzsjwUlMNEPowgb/rPau/LTQ== +"@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== dependencies: - "@jest/console" "^27.4.2" - "@jest/reporters" "^27.4.5" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^27.4.2" - jest-config "^27.4.5" - jest-haste-map "^27.4.5" - jest-message-util "^27.4.2" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.5" - jest-resolve-dependencies "^27.4.5" - jest-runner "^27.4.5" - jest-runtime "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" - jest-watcher "^27.4.2" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" micromatch "^4.0.4" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.4.4": - version "27.4.4" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.4.4.tgz#66ebebc79673d84aad29d2bb70a8c51e6c29bb4d" - integrity sha512-q+niMx7cJgt/t/b6dzLOh4W8Ef/8VyKG7hxASK39jakijJzbFBGpptx3RXz13FFV7OishQ9lTbv+dQ5K3EhfDQ== +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== dependencies: - "@jest/fake-timers" "^27.4.2" - "@jest/types" "^27.4.2" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^27.4.2" + jest-mock "^27.5.1" -"@jest/fake-timers@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.4.2.tgz#d217f86c3ba2027bf29e0b731fd0cb761a72d093" - integrity sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg== +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^27.4.2" - jest-mock "^27.4.2" - jest-util "^27.4.2" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" -"@jest/globals@^27.4.4": - version "27.4.4" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.4.4.tgz#fe501a80c23ea2dab585c42be2a519bb5e38530d" - integrity sha512-bqpqQhW30BOreXM8bA8t8JbOQzsq/WnPTnBl+It3UxAD9J8yxEAaBEylHx1dtBapAr/UBk8GidXbzmqnee8tYQ== +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== dependencies: - "@jest/environment" "^27.4.4" - "@jest/types" "^27.4.2" - expect "^27.4.2" + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" -"@jest/reporters@^27.4.5": - version "27.4.5" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.4.5.tgz#e229acca48d18ea39e805540c1c322b075ae63ad" - integrity sha512-3orsG4vi8zXuBqEoy2LbnC1kuvkg1KQUgqNxmxpQgIOQEPeV0onvZu+qDQnEoX8qTQErtqn/xzcnbpeTuOLSiA== +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.4.2" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.2" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" + istanbul-lib-instrument "^5.1.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^27.4.5" - jest-resolve "^27.4.5" - jest-util "^27.4.2" - jest-worker "^27.4.5" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/source-map@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.4.0.tgz#2f0385d0d884fb3e2554e8f71f8fa957af9a74b6" - integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== dependencies: callsites "^3.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" source-map "^0.6.0" -"@jest/test-result@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.4.2.tgz#05fd4a5466ec502f3eae0b39dff2b93ea4d5d9ec" - integrity sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA== +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== dependencies: - "@jest/console" "^27.4.2" - "@jest/types" "^27.4.2" + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.4.5": - version "27.4.5" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.4.5.tgz#1d7e026844d343b60d2ca7fd82c579a17b445d7d" - integrity sha512-n5woIn/1v+FT+9hniymHPARA9upYUmfi5Pw9ewVwXCDlK4F5/Gkees9v8vdjGdAIJ2MPHLHodiajLpZZanWzEQ== +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== dependencies: - "@jest/test-result" "^27.4.2" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-runtime "^27.4.5" + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" "@jest/transform@^26.6.2": version "26.6.2" @@ -3357,23 +2573,23 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^27.4.5": - version "27.4.5" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.4.5.tgz#3dfe2e3680cd4aa27356172bf25617ab5b94f195" - integrity sha512-PuMet2UlZtlGzwc6L+aZmR3I7CEBpqadO03pU40l2RNY2fFJ191b9/ITB44LNOhVtsyykx0OZvj0PCyuLm7Eew== +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^27.4.2" - babel-plugin-istanbul "^6.0.0" + "@jest/types" "^27.5.1" + babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-regex-util "^27.4.0" - jest-util "^27.4.2" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" micromatch "^4.0.4" - pirates "^4.0.1" + pirates "^4.0.4" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" @@ -3389,10 +2605,10 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.2.tgz#96536ebd34da6392c2b7c7737d693885b5dd44a5" - integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -3400,6 +2616,24 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@material-ui/core@^4.12.3": version "4.12.3" resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.12.3.tgz#80d665caf0f1f034e52355c5450c0e38b099d3ca" @@ -3643,9 +2877,9 @@ fastq "^1.6.0" "@npmcli/fs@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.0.tgz#bec1d1b89c170d40e1b73ad6c943b0b75e7d2951" - integrity sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: "@gar/promisify" "^1.0.1" semver "^7.3.5" @@ -3711,16 +2945,11 @@ schema-utils "^3.0.0" source-map "^0.7.3" -"@popperjs/core@^2.5.4", "@popperjs/core@^2.6.0": +"@popperjs/core@^2.5.4", "@popperjs/core@^2.6.0", "@popperjs/core@^2.9.0": version "2.11.2" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.2.tgz#830beaec4b4091a9e9398ac50f865ddea52186b9" integrity sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA== -"@popperjs/core@^2.9.0": - version "2.11.0" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.0.tgz#6734f8ebc106a0860dff7f92bf90df193f0935d7" - integrity sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ== - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -3882,13 +3111,13 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-primitive" "0.1.1" -"@radix-ui/react-arrow@0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-0.1.2.tgz#23058bb4cb86662131baad30ce21ce929393818f" - integrity sha512-f3aLDQLzcd96yswYoeJdIpOPSw//jbNLTjsrq9ra4c5Atu/Zi4P2icZ1f8qCmNubrG36jSvwuEkcCkTTDLmbeQ== +"@radix-ui/react-arrow@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-0.1.3.tgz#17f86eab216c48aff17b13b811569a9bbabaa44d" + integrity sha512-9x1gRYdlUD5OUwY7L+M+4FY/YltDSsrNSj8QXGPbxZxL5ghWXB/4lhyIGccCwk/e8ggfmQYv9SRNmn3LavPo3A== dependencies: "@babel/runtime" "^7.13.10" - "@radix-ui/react-primitive" "0.1.2" + "@radix-ui/react-primitive" "0.1.3" "@radix-ui/react-aspect-ratio@0.1.1": version "0.1.1" @@ -3981,15 +3210,15 @@ "@radix-ui/react-primitive" "0.1.1" "@radix-ui/react-slot" "0.1.1" -"@radix-ui/react-collection@0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-0.1.2.tgz#2b757dc7c5aa1aebe0eaf7dda2c46776987f3187" - integrity sha512-sEIlbAaOBm6k9Z/tsf0FrHlsscd8u8waHKzlualgN/CIuouy4rKXoVuysevgQvY7h9HPV5x2AekWq6BABTBOkw== +"@radix-ui/react-collection@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-0.1.3.tgz#7b584f5db40ce165883b87c383d3bd16c0000d69" + integrity sha512-tMBY65l87tj77fMX44EBjm5p8clR6swkcNFr0/dDVdEPC0Vf3fwkv62dezCnZyrRBpkOgZPDOp2kO73hYlCfXw== dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/react-compose-refs" "0.1.0" "@radix-ui/react-context" "0.1.1" - "@radix-ui/react-primitive" "0.1.2" + "@radix-ui/react-primitive" "0.1.3" "@radix-ui/react-slot" "0.1.2" "@radix-ui/react-compose-refs@0.0.5": @@ -4032,15 +3261,15 @@ "@radix-ui/react-use-callback-ref" "0.0.5" "@radix-ui/react-context-menu@^0.1.1": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-context-menu/-/react-context-menu-0.1.3.tgz#ebb328f9102313a58c7cf568dae39ab437af4dec" - integrity sha512-ZSz2h5kuqTL8ntzJUc5r8EqJoO4vjuiCnPYYQfHQT36fL0wQlo3IFOfRo2L28Pvq0TJoqEWXi1ze8f9YSeZ5Qw== + version "0.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context-menu/-/react-context-menu-0.1.4.tgz#d4706fe029f74b3330c6965601ed6a3f9165fb2c" + integrity sha512-GWwzAZDGT66b5HQAD4nfhSTih3pxhbEnNfVBerKYSL/74VWHZY6xpXf6peeb4m1zorVvYPMoT45KTO6hAJwTFg== dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/primitive" "0.1.0" "@radix-ui/react-context" "0.1.1" - "@radix-ui/react-menu" "0.1.3" - "@radix-ui/react-primitive" "0.1.2" + "@radix-ui/react-menu" "0.1.4" + "@radix-ui/react-primitive" "0.1.3" "@radix-ui/react-use-callback-ref" "0.1.0" "@radix-ui/react-context@0.0.5": @@ -4135,15 +3364,15 @@ "@radix-ui/react-use-callback-ref" "0.1.0" "@radix-ui/react-use-escape-keydown" "0.1.0" -"@radix-ui/react-dismissable-layer@0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.1.2.tgz#10192ca6f28f1add825445afdfc23798cfd9342e" - integrity sha512-qQ8lK2PW8P3qEjJw3cKauwPNOZ2eaIffp9/WDOh0BjKg0YOf3RdLB3BuFwfULs5avo5rC4u85D0NQuw0IsPplQ== +"@radix-ui/react-dismissable-layer@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.1.3.tgz#d427c7520c3799d2b957e40e7d67045d96120356" + integrity sha512-3veE7M8K13Qb+6+tC3DHWmWV9VMuuRoZvRLdrvz7biSraK/qkGBN4LbKZDaTdw2D2HS7RNpSd/sF8pFd3TaAgA== dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/primitive" "0.1.0" "@radix-ui/react-context" "0.1.1" - "@radix-ui/react-primitive" "0.1.2" + "@radix-ui/react-primitive" "0.1.3" "@radix-ui/react-use-body-pointer-events" "0.1.0" "@radix-ui/react-use-callback-ref" "0.1.0" "@radix-ui/react-use-escape-keydown" "0.1.0" @@ -4220,14 +3449,14 @@ "@radix-ui/react-primitive" "0.1.1" "@radix-ui/react-use-callback-ref" "0.1.0" -"@radix-ui/react-focus-scope@0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-0.1.2.tgz#a25da04a5e3ccccc34707837153a5dcb957e86fb" - integrity sha512-oYtrTi5in6YWf2H6PEzpHu9upFZXJ1GDmWAZ3TE78d2YBstCykKNTRX/pAmNonxI8Men607eKNbVBHPROjprhA== +"@radix-ui/react-focus-scope@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-0.1.3.tgz#b1cc825b6190001d731417ed90d192d13b41bce1" + integrity sha512-bKi+lw14SriQqYWMBe13b/wvxSqYMC+3FylMUEwOKA6JrBoldpkhX5XffGDdpDRTTpjbncdH3H7d1PL5Bs7Ikg== dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/react-compose-refs" "0.1.0" - "@radix-ui/react-primitive" "0.1.2" + "@radix-ui/react-primitive" "0.1.3" "@radix-ui/react-use-callback-ref" "0.1.0" "@radix-ui/react-icons@1.0.3", "@radix-ui/react-icons@^1.0.3": @@ -4250,10 +3479,10 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-context" "0.1.1" -"@radix-ui/react-id@0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-0.1.3.tgz#007c41749628ec6c2c801ad0b8f0a454bb181ae3" - integrity sha512-kA7erDg8S/bad9O6RTC+laW11gm2pvmEqlZA+rvzI+WEkQXStIgnVp+wA420be4q20UiLQw9cmIP01AIhDVdZQ== +"@radix-ui/react-id@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-0.1.4.tgz#4cd6126e6ac8a43ebe6d52948a068b797cc9ad71" + integrity sha512-/hq5m/D0ZfJWOS7TLF+G0l08KDRs87LBE46JkAvgKkg1fW4jkucx9At9D9vauIPSbdNmww5kXEp566hMlA8eXA== dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/react-use-layout-effect" "0.1.0" @@ -4317,25 +3546,25 @@ aria-hidden "^1.1.1" react-remove-scroll "^2.4.0" -"@radix-ui/react-menu@0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-0.1.3.tgz#08f80cacba749f67b64f51702b16a941c96fec84" - integrity sha512-VIzXxzgomYijUIb4Xg6HDDEhgZG02jkLXPkKG/GtSk4/M3BjfwhKZgNJ5/IywwFkZM2EJ0HgnnaEAxrs6AcMoQ== +"@radix-ui/react-menu@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-0.1.4.tgz#ed9aca2c2328038e2210e629228db6e3c67495c1" + integrity sha512-50HvBojjj2CrwIxcECRF9MdReoALRdpG7vtCAGbYs3eciIOLqtP6+Dx/sVz1YWe6Fsree/5vFQXZGImZYY/3TQ== dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/primitive" "0.1.0" - "@radix-ui/react-collection" "0.1.2" + "@radix-ui/react-collection" "0.1.3" "@radix-ui/react-compose-refs" "0.1.0" "@radix-ui/react-context" "0.1.1" - "@radix-ui/react-dismissable-layer" "0.1.2" + "@radix-ui/react-dismissable-layer" "0.1.3" "@radix-ui/react-focus-guards" "0.1.0" - "@radix-ui/react-focus-scope" "0.1.2" - "@radix-ui/react-id" "0.1.3" - "@radix-ui/react-popper" "0.1.2" - "@radix-ui/react-portal" "0.1.2" + "@radix-ui/react-focus-scope" "0.1.3" + "@radix-ui/react-id" "0.1.4" + "@radix-ui/react-popper" "0.1.3" + "@radix-ui/react-portal" "0.1.3" "@radix-ui/react-presence" "0.1.1" - "@radix-ui/react-primitive" "0.1.2" - "@radix-ui/react-roving-focus" "0.1.3" + "@radix-ui/react-primitive" "0.1.3" + "@radix-ui/react-roving-focus" "0.1.4" "@radix-ui/react-use-callback-ref" "0.1.0" "@radix-ui/react-use-direction" "0.1.0" aria-hidden "^1.1.1" @@ -4433,17 +3662,17 @@ "@radix-ui/react-use-size" "0.1.0" "@radix-ui/rect" "0.1.1" -"@radix-ui/react-popper@0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-0.1.2.tgz#9d297649706ff183a65f77110340ca45a008b768" - integrity sha512-A7mmodBJckhyi/wmKIQBldX8rjLaKB0JPEfFgGBr9U1Srb2Y330YeXQ0vZH4LpEan2fLeEDNdhSsz8kDZAu9DA== +"@radix-ui/react-popper@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-0.1.3.tgz#a93bdd72845566007e5f3868caddd62318bb781e" + integrity sha512-2OV2YaJv7iTZexJY3HJ7B6Fs1A/3JXd3fRGU4JY0guACfGMD1C/jSgds505MKQOTiHE/quI6j3/q8yfzFjJR9g== dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/popper" "0.1.0" - "@radix-ui/react-arrow" "0.1.2" + "@radix-ui/react-arrow" "0.1.3" "@radix-ui/react-compose-refs" "0.1.0" "@radix-ui/react-context" "0.1.1" - "@radix-ui/react-primitive" "0.1.2" + "@radix-ui/react-primitive" "0.1.3" "@radix-ui/react-use-rect" "0.1.1" "@radix-ui/react-use-size" "0.1.0" "@radix-ui/rect" "0.1.1" @@ -4477,13 +3706,13 @@ "@radix-ui/react-primitive" "0.1.1" "@radix-ui/react-use-layout-effect" "0.1.0" -"@radix-ui/react-portal@0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-0.1.2.tgz#a47059fe04ead0749d879818a7cbe9e7c751c4d5" - integrity sha512-rLSe5aeJ7yWD6CuUyg+U9wCoMLleRyxQS67eqALzLW7zk0glB5q5x2ihAEjocZH2Tng9v5QkYaLyh2+sO3TMRA== +"@radix-ui/react-portal@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-0.1.3.tgz#56826e789b3d4e37983f6d23666e3f1b1b9ee358" + integrity sha512-DrV+sPYLs0HhmX5/b7yRT6nLM9Nl6FtQe2KUG+46kiCOKQ+0XzNMO5hmeQtyq0mRf/qlC02rFu6OMsWpIqVsJg== dependencies: "@babel/runtime" "^7.13.10" - "@radix-ui/react-primitive" "0.1.2" + "@radix-ui/react-primitive" "0.1.3" "@radix-ui/react-use-layout-effect" "0.1.0" "@radix-ui/react-presence@0.0.14": @@ -4552,10 +3781,10 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-slot" "0.1.1" -"@radix-ui/react-primitive@0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-0.1.2.tgz#ca20fb15fc83124eead186333f917145e5e53378" - integrity sha512-mVgeBkuNRZRCzHuDm2DWjZEIs3ntp4m3GtKWPXUn+SgmJXIIpVLt7KhvEmNkgXURq/DJgxG9GmJJMXkACioH/A== +"@radix-ui/react-primitive@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-0.1.3.tgz#585c35ef2ec06bab0ea9e0fc5c916e556661b881" + integrity sha512-fcyADaaAx2jdqEDLsTs6aX50S3L1c9K9CC6XMpJpuXFJCU4n9PGTFDZRtY2gAoXXoRCPIBsklCopSmGb6SsDjQ== dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/react-slot" "0.1.2" @@ -4627,18 +3856,18 @@ "@radix-ui/react-use-callback-ref" "0.1.0" "@radix-ui/react-use-controllable-state" "0.1.0" -"@radix-ui/react-roving-focus@0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-0.1.3.tgz#7dcbf5b8cd79165a0d10e61170ac2a46b1293569" - integrity sha512-9VAvw8z3Nufw7PD8u32tJ0VuDi+5PiPlccRNdrtkdir/M4i/9B9D7WSZyzsqusVLFUo8y9Sj61eJIvGcUG6khw== +"@radix-ui/react-roving-focus@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-0.1.4.tgz#693ca3eaab153feabe37f9d50987d6d2911cf819" + integrity sha512-zaixcAxRcWQliUSx6l9rdfJhvcbuY7Tb4Emb7H4DWCTx1kenXH8+n9mwa8gaSIJLLSSSMzBpQATlpFw9xv/bJQ== dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/primitive" "0.1.0" - "@radix-ui/react-collection" "0.1.2" + "@radix-ui/react-collection" "0.1.3" "@radix-ui/react-compose-refs" "0.1.0" "@radix-ui/react-context" "0.1.1" - "@radix-ui/react-id" "0.1.3" - "@radix-ui/react-primitive" "0.1.2" + "@radix-ui/react-id" "0.1.4" + "@radix-ui/react-primitive" "0.1.3" "@radix-ui/react-use-callback-ref" "0.1.0" "@radix-ui/react-use-controllable-state" "0.1.0" @@ -5031,90 +4260,91 @@ dependencies: "@babel/runtime" "^7.13.10" -"@react-spring/animated@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.3.1.tgz#ffc4706121e8406efeaeacb407b42b5022943b46" - integrity sha512-23YaERZ++BwZ8F8PxPFqrpOwp/JZun1Pj6aHZtPAU42j5LycBRasT9XMw7Eyr7zNFhT+rl3R3wFfd4WX6Ax+UA== - dependencies: - "@react-spring/shared" "~9.3.0" - "@react-spring/types" "~9.3.0" - -"@react-spring/core@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.3.1.tgz#b98e1dca1eb4871dec75fdab350327e8a5222865" - integrity sha512-8rmfmEHLHGtF1CUiXRn64YJqsXNxv2cGX8oNnBnsuoE33c48Zc34t2VIMB4R9q5zwIUCvDBGfiEenA8ZAPxqOQ== - dependencies: - "@react-spring/animated" "~9.3.0" - "@react-spring/shared" "~9.3.0" - "@react-spring/types" "~9.3.0" - -"@react-spring/konva@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.3.1.tgz#7a915c1c912a81dc27d1a1bc31eb47c0a2a0c643" - integrity sha512-woG2DeDcUlz5hB8g9pA/tyUWU6dMrAzyUsNiBWVCyI9UqKA7CUKjz+ODOUi+hS++3Kz7kZSr3u0zzHHfxvoTPQ== - dependencies: - "@react-spring/animated" "~9.3.0" - "@react-spring/core" "~9.3.0" - "@react-spring/shared" "~9.3.0" - "@react-spring/types" "~9.3.0" - -"@react-spring/native@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.3.1.tgz#e1ac9d04d833b8d97e2d63630c4204f71915a29a" - integrity sha512-NAC1wHIUvy1umCVQRxcS+31Dmr9NszBY06sHy3jR8/HVuKNtaDUARVF3AYL/HfbIy4m6yR3tcIkM2NQ0SO+rZA== - dependencies: - "@react-spring/animated" "~9.3.0" - "@react-spring/core" "~9.3.0" - "@react-spring/shared" "~9.3.0" - "@react-spring/types" "~9.3.0" - -"@react-spring/rafz@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.3.1.tgz#8dd6a598ffea487252b75d05d199e4aca5ea9d5e" - integrity sha512-fEBMCarGVl+/2kdO+g6Zig4F+3ymwmcGN8S71gb1c7Cbbxb87kviPz8EhshfIHoiLeJPGlqwcuGbxNmZbBamvA== - -"@react-spring/shared@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.3.1.tgz#e7f22a4b8f5fea4491fa6a24c108db5abd19ddba" - integrity sha512-jhPpxzURGo6Nty90ex1lkxmZae7w/VAbnGmb/nXcYoZwSoNR+W2aAd00iXsh2ZGz6MgoJOsc495JeG3uC7Am8A== - dependencies: - "@react-spring/rafz" "~9.3.0" - "@react-spring/types" "~9.3.0" - -"@react-spring/three@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.3.1.tgz#91a50851639c5a88fed8f76b4e25ff388d2b24e7" - integrity sha512-40iRIX2DrY+a81hIliOog6TMg/ZAtHGeZr95r0vKAsl+iX1g9Hs8XCS4wTeQIUgydZpbpShk/JL6mkcstEfBdw== - dependencies: - "@react-spring/animated" "~9.3.0" - "@react-spring/core" "~9.3.0" - "@react-spring/shared" "~9.3.0" - "@react-spring/types" "~9.3.0" - -"@react-spring/types@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.3.1.tgz#20f392ecad15a1ea6c0865ffe86ca5016c05a278" - integrity sha512-W/YMJMX35XgGGzX0gKORBTwnvQ+1loDOFN3XlZkW5fgpEY+7VkRUpPyqPWXQr3n6lHrsLmHIGdpznqZi54ACTQ== - -"@react-spring/web@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.3.1.tgz#5b377ba7ad52e746c2b59e2738c021de3f219d0b" - integrity sha512-sisZIgFGva/Z+xKWPSfXpukF0AP3kR9ALTxlHL87fVotMUCJX5vtH/YlVcywToEFwTHKt3MpI5Wy2M+vgVEeaw== - dependencies: - "@react-spring/animated" "~9.3.0" - "@react-spring/core" "~9.3.0" - "@react-spring/shared" "~9.3.0" - "@react-spring/types" "~9.3.0" - -"@react-spring/zdog@~9.3.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.3.1.tgz#70fccd80c35248217de6252c4c2ffca16b4cff2f" - integrity sha512-QflA/fII9zWe9CSOA8QGSLMjUwyrtD1TX6YVzUSn/nlr2f7PlZPijdpdu9Cvdirgss472cUS7cRIUfll0TepqA== - dependencies: - "@react-spring/animated" "~9.3.0" - "@react-spring/core" "~9.3.0" - "@react-spring/shared" "~9.3.0" - "@react-spring/types" "~9.3.0" +"@react-spring/animated@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.4.3.tgz#2f8d2b50dfc1975fa490ed3bc03f5ad865180866" + integrity sha512-hKKmeXPoGpJ/zrG/RC8stwW8PmMH0BbewHD8aUPLbyzD9fNvZEJ0mjKmOI0CcSwMpb43kuwY2nX3ZJVImPQCoQ== + dependencies: + "@react-spring/shared" "~9.4.3-beta.0" + "@react-spring/types" "~9.4.3-beta.0" + +"@react-spring/core@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.4.3.tgz#95c883fa53ff534ff882ba42f863a26a26a6a1c8" + integrity sha512-Jr6/GjHwXYxAtttcYDXOtH36krO0XGjYaSsGR6g+vOUO4y0zAPPXoAwpK6vS7Haip5fRwk7rMdNG+OzU7bB4Bg== + dependencies: + "@react-spring/animated" "~9.4.3-beta.0" + "@react-spring/rafz" "~9.4.3-beta.0" + "@react-spring/shared" "~9.4.3-beta.0" + "@react-spring/types" "~9.4.3-beta.0" + +"@react-spring/konva@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.4.3.tgz#ef5332fc0960fa4313ac0ab6a122fd9247b3b111" + integrity sha512-JWxx0YIwipjJTDs7q9XtArlBCTjejyAJZrbhvxmizOM6ZukUj8hcEFYU03Vt5HUTSC4WfG0rkg2O9V1EAXuzCQ== + dependencies: + "@react-spring/animated" "~9.4.3-beta.0" + "@react-spring/core" "~9.4.3-beta.0" + "@react-spring/shared" "~9.4.3-beta.0" + "@react-spring/types" "~9.4.3-beta.0" + +"@react-spring/native@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.4.3.tgz#748ee1f588c1515a76766e319aa48151308bd5ad" + integrity sha512-dfOwzSxJcbHKTNJ26pceZ7xCrqf2+L6W/U17/7aogQwGec4yf1zocWXV3QS+h0HDuY0Bk/yYa7PEy+D+HWc7Og== + dependencies: + "@react-spring/animated" "~9.4.3-beta.0" + "@react-spring/core" "~9.4.3-beta.0" + "@react-spring/shared" "~9.4.3-beta.0" + "@react-spring/types" "~9.4.3-beta.0" + +"@react-spring/rafz@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.4.3.tgz#0d578072c9692ef5ab74a3b1d49c1432dce32ab6" + integrity sha512-KnujiZNIHzXsRq1D4tVbCajl8Lx+e6vtvUk7o69KbuneSpEgil9P/x3b+hMDk8U0NHGhJjzhU7723/CNsQansA== + +"@react-spring/shared@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.4.3.tgz#86e03ddd47911ba89be1d0f5a6d11966e305ee04" + integrity sha512-mB1UUD/pl1LzaY0XeNWZtvJzxMa8gLQf02nY12HAz4Rukm9dFRj0jeYwQYLdfYLsGFo1ldvHNurun6hZMG7kiQ== + dependencies: + "@react-spring/rafz" "~9.4.3-beta.0" + "@react-spring/types" "~9.4.3-beta.0" + +"@react-spring/three@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.4.3.tgz#1836ea12f7cb7ccb4c4a1f39101f4fb17955c386" + integrity sha512-AhCPqoZZXUnzVcKal01sdYBRqkVd2iNxDMk7BGXZsQNWeqaOMaaBT/a6d3oG3wwPX6xIa9ogBtzmzEasN6HYzA== + dependencies: + "@react-spring/animated" "~9.4.3-beta.0" + "@react-spring/core" "~9.4.3-beta.0" + "@react-spring/shared" "~9.4.3-beta.0" + "@react-spring/types" "~9.4.3-beta.0" + +"@react-spring/types@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.4.3.tgz#8926d7a09812374127b1f8a904a755c7579124e6" + integrity sha512-dzJrPvUc42K2un9y6D1IsrPQO5tKsbWwUo+wsATnXjG3ePWyuDBIOMJuPe605NhIXUmPH+Vik2wMoZz06hD1uA== + +"@react-spring/web@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.4.3.tgz#b59c1491de344545590598b7fde52b607c4e5d10" + integrity sha512-llKve/uJ73JVagBAVvA74S/LfZP4oSB3XP1qmggSUNXzPZZo5ylIMrs55PxpLyxgzzihuhDU5N17ct3ATViOHw== + dependencies: + "@react-spring/animated" "~9.4.3-beta.0" + "@react-spring/core" "~9.4.3-beta.0" + "@react-spring/shared" "~9.4.3-beta.0" + "@react-spring/types" "~9.4.3-beta.0" + +"@react-spring/zdog@~9.4.3-beta.0": + version "9.4.3" + resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.4.3.tgz#0a76564ea635ab00a1720a3843faf4f46ca3c82a" + integrity sha512-ujRJBKEWC6miwPhCwHkn13h9OfqK+Kkq49crebo5neY4kCK2efNoagQo54DwXFgbVNFJV+6GwcAZVI2ybS5L1Q== + dependencies: + "@react-spring/animated" "~9.4.3-beta.0" + "@react-spring/core" "~9.4.3-beta.0" + "@react-spring/shared" "~9.4.3-beta.0" + "@react-spring/types" "~9.4.3-beta.0" "@reflect-blocks/figma-embed@^0.0.5": version "0.0.5" @@ -5133,11 +4363,16 @@ resolved "https://registry.yarnpkg.com/@reflect-ui/namings/-/namings-0.0.3.tgz#6e9fd4809dd5c9d2a996516236c71b99ea93fbcb" integrity sha512-rNNW9nK8qhz+54pOL11MRUTjRhRHTL/rbM5kvtddDY2g7t/1XxGl7d3tLs/0LEoy2LFPtNf/fFZYEgQD/jyoFA== -"@reflect-ui/uiutils@0.1.2-1", "@reflect-ui/uiutils@^0.1.2-1": +"@reflect-ui/uiutils@0.1.2-1": version "0.1.2-1" resolved "https://registry.yarnpkg.com/@reflect-ui/uiutils/-/uiutils-0.1.2-1.tgz#b88d08223eb19ab5e6dd5ecf4a03075a41bb89c1" integrity sha512-fv3mITNqM6U7DEpOr5B6c9lmmkj22r3114aR8Tvp2izMIndLbFJBzLnYEVA07bHiglic1POWCePwYVhB+bAF1Q== +"@reflect-ui/uiutils@^0.1.2-1": + version "0.1.2-2" + resolved "https://registry.yarnpkg.com/@reflect-ui/uiutils/-/uiutils-0.1.2-2.tgz#56b80dd920be63d424cbb0478223e50acb95a50d" + integrity sha512-PGmoG2zP34P8+JeXawY4kogmaGeP0kaWnHsOxxbl+p2v1TeD8ORR9VW9boNn0knldJb9+63W6v5lpB1N4icwnA== + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -5157,17 +4392,17 @@ resolved "https://registry.yarnpkg.com/@stitches/react/-/react-1.2.6.tgz#61f2a3d1110334ecd33bcb7463650127d42470cb" integrity sha512-gRVITYj8W4jJmoiVxWDv72yCvd12VvtUUAnTzs07EqmtvGCVgKZu3Dx0x5KVCcb0b6tfgvvNH2L84YrzdM4Mag== -"@storybook/addon-actions@6.4.13", "@storybook/addon-actions@^6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.4.13.tgz#3c33cbffb8857f27f528d0e35ae9ba806d95ee0b" - integrity sha512-Bf/M3Kdq60xj48oXnRCm7+qstWL9wT8rjFPFm7+A0NSfVSlox6pFU5SfPuOI4Za/6Ll2XDaYwsaF3QYHX0jQAA== +"@storybook/addon-actions@6.4.19", "@storybook/addon-actions@^6.4.13": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.4.19.tgz#10631d9c0a6669810264ea7fac3bff7201553084" + integrity sha512-GpSvP8xV8GfNkmtGJjfCgaOx6mbjtyTK0aT9FqX9pU0s+KVMmoCTrBh43b7dWrwxxas01yleBK9VpYggzhi/Fw== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/theming" "6.4.13" + "@storybook/theming" "6.4.19" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -5181,18 +4416,18 @@ util-deprecate "^1.0.2" uuid-browser "^3.1.0" -"@storybook/addon-backgrounds@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.13.tgz#e233daa7e5bcf417bfd885e1ad7e2d8d7873e9ad" - integrity sha512-U+TowEgEHCWifdnaJE5P7kgRHjYrztwpjp/8tX4iXHlCVFBFid+v4EKqXQGbvTzX66g2Yfv/h68NGEpcFW/svQ== +"@storybook/addon-backgrounds@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.19.tgz#76435e2037824bb3a6fed9f7d51b9df34fae8af2" + integrity sha512-yn8MTE7lctO48Rdw+DmmA1wKdf5eyAbA/vrug5ske/U2WPgGc65sApzwT8BItZfuyAMjuT5RnCWwd7o6hGRgGQ== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/theming" "6.4.13" + "@storybook/theming" "6.4.19" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" @@ -5200,28 +4435,28 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-controls@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.4.13.tgz#7875abb01ddcf893dd915bf2f965f97b53cfae84" - integrity sha512-XDaeYcwCi4qQ8hGXn4Mbdb6CQGGfZoBm5UjUaWBjDJdo54AyZv3VYdNgWFdiitqk5LRyh2omHD54EditM774NQ== +"@storybook/addon-controls@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.4.19.tgz#1ebf74f7b0843ea0eccd319f5295dfa48947a975" + integrity sha512-JHi5z9i6NsgQLfG5WOeQE1AyOrM+QJLrjT+uOYx40bq+OC1yWHH7qHiphPP8kjJJhCZlaQk1qqXYkkQXgaeHSw== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/core-common" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/core-common" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/node-logger" "6.4.13" - "@storybook/store" "6.4.13" - "@storybook/theming" "6.4.13" + "@storybook/node-logger" "6.4.19" + "@storybook/store" "6.4.19" + "@storybook/theming" "6.4.19" core-js "^3.8.2" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.4.13.tgz#7d6990d3afcb4e6334891880ea55da7cab118719" - integrity sha512-frsHcZD3jabIXxYkenwigJhAiqmbeBztc1cUTMWSZ9kVDJN6h2msq/vD0LEotfjcvDe3XS2HZgBjdDJ1UUUj/g== +"@storybook/addon-docs@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.4.19.tgz#229deabc74ea478c34fee96b85edb73da439680e" + integrity sha512-OEPyx/5ZXmZOPqIAWoPjlIP8Q/YfNjAmBosA8tmA8t5KCSiq/vpLcAvQhxqK6n0wk/B8Xp67Z8RpLfXjU8R3tw== dependencies: "@babel/core" "^7.12.10" "@babel/generator" "^7.12.11" @@ -5232,21 +4467,21 @@ "@mdx-js/loader" "^1.6.22" "@mdx-js/mdx" "^1.6.22" "@mdx-js/react" "^1.6.22" - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/builder-webpack4" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/core" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/builder-webpack4" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/core" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/csf-tools" "6.4.13" - "@storybook/node-logger" "6.4.13" - "@storybook/postinstall" "6.4.13" - "@storybook/preview-web" "6.4.13" - "@storybook/source-loader" "6.4.13" - "@storybook/store" "6.4.13" - "@storybook/theming" "6.4.13" + "@storybook/csf-tools" "6.4.19" + "@storybook/node-logger" "6.4.19" + "@storybook/postinstall" "6.4.19" + "@storybook/preview-web" "6.4.19" + "@storybook/source-loader" "6.4.19" + "@storybook/store" "6.4.19" + "@storybook/theming" "6.4.19" acorn "^7.4.1" acorn-jsx "^5.3.1" acorn-walk "^7.2.0" @@ -5261,7 +4496,7 @@ lodash "^4.17.21" nanoid "^3.1.23" p-limit "^3.1.0" - prettier "<=2.3.0" + prettier ">=2.2.1 <=2.3.0" prop-types "^15.7.2" react-element-to-jsx-string "^14.3.4" regenerator-runtime "^0.13.7" @@ -5271,35 +4506,35 @@ util-deprecate "^1.0.2" "@storybook/addon-essentials@^6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.4.13.tgz#9deec5014dcad4ce58c66e5a6f7bf289cea0f10f" - integrity sha512-ekvyeVckKkffGQMzp6cT0/Mi8Wo1fqF/DGp3vJIcIrExfvuZa/qi8PoHyx+cr8dfI0b8Jf8Lv7qcLIxNnkA5Bg== - dependencies: - "@storybook/addon-actions" "6.4.13" - "@storybook/addon-backgrounds" "6.4.13" - "@storybook/addon-controls" "6.4.13" - "@storybook/addon-docs" "6.4.13" - "@storybook/addon-measure" "6.4.13" - "@storybook/addon-outline" "6.4.13" - "@storybook/addon-toolbars" "6.4.13" - "@storybook/addon-viewport" "6.4.13" - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/node-logger" "6.4.13" + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.4.19.tgz#20f6d65270d1f15830fb0631dfcc935fddb95137" + integrity sha512-vbV8sjepMVEuwhTDBHjO3E6vXluG7RiEeozV1QVuS9lGhjQdvUPdZ9rDNUcP6WHhTdEkS/ffTMaGIy1v8oZd7g== + dependencies: + "@storybook/addon-actions" "6.4.19" + "@storybook/addon-backgrounds" "6.4.19" + "@storybook/addon-controls" "6.4.19" + "@storybook/addon-docs" "6.4.19" + "@storybook/addon-measure" "6.4.19" + "@storybook/addon-outline" "6.4.19" + "@storybook/addon-toolbars" "6.4.19" + "@storybook/addon-viewport" "6.4.19" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/node-logger" "6.4.19" core-js "^3.8.2" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" "@storybook/addon-links@^6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.4.13.tgz#fbec1ef4d29a14d6d0dc85c6be473eebad91a31a" - integrity sha512-d/uxMZoEjgCRhVvJXYIKJ0VtHARA7p7/oDxBMiexBDGZ2FzZWtq/nejdER539X71JMUkjkaqTs+ekTunZe0eMg== + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.4.19.tgz#001f26c4ffc7d36fd6018b8a137449948b337869" + integrity sha512-ebFHYlGDQkHSmI5QEJb1NxGNToVOLgjKkxXUe+JXX7AfHvrWiXVrN/57aOtBPZzj4h2jRPRTZgwR5glhPIlfEQ== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/router" "6.4.13" + "@storybook/router" "6.4.19" "@types/qs" "^6.9.5" core-js "^3.8.2" global "^4.4.0" @@ -5308,94 +4543,94 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-measure@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.4.13.tgz#dcf2f3f791f662a35a1331f8133d1c3bae3b823b" - integrity sha512-uOnJrSWNlMznScCfeXkhqlenLoz6DBgNgBxuP7P6TiF5cxq7Xwv23RX3Hj1nzybP+wvUPEj08FBCh8BqgGOsOA== +"@storybook/addon-measure@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.4.19.tgz#cd648a3d07b84505863f6d9918c6023a2921a596" + integrity sha512-PXeU0AlpnGEvnzBQ6snkzmlIpwE0ci8LdFtL1Vz1V1Xk5fbuETWYuEkPuk1oZ7L9igB9cfT32SyJlE5MC1iaGg== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" core-js "^3.8.2" global "^4.4.0" -"@storybook/addon-outline@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.4.13.tgz#891955b0d88de843863d3e5860f29754bc98144b" - integrity sha512-9BR70PRQeHtED/NkDp6JPRPrpKA43AubgRu4PHUJ0sbaD7o2DMHPKtt2AcsZoL7JSeGDl30cYzfn3pVZDPVxEA== +"@storybook/addon-outline@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.4.19.tgz#07990749de4286c525593cc74d49fbb120f7cf22" + integrity sha512-7ZDXo8qrms6dx0KRP9PInXIie82h5g9XCNrGOUdfZkQPvgofJVj0kNv6p+WOiGiaVfKPC5KMgIofqzBTFV+k6Q== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.4.13.tgz#c28fb72897709f689cda3675d3c0a4c26a6fe20d" - integrity sha512-57/bO5MsVnRjmxff+JjQzqjWCzX1KDHR8zla1RpaGsW5ejXcQumW38Xbp0OCscD7wGLL/b58GM/9OIk38LqBwA== +"@storybook/addon-toolbars@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.4.19.tgz#75a8d531c0f7bfda1c6c97d19bf95fdd2ad54d3f" + integrity sha512-2UtuX9yB1rD/CAZv1etnOnunfPTvsEKEg/J2HYMKE1lhenWC5muIUXvDXCXvwDC65WviPJ56nFNKaKK1Zz7JDg== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/theming" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/theming" "6.4.19" core-js "^3.8.2" regenerator-runtime "^0.13.7" -"@storybook/addon-viewport@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.4.13.tgz#0307e7664ef1c791d5f0f28e11e229d2cc7c35c1" - integrity sha512-EzgPyLRTDgezSlZ7yCKDhR/VcKBECEdd7JCLiuVbfrThVhaKzM9gCx5pDnc0qTflx0DagqkIWFHNVPQt2KnQ3g== - dependencies: - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/core-events" "6.4.13" - "@storybook/theming" "6.4.13" +"@storybook/addon-viewport@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.4.19.tgz#08702f5c2103c8ec5bc69344c06b85553949d274" + integrity sha512-T1hdImxbLj8suQSTbp6HSA1LLHOlqaNK5jjnqzEOoAxY0O8LNPXMJ2jKIeT2fPQ0v+tWGU3tbwf+3xFq0parVQ== + dependencies: + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/core-events" "6.4.19" + "@storybook/theming" "6.4.19" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" prop-types "^15.7.2" regenerator-runtime "^0.13.7" -"@storybook/addons@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.4.13.tgz#df35a7ad908018125eb817ec6a3af05fac09543a" - integrity sha512-2oxZ/VOuXUpOvtKGy+fR1FNwyfaTkzKs9I6cZq2zbEGK2q/5x6rtczwNRm5PjK35At+VurMq0E+IHH10JO9vHw== +"@storybook/addons@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.4.19.tgz#797d912b8b5a86cd6e0d31fa4c42d1f80808a432" + integrity sha512-QNyRYhpqmHV8oJxxTBdkRlLSbDFhpBvfvMfIrIT1UXb/eemdBZTaCGVvXZ9UixoEEI7f8VwAQ44IvkU5B1509w== dependencies: - "@storybook/api" "6.4.13" - "@storybook/channels" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/api" "6.4.19" + "@storybook/channels" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/router" "6.4.13" - "@storybook/theming" "6.4.13" + "@storybook/router" "6.4.19" + "@storybook/theming" "6.4.19" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" -"@storybook/api@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.4.13.tgz#bf5ced25a31c4c76432fd57a133406f8e2a1ce45" - integrity sha512-Hr5/dL4tLnQPjrUlVdhsYMSAuJmsZcu3jdfqpjbsDC9S2HNaVtyHGBhQ33jD8+xtXoorsuS7t4SfWzLOgPPflg== +"@storybook/api@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.4.19.tgz#8000a0e4c52c39b910b4ccc6731419e8e71800ef" + integrity sha512-aDvea+NpQCBjpNp9YidO1Pr7fzzCp15FSdkG+2ihGQfv5raxrN+IIJnGUXecpe71nvlYiB+29UXBVK7AL0j51Q== dependencies: - "@storybook/channels" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/channels" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/router" "6.4.13" + "@storybook/router" "6.4.19" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.4.13" + "@storybook/theming" "6.4.19" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -5407,10 +4642,10 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack4@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.4.13.tgz#529087b9d64c3634e237f0a837f97fe1db4a564a" - integrity sha512-Vjvje/XpFirVY6bOU+ahS2niapjA0Qams5jBE8YnPUhbigqsLOMMpnJ+C505xC6S5VW0lMkhJpCQ1NQyva3sRw== +"@storybook/builder-webpack4@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.4.19.tgz#ca8228639be06e50d5f1555b844dd4177e5068ad" + integrity sha512-wxA6SMH11duc9D53aeVVBwrVRemFIoxHp/dOugkkg6ZZFAb4ZmWzf/ENc3vQIZdZpfNRi7IZIZEOfoHc994cmw== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -5433,22 +4668,22 @@ "@babel/preset-env" "^7.12.11" "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/channel-postmessage" "6.4.13" - "@storybook/channels" "6.4.13" - "@storybook/client-api" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/core-common" "6.4.13" - "@storybook/core-events" "6.4.13" - "@storybook/node-logger" "6.4.13" - "@storybook/preview-web" "6.4.13" - "@storybook/router" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/channel-postmessage" "6.4.19" + "@storybook/channels" "6.4.19" + "@storybook/client-api" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/core-common" "6.4.19" + "@storybook/core-events" "6.4.19" + "@storybook/node-logger" "6.4.19" + "@storybook/preview-web" "6.4.19" + "@storybook/router" "6.4.19" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.13" - "@storybook/theming" "6.4.13" - "@storybook/ui" "6.4.13" + "@storybook/store" "6.4.19" + "@storybook/theming" "6.4.19" + "@storybook/ui" "6.4.19" "@types/node" "^14.0.10" "@types/webpack" "^4.41.26" autoprefixer "^9.8.6" @@ -5482,51 +4717,51 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.2.2" -"@storybook/channel-postmessage@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.4.13.tgz#e299a75db2e572662b9bd7f92bc9eedd2df51dd9" - integrity sha512-fyju7H/t2oDp9yci6KImRDPr9FnGV6B0juJ+2kEtVAmeDo55BScjT96SQuS/uk4c0wo6NZMrCt6HiC4zOmrD6g== +"@storybook/channel-postmessage@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.4.19.tgz#5db4e1188aaa9de05fee3ba6a6b7f3b988cade03" + integrity sha512-E5h/itFzQ/6M08LR4kqlgqqmeO3tmavI+nUAlZrkCrotpJFNMHE2i0PQHg0TkFJrRDpYcrwD+AjUW4IwdqrisQ== dependencies: - "@storybook/channels" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/channels" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/core-events" "6.4.19" core-js "^3.8.2" global "^4.4.0" qs "^6.10.0" telejson "^5.3.2" -"@storybook/channel-websocket@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.4.13.tgz#6a85b6c846097f3a601038dcd58e8f624a9a3600" - integrity sha512-edc/KRF2dpMyCI67ik8loo2cNh7TUP8HoO/YJBVPTEGmOQxMWgmYs+loTd1xoZAFBdkVKvLXBiu8umPpdh2MpA== +"@storybook/channel-websocket@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.4.19.tgz#5b2f34f9089966bab66c55721766d3d1803edf2e" + integrity sha512-cXKwQjIXttfdUyZlcHORelUmJ5nUKswsnCA/qy7IRWpZjD8yQJcNk1dYC+tTHDVqFgdRT89pL0hRRB1rlaaR8Q== dependencies: - "@storybook/channels" "6.4.13" - "@storybook/client-logger" "6.4.13" + "@storybook/channels" "6.4.19" + "@storybook/client-logger" "6.4.19" core-js "^3.8.2" global "^4.4.0" telejson "^5.3.2" -"@storybook/channels@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.4.13.tgz#d79005f712be7575be093d917c13f3a0033bb44d" - integrity sha512-QWvm2TiqPZVPQLBq7ETcABNi17HIhNaXhJJUyNFBBXFtAHcbzMRFEBi6gkCVXK7QdtFo3Z68TU5htDkwjYVerg== +"@storybook/channels@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.4.19.tgz#095bbaee494bf5b03f7cb92d34626f2f5063cb31" + integrity sha512-EwyoncFvTfmIlfsy8jTfayCxo2XchPkZk/9txipugWSmc057HdklMKPLOHWP0z5hLH0IbVIKXzdNISABm36jwQ== dependencies: core-js "^3.8.2" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.4.13.tgz#7cc59353a1329a6e9fca7247ae255d5ebceb80a4" - integrity sha512-YoF0iKeOTv06HFTLSg1M8Fs9JZwFcNhGFHXv7/LtuTZ9n6ATgaZm7eTTdKrn1d8Qjxql7c7Lm/7mdZgus9ByBA== +"@storybook/client-api@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.4.19.tgz#131597e160f112f51240a4e407191053e5ed972f" + integrity sha512-OCrT5Um3FDvZnimQKwWtwsaI+5agPwq2i8YiqlofrI/NPMKp0I7DEkCGwE5IRD1Q8BIKqHcMo5tTmfYi0AxyOg== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/channel-postmessage" "6.4.13" - "@storybook/channels" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/channel-postmessage" "6.4.19" + "@storybook/channels" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/store" "6.4.13" + "@storybook/store" "6.4.19" "@types/qs" "^6.9.5" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" @@ -5541,23 +4776,23 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.4.13.tgz#2467ee13c7f85e9f6c0d9cd64c11ee7a109b060a" - integrity sha512-VPrrgJRURztXAKTeHOpzKMAHnNupkGApUDNlPIs0Qxyn5gaSiy806q4XPoROno3mVgEe+7Chf86hRiL8pJnlCA== +"@storybook/client-logger@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.4.19.tgz#b2011ad2fa446cce4a9afdb41974b2a576e9fad2" + integrity sha512-zmg/2wyc9W3uZrvxaW4BfHcr40J0v7AGslqYXk9H+ERLVwIvrR4NhxQFaS6uITjBENyRDxwzfU3Va634WcmdDQ== dependencies: core-js "^3.8.2" global "^4.4.0" -"@storybook/components@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.4.13.tgz#2e7f109ecef63ae0c6f096939d69e26abbb39c6b" - integrity sha512-edeoYycQMsPaXPyPvYV4Aoiz4A/9kPsZt0Wf2zBGMGX6cpaGV3aoy8pFBl6XSq2hPxIn8JdcB/8MK3/tj35h4w== +"@storybook/components@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.4.19.tgz#084ba21f26a3eeab82f45178de6899688eecb2fc" + integrity sha512-q/0V37YAJA7CNc+wSiiefeM9+3XVk8ixBNylY36QCGJgIeGQ5/79vPyUe6K4lLmsQwpmZsIq1s1Ad5+VbboeOA== dependencies: "@popperjs/core" "^2.6.0" - "@storybook/client-logger" "6.4.13" + "@storybook/client-logger" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/theming" "6.4.13" + "@storybook/theming" "6.4.19" "@types/color-convert" "^2.0.0" "@types/overlayscrollbars" "^1.12.0" "@types/react-syntax-highlighter" "11.0.5" @@ -5579,21 +4814,21 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/core-client@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.4.13.tgz#c25a6f5916f9642c64a9f2aeb9f5f7cee12b053a" - integrity sha512-1m7cAlF16mtVdSNmP8a4z00GCkw2dMyUyJX8snzgYGLD5FaqPLyNGJIidqllHsBUXBfEL2FSu+E9QygK12+O1w== - dependencies: - "@storybook/addons" "6.4.13" - "@storybook/channel-postmessage" "6.4.13" - "@storybook/channel-websocket" "6.4.13" - "@storybook/client-api" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/core-events" "6.4.13" +"@storybook/core-client@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.4.19.tgz#fc6902c4321ae9e7c2858126172bc0752a84321c" + integrity sha512-rQHRZjhArPleE7/S8ZUolgzwY+hC0smSKX/3PQxO2GcebDjnJj6+iSV3h+aSMHMmTdoCQvjYw9aBpT8scuRe+A== + dependencies: + "@storybook/addons" "6.4.19" + "@storybook/channel-postmessage" "6.4.19" + "@storybook/channel-websocket" "6.4.19" + "@storybook/client-api" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/preview-web" "6.4.13" - "@storybook/store" "6.4.13" - "@storybook/ui" "6.4.13" + "@storybook/preview-web" "6.4.19" + "@storybook/store" "6.4.19" + "@storybook/ui" "6.4.19" airbnb-js-shims "^2.2.1" ansi-to-html "^0.6.11" core-js "^3.8.2" @@ -5605,10 +4840,10 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/core-common@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.4.13.tgz#019ce8089d5f3a96c436f208962fbf711ccf8e5c" - integrity sha512-KoFa4yktuqWsW+/O6uc7iba25X9eKhp80l9tHsa1RWE94mQdCBUo5VsNoe35JvqFSDOspQ+brCe6vBUaIYe+cQ== +"@storybook/core-common@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.4.19.tgz#18e6c6095ebd9a94b074529917c693084921d3ca" + integrity sha512-X1pJJkO48DFxl6iyEemIKqRkJ7j9/cBh3BRBUr+xZHXBvnD0GKDXIocwh0PjSxSC6XSu3UCQnqtKi3PbjRl8Dg== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -5631,7 +4866,7 @@ "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" "@babel/register" "^7.12.1" - "@storybook/node-logger" "6.4.13" + "@storybook/node-logger" "6.4.19" "@storybook/semver" "^7.3.2" "@types/node" "^14.0.10" "@types/pretty-hrtime" "^1.0.0" @@ -5660,29 +4895,29 @@ util-deprecate "^1.0.2" webpack "4" -"@storybook/core-events@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.4.13.tgz#caf1adafd743f8d53a151bc402449f841896cb9c" - integrity sha512-zNlzNv7qVXjLf7yfvY9KfLvDY8nVskxrjmz0+21rIqUefS9+7SWBrtJJURpCaoPf/BmACqh/6c1RnuOY7TESnw== +"@storybook/core-events@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.4.19.tgz#d2a03156783a3cb9bd9f7ba81a06a798a5c296ae" + integrity sha512-KICzUw6XVQUJzFSCXfvhfHAuyhn4Q5J4IZEfuZkcGJS4ODkrO6tmpdYE5Cfr+so95Nfp0ErWiLUuodBsW9/rtA== dependencies: core-js "^3.8.2" -"@storybook/core-server@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.4.13.tgz#cbc11d442a8be6f06929c8d655e9b752204ebca9" - integrity sha512-i3zrtHHkV6/b+jJF65BQu+YuXen+T/MF1f5J+li5nvJnLKhssVQmvpGvWyJezT3OgFkC1+BFBokFY6NXHHw77g== +"@storybook/core-server@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.4.19.tgz#0d1b4b2094749b8bce03e3d01422e14e5fef8e66" + integrity sha512-bKsUB9f7hl5ya2JXxpIrErmbDQjoH39FVbzYZWjMo4t/b7+Xyi6vYadwyWcqlpUQmis09ZaSMv8L/Tw0TuwLAA== dependencies: "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-webpack4" "6.4.13" - "@storybook/core-client" "6.4.13" - "@storybook/core-common" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/builder-webpack4" "6.4.19" + "@storybook/core-client" "6.4.19" + "@storybook/core-common" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/csf-tools" "6.4.13" - "@storybook/manager-webpack4" "6.4.13" - "@storybook/node-logger" "6.4.13" + "@storybook/csf-tools" "6.4.19" + "@storybook/manager-webpack4" "6.4.19" + "@storybook/node-logger" "6.4.19" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.13" + "@storybook/store" "6.4.19" "@types/node" "^14.0.10" "@types/node-fetch" "^2.5.7" "@types/pretty-hrtime" "^1.0.0" @@ -5715,18 +4950,18 @@ webpack "4" ws "^8.2.3" -"@storybook/core@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.4.13.tgz#a317df48d72cb4e7ac9fda6f935be7b2d67f5877" - integrity sha512-OSbji5w4jrGNALbxJwktZhi8qw4bGgL88dL72O40173b8ROLBOGkEkkz/BpHbqx2PhS9sGVNVMK2b2BwAiiu7g== +"@storybook/core@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.4.19.tgz#58dd055bcc0ef335e0e0d3f6eca74b4d4d49eba1" + integrity sha512-55LOQ/h/kf1jMhjN85t/pIEdIwWEG9yV7bdwv3niVvmoypCxyyjn9/QNK0RKYAeDSUtdm6FVoJ6k5CpxWz2d8w== dependencies: - "@storybook/core-client" "6.4.13" - "@storybook/core-server" "6.4.13" + "@storybook/core-client" "6.4.19" + "@storybook/core-server" "6.4.19" -"@storybook/csf-tools@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.4.13.tgz#393b19f3901784d7c820abbe7379977e7ec5f15c" - integrity sha512-eEYQdr/N4bsiQFxNEUkfQ/KyqdnUecwFS7V1k16/m/dP7cfinwW2Yo+9t77uWe3Qmzj9RbM6jrdWxXEUZ6MwvQ== +"@storybook/csf-tools@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.4.19.tgz#28bdea11da17501a8bc4e761b821d7721880eaf6" + integrity sha512-gf/zRhGoAVsFwSyV2tc+jeJfZQkxF6QsaZgbUSe24/IUvGFCT/PS/jZq1qy7dECAwrTOfykgu8juyBtj6WhWyw== dependencies: "@babel/core" "^7.12.10" "@babel/generator" "^7.12.11" @@ -5742,7 +4977,7 @@ global "^4.4.0" js-string-escape "^1.0.1" lodash "^4.17.21" - prettier "<=2.3.0" + prettier ">=2.2.1 <=2.3.0" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" @@ -5753,20 +4988,20 @@ dependencies: lodash "^4.17.15" -"@storybook/manager-webpack4@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.4.13.tgz#69d6d60818192dc18d6b2dee9548482e8abf6a54" - integrity sha512-aUUIvSf1nUSuPEdLFcbXbEbm+WlBrpX+Ce+Ee5zuMpggfiMeq4H4UB5QuluB8oLUcJA/ZoQZ9m4pPfUZDH0O0w== +"@storybook/manager-webpack4@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.4.19.tgz#999577afb9b9a57fc478f7c5e5d95d785ea69da3" + integrity sha512-R8ugZjTYqXvlc6gDOcw909L65sIleOmIJLZR+N6/H85MivGXHu39jOwONqB7tVACufRty4FNecn8tEiQL2SAKA== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.4.13" - "@storybook/core-client" "6.4.13" - "@storybook/core-common" "6.4.13" - "@storybook/node-logger" "6.4.13" - "@storybook/theming" "6.4.13" - "@storybook/ui" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/core-client" "6.4.19" + "@storybook/core-common" "6.4.19" + "@storybook/node-logger" "6.4.19" + "@storybook/theming" "6.4.19" + "@storybook/ui" "6.4.19" "@types/node" "^14.0.10" "@types/webpack" "^4.41.26" babel-loader "^8.0.0" @@ -5795,10 +5030,10 @@ webpack-dev-middleware "^3.7.3" webpack-virtual-modules "^0.2.2" -"@storybook/node-logger@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.4.13.tgz#67f294e56b5014c81dde542940f9a17f7d74604a" - integrity sha512-L0WJjJ3MTkdSpCaC1xSJ1/SJzblQ8E3tYKSI3M3890711gfxtSM/9CfuatQ6ibTXcm5d8bW6TUJayTD4I8vUPg== +"@storybook/node-logger@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.4.19.tgz#554f9efad4e95ce6fa63222d026f43258293c896" + integrity sha512-hO2Aar3PgPnPtNq2fVgiuGlqo3EEVR6TKVBXMq7foL3tN2k4BQFKLDHbm5qZQQntyYKurKsRUGKPJFPuI1ov/w== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.1.0" @@ -5806,24 +5041,24 @@ npmlog "^5.0.1" pretty-hrtime "^1.0.3" -"@storybook/postinstall@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.4.13.tgz#508f73e0a2f07ba994554d43daad0f6b49945ffa" - integrity sha512-7SzFt0BDFOI0vFKc0Ba5slkQaur3AEN9211U7pBbzgp6HxBjiTT5fqLET+dvk30ke8YtOauj0LZ+uHx9TNYrBA== +"@storybook/postinstall@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.4.19.tgz#ba9799e30a727e39f51168f9c193aab99ef87bdf" + integrity sha512-/0tHHxyIV82zt1rw4BW70GmrQbDVu9IJPAxOqFzGjC1fNojwJ53mK6FfUsOzbhG5mWk5p0Ip5+zr74moP119AA== dependencies: core-js "^3.8.2" -"@storybook/preview-web@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.4.13.tgz#14b9e106f3cc00dd411a43be9cd280e5e8a0ecfc" - integrity sha512-z21N09iWrzi2sX5+06aNvxPVp0rzntO7seM7zIPxqpFiEsAoPodkVJka3YyJpgK3S2JtgipmIgvLJeLXENLr3g== +"@storybook/preview-web@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.4.19.tgz#bdfab7b2f760caf72140229dd64fd57617ad000b" + integrity sha512-jqltoBv5j7lvnxEfV9w8dLX9ASWGuvgz97yg8Yo5FqkftEwrHJenyvMGcTgDJKJPorF+wiz/9aIqnmd3LCAcZQ== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/channel-postmessage" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/channel-postmessage" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/store" "6.4.13" + "@storybook/store" "6.4.19" ansi-to-html "^0.6.11" core-js "^3.8.2" global "^4.4.0" @@ -5849,21 +5084,21 @@ tslib "^2.0.0" "@storybook/react@^6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.4.13.tgz#f51f2c56dd57554dbb53fdbfd0b5a20a3ad914b8" - integrity sha512-bmHGeAAad0qoEfselx3qvWlPf1fWccDgki3TneFWYTSoybZOuu0PWJp+M7kqWMxcyvdwQImjA9F+vCc7CUuF9w== + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.4.19.tgz#1707b785b5a65c867e291ede12113e7fd55f8998" + integrity sha512-5b3i8jkVrjQGmcxxxXwCduHPIh+cluWkfeweKeQOe+lW4BR8fuUICo3AMLrYPAtB/UcaJyYkIYmTvF2mkfepFA== dependencies: "@babel/preset-flow" "^7.12.1" "@babel/preset-react" "^7.12.10" "@pmmmwh/react-refresh-webpack-plugin" "^0.5.1" - "@storybook/addons" "6.4.13" - "@storybook/core" "6.4.13" - "@storybook/core-common" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/core" "6.4.19" + "@storybook/core-common" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/node-logger" "6.4.13" + "@storybook/node-logger" "6.4.19" "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.253f8c1.0" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.13" + "@storybook/store" "6.4.19" "@types/webpack-env" "^1.16.0" babel-plugin-add-react-displayname "^0.0.5" babel-plugin-named-asset-import "^0.3.1" @@ -5878,12 +5113,12 @@ ts-dedent "^2.0.0" webpack "4" -"@storybook/router@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.4.13.tgz#f83dc12b21906f9a671d4e963cac747972d848c7" - integrity sha512-6KbIpSL8QhGglzGb+tWTvAF/2EVpmgwlU5VP6Xs3GANcOc3VeXWl1fcJD6CNPp2DHwjkblW+21dcoHqfljnTmg== +"@storybook/router@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.4.19.tgz#e653224dd9a521836bbd2610f604f609a2c77af2" + integrity sha512-KWWwIzuyeEIWVezkCihwY2A76Il9tUNg0I410g9qT7NrEsKyqXGRYOijWub7c1GGyNjLqz0jtrrehtixMcJkuA== dependencies: - "@storybook/client-logger" "6.4.13" + "@storybook/client-logger" "6.4.19" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -5903,30 +5138,30 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.4.13.tgz#ba7b379148885eb53c838e520c7b4882c82e891b" - integrity sha512-3M2VRt/ABGpm2G9MxkWAufvacPFDdHl+gvkNOq4lRhFw8uAh78xoXb1n0heOOuYGtJbw1+UHNOh4ahZGCWYxJg== +"@storybook/source-loader@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.4.19.tgz#24d134750bc41a13255b2b4a545f2d82613f004f" + integrity sha512-XqTsqddRglvfW7mhyjwoqd/B8L6samcBehhO0OEbsFp6FPWa9eXuObCxtRYIcjcSIe+ksbW3D/54ppEs1L/g1Q== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/client-logger" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/client-logger" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" core-js "^3.8.2" estraverse "^5.2.0" global "^4.4.0" loader-utils "^2.0.0" lodash "^4.17.21" - prettier "<=2.3.0" + prettier ">=2.2.1 <=2.3.0" regenerator-runtime "^0.13.7" -"@storybook/store@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.4.13.tgz#afeccc2dfe0126208d869da199f702635858c1e5" - integrity sha512-VUDYwn1PHTa92kaJFCWqP+QS5wsHO9us2prhHnD7k9qvvQrbxD2DewtGxdT7cRHbZI8jY5CiqMVKilZRaXSM3Q== +"@storybook/store@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.4.19.tgz#bf4031499f4d49909d7b691c03cc5ef1ec00ad74" + integrity sha512-N9/ZjemRHGfT3InPIbqQqc6snkcfnf3Qh9oOr0smbfaVGJol//KOX65kzzobtzFcid0WxtTDZ3HmgFVH+GvuhQ== dependencies: - "@storybook/addons" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/core-events" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/core-events" "6.4.19" "@storybook/csf" "0.0.2--canary.87bc651.0" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -5940,15 +5175,15 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/theming@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.4.13.tgz#1a8aadeddb6c3a115f739aa1a4bbd7e65d4a3830" - integrity sha512-oWRoNnvO4QnRnplZ74DVdU4k91eqw8y0Xqn6lzZBeC8hq6mYWldgfj1LZ24gJhVtEIa7ZKoyujGUygHaH8WXHw== +"@storybook/theming@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.4.19.tgz#0a6834d91e0b0eadbb10282e7fb2947e2bbf9e9e" + integrity sha512-V4pWmTvAxmbHR6B3jA4hPkaxZPyExHvCToy7b76DpUTpuHihijNDMAn85KhOQYIeL9q14zP/aiz899tOHsOidg== dependencies: "@emotion/core" "^10.1.1" "@emotion/is-prop-valid" "^0.8.6" "@emotion/styled" "^10.0.27" - "@storybook/client-logger" "6.4.13" + "@storybook/client-logger" "6.4.19" core-js "^3.8.2" deep-object-diff "^1.1.0" emotion-theming "^10.0.27" @@ -5958,21 +5193,21 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/ui@6.4.13": - version "6.4.13" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.4.13.tgz#79e04f988ca537a4c350fe470ad7c14392794b8b" - integrity sha512-EvpWk2iHjfiWkuMuzYz5fXl4r7S9Q80EtFFVkaBEZfIoKjvIkxppGQ3kz892ZdXzuazzvni2qcb7OJA9S7AgLw== +"@storybook/ui@6.4.19": + version "6.4.19" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.4.19.tgz#1fb9f6cd875ee4937cf9d81ca45d5156800176d1" + integrity sha512-gFwdn5LA2U6oQ4bfUFLyHZnNasGQ01YVdwjbi+l6yjmnckBNtZfJoVTZ1rzGUbxSE9rK48InJRU+latTsr7xAg== dependencies: "@emotion/core" "^10.1.1" - "@storybook/addons" "6.4.13" - "@storybook/api" "6.4.13" - "@storybook/channels" "6.4.13" - "@storybook/client-logger" "6.4.13" - "@storybook/components" "6.4.13" - "@storybook/core-events" "6.4.13" - "@storybook/router" "6.4.13" + "@storybook/addons" "6.4.19" + "@storybook/api" "6.4.19" + "@storybook/channels" "6.4.19" + "@storybook/client-logger" "6.4.19" + "@storybook/components" "6.4.19" + "@storybook/core-events" "6.4.19" + "@storybook/router" "6.4.19" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.4.13" + "@storybook/theming" "6.4.19" copy-to-clipboard "^3.3.1" core-js "^3.8.2" core-js-pure "^3.8.2" @@ -6007,9 +5242,9 @@ pretty-format "^26.6.2" "@testing-library/jest-dom@^5.14.1": - version "5.16.1" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.1.tgz#3db7df5ae97596264a7da9696fe14695ba02e51f" - integrity sha512-ajUJdfDIuTCadB79ukO+0l8O+QwN0LiSxDaYUTI4LndbbUsGi6rWU1SCexXzBA2NSjlVB9/vbkasQIL3tmPBjw== + version "5.16.2" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz#f329b36b44aa6149cd6ced9adf567f8b6aa1c959" + integrity sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug== dependencies: "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" @@ -6059,9 +5294,9 @@ integrity sha512-Y7gDJiIqb9qKUHfBQYOWGngUpLORtirAVPuj/CWJrU2C6ZM4/y3XLwuwfGMF8s7QzW746LQZx23m0+1FSgjfug== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.17" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.17.tgz#f50ac9d20d64153b510578d84f9643f9a3afbe64" - integrity sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A== + version "7.1.18" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" + integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -6070,9 +5305,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" - integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== dependencies: "@babel/types" "^7.0.0" @@ -6192,9 +5427,9 @@ "@types/ms" "*" "@types/express-serve-static-core@^4.17.18": - version "4.17.26" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.26.tgz#5d9a8eeecb9d5f9d7fc1d85f541512a84638ae88" - integrity sha512-zeu3tpouA043RHxW0gzRxwCHchMgftE8GArRsvYT0ByDMbn19olQHx5jLue0LxWY6iYtXb7rXmuVtSkhy9YZvQ== + version "4.17.28" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== dependencies: "@types/node" "*" "@types/qs" "*" @@ -6250,9 +5485,9 @@ is-my-json-valid "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== "@types/istanbul-lib-report@*": version "3.0.0" @@ -6269,9 +5504,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*", "@types/jest@^27.0.1", "@types/jest@^27.0.2": - version "27.0.3" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.3.tgz#0cf9dfe9009e467f70a342f0f94ead19842a783a" - integrity sha512-cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg== + version "27.4.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.4.0.tgz#037ab8b872067cae842a320841693080f9cb84ed" + integrity sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ== dependencies: jest-diff "^27.0.0" pretty-format "^27.0.0" @@ -6289,7 +5524,7 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== -"@types/lodash@^4.14.146", "@types/lodash@^4.14.176": +"@types/lodash@^4.14.146", "@types/lodash@^4.14.178": version "4.14.178" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.178.tgz#341f6d2247db528d4a13ddbb374bcdc80406f4f8" integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw== @@ -6327,33 +5562,33 @@ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node-fetch@^2.5.7": - version "2.5.12" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" - integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== + version "2.6.1" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.1.tgz#8f127c50481db65886800ef496f20bbf15518975" + integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== dependencies: "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^16.10.3", "@types/node@^16.11.7", "@types/node@^16.3.3": - version "16.11.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10" - integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw== - -"@types/node@^14.0.10": - version "14.18.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.5.tgz#0dd636fe7b2c6055cbed0d4ca3b7fb540f130a96" - integrity sha512-LMy+vDDcQR48EZdEx5wRX1q/sEl6NdGuHXPnfeL8ixkwCOSZ2qnIyIZmcCbdX0MeRqHhAcHmX+haCbrS8Run+A== +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "17.0.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.18.tgz#3b4fed5cfb58010e3a2be4b6e74615e4847f1074" + integrity sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA== -"@types/node@^14.14.37": - version "14.18.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.0.tgz#98df2397f6936bfbff4f089e40e06fa5dd88d32a" - integrity sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ== +"@types/node@^14.0.10", "@types/node@^14.14.37": + version "14.18.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" + integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== "@types/node@^15.12.1", "@types/node@^15.6.0": version "15.14.9" resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== +"@types/node@^16.10.3", "@types/node@^16.11.7", "@types/node@^16.3.3": + version "16.11.25" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.25.tgz#bb812b58bacbd060ce85921250d8b4ca553cd4a2" + integrity sha512-NrTwfD7L1RTc2qrHQD4RTTy4p0CO2LatKBEKEds3CaVuhoM/+DJzmWZl5f+ikR8cm8F5mfJxK+9rQq07gRiSjQ== + "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -6384,7 +5619,15 @@ resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== -"@types/pouchdb-core@*", "@types/pouchdb-core@7.0.9": +"@types/pouchdb-core@*": + version "7.0.10" + resolved "https://registry.yarnpkg.com/@types/pouchdb-core/-/pouchdb-core-7.0.10.tgz#d1ea1549e7fad6cb579f71459b1bc27252e06a5a" + integrity sha512-mKhjLlWWXyV3PTTjDhzDV1kc2dolO7VYFa75IoKM/hr8Er9eo8RIbS7mJLfC8r/C3p6ihZu9yZs1PWC1LQ0SOA== + dependencies: + "@types/debug" "*" + "@types/pouchdb-find" "*" + +"@types/pouchdb-core@7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/pouchdb-core/-/pouchdb-core-7.0.9.tgz#9fecde62e54562c054abf8a4f72cbc0f9ac1e8ae" integrity sha512-zzO8wkTztn1wT//mxIpcxSuKWlrHbVeERnPKVNEi9mbuqyLqevH+kRaGCJaEjwLp/tVjwnM/e6ZJoFsdP90pQg== @@ -6400,9 +5643,9 @@ "@types/pouchdb-core" "*" "@types/prettier@^2.1.5": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" - integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" + integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== "@types/pretty-hrtime@^1.0.0": version "1.0.1" @@ -6424,6 +5667,13 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== +"@types/react-native@^0.66.16": + version "0.66.16" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.66.16.tgz#fa654d7a611f8c74122b5706958224ebadc82044" + integrity sha512-TsMV/4gW9WTu/6Iuyrm8+UaClIcgJ+1FqVUqDgMvp/Ys+cF+q1GFid3ZPYHYmVZTfOoowY+e3Vd8zFufVL7HLQ== + dependencies: + "@types/react" "*" + "@types/react-resizable@^1.7.2": version "1.7.4" resolved "https://registry.yarnpkg.com/@types/react-resizable/-/react-resizable-1.7.4.tgz#8138e370338511b480ad00267d4efdd217f45741" @@ -6446,9 +5696,9 @@ "@types/react" "*" "@types/react-virtualized@^9.21.13": - version "9.21.15" - resolved "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.21.15.tgz#349a4f9774504e514ea4c8ebbbfe6cc8db17f045" - integrity sha512-R4ntUW+Y/a7RgRpfeYz3iRe+kaDWtXieMeQum4AoYjjZsR/QhpKqFu4muSBhzA7OHJHd6qA0KkeTzxj5ah5tmQ== + version "9.21.18" + resolved "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.21.18.tgz#5dd5fd6c4cc4461b610fc922b087f57dcfa6ffb5" + integrity sha512-H9pbaun17MFRWztcGDhARit0sJkzuAFvS268KzQwpym0DANO6DGKPUhb8AGrHId8IQejChRA3n5HF2DvFJvXYg== dependencies: "@types/prop-types" "*" "@types/react" "*" @@ -6461,9 +5711,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^17.0.14", "@types/react@^17.0.3": - version "17.0.37" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.37.tgz#6884d0aa402605935c397ae689deed115caad959" - integrity sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg== + version "17.0.39" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.39.tgz#d0f4cde092502a6db00a1cded6e6bf2abb7633ce" + integrity sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -6571,17 +5821,17 @@ dependencies: "@types/yargs-parser" "*" -"@use-gesture/core@10.2.4": - version "10.2.4" - resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.4.tgz#139370223174b0589bd4b4f8ac7c0beb6ba64ba2" - integrity sha512-fk1LjCBj43BKb8NE05qkdtPOR0ngA7PwgvEqfFap/h+s7QHi+JTv4/mtDQ4wI9zzem+Ry5EKrHS/cVdBehI4wA== +"@use-gesture/core@10.2.6": + version "10.2.6" + resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.6.tgz#12bdab107501798334ae28a6d193ef6ccd7a8930" + integrity sha512-+GpVSEoCLv1OeZ+qgAV+tLUKit1LKgKO3PgIiEVZqNr4A/YTXzbC1unlThpfzwyj5Dx22UxHDh0UfgRrQ9Lb1w== "@use-gesture/react@^10.2.2": - version "10.2.4" - resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.2.4.tgz#b333e91b00670785ee32e8f4f1530ac6b8894bbc" - integrity sha512-CbqyRj+qNbRBOGmS8OWtaOa29fxEr7bKTYHvPuMQ1wsgQDh2/DqQxbp7cFxAg6WZ8oZjppDj/EkWnw22WpIIWQ== + version "10.2.6" + resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.2.6.tgz#9ff0bdc2675d8a1520189e62b232800f852150ed" + integrity sha512-s/QDhKvsQVaSNq1ljRBMR2PWRkOp9BmoI+kgZR1DsHUSp5XDORtU33D5TZfJoWnD5X3E9SmePikPl66dDaEeDA== dependencies: - "@use-gesture/core" "10.2.4" + "@use-gesture/core" "10.2.6" "@visx/curve@1.7.0": version "1.7.0" @@ -6829,13 +6079,13 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== +accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + mime-types "~2.1.34" + negotiator "0.6.3" acorn-globals@^6.0.0: version "6.0.0" @@ -6871,9 +6121,9 @@ acorn@^7.1.1, acorn@^7.4.1: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.2.4: - version "8.6.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" - integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== address@^1.0.1: version "1.1.2" @@ -7366,18 +6616,18 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-jest@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.4.5.tgz#d38bd0be8ea71d8b97853a5fc9f76deeb095c709" - integrity sha512-3uuUTjXbgtODmSv/DXO9nZfD52IyC2OYTFaXGRzL0kpykzroaquCrD5+lZNafTvZlnNqZHt5pb0M08qVBZnsnA== +babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== dependencies: - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.4.0" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" chalk "^4.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" slash "^3.0.0" babel-loader@^8.0.0, babel-loader@^8.2.3: @@ -7433,7 +6683,7 @@ babel-plugin-extract-import-names@1.6.22: dependencies: "@babel/helper-plugin-utils" "7.10.4" -babel-plugin-istanbul@^6.0.0: +babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== @@ -7444,10 +6694,10 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz#d7831fc0f93573788d80dee7e682482da4c730d6" - integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -7489,12 +6739,12 @@ babel-plugin-named-asset-import@^0.3.1: integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" - integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.0" + "@babel/helper-define-polyfill-provider" "^0.3.1" semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.1.0: @@ -7505,28 +6755,20 @@ babel-plugin-polyfill-corejs3@^0.1.0: "@babel/helper-define-polyfill-provider" "^0.1.5" core-js-compat "^3.8.1" -babel-plugin-polyfill-corejs3@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" - integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - core-js-compat "^3.18.0" - babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz#d66183bf10976ea677f4149a7fcc4d8df43d4060" - integrity sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A== + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.20.0" + core-js-compat "^3.21.0" babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" - integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" + "@babel/helper-define-polyfill-provider" "^0.3.1" babel-plugin-react-docgen@^4.2.1: version "4.2.1" @@ -7583,12 +6825,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz#70d0e676a282ccb200fbabd7f415db5fdf393bca" - integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== dependencies: - babel-plugin-jest-hoist "^27.4.0" + babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" bail@^1.0.0: @@ -7726,20 +6968,20 @@ body-parser@1.19.0: raw-body "2.4.0" type-is "~1.6.17" -body-parser@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" - integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== +body-parser@1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" + integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== dependencies: - bytes "3.1.1" + bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" depd "~1.1.2" http-errors "1.8.1" iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.9.6" - raw-body "2.4.2" + qs "6.9.7" + raw-body "2.4.3" type-is "~1.6.18" boolbase@^1.0.0: @@ -7899,7 +7141,7 @@ browserslist@4.14.6: escalade "^3.1.1" node-releases "^1.1.65" -browserslist@^4.12.0, browserslist@^4.19.1: +browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.19.1: version "4.19.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== @@ -7910,17 +7152,6 @@ browserslist@^4.12.0, browserslist@^4.19.1: node-releases "^2.0.1" picocolors "^1.0.0" -browserslist@^4.17.5, browserslist@^4.18.1: - version "4.19.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.0.tgz#5f02742ac2b86dde56ae4cef7be2b003e47b1ee0" - integrity sha512-JGHzm73ei2OnAcobcQ61GXNnN6vDCg5Oz5MayudL+FyzjoLnCzUWnuLtDLMIYw8aXgQzzdCZMVky+fftD5jbtA== - dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -8013,10 +7244,10 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== c8@^7.6.0: version "7.11.0" @@ -8195,24 +7426,19 @@ camelcase@^4.0.0: integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= camelcase@^6.0.0, camelcase@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" - integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== camelize@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= -caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001113, caniuse-lite@^1.0.30001154, caniuse-lite@^1.0.30001286: - version "1.0.30001286" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz#3e9debad420419618cfdf52dc9b6572b28a8fff6" - integrity sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ== - -caniuse-lite@^1.0.30001109: - version "1.0.30001299" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz#d753bf6444ed401eb503cbbe17aa3e1451b5a68c" - integrity sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw== +caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001113, caniuse-lite@^1.0.30001154, caniuse-lite@^1.0.30001286: + version "1.0.30001312" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" + integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== capture-exit@^2.0.0: version "2.0.0" @@ -8300,6 +7526,11 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +charcodes@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4" + integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -8340,9 +7571,9 @@ chokidar@^2.1.8: fsevents "^1.2.7" chokidar@^3.4.0, chokidar@^3.4.1, chokidar@^3.4.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -8509,9 +7740,9 @@ code-point-at@^1.0.0: integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= codemirror@^5.61.0: - version "5.64.0" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.64.0.tgz#182eec65b62178e3cd1de8f9d88ab819cfe5f625" - integrity sha512-fqr6CtDQdJ6iNMbD8NX2gH2G876nNDk+TO1rrYkgWnqQdO3O1Xa9tK6q+psqhJJgE5SpbaDcgdfLmukoUVE8pg== + version "5.65.1" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.65.1.tgz#5988a812c974c467f964bcc1a00c944e373de502" + integrity sha512-s6aac+DD+4O2u1aBmdxhB7yz2XU7tG3snOyQ05Kxifahz7hoxnfxIRHxiCSEv3TUC38dIVH8G+lZH9UWSfGQxA== codesandbox-import-util-types@^2.2.3: version "2.2.3" @@ -8816,10 +8047,10 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -cookie@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== +cookie@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== copy-concurrently@^1.0.0: version "1.0.5" @@ -8845,31 +8076,18 @@ copy-to-clipboard@^3.3.1: dependencies: toggle-selection "^1.0.6" -core-js-compat@^3.18.0, core-js-compat@^3.19.1: - version "3.19.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.3.tgz#de75e5821c5ce924a0a1e7b7d5c2cb973ff388aa" - integrity sha512-59tYzuWgEEVU9r+SRgceIGXSSUn47JknoiXW6Oq7RW8QHjXWz3/vp8pa7dbtuVu40sewz3OP3JmQEcDdztrLhA== - dependencies: - browserslist "^4.18.1" - semver "7.0.0" - -core-js-compat@^3.20.0, core-js-compat@^3.20.2, core-js-compat@^3.8.1: - version "3.20.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.3.tgz#d71f85f94eb5e4bea3407412e549daa083d23bd6" - integrity sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw== +core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.8.1: + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" + integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== dependencies: browserslist "^4.19.1" semver "7.0.0" -core-js-pure@^3.19.0: - version "3.19.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.3.tgz#c69b2b36b58927317824994b532ec3f0f7e49607" - integrity sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA== - -core-js-pure@^3.8.1, core-js-pure@^3.8.2: - version "3.20.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.20.3.tgz#6cc4f36da06c61d95254efc54024fe4797fd5d02" - integrity sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA== +core-js-pure@^3.20.2, core-js-pure@^3.8.1, core-js-pure@^3.8.2: + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51" + integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ== core-js@3.6.5: version "3.6.5" @@ -8882,9 +8100,9 @@ core-js@^2.6.5: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.0.4, core-js@^3.6.5, core-js@^3.8.2: - version "3.20.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.3.tgz#c710d0a676e684522f3db4ee84e5e18a9d11d69a" - integrity sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag== + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" + integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== core-util-is@~1.0.0: version "1.0.3" @@ -9269,7 +8487,7 @@ csstype@^2.5.2, csstype@^2.5.7: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.19.tgz#feeb5aae89020bb389e1f63669a5ed490e391caa" integrity sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ== -csstype@^3.0.2, csstype@^3.0.4, csstype@^3.0.8, csstype@^3.0.9: +csstype@^3.0.10, csstype@^3.0.2, csstype@^3.0.4, csstype@^3.0.8: version "3.0.10" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== @@ -9510,9 +8728,9 @@ deep-is@~0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deep-object-diff@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a" - integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw== + version "1.1.7" + resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.7.tgz#348b3246f426427dd633eaa50e1ed1fc2eafc7e4" + integrity sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg== deepmerge@^4.2.2: version "4.2.2" @@ -9634,10 +8852,10 @@ diff-sequences@^26.6.2: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff-sequences@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5" - integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== diff@^4.0.1: version "4.0.2" @@ -9675,9 +8893,9 @@ doctrine@^3.0.0: esutils "^2.0.2" dom-accessibility-api@^0.5.6: - version "0.5.10" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.10.tgz#caa6d08f60388d0bb4539dd75fe458a9a1d0014c" - integrity sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g== + version "0.5.11" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz#79d5846c4f90eba3e617d9031e921de9324f84ed" + integrity sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw== dom-converter@^0.2.0: version "0.2.0" @@ -9851,9 +9069,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.585, electron-to-chromium@^1.4.17: - version "1.4.17" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.17.tgz#16ec40f61005582d5d41fac08400a254dccfb85f" - integrity sha512-zhk1MravPtq/KBhmGB7TLBILmXTgRG9TFSI3qS3DbgyfHzIl72iiTE37r/BHIbPCJJlWIo5rySyxiH4vWhu2ZA== + version "1.4.71" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6" + integrity sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw== element-resize-detector@^1.2.2: version "1.2.4" @@ -9985,9 +9203,9 @@ enhanced-resolve@^4.3.0, enhanced-resolve@^4.5.0: tapable "^1.0.0" enhanced-resolve@^5.7.0: - version "5.8.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" - integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== + version "5.9.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz#49ac24953ac8452ed8fed2ef1340fc8e043667ee" + integrity sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -10022,9 +9240,9 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" error-stack-parser@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" - integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + version "2.0.7" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz#b0c6e2ce27d0495cf78ad98715e0cad1219abb57" + integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA== dependencies: stackframe "^1.1.1" @@ -10101,9 +9319,9 @@ es5-ext@^0.10.35, es5-ext@^0.10.50: next-tick "~1.0.0" es5-shim@^4.5.13: - version "4.6.4" - resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.4.tgz#10ce5f06c7bccfdd60b4e08edf95c7e2fbc1dc2a" - integrity sha512-Z0f7OUYZ8JfqT12d3Tgh2ErxIH5Shaz97GE8qyDG9quxb2Hmh2vvFHlOFjx6lzyD0CRgvJfnNYcisjdbRp7MPw== + version "4.6.5" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.5.tgz#2124bb073b7cede2ed23b122a1fd87bb7b0bb724" + integrity sha512-vfQ4UAai8szn0sAubCy97xnZ4sJVDD1gt/Grn736hg8D7540wemIb1YPrYZSTqlM2H69EQX1or4HU/tSwRTI3w== es6-iterator@2.0.3, es6-iterator@~2.0.3: version "2.0.3" @@ -10348,17 +9566,15 @@ expand-tilde@^1.2.2: dependencies: os-homedir "^1.0.1" -expect@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.4.2.tgz#4429b0f7e307771d176de9bdf23229b101db6ef6" - integrity sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg== +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== dependencies: - "@jest/types" "^27.4.2" - ansi-styles "^5.0.0" - jest-get-type "^27.4.0" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-regex-util "^27.4.0" + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" express@4.17.1: version "4.17.1" @@ -10397,16 +9613,16 @@ express@4.17.1: vary "~1.1.2" express@^4.17.1: - version "4.17.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" - integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== + version "4.17.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" + integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== dependencies: - accepts "~1.3.7" + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.1" + body-parser "1.19.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.1" + cookie "0.4.2" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" @@ -10421,7 +9637,7 @@ express@^4.17.1: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.6" + qs "6.9.7" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.17.2" @@ -10735,36 +9951,36 @@ find-up@^5.0.0: path-exists "^4.0.0" firebase@^9.6.0: - version "9.6.1" - resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.6.1.tgz#08e0fd0799f57a885f895b86a6ed2bc0083412fe" - integrity sha512-d4wbkVMRiSREa1jfFx2z/Kq3KueEKfNWApvdrEAxvzDRN4eiFLeZSZM/MOxj7TR01e/hANnw2lrYKMUpg21ukg== - dependencies: - "@firebase/analytics" "0.7.4" - "@firebase/analytics-compat" "0.1.5" - "@firebase/app" "0.7.11" - "@firebase/app-check" "0.5.2" - "@firebase/app-check-compat" "0.2.2" - "@firebase/app-compat" "0.1.12" + version "9.6.6" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.6.6.tgz#77f0b678d0d6ca48506807c107c28fead85be48d" + integrity sha512-roF8aQ8D7YOI0txUNm45BQJZG5t4Xip2lg/V0u6BxnScaefuo9T6baR70soWMecCMQYys5h3OKNLlCpnC5PJxg== + dependencies: + "@firebase/analytics" "0.7.5" + "@firebase/analytics-compat" "0.1.6" + "@firebase/app" "0.7.16" + "@firebase/app-check" "0.5.3" + "@firebase/app-check-compat" "0.2.3" + "@firebase/app-compat" "0.1.17" "@firebase/app-types" "0.7.0" - "@firebase/auth" "0.19.4" - "@firebase/auth-compat" "0.2.4" - "@firebase/database" "0.12.4" - "@firebase/database-compat" "0.1.4" - "@firebase/firestore" "3.4.1" - "@firebase/firestore-compat" "0.1.10" - "@firebase/functions" "0.7.6" - "@firebase/functions-compat" "0.1.7" - "@firebase/installations" "0.5.4" - "@firebase/messaging" "0.9.4" - "@firebase/messaging-compat" "0.1.4" - "@firebase/performance" "0.5.4" - "@firebase/performance-compat" "0.1.4" + "@firebase/auth" "0.19.8" + "@firebase/auth-compat" "0.2.8" + "@firebase/database" "0.12.5" + "@firebase/database-compat" "0.1.5" + "@firebase/firestore" "3.4.4" + "@firebase/firestore-compat" "0.1.13" + "@firebase/functions" "0.7.8" + "@firebase/functions-compat" "0.1.9" + "@firebase/installations" "0.5.5" + "@firebase/messaging" "0.9.8" + "@firebase/messaging-compat" "0.1.8" + "@firebase/performance" "0.5.5" + "@firebase/performance-compat" "0.1.5" "@firebase/polyfill" "0.3.36" - "@firebase/remote-config" "0.3.3" - "@firebase/remote-config-compat" "0.1.4" - "@firebase/storage" "0.9.0" - "@firebase/storage-compat" "0.1.8" - "@firebase/util" "1.4.2" + "@firebase/remote-config" "0.3.4" + "@firebase/remote-config-compat" "0.1.5" + "@firebase/storage" "0.9.2" + "@firebase/storage-compat" "0.1.10" + "@firebase/util" "1.4.3" flat-cache@^3.0.4: version "3.0.4" @@ -10775,9 +9991,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== flush-write-stream@^1.0.0: version "1.1.1" @@ -10795,9 +10011,9 @@ follow-redirects@1.5.10: debug "=3.1.0" follow-redirects@^1.14.0: - version "1.14.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd" - integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A== + version "1.14.8" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" + integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== for-in@^1.0.2: version "1.0.2" @@ -10876,9 +10092,9 @@ fragment-cache@^0.2.1: map-cache "^0.2.2" framer-motion@^5.3.1: - version "5.4.5" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-5.4.5.tgz#180047afe6d4e41b8b69eb76cfad13d7a0351073" - integrity sha512-OjKfSMO22a9bTedhQ4diwZWCcmwoZmfrkalv4adhHTH2/cXa2eoFAmmPzs6aNpENbMrn47YmlWGwZtYNycXFLg== + version "5.6.0" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-5.6.0.tgz#8203b5bc4e172265d43dfe67c3c41346c67a3940" + integrity sha512-Y4FtwUU+LUWLKSzoT6Sq538qluvhpe6izdQK8/xZeVjQZ/ORKGfZzyhzcUxNfscqnfEa3dUOA47s+dwrSipdGA== dependencies: framesync "6.0.1" hey-listen "^1.0.8" @@ -11326,12 +10542,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -graceful-fs@^4.1.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== @@ -11860,9 +11071,9 @@ immediate@~3.0.5: integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= immer@^9.0.3: - version "9.0.7" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.7.tgz#b6156bd7db55db7abc73fd2fdadf4e579a701075" - integrity sha512-KGllzpbamZDvOIxnmJ0jI840g7Oikx58lBPWV0hUh7dtAyZpFqqrBZdKka5GlTwMTZ1Tjc/bKKW4VSFAt6BqMA== + version "9.0.12" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.12.tgz#2d33ddf3ee1d247deab9d707ca472c8c942a0f20" + integrity sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA== import-cwd@^2.0.0: version "2.1.0" @@ -11900,9 +11111,9 @@ import-lazy@^2.1.0: integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= import-local@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" - integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -12118,14 +11329,7 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.2.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== - dependencies: - has "^1.0.3" - -is-core-module@^2.8.0: +is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -12546,17 +11750,7 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.1, istanbul-lib-coverag resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4: +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== @@ -12585,10 +11779,10 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.1.tgz#7085857f17d2441053c6ce5c3b8fdf6882289397" - integrity sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw== +istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" + integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -12615,85 +11809,87 @@ iterate-value@^1.0.2: es-get-iterator "^1.0.2" iterate-iterator "^1.0.1" -jest-changed-files@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.4.2.tgz#da2547ea47c6e6a5f6ed336151bd2075736eb4a5" - integrity sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A== +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.4.5.tgz#70bfb78e0200cab9b84747bf274debacaa538467" - integrity sha512-eTNWa9wsvBwPykhMMShheafbwyakcdHZaEYh5iRrQ0PFJxkDP/e3U/FvzGuKWu2WpwUA3C3hPlfpuzvOdTVqnw== +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== dependencies: - "@jest/environment" "^27.4.4" - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^27.4.2" + expect "^27.5.1" is-generator-fn "^2.0.0" - jest-each "^27.4.2" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-runtime "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - pretty-format "^27.4.2" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.4.5.tgz#8708f54c28d13681f3255ec9026a2b15b03d41e8" - integrity sha512-hrky3DSgE0u7sQxaCL7bdebEPHx5QzYmrGuUjaPLmPE8jx5adtvGuOlRspvMoVLTTDOHRnZDoRLYJuA+VCI7Hg== +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== dependencies: - "@jest/core" "^27.4.5" - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" chalk "^4.0.0" exit "^0.1.2" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" prompts "^2.0.1" yargs "^16.2.0" -jest-config@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.4.5.tgz#77ed7f2ba7bcfd7d740ade711d0d13512e08a59e" - integrity sha512-t+STVJtPt+fpqQ8GBw850NtSQbnDOw/UzdPfzDaHQ48/AylQlW7LHj3dH+ndxhC1UxJ0Q3qkq7IH+nM1skwTwA== +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.4.5" - "@jest/types" "^27.4.2" - babel-jest "^27.4.5" + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.1" - graceful-fs "^4.2.4" - jest-circus "^27.4.5" - jest-environment-jsdom "^27.4.4" - jest-environment-node "^27.4.4" - jest-get-type "^27.4.0" - jest-jasmine2 "^27.4.5" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.5" - jest-runner "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" micromatch "^4.0.4" - pretty-format "^27.4.2" + parse-json "^5.2.0" + pretty-format "^27.5.1" slash "^3.0.0" + strip-json-comments "^3.1.1" jest-diff@^26.0.0: version "26.6.2" @@ -12705,68 +11901,68 @@ jest-diff@^26.0.0: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-diff@^27.0.0, jest-diff@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.4.2.tgz#786b2a5211d854f848e2dcc1e324448e9481f36f" - integrity sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q== +jest-diff@^27.0.0, jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== dependencies: chalk "^4.0.0" - diff-sequences "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.2" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" -jest-docblock@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.4.0.tgz#06c78035ca93cbbb84faf8fce64deae79a59f69f" - integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== dependencies: detect-newline "^3.0.0" -jest-each@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.4.2.tgz#19364c82a692d0d26557642098d1f4619c9ee7d3" - integrity sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg== +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" chalk "^4.0.0" - jest-get-type "^27.4.0" - jest-util "^27.4.2" - pretty-format "^27.4.2" - -jest-environment-jsdom@^27.4.4: - version "27.4.4" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.4.4.tgz#94f738e99514d7a880e8ed8e03e3a321d43b49db" - integrity sha512-cYR3ndNfHBqQgFvS1RL7dNqSvD//K56j/q1s2ygNHcfTCAp12zfIromO1w3COmXrxS8hWAh7+CmZmGCIoqGcGA== - dependencies: - "@jest/environment" "^27.4.4" - "@jest/fake-timers" "^27.4.2" - "@jest/types" "^27.4.2" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^27.4.2" - jest-util "^27.4.2" + jest-mock "^27.5.1" + jest-util "^27.5.1" jsdom "^16.6.0" -jest-environment-node@^27.4.4: - version "27.4.4" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.4.4.tgz#42fe5e3b224cb69b99811ebf6f5eaa5a59618514" - integrity sha512-D+v3lbJ2GjQTQR23TK0kY3vFVmSeea05giInI41HHOaJnAwOnmUHTZgUaZL+VxUB43pIzoa7PMwWtCVlIUoVoA== +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== dependencies: - "@jest/environment" "^27.4.4" - "@jest/fake-timers" "^27.4.2" - "@jest/types" "^27.4.2" + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^27.4.2" - jest-util "^27.4.2" + jest-mock "^27.5.1" + jest-util "^27.5.1" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-get-type@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5" - integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== jest-haste-map@^26.6.2: version "26.6.2" @@ -12789,89 +11985,88 @@ jest-haste-map@^26.6.2: optionalDependencies: fsevents "^2.1.2" -jest-haste-map@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.4.5.tgz#c2921224a59223f91e03ec15703905978ef0cc1a" - integrity sha512-oJm1b5qhhPs78K24EDGifWS0dELYxnoBiDhatT/FThgB9yxqUm5F6li3Pv+Q+apMBmmPNzOBnZ7ZxWMB1Leq1Q== +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^27.4.0" - jest-serializer "^27.4.0" - jest-util "^27.4.2" - jest-worker "^27.4.5" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.4.5.tgz#ff79d11561679ff6c89715b0cd6b1e8c0dfbc6dc" - integrity sha512-oUnvwhJDj2LhOiUB1kdnJjkx8C5PwgUZQb9urF77mELH9DGR4e2GqpWQKBOYXWs5+uTN9BGDqRz3Aeg5Wts7aw== +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.4.4" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^27.4.2" + expect "^27.5.1" is-generator-fn "^2.0.0" - jest-each "^27.4.2" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-runtime "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - pretty-format "^27.4.2" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" throat "^6.0.1" -jest-leak-detector@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz#7fc3120893a7a911c553f3f2bdff9faa4454abbb" - integrity sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw== +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== dependencies: - jest-get-type "^27.4.0" - pretty-format "^27.4.2" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" -jest-matcher-utils@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz#d17c5038607978a255e0a9a5c32c24e984b6c60b" - integrity sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ== +jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== dependencies: chalk "^4.0.0" - jest-diff "^27.4.2" - jest-get-type "^27.4.0" - pretty-format "^27.4.2" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" -jest-message-util@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.4.2.tgz#07f3f1bf207d69cf798ce830cc57f1a849f99388" - integrity sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w== +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^27.4.2" + pretty-format "^27.5.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.4.2.tgz#184ff197a25491bfe4570c286daa5d62eb760b88" - integrity sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA== +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -12884,95 +12079,90 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-regex-util@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.4.0.tgz#e4c45b52653128843d07ad94aec34393ea14fbca" - integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== -jest-resolve-dependencies@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.5.tgz#9398af854bdb12d6a9e5a8a536ee401f889a3ecf" - integrity sha512-elEVvkvRK51y037NshtEkEnukMBWvlPzZHiL847OrIljJ8yIsujD2GXRPqDXC4rEVKbcdsy7W0FxoZb4WmEs7w== +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== dependencies: - "@jest/types" "^27.4.2" - jest-regex-util "^27.4.0" - jest-snapshot "^27.4.5" + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" -jest-resolve@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.4.5.tgz#8dc44f5065fb8d58944c20f932cb7b9fe9760cca" - integrity sha512-xU3z1BuOz/hUhVUL+918KqUgK+skqOuUsAi7A+iwoUldK6/+PW+utK8l8cxIWT9AW7IAhGNXjSAh1UYmjULZZw== +jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" jest-pnp-resolver "^1.2.2" - jest-util "^27.4.2" - jest-validate "^27.4.2" + jest-util "^27.5.1" + jest-validate "^27.5.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.4.5.tgz#daba2ba71c8f34137dc7ac45616add35370a681e" - integrity sha512-/irauncTfmY1WkTaRQGRWcyQLzK1g98GYG/8QvIPviHgO1Fqz1JYeEIsSfF+9mc/UTA6S+IIHFgKyvUrtiBIZg== +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== dependencies: - "@jest/console" "^27.4.2" - "@jest/environment" "^27.4.4" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-docblock "^27.4.0" - jest-environment-jsdom "^27.4.4" - jest-environment-node "^27.4.4" - jest-haste-map "^27.4.5" - jest-leak-detector "^27.4.2" - jest-message-util "^27.4.2" - jest-resolve "^27.4.5" - jest-runtime "^27.4.5" - jest-util "^27.4.2" - jest-worker "^27.4.5" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.4.5.tgz#97703ad2a1799d4f50ab59049bd21a9ceaed2813" - integrity sha512-CIYqwuJQXHQtPd/idgrx4zgJ6iCb6uBjQq1RSAGQrw2S8XifDmoM1Ot8NRd80ooAm+ZNdHVwsktIMGlA1F1FAQ== - dependencies: - "@jest/console" "^27.4.2" - "@jest/environment" "^27.4.4" - "@jest/globals" "^27.4.4" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/yargs" "^16.0.0" +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" - exit "^0.1.2" glob "^7.1.3" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-message-util "^27.4.2" - jest-mock "^27.4.2" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^16.2.0" jest-serializer@^26.6.2: version "26.6.2" @@ -12982,42 +12172,40 @@ jest-serializer@^26.6.2: "@types/node" "*" graceful-fs "^4.2.4" -jest-serializer@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.4.0.tgz#34866586e1cae2388b7d12ffa2c7819edef5958a" - integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== dependencies: "@types/node" "*" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" -jest-snapshot@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.4.5.tgz#2ea909b20aac0fe62504bc161331f730b8a7ecc7" - integrity sha512-eCi/iM1YJFrJWiT9de4+RpWWWBqsHiYxFG9V9o/n0WXs6GpW4lUt4FAHAgFPTLPqCUVzrMQmSmTZSgQzwqR7IQ== +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" - "@babel/parser" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.4.2" - graceful-fs "^4.2.4" - jest-diff "^27.4.2" - jest-get-type "^27.4.0" - jest-haste-map "^27.4.5" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-resolve "^27.4.5" - jest-util "^27.4.2" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" natural-compare "^1.4.0" - pretty-format "^27.4.2" + pretty-format "^27.5.1" semver "^7.3.2" jest-util@^26.6.2: @@ -13032,41 +12220,41 @@ jest-util@^26.6.2: is-ci "^2.0.0" micromatch "^4.0.2" -jest-util@^27.0.0, jest-util@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.4.2.tgz#ed95b05b1adfd761e2cda47e0144c6a58e05a621" - integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== +jest-util@^27.0.0, jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.4.2.tgz#eecfcc1b1c9429aa007da08a2bae4e32a81bbbc3" - integrity sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A== +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== dependencies: - "@jest/types" "^27.4.2" + "@jest/types" "^27.5.1" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^27.4.0" + jest-get-type "^27.5.1" leven "^3.1.0" - pretty-format "^27.4.2" + pretty-format "^27.5.1" -jest-watcher@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.4.2.tgz#c9037edfd80354c9fe90de4b6f8b6e2b8e736744" - integrity sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg== +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== dependencies: - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.4.2" + jest-util "^27.5.1" string-length "^4.0.1" jest-worker@24.9.0: @@ -13086,23 +12274,23 @@ jest-worker@^26.5.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.5.tgz#d696e3e46ae0f24cff3fa7195ffba22889262242" - integrity sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg== +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^27.0.3, jest@^27.0.4, jest@^27.0.6, jest@^27.1.0, jest@^27.2.0, jest@^27.2.4: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.4.5.tgz#66e45acba44137fac26be9d3cc5bb031e136dc0f" - integrity sha512-uT5MiVN3Jppt314kidCk47MYIRilJjA/l2mxwiuzzxGUeJIvA8/pDaJOAX5KWvjAo7SCydcW0/4WEtgbLMiJkg== + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== dependencies: - "@jest/core" "^27.4.5" + "@jest/core" "^27.5.1" import-local "^3.0.2" - jest-cli "^27.4.5" + jest-cli "^27.5.1" js-string-escape@^1.0.1: version "1.0.1" @@ -13864,7 +13052,7 @@ mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.34" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== @@ -13938,9 +13126,9 @@ minimalistic-crypto-utils@^1.0.1: integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= "minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" @@ -14130,15 +13318,10 @@ nanoid@^2.1.0: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== -nanoid@^3.1.16, nanoid@^3.1.30: - version "3.1.30" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" - integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== - -nanoid@^3.1.23: - version "3.2.0" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" - integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== +nanoid@^3.1.16, nanoid@^3.1.23, nanoid@^3.1.30, nanoid@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== nanomatch@^1.2.9: version "1.2.13" @@ -14174,10 +13357,10 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" @@ -14305,10 +13488,10 @@ node-fetch@2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" - integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== +node-fetch@2.6.7, node-fetch@^2.6.1: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== dependencies: whatwg-url "^5.0.0" @@ -14320,13 +13503,6 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@^2.6.1: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - node-html-parser@1.4.9: version "1.4.9" resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.9.tgz#3c8f6cac46479fae5800725edb532e9ae8fd816c" @@ -14374,9 +13550,9 @@ node-releases@^1.1.65: integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== noop-logger@^0.1.1: version "0.1.1" @@ -14509,9 +13685,9 @@ object-copy@^0.1.0: kind-of "^3.0.3" object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b" - integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA== + version "1.12.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== object-is@^1.0.1: version "1.1.5" @@ -14933,7 +14109,7 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-json@^5.0.0: +parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -15016,7 +14192,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -15059,12 +14235,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -picomatch@^2.3.0: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -15079,10 +14250,10 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pirates@^4.0.0, pirates@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6" - integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== +pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== pkg-dir@^3.0.0: version "3.0.0" @@ -15125,11 +14296,11 @@ pnp-webpack-plugin@1.6.4: ts-pnp "^1.1.6" polished@^4.0.5: - version "4.1.3" - resolved "https://registry.yarnpkg.com/polished/-/polished-4.1.3.tgz#7a3abf2972364e7d97770b827eec9a9e64002cfc" - integrity sha512-ocPAcVBUOryJEKe0z2KLd1l9EBa1r5mSwlKpExmrLzsnIzJo4axsoU9O2BjOTkDGDT4mZ0WFE5XKTlR3nLnZOA== + version "4.1.4" + resolved "https://registry.yarnpkg.com/polished/-/polished-4.1.4.tgz#640293ba834109614961a700fdacbb6599fb12d0" + integrity sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg== dependencies: - "@babel/runtime" "^7.14.0" + "@babel/runtime" "^7.16.7" popmotion@11.0.3: version "11.0.3" @@ -15287,9 +14458,9 @@ postcss-safe-parser@4.0.2: postcss "^7.0.26" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.7" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz#48404830a635113a71fd79397de8209ed05a66fc" - integrity sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA== + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -15350,13 +14521,13 @@ postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0. source-map "^0.6.1" postcss@^8.2.15: - version "8.4.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" - integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== + version "8.4.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.6.tgz#c5ff3c3c457a23864f32cb45ac9b741498a09ae1" + integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA== dependencies: - nanoid "^3.1.30" + nanoid "^3.2.0" picocolors "^1.0.0" - source-map-js "^1.0.1" + source-map-js "^1.0.2" pouchdb-abstract-mapreduce@7.2.2: version "7.2.2" @@ -15605,7 +14776,7 @@ prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prettier@<=2.3.0: +"prettier@>=2.2.1 <=2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== @@ -15633,12 +14804,11 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.0, pretty-format@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.2.tgz#e4ce92ad66c3888423d332b40477c87d1dac1fb8" - integrity sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw== +pretty-format@^27.0.0, pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== dependencies: - "@jest/types" "^27.4.2" ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^17.0.1" @@ -15720,7 +14890,7 @@ prompts@^2.0.1, prompts@^2.4.0: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@15.7.2, prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.7, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -15729,7 +14899,7 @@ prop-types@15.7.2, prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.7, pro object-assign "^4.1.1" react-is "^16.8.1" -prop-types@^15.0.0: +prop-types@15.x, prop-types@^15.0.0, prop-types@^15.5.10, prop-types@^15.5.7, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.0: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -15855,9 +15025,9 @@ punycode@^2.1.0, punycode@^2.1.1: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pusher-js@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/pusher-js/-/pusher-js-7.0.3.tgz#f81c78cdf2ad32f546caa7532ec7f9081ef00b8d" - integrity sha512-HIfCvt00CAqgO4W0BrdpPsDcAwy51rB6DN0VMC+JeVRRbo8mn3XTeUeIFjmmlRLZLX8rPhUtLRo7vPag6b8GCw== + version "7.0.6" + resolved "https://registry.yarnpkg.com/pusher-js/-/pusher-js-7.0.6.tgz#4ff0066eda7eb99e1ba48c3e211189e72329ce2d" + integrity sha512-I44FTlF2OfGNg/4xcxmFq/JqFzJswoQWtWCPq+DkCh31MFg3Qkm3bNFvTXU+c5KR19TyBZ9SYlYq2rrpJZzbIA== dependencies: tweetnacl "^1.0.3" @@ -15871,10 +15041,10 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@6.9.6: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== +qs@6.9.7: + version "6.9.7" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== qs@^6.10.0: version "6.10.3" @@ -15955,12 +15125,12 @@ raw-body@2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== +raw-body@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" + integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== dependencies: - bytes "3.1.1" + bytes "3.1.2" http-errors "1.8.1" iconv-lite "0.4.24" unpipe "1.0.0" @@ -15990,16 +15160,16 @@ re-resizable@^6.9.1: dependencies: fast-memoize "^2.5.1" -react-base16-styling@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.8.1.tgz#fa397b831a1c1050cb13cf29e3729e4780483b14" - integrity sha512-Qf8MiaeZRa6EiooXEtQWGvPuJDp1CuN2EjS9QUiBTBY5lmpFLvL58lCfRNkkAs8fBVsXOmkiKTcFQuEl4vYTgw== +react-base16-styling@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.8.2.tgz#6bc97045b0f8c42d14857097d62b9017666aa5b9" + integrity sha512-5bxHCNKT/FfU9yMzNB/CaCQLGqZ/Nr4FnaIRJUTkwwPTRaCfYAP+/3opeQb61XvesmofJ4FloTSYW9aw1tMXqQ== dependencies: "@types/base16" "^1.0.2" - "@types/lodash" "^4.14.176" + "@types/lodash" "^4.14.178" base16 "^1.0.0" color "^3.2.1" - csstype "^3.0.9" + csstype "^3.0.10" lodash.curry "^4.1.1" react-codemirror2@^7.2.1: @@ -16065,9 +15235,9 @@ react-fast-compare@^3.0.1, react-fast-compare@^3.2.0: integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== react-helmet-async@^1.0.7: - version "1.2.2" - resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.2.2.tgz#38d58d32ebffbc01ba42b5ad9142f85722492389" - integrity sha512-XgSQezeCbLfCxdZhDA3T/g27XZKnOYyOkruopTLSJj8RvFZwdXnM4djnfYaiBSDzOidDgTo1jcEozoRu/+P9UQ== + version "1.2.3" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.2.3.tgz#57326a69304ea3293036eafb49475e9ba454cb37" + integrity sha512-mCk2silF53Tq/YaYdkl2sB+/tDoPnaxN7dFS/6ZLJb/rhUY2EWGI5Xj2b4jHppScMqY45MbgPSwTxDchKpZ5Kw== dependencies: "@babel/runtime" "^7.12.5" invariant "^2.2.4" @@ -16109,13 +15279,13 @@ react-is@17.0.2, "react-is@^16.8.0 || ^17.0.0", react-is@^17.0.1, react-is@^17.0 integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== react-json-tree@^0.15.0: - version "0.15.1" - resolved "https://registry.yarnpkg.com/react-json-tree/-/react-json-tree-0.15.1.tgz#1682c3b59feaf192d4ff26cbb99d38f36d904a12" - integrity sha512-9HTejgI4yuR1RBSQ8HOp4AOZ513MZru/PC7abzo0EG+++IoMHqnCKw43hIySUyBNGz81un/0M575Hvwnp4oQiA== + version "0.15.2" + resolved "https://registry.yarnpkg.com/react-json-tree/-/react-json-tree-0.15.2.tgz#581f48bc8e925fc2d3802dd6c9075570666b358a" + integrity sha512-Fi5BMgpZbqujagMQ4OavtK6k4RhaoU/zFoJeK331/UdsBEXKFs3VosfvOc1JS/oyB21I1MKu8bwMkOXODePBCg== dependencies: "@types/prop-types" "^15.7.4" - prop-types "^15.7.2" - react-base16-styling "^0.8.1" + prop-types "^15.8.0" + react-base16-styling "^0.8.2" react-lifecycles-compat@^3.0.4: version "3.0.4" @@ -16168,9 +15338,9 @@ react-remove-scroll-bar@^2.1.0: tslib "^1.0.0" react-remove-scroll@^2.4.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.4.3.tgz#83d19b02503b04bd8141ed6e0b9e6691a2e935a6" - integrity sha512-lGWYXfV6jykJwbFpsuPdexKKzp96f3RbvGapDSIdcyGvHb7/eqyn46C7/6h+rUzYar1j5mdU+XECITHXCKBk9Q== + version "2.4.4" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.4.4.tgz#2dfff377cf17efc00de39dad51c143fc7a1b9e3e" + integrity sha512-EyC5ohYhaeKbThMSQxuN2i+QC5HqV3AJvNZKEdiATITexu0gHm00+5ko0ltNS1ajYJVeDgVG2baRSCei0AUWlQ== dependencies: react-remove-scroll-bar "^2.1.0" react-style-singleton "^2.1.0" @@ -16212,16 +15382,16 @@ react-sizeme@^3.0.1: throttle-debounce "^3.0.1" react-spring@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.3.2.tgz#1456ef1ab1a3997c6c39693a9fd18cfd46c92930" - integrity sha512-LMFgjvTJVg2ltthzgJcZ7siOdRig7L8wJZIHrc7p6ss4AaJ446xHzm9L2ZQha1ZC9QVY8/e6XfLhMTFAG6dtjw== + version "9.4.3" + resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.4.3.tgz#3f697d3d6e990dbf7d182619dc75a72a63a302c1" + integrity sha512-GGKAqQQ790JLoA2SAUgdJErFRG8oFR6pzX8jnJoqORVWX5Wo9bJUWs4563f2oN19+yQkVhc77neAkqQ7GCN8Lw== dependencies: - "@react-spring/core" "~9.3.0" - "@react-spring/konva" "~9.3.0" - "@react-spring/native" "~9.3.0" - "@react-spring/three" "~9.3.0" - "@react-spring/web" "~9.3.0" - "@react-spring/zdog" "~9.3.0" + "@react-spring/core" "~9.4.3-beta.0" + "@react-spring/konva" "~9.4.3-beta.0" + "@react-spring/native" "~9.4.3-beta.0" + "@react-spring/three" "~9.4.3-beta.0" + "@react-spring/web" "~9.4.3-beta.0" + "@react-spring/zdog" "~9.4.3-beta.0" react-style-singleton@^2.1.0: version "2.1.1" @@ -16405,10 +15575,10 @@ refractor@^3.1.0: parse-entities "^2.0.0" prismjs "~1.25.0" -regenerate-unicode-properties@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" - integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: regenerate "^1.4.2" @@ -16442,15 +15612,7 @@ regex-parser@^2.2.11: resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== -regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -regexp.prototype.flags@^1.3.1: +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: version "1.4.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== @@ -16458,15 +15620,15 @@ regexp.prototype.flags@^1.3.1: call-bind "^1.0.2" define-properties "^1.1.3" -regexpu-core@^4.7.1: - version "4.8.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" - integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^9.0.0" - regjsgen "^0.5.2" - regjsparser "^0.7.0" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" @@ -16485,15 +15647,15 @@ registry-url@^3.0.3: dependencies: rc "^1.0.1" -regjsgen@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== -regjsparser@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" - integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" @@ -16676,20 +15838,12 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.19.0, resolve@^1.3.2: - version "1.21.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" - integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.3.2: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.8.0" + is-core-module "^2.8.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -16828,11 +15982,11 @@ rxjs@^6.4.0: tslib "^1.9.0" rxjs@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" - integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== + version "7.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.4.tgz#3d6bd407e6b7ce9a123e76b1e770dc5761aa368d" + integrity sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ== dependencies: - tslib "~2.1.0" + tslib "^2.1.0" safe-buffer@5.1.1: version "5.1.1" @@ -16954,9 +16108,9 @@ selenium-webdriver@4.0.0-rc-1: ws ">=7.4.6" selenium-webdriver@^4.0.0-beta.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.1.0.tgz#d11e5d43674e2718265a30684bcbf6ec734fd3bd" - integrity sha512-kUDH4N8WruYprTzvug4Pl73Th+WKb5YiLz8z/anOpHyUNUdM3UzrdTOxmSNaf9AczzBeY+qXihzku8D1lMaKOg== + version "4.1.1" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.1.1.tgz#da083177d811f36614950e809e2982570f67d02e" + integrity sha512-Fr9e9LC6zvD6/j7NO8M1M/NVxFX67abHcxDJoP5w2KN/Xb1SyYLjMVPGgD14U2TOiKe4XKHf42OmFw9g2JgCBQ== dependencies: jszip "^3.6.0" tmp "^0.2.1" @@ -17190,9 +16344,9 @@ side-channel@^1.0.4: object-inspect "^1.9.0" signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-concat@^1.0.0: version "1.0.1" @@ -17200,18 +16354,18 @@ simple-concat@^1.0.0: integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" - integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" + integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== dependencies: decompress-response "^4.2.0" once "^1.3.1" simple-concat "^1.0.0" simple-get@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.0.tgz#73fa628278d21de83dadd5512d2cc1f4872bd675" - integrity sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ== + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== dependencies: decompress-response "^6.0.0" once "^1.3.1" @@ -17295,10 +16449,10 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" - integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: version "0.5.3" @@ -17455,9 +16609,9 @@ stack-utils@^2.0.3: escape-string-regexp "^2.0.0" stackframe@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" - integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + version "1.2.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1" + integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg== stacktrace-parser@0.1.10: version "0.1.10" @@ -17692,6 +16846,11 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -18182,9 +17341,9 @@ traverse@0.6.6: integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= tree-visit@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tree-visit/-/tree-visit-0.1.0.tgz#ec35cfc13548b41ca5eabd5cbd7f83b574a8ed83" - integrity sha512-5lARH0BoZY70TwE+MV7v0KRtApSP4LSxC2JLRCUyK6KUCb8f/Qv9dS+PaWx9h3yKyNYjX2/JHwDx8DyQHHFzlw== + version "0.1.1" + resolved "https://registry.yarnpkg.com/tree-visit/-/tree-visit-0.1.1.tgz#ef8d910adba00c4afb245af7a1cf3f3694b00235" + integrity sha512-q5oG83Dq7Io/fU1wNp2q4HrqsmAbioQ7EbASB9ImU3YLfKT8SIycQj4lTJnsBvyyl2ZGfs44tjomZdtBfBHyNQ== trim-trailing-lines@^1.0.0: version "1.1.4" @@ -18207,9 +17366,9 @@ ts-dedent@^2.0.0: integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== ts-jest@^27.0.2, ts-jest@^27.0.3, ts-jest@^27.0.5: - version "27.1.1" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.1.tgz#5a54aca96db1dac37c681f3029dd10f3a8c36192" - integrity sha512-Ds0VkB+cB+8g2JUmP/GKWndeZcCKrbe6jzolGrVWdqVUFByY/2KDHqxJ7yBSon7hDB1TA4PXxjfZ+JjzJisvgA== + version "27.1.3" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.3.tgz#1f723e7e74027c4da92c0ffbd73287e8af2b2957" + integrity sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" @@ -18247,11 +17406,6 @@ tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -18320,9 +17474,9 @@ type@^1.0.1: integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" - integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== + version "2.6.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" + integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -18337,14 +17491,14 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^4.0.5, typescript@^4.1.2, typescript@^4.2.3, typescript@^4.2.4, typescript@^4.3.2, typescript@^4.3.5, typescript@^4.4.2, typescript@^4.4.3, typescript@^4.4.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" - integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== + version "4.5.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== uglify-js@^3.1.4: - version "3.14.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.5.tgz#cdabb7d4954231d80cb4a927654c4655e51f4859" - integrity sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ== + version "3.15.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.1.tgz#9403dc6fa5695a6172a91bc983ea39f0f7c9086d" + integrity sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ== unbox-primitive@^1.0.1: version "1.0.1" @@ -18700,7 +17854,7 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -v8-to-istanbul@^8.0.0: +v8-to-istanbul@^8.0.0, v8-to-istanbul@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== @@ -18709,15 +17863,6 @@ v8-to-istanbul@^8.0.0: convert-source-map "^1.6.0" source-map "^0.7.3" -v8-to-istanbul@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" - integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -19157,20 +18302,15 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@>=7.4.6: - version "8.3.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.3.0.tgz#7185e252c8973a60d57170175ff55fdbd116070d" - integrity sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw== +ws@>=7.4.6, ws@^8.2.3: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== ws@^7.4.6: - version "7.5.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== - -ws@^8.2.3: - version "8.4.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.2.tgz#18e749868d8439f2268368829042894b6907aa0b" - integrity sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA== + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== xdg-basedir@^3.0.0: version "3.0.0" @@ -19232,7 +18372,7 @@ yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.7: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^16.1.1, yargs@^16.2.0: +yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==